]>
Commit | Line | Data |
---|---|---|
5dea8689 | 1 | /* Test if ObjC constant strings get placed in the correct section. */ |
2 | /* Contributed by Ziemowit Laski <zlaski@apple.com> */ | |
3 | ||
18f8dbe7 | 4 | /* { dg-do compile } */ |
5 | /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ | |
0c93aabd | 6 | /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */ |
5dea8689 | 7 | |
80d54e8f | 8 | #include "../../../objc-obj-c++-shared/F-NSObject.h" |
5bceb3cd | 9 | #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */ |
5dea8689 | 10 | |
20d911c3 | 11 | @interface NSConstantString: NSObject { |
5dea8689 | 12 | char *cString; |
13 | unsigned int len; | |
14 | } | |
15 | @end | |
16 | ||
18f8dbe7 | 17 | #ifndef NEXT_OBJC_USE_NEW_INTERFACE |
5dea8689 | 18 | extern struct objc_class _NSConstantStringClassReference; |
18f8dbe7 | 19 | #else |
20 | Class _NSConstantStringClassReference; | |
21 | #endif | |
5dea8689 | 22 | |
c2481a24 | 23 | const NSConstantString *appKey = @"MyApp"; |
5dea8689 | 24 | |
267785bc | 25 | /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" { target { *-*-darwin* && { ! lp64 } } } } } */ |
26 | /* { dg-final { scan-assembler ".section __DATA, __objc_stringobj" { target { *-*-darwin* && { lp64 } } } } } */ | |
18f8dbe7 | 27 | /* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */ |
267785bc | 28 | /* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._NSConstantString\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */ |