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

            Bug ID: 87787
           Summary: [9 Regression] runtime error: null pointer passed as
                    argument 2, which is declared to never be null
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: jwakely.gcc at gmail dot com
  Target Milestone: ---

Would be also a recent regression. I see following for ubsan-bootstrapped
compiler:

$ make check RUNTESTFLAGS="gcov.exp=gcov-pr86536.c"
...

Creating 'gcov-pr86536.c.gcov'
/home/mliska/Programming/gcc/objdir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_uninitialized.h:907:24:
runtime error: null pointer passed as argument 2, which is declared to never be
null
    #0 0x460a82 in std::enable_if<std::__is_trivially_relocatable<char
const*>::value, char const**>::type std::__relocate_a_1<char const*, char
const*>(char const**, char const**, char const**, std::allocator<char const*>&)
/home/mliska/Programming/gcc/objdir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_uninitialized.h:907
    #1 0x460a82 in char const** std::__relocate_a<char const**, char const**,
std::allocator<char const*> >(char const**, char const**, char const**,
std::allocator<char const*>&)
/home/mliska/Programming/gcc/objdir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_uninitialized.h:938
    #2 0x460a82 in void std::vector<char const*, std::allocator<char const*>
>::_M_realloc_insert<char const*>(__gnu_cxx::__normal_iterator<char const**,
std::vector<char const*, std::allocator<char const*> > >, char const*&&)
/home/mliska/Programming/gcc/objdir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/vector.tcc:464
    #3 0x41dae9 in void std::vector<char const*, std::allocator<char const*>
>::emplace_back<char const*>(char const*&&)
/home/mliska/Programming/gcc/objdir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/vector.tcc:122
    #4 0x41dae9 in std::vector<char const*, std::allocator<char const*>
>::push_back(char const*&&)
/home/mliska/Programming/gcc/objdir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_vector.h:1164
    #5 0x41dae9 in output_lines ../../gcc/gcov.c:2973
    #6 0x4229a7 in output_gcov_file ../../gcc/gcov.c:1284
    #7 0x4229a7 in generate_results ../../gcc/gcov.c:1389
    #8 0x40e4f9 in main ../../gcc/gcov.c:813
    #9 0x7ffa344f9724 in __libc_start_main (/lib64/libc.so.6+0x20724)
    #10 0x410248 in _start
(/home/mliska/Programming/gcc/objdir/gcc/gcov+0x410248)

It's about pushing a 'const char *' into a vector, I hope the usage is fine in
gcov.c. Jonathan can you please take a look?

Reply via email to