1*b09ba426SYing Yi // Test for debug info related to DW_AT_alignment attribute in the struct type. 2*b09ba426SYing Yi // RUN: %clang_cc1 -dwarf-version=5 -debug-info-kind=standalone -S -emit-llvm %s -o - | FileCheck %s 3*b09ba426SYing Yi 4*b09ba426SYing Yi // CHECK-DAG: DICompositeType(tag: DW_TAG_structure_type, name: "MyType", {{.*}}, align: 32 5*b09ba426SYing Yi // CHECK-DAG: DICompositeType(tag: DW_TAG_structure_type, name: "MyType1", {{.*}}, align: 8 6*b09ba426SYing Yi // CHECK-DAG: DICompositeType(tag: DW_TAG_structure_type, name: "MyType2", {{.*}}, align: 8 7*b09ba426SYing Yi 8*b09ba426SYing Yi struct MyType { 9*b09ba426SYing Yi int m; 10*b09ba426SYing Yi } __attribute__((aligned(1))); 11*b09ba426SYing Yi MyType mt; 12*b09ba426SYing Yi 13*b09ba426SYing Yi static_assert(alignof(MyType) == 4, "alignof MyType is wrong"); 14*b09ba426SYing Yi 15*b09ba426SYing Yi struct MyType1 { 16*b09ba426SYing Yi int m; 17*b09ba426SYing Yi } __attribute__((packed, aligned(1))); 18*b09ba426SYing Yi MyType1 mt1; 19*b09ba426SYing Yi 20*b09ba426SYing Yi static_assert(alignof(MyType1) == 1, "alignof MyType1 is wrong"); 21*b09ba426SYing Yi 22*b09ba426SYing Yi struct MyType2 { 23*b09ba426SYing Yi __attribute__((packed)) int m; 24*b09ba426SYing Yi } __attribute__((aligned(1))); 25*b09ba426SYing Yi MyType2 mt2; 26*b09ba426SYing Yi 27*b09ba426SYing Yi static_assert(alignof(MyType2) == 1, "alignof MyType2 is wrong"); 28