Commit 253b6b82 by Kaveh R. Ghazi Committed by Kaveh Ghazi

c-typeck.c (process_init_element): For -Wtraditional, warn about initialization of unions.

	* c-typeck.c (process_init_element): For -Wtraditional, warn about
	initialization of unions.

	* invoke.texi (-Wtraditional): Document new behavior.

From-SVN: r35595
parent 2bf9a2ab
2000-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* c-typeck.c (process_init_element): For -Wtraditional, warn about
initialization of unions.
* invoke.texi (-Wtraditional): Document new behavior.
2000-08-09 Zack Weinberg <zack@wolery.cumb.org>
* configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE
......
......@@ -6400,6 +6400,15 @@ process_init_element (value)
fieldtype = TYPE_MAIN_VARIANT (fieldtype);
fieldcode = TREE_CODE (fieldtype);
/* Warn that traditional C rejects initialization of unions.
We skip the warning if the value is zero. This is done
under the assumption that the zero initializer in user
code appears conditioned on e.g. __STDC__ to avoid
"missing initializer" warnings and relies on default
initialization to zero in the traditional C case. */
if (warn_traditional && !integer_zerop (value))
warning ("traditional C rejects initialization of unions");
/* Accept a string constant to initialize a subarray. */
if (value != 0
&& fieldcode == ARRAY_TYPE
......
......@@ -1831,6 +1831,13 @@ Initialization of automatic aggregates.
@item
Identifier conflicts with labels. Traditional C lacks a separate
namespace for labels.
@item
Initialization of unions. If the initializer is zero, the warning is
omitted. This is done under the assumption that the zero initializer in
user code appears conditioned on e.g. @code{__STDC__} to avoid missing
initializer warnings and relies on default initialization to zero in the
traditional C case.
@end itemize
@item -Wundef
......
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