diff options
author | Nicholas Krause <xerofoify@gmail.com> | 2020-06-23 15:47:37 -0400 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2020-06-24 16:07:52 -0400 |
commit | 11a751ff77fba92de77b099ec5e1896d3a99d482 (patch) | |
tree | 850688658691bd97084bd0e19e71a1cb8590cb76 | |
parent | 1e5da6a02fec8aa84bb00966282f420cb70fe4f0 (diff) | |
download | gcc-11a751ff77fba92de77b099ec5e1896d3a99d482.zip gcc-11a751ff77fba92de77b099ec5e1896d3a99d482.tar.gz gcc-11a751ff77fba92de77b099ec5e1896d3a99d482.tar.bz2 |
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>
-rw-r--r-- | gcc/cp/typeck2.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/pr95672.C | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 5fd3b82..dac135a 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -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, diff --git a/gcc/testsuite/g++.dg/template/pr95672.C b/gcc/testsuite/g++.dg/template/pr95672.C new file mode 100644 index 0000000..c752b4a --- /dev/null +++ b/gcc/testsuite/g++.dg/template/pr95672.C @@ -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" } |