mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 23:06:05 +00:00

-cc1gen-reproducer driver option The recommit fixes: - An MSAN failure (CCPrintOptions wasn't initialized in the Driver) - Ensures that the strings in the libclang invocation files are escaped Original message: This commit is a follow up to the previous work that recorded Libclang invocations into temporary files: r319702. It adds a new -cc1 mode to clang: -cc1gen-reproducer. The goal of this mode is to generate Clang reproducer files for Libclang tool invocation. The JSON format in the invocation files is not really intended to be stable, so Libclang and Clang should be of the same version when generating reproducers. The new mode emits the information about the temporary files and Libclang-specific information to stdout using JSON. rdar://35322614 Differential Revision: https://reviews.llvm.org/D40983 llvm-svn: 329465
22 lines
747 B
C
22 lines
747 B
C
// RUN: rm -rf %t
|
|
// RUN: mkdir %t
|
|
// RUN: env CINDEXTEST_INVOCATION_EMISSION_PATH=%t not c-index-test -test-load-source all %s
|
|
// RUN: %clang -cc1gen-reproducer %t/libclang-* -v | FileCheck %s
|
|
|
|
// Invocation file must be removed by clang:
|
|
// RUN: ls %t | count 0
|
|
|
|
// RUN: rm -rf %t
|
|
// RUN: mkdir %t
|
|
// RUN: env CINDEXTEST_INVOCATION_EMISSION_PATH=%t not c-index-test -test-load-source all "-remap-file=%s,%S/Inputs/record-parsing-invocation-remap.c" %s
|
|
// RUN: %clang -cc1gen-reproducer %t/libclang-* -v | FileCheck %s
|
|
|
|
#pragma clang __debug parser_crash
|
|
|
|
// CHECK: REPRODUCER METAINFO: {"libclang.operation": "parse", "libclang.opts": "1"}
|
|
|
|
// CHECK: REPRODUCER:
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: "files":["{{.*}}.c","{{.*}}.sh"]
|
|
// CHECK-NEXT: }
|