brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · 65c6843 Raw
207 lines · c
1// RUN: %clang_cc1 -emit-llvm-only -triple s390x-none-zos -fdump-record-layouts %s | FileCheck %s --check-prefix=CHECK2// RUN: %clang_cc1 -emit-llvm -triple s390x-none-zos %s -o - | FileCheck %s --check-prefix=DECL3 4static int __attribute__((aligned(32))) v0;5int __attribute__((aligned(32))) v1;6typedef int __attribute__((aligned(32))) int32;7static int32 v2;8int32 v3;9int f0(void) { return v0 + v1 + v2 + v3; }10// DECL:      @v0 {{.*}} align 1611// DECL-NEXT: @v1 {{.*}} align 3212// DECL-NEXT: @v2 {{.*}} align 1613// DECL-NEXT: @v3 {{.*}} align 3214 15const struct cs0 {16  unsigned long : 0;17  long long a;18} CS0 = {};19// CHECK:              0 | struct cs020// CHECK-NEXT:       0:- |   unsigned long21// CHECK-NEXT:         0 |   long long a22// CHECK-NEXT:           | [sizeof=8, align=8]23 24volatile struct vs0 {25  long : 0;26  short a;27} VS0;28// CHECK:              0 | struct vs029// CHECK-NEXT:       0:- |   long30// CHECK-NEXT:         0 |   short a31// CHECK-NEXT:           | [sizeof=2, align=2]32 33struct s0 {34  short a : 3;35  long b : 5;36  int c : 1;37  long d : 10;38  char e : 5;39} S0;40// CHECK:              0 | struct s041// CHECK-NEXT:     0:0-2 |   short a42// CHECK-NEXT:     0:3-7 |   long b43// CHECK-NEXT:     1:0-0 |   int c44// CHECK-NEXT:    1:1-10 |   long d45// CHECK-NEXT:     2:3-7 |   char e46// CHECK-NEXT:           | [sizeof=3, align=1]47 48struct s1 {49  char a : 7;50  long b : 27;51  int c : 2;52} S1;53// CHECK:              0 | struct s154// CHECK-NEXT:     0:0-6 |   char a55// CHECK-NEXT:    0:7-33 |   long b56// CHECK-NEXT:     4:2-3 |   int c57// CHECK-NEXT:           | [sizeof=5, align=1]58 59struct s2 {60  char a : 7;61  char : 0;62  short : 0;63  short : 0;64} S2;65// CHECK:              0 | struct s266// CHECK-NEXT:     0:0-6 |   char a67// CHECK-NEXT:       4:- |   char68// CHECK-NEXT:       4:- |   short69// CHECK-NEXT:       4:- |   short70// CHECK-NEXT:           | [sizeof=4, align=4]71 72struct s3 {73  int a;74  int b : 16;75  char : 0;76  char c : 1;77} S3;78// CHECK:              0 | struct s379// CHECK-NEXT:         0 |   int a80// CHECK-NEXT:    4:0-15 |   int b81// CHECK-NEXT:       8:- |   char82// CHECK-NEXT:     8:0-0 |   char c83// CHECK-NEXT:           | [sizeof=12, align=4]84 85struct s4 {86  unsigned int __attribute__((aligned(32))) a;87} S4;88// CHECK:              0 | struct s489// CHECK-NEXT:         0 |   unsigned int a90// CHECK-NEXT:           | [sizeof=32, align=32]91 92struct s5 {93  char a;94  int b : 19 __attribute__((aligned(4)));95  int c : 22 __attribute__((aligned(8)));96  int : 0;97  int d : 10;98} S5;99// CHECK:              0 | struct s5100// CHECK-NEXT:         0 |   char a101// CHECK-NEXT:    4:0-18 |   int b102// CHECK-NEXT:    8:0-21 |   int c103// CHECK-NEXT:      12:- |   int104// CHECK-NEXT:    12:0-9 |   int d105// CHECK-NEXT:           | [sizeof=16, align=8]106 107struct s6 {108  char *a;109  char *b[];110} S6;111// CHECK:              0 | struct s6112// CHECK-NEXT:         0 |   char * a113// CHECK-NEXT:         8 |   char *[] b114// CHECK-NEXT:           | [sizeof=8, align=8]115 116struct s7 {117  long : 0;118  short a;119} S7;120// CHECK:              0 | struct s7121// CHECK-NEXT:       0:- |   long122// CHECK-NEXT:         0 |   short a123// CHECK-NEXT:           | [sizeof=2, align=2]124 125#pragma pack(2)126struct s8 {127  unsigned long : 0;128  long long a;129} S8;130#pragma pack()131// CHECK:              0 | struct s8132// CHECK-NEXT:       0:- |   unsigned long133// CHECK-NEXT:         0 |   long long a134// CHECK-NEXT:           | [sizeof=8, align=2]135 136struct s9 {137  unsigned int : 0;138  unsigned short : 0;139} S9;140// CHECK:              0 | struct s9141// CHECK-NEXT:       0:- |   unsigned int142// CHECK-NEXT:       0:- |   unsigned short143// CHECK-NEXT:           | [sizeof=0, align=1]144 145struct s10 {146  unsigned int __attribute__((aligned)) a;147} S10;148// CHECK:              0 | struct s10149// CHECK-NEXT:         0 |   unsigned int a150// CHECK-NEXT:           | [sizeof=8, align=8]151 152struct s11 {153  char a;154  long : 0;155  char b;156} S11;157// CHECK:              0 | struct s11158// CHECK-NEXT:         0 |   char a159// CHECK-NEXT:       8:- |   long160// CHECK-NEXT:         8 |   char b161// CHECK-NEXT:           | [sizeof=16, align=8]162 163struct s12 {164  __int128_t a;165} S12;166// CHECK:              0 | struct s12167// CHECK-NEXT:         0 |   __int128_t a168// CHECK-NEXT:           | [sizeof=16, align=8]169 170union u0 {171  unsigned short d1 __attribute__((packed));172  int d2 : 10;173  long d3;174} U0 __attribute__((aligned(8)));175// CHECK:              0 | union u0176// CHECK-NEXT:         0 |   unsigned short d1177// CHECK-NEXT:     0:0-9 |   int d2178// CHECK-NEXT:         0 |   long d3179// CHECK-NEXT:           | [sizeof=8, align=8]180 181union u1 {182  unsigned int : 0;183  short a;184} U1;185// CHECK:              0 | union u1186// CHECK-NEXT:       0:- |   unsigned int187// CHECK-NEXT:         0 |   short a188// CHECK-NEXT:           | [sizeof=4, align=4]189 190union u2 {191  long : 0;192  short a;193} U2;194// CHECK:              0 | union u2195// CHECK-NEXT:       0:- |   long196// CHECK-NEXT:         0 |   short a197// CHECK-NEXT:           | [sizeof=8, align=8]198 199union u3 {200  unsigned char : 0;201  unsigned short : 0;202} U3;203// CHECK:              0 | union u3204// CHECK-NEXT:       0:- |   unsigned char205// CHECK-NEXT:       0:- |   unsigned short206// CHECK-NEXT:           | [sizeof=0, align=4]207