-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[clang] Revert default behavior change of P0522R0 implementation #91811
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[clang] Revert default behavior change of P0522R0 implementation #91811
Conversation
This partially reverts b86e099 Just the default is changed back, on the Driver side. No Frontend changes. The positive spelling of the flag is undeprecated. No documentation changes or changelog entries because we plan to revert this revert as soon as llvm#62529 is fixed.
@llvm/pr-subscribers-clang Author: Matheus Izvekov (mizvekov) ChangesThis partially reverts b86e099. Just the default is changed back, on the Driver side. No documentation changes or changelog entries because we plan to revert this revert as soon as #62529 is fixed. Full diff: https://github.com/llvm/llvm-project/pull/91811.diff 2 Files Affected:
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 42feb1650574e..f0cc018b6668f 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -7249,15 +7249,15 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
Args.addOptOutFlag(CmdArgs, options::OPT_fassume_unique_vtables,
options::OPT_fno_assume_unique_vtables);
- // -frelaxed-template-template-args is deprecated.
- if (Arg *A =
- Args.getLastArg(options::OPT_frelaxed_template_template_args,
- options::OPT_fno_relaxed_template_template_args)) {
+ // -fno-relaxed-template-template-args is deprecated.
+ if (Arg *A = Args.getLastArg(options::OPT_frelaxed_template_template_args,
+ options::OPT_fno_relaxed_template_template_args);
+ A &&
+ A->getOption().matches(options::OPT_fno_relaxed_template_template_args))
D.Diag(diag::warn_drv_deprecated_arg)
<< A->getAsString(Args) << /*hasReplacement=*/false;
- if (A->getOption().matches(options::OPT_fno_relaxed_template_template_args))
- CmdArgs.push_back("-fno-relaxed-template-template-args");
- }
+ else
+ CmdArgs.push_back("-fno-relaxed-template-template-args");
// -fsized-deallocation is off by default, as it is an ABI-breaking change for
// most platforms.
diff --git a/clang/test/Driver/frelaxed-template-template-args.cpp b/clang/test/Driver/frelaxed-template-template-args.cpp
index dd6265ba8375e..136c360276a15 100644
--- a/clang/test/Driver/frelaxed-template-template-args.cpp
+++ b/clang/test/Driver/frelaxed-template-template-args.cpp
@@ -1,5 +1,7 @@
-// RUN: %clang -fsyntax-only -frelaxed-template-template-args %s 2>&1 | FileCheck --check-prefix=CHECK-ON %s
+// RUN: %clang -fsyntax-only -### %s 2>&1 | FileCheck --check-prefix=CHECK-DEF %s
+// RUN: %clang -fsyntax-only -frelaxed-template-template-args %s 2>&1 | FileCheck --check-prefix=CHECK-ON --allow-empty %s
// RUN: %clang -fsyntax-only -fno-relaxed-template-template-args %s 2>&1 | FileCheck --check-prefix=CHECK-OFF %s
-// CHECK-ON: warning: argument '-frelaxed-template-template-args' is deprecated [-Wdeprecated]
+// CHECK-DEF: "-cc1"{{.*}} "-fno-relaxed-template-template-args"
+// CHECK-ON-NOT: warning: argument '-frelaxed-template-template-args' is deprecated [-Wdeprecated]
// CHECK-OFF: warning: argument '-fno-relaxed-template-template-args' is deprecated [-Wdeprecated]
|
@llvm/pr-subscribers-clang-driver Author: Matheus Izvekov (mizvekov) ChangesThis partially reverts b86e099. Just the default is changed back, on the Driver side. No documentation changes or changelog entries because we plan to revert this revert as soon as #62529 is fixed. Full diff: https://github.com/llvm/llvm-project/pull/91811.diff 2 Files Affected:
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 42feb1650574e..f0cc018b6668f 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -7249,15 +7249,15 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
Args.addOptOutFlag(CmdArgs, options::OPT_fassume_unique_vtables,
options::OPT_fno_assume_unique_vtables);
- // -frelaxed-template-template-args is deprecated.
- if (Arg *A =
- Args.getLastArg(options::OPT_frelaxed_template_template_args,
- options::OPT_fno_relaxed_template_template_args)) {
+ // -fno-relaxed-template-template-args is deprecated.
+ if (Arg *A = Args.getLastArg(options::OPT_frelaxed_template_template_args,
+ options::OPT_fno_relaxed_template_template_args);
+ A &&
+ A->getOption().matches(options::OPT_fno_relaxed_template_template_args))
D.Diag(diag::warn_drv_deprecated_arg)
<< A->getAsString(Args) << /*hasReplacement=*/false;
- if (A->getOption().matches(options::OPT_fno_relaxed_template_template_args))
- CmdArgs.push_back("-fno-relaxed-template-template-args");
- }
+ else
+ CmdArgs.push_back("-fno-relaxed-template-template-args");
// -fsized-deallocation is off by default, as it is an ABI-breaking change for
// most platforms.
diff --git a/clang/test/Driver/frelaxed-template-template-args.cpp b/clang/test/Driver/frelaxed-template-template-args.cpp
index dd6265ba8375e..136c360276a15 100644
--- a/clang/test/Driver/frelaxed-template-template-args.cpp
+++ b/clang/test/Driver/frelaxed-template-template-args.cpp
@@ -1,5 +1,7 @@
-// RUN: %clang -fsyntax-only -frelaxed-template-template-args %s 2>&1 | FileCheck --check-prefix=CHECK-ON %s
+// RUN: %clang -fsyntax-only -### %s 2>&1 | FileCheck --check-prefix=CHECK-DEF %s
+// RUN: %clang -fsyntax-only -frelaxed-template-template-args %s 2>&1 | FileCheck --check-prefix=CHECK-ON --allow-empty %s
// RUN: %clang -fsyntax-only -fno-relaxed-template-template-args %s 2>&1 | FileCheck --check-prefix=CHECK-OFF %s
-// CHECK-ON: warning: argument '-frelaxed-template-template-args' is deprecated [-Wdeprecated]
+// CHECK-DEF: "-cc1"{{.*}} "-fno-relaxed-template-template-args"
+// CHECK-ON-NOT: warning: argument '-frelaxed-template-template-args' is deprecated [-Wdeprecated]
// CHECK-OFF: warning: argument '-fno-relaxed-template-template-args' is deprecated [-Wdeprecated]
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should probably also change the release note that still says we've changed this to on by default.
if (Arg *A = | ||
Args.getLastArg(options::OPT_frelaxed_template_template_args, | ||
options::OPT_fno_relaxed_template_template_args)) { | ||
// -fno-relaxed-template-template-args is deprecated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I get the case for marking this deprecated?
@erichkeane The goal is to provide a temporary working default, and a proper fix next fix, so that folks who are impacted by the break (everyone working on stdexec) isn't impacted longer than necessary. So I'll go and merge that and we can discuss a longer-term solution monday |
A few tests were checking for all driver flags. We should revert this commit when we revert llvm#91811
This partially reverts b86e099.
Just the default is changed back, on the Driver side.
No Frontend changes.
The positive spelling of the flag is undeprecated.
No documentation changes or changelog entries because we plan to revert this revert as soon as #62529 is fixed.