1. 15 Feb, 2007 20 commits
  2. 14 Feb, 2007 17 commits
  3. 13 Feb, 2007 3 commits
    • common.opt: Add Wstrict-overflow and Wstrict-overflow=. · 6ac01510
      ./:	* common.opt: Add Wstrict-overflow and Wstrict-overflow=.
      	* flags.h (warn_strict_overflow): Declare.
      	(enum warn_strict_overflow_code): Define.
      	(issue_strict_overflow_warning): New static inline function.
      	* opts.c (warn_strict_overflow): New variable.
      	(common_handle_option): Handle OPT_Wstrict_overflow and
      	OPT_Wstrict_overflow_.
      	* c-opts.c (c_common_handle_option): Set warn_strict_overflow for
      	OPT_Wall.
      	* fold-const.c: Include intl.h.
      	(fold_deferring_overflow_warnings): New static variable.
      	(fold_deferred_overflow_warning): New static variable.
      	(fold_deferred_overflow_code): New static variable.
      	(fold_defer_overflow_warnings): New function.
      	(fold_undefer_overflow_warnings): New function.
      	(fold_undefer_and_ignore_overflow_warnings): New function.
      	(fold_deferring_overflow_warnings_p): New function.
      	(fold_overflow_warning): New static function.
      	(make_range): Add strict_overflow_p parameter.  Change all
      	callers.
      	(extract_muldiv, extract_muldiv_1): Likewise.
      	(fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
      	tree_expr_nonnegative_p.
      	(fold_negate_expr): Call fold_overflow_warning.
      	(fold_range_test): Likewise.
      	(fold_comparison): Likewise.
      	(fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
      	instead of tree_expr_nonnegative_p.
      	(tree_expr_nonnegative_warnv_p): Rename from
      	tree_expr_nonnegative_p, add strict_overflow_p parameter.
      	(tree_expr_nonnegative_p): New function.
      	(tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
      	strict_overflow_p parameter.
      	(tree_expr_nonzero_p): New function.
      	* passes.c (verify_interpass_invariants): New static function.
      	(execute_one_pass): Call it.
      	* tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
      	warnings.
      	(number_of_iterations_exit, loop_niter_by_eval): Likewise.
      	(estimate_numbers_of_iterations): Likewise.
      	(scev_probably_wraps_p): Likewise.
      	* tree-ssa-ccp.c: Include "toplev.h".
      	(evaluate_stmt): Defer fold overflow warnings until we know we are
      	going to optimize.
      	(struct fold_stmt_r_data): Add stmt field.
      	(fold_stmt_r): Defer fold overflow warnings until we know we
      	optimized.
      	(fold_stmt): Initialize stmt field of fold_stmt_r_data.
      	(fold_stmt_inplace): Likewise.
      	* tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
      	(cleanup_control_expr_graph): Defer fold overflow warnings until
      	we know we are going to optimize.
      	* tree-cfg.c (fold_cond_expr_cond): Likewise.
      	* tree-ssa-threadedge.c (simplify_control_stmt_condition):
      	Likewise.
      	* tree-vrp.c (vrp_expr_computes_nonnegative): Call
      	tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
      	* tree-ssa-loop-manip.c (create_iv): Likewise.
      	* c-typeck.c (build_conditional_expr): Likewise.
      	(build_binary_op): Likewise.
      	* tree-vrp.c (vrp_expr_computes_nonzero): Call
      	tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
      	(extract_range_from_unary_expr): Likewise.
      	* simplify-rtx.c (simplify_const_relational_operation): Warn when
      	assuming that signed overflow does not occur.
      	* c-common.c (pointer_int_sum): Ignore fold overflow warnings.
      	* tree.h (tree_expr_nonnegative_warnv_p): Declare.
      	(fold_defer_overflow_warnings): Declare.
      	(fold_undefer_overflow_warnings): Declare.
      	(fold_undefer_and_ignore_overflow_warnings): Declare.
      	(fold_deferring_overflow_warnings_p): Declare.
      	(tree_expr_nonzero_warnv_p): Declare.
      	* doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
      	of warning options.
      	(Warning Options): Document -Wstrict-overflow.
      	* Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
      	(tree-ssa-ccp.o): Likewise.
      	(tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
      	(fold-const.o): Depend on intl.h.
      testsuite/:
      	* gcc.dg/Wstrict-overflow-1.c: New test.
      	* gcc.dg/Wstrict-overflow-2.c: New test.
      	* gcc.dg/Wstrict-overflow-3.c: New test.
      	* gcc.dg/Wstrict-overflow-4.c: New test.
      	* gcc.dg/Wstrict-overflow-5.c: New test.
      	* gcc.dg/Wstrict-overflow-6.c: New test.
      	* gcc.dg/Wstrict-overflow-7.c: New test.
      	* gcc.dg/Wstrict-overflow-8.c: New test.
      	* gcc.dg/Wstrict-overflow-9.c: New test.
      	* gcc.dg/Wstrict-overflow-10.c: New test.
      
      From-SVN: r121895
      Ian Lance Taylor committed
    • re PR middle-end/30751 (internal compiler error: in extract_insn, at recog.c:2108) · 30d18db4
      	PR middle-end/30751
      	* lower-subreg.c (resolve_simple_move): Decompose subregs in
      	addresses.
      
      From-SVN: r121894
      Ian Lance Taylor committed
    • configure.ac (target_libraries): Move libgcc before libiberty. · 291f172e
      	* configure.ac (target_libraries): Move libgcc before libiberty.
      	* configure: Regenerated.
      
      From-SVN: r121893
      Daniel Jacobowitz committed