Closed Bug 1167030 Opened 6 years ago Closed 6 years ago

js\src\frontend\Parser.h spams tons of output for build warning C4661 "no suitable definition provided for explicit template instantiation request

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla41
Tracking Status
firefox41 --- fixed

People

(Reporter: dholbert, Assigned: jandem)

Details

Attachments

(1 file)

On Windows builds, we get many pages of build warning output like the following, for js\src\frontend\Parser.h:
{
18:12:33     INFO -  Warning: C4661 in c:\builds\moz2_slave\m-in-w32-d-0000000000000000000\build\src\js\src\frontend\Parser.h: 'bool js::frontend::Parser<js::frontend::SyntaxParseHandler>::checkDestructuringObject(js::frontend::BindData<ParseHandler> *,js::frontend::SyntaxParseHandler::Node)' : no suitable definition provided for explicit template instantiation request
18:12:33     INFO -  c:\builds\moz2_slave\m-in-w32-d-0000000000000000000\build\src\js\src\frontend/Parser.h(736) : warning C4661: 'bool js::frontend::Parser<js::frontend::SyntaxParseHandler>::checkDestructuringObject(js::frontend::BindData<ParseHandler> *,js::frontend::SyntaxParseHandler::Node)' : no suitable definition provided for explicit template instantiation request
18:12:33     INFO -          with
18:12:33     INFO -          [
18:12:33     INFO -              ParseHandler=js::frontend::SyntaxParseHandler
18:12:33     INFO -          ]
18:12:33     INFO -          c:\builds\moz2_slave\m-in-w32-d-0000000000000000000\build\src\js\src\frontend/Parser.h(694) : see declaration of 'js::frontend::Parser<js::frontend::SyntaxParseHandler>::checkDestructuringObject'
}

Sample build log: http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-inbound-win32-debug/1432167577/mozilla-inbound-win32-debug-bm86-build1-build1074.txt.gz

efaust / jandem, looks like you've each touched this file recently-ish -- any chance one of you could take a look at seeing what's going on here & stemming the spam?
Based on a "grep Parser.h | wc -l" on the build-log linked in comment 0, it looks like we have around 86 instances of this warning -- and as shown in the build output quoted in comment 0, each instance spams a bunch of lines of output (most of which aren't counted in my quick-and-dirty grep/wc -l check because they don't mention Parser.h)
(In reply to Daniel Holbert [:dholbert] from comment #0)
> efaust / jandem, looks like you've each touched this file recently-ish --
> any chance one of you could take a look at seeing what's going on here &
> stemming the spam?

I think I know what's going on, will try something in a bit.
Flags: needinfo?(jdemooij)
Attached patch PatchSplinter Review
The problem is that many Parser methods have a Parser<FullParseHandler> definition but no Parser<SyntaxParseHandler> one. See for instance makeSetCall.

Instead of adding a ton of empty/MOZ_CRASH definitions (this will regress every other week), this patch suppresses this particular warning.

Note that js/xpconnect/wrappers/moz.build also silences this warning.
Assignee: nobody → jdemooij
Status: NEW → ASSIGNED
Flags: needinfo?(jdemooij)
Attachment #8608860 - Flags: review?(luke)
Attachment #8608860 - Flags: review?(luke) → review+
Looks like that indeed fixed it. Recent WinXP Debug clobber-build log has no mentions of "C4661", & no mentions of Parser.h.

Thanks!
https://hg.mozilla.org/mozilla-central/rev/55f99ca025a4
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
You need to log in before you can comment on or make changes to this bug.