mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-17 22:32:51 +00:00
Bug 1273048 - Add __attribute__((noinline)) to work around compiler bug on Android/x86. r=xidorn
I tested locally that the MOZ_GCC_VERSION_AT_LEAST() and MOZ_GCC_VERSION_AT_MOST() expressions do sensible things when I fiddle with the numbers to make them more or less than my local gcc version. (I tested this for all 4 expressions.) I don't know for sure that this will fix the crashes we're seeing, but it seems like it should undo the change that triggered it, so I think it's worth trying. MozReview-Commit-ID: IXYYn3mLQBf --HG-- extra : transplant_source : %20%94%06%05L%8A%CA%DD%83%D9%23jh%E53%EF%F9%A3%0C%B4
This commit is contained in:
parent
97c2e11d8c
commit
fa514af6ea
@ -10,6 +10,7 @@
|
||||
|
||||
#include "nsIAtom.h"
|
||||
#include "mozilla/CSSEnabledState.h"
|
||||
#include "mozilla/Compiler.h"
|
||||
|
||||
// Is this pseudo-element a CSS2 pseudo-element that can be specified
|
||||
// with the single colon syntax (in addition to the double-colon syntax,
|
||||
@ -105,6 +106,16 @@ public:
|
||||
|
||||
private:
|
||||
// Does the given pseudo-element have all of the flags given?
|
||||
|
||||
// Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64037 ,
|
||||
// which is a general gcc bug that we seem to have hit only on Android/x86.
|
||||
#if defined(ANDROID) && defined(__i386__) && defined(__GNUC__) && \
|
||||
!defined(__clang__)
|
||||
#if (MOZ_GCC_VERSION_AT_LEAST(4,8,0) && MOZ_GCC_VERSION_AT_MOST(4,8,4)) || \
|
||||
(MOZ_GCC_VERSION_AT_LEAST(4,9,0) && MOZ_GCC_VERSION_AT_MOST(4,9,2))
|
||||
__attribute__((noinline))
|
||||
#endif
|
||||
#endif
|
||||
static bool PseudoElementHasFlags(const Type aType, uint32_t aFlags)
|
||||
{
|
||||
MOZ_ASSERT(aType < Type::Count);
|
||||
|
Loading…
x
Reference in New Issue
Block a user