<div dir="ltr">Ah, right...<div>Feel free to revert this change. I have plans to deal with different UBSan initialization issues soon, and will see if I would be able to reinstantiate this warning on all platforms.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 10, 2015 at 6:10 PM, Justin Bogner <span dir="ltr"><<a href="mailto:mail@justinbogner.com" target="_blank">mail@justinbogner.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Yury Gribov <<a href="mailto:y.gribov@samsung.com">y.gribov@samsung.com</a>> writes:<br>
> Author: ygribov<br>
> Date: Thu Feb  5 23:53:08 2015<br>
> New Revision: 228384<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=228384&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=228384&view=rev</a><br>
> Log:<br>
> [UBSan] Enable -Wglobal-constructors.<br>
<br>
</span>I don't think we can do this, since we use global constructors. This has<br>
been warning on darwin since it was committed:<br>
<br>
    <a href="http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA_build/1476/warnings7Result/" target="_blank">http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA_build/1476/warnings7Result/</a><br>
<br>
Looks like it won't warn on linux, but it does on darwin and probably<br>
android. From ubsan_init.cc:<br>
<br>
    #if SANITIZER_CAN_USE_PREINIT_ARRAY<br>
    __attribute__((section(".preinit_array"), used))<br>
    void (*__local_ubsan_preinit)(void) = __ubsan::InitIfNecessary;<br>
    #else<br>
    // Use a dynamic initializer.<br>
    class UbsanInitializer {<br>
     public:<br>
      UbsanInitializer() {<br>
        InitIfNecessary();<br>
      }<br>
    };<br>
    static UbsanInitializer ubsan_initializer;<br>
    #endif  // SANITIZER_CAN_USE_PREINIT_ARRAY<br>
<div class="HOEnZb"><div class="h5"><br>
> Modified:<br>
>     compiler-rt/trunk/lib/ubsan/CMakeLists.txt<br>
><br>
> Modified: compiler-rt/trunk/lib/ubsan/CMakeLists.txt<br>
> URL:<br>
> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/ubsan/CMakeLists.txt?rev=228384&r1=228383&r2=228384&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/ubsan/CMakeLists.txt?rev=228384&r1=228383&r2=228384&view=diff</a><br>
> ==============================================================================<br>
> --- compiler-rt/trunk/lib/ubsan/CMakeLists.txt (original)<br>
> +++ compiler-rt/trunk/lib/ubsan/CMakeLists.txt Thu Feb  5 23:53:08 2015<br>
> @@ -17,7 +17,12 @@ include_directories(..)<br>
><br>
>  set(UBSAN_CFLAGS ${SANITIZER_COMMON_CFLAGS})<br>
>  append_no_rtti_flag(UBSAN_CFLAGS)<br>
> +append_list_if(COMPILER_RT_HAS_WGLOBAL_CONSTRUCTORS_FLAG -Wglobal-constructors<br>
> +               UBSAN_CFLAGS)<br>
> +<br>
>  set(UBSAN_CXXFLAGS ${SANITIZER_COMMON_CFLAGS})<br>
> +append_list_if(COMPILER_RT_HAS_WGLOBAL_CONSTRUCTORS_FLAG -Wglobal-constructors<br>
> +               UBSAN_CXXFLAGS)<br>
><br>
>  add_custom_target(ubsan)<br>
><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>
_______________________________________________<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><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Alexey Samsonov<br><a href="mailto:vonosmas@gmail.com" target="_blank">vonosmas@gmail.com</a></div></div>
</div>