Closed
Bug 664252
Opened 14 years ago
Closed 14 years ago
Recent TraceMonkey merge broke clang builds
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: ehsan.akhgari, Assigned: luke)
References
Details
(Keywords: regression)
Attachments
(1 file)
9.94 KB,
patch
|
Waldo
:
review+
|
Details | Diff | Splinter Review |
Here is the build failure log:
/home/ehsan/moz/src/js/src/jsinterp.cpp:4916:9: error: indirect goto might cross protected scopes
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4916:9: note: instantiated from:
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3367:5: error: indirect goto might cross protected scopes
EQUALITY_OP(==);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3361:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3367:5: note: instantiated from:
EQUALITY_OP(==);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3361:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2816:9: error: indirect goto might cross protected scopes
DO_OP();
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2816:9: note: instantiated from:
DO_OP();
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3467:5: error: indirect goto might cross protected scopes
RELATIONAL_OP(<=);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3457:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3467:5: note: instantiated from:
RELATIONAL_OP(<=);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3457:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4878:13: error: indirect goto might cross protected scopes
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4878:13: note: instantiated from:
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:5977:1: error: indirect goto might cross protected scopes
END_VARLEN_CASE
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2204:29: note: instantiated from:
# define END_VARLEN_CASE DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:5977:1: note: instantiated from:
END_VARLEN_CASE
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2204:29: note: instantiated from:
# define END_VARLEN_CASE DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:6307:9: error: indirect goto might cross protected scopes
BRANCH(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:6307:9: note: instantiated from:
BRANCH(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:6716:17: error: indirect goto might cross protected scopes
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:6716:17: note: instantiated from:
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4388:13: error: indirect goto might cross protected scopes
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4388:13: note: instantiated from:
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3839:17: error: indirect goto might cross protected scopes
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3839:17: note: instantiated from:
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2556:5: error: indirect goto might cross protected scopes
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2556:5: note: instantiated from:
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:6000:1: error: indirect goto might cross protected scopes
END_VARLEN_CASE
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2204:29: note: instantiated from:
# define END_VARLEN_CASE DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:6000:1: note: instantiated from:
END_VARLEN_CASE
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2204:29: note: instantiated from:
# define END_VARLEN_CASE DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2676:21: error: indirect goto might cross protected scopes
DO_OP(); /* keep interrupting for op. */
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2676:21: note: instantiated from:
DO_OP(); /* keep interrupting for op. */
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3463:5: error: indirect goto might cross protected scopes
RELATIONAL_OP(<);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3457:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3463:5: note: instantiated from:
RELATIONAL_OP(<);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3457:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3475:5: error: indirect goto might cross protected scopes
RELATIONAL_OP(>=);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3457:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3475:5: note: instantiated from:
RELATIONAL_OP(>=);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3457:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2698:9: error: indirect goto might cross protected scopes
JS_EXTENSION_(goto *normalJumpTable[op]);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2698:23: note: instantiated from:
JS_EXTENSION_(goto *normalJumpTable[op]);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3371:5: error: indirect goto might cross protected scopes
EQUALITY_OP(!=);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3361:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3371:5: note: instantiated from:
EQUALITY_OP(!=);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3361:9: note: instantiated from:
TRY_BRANCH_AFTER_COND(cond, 2); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3005:17: note: instantiated from:
BRANCH(len); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2422:9: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3916:5: error: indirect goto might cross protected scopes
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:3916:5: note: instantiated from:
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4574:1: note: possible target of indirect goto
BEGIN_CASE(JSOP_CALL)
^
<scratch space>:152:1: note: instantiated from:
L_JSOP_CALL
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4526:14: note: jump bypasses variable initialization
CallArgs args;
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4731:13: error: indirect goto might cross protected scopes
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:33: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:4731:13: note: instantiated from:
DO_NEXT_OP(len);
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2199:33: note: instantiated from:
DO_OP(); \
^
/home/ehsan/moz/src/js/src/jsinterp.cpp:2193:47: note: instantiated from:
JS_EXTENSION_(goto *jumpTable[op]); \
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
Reporter | ||
Updated•14 years ago
|
Blocks: clang-macosx
I get exactly the same error on Mac now. OS X 10.6.8, Clang 3.0. :-(
OS: Linux → All
Hardware: x86_64 → All
Reporter | ||
Comment 2•14 years ago
|
||
Luke told me on IRC that he's working on a fix.
Clang already has some extensions on what it allows in those cases. I quick look at the firefox doesn't shows any reason why it could not support CallArgs.
I am currently reducing it. Hopefully it will find something I can fix in clang, if not, it will find what is non trivial about CallArgs initialization.
![]() |
Assignee | |
Comment 4•14 years ago
|
||
This patch simplifies how the interpreter handles eval/new/call to remove a bunch of goto intertwined-ness and hence the goto-past-non-POD-initialization.
On the clang side, this is
http://llvm.org/bugs/show_bug.cgi?id=10137
Status: ASSIGNED → NEW
ok, looks like there is more than what I thought on the clang side. The Apple gcc rejects the code I reported. Since firefox does build with it, I am now trying to reduce the failure on my laptop to get something that apple's gcc accepts and clang rejects.
Comment 7•14 years ago
|
||
Comment on attachment 539364 [details] [diff] [review]
simplify interpreter call/new business
Review of attachment 539364 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/jsinterp.cpp
@@ +4553,5 @@
> }
> + regs.sp = args.spAfterCall();
> + CHECK_INTERRUPT_HANDLER();
> + TRACE_0(NativeCallComplete);
> + DO_NEXT_OP(JSOP_CALL_LENGTH);
len = ...;
DO_NEXT_OP(len);
There's an assertion under DNE that len is the value passed in -- only when the computed-goto interpreter isn't available. Which means Windows only, basically. Ain't it great?
Attachment #539364 -
Flags: review?(dvander) → review+
![]() |
Assignee | |
Comment 8•14 years ago
|
||
Thanks Waldo, try server was just pointing that out to me.
http://hg.mozilla.org/mozilla-central/rev/ce10e78d030d
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Reporter | ||
Comment 9•14 years ago
|
||
Rafael, why do you think this is a clang bug? According to the C++ standard, jump statements cannot skip over the initialization of non-POD object instances, right? If anything, I think this should be reported as a gcc bug.
Not a bug in the strict sense, but if might be an useful extension to have if it is something that c++0x has.
Right now I am mostly curious what construct we are using that Apple's gcc accepts since it rejects the basic case of an empty base class.
You need to log in
before you can comment on or make changes to this bug.
Description
•