Closed Bug 1249448 Opened 9 years ago Closed 9 years ago

Handled unified (C4) constructors

Categories

(Core :: JavaScript: GC, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla47
Tracking Status
firefox47 --- fixed

People

(Reporter: sfink, Assigned: sfink)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Here's a fun one. Due to a bug in the analysis's RAII handling, the analysis was missing some legitimate hazards because the scope of an AutoSuppressGC variable was seen as larger than it should have been. Fixing that bug exposed thousands of hazards using gcc 4.7.3. I've also been working on rewriting all of the analysis jobs to run under taskcluster, which is a much much nicer environment. Unfortunately, the new analyses did not report the newly uncovered hazards. It turns out that it is because when switching to taskcluster, I also upgraded to gcc 4.9.3. GCC now generates an internal type of constructor (a C4 aka unified constructor) and then calls it from the other constructors. Unfortunately, the plugin somehow doesn't see these calls. (I don't know how that even makes sense, but I guess it's probably something to do with when the plugin sees stuff?)
So now whenever we see a C4 constructor, we assume that it is being called from C1, C2, and C3 constructors. That will manufacture some of these out of thin air (particular C3, which is no longer used in current gcc), but they won't have any callers so they won't hurt anything.
Attachment #8721038 - Flags: review?(terrence)
Comment on attachment 8721038 [details] [diff] [review] Handled unified (C4) constructors Review of attachment 8721038 [details] [diff] [review]: ----------------------------------------------------------------- Uhhh huhhhh.
Attachment #8721038 - Flags: review?(terrence) → review+
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: