From: Iain Sandoe Date: Thu, 24 Oct 2019 14:53:28 +0000 (+0000) Subject: [Darwin, PPC] Check for out of range asm values. X-Git-Tag: releases/gcc-9.3.0~479 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dac3f1132b182a52e9138b26ed2a551c911300d4;p=thirdparty%2Fgcc.git [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 (and GAS) just ignores these cases but newer tools produce an error. To preserve behaviour, we avoid emitting out of range values. gcc/ChangeLog: 2019-10-24 Iain Sandoe Backport from mainline 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: r277405 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 302d392e1442..78fb07342cf8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-10-24 Iain Sandoe + + * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard + against out of range max skip or log values. + 2019-10-23 Peter Bergner Backport from mainline diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h index 98ecf0ad2fe6..6f750c69e0e7 100644 --- a/gcc/config/rs6000/darwin.h +++ b/gcc/config/rs6000/darwin.h @@ -291,9 +291,9 @@ extern int darwin_emit_branch_islands; /* 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)); \