mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-19 11:35:51 -04:00

With this patch, the clang tool will now call the -cc1 invocation directly inside the same process. Previously, the -cc1 invocation was creating, and waiting for, a new process. This patch therefore reduces the number of created processes during a build, thus it reduces build times on platforms where process creation can be costly (Windows) and/or impacted by a antivirus. It also makes debugging a bit easier, as there's no need to attach to the secondary -cc1 process anymore, breakpoints will be hit inside the same process. Crashes or signaling inside the -cc1 invocation will have the same side-effect as before, and will be reported through the same means. This behavior can be controlled at compile-time through the CLANG_SPAWN_CC1 cmake flag, which defaults to OFF. Setting it to ON will revert to the previous behavior, where any -cc1 invocation will create/fork a secondary process. At run-time, it is also possible to tweak the CLANG_SPAWN_CC1 environment variable. Setting it and will override the compile-time setting. A value of 0 calls -cc1 inside the calling process; a value of 1 will create a secondary process, as before. Differential Revision: https://reviews.llvm.org/D69825
62 lines
3.9 KiB
C
62 lines
3.9 KiB
C
// RUN: not %clang %s -cake-is-lie -%0 -%d -HHHH -munknown-to-clang-option -print-stats -funknown-to-clang-option -ifoo -imultilib dir -### 2>&1 | \
|
|
// RUN: FileCheck %s
|
|
// RUN: %clang %s -imultilib dir -### 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=MULTILIB
|
|
// RUN: not %clang %s -stdlibs=foo -hell -version -### 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=DID-YOU-MEAN
|
|
// RUN: %clang_cl -cake-is-lie -%0 -%d -HHHH -munknown-to-clang-option -print-stats -funknown-to-clang-option -### -c -- %s 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=CL
|
|
// RUN: %clang_cl -Brepo -### -- %s 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=CL-DID-YOU-MEAN
|
|
// RUN: %clang_cl /Brepo -### -- %s 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=CL-DID-YOU-MEAN-SLASH
|
|
// RUN: not %clang_cl -cake-is-lie -%0 -%d -HHHH -munknown-to-clang-option -print-stats -funknown-to-clang-option -c -Werror=unknown-argument -### -- %s 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=CL-ERROR
|
|
// RUN: not %clang_cl -helo -Werror=unknown-argument -### -- %s 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=CL-ERROR-DID-YOU-MEAN
|
|
// RUN: %clang_cl -cake-is-lie -%0 -%d -HHHH -munknown-to-clang-option -print-stats -funknown-to-clang-option -c -Wno-unknown-argument -### -- %s 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=SILENT
|
|
// RUN: not %clang -cc1as -hell --version 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=CC1AS-DID-YOU-MEAN
|
|
// RUN: not %clang -cc1asphalt -help 2>&1 | \
|
|
// RUN: FileCheck %s --check-prefix=UNKNOWN-INTEGRATED
|
|
|
|
// CHECK: error: unknown argument: '-cake-is-lie'
|
|
// CHECK: error: unknown argument: '-%0'
|
|
// CHECK: error: unknown argument: '-%d'
|
|
// CHECK: error: unknown argument: '-HHHH'
|
|
// CHECK: error: unknown argument: '-munknown-to-clang-option'
|
|
// CHECK: error: unknown argument: '-print-stats'
|
|
// CHECK: error: unknown argument: '-funknown-to-clang-option'
|
|
// CHECK: error: unknown argument: '-ifoo'
|
|
// MULTILIB: warning: argument unused during compilation: '-imultilib dir'
|
|
// DID-YOU-MEAN: error: unknown argument '-stdlibs=foo'; did you mean '-stdlib=foo'?
|
|
// DID-YOU-MEAN: error: unknown argument '-hell'; did you mean '-help'?
|
|
// DID-YOU-MEAN: error: unknown argument '-version'; did you mean '--version'?
|
|
// CL: warning: unknown argument ignored in clang-cl: '-cake-is-lie'
|
|
// CL: warning: unknown argument ignored in clang-cl: '-%0'
|
|
// CL: warning: unknown argument ignored in clang-cl: '-%d'
|
|
// CL: warning: unknown argument ignored in clang-cl: '-HHHH'
|
|
// CL: warning: unknown argument ignored in clang-cl: '-munknown-to-clang-option'
|
|
// CL: warning: unknown argument ignored in clang-cl: '-print-stats'
|
|
// CL: warning: unknown argument ignored in clang-cl: '-funknown-to-clang-option'
|
|
// CL-DID-YOU-MEAN: warning: unknown argument ignored in clang-cl '-Brepo'; did you mean '-Brepro'?
|
|
// CL-DID-YOU-MEAN-SLASH: error: no such file or directory: '/Brepo'; did you mean '/Brepro'?
|
|
// CL-ERROR: error: unknown argument ignored in clang-cl: '-cake-is-lie'
|
|
// CL-ERROR: error: unknown argument ignored in clang-cl: '-%0'
|
|
// CL-ERROR: error: unknown argument ignored in clang-cl: '-%d'
|
|
// CL-ERROR: error: unknown argument ignored in clang-cl: '-HHHH'
|
|
// CL-ERROR: error: unknown argument ignored in clang-cl: '-munknown-to-clang-option'
|
|
// CL-ERROR: error: unknown argument ignored in clang-cl: '-print-stats'
|
|
// CL-ERROR: error: unknown argument ignored in clang-cl: '-funknown-to-clang-option'
|
|
// CL-ERROR-DID-YOU-MEAN: error: unknown argument ignored in clang-cl '-helo'; did you mean '-help'?
|
|
// SILENT-NOT: error:
|
|
// SILENT-NOT: warning:
|
|
// CC1AS-DID-YOU-MEAN: error: unknown argument '-hell'; did you mean '-help'?
|
|
// CC1AS-DID-YOU-MEAN: error: unknown argument '--version'; did you mean '-version'?
|
|
// UNKNOWN-INTEGRATED: error: unknown integrated tool '-cc1asphalt'. Valid tools include '-cc1' and '-cc1as'.
|
|
|
|
// RUN: %clang -S %s -o %t.s -Wunknown-to-clang-option 2>&1 | FileCheck --check-prefix=IGNORED %s
|
|
|
|
// IGNORED: warning: unknown warning option '-Wunknown-to-clang-option'
|