xref: /llvm-project/clang/test/Modules/ModuleDebugInfoDwoId.cpp (revision 7793e676514bc102e97a993e90257e8628069a8b)
1*7793e676SPaul Robinson // UNSUPPORTED: target={{.*}}-zos{{.*}}, target={{.*}}-aix{{.*}}
2105151caSRaphael Isemann // Tests that dwoIds in modules match the dwoIDs in the main file.
3105151caSRaphael Isemann 
4105151caSRaphael Isemann // REQUIRES: asserts
5105151caSRaphael Isemann 
6105151caSRaphael Isemann // RUN: rm -rf %t.cache
7105151caSRaphael Isemann // RUN: %clang_cc1 -triple %itanium_abi_triple -x objective-c++ -std=c++11 -debugger-tuning=lldb -debug-info-kind=limited -fmodules -fmodule-format=obj -dwarf-ext-refs -fimplicit-module-maps -fmodules-cache-path=%t.cache %s -I %S/Inputs -emit-llvm -o %t.ll -mllvm -debug-only=pchcontainer 2> %t.mod-out
8105151caSRaphael Isemann // RUN: cat %t.ll %t.mod-out | FileCheck %s
9105151caSRaphael Isemann // RUN: cat %t.ll | FileCheck --check-prefix=CHECK-REALIDS %s
10105151caSRaphael Isemann // RUN: cat %t.mod-out | FileCheck --check-prefix=CHECK-REALIDS %s
11105151caSRaphael Isemann 
12105151caSRaphael Isemann @import DebugDwoId;
13105151caSRaphael Isemann 
14105151caSRaphael Isemann Dummy d;
15105151caSRaphael Isemann 
16105151caSRaphael Isemann // Find the emitted dwoID for DebugInfoId and compare it against the one in the PCM.
17105151caSRaphael Isemann // CHECK: DebugDwoId-{{[A-Z0-9]+}}.pcm
18105151caSRaphael Isemann // CHECK-SAME: dwoId: [[DWOID:[0-9]+]]
19105151caSRaphael Isemann // CHECK: dwoId: [[DWOID]]
20105151caSRaphael Isemann // CHECK-NEXT: !DIFile(filename: "DebugDwoId"
21105151caSRaphael Isemann 
22105151caSRaphael Isemann // Make sure the dwo IDs are real IDs and not fallback values (~1ULL).
23105151caSRaphael Isemann // CHECK-REALIDS-NOT: dwoId: 18446744073709551615
24