On Mon, 18 Jun 2018, Jason Merrill wrote: > On Mon, Jun 18, 2018 at 11:59 AM, Joseph Myers <jos...@codesourcery.com> > wrote: > > On Mon, 18 Jun 2018, Jason Merrill wrote: > > > >> > + if (TREE_CODE (rhs) == COND_EXPR) > >> > + { > >> > + /* Check the THEN path first. */ > >> > + tree op1 = TREE_OPERAND (rhs, 1); > >> > + context = check_address_of_packed_member (type, op1); > >> > >> This should handle the GNU extension of re-using operand 0 if operand > >> 1 is omitted. > > > > Doesn't that just use a SAVE_EXPR? > > Hmm, I suppose it does, but many places in the compiler seem to expect > that it produces a COND_EXPR with TREE_OPERAND 1 as NULL_TREE.
Maybe that's used somewhere inside the C++ front end. For C a SAVE_EXPR is produced directly. -- Joseph S. Myers jos...@codesourcery.com