Commit eb8543b3 by Mark Mitchell Committed by Mark Mitchell

c-typeck.c (digest_init): Issue error messages about invalid constants, not warnings.

	* c-typeck.c (digest_init): Issue error messages about
	invalid constants, not warnings.

From-SVN: r42560
parent a16ad779
2001-05-24 Mark Mitchell <mark@codesourcery.com>
* c-typeck.c (digest_init): Issue error messages about
invalid constants, not warnings.
2001-05-24 Mark Mitchell <mark@codesourcery.com>
* invoke.texi (-fno-builtin): Document that this is always on
in C++.
......
......@@ -4791,14 +4791,21 @@ digest_init (type, init, require_constant, constructor_constant)
if (flag_pedantic_errors)
inside_init = error_mark_node;
}
else if (require_constant && ! TREE_CONSTANT (inside_init))
else if (require_constant
&& (!TREE_CONSTANT (inside_init)
/* This test catches things like `7 / 0' which
result in an expression for which TREE_CONSTANT
is true, but which is not actually something
that is a legal constant. We really should not
be using this function, because it is a part of
the back-end. Instead, the expression should
already have been turned into ERROR_MARK_NODE. */
|| !initializer_constant_valid_p (inside_init,
TREE_TYPE (inside_init))))
{
error_init ("initializer element is not constant");
inside_init = error_mark_node;
}
else if (require_constant
&& initializer_constant_valid_p (inside_init, TREE_TYPE (inside_init)) == 0)
pedwarn ("initializer element is not computable at load time");
return inside_init;
}
......
int i = 7 / 0; /* { dg-error "not constant" } */
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