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.
Created attachment 16285 [details] Preprocessed source
/* 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; }
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; }
Fixed by http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140460