Commit e0a35f9b by Sandra Loosemore Committed by Sandra Loosemore

re PR c/53608 (Documentation could be clearer about designated initializers of unions)

2018-11-22  Sandra Loosemore  <sandra@codesourcery.com>
	    Alan Coopersmith  <alan.coopersmith@oracle.com>

	PR c/53608

	gcc/
	* doc/extend.texi (Designated Inits): Clarify handling of multiple
	initializers for unions.

Co-Authored-By: Alan Coopersmith <alan.coopersmith@oracle.com>

From-SVN: r266402
parent 3f317614
2018-11-22 Sandra Loosemore <sandra@codesourcery.com>
Alan Coopersmith <alan.coopersmith@oracle.com>
PR c/53608
* doc/extend.texi (Designated Inits): Clarify handling of multiple
initializers for unions.
2018-11-22 Jan Hubicka <jh@suse.cz> 2018-11-22 Jan Hubicka <jh@suse.cz>
PR lto/88142 PR lto/88142
...@@ -2104,7 +2104,7 @@ Another syntax that has the same meaning, obsolete since GCC 2.5, is ...@@ -2104,7 +2104,7 @@ Another syntax that has the same meaning, obsolete since GCC 2.5, is
struct point p = @{ y: yvalue, x: xvalue @}; struct point p = @{ y: yvalue, x: xvalue @};
@end smallexample @end smallexample
Omitted field members are implicitly initialized the same as objects Omitted fields are implicitly initialized the same as for objects
that have static storage duration. that have static storage duration.
@cindex designators @cindex designators
...@@ -2162,11 +2162,13 @@ example, with the @samp{struct point} declaration above: ...@@ -2162,11 +2162,13 @@ example, with the @samp{struct point} declaration above:
struct point ptarray[10] = @{ [2].y = yv2, [2].x = xv2, [0].x = xv0 @}; struct point ptarray[10] = @{ [2].y = yv2, [2].x = xv2, [0].x = xv0 @};
@end smallexample @end smallexample
@noindent If the same field is initialized multiple times, or overlapping
If the same field is initialized multiple times, it has the value from fields of a union are initialized, the value from the last
the last initialization. If any such overridden initialization has initialization is used. When a field of a union is itself a structure,
side effect, it is unspecified whether the side effect happens or not. the entire structure from the last field initialized is used. If any previous
Currently, GCC discards them and issues a warning. initializer has side effect, it is unspecified whether the side effect
happens or not. Currently, GCC discards the side-effecting
initializer expressions and issues a warning.
@node Case Ranges @node Case Ranges
@section Case Ranges @section Case Ranges
......
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