re PR c++/57532 (operator& broken when used on rvalues)

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

From-SVN: r200842
This commit is contained in:
Jason Merrill 2013-07-09 13:56:14 -04:00 committed by Jason Merrill
parent cb5f47b639
commit 9a3970ddfc
3 changed files with 14 additions and 0 deletions

View File

@ -1,5 +1,9 @@
2013-07-09 Jason Merrill <jason@redhat.com>
PR c++/57532
* parser.c (cp_parser_ref_qualifier_opt): Don't tentatively parse
a ref-qualifier in C++98 mode.
PR c++/57545
* pt.c (convert_nontype_argument) [INTEGER_CST]: Force the
argument to have the exact type of the parameter.

View File

@ -17374,6 +17374,10 @@ cp_parser_ref_qualifier_opt (cp_parser* parser)
{
cp_ref_qualifier ref_qual = REF_QUAL_NONE;
/* Don't try to parse bitwise '&' as a ref-qualifier (c++/57532). */
if (cxx_dialect < cxx11 && cp_parser_parsing_tentatively (parser))
return ref_qual;
while (true)
{
cp_ref_qualifier curr_ref_qual = REF_QUAL_NONE;

View File

@ -0,0 +1,6 @@
// PR c++/57532
int main()
{
return (int() & int());
}