diff options
| author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2016-12-12 19:28:25 +0000 |
|---|---|---|
| committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2016-12-12 19:28:25 +0000 |
| commit | 7aff2bb3d23bb1f4f970d382dc1696392ce99827 (patch) | |
| tree | b71c44e25aa600ce477d84b3b2b159df7edd7070 /clang/test | |
| parent | b4d56f1a4f972ed9ed0b5b7f61d749e025320027 (diff) | |
| download | bcm5719-llvm-7aff2bb3d23bb1f4f970d382dc1696392ce99827.tar.gz bcm5719-llvm-7aff2bb3d23bb1f4f970d382dc1696392ce99827.zip | |
[CrashReproducer] Collect PCH included via -include-pch
Collect the necessary input PCH files.
Do not try to validate the AST before copying it out because if the
crash is in this path, we won't be able to collect it. Instead only
check if it's a file containg an AST.
rdar://problem/27913709
llvm-svn: 289460
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Modules/crash-vfs-include-pch.m | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/clang/test/Modules/crash-vfs-include-pch.m b/clang/test/Modules/crash-vfs-include-pch.m new file mode 100644 index 00000000000..78a8e149a41 --- /dev/null +++ b/clang/test/Modules/crash-vfs-include-pch.m @@ -0,0 +1,43 @@ +// REQUIRES: crash-recovery, shell, system-darwin +// +// RUN: rm -rf %t +// RUN: mkdir -p %t/m %t/out + +// RUN: %clang_cc1 -x objective-c-header -emit-pch %S/Inputs/pch-used.h \ +// RUN: -o %t/out/pch-used.h.pch -fmodules -fimplicit-module-maps \ +// RUN: -fmodules-cache-path=%t/cache -O0 \ +// RUN: -isystem %S/Inputs/System/usr/include + +// RUN: not env FORCE_CLANG_DIAGNOSTICS_CRASH= TMPDIR=%t TEMP=%t TMP=%t \ +// RUN: %clang %s -E -include-pch %t/out/pch-used.h.pch -fmodules -nostdlibinc \ +// RUN: -fimplicit-module-maps -fmodules-cache-path=%t/cache -O0 \ +// RUN: -Xclang -fno-validate-pch -isystem %S/Inputs/System/usr/include \ +// RUN: -o %t/output.E 2>&1 | FileCheck %s + +// RUN: FileCheck --check-prefix=CHECKSH %s -input-file %t/crash-vfs-*.sh +// RUN: FileCheck --check-prefix=CHECKYAML %s -input-file \ +// RUN: %t/crash-vfs-*.cache/vfs/vfs.yaml + +void f() { SPXTrace(); } +void g() { double x = DBL_MAX; } + +// CHECK: Preprocessed source(s) and associated run script(s) are located at: +// CHECK-NEXT: note: diagnostic msg: {{.*}}.m +// CHECK-NEXT: note: diagnostic msg: {{.*}}.cache + +// CHECKSH: "-include-pch" "/[[INCPATH:.*]]/out/pch-used.h.pch" +// CHECKSH: "crash-vfs-{{[^ ]*}}.m" +// CHECKSH: "-ivfsoverlay" "crash-vfs-{{[^ ]*}}.cache/vfs/vfs.yaml" +// CHECKSH: "-fmodules-cache-path=crash-vfs-{{[^ ]*}}.cache/repro-modules" + +// CHECKYAML: 'case-sensitive': +// CHECKYAML-NEXT: 'use-external-names': 'false', +// CHECKYAML-NEXT: 'overlay-relative': 'true', +// CHECKYAML-NEXT: 'ignore-non-existent-contents': 'false' +// CHECKYAML: 'type': 'directory' +// CHECKYAML: 'name': "/[[PATH:.*]]/out", +// CHECKYAML-NEXT: 'contents': [ +// CHECKYAML-NEXT: { +// CHECKYAML-NEXT: 'type': 'file', +// CHECKYAML-NEXT: 'name': "pch-used.h.pch", +// CHECKYAML-NEXT: 'external-contents': "/[[PATH]]/out/pch-used.h.pch" |

