align = TYPE_ALIGN (TREE_TYPE (exp));
else if (TREE_CODE (exp) == INDIRECT_REF)
align = TYPE_ALIGN (TREE_TYPE (exp));
- else if (TREE_CODE (exp) == MISALIGNED_INDIRECT_REF)
- {
- tree op1 = TREE_OPERAND (exp, 1);
- align = integer_zerop (op1) ? BITS_PER_UNIT : TREE_INT_CST_LOW (op1);
- }
else if (TREE_CODE (exp) == MEM_REF)
{
tree addr = TREE_OPERAND (exp, 0);
max_align));
bitpos += mem_ref_offset (exp).low * BITS_PER_UNIT;
}
- else if (TREE_CODE (exp) == TARGET_MEM_REF
- && TMR_BASE (exp)
- && POINTER_TYPE_P (TREE_TYPE (TMR_BASE (exp))))
+ else if (TREE_CODE (exp) == TARGET_MEM_REF)
{
struct ptr_info_def *pi;
tree addr = TMR_BASE (exp);
}
else if (TMR_INDEX (exp))
align = BITS_PER_UNIT;
- }
- else if (TREE_CODE (exp) == TARGET_MEM_REF
- && TMR_SYMBOL (exp))
- {
- align = get_object_alignment (TMR_SYMBOL (exp), max_align);
- if (TMR_OFFSET (exp))
- bitpos += TREE_INT_CST_LOW (TMR_OFFSET (exp)) * BITS_PER_UNIT;
- if (TMR_INDEX (exp) && TMR_STEP (exp))
- {
- unsigned HOST_WIDE_INT step = TREE_INT_CST_LOW (TMR_STEP (exp));
- align = MIN (align, (step & -step) * BITS_PER_UNIT);
- }
- else if (TMR_INDEX (exp))
+ if (TMR_INDEX2 (exp))
align = BITS_PER_UNIT;
}
else
dummy_object (tree type)
{
tree t = build_int_cst (build_pointer_type (type), 0);
- return build1 (INDIRECT_REF, type, t);
+ return build2 (MEM_REF, type, t, t);
}
/* Gimplify __builtin_va_arg, aka VA_ARG_EXPR, which is not really a