diff options
author | Dodji Seketeli <dodji@redhat.com> | 2012-10-10 10:24:35 +0000 |
---|---|---|
committer | Dodji Seketeli <dodji@gcc.gnu.org> | 2012-10-10 12:24:35 +0200 |
commit | d32350e7a5eb5d31aaa1643dbc9db569fbc59b49 (patch) | |
tree | 808a7094d3bc267b2c5af74bca6f47c4072d6400 /gcc/tree-streamer-in.c | |
parent | 137456439a3e92879acdda2a7e8fdff7c0c23142 (diff) | |
download | gcc-d32350e7a5eb5d31aaa1643dbc9db569fbc59b49.zip gcc-d32350e7a5eb5d31aaa1643dbc9db569fbc59b49.tar.gz gcc-d32350e7a5eb5d31aaa1643dbc9db569fbc59b49.tar.bz2 |
Disambiguate nested objc-message-expressions and c++11 attributes
A couple of obj-c++ tests were failing[1] because the tokens '[[' can
either be the beginning of a c++11 attribute (that is itself at the
beginning of a statement), or the beginning of a nested
objc-message-expression. This patch resolves the ambiguity by
tentatively parsing the c++11 attribute and if it fails, then consider
the objc-message-expression.
I missed this initially because it didn't occur to me that
--enable-languages=all,ada does not include obj-c++. Shame on me. I
have now updated my compile farm scripts to use
--enable-language=all,ada,obj-c++,go and I
[1]:
FAIL: obj-c++.dg/syntax-error-6.mm -fgnu-runtime (test for errors, line 11)
FAIL: obj-c++.dg/syntax-error-6.mm -fgnu-runtime (test for excess errors)
FAIL: obj-c++.dg/template-8.mm -fgnu-runtime (test for excess errors)
Tested on x86_64-unknown-linux-gnu against trunk.
gcc/cp/
* parser (cp_parser_statement): Parse c++11 attributes tentatively.
(cp_parser_std_attribute_spec_seq): Do not warn too early about
using c++11 attributes in non c++11 mode.
From-SVN: r192299
Diffstat (limited to 'gcc/tree-streamer-in.c')
0 files changed, 0 insertions, 0 deletions