[Darwin, PPC] Check for out of range asm values.
authorIain Sandoe <iain@sandoe.co.uk>
Wed, 23 Oct 2019 05:39:32 +0000 (05:39 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Wed, 23 Oct 2019 05:39:32 +0000 (05:39 +0000)
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

gcc/ChangeLog
gcc/config/rs6000/darwin.h

index f3450eea61780c581ebd2fef48c5e8b2795f4acc..8ec312d7470c460f55d0ab056097052518b56a48 100644 (file)
@@ -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
index 1081967bd61fdc2730aadb1e88296b5cf36cafd3..d1a096f3f1c28cfb3aea0977d194b26b578691c4 100644 (file)
 /* 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)); \