xref: /llvm-project/clang/test/PCH/debug-info-pch-path.c (revision 64e4d03c681a1c43ec22aee9ce32b784ed5aee9c)
1 // Unsupported on AIX because we don't support the requisite "__clangast"
2 // section in XCOFF yet.
3 // UNSUPPORTED: target={{.*}}-aix{{.*}}
4 
5 // RUN: rm -rf %t
6 // RUN: mkdir %t
7 // RUN: cd %t
8 //
9 // ---------------------------------------------------------------------
10 // Relative PCH, same directory.
11 // ---------------------------------------------------------------------
12 //
13 // RUN: %clang_cc1 -fmodule-format=obj -emit-pch                \
14 // RUN:     -triple %itanium_abi_triple                         \
15 // RUN:     -o prefix.pch %S/debug-info-limited-struct.h
16 //
17 // RUN: %clang_cc1 -debug-info-kind=standalone                  \
18 // RUN:     -dwarf-ext-refs -fmodule-format=obj                 \
19 // RUN:     -triple %itanium_abi_triple                         \
20 // RUN:     -include-pch prefix.pch %s -emit-llvm -o %t.nodir.ll %s
21 // RUN: cat %t.nodir.ll | FileCheck %s --check-prefix=CHECK-REL-NODIR
22 //
23 //
24 // CHECK-REL-NODIR: !DICompileUnit
25 // CHECK-REL-NODIR-SAME:           file: ![[C:[0-9]+]]
26 // CHECK-REL-NODIR-NOT: dwoId
27 // CHECK-REL-NODIR: ![[C]] = !DIFile({{.*}}directory: "[[DIR:.*]]"
28 // CHECK-REL-NODIR: !DICompileUnit(
29 // CHECK-REL-NODIR-SAME:           file: ![[PCH:[0-9]+]]
30 // CHECK-REL-NODIR-SAME:           splitDebugFilename: "prefix.pch"
31 // CHECK-REL-NODIR: ![[PCH]] = !DIFile({{.*}}directory: "[[DIR]]
32 
33 // ---------------------------------------------------------------------
34 // Relative PCH in a subdirectory.
35 // ---------------------------------------------------------------------
36 //
37 // RUN: mkdir pchdir
38 // RUN: %clang_cc1 -fmodule-format=obj -emit-pch                \
39 // RUN:     -triple %itanium_abi_triple                         \
40 // RUN:     -o pchdir/prefix.pch %S/debug-info-limited-struct.h
41 //
42 // RUN: %clang_cc1 -debug-info-kind=standalone                  \
43 // RUN:     -dwarf-ext-refs -fmodule-format=obj                 \
44 // RUN:     -triple %itanium_abi_triple                         \
45 // RUN:     -include-pch pchdir/prefix.pch %s -emit-llvm -o %t.rel.ll %s
46 // RUN: cat %t.rel.ll | FileCheck %s --check-prefix=CHECK-REL
47 
48 // CHECK-REL: !DICompileUnit
49 // CHECK-REL-SAME:           file: ![[C:[0-9]+]]
50 // CHECK-REL-NOT: dwoId
51 // CHECK-REL: ![[C]] = !DIFile({{.*}}directory: "[[DIR:.*]]"
52 // CHECK-REL: !DICompileUnit(
53 // CHECK-REL-SAME:           file: ![[PCH:[0-9]+]]
54 // CHECK-REL-SAME:           splitDebugFilename: "pchdir{{.*}}prefix.pch"
55 // CHECK-REL: ![[PCH]] = !DIFile({{.*}}directory: "[[DIR]]"
56 
57 // ---------------------------------------------------------------------
58 // Absolute PCH.
59 // ---------------------------------------------------------------------
60 //
61 // RUN: %clang_cc1 -fmodule-format=obj -emit-pch                \
62 // RUN:     -triple %itanium_abi_triple                         \
63 // RUN:     -o %t/prefix.pch %S/debug-info-limited-struct.h
64 //
65 // RUN: %clang_cc1 -debug-info-kind=standalone                  \
66 // RUN:     -dwarf-ext-refs -fmodule-format=obj                 \
67 // RUN:     -triple %itanium_abi_triple                         \
68 // RUN:     -include-pch %t/prefix.pch %s -emit-llvm -o %t.abs.ll %s
69 // RUN: cat %t.abs.ll | FileCheck %s --check-prefix=CHECK-ABS
70 
71 // CHECK-ABS: !DICompileUnit
72 // CHECK-ABS-SAME:           file: ![[C:[0-9]+]]
73 // CHECK-ABS-NOT: dwoId
74 // CHECK-ABS: ![[C]] = !DIFile({{.*}}directory: "[[DIR:.*]]"
75 // CHECK-ABS: !DICompileUnit(
76 // CHECK-ABS-SAME:           file: ![[PCH:[0-9]+]]
77 // CHECK-ABS-SAME:           splitDebugFilename: "prefix.pch"
78 // CHECK-ABS: ![[PCH]] = !DIFile({{.*}}directory: "[[DIR]]
79