------- Comment #6 from etienne_lorrain at yahoo dot fr  2008-11-21 16:10 
-------
 By trying to declare:
volatile union U u;
 In your Testcase without the unnecessary enum, the "u = def;" is compiled as:
        movl    $0, u

        movl    u, %eax
        andl    $-16, %eax
        orl     $6, %eax
        movl    %eax, u

        movl    u, %eax
        andb    $15, %al
        orl     $64, %eax
        movl    %eax, u

        movl    u, %eax
        andb    $240, %ah
        orb     $2, %ah
        movl    %eax, u

        movl    u, %eax
        andb    $15, %ah
        orb     $176, %ah
        movl    %eax, u

        movl    u, %eax
        andl    $-983041, %eax
        orl     $196608, %eax
        movl    %eax, u

        movl    u, %eax
        andl    $-15728641, %eax
        orl     $5242880, %eax
        movl    %eax, u

        movl    u, %eax
        andl    $268435455, %eax
        orl     $1342177280, %eax
        movl    %eax, u

 By gcc version 4.3.2 (Debian 4.3.2-1) on i486-linux-gnu at -O2.


-- 


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

Reply via email to