[binutils-gdb] alpha-vms: divide by zero
Alan Modra
amodra@sourceware.org
Mon Apr 27 23:15:03 GMT 2020
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=48e5bada0aa8dacfbdee9700638fb20f5c17e55f
commit 48e5bada0aa8dacfbdee9700638fb20f5c17e55f
Author: Alan Modra <amodra@gmail.com>
Date: Tue Apr 28 08:32:13 2020 +0930
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.
Diff:
---
bfd/ChangeLog | 5 +++++
bfd/vms-alpha.c | 5 ++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0a0995ec09d..054aa32745b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 713697ae469..8e923d2c792 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -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;
}
More information about the Binutils-cvs
mailing list