Closed
Bug 812531
Opened 12 years ago
Closed 12 years ago
Uses of TYPE_SPECIFIC_SCOPED_POINTER_TEMPLATE break when compiled with Clang
Categories
(Core :: MFBT, defect, P1)
Core
MFBT
Tracking
()
People
(Reporter: briansmith, Assigned: briansmith)
References
Details
Attachments
(1 file)
+++ This bug was initially created as a clone of Bug #767240 +++
Clang strictly enforces the C++ rules for two-phase name lookup in templates, and TYPE_SPECIFIC_SCOPED_POINTER_TEMPLATE violates the rules.
This is blocking a P1 basecamp blocker.
Attachment #682490 -
Flags: review?(jwalden+bmo)
Assignee | ||
Comment 1•12 years ago
|
||
Comment on attachment 682490 [details] [diff] [review]
Make MOZ_TYPE_SPECIFIC_SCOPED_POINTER_TEMPLATE comply with two-phase template name lookup rules, as clang requires
r=khuey
Attachment #682490 -
Flags: review?(jwalden+bmo) → review+
Comment 3•12 years ago
|
||
Would you care to explain what the issue is this actually fixes? I have too little time these days, but if I'd been able to get to this in time I'd probably just have rubberstamped it, without understanding exactly what makes it necessary in conformant compilers.
Assignee | ||
Comment 4•12 years ago
|
||
Jeff, it is basically an instance of this problem:
http://blog.llvm.org/2009/12/dreaded-two-phase-name-lookup.html.
clang will refuse to compile the TypeSpecificScopedPointerTraits::release template because TypeSpecificDelete wasn't declared before the definition of the template.
I did not notice the problem before because I had not actually checked in any uses of the template, and I'd only tested uses of the template on Windows.
Comment 5•12 years ago
|
||
Ah, that makes a lot of sense. Thanks for the pointer!
Assignee | ||
Comment 6•12 years ago
|
||
Comment on attachment 682490 [details] [diff] [review]
Make MOZ_TYPE_SPECIFIC_SCOPED_POINTER_TEMPLATE comply with two-phase template name lookup rules, as clang requires
https://hg.mozilla.org/integration/mozilla-inbound/rev/1ca9218271b9
[Approval Request Comment]
User impact if declined: Prerequisite of packaged app support for B2G
Risk to taking this patch (and alternatives if risky): None.
String or UUID changes made by this patch: None
Attachment #682490 -
Flags: approval-mozilla-beta?
Attachment #682490 -
Flags: approval-mozilla-aurora?
Comment 7•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Updated•12 years ago
|
Target Milestone: mozilla19 → mozilla20
Comment 8•12 years ago
|
||
Comment on attachment 682490 [details] [diff] [review]
Make MOZ_TYPE_SPECIFIC_SCOPED_POINTER_TEMPLATE comply with two-phase template name lookup rules, as clang requires
Approval isn't currently required to uplift bb+ bugs.
Attachment #682490 -
Flags: approval-mozilla-beta?
Attachment #682490 -
Flags: approval-mozilla-aurora?
Assignee | ||
Comment 9•12 years ago
|
||
https://hg.mozilla.org/releases/mozilla-aurora/rev/70ce9517d91f
https://hg.mozilla.org/releases/mozilla-beta/rev/a1d710de7c6d
status-firefox18:
--- → fixed
status-firefox19:
--- → fixed
Assignee | ||
Comment 10•12 years ago
|
||
Fix bustage caused by bad automatic merge:
https://hg.mozilla.org/releases/mozilla-aurora/rev/4005d68e2d83
https://hg.mozilla.org/releases/mozilla-beta/rev/2e2ef6b0d646
You need to log in
before you can comment on or make changes to this bug.
Description
•