diff options
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/parser.c | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index cc423ede4ed..7b1dc9244d3 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * parser.c (cp_parser_string_literal, cp_parser_sizeof_operand): + Constify. + +2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * decl.c (typename_hash, typename_compare): Constify. * mangle.c (hash_type, compare_type): Likewise. * pt.c (eq_local_specializations, hash_local_specialization): diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 458d300c331..b8d2b15a083 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -2896,7 +2896,7 @@ cp_parser_string_literal (cp_parser *parser, bool translate, bool wide_ok) { cp_lexer_consume_token (parser->lexer); count++; - str.text = (unsigned char *)TREE_STRING_POINTER (tok->u.value); + str.text = (const unsigned char *)TREE_STRING_POINTER (tok->u.value); str.len = TREE_STRING_LENGTH (tok->u.value); if (tok->type == CPP_WSTRING) wide = true; @@ -17111,6 +17111,7 @@ cp_parser_sizeof_operand (cp_parser* parser, enum rid keyword) static const char *format; tree expr = NULL_TREE; const char *saved_message; + char *tmp; bool saved_integral_constant_expression_p; bool saved_non_integral_constant_expression_p; bool pack_expansion_p = false; @@ -17123,12 +17124,11 @@ cp_parser_sizeof_operand (cp_parser* parser, enum rid keyword) old message. */ saved_message = parser->type_definition_forbidden_message; /* And create the new one. */ - parser->type_definition_forbidden_message - = XNEWVEC (const char, strlen (format) + parser->type_definition_forbidden_message = tmp + = XNEWVEC (char, strlen (format) + strlen (IDENTIFIER_POINTER (ridpointers[keyword])) + 1 /* `\0' */); - sprintf ((char *) parser->type_definition_forbidden_message, - format, IDENTIFIER_POINTER (ridpointers[keyword])); + sprintf (tmp, format, IDENTIFIER_POINTER (ridpointers[keyword])); /* The restrictions on constant-expressions do not apply inside sizeof expressions. */ @@ -17204,7 +17204,7 @@ cp_parser_sizeof_operand (cp_parser* parser, enum rid keyword) --skip_evaluation; /* Free the message we created. */ - free ((char *) parser->type_definition_forbidden_message); + free (tmp); /* And restore the old one. */ parser->type_definition_forbidden_message = saved_message; parser->integral_constant_expression_p |