xref: /minix3/external/bsd/llvm/dist/clang/test/Sema/alias-redefinition.c (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -fsyntax-only -verify %s
2*f4a2713aSLionel Sambuc 
f0()3*f4a2713aSLionel Sambuc void f0() {}
4*f4a2713aSLionel Sambuc void fun0(void) __attribute((alias("f0")));
5*f4a2713aSLionel Sambuc 
f1()6*f4a2713aSLionel Sambuc void f1() {}
fun1()7*f4a2713aSLionel Sambuc void fun1() {} // expected-note {{previous definition}}
8*f4a2713aSLionel Sambuc void fun1(void) __attribute((alias("f1"))); // expected-error {{redefinition of 'fun1'}}
9*f4a2713aSLionel Sambuc 
f2()10*f4a2713aSLionel Sambuc void f2() {}
11*f4a2713aSLionel Sambuc void fun2(void) __attribute((alias("f2"))); // expected-note {{previous definition}}
fun2()12*f4a2713aSLionel Sambuc void fun2() {} // expected-error {{redefinition of 'fun2'}}
13*f4a2713aSLionel Sambuc 
f3()14*f4a2713aSLionel Sambuc void f3() {}
15*f4a2713aSLionel Sambuc void fun3(void) __attribute((alias("f3"))); // expected-note {{previous definition}}
16*f4a2713aSLionel Sambuc void fun3(void) __attribute((alias("f3"))); // expected-error {{redefinition of 'fun3'}}
17*f4a2713aSLionel Sambuc 
f4()18*f4a2713aSLionel Sambuc void f4() {}
19*f4a2713aSLionel Sambuc void fun4(void) __attribute((alias("f4")));
20*f4a2713aSLionel Sambuc void fun4(void);
21*f4a2713aSLionel Sambuc 
22*f4a2713aSLionel Sambuc // FIXME: We should produce a special case error for this.
f5()23*f4a2713aSLionel Sambuc void f5() {}
fun5(void)24*f4a2713aSLionel Sambuc void __attribute((alias("f5"))) fun5(void) {} // expected-error {{redefinition of 'fun5'}} // expected-note {{previous definition}}
25*f4a2713aSLionel Sambuc 
26*f4a2713aSLionel Sambuc int v1;
27*f4a2713aSLionel Sambuc int var1 __attribute((alias("v1"))); // expected-note {{previous definition}}
28*f4a2713aSLionel Sambuc int var1 __attribute((alias("v1"))); // expected-error {{redefinition of 'var1'}}
29*f4a2713aSLionel Sambuc 
30*f4a2713aSLionel Sambuc int v2;
31*f4a2713aSLionel Sambuc int var2 = 2; // expected-note {{previous definition}}
32*f4a2713aSLionel Sambuc int var2 __attribute((alias("v2"))); // expected-error {{redefinition of 'var2'}}
33*f4a2713aSLionel Sambuc 
34*f4a2713aSLionel Sambuc int v3;
35*f4a2713aSLionel Sambuc int var3 __attribute((alias("v3"))); // expected-note {{previous definition}}
36*f4a2713aSLionel Sambuc int var3 = 2; // expected-error {{redefinition of 'var3'}}
37*f4a2713aSLionel Sambuc 
38*f4a2713aSLionel Sambuc int v4;
39*f4a2713aSLionel Sambuc int var4; // expected-note {{previous definition}}
40*f4a2713aSLionel Sambuc int var4 __attribute((alias("v4"))); // expected-error {{alias definition of 'var4' after tentative definition}}
41*f4a2713aSLionel Sambuc 
42*f4a2713aSLionel Sambuc int v5;
43*f4a2713aSLionel Sambuc int var5 __attribute((alias("v5"))); // expected-note {{previous definition}}
44*f4a2713aSLionel Sambuc int var5; // expected-error {{tentative definition of 'var5' after alias definition}}
45