Commit 3beb3abf by Mark Mitchell Committed by Mark Mitchell

parser.c (cp_parser_sizeof_operand): Do not evaluate the expression.

	* parser.c (cp_parser_sizeof_operand): Do not evaluate the
	expression.

From-SVN: r60791
parent cb203576
2003-01-02 Mark Mitchell <mark@codesourcery.com>
* parser.c (cp_parser_sizeof_operand): Do not evaluate the
expression.
2003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl> 2003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
* cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c, * cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c,
......
/* C++ Parser. /* C++ Parser.
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Written by Mark Mitchell <mark@codesourcery.com>. Written by Mark Mitchell <mark@codesourcery.com>.
This file is part of GCC. This file is part of GCC.
...@@ -14432,6 +14432,8 @@ cp_parser_sizeof_operand (parser, keyword) ...@@ -14432,6 +14432,8 @@ cp_parser_sizeof_operand (parser, keyword)
saved_constant_expression_p = parser->constant_expression_p; saved_constant_expression_p = parser->constant_expression_p;
parser->constant_expression_p = false; parser->constant_expression_p = false;
/* Do not actually evaluate the expression. */
++skip_evaluation;
/* If it's a `(', then we might be looking at the type-id /* If it's a `(', then we might be looking at the type-id
construction. */ construction. */
if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_PAREN)) if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_PAREN))
...@@ -14468,6 +14470,8 @@ cp_parser_sizeof_operand (parser, keyword) ...@@ -14468,6 +14470,8 @@ cp_parser_sizeof_operand (parser, keyword)
looking at the unary-expression production. */ looking at the unary-expression production. */
if (!expr) if (!expr)
expr = cp_parser_unary_expression (parser, /*address_p=*/false); expr = cp_parser_unary_expression (parser, /*address_p=*/false);
/* Go back to evaluating expressions. */
--skip_evaluation;
/* Free the message we created. */ /* Free the message we created. */
free ((char *) parser->type_definition_forbidden_message); free ((char *) parser->type_definition_forbidden_message);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment