Can anyone tell me if there is a patch for this problem?

Consider:

    void bar(char*);

    void foo(int x)
    {
        if (x) { char y[4096]; bar(y); }
        else   { char z[4096]; bar(z); }
    }

Cygwin gcc 3.4.2 -O2 yields:

        pushl   %ebp
        movl    $8216, %eax   /* Should be about 4k */
        movl    %esp, %ebp
        call    __alloca

PPC cross compiler 3.4.2 -O2 yields:

        cmpwi 7,3,0
        mflr 0
        stwu 1,-8208(1)      /* Should be about 4k */

Earl




Reply via email to