Closed Bug 885300 Opened 7 years ago Closed 7 years ago

The number of 'inline function * not defined' warnings is Too Damn High

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla24

People

(Reporter: till, Assigned: till)

References

Details

Attachments

(2 files)

Attached file Compile warnings
Attached is a list of warnings I currently get when compiling on OS X x64.

I bet 634839 introduced these, but others might be pre-existing, I dunno.

Idly, I wonder what kind of push would be needed to get us to a state where we can enable -Werror ...
The HeapSlot::{set,init} ones are known.  They're caused by gc/Barrier-inl.h and vm/ObjectImpl-inl.h both depending on each other for several functions.  That's on my todo list, but it's tricky.

I just fixed the js::ion::LIRGeneratorShared::temp one in bug 885214.  It was caused by bug 880471.

I haven't seen the js::ToAtom<0> one on Linux.  Which compiler did you use on OS X?
Summary: The amount of 'inline function * not defined' warnings is Too Damn High → The number of 'inline function * not defined' warnings is Too Damn High
Thanks for guiding me through this
Attachment #765709 - Flags: review?(n.nethercote)
Assignee: general → tschneidereit
Comment on attachment 765709 [details] [diff] [review]
don't inline js::ToAtom

Review of attachment 765709 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/jsatom.cpp
@@ +455,5 @@
> +template JSAtom *
> +js::ToAtom<CanGC>(JSContext *cx, HandleValue v);
> +
> +template JSAtom *
> +js::ToAtom<NoGC>(JSContext *cx, Value v);

Why are these two declarations needed?
Attachment #765709 - Flags: review?(n.nethercote) → review+
> ::: js/src/jsatom.cpp
> @@ +455,5 @@
> > +template JSAtom *
> > +js::ToAtom<CanGC>(JSContext *cx, HandleValue v);
> > +
> > +template JSAtom *
> > +js::ToAtom<NoGC>(JSContext *cx, Value v);
> 
> Why are these two declarations needed?

For posterity, here's roughly what I said on IRC: the declarations cause the template to be instantiated with these parameters. As the template isn't used in the .cpp file, it wouldn't be instantiated otherwise, and thus not be found during linking.
https://hg.mozilla.org/mozilla-central/rev/7addaeb4e9ad
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla24
You need to log in before you can comment on or make changes to this bug.