1 // RUN: %clang_cc1 -verify %s
2 
3 void f();
4 void f() __asm__("fish");
5 void g();
6 
f()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 
test()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");
readlink()30 void readlink() { __real_readlink(); }
31