[PATCH 10/13] v2 Use new per-location warning APIs in the middle end

Jeff Law jeffreyalaw@gmail.com
Thu Jun 24 05:15:11 GMT 2021



On 6/4/2021 3:43 PM, Martin Sebor via Gcc-patches wrote:
> The attached patch introduces declarations of the new
> suppress_warning(), warning_suppressed_p(), and copy_warning() APIs,
> and replaces the uses of TREE_NO_WARNING in the middle end with them.
>
> gcc-no-warning-middle-end.diff
>
> Add support for per-location warning groups.
>
> gcc/ChangeLog:
>
> 	* builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
> 	gimple_no_warning_p and gimple_set_no_warning with
> 	warning_suppressed_p, and suppress_warning.
> 	(c_strlen): Same.
> 	(maybe_warn_for_bound): Same.
> 	(warn_for_access): Same.
> 	(check_access): Same.
> 	(expand_builtin_strncmp): Same.
> 	(fold_builtin_varargs): Same.
> 	* calls.c (maybe_warn_nonstring_arg): Same.
> 	(maybe_warn_rdwr_sizes): Same.
> 	* cfgexpand.c (expand_call_stmt): Same.
> 	* cgraphunit.c (check_global_declaration): Same.
> 	* fold-const.c (fold_undefer_overflow_warnings): Same.
> 	(fold_truth_not_expr): Same.
> 	(fold_unary_loc): Same.
> 	(fold_checksum_tree): Same.
> 	* gengtype.c (open_base_files): Same.
> 	* gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
> 	(array_bounds_checker::check_mem_ref): Same.
> 	(array_bounds_checker::check_addr_expr): Same.
> 	(array_bounds_checker::check_array_bounds): Same.
> 	* gimple-expr.c (copy_var_decl): Same.
> 	* gimple-fold.c (gimple_fold_builtin_strcpy): Same.
> 	(gimple_fold_builtin_strncat): Same.
> 	(gimple_fold_builtin_stxcpy_chk): Same.
> 	(gimple_fold_builtin_stpcpy): Same.
> 	(gimple_fold_builtin_sprintf): Same.
> 	(fold_stmt_1): Same.
> 	* gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
> 	* gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
> 	* gimple-ssa-sprintf.c (handle_printf_call): Same.
> 	* gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
> 	* gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
> 	(maybe_diag_access_bounds): Same.
> 	(check_call): Same.
> 	(check_bounds_or_overlap): Same.
> 	* gimple.c (gimple_build_call_from_tree): Same.
> 	* gimplify.c (gimplify_return_expr): Same.
> 	(gimplify_cond_expr): Same.
> 	(gimplify_modify_expr_complex_part): Same.
> 	(gimplify_modify_expr): Same.
> 	(gimple_push_cleanup): Same.
> 	(gimplify_expr): Same.
> 	* omp-expand.c (expand_omp_for_generic): Same.
> 	(expand_omp_taskloop_for_outer): Same.
> 	* omp-low.c (lower_rec_input_clauses): Same.
> 	(lower_lastprivate_clauses): Same.
> 	(lower_send_clauses): Same.
> 	(lower_omp_target): Same.
> 	* tree-cfg.c (pass_warn_function_return::execute): Same.
> 	* tree-complex.c (create_one_component_var): Same.
> 	* tree-inline.c (remap_gimple_op_r): Same.
> 	(copy_tree_body_r): Same.
> 	(declare_return_variable): Same.
> 	(expand_call_inline): Same.
> 	* tree-nested.c (lookup_field_for_decl): Same.
> 	* tree-sra.c (create_access_replacement): Same.
> 	(generate_subtree_copies): Same.
> 	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
> 	* tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
> 	* tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
> 	* tree-ssa-loop-im.c (execute_sm): Same.
> 	* tree-ssa-phiopt.c (cond_store_replacement): Same.
> 	* tree-ssa-strlen.c (maybe_warn_overflow): Same.
> 	(handle_builtin_strcpy): Same.
> 	(maybe_diag_stxncpy_trunc): Same.
> 	(handle_builtin_stxncpy_strncat): Same.
> 	(handle_builtin_strcat): Same.
> 	* tree-ssa-uninit.c (get_no_uninit_warning): Same.
> 	(set_no_uninit_warning): Same.
> 	(uninit_undefined_value_p): Same.
> 	(warn_uninit): Same.
> 	(maybe_warn_operand): Same.
> 	* tree-vrp.c (compare_values_warnv): Same.
> 	* vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
> 	(test_for_singularity): Same.
>
> 	* gimple.h (warning_suppressed_p): New function.
> 	(suppress_warning): Same.
> 	(copy_no_warning): Same.
> 	(gimple_set_block): Call gimple_set_location.
> 	(gimple_set_location): Call copy_warning.
> 	* tree.h (no_warning, all_warnings): New constants.
> 	(warning_suppressed_p): New function.
> 	(suppress_warning): Same.
> 	(copy_no_warning): Same.
OK once prereqs are approved.

jeff



More information about the Gcc-patches mailing list