From 65a4795fab97a0776c8b44638f0fcf531c98f764 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Wed, 23 Oct 2019 05:39:32 +0000 Subject: [PATCH] [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 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard against out of range max skip or log values. From-SVN: r277307 --- gcc/ChangeLog | 5 +++++ gcc/config/rs6000/darwin.h | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f3450eea617..8ec312d7470 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-10-23 Iain Sandoe + + * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard + against out of range max skip or log values. + 2019-10-22 Giuliano Belinassi * cgraph.c (dump_graphviz): Change name to dump_name diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h index 1081967bd61..d1a096f3f1c 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)); \ -- 2.30.2