This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug pch/12606] New: internal compiler error: in ggc_pch_read, at ggc-page.c:2099


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12606

           Summary: internal compiler error: in ggc_pch_read, at ggc-
                    page.c:2099
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: pch
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: carlo at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu

The ICE occurs "reproducible" on my (not loaded) machine when
invoking the exact same command - and occurs under multiple
circumstances (ie. different types of commandline parameters,
while running in strace, when started from 'make', or as 'time make'
or when started from the commandline).
However - although in many of these cases the invokation of
cc1plus is the same, the ICE does or does not occur depending
on whether it is invoked in one of the above ways.

I have not succeeded in reproducing this bug when invoking
cc1plus directly from the commandline and as such could not
investigate the bug further.

One example of where it occurs is:

~/c++/libcwd/include>make timestamp-pch.h
make: Circular pch.h.gch <- pch.h.gch dependency dropped.
make: Circular sys.h <- timestamp-pch.h dependency dropped.
if g++-cvs-3.4 -DHAVE_CONFIG_H -I../include -I../include  -DCWDEBUG -Wall
-Woverloaded-virtual -Wundef -Wpointer-arith -Wwrite-strings -Werror
-Winvalid-pch -include pch.h -g -fno-exceptions -pipe \
  -MD -MP -MF .deps/pch.Tpo -DPIC -fPIC -c -o pch.h.gch pch.h; then \
  touch timestamp-pch.h; \
  mv .deps/pch.Tpo .deps/pch.po; \
fi
<command line>:1: internal compiler error: in ggc_pch_read, at ggc-page.c:2099
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

I then replaced the invoked cc1plus by a small utility that prints
out the commandline arguments:

#include <stdio.h>

int
main (int argc, char* argv[])
{
  FILE* out = fopen("/tmp/out", "w");
  int i = 0;
  for (; i < argc; ++i)
    fprintf(out, "%d: %s\n", i, argv[i]);
  fclose(out);
  return 1;
}

This resulted, when invoking 'make' in the same way
as what 100% reproduced the ICE, in a list of the
argument passed to cc1plus.  But then, when I invoke
cc1plus exactly like that from the commandline:

~/c++/libcwd/include>/usr/src/GNU/install/libexec/gcc/i686-pc-linux-gnu/3.4/cc1plus
-quiet -I../include -I../include -MD pch.h.d -MF .deps/pch.Tpo -MP -MQ pch.h.gch
-D_GNU_SOURCE -DHAVE_CONFIG_H -DCWDEBUG -DPIC -include pch.h pch.h -quiet
-dumpbase pch.h -mtune=pentiumpro -auxbase-strip pch.h.gch -g -Wall
-Woverloaded-virtual -Wundef -Wpointer-arith -Wwrite-strings -Werror
-Winvalid-pch -fno-exceptions -fPIC -o /tmp/ccSUifts.s --output-pch= pch.h.gch

No problems what-so-ever.

You will understand that I cannot produce a 'small test case' for
this :/.  Can someone, instead, please give suggestions what I can
try in order to figure out what is causing this?

Note that at another moment when I first ran into this, 'make' worked
fine - but when I then typed: 'time make' the same command invoked by
make would cause an ICE.  Very weird :/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]