From: jakub Date: Tue, 27 Nov 2018 23:52:26 +0000 (+0000) Subject: PR c++/88187 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f931ec5254bc4ab8cc16b9638a44014559cc13ab;p=thirdparty%2Fgcc.git PR c++/88187 * decl.c (grokdeclarator): Don't diagnose deduction guide errors if !funcdecl_p. * g++.dg/other/pr88187.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266537 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 41e66c082974..fea3cf665074 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2018-11-27 Jakub Jelinek + PR c++/88187 + * decl.c (grokdeclarator): Don't diagnose deduction guide errors + if !funcdecl_p. + PR c++/88181 * class.c (fixup_attribute_variants): Also propagate TYPE_PACKED to variants. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 1eee29e0d598..1aaf51750ab1 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -11276,7 +11276,7 @@ grokdeclarator (const cp_declarator *declarator, if (!tmpl) if (tree late_auto = type_uses_auto (late_return_type)) tmpl = CLASS_PLACEHOLDER_TEMPLATE (late_auto); - if (tmpl) + if (tmpl && funcdecl_p) { if (!dguide_name_p (unqualified_id)) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d35a3f87cd1b..ce80f72266d2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2018-11-27 Jakub Jelinek + PR c++/88187 + * g++.dg/other/pr88187.C: New test. + PR c++/88181 * g++.dg/debug/pr88181.C: New test. diff --git a/gcc/testsuite/g++.dg/other/pr88187.C b/gcc/testsuite/g++.dg/other/pr88187.C new file mode 100644 index 000000000000..17c14f4e5524 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/pr88187.C @@ -0,0 +1,7 @@ +// PR c++/88187 +// { dg-do compile } + +template struct A; +void f (A ()); // { dg-error "variable or field 'f' declared void" "" { target c++14_down } } + // { dg-error "missing template arguments before '\\(' token" "" { target c++14_down } .-1 } + // { dg-error "'auto' parameter not permitted in this context" "" { target c++17 } .-2 }