Enable ranger and caching in pass_waccess.
gcc/ChangeLog: * gimple-ssa-warn-access.cc (get_size_range): Add argument. (check_access): Pass additional argument. (check_memop_access): Remove template and make a member function. (maybe_check_dealloc_call): Make a pass_waccess member function. (class pass_waccess): Add, rename, and remove members. (pass_waccess::pass_waccess): Adjust to name change. (pass_waccess::~pass_waccess): Same. (check_alloca): Make a member function. (check_alloc_size_call): Same. (check_strcat): Same. (check_strncat): Same. (check_stxcpy): Same. (check_stxncpy): Same. (check_strncmp): Same. (maybe_warn_rdwr_sizes): Rename... (pass_waccess::maybe_check_access_sizes): ...to this. (pass_waccess::check_call): Adjust to name changes. (pass_waccess::maybe_check_dealloc_call): Make a pass_waccess member function. (pass_waccess::execute): Adjust to name changes. * gimple-ssa-warn-access.h (check_memop_access): Remove. * pointer-query.cc (access_ref::phi): Handle null pointer. (access_ref::inform_access): Same. (pointer_query::put_ref): Modify a cached value, not a copy of it. (pointer_query::dump): New function. (compute_objsize_r): Avoid overwriting access_ref::bndrng. Cache more results. * pointer-query.h (pointer_query::dump): Declare. * tree-ssa-strlen.c (get_range): Simplify. Use function query. (dump_strlen_info): Use function query. (printf_strlen_execute): Factor code out into pointer_query::put_ref. gcc/testsuite/ChangeLog: * gcc.dg/Wstringop-overflow-11.c: Remove xfails. * gcc.dg/Wstringop-overflow-12.c: Same. * gcc.dg/Wstringop-overflow-43.c: Add xfails. * gcc.dg/Wstringop-overflow-73.c: New test.
Showing
- gcc/gimple-ssa-warn-access.cc 224 additions, 213 deletionsgcc/gimple-ssa-warn-access.cc
- gcc/gimple-ssa-warn-access.h 0 additions, 1 deletiongcc/gimple-ssa-warn-access.h
- gcc/pointer-query.cc 120 additions, 7 deletionsgcc/pointer-query.cc
- gcc/pointer-query.h 3 additions, 0 deletionsgcc/pointer-query.h
- gcc/testsuite/gcc.dg/Wstringop-overflow-11.c 4 additions, 4 deletionsgcc/testsuite/gcc.dg/Wstringop-overflow-11.c
- gcc/testsuite/gcc.dg/Wstringop-overflow-12.c 2 additions, 4 deletionsgcc/testsuite/gcc.dg/Wstringop-overflow-12.c
- gcc/testsuite/gcc.dg/Wstringop-overflow-43.c 6 additions, 3 deletionsgcc/testsuite/gcc.dg/Wstringop-overflow-43.c
- gcc/testsuite/gcc.dg/Wstringop-overflow-73.c 35 additions, 0 deletionsgcc/testsuite/gcc.dg/Wstringop-overflow-73.c
- gcc/tree-ssa-strlen.c 11 additions, 63 deletionsgcc/tree-ssa-strlen.c
Loading
Please register or sign in to comment