OSDN Git Service

* c-common.c (max_tinst_depth): Increase default to 1024.
[pf3gnuchains/gcc-fork.git] / gcc / tree-switch-conversion.c
index 292c49c..a549482 100644 (file)
@@ -552,17 +552,19 @@ build_arrays (gimple swtch)
   gimple stmt;
   gimple_stmt_iterator gsi;
   int i;
+  location_t loc = gimple_location (swtch);
 
   gsi = gsi_for_stmt (swtch);
 
   arr_index_type = build_index_type (info.range_size);
-  tmp = create_tmp_var (arr_index_type, "csti");
+  tmp = create_tmp_var (TREE_TYPE (info.index_expr), "csti");
   add_referenced_var (tmp);
   tidx = make_ssa_name (tmp, NULL);
-  sub = fold_build2 (MINUS_EXPR, TREE_TYPE (info.index_expr), info.index_expr,
-                    fold_convert (TREE_TYPE (info.index_expr),
-                                  info.range_min));
-  sub = force_gimple_operand_gsi (&gsi, fold_convert (arr_index_type, sub),
+  sub = fold_build2_loc (loc, MINUS_EXPR,
+                    TREE_TYPE (info.index_expr), info.index_expr,
+                    fold_convert_loc (loc, TREE_TYPE (info.index_expr),
+                                      info.range_min));
+  sub = force_gimple_operand_gsi (&gsi, sub,
                                  false, NULL, true, GSI_SAME_STMT);
   stmt = gimple_build_assign (tidx, sub);
   SSA_NAME_DEF_STMT (tidx) = stmt;
@@ -684,6 +686,7 @@ gen_inbound_check (gimple swtch)
   gimple_stmt_iterator gsi;
   basic_block bb0, bb1, bb2, bbf, bbd;
   edge e01, e02, e21, e1d, e1f, e2f;
+  location_t loc = gimple_location (swtch);
 
   gcc_assert (info.default_values);
   bb0 = gimple_bb (swtch);
@@ -700,14 +703,14 @@ gen_inbound_check (gimple swtch)
   add_referenced_var (tmp_u_var);
   tmp_u_1 = make_ssa_name (tmp_u_var, NULL);
 
-  cast = fold_convert (utype, info.index_expr);
+  cast = fold_convert_loc (loc, utype, info.index_expr);
   cast_assign = gimple_build_assign (tmp_u_1, cast);
   SSA_NAME_DEF_STMT (tmp_u_1) = cast_assign;
   gsi_insert_before (&gsi, cast_assign, GSI_SAME_STMT);
   update_stmt (cast_assign);
 
-  ulb = fold_convert (utype, info.range_min);
-  minus = fold_build2 (MINUS_EXPR, utype, tmp_u_1, ulb);
+  ulb = fold_convert_loc (loc, utype, info.range_min);
+  minus = fold_build2_loc (loc, MINUS_EXPR, utype, tmp_u_1, ulb);
   minus = force_gimple_operand_gsi (&gsi, minus, false, NULL, true,
                                    GSI_SAME_STMT);
   tmp_u_2 = make_ssa_name (tmp_u_var, NULL);
@@ -716,7 +719,7 @@ gen_inbound_check (gimple swtch)
   gsi_insert_before (&gsi, minus_assign, GSI_SAME_STMT);
   update_stmt (minus_assign);
 
-  bound = fold_convert (utype, info.range_size);
+  bound = fold_convert_loc (loc, utype, info.range_size);
   cond_stmt = gimple_build_cond (LE_EXPR, tmp_u_2, bound, NULL_TREE, NULL_TREE);
   gsi_insert_before (&gsi, cond_stmt, GSI_SAME_STMT);
   update_stmt (cond_stmt);