[PATCH] D128745: [c++] implements DR692, DR1395 and tentatively DR1432, about partial ordering of variadic template partial specialization or function template
Michele Scandale via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 17 00:12:41 PDT 2022
michele.scandale added a comment.
I can see failures related to this change in a downstream version of clang where the default `ClangABICompat` value is not `Latest` (after the followup https://reviews.llvm.org/rGda6187f566b7881cb8350621aea9bd582de569b9).
My understanding is that with `-fclang-abi-compat=14` we should get the behavior prior to this change. If my understanding is correct, then I'd think that such failure shouldn't occur.
These are the tests that I see failing with new diagnostic messages `class template partial specialization is not more specialized than the primary template` being raised:
Clang :: CXX/temp/temp.decls/temp.class.spec/p8-0x.cpp
Clang :: CXX/temp/temp.decls/temp.variadic/example-bind.cpp
Clang :: CXX/temp/temp.decls/temp.variadic/example-tuple.cpp
Clang :: CXX/temp/temp.decls/temp.variadic/injected-class-name.cpp
Clang :: CXX/temp/temp.decls/temp.variadic/metafunctions.cpp
Clang :: CXX/temp/temp.fct.spec/temp.arg.explicit/p3-0x.cpp
Clang :: CXX/temp/temp.fct.spec/temp.arg.explicit/p9-0x.cpp
Clang :: CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p1-0x.cpp
Clang :: CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p21.cpp
Clang :: CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p9-0x.cpp
Clang :: CXX/temp/temp.param/p11-0x.cpp
Clang :: SemaCXX/coreturn-exp-namespace.cpp
Clang :: SemaCXX/coreturn.cpp
Clang :: SemaCXX/coroutine-unhandled_exception-warning-exp-namespace.cpp
Clang :: SemaCXX/coroutine-unhandled_exception-warning.cpp
Clang :: SemaCXX/coroutines-exp-namespace.cpp
Clang :: SemaCXX/coroutines.cpp
Clang :: SemaCXX/crash-lambda-12645424.cpp
Clang :: SemaCXX/discrim-union.cpp
Clang :: SemaTemplate/attributes.cpp
Clang :: SemaTemplate/class-template-spec.cpp
Clang :: SemaTemplate/deduction.cpp
Clang :: SemaTemplate/pack-deduction.cpp
Clang :: SemaTemplate/temp_arg_nontype_cxx1z.cpp
Clang :: SemaTemplate/temp_arg_template_cxx1z.cpp
I've reproduced this locally with the following patch to inject `-fclang-abi-compat=14` on the command line executed for those tests:
diff --git a/clang/test/CXX/temp/lit.local.cfg b/clang/test/CXX/temp/lit.local.cfg
new file mode 100644
index 000000000000..23d23bb6c46e
--- /dev/null
+++ b/clang/test/CXX/temp/lit.local.cfg
@@ -0,0 +1,3 @@
+config.substitutions.insert(0,
+ ('%clang_cc1',
+ '%clang_cc1 -fclang-abi-compat=14.0'))
diff --git a/clang/test/SemaCXX/lit.local.cfg b/clang/test/SemaCXX/lit.local.cfg
new file mode 100644
index 000000000000..23d23bb6c46e
--- /dev/null
+++ b/clang/test/SemaCXX/lit.local.cfg
@@ -0,0 +1,3 @@
+config.substitutions.insert(0,
+ ('%clang_cc1',
+ '%clang_cc1 -fclang-abi-compat=14.0'))
diff --git a/clang/test/SemaTemplate/lit.local.cfg b/clang/test/SemaTemplate/lit.local.cfg
new file mode 100644
index 000000000000..23d23bb6c46e
--- /dev/null
+++ b/clang/test/SemaTemplate/lit.local.cfg
@@ -0,0 +1,3 @@
+config.substitutions.insert(0,
+ ('%clang_cc1',
+ '%clang_cc1 -fclang-abi-compat=14.0'))
(Note that by adding the `lit.local.cfg` file abovementioned there will also be the failure of `SemaCXX/class-layout.cpp`, but that can be ignored as for some command lines the expected behavior is equivalent to pass `-fclang-abi-compat=latest`)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D128745/new/
https://reviews.llvm.org/D128745
More information about the cfe-commits
mailing list