brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · c527c43 Raw
89 lines · plain
1// UNSUPPORTED: target={{.*}}-zos{{.*}}, target={{.*}}-aix{{.*}}2// Test that debug info is emitted for an Objective-C module and3// a precompiled header.4 5// REQUIRES: asserts6 7// Modules:8// RUN: rm -rf %t9// RUN: %clang_cc1 -x objective-c -fmodules -fmodule-format=obj \10// RUN:   -fimplicit-module-maps -DMODULES -fmodules-cache-path=%t %s \11// RUN:   -I %S/Inputs -I %t -emit-llvm -o %t.ll \12// RUN:   -mllvm -debug-only=pchcontainer &>%t-mod.ll13// RUN: cat %t-mod.ll | FileCheck %s14// RUN: cat %t-mod.ll | FileCheck %s --check-prefix=CHECK215 16// PCH:17// RUN: %clang_cc1 -x objective-c -emit-pch -fmodule-format=obj -I %S/Inputs \18// RUN:   -o %t.pch %S/Inputs/DebugObjC.h \19// RUN:   -mllvm -debug-only=pchcontainer &>%t-pch.ll20// RUN: cat %t-pch.ll | FileCheck %s21// RUN: cat %t-pch.ll | FileCheck %s --check-prefix=CHECK222 23#ifdef MODULES24@import DebugObjC;25#endif26 27// CHECK: distinct !DICompileUnit(language: DW_LANG_ObjC, file: ![[FILE:[0-9]+]],28// CHECK-SAME:                    isOptimized: false29 30// CHECK: ![[FILE]] = !DIFile(filename: "{{DebugObjC|.*DebugObjC.h}}"31 32// CHECK: !DICompositeType(tag: DW_TAG_enumeration_type,33// CHECK-SAME:             scope: ![[MODULE:[0-9]+]],34// CHECK: ![[MODULE]] = !DIModule(scope: null, name: "DebugObjC35 36// CHECK: ![[TD_ENUM:.*]] = !DICompositeType(tag: DW_TAG_enumeration_type,37// CHECK-NOT:              name:38// CHECK-SAME:             elements:39 40// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "FwdDecl",41// CHECK-SAME:             scope: ![[MODULE]],42// CHECK-SAME:             runtimeLang: DW_LANG_ObjC43 44// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "ObjCClass",45// CHECK-SAME:             scope: ![[MODULE]],46// CHECK-SAME:             elements47 48// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "ObjCClassWithPrivateIVars",49// CHECK-SAME:             scope: ![[MODULE]],50// CHECK-SAME:             elements51 52// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "FwdDeclared"53// CHECK-SAME:             elements:54 55// CHECK: ![[TD_UNION:.*]] = distinct !DICompositeType(tag: DW_TAG_union_type,56// CHECK-NOT:              name:57// CHECK-SAME:             elements:58 59// CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "TypedefUnion",60// CHECK-SAME:           baseType: ![[TD_UNION]])61 62// CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "TypedefEnum",63// CHECK-SAME:           baseType: ![[TD_ENUM:.*]])64 65// CHECK: ![[TD_STRUCT:.*]] = distinct !DICompositeType(tag: DW_TAG_structure_type,66// CHECK-NOT:              name:67// CHECK-SAME:             elements:68// CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "TypedefStruct",69// CHECK-SAME:           baseType: ![[TD_STRUCT]])70 71// CHECK: !DICompositeType(tag: DW_TAG_union_type,72// CHECK-NOT:              name:73// CHECK-SAME:             )74 75// CHECK: !DICompositeType(tag: DW_TAG_structure_type,76// CHECK-NOT:              name:77// CHECK-SAME:             )78 79// CHECK-NEG-NOT: !DICompositeType(tag: DW_TAG_structure_type, name: "PureForwardDecl"80 81// The output order is sublty different for module vs. pch,82// so these are checked separately:83//84// CHECK2: !DICompositeType(tag: DW_TAG_structure_type, name: "FwdDecl",85// CHECK2: !DICompositeType(tag: DW_TAG_structure_type, name: "ObjCClass",86// CHECK2: !DIObjCProperty(name: "property",87// CHECK2: !DIDerivedType(tag: DW_TAG_member, name: "ivar"88// CHECK2: !DIDerivedType(tag: DW_TAG_typedef, name: "InnerEnum"89