Fix ICE in assembler when passed a corrupt input file.

PR gas/20895
	* symbols.c (resolve_symbol_value): Gracefully handle erroneous
	symbolic expressions.
This commit is contained in:
Nick Clifton 2016-12-01 10:38:40 +00:00
parent a37a2806e3
commit 6d6ad65b43
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2016-12-01 Nick Clifton <nickc@redhat.com>
PR gas/20895
* symbols.c (resolve_symbol_value): Gracefully handle erroneous
symbolic expressions.
2016-11-29 Claudiu Zissulescu <claziss@synopsys.com>
* config/tc-arc.c (find_opcode_match): New function argument

View File

@ -1429,7 +1429,16 @@ resolve_symbol_value (symbolS *symp)
case O_gt: left = left > right ? ~ (offsetT) 0 : 0; break;
case O_logical_and: left = left && right; break;
case O_logical_or: left = left || right; break;
default: abort ();
case O_illegal:
case O_absent:
case O_constant:
/* See PR 20895 for a reproducer. */
as_bad (_("Invalid operation on symbol"));
goto exit_dont_set_value;
default:
abort ();
}
final_val += symp->sy_frag->fr_address + left;