diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrappedNative.cpp --- a/js/xpconnect/src/XPCWrappedNative.cpp +++ b/js/xpconnect/src/XPCWrappedNative.cpp @@ -1157,6 +1157,10 @@ return helper.get().Call(); } +#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) +// Work around a compiler bug on ppc64le (bug 1512162). +__attribute__ ((noinline,noclone)) +#endif bool CallMethodHelper::Call() { mCallContext.SetRetVal(JS::UndefinedValue()); @@ -1315,6 +1319,10 @@ return true; } +#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) +// Work around a compiler bug on ppc64le (bug 1512162). +__attribute__ ((noinline,noclone)) +#endif bool CallMethodHelper::GatherAndConvertResults() { // now we iterate through the native params to gather and convert results uint8_t paramCount = mMethodInfo->GetParamCount();