aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/decl.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2010-04-16 12:07:02 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-04-16 12:07:02 +0000
commit1139f2e89d9e5199b66b05caba688be566561f1f (patch)
treee240b2394edcddd159a273da457f7a4e17a8d5c9 /gcc/ada/gcc-interface/decl.c
parentd88bbbb943151cd73871f5ece8bac7f4127f76bd (diff)
downloadgcc-1139f2e89d9e5199b66b05caba688be566561f1f.zip
gcc-1139f2e89d9e5199b66b05caba688be566561f1f.tar.gz
gcc-1139f2e89d9e5199b66b05caba688be566561f1f.tar.bz2
decl.c (gnat_to_gnu_entity): Use boolean_type_node in lieu of integer_type_node for boolean operations.
* gcc-interface/decl.c (gnat_to_gnu_entity): Use boolean_type_node in lieu of integer_type_node for boolean operations. (choices_to_gnu): Likewise. * gcc-interface/trans.c (Attribute_to_gnu): Likewise. (Loop_Statement_to_gnu): Likewise. (establish_gnat_vms_condition_handler): Likewise. (Exception_Handler_to_gnu_sjlj): Likewise. (gnat_to_gnu): Likewise. (build_unary_op_trapv): Likewise. (build_binary_op_trapv): Likewise. (emit_range_check): Likewise. (emit_index_check): Likewise. (convert_with_check): Likewise. * gcc-interface/utils.c (convert_vms_descriptor64): Likewise. (convert_vms_descriptor32): Likewise. (convert_vms_descriptor): Likewise. * gcc-interface/utils2.c (nonbinary_modular_operation): Likewise. (compare_arrays): Use boolean instead of integer constants. (build_binary_op) <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR, TRUTH_XOR_EXPR>: New case. Check that the result type is a boolean type. <GE_EXPR, LE_EXPR, GT_EXPR, LT_EXPR>: Remove obsolete assertion. <EQ_EXPR, NE_EXPR>: Check that the result type is a boolean type. <PREINC/PREDECREMENT_EXPR, POSTINC/POSTDECREMENT_EXPR>: Delete. <TRUTH_NOT_EXPR>: Check that the result type is a boolean type. (build_unary_op): Use boolean_type_node in lieu of integer_type_node for boolean operations. (fill_vms_descriptor): Likewise. Fix formatting nits. From-SVN: r158411
Diffstat (limited to 'gcc/ada/gcc-interface/decl.c')
-rw-r--r--gcc/ada/gcc-interface/decl.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index 1a42ff7..4db6c11 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -1916,7 +1916,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
/* Compute the size of this dimension. */
gnu_max
= build3 (COND_EXPR, gnu_index_base_type,
- build2 (GE_EXPR, integer_type_node, gnu_high, gnu_low),
+ build2 (GE_EXPR, boolean_type_node, gnu_high, gnu_low),
gnu_high,
build2 (MINUS_EXPR, gnu_index_base_type,
gnu_low, fold_convert (gnu_index_base_type,
@@ -2214,7 +2214,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
gnu_high
= build_cond_expr (sizetype,
build_binary_op (GE_EXPR,
- integer_type_node,
+ boolean_type_node,
gnu_orig_max,
gnu_orig_min),
gnu_max, gnu_high);
@@ -6335,13 +6335,11 @@ choices_to_gnu (tree operand, Node_Id choices)
low = gnat_to_gnu (Low_Bound (choice));
high = gnat_to_gnu (High_Bound (choice));
- /* There's no good type to use here, so we might as well use
- integer_type_node. */
this_test
- = build_binary_op (TRUTH_ANDIF_EXPR, integer_type_node,
- build_binary_op (GE_EXPR, integer_type_node,
+ = build_binary_op (TRUTH_ANDIF_EXPR, boolean_type_node,
+ build_binary_op (GE_EXPR, boolean_type_node,
operand, low),
- build_binary_op (LE_EXPR, integer_type_node,
+ build_binary_op (LE_EXPR, boolean_type_node,
operand, high));
break;
@@ -6352,10 +6350,10 @@ choices_to_gnu (tree operand, Node_Id choices)
high = gnat_to_gnu (High_Bound (gnat_temp));
this_test
- = build_binary_op (TRUTH_ANDIF_EXPR, integer_type_node,
- build_binary_op (GE_EXPR, integer_type_node,
+ = build_binary_op (TRUTH_ANDIF_EXPR, boolean_type_node,
+ build_binary_op (GE_EXPR, boolean_type_node,
operand, low),
- build_binary_op (LE_EXPR, integer_type_node,
+ build_binary_op (LE_EXPR, boolean_type_node,
operand, high));
break;
@@ -6373,10 +6371,10 @@ choices_to_gnu (tree operand, Node_Id choices)
high = TYPE_MAX_VALUE (type);
this_test
- = build_binary_op (TRUTH_ANDIF_EXPR, integer_type_node,
- build_binary_op (GE_EXPR, integer_type_node,
+ = build_binary_op (TRUTH_ANDIF_EXPR, boolean_type_node,
+ build_binary_op (GE_EXPR, boolean_type_node,
operand, low),
- build_binary_op (LE_EXPR, integer_type_node,
+ build_binary_op (LE_EXPR, boolean_type_node,
operand, high));
break;
}
@@ -6386,7 +6384,7 @@ choices_to_gnu (tree operand, Node_Id choices)
case N_Character_Literal:
case N_Integer_Literal:
single = gnat_to_gnu (choice);
- this_test = build_binary_op (EQ_EXPR, integer_type_node, operand,
+ this_test = build_binary_op (EQ_EXPR, boolean_type_node, operand,
single);
break;
@@ -6398,8 +6396,8 @@ choices_to_gnu (tree operand, Node_Id choices)
gcc_unreachable ();
}
- result = build_binary_op (TRUTH_ORIF_EXPR, integer_type_node,
- result, this_test);
+ result = build_binary_op (TRUTH_ORIF_EXPR, boolean_type_node, result,
+ this_test);
}
return result;