1 // RUN: %clang_cc1 -fsyntax-only -fclang-abi-compat=6 -triple x86_64-linux-gnu -fdump-record-layouts %s | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-V6 2 // RUN: %clang_cc1 -fsyntax-only -fclang-abi-compat=7 -triple x86_64-linux-gnu -fdump-record-layouts %s | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-V7 3 4 // In Clang 6 and before, we determined that Nonempty was empty, so we 5 // applied EBO to it. 6 struct Nonempty { int : 4; }; 7 struct A : Nonempty { int n; }; 8 int k = sizeof(A); 9 10 // CHECK:*** Dumping AST Record Layout 11 // CHECK: 0 | struct A 12 // CHECK-V6-NEXT: 0 | struct Nonempty (base) (empty) 13 // CHECK-V7-NEXT: 0 | struct Nonempty (base){{$}} 14 // CHECK-NEXT: 0:0-3 | int 15 // CHECK-V6-NEXT: 0 | int n 16 // CHECK-V7-NEXT: 4 | int n 17 // CHECK-V6-NEXT: | [sizeof=4, dsize=4, align=4, 18 // CHECK-V6-NEXT: | nvsize=4, nvalign=4] 19 // CHECK-V7-NEXT: | [sizeof=8, dsize=8, align=4, 20 // CHECK-V7-NEXT: | nvsize=8, nvalign=4] 21