|  | // RUN: %clang_cc1  -triple x86_64-apple-darwin10 -fobjc-arc -std=c++11 -emit-llvm -o - %s | FileCheck %s | 
|  |  | 
|  | @interface NSObject | 
|  | + (id)new; | 
|  | @end | 
|  |  | 
|  | @interface NSMutableDictionary : NSObject | 
|  | @end | 
|  |  | 
|  | class XClipboardDataSet | 
|  | { | 
|  | NSMutableDictionary* mClipData = [NSMutableDictionary new]; | 
|  | }; | 
|  |  | 
|  | @interface AppDelegate @end | 
|  |  | 
|  | @implementation AppDelegate | 
|  | - (void)applicationDidFinishLaunching | 
|  | { | 
|  | XClipboardDataSet clip; | 
|  | } | 
|  | @end | 
|  |  | 
|  | // CHECK: [[mClipData:%.*]] = getelementptr inbounds nuw %class.XClipboardDataSet, ptr | 
|  | // CHECK: [[CLS:%.*]] = load ptr, ptr @"OBJC_CLASSLIST_REFERENCES_$_" | 
|  | // CHECK: [[SEL:%.*]] = load ptr, ptr @OBJC_SELECTOR_REFERENCES_ | 
|  | // CHECK: [[CALL:%.*]] = call noundef ptr @objc_msgSend(ptr noundef [[CLS]], ptr noundef [[SEL]]) | 
|  | // CHECK: store ptr [[CALL]], ptr [[mClipData]], align 8 | 
|  |  | 
|  | struct Butt { }; | 
|  |  | 
|  | __attribute__((objc_root_class)) | 
|  | @interface Foo { | 
|  | Butt x; | 
|  | Butt y; | 
|  | Butt z; | 
|  | } | 
|  | @end | 
|  | @implementation Foo | 
|  | @end | 
|  | // CHECK-NOT: define internal noundef ptr @"\01-[Foo .cxx_construct |