xref: /llvm-project/clang/test/CodeGen/SystemZ/zos-mixed-ptr-sizes-definitions.c (revision 135fecd4441068667ef23f56098befd0c42f89f2)
1*135fecd4SAbhina Sree // RUN: %clang_cc1 -triple s390x-ibm-zos -emit-llvm < %s | FileCheck %s --check-prefix=PTR32-ZOS
2*135fecd4SAbhina Sree // RUN: %clang_cc1 -triple s390x-ibm-linux -fzos-extensions -emit-llvm < %s | FileCheck %s --check-prefix=PTR32-LINUX
3*135fecd4SAbhina Sree // RUN: %clang_cc1 -triple s390x-linux-gnu -fzos-extensions -emit-llvm < %s | FileCheck %s --check-prefix=PTR32-LINUX
4*135fecd4SAbhina Sree 
5*135fecd4SAbhina Sree void ptr32_declarations() {
6*135fecd4SAbhina Sree   // PTR32-ZOS-LABEL: @ptr32_declarations()
7*135fecd4SAbhina Sree   // PTR32-LINUX-LABEL: @ptr32_declarations()
8*135fecd4SAbhina Sree 
9*135fecd4SAbhina Sree   // PTR32-ZOS: %p1 = alloca ptr addrspace(1), align 4
10*135fecd4SAbhina Sree   // PTR32-LINUX-NOT: %p1 = alloca i8 addrspace(1)*, align 4
11*135fecd4SAbhina Sree   // PTR32-LINUX: %p1 = alloca ptr, align 8
12*135fecd4SAbhina Sree   char * __ptr32 p1;
13*135fecd4SAbhina Sree 
14*135fecd4SAbhina Sree   // PTR32-ZOS: %p2 = alloca ptr, align 8
15*135fecd4SAbhina Sree   // PTR32-LINUX-NOT: %p2 = alloca ptr addrspace(1), align 8
16*135fecd4SAbhina Sree   // PTR32-LINUX: %p2 = alloca ptr, align 8
17*135fecd4SAbhina Sree   char * __ptr32 *p2;
18*135fecd4SAbhina Sree 
19*135fecd4SAbhina Sree   // PTR32-ZOS: %p3 = alloca ptr addrspace(1), align 4
20*135fecd4SAbhina Sree   // PTR32-LINUX-NOT: %p3 = alloca i8* addrspace(1)*, align 4
21*135fecd4SAbhina Sree   // PTR32-LINUX: %p3 = alloca ptr, align 8
22*135fecd4SAbhina Sree   char ** __ptr32 p3;
23*135fecd4SAbhina Sree 
24*135fecd4SAbhina Sree   // PTR32-ZOS: %p4 = alloca ptr, align 8
25*135fecd4SAbhina Sree   // PTR32-LINUX-NOT: %p4 = alloca ptr addrspace(1), align 8
26*135fecd4SAbhina Sree   // PTR32-LINUX: %p4 = alloca ptr, align 8
27*135fecd4SAbhina Sree   char ** __ptr32 *p4;
28*135fecd4SAbhina Sree 
29*135fecd4SAbhina Sree   // PTR32-ZOS: %p5 = alloca ptr, align 8
30*135fecd4SAbhina Sree   // PTR32-LINUX-NOT:  %p5 = alloca ptr addrspace(1), align 8
31*135fecd4SAbhina Sree   // PTR32-LINUX: %p5 = alloca ptr, align 8
32*135fecd4SAbhina Sree   char *** __ptr32 *p5;
33*135fecd4SAbhina Sree 
34*135fecd4SAbhina Sree   // PTR32-ZOS: %p6 = alloca ptr, align 8
35*135fecd4SAbhina Sree   // PTR32-LINUX: %p6 = alloca ptr, align 8
36*135fecd4SAbhina Sree   char **p6;
37*135fecd4SAbhina Sree 
38*135fecd4SAbhina Sree   // PTR32-ZOS: %p7 = alloca ptr addrspace(1), align 4
39*135fecd4SAbhina Sree   // PTR32-LINUX-NOT: %p7 = alloca i8 addrspace(1)* addrspace(1)*, align 4
40*135fecd4SAbhina Sree   // PTR32-LINUX: %p7 = alloca ptr, align 8
41*135fecd4SAbhina Sree   char * __ptr32 * __ptr32 p7;
42*135fecd4SAbhina Sree 
43*135fecd4SAbhina Sree   // PTR32-ZOS: %p8 = alloca ptr addrspace(1), align 4
44*135fecd4SAbhina Sree   // PTR32-LINUX-NOT: %p8 = alloca i8* addrspace(1)* addrspace(1)*, align 4
45*135fecd4SAbhina Sree   // PTR32-LINUX: %p8 = alloca ptr, align 8
46*135fecd4SAbhina Sree   char ** __ptr32 * __ptr32 p8;
47*135fecd4SAbhina Sree 
48*135fecd4SAbhina Sree   // PTR32-ZOS: %p9 = alloca ptr, align 8
49*135fecd4SAbhina Sree   // PTR32-LINUX-NOT: %p9 = alloca i8* addrspace(1)* addrspace(1)**, align 8
50*135fecd4SAbhina Sree   // PTR32-LINUX: %p9 = alloca ptr, align 8
51*135fecd4SAbhina Sree   char ** __ptr32 * __ptr32 *p9;
52*135fecd4SAbhina Sree 
53*135fecd4SAbhina Sree }
54