pkg://compat-reuters-1.0-1.src.rpm:18808837/gcc-align-memcpy.patch
info downloads
2000-05-02 Jakub Jelinek <jakub@redhat.com>
* builtins.c (get_pointer_alignment): If exp is pointer type, return
at least BITS_PER_UNIT.
--- gcc/builtins.c.jj Tue Apr 25 21:02:50 2000
+++ gcc/builtins.c Tue May 2 15:39:17 2000
@@ -135,7 +135,7 @@ get_pointer_alignment (exp, max_align)
case NON_LVALUE_EXPR:
exp = TREE_OPERAND (exp, 0);
if (TREE_CODE (TREE_TYPE (exp)) != POINTER_TYPE)
- return align;
+ return MAX (align, BITS_PER_UNIT);
inner = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (exp)));
align = MIN (inner, max_align);
@@ -146,7 +146,7 @@ get_pointer_alignment (exp, max_align)
imposed by the integer. If not, we can't do any better than
ALIGN. */
if (! host_integerp (TREE_OPERAND (exp, 1), 1))
- return align;
+ return MAX (align, BITS_PER_UNIT);
while (((tree_low_cst (TREE_OPERAND (exp, 1), 1) * BITS_PER_UNIT)
& (max_align - 1))
@@ -167,10 +167,11 @@ get_pointer_alignment (exp, max_align)
else if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'c')
align = CONSTANT_ALIGNMENT (exp, align);
#endif
- return MIN (align, max_align);
+ align = MIN (align, max_align);
+ /* FALLTHROUGH */
default:
- return align;
+ return MAX (align, BITS_PER_UNIT);
}
}
}