patches/gcc/4.3.2/110-trampolinewarn.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Mon Feb 13 21:47:25 2012 +0100 (2012-02-13)
changeset 2883 cea814c9932a
parent 747 d3e603e7c17c
permissions -rw-r--r--
libc/glibc: do not consume parameters when parsing them

Currently, there are two constructs used to parse arguments in
glibc backends, one that consumes args as they are parsed, and
one that does not.

Always use the construct that does not eat args as they are parsed.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/00_all_gcc-trampolinewarn.patch
     2 	This trivial patch causes gcc to emit a warning whenever
     3 	it generates a trampoline.  These are otherwise hard to
     4 	locate.  It is rigged to default ON - to have it default
     5 	to OFF remove the text 'Init(1)' from the common.opt
     6 	patch, leaving just 'Common Var(warn_trampolines)'.
     7 	Kevin F. Quinn <kevquinn@gentoo.org> 17 Jan 2006
     8 
     9 diff -durN gcc-4.3.1.orig/gcc/builtins.c gcc-4.3.1/gcc/builtins.c
    10 --- gcc-4.3.1.orig/gcc/builtins.c	2008-04-23 00:36:27.000000000 +0200
    11 +++ gcc-4.3.1/gcc/builtins.c	2008-06-10 14:56:54.000000000 +0200
    12 @@ -5662,6 +5662,9 @@
    13    trampolines_created = 1;
    14    INITIALIZE_TRAMPOLINE (r_tramp, r_func, r_chain);
    15  
    16 +  if (warn_trampolines)
    17 +    warning (OPT_Wtrampolines, "generating trampoline in object (requires executable stack)");
    18 +
    19    return const0_rtx;
    20  }
    21  
    22 diff -durN gcc-4.3.1.orig/gcc/common.opt gcc-4.3.1/gcc/common.opt
    23 --- gcc-4.3.1.orig/gcc/common.opt	2008-01-22 15:11:44.000000000 +0100
    24 +++ gcc-4.3.1/gcc/common.opt	2008-06-10 14:56:54.000000000 +0200
    25 @@ -182,6 +182,10 @@
    26  Common Var(warn_system_headers) Warning
    27  Do not suppress warnings from system headers
    28  
    29 +Wtrampolines
    30 +Common Var(warn_trampolines) Init(1)
    31 +Warn whenever a trampoline is generated
    32 +
    33  Wuninitialized
    34  Common Var(warn_uninitialized) Warning
    35  Warn about uninitialized automatic variables