The commit of r163660...

Author: ebotcazou
Date: Mon Aug 30 20:04:49 2010
New Revision: 163660

        Stack usage support
        * common.opt (-fstack-usage): New option.
        * doc/invoke.texi (Debugging options): Document it.
        * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
        (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
        and propagate it to allocate_dynamic_stack_space.
        (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
        * calls.c (initialize_argument_information): Pass TRUE as 4th
        argument to allocate_dynamic_stack_space.
        (expand_call): Set current_function_has_unbounded_dynamic_stack_size
        to 1 when pushing a variable-sized argument onto the stack.  Pass
        TRUE as 4th argument to allocate_dynamic_stack_space.
        Update current_function_pushed_stack_size.
        (emit_library_call_value_1): Likewise.
        * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
        CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
        attempt to find an upper bound.  Remove redundant code for the
        SETJMP_VIA_SAVE_AREA case.
        * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
        * function.h (struct stack_usage): New structure.
        (current_function_static_stack_size): New macro.
        (current_function_dynamic_stack_size): Likewise.
        (current_function_pushed_stack_size): Likewise.
        (current_function_dynamic_alloc_count): Likewise.
        (current_function_has_unbounded_dynamic_stack_size): Likewise.
        (current_function_allocates_dynamic_stack_space): Likewise.
        (struct function): Add new field 'su'.
        * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
        add the value of the dynamic offset to the dynamic stack usage.
        (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
        for variable-sized objects.
        (prepare_function_start): Allocate cfun->su if flag_stack_usage.
        (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
        * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
        BUILT_IN_ALLOCA for variable-sized objects.
        * output.h (output_stack_usage): Declare.
        * toplev.c (stack_usage_file): New file pointer.
        (output_stack_usage): New function.
        (open_auxiliary_file): Likewise.
        (lang_dependent_init): Open file if flag_stack_usage is set.
        (finalize): Close file if stack_usage_file is not null.
        * tree.h (ALLOCA_FOR_VAR_P): New macro.
        * config/alpha/alpha.c (compute_frame_size): New function.
        (alpha_expand_prologue): Use it.
        (alpha_start_function): Likewise.
        (alpha_expand_epilogue): Likewise.  Set stack usage info.
        * config/i386/i386.c (ix86_expand_prologue): Likewise.
        * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
        * config/mips/mips.c (mips_expand_prologue): Likewise.
        * config/pa/pa.c (hppa_expand_prologue): Likewise.
        * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
        * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
        * lib/gcc-dg.exp (cleanup-stack-usage): New procedure.
        * lib/scanasm.exp (scan-stack-usage): Likewise.
        (scan-stack-usage-not): Likewise.
        * gcc.dg/stack-usage-1.c: New test.
        * Likewise.

causes the regression...

FAIL: gcc.c-torture/execute/builtins/sprintf-chk.c compilation,  -Os  (internal
compiler error)
UNRESOLVED: gcc.c-torture/execute/builtins/sprintf-chk.c execution,  -Os 

at -m32 on x86_64-apple-darwin10 as well as the failure of its new test

FAIL: gcc.dg/stack-usage-1.c scan-file foo\\t(256|264)\\tstatic
FAIL: scan-file

at -m32 as well. The sprintf error appears as...

 -w  -Os   -lm   -m32 -o
   (timeout =
internal compiler error: in div_data_align, at dwarf2out.c:595
Please submit a full bug report,
with preprocessed source if appropriate.See <> for
compiler exited with status 1
internal compiler error: in div_data_align, at dwarf2out.c:595Please submit a
full bug report,with preprocessed source if appropriate.
See <> for instructions.

Attempting to run this failing compilation through gdb oddly causes the ICE to
disappear and the expected and functional sprintf-chk.x7 is created.

Using built-in specs.
Target: x86_64-apple-darwin10.5.0
Configured with: ../gcc-4.6-20100901/configure --prefix=/sw
--prefix=/sw/lib/gcc4.6 --mandir=/sw/share/man --infodir=/sw/lib/gcc4.6/info
--enable-languages=c,c++,fortran,objc,obj-c++,java --with-gmp=/sw
--with-libiconv-prefix=/sw --with-ppl=/sw --with-cloog=/sw --with-mpc=/sw
--with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
--program-suffix=-fsf-4.6 --enable-lto --enable-checking=yes
Thread model: posix
gcc version 4.6.0 20100901 (experimental) (GCC)

           Summary: r163660 ICEs gcc.c-torture/execute/builtins/sprintf-
                    chk.c compilation,  -Os at -m32
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: howarth at nitro dot med dot uc dot edu
 GCC build triplet: x86_64-apple-darwin10
  GCC host triplet: x86_64-apple-darwin10
GCC target triplet: x86_64-apple-darwin10

Reply via email to