Mercurial > hg > CbC > CbC_llvm
view clang/test/CodeGen/mangle.c @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | 1d019706d866 |
children | c4bab56944e8 |
line wrap: on
line source
// RUN: %clang_cc1 -triple i386-pc-linux-gnu -emit-llvm -o - %s | FileCheck %s // CHECK: @foo // Make sure we mangle overloadable, even in C system headers. # 1 "somesystemheader.h" 1 3 4 // CHECK: @_Z2f0i void __attribute__((__overloadable__)) f0(int a) {} // CHECK: @_Z2f0l void __attribute__((__overloadable__)) f0(long b) {} // Unless it's unmarked. // CHECK: @f0 void f0(float b) {} // CHECK: @bar // These should get merged. void foo() __asm__("bar"); void foo2() __asm__("bar"); int nux __asm__("foo"); extern float nux2 __asm__("foo"); int test() { foo(); foo2(); return nux + nux2; } // Function becomes a variable. void foo3() __asm__("var"); void test2() { foo3(); } int foo4 __asm__("var") = 4; // Variable becomes a function extern int foo5 __asm__("var2"); void test3() { foo5 = 1; } void foo6() __asm__("var2"); void foo6() { } int foo7 __asm__("foo7") __attribute__((used)); float foo8 __asm__("foo7") = 42; // PR4412 int func(void); extern int func (void) __asm__ ("FUNC"); // CHECK: @FUNC int func(void) { return 42; } // CHECK: @_Z4foo9Dv4_f typedef __attribute__(( vector_size(16) )) float float4; void __attribute__((__overloadable__)) foo9(float4 f) {} // Intrinsic calls. extern int llvm_cas(volatile int*, int, int) __asm__("llvm.atomic.cmp.swap.i32.p0i32"); int foo10(volatile int* add, int from, int to) { // CHECK: call i32 @llvm.atomic.cmp.swap.i32.p0i32 return llvm_cas(add, from, to); }