Add original source code to test case as suggested in review.

llvm-svn: 240863
This commit is contained in:
Adrian Prantl 2015-06-27 00:01:33 +00:00
parent 0ec4006593
commit ca28a083c8

View File

@ -7,6 +7,19 @@ target triple = "x86_64-apple-darwin"
; RUN: llvm-dwarfdump -debug-dump=info %t.o | FileCheck %s
; REQUIRES: object-emission
; // ---------------------------------------------------------------------
; // Not packed.
; // ---------------------------------------------------------------------
; struct size8 {
; int i : 4;
; long long l : 60;
; };
; struct layout0 {
; char l0_ofs0;
; struct size8 l0_ofs8;
; int l0_ofs16 : 1;
; } l0;
%struct.layout0 = type { i8, %struct.size8, i8 }
%struct.size8 = type { i64 }
; CHECK: DW_TAG_structure_type
@ -24,6 +37,20 @@ target triple = "x86_64-apple-darwin"
; CHECK: DW_AT_bit_offset {{.*}} (0x1f)
; CHECK: DW_AT_data_member_location {{.*}}10
; // ---------------------------------------------------------------------
; // Implicitly packed.
; // ---------------------------------------------------------------------
; struct size8_anon {
; int : 4;
; long long : 60;
; };
; struct layout1 {
; char l1_ofs0;
; struct size8_anon l1_ofs1;
; int l1_ofs9 : 1;
; } l1;
%struct.layout1 = type <{ i8, %struct.size8_anon, i8, [2 x i8] }>
%struct.size8_anon = type { i64 }
@ -43,6 +70,21 @@ target triple = "x86_64-apple-darwin"
; CHECK: DW_AT_bit_offset {{.*}} (0x17)
; CHECK: DW_AT_data_member_location {{.*}}08
; // ---------------------------------------------------------------------
; // Explicitly packed.
; // ---------------------------------------------------------------------
; #pragma pack(1)
; struct size8_pack1 {
; int i : 4;
; long long l : 60;
; };
; struct layout2 {
; char l2_ofs0;
; struct size8_pack1 l2_ofs1;
; int l2_ofs9 : 1;
; } l2;
; #pragma pack()
%struct.layout2 = type <{ i8, %struct.size8_pack1, i8 }>
%struct.size8_pack1 = type { i64 }
@ -62,6 +104,22 @@ target triple = "x86_64-apple-darwin"
; CHECK: DW_AT_bit_offset {{.*}} (0x17)
; CHECK: DW_AT_data_member_location {{.*}}08
; // ---------------------------------------------------------------------
; // Explicitly packed with different alignment.
; // ---------------------------------------------------------------------
; #pragma pack(4)
; struct size8_pack4 {
; int i : 4;
; long long l : 60;
; };
; struct layout3 {
; char l3_ofs0;
; struct size8_pack4 l3_ofs4;
; int l3_ofs12 : 1;
; } l 3;
; #pragma pack()
%struct.layout3 = type <{ i8, [3 x i8], %struct.size8_pack4, i8, [3 x i8] }>
%struct.size8_pack4 = type { i64 }