Disable [[clang::musttail]] on Android.
This attribute causes an ICE in Clang 18 when building for Android.
Bug: chromium:1504548
Change-Id: I0e5b3f809e1a007afb4f224b315f4dda8e5909de
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/782437
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/skcms_internals.h b/src/skcms_internals.h
index 917cf07..b5b72fe 100644
--- a/src/skcms_internals.h
+++ b/src/skcms_internals.h
@@ -28,10 +28,12 @@
#ifndef SKCMS_MUSTTAIL
// Sanitizers do not work well with [[clang::musttail]], and corrupt src/dst pointers.
+ // Clang 18 runs into an ICE on Android with [[clang::musttail]]. (crbug.com/1504548)
// Tail-calls are a fairly new, optional feature in wasm and won't work everywhere.
#if __has_cpp_attribute(clang::musttail) && !__has_feature(memory_sanitizer) \
&& !__has_feature(address_sanitizer) \
- && !defined(__EMSCRIPTEN_major__)
+ && !defined(__EMSCRIPTEN_major__) \
+ && !defined(__ANDROID__)
#define SKCMS_MUSTTAIL [[clang::musttail]]
#else
#define SKCMS_MUSTTAIL