1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
From: Ole Streicher <olebole@debian.org>
Date: Tue, 5 Jul 2016 15:13:46 +0200
Subject: Work around a weird optimization bug in armhf
Without this patch, compilation on armhf fails with
```
/tmp/ccJsRMs3.s: Assembler messages:
/tmp/ccJsRMs3.s:21403: Warning: base register written back, and overlaps one of transfer registers
/tmp/ccJsRMs3.s:28133: Error: registers may not be the same -- `str r3,[r3],#4'
/tmp/ccJsRMs3.s:28971: Warning: base register written back, and overlaps one of transfer registers
```
on gcc-4.9.4. See
https://buildd.debian.org/status/fetch.php?pkg=starlink-ast&arch=armhf&ver=8.0.2%2Bdfsg-1&stamp=1414223014
as example.
The error appears with MAKE_MASK(F, float), while the warnings are
with MAKE_MASK(D, double) and MAKE_MASK(LD, long double).
---
src/region.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/region.c b/src/region.c
index 5586041..f7edcef 100644
--- a/src/region.c
+++ b/src/region.c
@@ -279,6 +279,7 @@ f - AST_SHOWMESH: Display a mesh of points on the surface of a Region
* they should usually extend astSimplify and astRegCentre.
*/
+#pragma GCC optimize ("no-expensive-optimizations")
/* Module Macros. */
/* ============== */
|