[clang] 0a996c8 - [Assignment Tracking] Fix -fexperimental-assignment-tracking cc1 flag
via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 20 06:37:11 PST 2023
Author: OCHyams
Date: 2023-01-20T14:36:16Z
New Revision: 0a996c82a75f330f3d01541381569c8cd2cd6190
URL: https://github.com/llvm/llvm-project/commit/0a996c82a75f330f3d01541381569c8cd2cd6190
DIFF: https://github.com/llvm/llvm-project/commit/0a996c82a75f330f3d01541381569c8cd2cd6190.diff
LOG: [Assignment Tracking] Fix -fexperimental-assignment-tracking cc1 flag
This change allows `-fexperimental-assignment-tracking` to be negated using the
negative equivalent `-fno-experimental-assignment-tracking`, and fixes the flag
so that the default behaviour can be changed (currently the default is still
false / disabled).
Reviewed By: StephenTozer
Differential Revision: https://reviews.llvm.org/D142029
Added:
Modified:
clang/include/clang/Driver/Options.td
clang/test/CodeGen/assignment-tracking/flag.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index ba49b335cf287..dd3e86f214255 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -5702,10 +5702,11 @@ def fctor_dtor_return_this : Flag<["-"], "fctor-dtor-return-this">,
"and non-deleting destructors. (No effect on Microsoft ABI)">,
MarshallingInfoFlag<CodeGenOpts<"CtorDtorReturnThis">>;
-def fexperimental_assignment_tracking :
- Flag<["-"], "fexperimental-assignment-tracking">, Group<f_Group>,
- HelpText<"Enable assignment tracking debug info">,
- MarshallingInfoFlag<CodeGenOpts<"EnableAssignmentTracking">>;
+defm experimental_assignment_tracking :
+ BoolOption<"f", "experimental-assignment-tracking",
+ CodeGenOpts<"EnableAssignmentTracking">, DefaultFalse,
+ PosFlag<SetTrue, [CC1Option]>, NegFlag<SetFalse>, BothFlags<[CoreOption]>>,
+ Group<f_Group>;
} // let Flags = [CC1Option, NoDriverOption]
diff --git a/clang/test/CodeGen/assignment-tracking/flag.cpp b/clang/test/CodeGen/assignment-tracking/flag.cpp
index 911fa1aca70d8..c4e85738fb272 100644
--- a/clang/test/CodeGen/assignment-tracking/flag.cpp
+++ b/clang/test/CodeGen/assignment-tracking/flag.cpp
@@ -1,18 +1,24 @@
+//// Explicitly enabled:
// RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone -O0 \
// RUN: -emit-llvm -fexperimental-assignment-tracking %s -o - \
-// RUN: | FileCheck %s --check-prefixes=FLAG
+// RUN: | FileCheck %s --check-prefixes=ENABLE
+//// Disabled by default:
// RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone -O0 \
// RUN: -emit-llvm %s -o - \
-// RUN: | FileCheck %s --check-prefixes=NO-FLAG
+// RUN: | FileCheck %s --check-prefixes=DISABLE
+//// Explicitly disabled:
+// RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone -O0 \
+// RUN: -emit-llvm %s -o - -fno-experimental-assignment-tracking \
+// RUN: | FileCheck %s --check-prefixes=DISABLE
// Check some assignment-tracking stuff appears in the output when the flag
-// -fexperimental-assignment-tracking is used, and that it doesn't when
-// the flag is not used (default behaviour: no assignment tracking).
+// -fexperimental-assignment-tracking is used, that it doesn't when
+// -fno-experimental-assignment-tracking is used or neither flag is specified.
-// FLAG: DIAssignID
-// FLAG: dbg.assign
+// ENABLE: DIAssignID
+// ENABLE: dbg.assign
-// NO-FLAG-NOT: DIAssignID
-// NO-FLAG-NOT: dbg.assign
+// DISABLE-NOT: DIAssignID
+// DISABLE-NOT: dbg.assign
void fun(int a) {}
More information about the cfe-commits
mailing list