https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80479
Bug ID: 80479 Summary: endless stream of valgrind errors when using trunk build with trunk on ppc64le Product: gcc Version: 7.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org Target Milestone: --- When I build trunk with trunk on ppc64le (--enable-valgrind-annotations --disable-bootstrap) the resulting compiler produces many valgrind errors, even on simple testcases. Building trunk with an older release works fine. trippels@gcc2-power8 ~ % valgrind --track-origins=yes --trace-children=yes ~/gcc_test/usr/local/bin/g++ -O2 bench.cpp ==140970== Memcheck, a memory error detector ==140970== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. ==140970== Using Valgrind-3.12.0 and LibVEX; rerun with -h for copyright info ==140970== Command: /home/trippels/gcc_test/usr/local/bin/g++ -O2 bench.cpp ==140970== ==140970== Invalid read of size 4 ==140970== at 0x100A9630: make_relative_prefix_1 (make-relative-prefix.c:356) ==140970== by 0x1000CFC7: process_command(unsigned int, cl_decoded_option*) (gcc.c:4222) ==140970== by 0x10019C5F: driver::set_up_specs() const (gcc.c:7416) ==140970== by 0x100037BF: driver::main(int, char**) (gcc.c:7228) ==140970== by 0x10003B97: main (gcc-main.c:46) ==140970== Address 0x43bd2b4 is 2 bytes after a block of size 2 alloc'd ==140970== at 0x4083E0C: malloc (vg_replace_malloc.c:299) ==140970== by 0x100A9397: save_string (make-relative-prefix.c:108) ==140970== by 0x100A9397: split_directories (make-relative-prefix.c:174) ==140970== by 0x100A951B: make_relative_prefix_1 (make-relative-prefix.c:325) ==140970== by 0x1000CFC7: process_command(unsigned int, cl_decoded_option*) (gcc.c:4222) ==140970== by 0x10019C5F: driver::set_up_specs() const (gcc.c:7416) ==140970== by 0x100037BF: driver::main(int, char**) (gcc.c:7228) ==140970== by 0x10003B97: main (gcc-main.c:46) ==140970== ==140970== Invalid read of size 4 ==140970== at 0x100A9634: make_relative_prefix_1 (make-relative-prefix.c:356) ==140970== by 0x1000CFC7: process_command(unsigned int, cl_decoded_option*) (gcc.c:4222) ==140970== by 0x10019C5F: driver::set_up_specs() const (gcc.c:7416) ==140970== by 0x100037BF: driver::main(int, char**) (gcc.c:7228) ==140970== by 0x10003B97: main (gcc-main.c:46) ==140970== Address 0x43bd474 is 2 bytes after a block of size 2 alloc'd ==140970== at 0x4083E0C: malloc (vg_replace_malloc.c:299) ==140970== by 0x100A9397: save_string (make-relative-prefix.c:108) ==140970== by 0x100A9397: split_directories (make-relative-prefix.c:174) ==140970== by 0x100A95CF: make_relative_prefix_1 (make-relative-prefix.c:348) ==140970== by 0x1000CFC7: process_command(unsigned int, cl_decoded_option*) (gcc.c:4222) ==140970== by 0x10019C5F: driver::set_up_specs() const (gcc.c:7416) ==140970== by 0x100037BF: driver::main(int, char**) (gcc.c:7228) ==140970== by 0x10003B97: main (gcc-main.c:46) ==140970== ==140970== Conditional jump or move depends on uninitialised value(s) ==140970== at 0x100A963C: make_relative_prefix_1 (make-relative-prefix.c:356) ==140970== by 0x1000CFC7: process_command(unsigned int, cl_decoded_option*) (gcc.c:4222) ==140970== by 0x10019C5F: driver::set_up_specs() const (gcc.c:7416) ==140970== by 0x100037BF: driver::main(int, char**) (gcc.c:7228) ==140970== by 0x10003B97: main (gcc-main.c:46) ==140970== ==140970== Conditional jump or move depends on uninitialised value(s) ==140970== at 0x100A9648: make_relative_prefix_1 (make-relative-prefix.c:356) ==140970== by 0x1000CFC7: process_command(unsigned int, cl_decoded_option*) (gcc.c:4222) ==140970== by 0x10019C5F: driver::set_up_specs() const (gcc.c:7416) ==140970== by 0x100037BF: driver::main(int, char**) (gcc.c:7228) ==140970== by 0x10003B97: main (gcc-main.c:46) ... ==140970== ERROR SUMMARY: 98 errors from 21 contexts (suppressed: 0 from 0)