Closed Bug 784631 Opened 13 years ago Closed 13 years ago

C++ compilation error jsinterp.cpp:3685

Categories

(Core :: JavaScript Engine, defect)

All
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla18

People

(Reporter: Yoric, Assigned: terrence)

References

Details

(Whiteboard: [js:p1:fx18])

Attachments

(2 files)

Attached file Build log
Building from clean with clang, I have the following error: jsinterp.cpp:3685:9: error: indirect goto might cross protected scopes Attaching build log. clang -v produces Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn) Target: x86_64-apple-darwin11.4.0 Thread model: posix This is a blocker for me, as a gcc-related bug also prevents me from building with gcc.
Possibly similar to bug 664252
Whiteboard: [js:p1:fx18]
Attached patch v0Splinter Review
This fixes the indicated clang build error and one other that I have been experiencing for several months.
Assignee: general → terrence
Status: NEW → ASSIGNED
Attachment #659784 - Flags: review?(jwalden+bmo)
Comment on attachment 659784 [details] [diff] [review] v0 Review of attachment 659784 [details] [diff] [review]: ----------------------------------------------------------------- Bleh. If this fixes things, good, I guess. Don't much like the blockDepth obfuscation, tho, seeing as I can't find anything in C++98 or C++11 saying that goto out of a scope with an object with a non-trivial is undefined. :-\ (6.6 seems to say all objects with automatic storage duration are destroyed, regardless of destructor type.) Any chance you could inquire around and find out why clang thinks this should be an error? Maybe it's actually a clang bug.
Attachment #659784 - Flags: review?(jwalden+bmo) → review+
The problem is that computed gotos are not in the standard. With a regular goto the compiler knows where it is going and can find out which objects have to be destructed. With a computed goto it cannot.
Ugh. Can we just stop having a threaded interpreter finally, to save ourselves some hassle and acknowledge that if you're interpreting, you're just gonna be slow? :-(
(In reply to Jeff Walden [:Waldo] (remove +bmo to email) from comment #6) > Ugh. Can we just stop having a threaded interpreter finally, to save > ourselves some hassle and acknowledge that if you're interpreting, you're > just gonna be slow? :-( Python has a threaded interpreter loop and it isn't utterly hideous, like ours. We should just do whatever they are doing.
(In reply to Jeff Walden [:Waldo] (remove +bmo to email) from comment #6) > Ugh. Can we just stop having a threaded interpreter finally, to save > ourselves some hassle and acknowledge that if you're interpreting, you're > just gonna be slow? :-( We can benchmark it again, but given that the interpreter was showing up in the profile when we started the clang switch I guess the answer is no.
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla18
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: