diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2004-12-23 14:02:33 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2004-12-23 13:02:33 +0000 |
commit | 2614034eead349c8ae65e7f106bdce4212e9b71a (patch) | |
tree | a98bb36f52d3d1b233ad2e1e33601de24da98c8d /gcc/ada | |
parent | 9690a821226394176b4cb187641692e8caf801a5 (diff) | |
download | gcc-2614034eead349c8ae65e7f106bdce4212e9b71a.zip gcc-2614034eead349c8ae65e7f106bdce4212e9b71a.tar.gz gcc-2614034eead349c8ae65e7f106bdce4212e9b71a.tar.bz2 |
re PR middle-end/17746 (ICE when building the Ada RTS)
PR middle-end/17746
* expr.c (get_inner_reference): Add 'keep_aligning' parameter.
Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
platforms only if keep_aligning is true.
(expand_assignment): Adjust call to get_inner_reference.
(expand_expr_addr_expr_1): Likewise.
(expand_expr_real_1): Likewise.
* dojump.c (do_jump): Likewise.
* dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
* fold-const.c (optimize_bit_field_compare): Likewise.
(decode_field_reference): Likewise.
(split_address_to_core_and_offset): Likewise.
* tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
* expr.h (get_inner_reference): Adjust prototype.
ada/
* trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
* utils2.c (build_unary_op): Likewise.
From-SVN: r92549
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/trans.c | 2 | ||||
-rw-r--r-- | gcc/ada/utils2.c | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 479443a..792ddcd 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr> + + * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference. + * utils2.c (build_unary_op): Likewise. + 2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED. diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c index 0db1709..a93ff5d 100644 --- a/gcc/ada/trans.c +++ b/gcc/ada/trans.c @@ -932,7 +932,7 @@ Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, int attribute) && TREE_CODE (gnu_prefix) == FIELD_DECL)); get_inner_reference (gnu_prefix, &bitsize, &bitpos, &gnu_offset, - &mode, &unsignedp, &volatilep); + &mode, &unsignedp, &volatilep, false); if (TREE_CODE (gnu_prefix) == COMPONENT_REF) { diff --git a/gcc/ada/utils2.c b/gcc/ada/utils2.c index 3727ce4..04ab0cb 100644 --- a/gcc/ada/utils2.c +++ b/gcc/ada/utils2.c @@ -1087,7 +1087,7 @@ build_unary_op (enum tree_code op_code, tree result_type, tree operand) int unsignedp, volatilep; inner = get_inner_reference (operand, &bitsize, &bitpos, &offset, - &mode, &unsignedp, &volatilep); + &mode, &unsignedp, &volatilep, false); /* If INNER is a padding type whose field has a self-referential size, convert to that inner type. We know the offset is zero |