1 | // RUN: %clang_cc1 -verify %s |
2 | |
3 | void f(); |
4 | void f() __asm__("fish"); |
5 | void g(); |
6 | |
7 | void f() { |
8 | g(); |
9 | } |
10 | void g() __asm__("gold"); // expected-error{{cannot apply asm label to function after its first use}} |
11 | |
12 | void h() __asm__("hose"); // expected-note{{previous declaration is here}} |
13 | void h() __asm__("hair"); // expected-error{{conflicting asm label}} |
14 | |
15 | int x; |
16 | int x __asm__("xenon"); |
17 | int y; |
18 | |
19 | int test() { return y; } |
20 | |
21 | int y __asm__("yacht"); // expected-error{{cannot apply asm label to variable after its first use}} |
22 | |
23 | int z __asm__("zebra"); // expected-note{{previous declaration is here}} |
24 | int z __asm__("zooms"); // expected-error{{conflicting asm label}} |
25 | |
26 | |
27 | // No diagnostics on the following. |
28 | void __real_readlink() __asm("readlink"); |
29 | void readlink() __asm("__protected_readlink"); |
30 | void readlink() { __real_readlink(); } |
31 | |