]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc-4.8: Backport PR c++/57532 fix from 4.8.2
authorOtavio Salvador <otavio@ossystems.com.br>
Tue, 14 Jan 2014 16:26:31 +0000 (14:26 -0200)
committerRobert Yang <liezhi.yang@windriver.com>
Sun, 26 Jan 2014 06:08:17 +0000 (14:08 +0800)
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.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
meta/recipes-devtools/gcc/gcc-4.8.inc
meta/recipes-devtools/gcc/gcc-4.8/0048-PR57532.patch [new file with mode: 0644]

index 8d50bf79d005fe20b8b363db6e3754ba8d660720..b34c7ae3c4681e80e0a72f277db4e6b32f3aaf12 100644 (file)
@@ -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 (file)
index 0000000..4a05d33
--- /dev/null
@@ -0,0 +1,36 @@
+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: