https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112398

Rainer Orth <ro at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ro at gcc dot gnu.org

--- Comment #9 from Rainer Orth <ro at gcc dot gnu.org> ---
I've just found that this patch was responsible for a large number (ca. 150)
of analyzer failures on 32-bit Solaris/SPARC, like

+FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++17  (test for
warnings, line 83)
+FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++17  expected
multiline pattern lines 49-64
+FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++17 (internal
compiler error: Segmentation Fault)
+FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++17 (test for
excess errors)

[...]
/vol/gcc/src/hg/master/local/gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-11.c:83:25:
note: (4) out-of-bounds write
terminate called after throwing an instance of 'std::bad_array_new_length'
  what():  std::bad_array_new_length
during IPA pass: analyzer
/vol/gcc/src/hg/master/local/gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-11.c:78:3:
internal compiler error: Abort
0x2448bfb internal_error(char const*, ...)
        /vol/gcc/src/hg/master/local/gcc/diagnostic-global-context.cc:518
0x141c407 crash_signal
        /vol/gcc/src/hg/master/local/gcc/toplev.cc:323

The failures are due to a SEGV (NULL pointer deref) in

Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0xfea98a44 in memcpy%sun4v-hwcap5 () from /lib/libc.so.1
(gdb) bt
#0  0xfea98a44 in memcpy%sun4v-hwcap5 () from /lib/libc.so.1
#1  0x0248af90 in std::uninitialized_copy<__gnu_cxx::__normal_iterator<unsigned
int const*, std::vector<unsigned int, std::allocator<unsigned int> > >,
unsigned int*> (__first=..., __last=..., __result=<optimized out>)
    at
/var/gcc/regression/master/11.4-gcc/build/prev-sparc-sun-solaris2.11/libstdc++-v3/include/bits/stl_uninitialized.h:267
#2  std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<unsigned int
const*, std::vector<unsigned int, std::allocator<unsigned int> > >,
__gnu_cxx::__normal_iterator<unsigned int const*, std::vector<unsigned int,
std::allocator<unsigned int> > >, unsigned int*, unsigned int> (__first=...,
__last=..., 
    __result=<optimized out>)
    at
/var/gcc/regression/master/11.4-gcc/build/prev-sparc-sun-solaris2.11/libstdc++-v3/include/bits/stl_uninitialized.h:619
#3  std::vector<unsigned int, std::allocator<unsigned int> >::vector (
    this=0xffbfb034, __x=...)
    at
/var/gcc/regression/master/11.4-gcc/build/prev-sparc-sun-solaris2.11/libstdc++-v3/include/bits/stl_vector.h:633
#4  text_art::style::style (this=0xffbfb018)
    at /vol/gcc/src/hg/master/local/gcc/text-art/types.h:221
#5  text_art::get_style_from_color_cap_name (name=name@entry=0x71a5c8 "valid")
    at /vol/gcc/src/hg/master/local/gcc/text-art/style.cc:274
#6  0x0239d0d8 in ana::access_diagram_impl::access_diagram_impl (
    this=0x2b161d8, op=..., region_creation_event_id=..., sm=..., theme=..., 
    logger=0x0)
    at /vol/gcc/src/hg/master/local/gcc/analyzer/access-diagram.cc:2063
#7  0x02392600 in make_unique<ana::access_diagram_impl, ana::access_operation
const&, diagnostic_event_id_t&, text_art::style_manager&, text_art::theme
const&, ana::logger*&> () at /vol/gcc/src/hg/master/local/gcc/make-unique.h:39
#8  ana::access_diagram::access_diagram (this=0xffbfb1c0, op=..., 
    region_creation_event_id=..., sm=..., theme=..., logger=0x0)
    at /vol/gcc/src/hg/master/local/gcc/analyzer/access-diagram.cc:2680
#9  0x023a4630 in ana::out_of_bounds::make_access_diagram (this=0x2b10db0, 
    op=..., sm=..., theme=..., logger=0x0)
    at /vol/gcc/src/hg/master/local/gcc/analyzer/bounds-checking.cc:208
#10 ana::out_of_bounds::maybe_show_diagram (this=0x2b10db0, logger=0x0)
    at /vol/gcc/src/hg/master/local/gcc/analyzer/bounds-checking.cc:187
#11 0x023a49fc in ana::symbolic_buffer_over_read::emit (this=0x2b10db0, 
    ctxt=...)
    at /vol/gcc/src/hg/master/local/gcc/analyzer/bounds-checking.cc:1161
#12 0x023cf450 in ana::diagnostic_manager::emit_saved_diagnostic (
    this=0xffbfb6f4, eg=..., sd=...)
    at
/var/gcc/regression/master/11.4-gcc/build/prev-sparc-sun-solaris2.11/libstdc++-v3/include/bits/unique_ptr.h:193
#13 0x023d34c8 in ana::dedupe_winners::emit_best (this=0xffbfb4dc, 
    dm=0xffbfb6f4, eg=...)
    at /vol/gcc/src/hg/master/local/gcc/analyzer/diagnostic-manager.cc:1473
#14 0x023cfa18 in ana::diagnostic_manager::emit_saved_diagnostics (
    this=0xffbfb6f4, eg=...)
    at /vol/gcc/src/hg/master/local/gcc/analyzer/diagnostic-manager.cc:1525
#15 0x0193fe24 in ana::impl_run_checkers (logger=0x0)
    at /vol/gcc/src/hg/master/local/gcc/analyzer/exploded-graph.h:856
#16 0x01941034 in ana::run_checkers ()
    at /vol/gcc/src/hg/master/local/gcc/analyzer/analyzer-logging.h:152
#17 0x0192ea60 in (anonymous namespace)::pass_analyzer::execute (this=0x0)
    at /vol/gcc/src/hg/master/local/gcc/analyzer/analyzer-pass.cc:87
#18 0x012b5b34 in execute_one_pass (pass=<opt_pass* 0x2a15cc8 "analyzer"(87)>)
    at /vol/gcc/src/hg/master/local/gcc/passes.cc:2660
#19 0x012b7384 in execute_ipa_pass_list (
    pass=<opt_pass* 0x2a15cc8 "analyzer"(87)>)
    at /vol/gcc/src/hg/master/local/gcc/passes.cc:3114
#20 0x00de47d4 in ipa_passes ()
    at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2273
#21 symbol_table::compile (this=0xfac12000)
    at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2338
#22 0x00de8584 in symbol_table::compile (this=0xfac12000)
    at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2316
#23 symbol_table::finalize_compilation_unit (this=0xfac12000)
    at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2590
#24 0x0141cc70 in compile_file ()
    at /vol/gcc/src/hg/master/local/gcc/toplev.cc:480
#25 0x01420858 in do_compile ()
    at /vol/gcc/src/hg/master/local/gcc/toplev.cc:2211
#26 toplev::main (this=<optimized out>, argc=<optimized out>, 
    argv=<optimized out>) at /vol/gcc/src/hg/master/local/gcc/toplev.cc:2371
#27 0x02406940 in main (argc=25, argv=0xffbfe73c)
    at /vol/gcc/src/hg/master/local/gcc/main.cc:39

and only occur in stage 2 and up, which points to a codegen error.

Reply via email to