diff options
author | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
commit | be8b04496302184c6e8f04d6179f9c3afc50aeb6 (patch) | |
tree | 726e2468c0c07add773c0dbd86ab6386844259ae /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-x | gcc/testsuite/g++.old-deja/g++.brendan/parse4.C | 24 |
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 *-*-* +} |