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>
This commit is contained in:
parent
0be9520921
commit
b1bf4ebb9d
|
@ -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"
|
||||
|
|
|
@ -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:
|
Loading…
Reference in New Issue