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