1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -fsyntax-only -verify %s 2*f4a2713aSLionel Sambuc f0()3*f4a2713aSLionel Sambucvoid f0() {} 4*f4a2713aSLionel Sambuc void fun0(void) __attribute((alias("f0"))); 5*f4a2713aSLionel Sambuc f1()6*f4a2713aSLionel Sambucvoid f1() {} fun1()7*f4a2713aSLionel Sambucvoid 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 Sambucvoid f2() {} 11*f4a2713aSLionel Sambuc void fun2(void) __attribute((alias("f2"))); // expected-note {{previous definition}} fun2()12*f4a2713aSLionel Sambucvoid fun2() {} // expected-error {{redefinition of 'fun2'}} 13*f4a2713aSLionel Sambuc f3()14*f4a2713aSLionel Sambucvoid 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 Sambucvoid 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 Sambucvoid f5() {} fun5(void)24*f4a2713aSLionel Sambucvoid __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