Commit 1f6c00df by Nathan Sidwell Committed by Nathan Sidwell

cuintp.c (UI_To_gnu): Be more conservative with build_int_cst call.s

	* cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
	call.s
	* trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
	(gnat_to_gnu): Likewise.

From-SVN: r86063
parent 461b08b8
2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
* cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
call.s
* trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
(gnat_to_gnu): Likewise.
2004-08-16 Pascal Obry <obry@gnat.com> 2004-08-16 Pascal Obry <obry@gnat.com>
* adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
......
...@@ -76,26 +76,29 @@ UI_To_gnu (Uint Input, tree type) ...@@ -76,26 +76,29 @@ UI_To_gnu (Uint Input, tree type)
tree comp_type tree comp_type
= (TYPE_PRECISION (type) >= TYPE_PRECISION (integer_type_node) = (TYPE_PRECISION (type) >= TYPE_PRECISION (integer_type_node)
? type : integer_type_node); ? type : integer_type_node);
tree gnu_base = build_int_cst (comp_type, Base, 0); tree gnu_base = convert (comp_type, build_int_cst (NULL_TREE, Base, 0));
if (Length <= 0) if (Length <= 0)
abort (); abort ();
gnu_ret = build_int_cst (comp_type, First, First < 0 ? -1 : 0); gnu_ret = convert (comp_type, build_int_cst (NULL_TREE,
First, First < 0 ? -1 : 0));
if (First < 0) if (First < 0)
for (Idx++, Length--; Length; Idx++, Length--) for (Idx++, Length--; Length; Idx++, Length--)
gnu_ret = fold (build (MINUS_EXPR, comp_type, gnu_ret = fold (build (MINUS_EXPR, comp_type,
fold (build (MULT_EXPR, comp_type, fold (build (MULT_EXPR, comp_type,
gnu_ret, gnu_base)), gnu_ret, gnu_base)),
build_int_cst (comp_type, convert (comp_type,
Udigits_Ptr[Idx], 0))); build_int_cst (NULL_TREE,
Udigits_Ptr[Idx], 0))));
else else
for (Idx++, Length--; Length; Idx++, Length--) for (Idx++, Length--; Length; Idx++, Length--)
gnu_ret = fold (build (PLUS_EXPR, comp_type, gnu_ret = fold (build (PLUS_EXPR, comp_type,
fold (build (MULT_EXPR, comp_type, fold (build (MULT_EXPR, comp_type,
gnu_ret, gnu_base)), gnu_ret, gnu_base)),
build_int_cst (comp_type, convert (comp_type,
Udigits_Ptr[Idx], 0))); build_int_cst (NULL_TREE,
Udigits_Ptr[Idx], 0))));
} }
gnu_ret = convert (type, gnu_ret); gnu_ret = convert (type, gnu_ret);
......
...@@ -2217,8 +2217,9 @@ Exception_Handler_to_gnu_sjlj (Node_Id gnat_node) ...@@ -2217,8 +2217,9 @@ Exception_Handler_to_gnu_sjlj (Node_Id gnat_node)
= build_binary_op = build_binary_op
(TRUTH_ORIF_EXPR, integer_type_node, (TRUTH_ORIF_EXPR, integer_type_node,
build_binary_op (EQ_EXPR, integer_type_node, gnu_comp, build_binary_op (EQ_EXPR, integer_type_node, gnu_comp,
build_int_cst (TREE_TYPE (gnu_comp), convert (TREE_TYPE (gnu_comp),
'V', 0)), build_int_cst (NULL_TREE,
'V', 0))),
this_choice); this_choice);
} }
} }
...@@ -2504,8 +2505,9 @@ gnat_to_gnu (Node_Id gnat_node) ...@@ -2504,8 +2505,9 @@ gnat_to_gnu (Node_Id gnat_node)
if (Present (Entity (gnat_node))) if (Present (Entity (gnat_node)))
gnu_result = DECL_INITIAL (get_gnu_tree (Entity (gnat_node))); gnu_result = DECL_INITIAL (get_gnu_tree (Entity (gnat_node)));
else else
gnu_result = build_int_cst (gnu_result_type, gnu_result = convert (gnu_result_type,
Char_Literal_Value (gnat_node), 0); build_int_cst (NULL_TREE,
Char_Literal_Value (gnat_node), 0));
break; break;
case N_Real_Literal: case N_Real_Literal:
...@@ -2617,9 +2619,12 @@ gnat_to_gnu (Node_Id gnat_node) ...@@ -2617,9 +2619,12 @@ gnat_to_gnu (Node_Id gnat_node)
for (i = 0; i < length; i++) for (i = 0; i < length; i++)
{ {
gnu_list gnu_list
= tree_cons (gnu_idx, build_int_cst = tree_cons (gnu_idx,
(TREE_TYPE (gnu_result_type), convert (TREE_TYPE (gnu_result_type),
Get_String_Char (gnat_string, i + 1), 0), build_int_cst
(NULL_TREE,
Get_String_Char (gnat_string, i + 1),
0)),
gnu_list); gnu_list);
gnu_idx = int_const_binop (PLUS_EXPR, gnu_idx, integer_one_node, gnu_idx = int_const_binop (PLUS_EXPR, gnu_idx, integer_one_node,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment