From 8dc2fbcff405022e400639276f042d05be6a4ab1 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Wed, 16 Feb 1994 13:01:02 -0800 Subject: [PATCH] (get_pointer_alignment): ALIGN is alignment of innermost object, not the MAX of alignment of all objects. From-SVN: r6579 --- gcc/expr.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gcc/expr.c b/gcc/expr.c index a336dd79104..8fba51078af 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -6470,8 +6470,7 @@ get_pointer_alignment (exp, max_align) if (TREE_CODE (TREE_TYPE (exp)) != POINTER_TYPE) return align; inner = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (exp))); - inner = MIN (inner, max_align); - align = MAX (align, inner); + align = MIN (inner, max_align); break; case PLUS_EXPR: @@ -6493,9 +6492,9 @@ get_pointer_alignment (exp, max_align) /* See what we are pointing at and look at its alignment. */ exp = TREE_OPERAND (exp, 0); if (TREE_CODE (exp) == FUNCTION_DECL) - align = MAX (align, FUNCTION_BOUNDARY); + align = FUNCTION_BOUNDARY; else if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'd') - align = MAX (align, DECL_ALIGN (exp)); + align = DECL_ALIGN (exp); #ifdef CONSTANT_ALIGNMENT else if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'c') align = CONSTANT_ALIGNMENT (exp, align); -- 2.30.2