Closed
Bug 1066193
Opened 10 years ago
Closed 10 years ago
spurious G++ error: cannot call member function '...' without object
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla35
People
(Reporter: bbouvier, Assigned: bbouvier)
Details
Attachments
(2 files)
2.29 KB,
patch
|
sunfish
:
feedback+
|
Details | Diff | Splinter Review |
1.02 KB,
patch
|
bbouvier
:
review+
|
Details | Diff | Splinter Review |
Examples:
[1] https://tbpl.mozilla.org/php/getParsedLog.php?id=47885243&full=1&branch=mozilla-inbound
[2] https://tbpl.mozilla.org/php/getParsedLog.php?id=47894331&tree=Mozilla-Inbound
The issue is the following: while the compiler should resolve is<T>() to js::jit::MDefinition::is<T>, it doesn't and will try to use other is<T> definitions. For instance, in [1], it's JSObject::is<T>() that it tries to use; in [2], it's js::jit::IonExitFrameLayout::is<T>().
Sheriffs say it started to show up a few days ago.
The only common ground I can find so far is that the compiler used is gcc-4.7.2.
I call for internal compiler error.
Assignee | ||
Comment 1•10 years ago
|
||
Dan, do you think that might help? We could land this and see if the amount of intermittent lowers...
Attachment #8488072 -
Flags: feedback?(sunfish)
Comment 2•10 years ago
|
||
Comment on attachment 8488072 [details] [diff] [review]
1066193.patch
Review of attachment 8488072 [details] [diff] [review]:
-----------------------------------------------------------------
Odd. This patch looks worth trying, at least.
Attachment #8488072 -
Flags: feedback?(sunfish) → feedback+
Comment 3•10 years ago
|
||
If that doesn't work, you could add even more qualifications: this->MDefinition::is<T>().
Comment 4•10 years ago
|
||
FWIW I have a try push that doesn't touch js/src/jit but which seems to be making this perma-failing on Linux debug:
https://tbpl.mozilla.org/?tree=Try&rev=7aa8cbf52b04
Comment 5•10 years ago
|
||
And here's a try push which combines the above try push with the patch for comment 1:
https://tbpl.mozilla.org/?tree=Try&rev=1e6e4867210a
Comment 6•10 years ago
|
||
For what it's worth, I ran into similar failures in this Try push:
https://tbpl.mozilla.org/php/getParsedLog.php?id=47898338&tree=Try&full=1
I don't know how to tell which compiler that is running.
("internal compiler error" means the compiler crashed. This would be an "external compiler error" :) )
Updated•10 years ago
|
Summary: Intermittent build failures due to MDefinition::is<T> → spurious G++ error: cannot call member function '...' without object
Comment 7•10 years ago
|
||
It looks like the patch in comment 1 fixes the failures I was seeing in my first try push.
Assignee | ||
Comment 8•10 years ago
|
||
Thanks Brian for trying. r=h4writer over irc, pushed now:
https://hg.mozilla.org/integration/mozilla-inbound/rev/9d5b23b90cf5
Assignee: nobody → benj
Status: NEW → ASSIGNED
Assignee | ||
Comment 9•10 years ago
|
||
So it happens again with IonExitFrameLayout::is<T> and JSObject::is<T>. It is showing up all over the place in inbound right now, so will probably make a quick workaround like the other, hoping it helps. That'd be really nice to have a way to reproduce it and file against gcc issues system, but that seems rather hard to reproduce...
https://tbpl.mozilla.org/php/getParsedLog.php?id=47976450&tree=Mozilla-Inbound
https://tbpl.mozilla.org/php/getParsedLog.php?id=47977124&tree=Mozilla-Inbound
https://tbpl.mozilla.org/php/getParsedLog.php?id=47977748&tree=Mozilla-Inbound
Assignee | ||
Comment 10•10 years ago
|
||
r+ from sfink on IRC.
https://hg.mozilla.org/integration/mozilla-inbound/rev/75888bec4541
Attachment #8488692 -
Flags: review+
Comment 11•10 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/9d5b23b90cf5
https://hg.mozilla.org/mozilla-central/rev/75888bec4541
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
You need to log in
before you can comment on or make changes to this bug.
Description
•