xref: /aosp_15_r20/external/clang/test/CodeGen/asm-label.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -triple=i686-pc-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefix=LINUX
2*67e74705SXin Li // RUN: %clang_cc1 -triple=i686-apple-darwin9 -emit-llvm %s -o - | FileCheck %s --check-prefix=DARWIN
3*67e74705SXin Li 
4*67e74705SXin Li char *strerror(int) asm("alias");
5*67e74705SXin Li int x __asm("foo");
6*67e74705SXin Li 
test(void)7*67e74705SXin Li int *test(void) {
8*67e74705SXin Li   static int y __asm("bar");
9*67e74705SXin Li   strerror(-1);
10*67e74705SXin Li   return &y;
11*67e74705SXin Li }
12*67e74705SXin Li 
13*67e74705SXin Li // LINUX: @bar = internal global i32 0
14*67e74705SXin Li // LINUX: @foo = common global i32 0
15*67e74705SXin Li // LINUX: declare i8* @alias(i32)
16*67e74705SXin Li 
17*67e74705SXin Li // DARWIN: @"\01bar" = internal global i32 0
18*67e74705SXin Li // DARWIN: @"\01foo" = common global i32 0
19*67e74705SXin Li // DARWIN: declare i8* @"\01alias"(i32)
20*67e74705SXin Li 
21*67e74705SXin Li // PR7887
22*67e74705SXin Li int pr7887_1 asm("");
23*67e74705SXin Li extern int pr7887_2 asm("");
24*67e74705SXin Li int pr7887_3 () asm("");
25*67e74705SXin Li 
pt7887_4()26*67e74705SXin Li int pt7887_4 () {
27*67e74705SXin Li   static int y asm("");
28*67e74705SXin Li   y = pr7887_3();
29*67e74705SXin Li   pr7887_2 = 1;
30*67e74705SXin Li   return pr7887_1;
31*67e74705SXin Li }
32