1 // RUN: %clang_cc1 -triple i386-pc-linux-gnu -emit-llvm -o - %s | FileCheck %s
5 // Make sure we mangle overloadable, even in C system headers.
6 # 1 "somesystemheader.h" 1 3 4
8 void __attribute__((__overloadable__
)) f0(int a
) {}
10 void __attribute__((__overloadable__
)) f0(long b
) {}
14 // These should get merged.
15 void foo() __asm__("bar");
16 void foo2() __asm__("bar");
18 int nux
__asm__("foo");
19 extern float nux2
__asm__("foo");
29 // Function becomes a variable.
30 void foo3() __asm__("var");
35 int foo4
__asm__("var") = 4;
38 // Variable becomes a function
39 extern int foo5
__asm__("var2");
45 void foo6() __asm__("var2");
51 int foo7
__asm__("foo7") __attribute__((used
));
52 float foo8
__asm__("foo7") = 42;
56 extern int func (void) __asm__ ("FUNC");
63 // CHECK: @_Z4foo9Dv4_f
64 typedef __attribute__(( vector_size(16) )) float float4
;
65 void __attribute__((__overloadable__
)) foo9(float4 f
) {}