aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-10-12 08:23:25 +0000
committerRichard Stallman <rms@gnu.org>1992-10-12 08:23:25 +0000
commit1f1fd3b1f4fab5806976d2ea98c0176840061c50 (patch)
treeb45a0c81d821de6b8a727df8c669289b76c07f24 /gcc
parent8b487c1f9ed844259c9d950ee3d348e5804b172a (diff)
downloadgcc-1f1fd3b1f4fab5806976d2ea98c0176840061c50.zip
gcc-1f1fd3b1f4fab5806976d2ea98c0176840061c50.tar.gz
gcc-1f1fd3b1f4fab5806976d2ea98c0176840061c50.tar.bz2
(output_addr_const): Call simplify_subtraction.
From-SVN: r2403
Diffstat (limited to 'gcc')
-rw-r--r--gcc/final.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/final.c b/gcc/final.c
index d82d553..49df7b0 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -2278,6 +2278,12 @@ output_addr_const (file, x)
break;
case MINUS:
+ /* Avoid outputting things like x-x or x+5-x,
+ since some assemblers can't handle that. */
+ x = simplify_subtraction (x);
+ if (GET_CODE (x) != MINUS)
+ goto restart;
+
output_addr_const (file, XEXP (x, 0));
fprintf (file, "-");
if (GET_CODE (XEXP (x, 1)) == CONST_INT