Files
poky/meta/recipes-devtools/gcc/gcc-4.8/0048-PR57532.patch
Otavio Salvador b1bf4ebb9d gcc-4.8: Backport PR c++/57532 fix from 4.8.2
Bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57532

Log:
r200836 | jason | 2013-07-09 14:52:17 -0300 (Tue, 09 Jul 2013) | 3 lines

        PR c++/57532
        * parser.c (cp_parser_ref_qualifier_opt): Don't tentatively parse
        a ref-qualifier in C++98 mode.

(From OE-Core rev: dd2891db2e25f09a15f621d1b132603128c9a673)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-09 11:04:15 +00:00

37 lines
1.1 KiB
Diff

Upstream-Status: Backport
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
r200836 | jason | 2013-07-09 14:52:17 -0300 (Tue, 09 Jul 2013) | 3 lines
PR c++/57532
* parser.c (cp_parser_ref_qualifier_opt): Don't tentatively parse
a ref-qualifier in C++98 mode.
Index: gcc/testsuite/g++.dg/parse/ref-qual2.C
===================================================================
--- a/gcc/testsuite/g++.dg/parse/ref-qual2.C (revision 0)
+++ b/gcc/testsuite/g++.dg/parse/ref-qual2.C (revision 200836)
@@ -0,0 +1,6 @@
+// PR c++/57532
+
+int main()
+{
+ return (int() & int());
+}
Index: gcc/cp/parser.c
===================================================================
--- a/gcc/cp/parser.c (revision 200835)
+++ b/gcc/cp/parser.c (revision 200836)
@@ -16986,6 +16986,11 @@
{
cp_ref_qualifier ref_qual = REF_QUAL_NONE;
cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ /* Don't try to parse bitwise '&' as a ref-qualifier (c++/57532). */
+ if (cxx_dialect < cxx11 && cp_parser_parsing_tentatively (parser))
+ return ref_qual;
+
switch (token->type)
{
case CPP_AND: