This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: sjlj-exceptions ICE. simplified test case


On Sun, Apr 23, 2000 at 10:34:01PM -0500, Robert Lipe wrote:
> This test case, derived from tinfo.cc during bootstrap, shows more
> concisely the ICE I reported earlier in the week.  I've verified that
> it also fails on i686-pc-linux.  To reproduce, invoke cc1plus with '-O2
> -sjlj-exceptions'.

This fixes the test case.  What's the easiest way to test
this out for real?  RUNTESTFLAGS='--tool_opts -fsjlj-exceptions' ?

I don't expect problems, but...


r~


        * toplev.c (rest_of_compilation): Delay sibcall optimization
        until after emit_eh_context.

Index: toplev.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/toplev.c,v
retrieving revision 1.321
diff -c -p -d -r1.321 toplev.c
*** toplev.c	2000/04/20 12:06:57	1.321
--- toplev.c	2000/04/25 10:11:58
*************** rest_of_compilation (decl)
*** 2897,2912 ****
  
    init_EXPR_INSN_LIST_cache ();
  
-   /* We may have potential sibling or tail recursion sites.  Select one
-      (of possibly multiple) methods of performing the call.  */
-   open_dump_file (DFI_sibling, decl);
-   TIMEVAR (jump_time,
- 	   {
- 	     if (flag_optimize_sibling_calls)
- 	       optimize_sibling_and_tail_recursive_calls ();
- 	   });
-   close_dump_file (DFI_sibling, print_rtl, get_insns ());
-   
    if (ggc_p)
      ggc_collect ();
  
--- 2897,2902 ----
*************** rest_of_compilation (decl)
*** 2928,2933 ****
--- 2918,2934 ----
    /* Emit code to get eh context, if needed. */
    emit_eh_context ();
  
+   /* We may have potential sibling or tail recursion sites.  Select one
+      (of possibly multiple) methods of performing the call.  */
+   if (flag_optimize_sibling_calls)
+     {
+       open_dump_file (DFI_sibling, decl);
+ 
+       TIMEVAR (jump_time, optimize_sibling_and_tail_recursive_calls ());
+ 
+       close_dump_file (DFI_sibling, print_rtl, get_insns ());
+     }
+   
  #ifdef FINALIZE_PIC
    /* If we are doing position-independent code generation, now
       is the time to output special prologues and epilogues.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]