Bug 117773 - ICE compiling teTeX
ICE compiling teTeX
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: gcc34 (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jakub Jelinek
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2004-03-08 08:15 EST by Tim Waugh
Modified: 2007-11-30 17:10 EST (History)
0 users

See Also:
Fixed In Version: 3.4.0-1
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2004-05-27 10:47:38 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
input.cc (158.39 KB, text/plain)
2004-03-08 08:16 EST, Tim Waugh
no flags Details

  None (edit)
Description Tim Waugh 2004-03-08 08:15:31 EST
Description of problem:
ICE during tetex compilation.

Version-Release number of selected component (if applicable):
gcc34-3.4.0-0.6

How reproducible:
100%

Steps to Reproduce:
1. g++34 -O2 -c input.cc
  
Actual results:
GlobalParams.cc: In member function `void
GlobalParams::parseFile(GString*, FILE*)':
GlobalParams.cc:426: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Preprocessed source stored into /tmp/ccdJyp5G.out file, please attach
this to your bugreport

Additional info:
Not triggered with -O1.

See attached input.cc.
Comment 1 Tim Waugh 2004-03-08 08:16:12 EST
Created attachment 98368 [details]
input.cc
Comment 2 Jakub Jelinek 2004-03-08 17:45:07 EST
Simplified into:
// { dg-do compile }
// { dg-options "-O2" }

extern char *foo (char *, int);

struct A
{
  int i;
  void bar (char *);
};

struct B
{
  B ();
  void baz (void *);
};

struct C
{
  C (const char *, int);
};

void
A::bar (char *a)
{
  B *b;
  char *p1, *p2 = a + 512;

  while (foo (a, 511))
    {
      b = new B ();
      p1 = a;
      while (*p1)
        {
          b->baz (new C (p1, p2 - p1));
          p1 = *p2 ? p2 + 1 : p2;
        }
    }
}

Both this testcase and your original testcase don't ICE in gcc-c++-3.4-0.3 though,
so it is apparently something newly introduced.  But certainly present
on vanilla gcc-3_4-branch as of today.
Comment 3 Jakub Jelinek 2004-03-11 05:14:30 EST
Tracked upstream http://gcc.gnu.org/bugzilla/PR14527

Note You need to log in before you can comment on or make changes to this bug.