Ughhh.

I just fixed one exactly like this in ssa_equiv_stack.  I used an
auto_vec instead of new/delete, which unbeknownst to me uses slightly
different nomenclature for arrays.  Either way works fine.

Thanks for fixing this.

Aldy

On Mon, Jun 14, 2021 at 10:24 AM Martin Liška <mli...@suse.cz> wrote:
>
> Pushed as obvious.
>
> Martin
>
> The fixed error is:
>
> ==21166==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs 
> operator delete) on 0x60300000d900
>      #0 0x7367d7 in operator delete(void*, unsigned long) 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/libsanitizer/asan/asan_new_delete.cpp:172
>      #1 0x3b82e6e in pointer_equiv_analyzer::~pointer_equiv_analyzer() 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/gimple-ssa-evrp.c:161
>      #2 0x3b83387 in hybrid_folder::~hybrid_folder() 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/gimple-ssa-evrp.c:517
>      #3 0x3b83387 in execute_early_vrp 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/gimple-ssa-evrp.c:686
>      #4 0x1790611 in execute_one_pass(opt_pass*) 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/passes.c:2567
>      #5 0x1792003 in execute_pass_list_1 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/passes.c:2656
>      #6 0x1792029 in execute_pass_list_1 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/passes.c:2657
>      #7 0x179209f in execute_pass_list(function*, opt_pass*) 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/passes.c:2667
>      #8 0x178a5f3 in do_per_function_toporder(void (*)(function*, void*), 
> void*) 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/passes.c:1773
>      #9 0x1792fac in do_per_function_toporder(void (*)(function*, void*), 
> void*) 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/plugin.h:191
>      #10 0x1792fac in execute_ipa_pass_list(opt_pass*) 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/passes.c:3001
>      #11 0xc525fc in ipa_passes 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/cgraphunit.c:2154
>      #12 0xc525fc in symbol_table::compile() 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/cgraphunit.c:2289
>      #13 0xc5a096 in symbol_table::compile() 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/cgraphunit.c:2269
>      #14 0xc5a096 in symbol_table::finalize_compilation_unit() 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/cgraphunit.c:2537
>      #15 0x1a7a17c in compile_file 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/toplev.c:482
>      #16 0x69c758 in do_compile 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/toplev.c:2210
>      #17 0x69c758 in toplev::main(int, char**) 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/toplev.c:2349
>      #18 0x6a932a in main 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/main.c:39
>      #19 0x7ffff7820b34 in __libc_start_main ../csu/libc-start.c:332
>      #20 0x6aa5fd in _start 
> (/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/objdir/gcc/cc1+0x6aa5fd)
>
> 0x60300000d900 is located 0 bytes inside of 32-byte region 
> [0x60300000d900,0x60300000d920)
> allocated by thread T0 here:
>      #0 0x735ab7 in operator new[](unsigned long) 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/libsanitizer/asan/asan_new_delete.cpp:102
>      #1 0x3b82dac in 
> pointer_equiv_analyzer::pointer_equiv_analyzer(gimple_ranger*) 
> /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-asan/build/gcc/gimple-ssa-evrp.c:156
>
> gcc/ChangeLog:
>
>         * gimple-ssa-evrp.c 
> (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
> ---
>   gcc/gimple-ssa-evrp.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gcc/gimple-ssa-evrp.c b/gcc/gimple-ssa-evrp.c
> index eb8320ae9d8..61de5013d6d 100644
> --- a/gcc/gimple-ssa-evrp.c
> +++ b/gcc/gimple-ssa-evrp.c
> @@ -158,7 +158,7 @@ pointer_equiv_analyzer::pointer_equiv_analyzer 
> (gimple_ranger *r)
>
>   pointer_equiv_analyzer::~pointer_equiv_analyzer ()
>   {
> -  delete m_global_points;
> +  delete[] m_global_points;
>   }
>
>   // Set the global pointer equivalency for SSA to POINTEE.
> --
> 2.32.0
>

Reply via email to