Bug 37461 - [4.4 Regression] ICE in find_or_generate_expression, at tree-ssa-pre.c:2691
Summary: [4.4 Regression] ICE in find_or_generate_expression, at tree-ssa-pre.c:2691
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 4.4.0
: P3 normal
Target Milestone: 4.4.0
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2008-09-10 11:27 UTC by Martin Michlmayr
Modified: 2008-10-15 11:09 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2008-09-14 04:59:51


Attachments
Preprocessed source (95.49 KB, application/octet-stream)
2008-09-10 11:49 UTC, Martin Michlmayr
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Michlmayr 2008-09-10 11:27:40 UTC
With current trunk (r140227)

(sid)972:tbm@em64t: ~] /usr/lib/gcc-snapshot/bin/gcc -c -O3 linux-2.6-nfs4acl.i
fs/nfsd/nfs4acl.c: In function '_posix_to_nfsv4_one':
fs/nfsd/nfs4acl.c:229: internal compiler error: in find_or_generate_expression, at tree-ssa-pre.c:2691
Please submit a full bug report,
with preprocessed source if appropriate.
Comment 1 Martin Michlmayr 2008-09-10 11:49:00 UTC
Created attachment 16285 [details]
Preprocessed source
Comment 2 Martin Michlmayr 2008-09-10 11:49:26 UTC
/* Testcase by Martin Michlmayr <tbm@cyrius.com> */

struct nfs4_ace
{
  unsigned int flag;
};
void _posix_to_nfsv4_one (struct nfs4_ace *ace, short deny, int flags)
{
  int eflag = (flags ? (0x00000001 | 0x00000008) : 0);
  if (deny)
    ace->flag = eflag;
  ace->flag = eflag;
  while (ace->flag)
    ace->flag = eflag | 0x00000040;
}
Comment 3 Andrew Pinski 2008-09-14 04:59:51 UTC
Confirmed, you can also get rid of the struct:
void _posix_to_nfsv4_one (unsigned *ace, short deny, int flags)
{
  int eflag = (flags ? (0x00000001 | 0x00000008) : 0);
  if (deny)
    *ace= eflag;
  *ace= eflag;
  while (*ace)
    *ace= eflag | 0x00000040;
}
Comment 4 Jakub Jelinek 2008-10-15 11:09:45 UTC
Fixed by http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140460