aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-04-18 00:18:47 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2018-04-18 00:18:47 +0200
commitb5872261d5e448c85903c4f3df7e1970fc4c112a (patch)
treed666d771d14a378c69df6225b17097e768cd2f4c
parent035fc2add18c0dd06c22bd158a47bf35b8c1c528 (diff)
downloadgcc-b5872261d5e448c85903c4f3df7e1970fc4c112a.zip
gcc-b5872261d5e448c85903c4f3df7e1970fc4c112a.tar.gz
gcc-b5872261d5e448c85903c4f3df7e1970fc4c112a.tar.bz2
re PR debug/84637 (gcc/dbxout.c:684:14: runtime error: negation of -9223372036854775808 cannot be represented in type 'long int'; cast to an unsigned type to negate this value to itself)
PR debug/84637 * dbxout.c (dbxout_int): Perform negation in unsigned int type. (stabstr_D): Change type of unum from unsigned int to unsigned HOST_WIDE_INT. Perform negation in unsigned HOST_WIDE_INT type. From-SVN: r259451
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/dbxout.c6
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bf4f7cc..2d4966d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2018-04-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/84637
+ * dbxout.c (dbxout_int): Perform negation in unsigned int type.
+ (stabstr_D): Change type of unum from unsigned int to
+ unsigned HOST_WIDE_INT. Perform negation in unsigned HOST_WIDE_INT
+ type.
+
2018-04-17 Jim Wilson <jimw@sifive.com>
PR 84856
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index a77e652..8157536 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -464,7 +464,7 @@ dbxout_int (int num)
if (num < 0)
{
putc ('-', asm_out_file);
- unum = -num;
+ unum = -(unsigned int) num;
}
else
unum = num;
@@ -671,7 +671,7 @@ stabstr_D (HOST_WIDE_INT num)
{
char buf[64];
char *p = buf + sizeof buf;
- unsigned int unum;
+ unsigned HOST_WIDE_INT unum;
if (num == 0)
{
@@ -681,7 +681,7 @@ stabstr_D (HOST_WIDE_INT num)
if (num < 0)
{
stabstr_C ('-');
- unum = -num;
+ unum = -(unsigned HOST_WIDE_INT) num;
}
else
unum = num;