forked from OSchip/llvm-project
Avoid conflicts between debug-info and pseudo-probe profiling
After D93264, using both -fdebug-info-for-profiling and -fpseudo-probe-for-profiling will cause the compiler to crash. Diagnose these conflicting options in the driver. Also, the existing CodeGen test was using the driver when it should be running cc1. Differential Revision: https://reviews.llvm.org/D96354
This commit is contained in:
parent
b5f3383152
commit
5ea2d4fa48
|
@ -3746,6 +3746,12 @@ static void renderDebugOptions(const ToolChain &TC, const Driver &D,
|
|||
ArgStringList &CmdArgs,
|
||||
codegenoptions::DebugInfoKind &DebugInfoKind,
|
||||
DwarfFissionKind &DwarfFission) {
|
||||
// These two forms of profiling info can't be used together.
|
||||
if (const Arg *A1 = Args.getLastArg(options::OPT_fpseudo_probe_for_profiling))
|
||||
if (const Arg *A2 = Args.getLastArg(options::OPT_fdebug_info_for_profiling))
|
||||
D.Diag(diag::err_drv_argument_not_allowed_with)
|
||||
<< A1->getAsString(Args) << A2->getAsString(Args);
|
||||
|
||||
if (Args.hasFlag(options::OPT_fdebug_info_for_profiling,
|
||||
options::OPT_fno_debug_info_for_profiling, false) &&
|
||||
checkDebugInfoOption(
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang -O2 -fexperimental-new-pass-manager -fpseudo-probe-for-profiling -g -emit-llvm -S -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -O2 -fno-legacy-pass-manager -fpseudo-probe-for-profiling -debug-info-kind=limited -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
// Check the generation of pseudoprobe intrinsic call
|
||||
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
// RUN: %clang -### -fpseudo-probe-for-profiling %s 2>&1 | FileCheck %s --check-prefix=YESPROBE
|
||||
// RUN: %clang -### -fno-pseudo-probe-for-profiling %s 2>&1 | FileCheck %s --check-prefix=NOPROBE
|
||||
// RUN: %clang -### -fpseudo-probe-for-profiling -fdebug-info-for-profiling %s 2>&1 | FileCheck %s --check-prefix=CONFLICT
|
||||
|
||||
// YESPROBE: -fpseudo-probe-for-profiling
|
||||
// NOPROBE-NOT: -fpseudo-probe-for-profiling
|
||||
// CONFLICT: invalid argument
|
Loading…
Reference in New Issue