Clang Project

clang_source_code/test/Layout/itanium-pack-and-align.cpp
1// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm-only -fdump-record-layouts %s \
2// RUN:            | FileCheck %s
3
4struct S {
5  char x;
6  int y;
7} __attribute__((packed, aligned(8)));
8
9struct alignas(8) T {
10  char x;
11  int y;
12} __attribute__((packed));
13
14S s;
15T t;
16// CHECK:          0 | struct T
17// CHECK-NEXT:          0 |   char x
18// CHECK-NEXT:          1 |   int y
19// CHECK-NEXT:            | [sizeof=8, dsize=8, align=8,
20// CHECK-NEXT:            |  nvsize=8, nvalign=8]
21
22// CHECK:          0 | struct S
23// CHECK-NEXT:          0 |   char x
24// CHECK-NEXT:          1 |   int y
25// CHECK-NEXT:            | [sizeof=8, dsize=8, align=8,
26// CHECK-NEXT:            |  nvsize=8, nvalign=8]
27