diff options
Diffstat (limited to 'test/Sema/asm-label.c')
-rw-r--r-- | test/Sema/asm-label.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/Sema/asm-label.c b/test/Sema/asm-label.c new file mode 100644 index 0000000..87cda2f --- /dev/null +++ b/test/Sema/asm-label.c @@ -0,0 +1,30 @@ +// RUN: %clang_cc1 -verify %s + +void f(); +void f() __asm__("fish"); +void g(); + +void f() { + g(); +} +void g() __asm__("gold"); // expected-error{{cannot apply asm label to function after its first use}} + +void h() __asm__("hose"); // expected-note{{previous declaration is here}} +void h() __asm__("hair"); // expected-error{{conflicting asm label}} + +int x; +int x __asm__("xenon"); +int y; + +int test() { return y; } + +int y __asm__("yacht"); // expected-error{{cannot apply asm label to variable after its first use}} + +int z __asm__("zebra"); // expected-note{{previous declaration is here}} +int z __asm__("zooms"); // expected-error{{conflicting asm label}} + + +// No diagnostics on the following. +void __real_readlink() __asm("readlink"); +void readlink() __asm("__protected_readlink"); +void readlink() { __real_readlink(); } |