http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57729

            Bug ID: 57729
           Summary: Always inline: indirect function call with a yet
                    undetermined callee
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin.liska at gmail dot com

Latest firefox could not be compiled due to always inline error.

/ssd/firefox/js/src/jsapi.h: In function ‘js::regexp_exec(JSContext*, unsigned
int, JS::Value*)’:
/ssd/firefox/js/src/builtin/RegExp.cpp:307:1: error: inlining failed in call to
always_inline ‘IsRegExp(JS::Value const&)’: indirect function call with a yet
undetermined callee
 IsRegExp(const Value &v)
 ^
In file included from /ssd/firefox/js/src/jsprvtd.h:24:0,
                 from /ssd/firefox/js/src/builtin/RegExp.h:10,
                 from /ssd/firefox/js/src/builtin/RegExp.cpp:7:
/ssd/firefox/js/src/jsapi.h:707:5: error: called from here
     if (Test(thisv))
     ^

Code snippet:
JS_ALWAYS_INLINE bool
IsRegExp(const Value &v)
{
    return v.isObject() && v.toObject().is<RegExpObject>();
}


JSBool
js::regexp_exec(JSContext *cx, unsigned argc, Value *vp)
{
    CallArgs args = CallArgsFromVp(argc, vp);
    return CallNonGenericMethod(cx, IsRegExp, regexp_exec_impl, args);
}

I found out that problematic commit is: 200179.

Reply via email to