Bug 117872
Summary: | building routed as pie causes internal compiler error | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Jens Petersen <petersen> |
Component: | gcc | Assignee: | Jakub Jelinek <jakub> |
Status: | CLOSED RAWHIDE | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | ||
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | s390x | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | 3.3.3-3 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2004-03-17 12:56:04 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Jens Petersen
2004-03-09 14:57:51 UTC
Distilled into 2 testcases: first ICEs gcc 3.3.x, second gcc trunk as of today. /* { dg-do compile } */ /* { dg-options "-O2 -fpic" } */ void bar (char *, int); extern char b[]; extern int d, e; struct S { struct S *m; int n; } **g; void foo (int x, char *y) { struct S *h; int k = 1, l; again: for (h = *g; h != (struct S *) g; h = h->m) { if (k == 0 && h->n & 0x100000); l = y - b; if (e) bar (b, l); if (d) bar (b, l); } if (k) { k = 0; goto again; } } /* { dg-do compile } */ /* { dg-options "-O2 -fpic" } */ struct I { void *i; int j; }; struct S { struct S *m; } **a; extern char b[]; int d, e; void bar (void *, void *, char *, int, int); void baz (void *, int); void foo (void *x, struct I *y, char *z) { struct S *f; int k = 1, l; again: for (f = *a; f != (struct S *) a; f = f->m) { l = z - b; if (e && y) bar (&y->i, x, b, l, y->j); if (d) baz (x, l); z++; } if (k) { k = 0; goto again; } } (each time a different ICE). |