blob: 387e8bfc414b23d6da4d40c6252c406e4e5b3c41 [file] [edit]
// RUN: %clang_cc1 -triple aarch64-windows-msvc -w -fdump-record-layouts-simple \
// RUN: -foverride-record-layout=%S/Inputs/override-layout-aligned-base.layout %s \
// RUN: | FileCheck %s
// RUN: %clang_cc1 -triple arm64ec-windows-msvc -w -fdump-record-layouts-simple \
// RUN: -foverride-record-layout=%S/Inputs/override-layout-aligned-base.layout %s \
// RUN: | FileCheck %s
// RUN: %clang_cc1 -triple x86_64-windows-msvc -w -fdump-record-layouts-simple \
// RUN: -foverride-record-layout=%S/Inputs/override-layout-aligned-base.layout %s \
// RUN: | FileCheck %s
// An external layout source (such as LLDB reading DWARF) supplies a record's
// alignment directly; the over-alignment is not recoverable from an alignas
// attribute because no such attribute exists in the AST. A derived class must
// still pick up the externally supplied alignment of its base.
// CHECK: Type: struct AlignedBase
// CHECK: Size:64
// CHECK: Alignment:64
struct AlignedBase {
};
// CHECK: Type: struct Derived
// CHECK: Alignment:64
struct Derived : AlignedBase {
};
void use_structs() {
Derived d;
}