Move more warning code to gimple-ssa-warn-access etc.
Also resolves: PR middle-end/101854 - Invalid warning -Wstringop-overflow wrong argument gcc/ChangeLog: PR middle-end/101854 * builtins.c (expand_builtin_alloca): Move warning code to check_alloca in gimple-ssa-warn-access.cc. * calls.c (alloc_max_size): Move code to check_alloca. (get_size_range): Move to pointer-query.cc. (maybe_warn_alloc_args_overflow): Move to gimple-ssa-warn-access.cc. (get_attr_nonstring_decl): Move to tree.c. (fntype_argno_type): Move to gimple-ssa-warn-access.cc. (append_attrname): Same. (maybe_warn_rdwr_sizes): Same. (initialize_argument_information): Move code to gimple-ssa-warn-access.cc. * calls.h (maybe_warn_alloc_args_overflow): Move to gimple-ssa-warn-access.h. (get_attr_nonstring_decl): Move to tree.h. (maybe_warn_nonstring_arg): Move to gimple-ssa-warn-access.h. (enum size_range_flags): Move to pointer-query.h. (get_size_range): Same. * gimple-ssa-warn-access.cc (has_location): Remove unused overload to avoid Clang -Wunused-function. (get_size_range): Declare static. (maybe_emit_free_warning): Rename... (maybe_check_dealloc_call): ...to this for consistency. (class pass_waccess): Add members. (pass_waccess::~pass_waccess): Defined. (alloc_max_size): Move here from calls.c. (maybe_warn_alloc_args_overflow): Same. (check_alloca): New function. (check_alloc_size_call): New function. (check_strncat): Handle another warning flag. (pass_waccess::check_builtin): Handle alloca. (fntype_argno_type): Move here from calls.c. (append_attrname): Same. (maybe_warn_rdwr_sizes): Same. (pass_waccess::check_call): Define. (check_nonstring_args): New function. (pass_waccess::check): Call new member functions. (pass_waccess::execute): Enable ranger. * gimple-ssa-warn-access.h (get_size_range): Move here from calls.h. (maybe_warn_nonstring_arg): Same. * gimple-ssa-warn-restrict.c: Remove #include. * pointer-query.cc (get_size_range): Move here from calls.c. * pointer-query.h (enum size_range_flags): Same. (get_size_range): Same. * tree.c (get_attr_nonstring_decl): Move here from calls.c. * tree.h (get_attr_nonstring_decl): Move here from calls.h. gcc/testsuite/ChangeLog: * gcc.dg/attr-alloc_size-5.c: Adjust optimization to -O1. * gcc.dg/attr-alloc_size-7.c: Use #pragmas to adjust optimization. * gcc.dg/attr-alloc_size-8.c: Adjust optimization to -O1. PR middle-end/101854 * gcc.dg/Wstringop-overflow-72.c: New test.
Showing
- gcc/builtins.c 1 addition, 21 deletionsgcc/builtins.c
- gcc/calls.c 0 additions, 760 deletionsgcc/calls.c
- gcc/calls.h 1 addition, 14 deletionsgcc/calls.h
- gcc/gimple-ssa-warn-access.cc 663 additions, 20 deletionsgcc/gimple-ssa-warn-access.cc
- gcc/gimple-ssa-warn-access.h 3 additions, 1 deletiongcc/gimple-ssa-warn-access.h
- gcc/gimple-ssa-warn-restrict.c 1 addition, 0 deletionsgcc/gimple-ssa-warn-restrict.c
- gcc/pointer-query.cc 158 additions, 37 deletionsgcc/pointer-query.cc
- gcc/pointer-query.h 11 additions, 0 deletionsgcc/pointer-query.h
- gcc/testsuite/gcc.dg/Wstringop-overflow-72.c 13 additions, 0 deletionsgcc/testsuite/gcc.dg/Wstringop-overflow-72.c
- gcc/testsuite/gcc.dg/attr-alloc_size-5.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/attr-alloc_size-5.c
- gcc/testsuite/gcc.dg/attr-alloc_size-7.c 39 additions, 6 deletionsgcc/testsuite/gcc.dg/attr-alloc_size-7.c
- gcc/testsuite/gcc.dg/attr-alloc_size-8.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/attr-alloc_size-8.c
- gcc/tree.c 54 additions, 0 deletionsgcc/tree.c
- gcc/tree.h 6 additions, 0 deletionsgcc/tree.h
Loading
Please register or sign in to comment