This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/78047] [7 Regression] Chromium apparently gets miscompiled
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 31 Oct 2016 13:55:16 +0000
- Subject: [Bug middle-end/78047] [7 Regression] Chromium apparently gets miscompiled
- Auto-submitted: auto-generated
- References: <bug-78047-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78047
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Markus Trippelsdorf from comment #5)
> <bb 10>:
>
> MEM[(struct &)&builder] ={v} {CLOBBER};
>
> _53 = MEM[(struct SkAutoSTMalloc *)&gQuadIndexBufferKey_storage +
> 8B].fPtr;
>
> if (_53 != &MEM[(struct SkAutoSTMalloc *)&gQuadIndexBufferKey_storage +
> 8B].D.47025.fTStorage)
So X.fPtr != &X.D.47025.fTStorage. This probably means a latent wrong-code
PTA bug.
<bb 8>:
MEM[(struct &)&gQuadIndexBufferKey_storage + 8] ={v} {CLOBBER};
MEM[(struct &)&gQuadIndexBufferKey_storage + 8] ={v} {CLOBBER};
MEM[(struct &)&gQuadIndexBufferKey_storage + 8] ={v} {CLOBBER};
MEM[(struct SkAutoSTMalloc *)&gQuadIndexBufferKey_storage + 8B].fPtr =
&MEM[(void *)&gQuadIndexBufferKey_storage + 16B];
MEM[(unsigned int &)&gQuadIndexBufferKey_storage + 16] = 0;
MEM[(unsigned int &)&gQuadIndexBufferKey_storage + 20] = 0;
MEM[(struct &)&gQuadIndexBufferKey_storage + 48] ={v} {CLOBBER};
MEM[(struct sk_sp *)&gQuadIndexBufferKey_storage + 48B].fPtr = 0B;
# USE = nonlocal null { D.124671 D.124724 D.124797 D.124805 } (nonlocal,
escaped)
# CLB = nonlocal null { D.124671 D.124724 D.124797 D.124805 } (nonlocal,
escaped)
_49 = GrUniqueKey::GenerateDomain ();
<bb 9>:
MEM[(struct &)&builder] ={v} {CLOBBER};
MEM[(struct Builder *)&builder].fKey = &MEM[(void
*)&gQuadIndexBufferKey_storage + 8B];
# PT = null
_53 = MEM[(struct SkAutoSTMalloc *)&gQuadIndexBufferKey_storage + 8B].fPtr;
# PT = null { D.124724 } (nonlocal, escaped)
_54 = &MEM[(struct SkAutoSTMalloc *)&gQuadIndexBufferKey_storage +
8B].D.47035.fTStorage;
if (_53 != &MEM[(struct SkAutoSTMalloc *)&gQuadIndexBufferKey_storage +
8B].D.47035.fTStorage)
...
we fail to add a constraint for _53 = ... at all. We add:
_49 = NONLOCAL
builder =
&_ZZN18GrResourceProviderC4EP5GrGpuP15GrResourceCacheP13GrSingleOwnerE27gQuadIndexBufferKey_storage
_54 =
&_ZZN18GrResourceProviderC4EP5GrGpuP15GrResourceCacheP13GrSingleOwnerE27gQuadIndexBufferKey_storage
ESCAPED = _53
ESCAPED =
&_ZZN18GrResourceProviderC4EP5GrGpuP15GrResourceCacheP13GrSingleOwnerE27gQuadIndexBufferKey_storage