summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-01-06 01:47:28 -0800
committerYamaArashi <shadow962@live.com>2016-01-06 01:47:28 -0800
commitbe8b04496302184c6e8f04d6179f9c3afc50aeb6 (patch)
tree726e2468c0c07add773c0dbd86ab6386844259ae /gcc/testsuite/g++.old-deja/g++.brendan/parse4.C
initial commit
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/parse4.C')
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.brendan/parse4.C24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C b/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C
new file mode 100755
index 0000000..6526c60
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C
@@ -0,0 +1,24 @@
+// Build don't link:
+
+// this is marked as an expected error because it evidences an
+// ambiguity in the grammar between expressions and declarations.
+// when the parser's been cleaned up or rewritten, the error
+// marker can go away, since it'll no longer occur.
+
+class B
+{
+public:
+ B( int t ) {}
+ void f() {}
+};
+
+int g() { return 0; } // gets bogus error - referenced below XFAIL *-*-*
+
+int main()
+{
+ int try1;
+ B( try1 ).f(); // no syntax error
+ B b( g() ); // no syntax error
+ B( ::g() ).f(); // no syntax error
+ B( g() ).f(); // gets bogus error - treated as decl XFAIL *-*-*
+}