------- Comment #3 from ebotcazou at gcc dot gnu dot org  2010-02-11 12:23 
-------
I'll write a book about -fstack-check someday...  -fstack-check was severely
broken during the GCC3 -> GCC4 transition and, despite years of patches posting
and pinging, only GCC 4.5 has the beginning of a working implementation, so
anything between 4.0 and 4.4 must be forgotten since totally broken.

And, again despite posted patches, the 4.5 implementation only restores the old
implementation available in the 3.x series, which doesn't work for this case:

e...@atlantis:~/build/gcc/native32> ~/install/gcc-3_4-branch/bin/gcc -v
Reading specs from
/home/eric/install/gcc-3_4-branch/lib/gcc/x86_64-suse-linux/3.4.6/specs
Configured with: /home/eric/svn/gcc-3_4-branch/configure x86_64-suse-linux
--prefix=/home/eric/install/gcc-3_4-branch
--enable-languages=c,c++,objc,f77,java,ada --enable-__cxa_atexit
Thread model: posix
gcc version 3.4.6

e...@atlantis:~/build/gcc/native32> ~/install/gcc-3_4-branch/bin/gcc -m32 -S
pr43013.c

e...@atlantis:~/build/gcc/native32> ~/install/gcc-3_4-branch/bin/gcc -m32 -S
pr43013.c -fstack-check
pr43013.c: In function `foo':
pr43013.c:6: error: label 'lab' used before containing binding contour

Granted, we now generate wrong code instead of erroring out, but it's again a
fallout of the GCC3 -> GCC4 breakage, not of my patches.

This will be fixed once the improved implementation is merged.  ETA is 4.6, for
x86/x86-64 at least.


-- 

ebotcazou at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.4/4.5 Regression]        |[4.5 Regression] "warning:
                   |"warning: 'saved_stack.1' is|'saved_stack.1' is used
                   |used uninitialized in this  |uninitialized in this
                   |function" with -fstack-check|function" with -fstack-check


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

Reply via email to