brintos

brintos / llvm-project-archived public Read only

0
0
Text · 999 B · 069fef2 Raw
42 lines · plain
1// RUN: %clang_cc1  -triple x86_64-apple-darwin10 -fobjc-arc -std=c++11 -emit-llvm -o - %s | FileCheck %s2  3@interface NSObject4+ (id)new;5@end6 7@interface NSMutableDictionary : NSObject8@end9  10class XClipboardDataSet11{ 12  NSMutableDictionary* mClipData = [NSMutableDictionary new];13};14  15@interface AppDelegate @end16 17@implementation AppDelegate18- (void)applicationDidFinishLaunching19{ 20 XClipboardDataSet clip; 21}22@end23 24// CHECK: [[mClipData:%.*]] = getelementptr inbounds nuw %class.XClipboardDataSet, ptr25// CHECK: [[CLS:%.*]] = load ptr, ptr @"OBJC_CLASSLIST_REFERENCES_$_"26// CHECK: [[SEL:%.*]] = load ptr, ptr @OBJC_SELECTOR_REFERENCES_27// CHECK: [[CALL:%.*]] = call noundef ptr @objc_msgSend(ptr noundef [[CLS]], ptr noundef [[SEL]])28// CHECK: store ptr [[CALL]], ptr [[mClipData]], align 829 30struct Butt { };31 32__attribute__((objc_root_class))33@interface Foo {34  Butt x;35  Butt y;36  Butt z;37}38@end39@implementation Foo40@end41// CHECK-NOT: define internal noundef ptr @"\01-[Foo .cxx_construct42