diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2019-10-23 05:39:32 +0000 |
---|---|---|
committer | Iain Sandoe <iains@gcc.gnu.org> | 2019-10-23 05:39:32 +0000 |
commit | 65a4795fab97a0776c8b44638f0fcf531c98f764 (patch) | |
tree | 581cdd4a94f09d771aa8dc65f64e55882e7b5ea6 | |
parent | a4edda8cb663827bc8339ac0964865a4822d125c (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/darwin.h | 4 |
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)); \ |