Recent TraceMonkey merge broke clang builds

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: Ehsan, Assigned: luke)

Tracking

({regression})

Trunk
regression
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

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=]
Blocks: 574346

Comment 1

6 years ago
I get exactly the same error on Mac now. OS X 10.6.8, Clang 3.0. :-(
OS: Linux → All
Hardware: x86_64 → All
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

6 years ago
Created attachment 539364 [details] [diff] [review]
simplify interpreter call/new business

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.
Assignee: general → luke
Status: NEW → ASSIGNED
Attachment #539364 - Flags: review?(dvander)
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 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

6 years ago
Thanks Waldo, try server was just pointing that out to me.

http://hg.mozilla.org/mozilla-central/rev/ce10e78d030d
Status: NEW → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
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.

Updated

6 years ago
Depends on: 666003
Depends on: 667824
You need to log in before you can comment on or make changes to this bug.