llvm-project/clang/test/CXX/expr
Richard Smith b5f2c4e45b PR23029 / C++ DR2233: Allow expanded parameter packs to follow
parameters with default arguments.

Directly follow the wording by relaxing the AST invariant that all
parameters after one with a default arguemnt also have default
arguments, and removing the diagnostic on missing default arguments
on a pack-expanded parameter following a parameter with a default
argument.

Testing also revealed that we need to special-case explicit
specializations of templates with a pack following a parameter with a
default argument, as such explicit specializations are otherwise
impossible to write. The standard wording doesn't address this case; a
issue has been filed.

This exposed a bug where we would briefly consider a parameter to have
no default argument while we parse a delay-parsed default argument for
that parameter, which is also fixed.

Partially incorporates a patch by Raul Tambre.
2020-06-02 13:48:59 -07:00
..
expr.arith.conv [c++20] Add deprecation warnings for the expression forms deprecated by P1120R0. 2019-12-16 17:49:45 -08:00
expr.ass
expr.cast
expr.cond
expr.const P0593R6: Pseudo-destructor expressions end object lifetimes. 2020-02-18 18:41:03 -08:00
expr.mptr.oper
expr.post PR23029 / C++ DR2233: Allow expanded parameter packs to follow 2020-06-02 13:48:59 -07:00
expr.prim Fix parsing of enum-base to follow C++11 rules. 2020-05-08 19:32:00 -07:00
expr.unary [Sema] Mark array element destructors referenced during initialization 2019-05-10 17:52:26 +00:00
p3.cpp
p8.cpp
p9.cpp
p10-0x.cpp Don't apply lvalue-to-rvalue conversion in DefaultLValueConversion to 2020-05-13 20:12:10 -07:00
p13.cpp [Sema][C++] Propagate conversion kind to specialize the diagnostics 2020-02-25 16:05:37 +00:00