mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-19 19:45:40 -04:00

This also clarifies some terminology used by the diagnostic (methods -> Objective-C methods, fields -> non-static data members, etc). Many of the tests needed to be updated in multiple places for the diagnostic wording tweaks. The first instance of the diagnostic for that attribute is fully specified and subsequent instances cut off the complete list (to make it easier if additional subjects are added in the future for the attribute). llvm-svn: 319002
35 lines
1.3 KiB
C
35 lines
1.3 KiB
C
// RUN: %clang_cc1 -verify -fsyntax-only -triple x86_64-apple-darwin9 %s
|
|
|
|
int x __attribute__((section(
|
|
42))); // expected-error {{'section' attribute requires a string}}
|
|
|
|
|
|
// rdar://4341926
|
|
int y __attribute__((section(
|
|
"sadf"))); // expected-error {{mach-o section specifier requires a segment and section separated by a comma}}
|
|
|
|
// PR6007
|
|
void test() {
|
|
__attribute__((section("NEAR,x"))) int n1; // expected-error {{'section' attribute only applies to functions, global variables, Objective-C methods, and Objective-C properties}}
|
|
__attribute__((section("NEAR,x"))) static int n2; // ok.
|
|
}
|
|
|
|
// pr9356
|
|
void __attribute__((section("foo,zed"))) test2(void); // expected-note {{previous attribute is here}}
|
|
void __attribute__((section("bar,zed"))) test2(void) {} // expected-warning {{section does not match previous declaration}}
|
|
|
|
enum __attribute__((section("NEAR,x"))) e { one }; // expected-error {{'section' attribute only applies to}}
|
|
|
|
extern int a; // expected-note {{previous declaration is here}}
|
|
int *b = &a;
|
|
extern int a __attribute__((section("foo,zed"))); // expected-warning {{section attribute is specified on redeclared variable}}
|
|
|
|
// Not a warning.
|
|
int c;
|
|
int c __attribute__((section("foo,zed")));
|
|
|
|
// Also OK.
|
|
struct r_debug {};
|
|
extern struct r_debug _r_debug;
|
|
struct r_debug _r_debug __attribute__((nocommon, section(".r_debug,bar")));
|