c++: Handle bad pack expansion in base list. [PR96752]
This fixes PR95672 by adding the missing TYPE_PACK_EXPANSION case in cxx_incomplete_type_diagnostic in order to avoid ICEs on diagnosing incomplete template pack expansion cases. Tested on powerpc64le-unknown-linux-gnu. gcc/cp/ChangeLog: PR c++/95672 * typeck2.c (cxx_incomplete_type_diagnostic): Add missing TYPE_EXPANSION_PACK check for diagnosing incomplete types in cxx_incomplete_type_diagnostic. gcc/testsuite/ChangeLog: PR c++/95672 * g++.dg/template/pr95672.C: New test. Signed-off-by: Nicholas Krause <xerofoify@gmail.com>
This commit is contained in:
parent
1e5da6a02f
commit
11a751ff77
@ -552,6 +552,11 @@ cxx_incomplete_type_diagnostic (location_t loc, const_tree value,
|
||||
TYPE_NAME (type));
|
||||
break;
|
||||
|
||||
case TYPE_PACK_EXPANSION:
|
||||
emit_diagnostic (diag_kind, loc, 0,
|
||||
"invalid use of pack expansion %qT", type);
|
||||
break;
|
||||
|
||||
case TYPENAME_TYPE:
|
||||
case DECLTYPE_TYPE:
|
||||
emit_diagnostic (diag_kind, loc, 0,
|
||||
|
3
gcc/testsuite/g++.dg/template/pr95672.C
Normal file
3
gcc/testsuite/g++.dg/template/pr95672.C
Normal file
@ -0,0 +1,3 @@
|
||||
// PR c++/95672
|
||||
// { dg-do compile { target c++14 } }
|
||||
struct g_class : decltype (auto) ... { }; // { dg-error "invalid use of pack expansion" }
|
Loading…
Reference in New Issue
Block a user