From b1bf4ebb9db36cb6a4ff2040905b1aa7fda4a31f Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 14 Jan 2014 14:26:31 -0200 Subject: [PATCH] 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 Signed-off-by: Robert Yang Signed-off-by: Richard Purdie --- meta/recipes-devtools/gcc/gcc-4.8.inc | 1 + .../gcc/gcc-4.8/0048-PR57532.patch | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-4.8/0048-PR57532.patch diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc index 8d50bf79d0..b34c7ae3c4 100644 --- a/meta/recipes-devtools/gcc/gcc-4.8.inc +++ b/meta/recipes-devtools/gcc/gcc-4.8.inc @@ -77,6 +77,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ file://0045-gcc-4.8-PR57717-PowerPC-E500v2.patch \ file://0046-libatomic-deptracking.patch \ file://0047-repomembug.patch \ + file://0048-PR57532.patch \ " SRC_URI[md5sum] = "3b2386c114cd74185aa3754b58a79304" SRC_URI[sha256sum] = "545b44be3ad9f2c4e90e6880f5c9d4f0a8f0e5f67e1ffb0d45da9fa01bb05813" diff --git a/meta/recipes-devtools/gcc/gcc-4.8/0048-PR57532.patch b/meta/recipes-devtools/gcc/gcc-4.8/0048-PR57532.patch new file mode 100644 index 0000000000..4a05d33443 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.8/0048-PR57532.patch @@ -0,0 +1,36 @@ +Upstream-Status: Backport +Signed-off-by: Otavio Salvador + +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: