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

            Bug ID: 68758
           Summary: [6 Regression] Invalid read of size 8 in gt_pch_save
                    (ggc-common.c:551)
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: pch
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

Hello.

Pre-compiled header produces many invalid operations:

$ echo '#include <stdio.h>' > /tmp/a.c && valgrind --leak-check=yes
--trace-children=yes ./gcc/xgcc -Bgcc -c -x c-header /tmp/a.c

==7532== 
==7532== Invalid read of size 8
==7532==    at 0x4C2C2C8: _intel_fast_memcpy (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==7532==    by 0x7D7332: gt_pch_save(_IO_FILE*) (ggc-common.c:551)
==7532==    by 0x666655: c_common_write_pch() (c-pch.c:183)
==7532==    by 0x666217: c_common_parse_file() (c-opts.c:1065)
==7532==    by 0x9D05CE: compile_file() (toplev.c:464)
==7532==    by 0x5C8980: do_compile (toplev.c:1977)
==7532==    by 0x5C8980: toplev::main(int, char**) (toplev.c:2084)
==7532==    by 0x5CAC46: main (main.c:39)
==7532==  Address 0x66a3000 is not stack'd, malloc'd or (recently) free'd
==7532== 
==7532== Invalid read of size 8
==7532==    at 0x5E2137F: __GI_mempcpy (in /lib64/libc-2.22.so)
==7532==    by 0x5E102C7: _IO_file_xsputn@@GLIBC_2.2.5 (in /lib64/libc-2.22.so)
==7532==    by 0x5E060EA: fwrite (in /lib64/libc-2.22.so)
==7532==    by 0x67E4CC: ggc_pch_write_object(ggc_pch_data*, _IO_FILE*, void*,
void*, unsigned long, bool) (ggc-page.c:2456)
==7532==    by 0x7D73B1: gt_pch_save(_IO_FILE*) (ggc-common.c:561)
==7532==    by 0x666655: c_common_write_pch() (c-pch.c:183)
==7532==    by 0x666217: c_common_parse_file() (c-opts.c:1065)
==7532==    by 0x9D05CE: compile_file() (toplev.c:464)
==7532==    by 0x5C8980: do_compile (toplev.c:1977)
==7532==    by 0x5C8980: toplev::main(int, char**) (toplev.c:2084)
==7532==    by 0x5CAC46: main (main.c:39)
==7532==  Address 0x66a3000 is not stack'd, malloc'd or (recently) free'd
==7532== 
==7532== Invalid write of size 8
==7532==    at 0x4C2C2CB: _intel_fast_memcpy (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==7532==    by 0x7D73D6: gt_pch_save(_IO_FILE*) (ggc-common.c:563)
==7532==    by 0x666655: c_common_write_pch() (c-pch.c:183)
==7532==    by 0x666217: c_common_parse_file() (c-opts.c:1065)
==7532==    by 0x9D05CE: compile_file() (toplev.c:464)
==7532==    by 0x5C8980: do_compile (toplev.c:1977)
==7532==    by 0x5C8980: toplev::main(int, char**) (toplev.c:2084)
==7532==    by 0x5CAC46: main (main.c:39)
==7532==  Address 0x66a3000 is not stack'd, malloc'd or (recently) free'd

...

Thanks,
Martin

Reply via email to