brintos

brintos / llvm-project-archived public Read only

0
0
Text · 974 B · febfc46 Raw
37 lines · cpp
1// RUN: %clang_cc1 -emit-llvm-only -triple %itanium_abi_triple -fdump-record-layouts %s 2>/dev/null \2// RUN:            | FileCheck %s3 4// On z/OS, a bit-field has single byte alignment.  Add aligned(4) on z/OS so the union has5// the same size & alignment as expected.6#ifdef __MVS__7#define ALIGN4 __attribute__((aligned(4)))8#else9#define ALIGN410#endif11 12union A {13  int f1 : 3 ALIGN4;14  A();15};16 17A::A() {}18 19union B {20  char f1 : 35 ALIGN4;21  B();22};23 24B::B() {}25 26// CHECK:*** Dumping AST Record Layout27// CHECK-NEXT:     0 | union A28// CHECK-NEXT: 0:0-2 |   int f129// CHECK-NEXT:       | [sizeof=4, dsize=1, align=4{{(, preferredalign=4,)?}}30// CHECK-NEXT:       |  nvsize=1, nvalign=4{{(, preferrednvalign=4)?}}]31 32// CHECK:*** Dumping AST Record Layout33// CHECK-NEXT:      0 | union B34// CHECK-NEXT: 0:0-34 |   char f135// CHECK-NEXT:        | [sizeof=8, dsize=5, align=4{{(, preferredalign=4,)?}}36// CHECK-NEXT:        |  nvsize=5, nvalign=4{{(, preferrednvalign=4)?}}]37