| 4.1.0 20050706 (experimental) (x86_64-suse-linux-gnu) GCC error: |
| tree check: expected integer_cst, have cond_expr in |
| do_structure_copy, at tree-ssa-structalias.c:2410 |
I saw this when trying to get a bootstrap done. I beleieve the following
fixed it, but I don't have my list of what patch fixed which bug around, so
I can't say for fure.
*** ada/trans.c 4 Jul 2005 09:47:05 -0000 1.68.2.115
--- ada/trans.c 6 Jul 2005 13:59:03 -0000
*************** gnat_to_gnu (Node_Id gnat_node)
*** 3586,3601 ****
gnu_lhs = DECL_RESULT (current_function_decl);
- /* Do not remove the padding from GNU_RET_VAL if the inner
- type is self-referential since we want to allocate the fixed
- size in that case. */
- if (TREE_CODE (gnu_ret_val) == COMPONENT_REF
- && (TREE_CODE (TREE_TYPE (TREE_OPERAND (gnu_ret_val, 0)))
- == RECORD_TYPE)
- && (TYPE_IS_PADDING_P
- (TREE_TYPE (TREE_OPERAND (gnu_ret_val, 0))))
- && (CONTAINS_PLACEHOLDER_P
- (TYPE_SIZE (TREE_TYPE (gnu_ret_val)))))
- gnu_ret_val = TREE_OPERAND (gnu_ret_val, 0);
-
if (TYPE_RETURNS_BY_REF_P (gnu_subprog_type)
|| By_Ref (gnat_node))
--- 3586,3589 ----