mozilla-gcc-internal-compiler-error.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Fri, 30 Aug 2019 23:43:39 +0200
branchfirefox68
changeset 1098 538cbf0bbdca
parent 1097 840132a4a9b3
permissions -rw-r--r--
68.0.2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1097
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
# HG changeset patch
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# User Wolfgang Rosenauer <wr@rosenauer.org>
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
# Parent  88217eaa8804fc699c02411b1b5377ef7eb5d2db
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90756
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
https://bugzilla.mozilla.org/show_bug.cgi?id=1562886
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
diff --git a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
--- a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
+++ b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
@@ -554,17 +554,18 @@ SI void sample_clut_16(const skcms_A2B* 
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
     *r = cast<F>((rgb >>  0) & 0xffff) * (1/65535.0f);
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
     *g = cast<F>((rgb >> 16) & 0xffff) * (1/65535.0f);
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
     *b = cast<F>((rgb >> 32) & 0xffff) * (1/65535.0f);
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
 #endif
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
 }
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
 
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
 // GCC 7.2.0 hits an internal compiler error with -finline-functions (or -O3)
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
 // when targeting MIPS 64,  I think attempting to inline clut() into exec_ops().
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
-#if 1 && defined(__GNUC__) && !defined(__clang__) && defined(__mips64)
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
+// s390x and i*86 also hit this with GCC 7.4 and -O2
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
+#if 1 && defined(__GNUC__) && !defined(__clang__) && ( defined(__mips64) || defined(__s390x__) || defined( __i586__ ) || defined( __i486__ ) || defined( __i386__ ))
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
     #define MAYBE_NOINLINE __attribute__((noinline))
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
 #else
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
     #define MAYBE_NOINLINE
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
 #endif
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
 
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
 MAYBE_NOINLINE
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
 static void clut(const skcms_A2B* a2b, F* r, F* g, F* b, F a) {
840132a4a9b3 Firefox 68.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
     const int dim = (int)a2b->input_channels;