84 changes: 42 additions & 42 deletions llvm/test/DebugInfo/X86/align_cpp11.ll
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
; RUN: llc -filetype=obj < %s | llvm-dwarfdump -debug-info - | FileCheck %s
; RUN: llc -filetype=obj < %s | llvm-dwarfdump -debug-info -c -n S -n C0 -n C1 -n s -n E -n foo - \
; RUN: | FileCheck %s --implicit-check-not=DW_TAG

; Generated by clang++ -c -g -std=c++11 -S -emit-llvm from the following C++11 source
; struct S {
Expand Down Expand Up @@ -32,47 +33,46 @@
; auto Lambda = [i](){};
; }

; CHECK: DW_TAG_class_type
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name{{.*}}"C0"
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}64

; CHECK: DW_TAG_variable
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name{{.*}}"s"
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}2048

; CHECK: DW_TAG_structure_type
; CHECK: DW_TAG_member
; CHECK: DW_AT_name{{.*}}"xx"
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}128

; CHECK: DW_TAG_enumeration_type
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}16

; CHECK: DW_TAG_variable
; CHECK: DW_AT_name{{.*}}"i"
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}32
; CHECK: DW_TAG_class_type
; CHECK: DW_TAG_member
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name{{.*}}"i"
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}32

; CHECK: DW_TAG_class_type
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name{{.*}}"C1"
; CHECK: DW_TAG_member
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name{{.*}}"p"
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}64
; CHECK: DW_TAG_class_type
; CHECK: DW_AT_name{{.*}}"C0"
; CHECK: DW_AT_alignment{{.*}}64

; CHECK: DW_TAG_variable
; CHECK: DW_AT_name{{.*}}"s"
; CHECK: DW_AT_alignment{{.*}}2048

; CHECK: DW_TAG_structure_type
; CHECK: DW_TAG_member
; CHECK: DW_TAG_member
; CHECK: DW_AT_name{{.*}}"xx"
; CHECK: DW_AT_alignment{{.*}}128

; CHECK: DW_TAG_enumeration_type
; CHECK: DW_AT_alignment{{.*}}16
; CHECK: DW_TAG_enumerator
; CHECK: DW_TAG_enumerator
; CHECK: DW_TAG_enumerator

; CHECK: DW_TAG_subprogram
; CHECK: DW_TAG_variable
; CHECK: DW_TAG_variable
; CHECK: DW_TAG_variable
; CHECK: DW_TAG_variable
; CHECK: DW_AT_name{{.*}}"i"
; CHECK: DW_AT_alignment{{.*}}32
; CHECK: DW_TAG_variable
; CHECK: DW_TAG_class_type
; CHECK: DW_TAG_member
; CHECK: DW_AT_name{{.*}}"i"
; CHECK: DW_AT_alignment{{.*}}32
; CHECK: DW_TAG_subprogram
; CHECK: DW_TAG_formal_parameter

; CHECK: DW_TAG_class_type
; CHECK: DW_AT_name{{.*}}"C1"
; CHECK: DW_TAG_member
; CHECK: DW_AT_name{{.*}}"p"
; CHECK: DW_AT_alignment{{.*}}64

; ModuleID = 'test.cpp'
source_filename = "test.cpp"
Expand Down
42 changes: 22 additions & 20 deletions llvm/test/DebugInfo/X86/align_objc.ll
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
; RUN: llc -filetype=obj < %s | llvm-dwarfdump -debug-info - | FileCheck %s
; RUN: llc -filetype=obj < %s | llvm-dwarfdump -debug-info - | FileCheck %s --implicit-check-not=DW_TAG

; typedef struct __attribute__((aligned (128))) {
; char c;
Expand All @@ -15,27 +15,29 @@
; __attribute__((aligned (32))) int i;
; }

; CHECK: DW_TAG_typedef
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name{{.*}}"S0"
; CHECK: DW_TAG_structure_type
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}128
; CHECK: DW_TAG_compile_unit
; CHECK: DW_TAG_variable
; CHECK: DW_TAG_typedef
; CHECK: DW_AT_name{{.*}}"S0"

; CHECK: DW_TAG_variable
; CHECK: DW_AT_name{{.*}}"i"
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}32
; CHECK: DW_TAG_structure_type
; CHECK: DW_AT_alignment{{.*}}128
; CHECK: DW_TAG_member
; CHECK: DW_TAG_base_type

; CHECK: DW_TAG_typedef
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name{{.*}}"S1"
; CHECK: DW_TAG_structure_type
; CHECK: DW_TAG_member
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name{{.*}}"c"
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_alignment{{.*}}64
; CHECK: DW_TAG_subprogram
; CHECK: DW_TAG_variable
; CHECK: DW_TAG_variable
; CHECK: DW_AT_name{{.*}}"i"
; CHECK: DW_AT_alignment{{.*}}32

; CHECK: DW_TAG_typedef
; CHECK: DW_AT_name{{.*}}"S1"
; CHECK: DW_TAG_structure_type
; CHECK: DW_TAG_member
; CHECK: DW_AT_name{{.*}}"c"
; CHECK: DW_AT_alignment{{.*}}64
; CHECK: DW_TAG_base_type

; ModuleID = 'test.m'
source_filename = "test.m"
Expand Down
267 changes: 109 additions & 158 deletions llvm/test/DebugInfo/X86/gnu-public-names.ll
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
; RUN: llc -mtriple=x86_64-pc-linux-gnu < %s | FileCheck -check-prefix=ASM %s
; RUN: llc -mtriple=x86_64-pc-linux-gnu -filetype=obj < %s | llvm-dwarfdump -v - | FileCheck %s
; RUN: llc -mtriple=x86_64-pc-linux-gnu -filetype=obj < %s | llvm-dwarfdump --debug-info --debug-gnu-pubnames --debug-gnu-pubtypes - | FileCheck %s --implicit-check-not "{{DW_TAG|NULL}}"
; ModuleID = 'dwarf-public-names.cpp'
;
; Generated from:
Expand Down Expand Up @@ -73,170 +73,121 @@
; ASM-NEXT: .asciz "C" # External Name

; CHECK: .debug_info contents:
; CHECK: Compile Unit:
; CHECK: DW_AT_GNU_pubnames [DW_FORM_flag_present] (true)
; CHECK: DW_TAG_compile_unit
; CHECK: DW_AT_GNU_pubnames (true)
; CHECK-NOT: DW_AT_GNU_pubtypes [

; CHECK: [[STATIC_MEM_VAR:0x[0-9a-f]+]]: DW_TAG_variable
; CHECK-NEXT: DW_AT_specification {{.*}} "static_member_variable"

; CHECK: [[C:0x[0-9a-f]+]]: DW_TAG_structure_type
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "C"

; CHECK: DW_TAG_member
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "static_member_variable"

; CHECK: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_linkage_name
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "member_function"

; CHECK: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_linkage_name
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "static_member_function"

; CHECK: [[INT:0x[0-9a-f]+]]: DW_TAG_base_type
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "int"

; CHECK: [[GLOB_VAR:0x[0-9a-f]+]]: DW_TAG_variable
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "global_variable"

; CHECK: [[NS:0x[0-9a-f]+]]: DW_TAG_namespace
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "ns"

; CHECK: [[GLOB_NS_VAR:0x[0-9a-f]+]]: DW_TAG_variable
; CHECK-NOT: {{DW_TAG|NULL|DW_AT_specification}}
; CHECK: DW_AT_name {{.*}} "global_namespace_variable"
; CHECK-NOT: {{DW_TAG|NULL|DW_AT_specification}}
; CHECK-NOT: DW_AT_specification
; CHECK: DW_AT_location
; CHECK-NOT: DW_AT_specification

; CHECK: [[D_VAR:0x[0-9a-f]+]]: DW_TAG_variable
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "d"
; CHECK-NOT: {{DW_TAG|NULL|DW_AT_specification}}
; CHECK: DW_AT_location
; CHECK-NOT: DW_AT_specification

; CHECK: [[D:0x[0-9a-f]+]]: DW_TAG_structure_type
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "D"

; CHECK: [[GLOB_NS_FUNC:0x[0-9a-f]+]]: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_linkage_name
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "global_namespace_function"

; CHECK: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "f3"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: [[F3_Z:.*]]: DW_TAG_variable
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name {{.*}} "z"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_location
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: NULL
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: [[STATIC_MEM_VAR:0x[0-9a-f]+]]: DW_TAG_variable
; CHECK: DW_AT_specification {{.*}} "static_member_variable"

; CHECK: [[C:0x[0-9a-f]+]]: DW_TAG_structure_type
; CHECK: DW_AT_name ("C")
; CHECK: DW_TAG_member
; CHECK: DW_AT_name ("static_member_variable")
; CHECK: DW_TAG_subprogram
; CHECK: DW_AT_linkage_name
; CHECK: DW_AT_name ("member_function")
; CHECK: DW_TAG_formal_parameter
; CHECK: NULL
; CHECK: DW_TAG_subprogram
; CHECK: DW_AT_linkage_name
; CHECK: DW_AT_name ("static_member_function")
; CHECK: NULL

; CHECK: [[INT:0x[0-9a-f]+]]: DW_TAG_base_type
; CHECK: DW_AT_name ("int")
; CHECK: DW_TAG_pointer_type

; CHECK: [[GLOB_VAR:0x[0-9a-f]+]]: DW_TAG_variable
; CHECK: DW_AT_name ("global_variable")

; CHECK: [[NS:0x[0-9a-f]+]]: DW_TAG_namespace
; CHECK: DW_AT_name ("ns")
; CHECK: [[GLOB_NS_VAR:0x[0-9a-f]+]]: DW_TAG_variable
; CHECK: DW_AT_name ("global_namespace_variable")
; CHECK-NOT: DW_AT_specification
; CHECK: DW_AT_location
; CHECK-NOT: DW_AT_specification
; CHECK: [[D_VAR:0x[0-9a-f]+]]: DW_TAG_variable
; CHECK: DW_AT_name ("d")
; CHECK-NOT: DW_AT_specification
; CHECK: DW_AT_location
; CHECK-NOT: DW_AT_specification
; CHECK: [[D:0x[0-9a-f]+]]: DW_TAG_structure_type
; CHECK: DW_AT_name ("D")
; CHECK: DW_TAG_member
; CHECK: NULL
; CHECK: DW_TAG_variable
; CHECK: [[GLOB_NS_FUNC:0x[0-9a-f]+]]: DW_TAG_subprogram
; CHECK: DW_AT_linkage_name
; CHECK: DW_AT_name ("global_namespace_function")
; CHECK: NULL

; CHECK: DW_TAG_subprogram
; CHECK: DW_AT_name ("f3")
; CHECK: [[F3_Z:.*]]: DW_TAG_variable
; CHECK: DW_AT_name ("z")
; CHECK: DW_AT_location
; CHECK: NULL

; CHECK: [[ANON:.*]]: DW_TAG_namespace
; CHECK: [[ANON:.*]]: DW_TAG_namespace
; CHECK-NOT: DW_AT_name
; CHECK: [[ANON_I:.*]]: DW_TAG_variable
; CHECK: DW_AT_name ("i")
; CHECK: [[ANON_INNER:.*]]: DW_TAG_namespace
; CHECK: DW_AT_name ("inner")
; CHECK: [[ANON_INNER_B:.*]]: DW_TAG_variable
; CHECK: DW_AT_name ("b")
; CHECK: NULL
; CHECK: NULL

; CHECK: [[OUTER:.*]]: DW_TAG_namespace
; CHECK: DW_AT_name ("outer")
; CHECK: [[OUTER_ANON:.*]]: DW_TAG_namespace
; CHECK-NOT: DW_AT_name
; CHECK: [[ANON_I:.*]]: DW_TAG_variable
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "i"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: [[ANON_INNER:.*]]: DW_TAG_namespace
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name {{.*}} "inner"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: [[ANON_INNER_B:.*]]: DW_TAG_variable
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name {{.*}} "b"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: [[OUTER_ANON_C:.*]]: DW_TAG_variable
; CHECK: DW_AT_name ("c")
; CHECK: NULL
; CHECK: NULL
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: NULL
; CHECK-NOT: {{DW_TAG|NULL}}

; CHECK: [[OUTER:.*]]: DW_TAG_namespace
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "outer"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: [[OUTER_ANON:.*]]: DW_TAG_namespace
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK-NOT: DW_AT_name
; CHECK: [[OUTER_ANON_C:.*]]: DW_TAG_variable
; CHECK-NOT: DW_TAG
; CHECK: DW_AT_name {{.*}} "c"
; CHECK-NOT: {{DW_TAG|NULL}}

; CHECK: DW_TAG_enumeration
; CHECK: [[UNNAMED_ENUM_ENUMERATOR:0x[0-9a-f]+]]: DW_TAG_enumerator
; CHECK: DW_AT_name ("unnamed_enum_enumerator")
; CHECK: NULL
; CHECK-NOT: {{DW_TAG|NULL}}

; CHECK: [[UNSIGNED_INT:0x[0-9a-f]+]]: DW_TAG_base_type
; CHECK: DW_AT_name ("unsigned int")

; CHECK: [[NAMED_ENUM:0x[0-9a-f]+]]: DW_TAG_enumeration
; CHECK: DW_AT_name ("named_enum")
; CHECK: [[NAMED_ENUM_ENUMERATOR:0x[0-9a-f]+]]: DW_TAG_enumerator
; CHECK: DW_AT_name ("named_enum_enumerator")
; CHECK: NULL

; CHECK: [[NAMED_ENUM_CLASS:0x[0-9a-f]+]]: DW_TAG_enumeration
; CHECK: DW_AT_name ("named_enum_class")
; CHECK: [[NAMED_ENUM_CLASS_ENUMERATOR:0x[0-9a-f]+]]: DW_TAG_enumerator
; CHECK: DW_AT_name ("named_enum_class_enumerator")
; CHECK: NULL

; CHECK: DW_TAG_imported_declaration

; CHECK: [[MEM_FUNC:0x[0-9a-f]+]]: DW_TAG_subprogram
; CHECK: DW_AT_specification {{.*}} "_ZN1C15member_functionEv"
; CHECK: DW_TAG_formal_parameter
; CHECK: NULL
; CHECK-NOT: {{DW_TAG|NULL}}

; CHECK: DW_TAG_enumeration
; CHECK-NOT: {{DW_AT_name|DW_TAG|NULL}}
; CHECK: [[UNNAMED_ENUM_ENUMERATOR:0x[0-9a-f]+]]: DW_TAG_enumerator
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "unnamed_enum_enumerator"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: NULL
; CHECK-NOT: {{DW_TAG|NULL}}

; CHECK: [[UNSIGNED_INT:0x[0-9a-f]+]]: DW_TAG_base_type
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "unsigned int"
; CHECK-NOT: {{DW_TAG|NULL}}

; CHECK: [[NAMED_ENUM:0x[0-9a-f]+]]: DW_TAG_enumeration
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "named_enum"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: [[NAMED_ENUM_ENUMERATOR:0x[0-9a-f]+]]: DW_TAG_enumerator
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "named_enum_enumerator"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: NULL
; CHECK-NOT: {{DW_TAG|NULL}}

; CHECK: [[NAMED_ENUM_CLASS:0x[0-9a-f]+]]: DW_TAG_enumeration
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "named_enum_class"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: [[NAMED_ENUM_CLASS_ENUMERATOR:0x[0-9a-f]+]]: DW_TAG_enumerator
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "named_enum_class_enumerator"
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: NULL
; CHECK-NOT: {{DW_TAG|NULL}}

; CHECK: DW_TAG_imported_declaration
; CHECK-NOT: {{DW_TAG|NULL}}

; CHECK: [[MEM_FUNC:0x[0-9a-f]+]]: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_specification {{.*}} "_ZN1C15member_functionEv"

; CHECK: [[STATIC_MEM_FUNC:0x[0-9a-f]+]]: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_specification {{.*}} "_ZN1C22static_member_functionEv"

; CHECK: [[GLOBAL_FUNC:0x[0-9a-f]+]]: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_linkage_name
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK: DW_AT_name {{.*}} "global_function"

; CHECK: [[STATIC_MEM_FUNC:0x[0-9a-f]+]]: DW_TAG_subprogram
; CHECK: DW_AT_specification {{.*}} "_ZN1C22static_member_functionEv"

; CHECK: [[GLOBAL_FUNC:0x[0-9a-f]+]]: DW_TAG_subprogram
; CHECK: DW_AT_linkage_name
; CHECK: DW_AT_name ("global_function")

; CHECK: DW_TAG_subprogram
; CHECK: DW_TAG_pointer_type
; CHECK: DW_TAG_pointer_type
; CHECK: NULL

; CHECK-LABEL: .debug_gnu_pubnames contents:
; CHECK-NEXT: length = {{.*}}, version = 0x0002, unit_offset = 0x00000000, unit_size = {{.*}}
Expand Down