dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
[gcc.git] / gcc / unwind-dw2.c
index 4626ec6d84cbe364441dcf54041ab6918110541a..930f02f37992003479123d4a757b504c744f30ab 100644 (file)
@@ -902,7 +902,7 @@ execute_cfa_program (const unsigned char *insn_ptr,
          insn_ptr += utmp;
          break;
 
-         /* From the 2.1 draft.  */
+         /* From the dwarf3 draft.  */
        case DW_CFA_offset_extended_sf:
          insn_ptr = read_uleb128 (insn_ptr, &reg);
          insn_ptr = read_sleb128 (insn_ptr, &stmp);
@@ -916,10 +916,12 @@ execute_cfa_program (const unsigned char *insn_ptr,
          insn_ptr = read_uleb128 (insn_ptr, &fs->cfa_reg);
          insn_ptr = read_sleb128 (insn_ptr, &fs->cfa_offset);
          fs->cfa_how = CFA_REG_OFFSET;
+         fs->cfa_offset *= fs->data_align;
          break;
 
        case DW_CFA_def_cfa_offset_sf:
          insn_ptr = read_sleb128 (insn_ptr, &fs->cfa_offset);
+         fs->cfa_offset *= fs->data_align;
          /* cfa_how deliberately not set.  */
          break;