aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Sandoe <iain@sandoe.co.uk>2019-10-23 05:39:32 +0000
committerIain Sandoe <iains@gcc.gnu.org>2019-10-23 05:39:32 +0000
commit65a4795fab97a0776c8b44638f0fcf531c98f764 (patch)
tree581cdd4a94f09d771aa8dc65f64e55882e7b5ea6
parenta4edda8cb663827bc8339ac0964865a4822d125c (diff)
downloadgcc-65a4795fab97a0776c8b44638f0fcf531c98f764.zip
gcc-65a4795fab97a0776c8b44638f0fcf531c98f764.tar.gz
gcc-65a4795fab97a0776c8b44638f0fcf531c98f764.tar.bz2
[Darwin, PPC] Check for out of range asm values.
There are some cases in which the value for the max skip to a p2align directive can be negative. The older assembler just ignores these cases where newer tools produce an error. To preserve behaviour, we avoid emitting out of range values. gcc/ChangeLog: 2019-10-23 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard against out of range max skip or log values. From-SVN: r277307
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/darwin.h4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f3450ee..8ec312d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2019-10-23 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard
+ against out of range max skip or log values.
+
2019-10-22 Giuliano Belinassi <giuliano.belinassi@usp.br>
* cgraph.c (dump_graphviz): Change name to dump_name
diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h
index 1081967..d1a096f 100644
--- a/gcc/config/rs6000/darwin.h
+++ b/gcc/config/rs6000/darwin.h
@@ -329,9 +329,9 @@
/* This is supported in cctools 465 and later. The macro test
above prevents using it in earlier build environments. */
#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
- if ((LOG) != 0) \
+ if ((LOG) > 0) \
{ \
- if ((MAX_SKIP) == 0) \
+ if ((MAX_SKIP) <= 0) \
fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
else \
fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \