public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCHv6] Handle TYPE_PACK_EXPANSION in cxx_incomplete_type_diagnostic
@ 2020-06-23  1:42 Nicholas Krause
  2020-06-23  2:01 ` Marek Polacek
  0 siblings, 1 reply; 5+ messages in thread
From: Nicholas Krause @ 2020-06-23  1:42 UTC (permalink / raw)
  To: jason; +Cc: gcc-patches

From: Nicholas Krause <xerofoify@gmail.com>

This fixs the 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. In v2, add the missing required
test case for all new patches. v3 Fixes both the test case to compile in
C++11 mode and the message to print out only the type. v4 fixes the testcase
to only target C++11. v5 and v6 fix the test case properly.

gcc/cp/ChangeLog:

	* typeck2.c (cxx_incomplete_type_diagnostic): Add missing TYPE_EXPANSION_PACK
	  check for diagnosticing incomplete types in cxx_incomplete_type_diagnostic.

gcc/testsuite/ChangeLog:

	* g++.dg/template/PR95672.C: New test.

Signed-off-by: Nicholas Krause <xerofoify@gmail.com>
---
 gcc/cp/typeck2.c                        | 6 ++++++
 gcc/testsuite/g++.dg/template/PR95672.C | 3 +++
 2 files changed, 9 insertions(+)
 create mode 100644 gcc/testsuite/g++.dg/template/PR95672.C

diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 5fd3b82fa89..28b32fe0b5a 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -552,6 +552,12 @@ 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 00000000000..fcc3da0a132
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/PR95672.C
@@ -0,0 +1,3 @@
+// PR c++/96572 
+// { dg-do compile}
+// { dg-options "-std=c++11" }
+struct g_class : decltype  (auto) ... {  }; // { dg-error "invalid use of pack expansion" }
-- 
2.20.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-06-23 18:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-23  1:42 [PATCHv6] Handle TYPE_PACK_EXPANSION in cxx_incomplete_type_diagnostic Nicholas Krause
2020-06-23  2:01 ` Marek Polacek
2020-06-23  3:11   ` Nicholas Krause
2020-06-23 12:27     ` Marek Polacek
2020-06-23 18:17       ` Jason Merrill

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).