http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52944

Mike Frysinger <vapier at gentoo dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |4.4.7
      Known to fail|                            |4.5.3, 4.6.3

--- Comment #2 from Mike Frysinger <vapier at gentoo dot org> 2012-04-12 
15:13:25 UTC ---
if you look at the tftp example, you'd see that your proposed struct does not
work.  the protocol needs two flexible array members at different starting
points.

the 96 isn't conservative in this case, it's correct.  i declared a buffer of
100 bytes, so buf[0] can cover 96 bytes (as the leading integer is 32bits).  is
there a "simplish" patch that could be backported to the 4.5/4.6 branches for
that ?

thinking a bit more, the requirements can probably be pulled off with more
anonymous unions/structs like so:

struct tftphdr {
    short opcode;
    union {
        struct {
            union {
                unsigned short tu_block;
                short tu_code;
            };
            char tu_data[0];
        };
        char tu_stuff[0];
    } __attribute__ ((__packed__));
} __attribute__ ((__packed__));

Reply via email to