diff --git a/include/Array.h b/include/Array.h
index fc101bf98..542a84f71 100644
--- a/include/Array.h
+++ b/include/Array.h
@@ -393,10 +393,23 @@ class HXCPP_EXTERN_CLASS_ATTRIBUTES ArrayBase : public ArrayCommon
mutable int length;
+#if (HXCPP_API_LEVEL < 500) || defined(CPPIA_JIT)
+
+ #if defined(__GNUC__) || defined(__clang__)
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Winvalid-offsetof"
+ #endif
+
static inline int baseOffset() { return (int)offsetof(ArrayBase,mBase); }
static inline int allocOffset() { return (int)offsetof(ArrayBase,mAlloc); }
static inline int lengthOffset() { return (int)offsetof(ArrayBase,length); }
+ #if defined(__GNUC__) || defined(__clang__)
+ #pragma GCC diagnostic pop
+ #endif
+
+#endif
+
protected:
mutable int mAlloc;
mutable char *mBase;
diff --git a/src/hx/CFFI.cpp b/src/hx/CFFI.cpp
index 264447c82..641da616c 100644
--- a/src/hx/CFFI.cpp
+++ b/src/hx/CFFI.cpp
@@ -1007,6 +1007,11 @@ value query_root(gcroot) { return 0; }
void destroy_root(gcroot) { }
+#if defined(__clang__)
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
+#endif
+
String alloc_hxs_wchar(const wchar_t *ptr,int size)
{
return String::create(ptr,size);
@@ -1022,6 +1027,10 @@ String alloc_hxs_utf8(const char *ptr,int size)
return String::create(ptr,size);
}
+#if defined(__clang__)
+# pragma clang diagnostic pop
+#endif
+
const char * hxs_utf8(const String &string,hx::IStringAlloc *alloc)
{
return string.utf8_str(alloc);
diff --git a/toolchain/android-toolchain-clang.xml b/toolchain/android-toolchain-clang.xml
index 349d09d5a..33d909eac 100644
--- a/toolchain/android-toolchain-clang.xml
+++ b/toolchain/android-toolchain-clang.xml
@@ -72,8 +72,6 @@
-
-
diff --git a/toolchain/android-toolchain-gcc.xml b/toolchain/android-toolchain-gcc.xml
index 2e2f50007..647ab12e7 100644
--- a/toolchain/android-toolchain-gcc.xml
+++ b/toolchain/android-toolchain-gcc.xml
@@ -89,7 +89,6 @@
-
diff --git a/toolchain/appletvos-toolchain.xml b/toolchain/appletvos-toolchain.xml
index fae1448da..395356324 100644
--- a/toolchain/appletvos-toolchain.xml
+++ b/toolchain/appletvos-toolchain.xml
@@ -37,7 +37,6 @@
-
diff --git a/toolchain/appletvsim-toolchain.xml b/toolchain/appletvsim-toolchain.xml
index a7d853d7b..0f8868f88 100644
--- a/toolchain/appletvsim-toolchain.xml
+++ b/toolchain/appletvsim-toolchain.xml
@@ -27,7 +27,6 @@
-
diff --git a/toolchain/common-defines.xml b/toolchain/common-defines.xml
index 3d14752d4..caea5aecc 100644
--- a/toolchain/common-defines.xml
+++ b/toolchain/common-defines.xml
@@ -52,6 +52,5 @@
-
diff --git a/toolchain/emscripten-toolchain.xml b/toolchain/emscripten-toolchain.xml
index 3a5a61142..ee0820283 100644
--- a/toolchain/emscripten-toolchain.xml
+++ b/toolchain/emscripten-toolchain.xml
@@ -102,8 +102,6 @@
-
-
diff --git a/toolchain/gcw0-toolchain.xml b/toolchain/gcw0-toolchain.xml
index ddbb5295c..697377b35 100644
--- a/toolchain/gcw0-toolchain.xml
+++ b/toolchain/gcw0-toolchain.xml
@@ -30,7 +30,6 @@
-
diff --git a/toolchain/iphoneos-toolchain.xml b/toolchain/iphoneos-toolchain.xml
index 2f335127a..22df54b35 100644
--- a/toolchain/iphoneos-toolchain.xml
+++ b/toolchain/iphoneos-toolchain.xml
@@ -51,9 +51,6 @@
-
-
-
diff --git a/toolchain/iphonesim-toolchain.xml b/toolchain/iphonesim-toolchain.xml
index e9d443e5b..406544097 100644
--- a/toolchain/iphonesim-toolchain.xml
+++ b/toolchain/iphonesim-toolchain.xml
@@ -28,9 +28,6 @@
-
-
-
diff --git a/toolchain/linux-toolchain.xml b/toolchain/linux-toolchain.xml
index 6fd3347fa..f436883b5 100644
--- a/toolchain/linux-toolchain.xml
+++ b/toolchain/linux-toolchain.xml
@@ -44,7 +44,6 @@
-
diff --git a/toolchain/mac-toolchain.xml b/toolchain/mac-toolchain.xml
index 01e9ada69..08ca25e31 100644
--- a/toolchain/mac-toolchain.xml
+++ b/toolchain/mac-toolchain.xml
@@ -40,9 +40,6 @@
-
-
-
diff --git a/toolchain/mingw-toolchain.xml b/toolchain/mingw-toolchain.xml
index c7a11fa43..6a7f86059 100644
--- a/toolchain/mingw-toolchain.xml
+++ b/toolchain/mingw-toolchain.xml
@@ -34,7 +34,6 @@
-
diff --git a/toolchain/watchos-toolchain.xml b/toolchain/watchos-toolchain.xml
index e64b425b2..9fa0b663a 100644
--- a/toolchain/watchos-toolchain.xml
+++ b/toolchain/watchos-toolchain.xml
@@ -37,7 +37,6 @@
-
diff --git a/toolchain/watchsimulator-toolchain.xml b/toolchain/watchsimulator-toolchain.xml
index 125265c33..3daa30066 100644
--- a/toolchain/watchsimulator-toolchain.xml
+++ b/toolchain/watchsimulator-toolchain.xml
@@ -37,7 +37,6 @@
-