This patch against trunk fixes it:

diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 866385c..18d0ff4 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -13021,7 +13021,10 @@ create_fix_barrier (Mfix *fix, HOST_WIDE_INT 
max_address)
 
       new_cost = arm_barrier_cost (from);
 
-      if (count < max_count
+      /* The pool is aligned to a 4-byte boundary.  However, 16-bit Thumb
+         insns can result in count being unaligned here, so we must compare
+         the aligned offset against the limit.  */
+      if (((count + 3) & ~3) < max_count
          && (!selected || new_cost <= selected_cost))
        {
          selected = from;

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1049614

Title:
  Assembler messages with -O0: Error: offset out of range

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc-linaro/+bug/1049614/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to