Bug 176351 - internal compiler error: in get_indirect_ref_operands, at tree-ssa-operands.c:1453
Summary: internal compiler error: in get_indirect_ref_operands, at tree-ssa-operands.c...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: gcc
Version: 4
Hardware: powerpc
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-12-21 17:35 UTC by David Woodhouse
Modified: 2007-11-30 22:11 UTC (History)
1 user (show)

Fixed In Version: 4.1.0-3
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-05-16 08:54:15 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Preprocessed source. (387.29 KB, text/plain)
2005-12-21 17:35 UTC, David Woodhouse
no flags Details
Trivial backport of the patch that fixed the bug in mainline (2.67 KB, patch)
2006-02-25 10:13 UTC, Alexandre Oliva
no flags Details | Diff

Description David Woodhouse 2005-12-21 17:35:54 UTC
/home/dwmw2/working/pkgs/kernel/devel/kernel-2.6.14/linux-2.6.14/drivers/usb/class/usblp.c:339:
internal compiler error: in get_indirect_ref_operands, at tree-ssa-operands.c:1453
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/cc1UwkIM.out file, please attach this to
your bugreport.

Compile with '-m64 -O -c' to reproduce.

Comment 1 David Woodhouse 2005-12-21 17:35:54 UTC
Created attachment 122499 [details]
Preprocessed source.

Comment 2 Alexandre Oliva 2006-02-25 10:13:24 UTC
Created attachment 125231 [details]
Trivial backport of the patch that fixed the bug in mainline

Here's a reduced testcase that is fixed with this trivial backport.  It's
tricky to exercise the bug in mainline: you have to compile with -fno-tree-fre
to get the dom1 pass to perform the optimization that used to break in 4.0.

struct foo { char *name; };

struct bar { struct foo *ptr; };

struct xfoo { char *name; }
  xptr;

int x(struct bar * dev) {
  if (dev->ptr != &xptr) /* warning, different types.  */
    return 0;

  return dev->ptr->name == 0;
}

Comment 3 Jakub Jelinek 2006-05-16 08:54:15 UTC
There won't be further gcc FC4 erratas, this was fixed in FC5.


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