This appears to be present in compiler-rt upstream, but as part
of more intrusive changes.  For gcc, the lack of this results in
a fatal warning (-Werror) at build-time.

libsanitizer:

        * sanitizer_common/sanitizer_atomic_clang_other.h [_MIPS_SIM
        && _MIPS_SIM == _ABIO32] (lock): Add initializer for .pad member.

diff --git a/libsanitizer/sanitizer_common/sanitizer_atomic_clang_other.h 
b/libsanitizer/sanitizer_common/sanitizer_atomic_clang_other.h
index a0605bb..59e9f64 100644
--- a/libsanitizer/sanitizer_common/sanitizer_atomic_clang_other.h
+++ b/libsanitizer/sanitizer_common/sanitizer_atomic_clang_other.h
@@ -35,7 +35,7 @@ static void __spin_unlock(volatile int *lock) { 
__sync_lock_release(lock); }
 static struct {
   int lock;
   char pad[32 - sizeof(int)];
-} __attribute__((aligned(32))) lock = {0};
+} __attribute__((aligned(32))) lock = {0, {0}};
 
 template <class T>
 T __mips_sync_fetch_and_add(volatile T *ptr, T val) {
-- 
2.1.4

brgds, H-P

Reply via email to