Daniel Dunbar | 455cc33 | 2009-02-20 23:09:27 +0000 | [diff] [blame] | 1 | // RUN: clang -arch i386 -emit-llvm -o %t %s && |
| 2 | // RUN: grep '@_Z2f0i' %t && |
Chris Lattner | 8af0e26 | 2009-03-21 08:24:40 +0000 | [diff] [blame] | 3 | // RUN: grep '@_Z2f0l' %t && |
Daniel Dunbar | 455cc33 | 2009-02-20 23:09:27 +0000 | [diff] [blame] | 4 | |
| 5 | // Make sure we mangle overloadable, even in C system headers. |
| 6 | |
| 7 | # 1 "somesystemheader.h" 1 3 4 |
| 8 | void __attribute__((__overloadable__)) f0(int a) {} |
| 9 | void __attribute__((__overloadable__)) f0(long b) {} |
Chris Lattner | 8af0e26 | 2009-03-21 08:24:40 +0000 | [diff] [blame] | 10 | |
| 11 | |
| 12 | |
| 13 | // These should get merged. |
| 14 | void foo() __asm__("bar"); |
| 15 | void foo2() __asm__("bar"); |
| 16 | |
| 17 | // RUN: grep '@"\\01foo"' %t && |
| 18 | // RUN: grep '@"\\01bar"' %t |
| 19 | |
| 20 | int nux __asm__("foo"); |
| 21 | extern float nux2 __asm__("foo"); |
| 22 | |
| 23 | int test() { |
| 24 | foo(); |
| 25 | foo2(); |
| 26 | |
| 27 | return nux + nux2; |
| 28 | } |