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

--- Comment #20 from Jack Howarth <howarth at nitro dot med.uc.edu> 2011-02-09 
05:10:26 UTC ---
Tested...

Index: gcc/dwarf2out.c
===================================================================
--- gcc/dwarf2out.c    (revision 169960)
+++ gcc/dwarf2out.c    (working copy)
@@ -5454,11 +5454,12 @@ static void
 output_cfa_loc (dw_cfi_ref cfi)
 {
   dw_loc_descr_ref loc;
-  unsigned long size;
+  unsigned long r, size;

   if (cfi->dw_cfi_opc == DW_CFA_expression)
     {
-      dw2_asm_output_data (1, cfi->dw_cfi_oprnd1.dw_cfi_reg_num, NULL);
+      r = DWARF2_FRAME_REG_OUT (cfi->dw_cfi_oprnd1.dw_cfi_reg_num, 1);
+      dw2_asm_output_data (1, (cfi->dw_cfi_opc | (r & 0x3f)), NULL);
       loc = cfi->dw_cfi_oprnd2.dw_cfi_loc;
     }
   else

which bootstraps but the g++.dg/torture/stackalign/eh-alloca-1.C  -O0 
execution test just hangs.
I passed 1 to DWARF2_FRAME_REG_OUT because for_eh wasn't available which I
guess isn't correct.

Reply via email to