diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index abb3254188aff..36baebed78099 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -2216,9 +2216,9 @@ defm xray_ignore_loops : BoolFOption<"xray-ignore-loops", NegFlag>; defm xray_function_index : BoolFOption<"xray-function-index", - CodeGenOpts<"XRayFunctionIndex">, DefaultFalse, - PosFlag, - NegFlag, DefaultTrue, + PosFlag, + NegFlag>; def fxray_link_deps : Flag<["-"], "fxray-link-deps">, Group, diff --git a/clang/lib/Driver/XRayArgs.cpp b/clang/lib/Driver/XRayArgs.cpp index 89aeb20aa68cd..f15a91f1aba44 100644 --- a/clang/lib/Driver/XRayArgs.cpp +++ b/clang/lib/Driver/XRayArgs.cpp @@ -178,8 +178,8 @@ void XRayArgs::addArgs(const ToolChain &TC, const ArgList &Args, options::OPT_fno_xray_always_emit_typedevents); Args.addOptInFlag(CmdArgs, options::OPT_fxray_ignore_loops, options::OPT_fno_xray_ignore_loops); - Args.addOptInFlag(CmdArgs, options::OPT_fxray_function_index, - options::OPT_fno_xray_function_index); + Args.addOptOutFlag(CmdArgs, options::OPT_fxray_function_index, + options::OPT_fno_xray_function_index); if (const Arg *A = Args.getLastArg(options::OPT_fxray_instruction_threshold_EQ)) { diff --git a/clang/test/CodeGen/xray-function-index.c b/clang/test/CodeGen/xray-function-index.c index bdaef655abcfc..0b18c2a530247 100644 --- a/clang/test/CodeGen/xray-function-index.c +++ b/clang/test/CodeGen/xray-function-index.c @@ -1,6 +1,6 @@ // REQUIRES: x86-registered-target -// RUN: %clang_cc1 -S -triple x86_64 -fxray-instrument -fxray-instruction-threshold=1 -fxray-function-index %s -o - | FileCheck %s -// RUN: %clang_cc1 -S -triple x86_64 -fxray-instrument -fxray-instruction-threshold=1 %s -o - | FileCheck %s --check-prefix=NO +// RUN: %clang_cc1 -S -triple x86_64 -fxray-instrument -fxray-instruction-threshold=1 %s -o - | FileCheck %s +// RUN: %clang_cc1 -S -triple x86_64 -fxray-instrument -fxray-instruction-threshold=1 -fno-xray-function-index %s -o - | FileCheck %s --check-prefix=NO // CHECK: .section xray_fn_idx,"awo",@progbits,foo // NO-NOT: .section xray_fn_idx diff --git a/clang/test/Driver/xray-function-index.cpp b/clang/test/Driver/xray-function-index.cpp index 550de3d17305a..6cc8d47c638c6 100644 --- a/clang/test/Driver/xray-function-index.cpp +++ b/clang/test/Driver/xray-function-index.cpp @@ -1,5 +1,5 @@ -// RUN: %clang -### -c --target=x86_64 -fxray-instrument -fxray-function-index %s 2>&1 | FileCheck %s -// RUN: %clang -### -c --target=x86_64 -fxray-instrument %s 2>&1 | FileCheck %s --check-prefix=DISABLED +// RUN: %clang -### -c --target=x86_64 -fxray-instrument %s 2>&1 | FileCheck %s +// RUN: %clang -### -c --target=x86_64 -fxray-instrument -fxray-function-index -fno-xray-function-index %s 2>&1 | FileCheck %s --check-prefix=DISABLED -// CHECK: "-fxray-function-index" -// DISABLED-NOT: "-fxray-function-index" +// CHECK-NOT: "-fxray-function-index" +// DISABLED: "-fno-xray-function-index"