mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-27 23:38:59 -04:00

One way to currently test the reproducers is to setup "FORCE_CLANG_DIAGNOSTICS_CRASH=1" before invoking clang. This simulates a crash and produces the same contents needed by the reproducers. The reproducers are specially useful when triaging Modules issues, not only on crashes, but also for reproducing misleading warnings, errors, etc. Add a '-gen-reproducer' driver option to clang (or any similar name) and give users a flag option. Note that clang already has a -fno-crash-diagnostics, which disables the crash reproducers. I've decided not to propose "-fcrash-diagnostics" since it doesn't convey the ideia of reproduction despite a crash. rdar://problem/24114619 Differential Revision: https://reviews.llvm.org/D27604 llvm-svn: 300109
35 lines
1.6 KiB
Objective-C
35 lines
1.6 KiB
Objective-C
// REQUIRES: crash-recovery, shell, system-darwin
|
|
// RUN: rm -rf %t
|
|
// RUN: mkdir -p %t/i %t/m %t
|
|
|
|
// RUN: not env FORCE_CLANG_DIAGNOSTICS_CRASH= TMPDIR=%t TEMP=%t TMP=%t \
|
|
// RUN: %clang -fsyntax-only %s \
|
|
// RUN: -I %S/Inputs/module -isysroot %/t/i/ \
|
|
// RUN: -fmodules -fmodules-cache-path=%t/m/ -DFOO=BAR 2>&1 | \
|
|
// RUN: FileCheck -check-prefix=CRASH_ENV %s
|
|
|
|
// RUN: not env TMPDIR=%t TEMP=%t TMP=%t \
|
|
// RUN: %clang -gen-reproducer -fsyntax-only %s \
|
|
// RUN: -I %S/Inputs/module -isysroot %/t/i/ \
|
|
// RUN: -fmodules -fmodules-cache-path=%t/m/ -DFOO=BAR 2>&1 | \
|
|
// RUN: FileCheck -check-prefix=CRASH_FLAG %s
|
|
|
|
@import simple;
|
|
const int x = MODULE_MACRO;
|
|
|
|
// CRASH_ENV: failing because environment variable 'FORCE_CLANG_DIAGNOSTICS_CRASH' is set
|
|
// CRASH_ENV: Preprocessed source(s) and associated run script(s) are located at:
|
|
// CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}.m
|
|
// CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}.cache
|
|
// CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}.sh
|
|
// CRASH_ENV-NEXT: note: diagnostic msg: Crash backtrace is located in
|
|
// CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}Library/Logs/DiagnosticReports{{.*}}
|
|
|
|
// CRASH_FLAG: failing because '-gen-reproducer' is used
|
|
// CRASH_FLAG: Preprocessed source(s) and associated run script(s) are located at:
|
|
// CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}.m
|
|
// CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}.cache
|
|
// CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}.sh
|
|
// CRASH_FLAG-NEXT: note: diagnostic msg: Crash backtrace is located in
|
|
// CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}Library/Logs/DiagnosticReports{{.*}}
|