alpha-vms: divide by zero

The zero check was on the wrong operand.  And, yes, the second operand
popped is supposed to be divided by the first operand popped.

	* vms-alpha.c (_bfd_vms_slurp_etir): Correct divide by zero check.
	Emit warning message.
This commit is contained in:
Alan Modra 2020-04-28 08:32:13 +09:30
parent 251dae9107
commit 48e5bada0a
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2020-04-28 Alan Modra <amodra@gmail.com>
* vms-alpha.c (_bfd_vms_slurp_etir): Correct divide by zero check.
Emit warning message.
2020-04-27 Tamar Christina <tamar.christina@arm.com>
* coff-i386.c (COFF_WITH_PE_BIGOBJ): New.

View File

@ -2438,8 +2438,11 @@ _bfd_vms_slurp_etir (bfd *abfd, struct bfd_link_info *info)
return FALSE;
if (rel1 != RELC_NONE || rel2 != RELC_NONE)
goto bad_context;
if (op2 == 0)
if (op1 == 0)
{
/* Divide by zero is supposed to give a result of zero,
and a non-fatal warning message. */
_bfd_error_handler (_("%s divide by zero"), "ETIR__C_OPR_DIV");
if (!_bfd_vms_push (abfd, 0, RELC_NONE))
return FALSE;
}