+2019-11-22 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * dw2gencfi.c (output_cie): Error on return column overflow.
+ * testsuite/gas/riscv/cie-rtn-col-1.d: New file.
+ * testsuite/gas/riscv/cie-rtn-col-3.d: New file.
+ * testsuite/gas/riscv/cie-rtn-col.s: New file.
+
2019-11-22 Andrew Burgess <andrew.burgess@embecosm.com>
* config/tc-riscv.c (tc_riscv_regname_to_dw2regnum): Lookup CSR
out_uleb128 (DWARF2_LINE_MIN_INSN_LENGTH); /* Code alignment. */
out_sleb128 (DWARF2_CIE_DATA_ALIGNMENT); /* Data alignment. */
if (flag_dwarf_cie_version == 1) /* Return column. */
- out_one (cie->return_column);
+ {
+ if ((cie->return_column & 0xff) != cie->return_column)
+ as_bad (_("return column number %d overflows in CIE version 1"),
+ cie->return_column);
+ out_one (cie->return_column);
+ }
else
out_uleb128 (cie->return_column);
if (eh_frame)
--- /dev/null
+#as: --gdwarf-cie-version=1
+#source: cie-rtn-col.s
+#error: return column number 4929 overflows in CIE version 1
--- /dev/null
+#objdump: --dwarf=frames
+#as: --gdwarf-cie-version=3
+#source: cie-rtn-col.s
+
+.*: file format elf.*-.*riscv
+
+Contents of the .* section:
+
+
+00000000 [a-zA-Z0-9]+ [a-zA-Z0-9]+ CIE
+ Version: 3
+ Augmentation: .*
+ Code alignment factor: .*
+ Data alignment factor: .*
+ Return address column: 4929
+ Augmentation data: .*
+#...
--- /dev/null
+ .cfi_startproc
+ .cfi_return_column mepc
+ .cfi_endproc