From 3beb3abf1dff9ba8728d532c53374e6446fef230 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Thu, 2 Jan 2003 18:12:28 +0000 Subject: 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 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/parser.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index aa220ef..f52697b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2003-01-02 Mark Mitchell + + * parser.c (cp_parser_sizeof_operand): Do not evaluate the + expression. + 2003-01-02 Steven Bosscher * cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c, diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 32d2f84..7532116 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -1,5 +1,5 @@ /* 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 . This file is part of GCC. @@ -14432,6 +14432,8 @@ cp_parser_sizeof_operand (parser, keyword) saved_constant_expression_p = parser->constant_expression_p; 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 construction. */ if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_PAREN)) @@ -14468,6 +14470,8 @@ cp_parser_sizeof_operand (parser, keyword) looking at the unary-expression production. */ if (!expr) expr = cp_parser_unary_expression (parser, /*address_p=*/false); + /* Go back to evaluating expressions. */ + --skip_evaluation; /* Free the message we created. */ free ((char *) parser->type_definition_forbidden_message); -- cgit v1.1