The problem was that gcc was generating assembler with missing unwind directives in it,
so that a gas_assert was being triggered. The patch replaces the assert with an error
message.
* config/tc-arm.c (create_unwind_entry): Report an error if an
attempt to recreate an unwind directive is encountered.
+2014-04-02 Nick Clifton <nickc@redhat.com>
+
+ PR gas/16765
+ * config/tc-arm.c (create_unwind_entry): Report an error if an
+ attempt to recreate an unwind directive is encountered.
+
2014-03-27 Nick Clifton <nickc@redhat.com>
* config/tc-score.c (s3_parse_pce_inst): Add "%s" parameter to
/* Start an unwind table entry. HAVE_DATA is nonzero if we have additional
personality routine data. Returns zero, or the index table value for
- and inline entry. */
+ an inline entry. */
static valueT
create_unwind_entry (int have_data)
}
else
{
- gas_assert (unwind.personality_index == -1);
+ /* PR 16765: Missing or misplaced unwind directives can trigger this. */
+ if (unwind.personality_index != -1)
+ {
+ as_bad (_("attempt to recreate an unwind entry"));
+ return 1;
+ }
/* An extra byte is required for the opcode count. */
size = unwind.opcode_count + 1;