patches/gcc/4.4.5/110-trampolinewarn.patch
author Johannes Stezenbach <js@sig21.net>
Tue Oct 30 00:22:25 2012 +0000 (2012-10-30)
changeset 3097 5c67476c7342
permissions -rw-r--r--
scripts/functions: fix endless loop in debug-shell with IO redirection

CT_DEBUG_INTERACTIVE is disabled when stdin, stdout or
stderr are redirected, but the check is only done at
the start of the build and doesn't catch when individual
build commands use redirection. When stdin is redirected
it will cause the debug shell to exit immediately, causing
and endless loop. Thus, save the stdin/our/err file handles
and restore them before invoking the debug shell.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
Message-Id: <20121030102225.GA8303@sig21.net>
Patchwork-Id: 195409
     1 diff -durN gcc-4.4.5.orig/gcc/builtins.c gcc-4.4.5/gcc/builtins.c
     2 --- gcc-4.4.5.orig/gcc/builtins.c	2010-03-22 16:00:20.000000000 +0100
     3 +++ gcc-4.4.5/gcc/builtins.c	2010-10-09 22:57:58.000000000 +0200
     4 @@ -5783,6 +5783,9 @@
     5    trampolines_created = 1;
     6    INITIALIZE_TRAMPOLINE (r_tramp, r_func, r_chain);
     7  
     8 +  if (warn_trampolines)
     9 +    warning (OPT_Wtrampolines, "generating trampoline in object (requires executable stack)");
    10 +
    11    return const0_rtx;
    12  }
    13  
    14 diff -durN gcc-4.4.5.orig/gcc/common.opt gcc-4.4.5/gcc/common.opt
    15 --- gcc-4.4.5.orig/gcc/common.opt	2009-03-28 18:28:45.000000000 +0100
    16 +++ gcc-4.4.5/gcc/common.opt	2010-10-09 22:57:58.000000000 +0200
    17 @@ -197,6 +197,10 @@
    18  Common Var(warn_type_limits) Init(-1) Warning
    19  Warn if a comparison is always true or always false due to the limited range of the data type
    20  
    21 +Wtrampolines
    22 +Common Var(warn_trampolines) Init(1)
    23 +Warn whenever a trampoline is generated
    24 +
    25  Wuninitialized
    26  Common Var(warn_uninitialized) Warning
    27  Warn about uninitialized automatic variables