| // RUN: %clang_cc1 -triple i386-pc-linux-gnu -emit-llvm -o - %s | FileCheck %s |
| // Make sure we mangle overloadable, even in C system headers. |
| # 1 "somesystemheader.h" 1 3 4 |
| void __attribute__((__overloadable__)) f0(int a) {} |
| void __attribute__((__overloadable__)) f0(long b) {} |
| // These should get merged. |
| void foo() __asm__("bar"); |
| void foo2() __asm__("bar"); |
| extern float nux2 __asm__("foo"); |
| // Function becomes a variable. |
| void foo3() __asm__("var"); |
| int foo4 __asm__("var") = 4; |
| // Variable becomes a function |
| extern int foo5 __asm__("var2"); |
| void foo6() __asm__("var2"); |
| int foo7 __asm__("foo7") __attribute__((used)); |
| float foo8 __asm__("foo7") = 42; |
| extern int func (void) __asm__ ("FUNC"); |