xref: /llvm-project/clang/test/CodeGen/attr-loader-uninitialized.c (revision cbe8b57a675537183eaf8c32eaa6087cea3fc5da)
1f2cc2669SFangrui Song // RUN: %clang_cc1 -triple=x86_64-linux-gnu -emit-llvm %s -o - | FileCheck %s
2c45eaeabSJon Chesterfield 
3fd739804SFangrui Song // CHECK: @tentative_attr_first ={{.*}} global i32 undef
4c45eaeabSJon Chesterfield int tentative_attr_first __attribute__((loader_uninitialized));
5c45eaeabSJon Chesterfield int tentative_attr_first;
6c45eaeabSJon Chesterfield 
7fd739804SFangrui Song // CHECK: @tentative_attr_second ={{.*}} global i32 undef
8c45eaeabSJon Chesterfield int tentative_attr_second;
9c45eaeabSJon Chesterfield int tentative_attr_second __attribute__((loader_uninitialized));
10c45eaeabSJon Chesterfield 
11fd739804SFangrui Song // CHECK: @array ={{.*}} global [16 x float] undef
12c45eaeabSJon Chesterfield float array[16] __attribute__((loader_uninitialized));
13c45eaeabSJon Chesterfield 
14c45eaeabSJon Chesterfield typedef struct
15c45eaeabSJon Chesterfield {
16c45eaeabSJon Chesterfield   int x;
17c45eaeabSJon Chesterfield   float y;
18c45eaeabSJon Chesterfield } s;
19c45eaeabSJon Chesterfield 
20fd739804SFangrui Song // CHECK: @i ={{.*}} global %struct.s undef
21*cbe8b57aSJohannes Doerfert // CHECK: @j1 ={{.*}}addrspace(1) global %struct.s undef
22*cbe8b57aSJohannes Doerfert // CHECK: @j2 ={{.*}}addrspace(2) global %struct.s undef
23*cbe8b57aSJohannes Doerfert // CHECK: @j3 ={{.*}}addrspace(3) global %struct.s undef
24*cbe8b57aSJohannes Doerfert // CHECK: @j4 ={{.*}}addrspace(4) global %struct.s undef
25*cbe8b57aSJohannes Doerfert // CHECK: @j5 ={{.*}}addrspace(5) global %struct.s undef
26*cbe8b57aSJohannes Doerfert // CHECK: @j99 ={{.*}}addrspace(99) global %struct.s undef
27c45eaeabSJon Chesterfield s i __attribute__((loader_uninitialized));
28*cbe8b57aSJohannes Doerfert s j1 __attribute__((loader_uninitialized, address_space(1)));
29*cbe8b57aSJohannes Doerfert s j2 __attribute__((loader_uninitialized, address_space(2)));
30*cbe8b57aSJohannes Doerfert s j3 __attribute__((loader_uninitialized, address_space(3)));
31*cbe8b57aSJohannes Doerfert s j4 __attribute__((loader_uninitialized, address_space(4)));
32*cbe8b57aSJohannes Doerfert s j5 __attribute__((loader_uninitialized, address_space(5)));
33*cbe8b57aSJohannes Doerfert s j99 __attribute__((loader_uninitialized, address_space(99)));
34c45eaeabSJon Chesterfield 
351d19b153SJon Chesterfield // CHECK: @private_extern_ok = hidden global i32 undef
36c45eaeabSJon Chesterfield __private_extern__ int private_extern_ok __attribute__((loader_uninitialized));
37