aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-01-12 16:43:22 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2009-01-12 16:43:22 +0100
commit49f098f2566a36206d6aa17c2c4635b2bf8b8d80 (patch)
tree63c40fa8e8187caa4b08c713f55fd24395af7701 /gcc/testsuite/g++.dg
parentf56e675de51d00f2ddaede1933175374628f6952 (diff)
downloadgcc-49f098f2566a36206d6aa17c2c4635b2bf8b8d80.zip
gcc-49f098f2566a36206d6aa17c2c4635b2bf8b8d80.tar.gz
gcc-49f098f2566a36206d6aa17c2c4635b2bf8b8d80.tar.bz2
re PR c++/38794 (Function body accepted in typedef)
PR c++/38794 * decl.c (start_function): If grokdeclarator hasn't returned FUNCTION_DECL nor error_mark_node, issue diagnostics. * g++.dg/parse/typedef9.C: New test. From-SVN: r143292
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r--gcc/testsuite/g++.dg/parse/typedef9.C8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/parse/typedef9.C b/gcc/testsuite/g++.dg/parse/typedef9.C
new file mode 100644
index 0000000..7788f78
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/typedef9.C
@@ -0,0 +1,8 @@
+// PR c++/38794
+// { dg-do compile }
+
+typedef void foo () {} // { dg-error "invalid function declaration" }
+struct S
+{
+ typedef int bar (void) { return 0; } // { dg-error "invalid member function declaration" }
+};