Land temporary workaround for clang-cl not yet understanding __emul
authorNico Weber <thakis@chromium.org>
Wed, 14 Oct 2015 16:37:50 +0000 (09:37 -0700)
committerNico Weber <thakis@chromium.org>
Wed, 14 Oct 2015 16:37:50 +0000 (09:37 -0700)
BUG=543182
R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1405553003 .

third_party/libopenjpeg20/opj_intmath.h

index 3f7934c..c52e7e0 100644 (file)
@@ -192,7 +192,8 @@ Multiply two fixed-precision rational numbers.
 @return Returns a * b
 */
 static INLINE OPJ_INT32 opj_int_fix_mul(OPJ_INT32 a, OPJ_INT32 b) {
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__INTEL_COMPILER) && defined(_M_IX86)
+// TODO(thakis): Remove __clang__ once chromium's clang has clang r250301
+#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__INTEL_COMPILER) && defined(_M_IX86) && !defined(__clang__)
        OPJ_INT64 temp = __emul(a, b);
 #else
        OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ;
@@ -204,7 +205,8 @@ static INLINE OPJ_INT32 opj_int_fix_mul(OPJ_INT32 a, OPJ_INT32 b) {
 }
 
 static INLINE OPJ_INT32 opj_int_fix_mul_t1(OPJ_INT32 a, OPJ_INT32 b) {
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__INTEL_COMPILER) && defined(_M_IX86)
+// TODO(thakis): Remove __clang__ once chromium's clang has clang r250301
+#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__INTEL_COMPILER) && defined(_M_IX86) && !defined(__clang__)
        OPJ_INT64 temp = __emul(a, b);
 #else
        OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ;