https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105667
Barnabás Pőcze <pobrn at protonmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pobrn at protonmail dot com
--- Comment #6 from Barnabás Pőcze <pobrn at protonmail dot com> ---
Another snippet that I believe triggers the same issue:
template<typename>
struct get { };
template<int>
struct thing {
using T = decltype([](auto) { });
static constexpr auto value = [](auto) {
return get<T>();
}(0);
};
thing<0> X;
---
In this case template_parms_to_args() is called with a nullptr.
template_parms_to_args (parms=0x0) at /usr/src/debug/gcc/gcc/cp/pt.cc:4912
tsubst_template_decl (t=0x7ffff7177280, args=<optimized out>, complain=3,
lambda_fntype=0x7ffff717b738) at /usr/src/debug/gcc/gcc/cp/pt.cc:14543
tsubst_lambda_expr (t=<optimized out>, args=0x7ffff7171d80, complain=3,
in_decl=0x7ffff7173800) at /usr/src/debug/gcc/gcc/cp/pt.cc:19855
tsubst_copy_and_build (t=<optimized out>, args=0x7ffff7171d80,
complain=<optimized out>, in_decl=0x7ffff7177000, function_p=<optimized out>,
integral_constant_expression_p=false) at /usr/src/debug/gcc/gcc/cp/pt.cc:21446
tsubst (t=0x7ffff71760a8, args=0x7ffff7171d80, complain=3,
in_decl=0x7ffff7177000) at /usr/src/debug/gcc/gcc/cp/pt.cc:16400
tsubst_template_args (t=0x7ffff7171a20, args=args@entry=0x7ffff7171d80,
complain=complain@entry=3, in_decl=in_decl@entry=0x7ffff7177000) at
/usr/src/debug/gcc/gcc/cp/pt.cc:13580
[...]
---
GCC 12.2.0, but GCC trunk on Compiler Explorer also exhibits the same issue (as
do GCC 11.1, 11.2, 11.3, 12.1, and 12.2)