middle-end/9725: Invalid dependency determination
Jan Beulich
JBeulich@novell.com
Thu Feb 20 07:40:00 GMT 2003
Which doesn't work (and possibly doesn't have to as outlined in the
other mail, depending on how you interpret the wording of the standard)
when used as
(&u.s)->f1 = x;
(&u.s)->f2 = y;
which is (supposedly) equivalent to the use of the . operator...
Jan
>>> Momchil Velikov <velco@fadata.bg> 19.02.03 22:10:36 >>>
>>>>> "Jan" == Jan Beulich <JBeulich@novell.com> writes:
Jan> But why is the structure incompatible?
Jan> "... an aggregate or union type that includes one of the
aforementioned
Jan> types among its
Jan> members (including, recursively, a member of a subaggregate
or
Jan> contained union), ..."
which means that you example should be coded as
struct s
{
unsigned f1:16;
unsigned f2:16;
};
void
test (unsigned *pf, unsigned x, unsigned y)
{
union
{
unsigned f;
struct s s;
} u;
u.s.f1 = x;
u.s.f2 = y;
*pf = u.f;
}
~velco
More information about the Gcc-bugs
mailing list