<div dir="ltr">Folks, any suggestion? </div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 15, 2014 at 2:40 AM, Greg Fitzgerald <span dir="ltr"><<a href="mailto:garious@gmail.com" target="_blank">garious@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Kostya,<br>
<br>
This broke my ARM Linux build.  I'm using GCC 4.8.2 from Linaro.  It<br>
triggers a compile-time assertion (see below).  Can you please revert?<br>
 Thanks, Greg<br>
<br>
lib/sanitizer_common/sanitizer_internal_defs.h:259:72: error: size of<br>
array 'assertion_failed__1130' is negative<br>
     typedef char IMPL_PASTE(assertion_failed_##_, line)[2*(int)(pred)-1]<br>
                                                                        ^<br>
lib/sanitizer_common/sanitizer_internal_defs.h:253:30: note: in<br>
expansion of macro 'IMPL_COMPILER_ASSERT'<br>
 #define COMPILER_CHECK(pred) IMPL_COMPILER_ASSERT(pred, __LINE__)<br>
                              ^<br>
lib/sanitizer_common/sanitizer_platform_limits_posix.h:1268:3: note:<br>
in expansion of macro 'COMPILER_CHECK'<br>
   COMPILER_CHECK(sizeof(__sanitizer_##TYPE) == sizeof(TYPE))<br>
   ^<br>
lib/sanitizer_common/sanitizer_platform_limits_posix.cc:1130:1: note:<br>
in expansion of macro 'CHECK_TYPE_SIZE'<br>
 CHECK_TYPE_SIZE(XDR::xdr_ops);<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
<br>
On Tue, May 13, 2014 at 1:01 AM, Kostya Serebryany <<a href="mailto:kcc@google.com">kcc@google.com</a>> wrote:<br>
> Author: kcc<br>
> Date: Tue May 13 03:01:59 2014<br>
> New Revision: 208673<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=208673&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=208673&view=rev</a><br>
> Log:<br>
> [sanitizer] fix for ARM Linux, patch by Maxim Ostapenko<br>
><br>
> Modified:<br>
>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_atomic_clang_other.h<br>
>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h<br>
><br>
> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_atomic_clang_other.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_atomic_clang_other.h?rev=208673&r1=208672&r2=208673&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_atomic_clang_other.h?rev=208673&r1=208672&r2=208673&view=diff</a><br>

> ==============================================================================<br>
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_atomic_clang_other.h (original)<br>
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_atomic_clang_other.h Tue May 13 03:01:59 2014<br>
> @@ -53,7 +53,8 @@ INLINE typename T::Type atomic_load(<br>
>      // 64-bit load on 32-bit platform.<br>
>      // Gross, but simple and reliable.<br>
>      // Assume that it is not in read-only memory.<br>
> -    v = __sync_fetch_and_add((typename T::Type volatile*)&a->val_dont_use, 0);<br>
> +    v = __sync_fetch_and_add(<br>
> +        const_cast<typename T::Type volatile *>(&a->val_dont_use), 0);<br>
>    }<br>
>    return v;<br>
>  }<br>
><br>
> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h?rev=208673&r1=208672&r2=208673&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h?rev=208673&r1=208672&r2=208673&view=diff</a><br>

> ==============================================================================<br>
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h (original)<br>
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h Tue May 13 03:01:59 2014<br>
> @@ -275,10 +275,17 @@ namespace __sanitizer {<br>
>  #endif<br>
><br>
>  #if SANITIZER_LINUX && !SANITIZER_ANDROID<br>
> +<br>
> +#if defined(__arm__)<br>
> +  const unsigned kXDROpsNumFuns = 9;<br>
> +#else<br>
> +  const unsigned kXDROpsNumFuns = 10;<br>
> +#endif<br>
> +<br>
>    struct __sanitizer_XDR {<br>
>      int x_op;<br>
>      struct xdr_ops {<br>
> -      uptr fns[10];<br>
> +      uptr fns[kXDROpsNumFuns];<br>
>      } *x_ops;<br>
>      uptr x_public;<br>
>      uptr x_private;<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>