mangle.c revision 570585c91dee98d7ba8ccf1198c03208ba17966b
1// RUN: clang -arch i386 -emit-llvm -o %t %s && 2// RUN: grep '@_Z2f0i' %t && 3// RUN: grep '@_Z2f0l' %t && 4 5// Make sure we mangle overloadable, even in C system headers. 6 7# 1 "somesystemheader.h" 1 3 4 8void __attribute__((__overloadable__)) f0(int a) {} 9void __attribute__((__overloadable__)) f0(long b) {} 10 11 12 13// These should get merged. 14void foo() __asm__("bar"); 15void foo2() __asm__("bar"); 16 17// RUN: grep '@"\\01foo"' %t && 18// RUN: grep '@"\\01bar"' %t 19 20int nux __asm__("foo"); 21extern float nux2 __asm__("foo"); 22 23int test() { 24 foo(); 25 foo2(); 26 27 return nux + nux2; 28} 29 30 31// Function becomes a variable. 32void foo3() __asm__("var"); 33 34void test2() { 35 foo3(); 36} 37int foo4 __asm__("var") = 4; 38 39