Refer to the standard as an ISO document, not an ANSI one.

* decl.c (grokdeclarator): Change ANSI to ISO.
	* lex.c (consume_string, readescape, do_identifier): Likewise.
	(parse_float, real_yylex): Likewise.
	* parse.y (paren_expr_or_null, paren_cond_or_null): Likewise.
	(unary_expr, new_initializer, cast_expr, primary, primary_no_id,
	new_type_id, maybe_label_decls, simple_stmt,
	for.init.statement): Likewise.
	* pt.c (do_decl_instantiation, do_type_instantiation): Likewise.
	* semantics.c (finish_named_return_value): Likewise.
	* parse.c: Regenerate.

From-SVN: r32100
This commit is contained in:
Martin v. Löwis 2000-02-22 07:25:31 +00:00 committed by Martin v. Löwis
parent c7e266a6b7
commit cab1f18012
13 changed files with 96 additions and 82 deletions

View file

@ -1,3 +1,16 @@
2000-02-21 Martin v. Löwis <loewis@informatik.hu-berlin.de>
* decl.c (grokdeclarator): Change ANSI to ISO.
* lex.c (consume_string, readescape, do_identifier): Likewise.
(parse_float, real_yylex): Likewise.
* parse.y (paren_expr_or_null, paren_cond_or_null): Likewise.
(unary_expr, new_initializer, cast_expr, primary, primary_no_id,
new_type_id, maybe_label_decls, simple_stmt,
for.init.statement): Likewise.
* pt.c (do_decl_instantiation, do_type_instantiation): Likewise.
* semantics.c (finish_named_return_value): Likewise.
* parse.c: Regenerate.
2000-02-21 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro.

View file

@ -1926,7 +1926,7 @@ type_decays_to (type)
1) bool-taking candidates. These are the same regardless of the input.
2) pointer-pair taking candidates. These are generated for each type
one of the input types converts to.
3) arithmetic candidates. According to the WP, we should generate
3) arithmetic candidates. According to the standard, we should generate
all of these, but I'm trying not to... */
static struct z_candidate *
@ -4883,10 +4883,10 @@ joust (cand1, cand2, warn)
/* for some argument j, ICSj(F1) is a better conversion sequence than
ICSj(F2) */
/* For comparing static and non-static member functions, we ignore the
implicit object parameter of the non-static function. The WP says to
pretend that the static function has an object parm, but that won't
work with operator overloading. */
/* For comparing static and non-static member functions, we ignore
the implicit object parameter of the non-static function. The
standard says to pretend that the static function has an object
parm, but that won't work with operator overloading. */
len = TREE_VEC_LENGTH (cand1->convs);
if (len != TREE_VEC_LENGTH (cand2->convs))
{

View file

@ -484,7 +484,7 @@ struct tree_srcloc
OPERATOR_TYPENAME_FORMAT, \
strlen (OPERATOR_TYPENAME_FORMAT)))
/* Nonzero means reject anything that ANSI standard C forbids. */
/* Nonzero means reject anything that ISO standard C++ forbids. */
extern int pedantic;
/* In a RECORD_TYPE or UNION_TYPE, nonzero if any component is read-only. */
@ -1114,8 +1114,9 @@ extern int interface_only, interface_unknown;
extern int flag_elide_constructors;
/* Nonzero means enable obscure ANSI features and disable GNU extensions
that might cause ANSI-compliant code to be miscompiled. */
/* Nonzero means enable obscure standard features and disable GNU
extensions that might cause standard-compliant code to be
miscompiled. */
extern int flag_ansi;

View file

@ -453,7 +453,7 @@ struct binding_level
tree incomplete;
/* List of VAR_DECLS saved from a previous for statement.
These would be dead in ANSI-conforming code, but might
These would be dead in ISO-conforming code, but might
be referenced in ARM-era code. These are stored in a
TREE_LIST; the TREE_VALUE is the actual declaration. */
tree dead_vars_from_for;
@ -484,7 +484,7 @@ struct binding_level
unsigned namespace_p : 1;
/* True if this level is that of a for-statement where we need to
worry about ambiguous (ARM or ANSI) scope rules. */
worry about ambiguous (ARM or ISO) scope rules. */
unsigned is_for_scope : 1;
/* True if this level corresponds to an EH region, as for a try block. */
@ -4509,7 +4509,7 @@ implicitly_declare (functionid)
DECL_EXTERNAL (decl) = 1;
TREE_PUBLIC (decl) = 1;
/* ANSI standard says implicit declarations are in the innermost block.
/* ISO standard says implicit declarations are in the innermost block.
So we record the decl in the standard fashion. */
pushdecl (decl);
rest_of_decl_compilation (decl, NULL_PTR, 0, 0);
@ -6511,8 +6511,7 @@ fixup_anonymous_aggr (t)
q = &TREE_CHAIN (*q);
}
/* ANSI C++ June 5 1992 WP 9.5.3. Anonymous unions may not have
function members. */
/* ISO C++ 9.5.3. Anonymous unions may not have function members. */
if (TYPE_METHODS (t))
error ("an anonymous union cannot have function members");
}
@ -10185,9 +10184,9 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
if (flags == DTOR_FLAG)
{
/* ANSI C++ June 5 1992 WP 12.4.1. A destructor may
not be declared const or volatile. A destructor
may not be static. */
/* ISO C++ 12.4/2. A destructor may not be
declared const or volatile. A destructor may
not be static. */
if (staticp == 2)
error ("destructor cannot be static member function");
if (quals)
@ -10208,9 +10207,10 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
{
if (explicitp == 1)
explicitp = 2;
/* ANSI C++ June 5 1992 WP 12.1.2. A constructor may
not be declared const or volatile. A constructor may
not be virtual. A constructor may not be static. */
/* ISO C++ 12.1. A constructor may not be
declared const or volatile. A constructor may
not be virtual. A constructor may not be
static. */
if (staticp == 2)
error ("constructor cannot be static member function");
if (virtualp)
@ -11110,7 +11110,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
the rest of the compiler does not correctly
handle the initialization unless the member is
static so we make it static below. */
cp_pedwarn ("ANSI C++ forbids initialization of member `%D'",
cp_pedwarn ("ISO C++ forbids initialization of member `%D'",
declarator);
cp_pedwarn ("making `%D' static", declarator);
staticp = 1;
@ -12963,9 +12963,8 @@ start_function (declspecs, declarator, attrs, flags)
if (TREE_CODE (fntype) == METHOD_TYPE)
ctype = TYPE_METHOD_BASETYPE (fntype);
/* ANSI C++ June 5 1992 WP 11.4.5. A friend function defined in a
class is in the (lexical) scope of the class in which it is
defined. */
/* ISO C++ 11.4/5. A friend function defined in a class is in
the (lexical) scope of the class in which it is defined. */
if (!ctype && DECL_FRIEND_P (decl1))
{
ctype = DECL_FRIEND_CONTEXT (decl1);

View file

@ -171,8 +171,9 @@ int flag_traditional;
int flag_signed_bitfields = 1;
/* Nonzero means enable obscure ANSI features and disable GNU extensions
that might cause ANSI-compliant code to be miscompiled. */
/* Nonzero means enable obscure standard features and disable GNU
extensions that might cause standard-compliant code to be
miscompiled. */
int flag_ansi;
@ -422,11 +423,11 @@ int flag_operator_names;
int flag_check_new;
/* Nonzero if we want the new ANSI rules for pushing a new scope for `for'
/* Nonzero if we want the new ISO rules for pushing a new scope for `for'
initialization variables.
0: Old rules, set by -fno-for-scope.
2: New ANSI rules, set by -ffor-scope.
1: Try to implement new ANSI rules, but with backup compatibility
2: New ISO rules, set by -ffor-scope.
1: Try to implement new ISO rules, but with backup compatibility
(and warnings). This is the default, for now. */
int flag_new_for_scope = 1;
@ -455,7 +456,7 @@ int flag_honor_std;
int flag_inline_trees = 0;
/* Maximum template instantiation depth. Must be at least 17 for ANSI
/* Maximum template instantiation depth. Must be at least 17 for ISO
compliance. */
int max_tinst_depth = 17;

View file

@ -763,7 +763,7 @@ expand_throw (exp)
{
tree object, ptr;
/* OK, this is kind of wacky. The WP says that we call
/* OK, this is kind of wacky. The standard says that we call
terminate when the exception handling mechanism, after
completing evaluation of the expression to be thrown but
before the exception is caught (_except.throw_), calls a

View file

@ -2931,7 +2931,7 @@ build_vec_init (decl, base, maxindex, init, from_array)
things like padding and magic size cookies. It has virtual in it,
because if you have a base pointer and you delete through a virtual
destructor, it should be the size of the dynamic object, not the
static object, see Free Store 12.5 ANSI C++ WP.
static object, see Free Store 12.5 ISO C++.
This does not call any destructors. */

View file

@ -1421,7 +1421,7 @@ consume_string (this_obstack, matching_char)
if (c == '\n')
{
if (pedantic)
pedwarn ("ANSI C++ forbids newline in string constant");
pedwarn ("ISO C++ forbids newline in string constant");
lineno++;
}
obstack_1grow (this_obstack, c);
@ -2912,7 +2912,7 @@ readescape (ignore_ptr)
case 'e':
case 'E':
if (pedantic)
pedwarn ("non-ANSI-standard escape sequence, `\\%c'", c);
pedwarn ("non-ISO-standard escape sequence, `\\%c'", c);
return 033;
case '?':
@ -3148,7 +3148,7 @@ do_identifier (token, parsing, args)
{
warning ("name lookup of `%s' changed",
IDENTIFIER_POINTER (token));
cp_warning_at (" matches this `%D' under current ANSI rules",
cp_warning_at (" matches this `%D' under ISO standard rules",
shadowed);
cp_warning_at (" matches this `%D' under old rules", id);
DECL_ERROR_REPORTED (id) = 1;
@ -3160,14 +3160,14 @@ do_identifier (token, parsing, args)
DECL_ERROR_REPORTED (id) = 1;
if (TYPE_NEEDS_DESTRUCTOR (TREE_TYPE (id)))
{
error ("name lookup of `%s' changed for new ANSI `for' scoping",
error ("name lookup of `%s' changed for new ISO `for' scoping",
IDENTIFIER_POINTER (token));
cp_error_at (" cannot use obsolete binding at `%D' because it has a destructor", id);
id = error_mark_node;
}
else
{
pedwarn ("name lookup of `%s' changed for new ANSI `for' scoping",
pedwarn ("name lookup of `%s' changed for new ISO `for' scoping",
IDENTIFIER_POINTER (token));
cp_pedwarn_at (" using obsolete binding at `%D'", id);
}
@ -3361,7 +3361,7 @@ parse_float (data)
if (args->imag)
error ("more than one `i' or `j' in numeric constant");
else if (pedantic)
pedwarn ("ANSI C++ forbids imaginary numeric constants");
pedwarn ("ISO C++ forbids imaginary numeric constants");
args->imag = 1;
break;
@ -4043,7 +4043,7 @@ real_yylex ()
if (spec_long_long)
error ("three `l's in integer constant");
else if (pedantic && ! in_system_header && warn_long_long)
pedwarn ("ANSI C++ forbids long long integer constants");
pedwarn ("ISO C++ forbids long long integer constants");
spec_long_long = 1;
}
spec_long = 1;
@ -4053,7 +4053,7 @@ real_yylex ()
if (spec_imag)
error ("more than one `i' or `j' in numeric constant");
else if (pedantic)
pedwarn ("ANSI C++ forbids imaginary numeric constants");
pedwarn ("ISO C++ forbids imaginary numeric constants");
spec_imag = 1;
}
else
@ -4204,7 +4204,7 @@ real_yylex ()
else if (c == '\n')
{
if (pedantic)
pedwarn ("ANSI C forbids newline in character constant");
pedwarn ("ISO C++ forbids newline in character constant");
lineno++;
}
else
@ -4366,7 +4366,7 @@ real_yylex ()
else if (c == '\n')
{
if (pedantic)
pedwarn ("ANSI C++ forbids newline in string constant");
pedwarn ("ISO C++ forbids newline in string constant");
lineno++;
}
else

View file

@ -1,6 +1,7 @@
/* A Bison parser, made from parse.y
by GNU Bison version 1.28 */
by GNU Bison version 1.27
*/
#define YYBISON 1 /* Identify Bison output. */
@ -4027,8 +4028,8 @@ static const short yycheck[] = { 4,
78, 79, 80, 81, 82, 83, 84, 85
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/lib/bison.simple"
/* This file comes from bison-1.28. */
#line 3 "/usr/share/bison.simple"
/* This file comes from bison-1.27. */
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@ -4241,7 +4242,7 @@ __yy_memcpy (char *to, char *from, unsigned int count)
#endif
#endif
#line 217 "/usr/lib/bison.simple"
#line 216 "/usr/share/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
@ -5266,7 +5267,7 @@ case 191:
break;}
case 193:
#line 1057 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
{ error ("ISO C++ forbids an empty condition for `%s'",
cond_stmt_keyword);
yyval.ttype = integer_zero_node; ;
break;}
@ -5276,7 +5277,7 @@ case 194:
break;}
case 195:
#line 1066 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
{ error ("ISO C++ forbids an empty condition for `%s'",
cond_stmt_keyword);
yyval.ttype = integer_zero_node; ;
break;}
@ -5376,7 +5377,7 @@ case 221:
case 222:
#line 1159 "parse.y"
{ if (pedantic)
pedwarn ("ANSI C++ forbids `&&'");
pedwarn ("ISO C++ forbids `&&'");
yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
break;}
case 223:
@ -5495,7 +5496,7 @@ case 246:
#line 1243 "parse.y"
{
if (pedantic)
pedwarn ("ANSI C++ forbids initialization of new expression with `='");
pedwarn ("ISO C++ forbids initialization of new expression with `='");
if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
&& TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
@ -5525,7 +5526,7 @@ case 251:
tree init = build_nt (CONSTRUCTOR, NULL_TREE,
nreverse (yyvsp[-2].ttype));
if (pedantic)
pedwarn ("ANSI C++ forbids constructor-expressions");
pedwarn ("ISO C++ forbids constructor-expressions");
/* Indicate that this was a GNU C constructor expression. */
TREE_HAS_CONSTRUCTOR (init) = 1;
@ -5746,7 +5747,7 @@ case 312:
YYERROR;
}
if (pedantic)
pedwarn ("ANSI C++ forbids braced-groups within expressions");
pedwarn ("ISO C++ forbids braced-groups within expressions");
yyval.ttype = begin_stmt_expr ();
;
break;}
@ -6536,7 +6537,7 @@ case 480:
else
{
yyval.ftype.t = yyvsp[0].ftype.t;
/* struct B: public A; is not accepted by the WP grammar. */
/* struct B: public A; is not accepted by the standard grammar. */
if (CLASS_TYPE_P (yyval.ftype.t)
&& TYPE_BINFO_BASETYPES (yyval.ftype.t)
&& !TYPE_SIZE (yyval.ftype.t)
@ -7007,7 +7008,7 @@ case 575:
#line 2667 "parse.y"
{
if (pedantic)
pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
pedwarn ("ISO C++ forbids array dimensions with parenthesized type in new");
yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
@ -7543,7 +7544,7 @@ case 697:
case 704:
#line 3167 "parse.y"
{ if (pedantic)
pedwarn ("ANSI C++ forbids label declarations"); ;
pedwarn ("ISO C++ forbids label declarations"); ;
break;}
case 707:
#line 3178 "parse.y"
@ -7745,7 +7746,7 @@ case 756:
#line 3319 "parse.y"
{
if (pedantic)
pedwarn ("ANSI C++ forbids computed gotos");
pedwarn ("ISO C++ forbids computed gotos");
finish_goto_stmt (yyvsp[-1].ttype);
;
break;}
@ -7840,7 +7841,7 @@ case 784:
case 786:
#line 3420 "parse.y"
{ if (pedantic)
pedwarn ("ANSI C++ forbids compound statements inside for initializations");
pedwarn ("ISO C++ forbids compound statements inside for initializations");
;
break;}
case 787:
@ -8231,7 +8232,7 @@ case 878:
break;}
}
/* the action file gets copied in in place of this dollarsign */
#line 543 "/usr/lib/bison.simple"
#line 542 "/usr/share/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;

View file

@ -1054,7 +1054,7 @@ expr:
paren_expr_or_null:
LEFT_RIGHT
{ error ("ANSI C++ forbids an empty condition for `%s'",
{ error ("ISO C++ forbids an empty condition for `%s'",
cond_stmt_keyword);
$$ = integer_zero_node; }
| '(' expr ')'
@ -1063,7 +1063,7 @@ paren_expr_or_null:
paren_cond_or_null:
LEFT_RIGHT
{ error ("ANSI C++ forbids an empty condition for `%s'",
{ error ("ISO C++ forbids an empty condition for `%s'",
cond_stmt_keyword);
$$ = integer_zero_node; }
| '(' condition ')'
@ -1157,7 +1157,7 @@ unary_expr:
/* Refer to the address of a label as a pointer. */
| ANDAND identifier
{ if (pedantic)
pedwarn ("ANSI C++ forbids `&&'");
pedwarn ("ISO C++ forbids `&&'");
$$ = finish_label_address_expr ($2); }
| SIZEOF unary_expr %prec UNARY
{ $$ = expr_sizeof ($2); }
@ -1242,7 +1242,7 @@ new_initializer:
| '=' init
{
if (pedantic)
pedwarn ("ANSI C++ forbids initialization of new expression with `='");
pedwarn ("ISO C++ forbids initialization of new expression with `='");
if (TREE_CODE ($2) != TREE_LIST
&& TREE_CODE ($2) != CONSTRUCTOR)
$$ = build_tree_list (NULL_TREE, $2);
@ -1272,7 +1272,7 @@ cast_expr:
tree init = build_nt (CONSTRUCTOR, NULL_TREE,
nreverse ($3));
if (pedantic)
pedwarn ("ANSI C++ forbids constructor-expressions");
pedwarn ("ISO C++ forbids constructor-expressions");
/* Indicate that this was a GNU C constructor expression. */
TREE_HAS_CONSTRUCTOR (init) = 1;
@ -1467,7 +1467,7 @@ primary:
YYERROR;
}
if (pedantic)
pedwarn ("ANSI C++ forbids braced-groups within expressions");
pedwarn ("ISO C++ forbids braced-groups within expressions");
$<ttype>$ = begin_stmt_expr ();
}
compstmt ')'
@ -1594,7 +1594,7 @@ primary_no_id:
$<ttype>$ = expand_start_stmt_expr (); }
compstmt ')'
{ if (pedantic)
pedwarn ("ANSI C++ forbids braced-groups within expressions");
pedwarn ("ISO C++ forbids braced-groups within expressions");
$$ = expand_end_stmt_expr ($<ttype>2); }
| primary_no_id '(' nonnull_exprlist ')'
{ $$ = build_x_function_call ($$, $3, current_class_ref); }
@ -1704,7 +1704,7 @@ fcast_or_absdcl:
NULL_TREE); }
;
/* ANSI type-id (8.1) */
/* ISO type-id (8.1) */
type_id:
typed_typespecs absdcl
{ $$.t = build_decl_list ($1.t, $2);
@ -2199,7 +2199,7 @@ structsp:
else
{
$$.t = $1.t;
/* struct B: public A; is not accepted by the WP grammar. */
/* struct B: public A; is not accepted by the standard grammar. */
if (CLASS_TYPE_P ($$.t)
&& TYPE_BINFO_BASETYPES ($$.t)
&& !TYPE_SIZE ($$.t)
@ -2653,7 +2653,7 @@ enumerator:
{ build_enumerator ($1, $3, current_enum_type); }
;
/* ANSI new-type-id (5.3.4) */
/* ISO new-type-id (5.3.4) */
new_type_id:
type_specifier_seq new_declarator
{ $$.t = build_decl_list ($1.t, $2);
@ -2666,7 +2666,7 @@ new_type_id:
| '(' type_id ')' '[' expr ']'
{
if (pedantic)
pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
pedwarn ("ISO C++ forbids array dimensions with parenthesized type in new");
$$.t = build_parse_node (ARRAY_REF, TREE_VALUE ($2.t), $5);
$$.t = build_decl_list (TREE_PURPOSE ($2.t), $$.t);
$$.new_type_flag = $2.new_type_flag;
@ -3051,7 +3051,7 @@ global_scope:
{ got_scope = void_type_node; }
;
/* ANSI new-declarator (5.3.4) */
/* ISO new-declarator (5.3.4) */
new_declarator:
'*' cv_qualifiers new_declarator
{ $$ = make_pointer_declarator ($2, $3); }
@ -3072,7 +3072,7 @@ new_declarator:
| direct_new_declarator %prec EMPTY
;
/* ANSI direct-new-declarator (5.3.4) */
/* ISO direct-new-declarator (5.3.4) */
direct_new_declarator:
'[' expr ']'
{ $$ = build_parse_node (ARRAY_REF, NULL_TREE, $2); }
@ -3090,7 +3090,7 @@ absdcl_intern:
}
;
/* ANSI abstract-declarator (8.1) */
/* ISO abstract-declarator (8.1) */
absdcl:
'*' nonempty_cv_qualifiers absdcl_intern
{ $$ = make_pointer_declarator ($2.t, $3); }
@ -3119,7 +3119,7 @@ absdcl:
| direct_abstract_declarator %prec EMPTY
;
/* ANSI direct-abstract-declarator (8.1) */
/* ISO direct-abstract-declarator (8.1) */
direct_abstract_declarator:
'(' absdcl_intern ')'
{ $$ = $2; }
@ -3165,7 +3165,7 @@ maybe_label_decls:
/* empty */
| label_decls
{ if (pedantic)
pedwarn ("ANSI C++ forbids label declarations"); }
pedwarn ("ISO C++ forbids label declarations"); }
;
label_decls:
@ -3318,7 +3318,7 @@ simple_stmt:
| GOTO '*' expr ';'
{
if (pedantic)
pedwarn ("ANSI C++ forbids computed gotos");
pedwarn ("ISO C++ forbids computed gotos");
finish_goto_stmt ($3);
}
| GOTO identifier ';'
@ -3418,7 +3418,7 @@ for.init.statement:
| decl
| '{' compstmtend
{ if (pedantic)
pedwarn ("ANSI C++ forbids compound statements inside for initializations");
pedwarn ("ISO C++ forbids compound statements inside for initializations");
}
;

View file

@ -9119,7 +9119,7 @@ do_decl_instantiation (declspecs, declarator, storage)
else if (storage == ridpointers[(int) RID_EXTERN])
{
if (pedantic)
cp_pedwarn ("ANSI C++ forbids the use of `extern' on explicit instantiations");
cp_pedwarn ("ISO C++ forbids the use of `extern' on explicit instantiations");
extern_p = 1;
}
else
@ -9184,7 +9184,7 @@ do_type_instantiation (t, storage)
if (storage != NULL_TREE)
{
if (pedantic)
cp_pedwarn("ANSI C++ forbids the use of `%s' on explicit instantiations",
cp_pedwarn("ISO C++ forbids the use of `%s' on explicit instantiations",
IDENTIFIER_POINTER (storage));
if (storage == ridpointers[(int) RID_INLINE])

View file

@ -1164,7 +1164,7 @@ finish_named_return_value (return_id, init)
/* Give this error as many times as there are occurrences,
so that users can use Emacs compilation buffers to find
and fix all such places. */
pedwarn ("ANSI C++ does not permit named return values");
pedwarn ("ISO C++ does not permit named return values");
if (return_id != NULL_TREE)
{

View file

@ -5421,8 +5421,7 @@ build_c_cast (type, expr)
if (TREE_CODE (type) == ARRAY_TYPE)
{
/* Allow casting from T1* to T2[] because Cfront allows it.
NIHCL uses it. It is not valid ANSI C however, and hence, not
valid ANSI C++. */
NIHCL uses it. It is not valid ISO C++ however. */
if (TREE_CODE (TREE_TYPE (expr)) == POINTER_TYPE)
{
if (pedantic)
@ -5761,8 +5760,8 @@ build_modify_expr (lhs, modifycode, rhs)
tree inner_lhs = TREE_OPERAND (lhs, 0);
tree result;
/* WP 5.4.1: The result is an lvalue if T is a reference type,
otherwise the result is an rvalue. */
/* ISO C++ 5.4/1: The result is an lvalue if T is a reference
type, otherwise the result is an rvalue. */
if (! lvalue_p (lhs))
pedwarn ("ISO C++ forbids cast to non-reference type used as lvalue");