-
- Downloads
c++: some missing-SFINAE fixes
It looks like we aren't respecting SFINAE for: * an invalid/non-constant conditional explicit-specifier * a non-constant conditional noexcept-specifier * a non-constant argument to __integer_pack This patch fixes these in the usual way, by passing complain and propagating error_mark_node appropriately. gcc/cp/ChangeLog: * decl.cc (build_explicit_specifier): Pass complain to cxx_constant_value. * except.cc (build_noexcept_spec): Likewise. * pt.cc (expand_integer_pack): Likewise. (tsubst_function_decl): Propagate error_mark_node returned from build_explicit_specifier. gcc/testsuite/ChangeLog: * g++.dg/cpp1z/noexcept-type26.C: New test. * g++.dg/cpp2a/explicit19.C: New test. * g++.dg/ext/integer-pack6.C: New test.
Showing
- gcc/cp/decl.cc 1 addition, 1 deletiongcc/cp/decl.cc
- gcc/cp/except.cc 1 addition, 1 deletiongcc/cp/except.cc
- gcc/cp/pt.cc 3 additions, 1 deletiongcc/cp/pt.cc
- gcc/testsuite/g++.dg/cpp1z/noexcept-type26.C 12 additions, 0 deletionsgcc/testsuite/g++.dg/cpp1z/noexcept-type26.C
- gcc/testsuite/g++.dg/cpp2a/explicit19.C 12 additions, 0 deletionsgcc/testsuite/g++.dg/cpp2a/explicit19.C
- gcc/testsuite/g++.dg/ext/integer-pack6.C 13 additions, 0 deletionsgcc/testsuite/g++.dg/ext/integer-pack6.C
Loading
Please register or sign in to comment