<div dir="ltr">On Wed, Oct 2, 2013 at 9:52 AM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><p dir="ltr"><br>
On Oct 2, 2013 12:49 AM, "Alexey Samsonov" <<a href="mailto:samsonov@google.com" target="_blank">samsonov@google.com</a>> wrote:<br>
><br>
> Author: samsonov<br>
> Date: Wed Oct 2 02:44:19 2013<br>
> New Revision: 191814<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=191814&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=191814&view=rev</a><br>
> Log:<br>
> Explicitly specify -Wno-error if LIBCXX_ENABLE_WERROR is false.<br>
><br>
> libcxx doesn't build with -Werror because of #warnings in its source<br>
> code.</p>
</div><p dir="ltr">This seems a little problematic. Is there no way to get a clean libcxx build? If not, should we enable certain warnings as errors (I'm looking at you, -Wreturn-type)? Or, perhaps better, use -Werror and downgrade specific warnings back to warnings (or disable them entirely)</p>
</blockquote><div><br></div><div>We can certainly add -Wsystem-headers to its build options and clean up the exposed badness (and turn off the warnings that really don't make sense for libc++). That doesn't actually turn up too much stuff.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><p dir="ltr"><span style="color:rgb(80,0,80)">> But when libcxx is built as an external LLVM project, it inherits</span></p>
<div class=""><div class="h5"><p dir="ltr">
> LLVM build flags, breaking the build if LLVM_ENABLE_WERROR is enabled.<br>
><br>
> Modified:<br>
> libcxx/trunk/CMakeLists.txt<br>
> libcxx/trunk/cmake/config-ix.cmake<br>
><br>
> Modified: libcxx/trunk/CMakeLists.txt<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/CMakeLists.txt?rev=191814&r1=191813&r2=191814&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/CMakeLists.txt?rev=191814&r1=191813&r2=191814&view=diff</a><br>
> ==============================================================================<br>
> --- libcxx/trunk/CMakeLists.txt (original)<br>
> +++ libcxx/trunk/CMakeLists.txt Wed Oct 2 02:44:19 2013<br>
> @@ -189,6 +189,9 @@ append_if(LIBCXX_CXX_WARNING_FLAGS LIBCX<br>
> if (LIBCXX_ENABLE_WERROR)<br>
> append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_WERROR_FLAG -Werror)<br>
> append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_WX_FLAG -WX)<br>
> +else()<br>
> + append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_WNO_ERROR_FLAG -Wno-error)<br>
> + append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_NO_WX_FLAG -WX-)<br>
> endif()<br>
> if (LIBCXX_ENABLE_PEDANTIC)<br>
> append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_PEDANTIC_FLAG -pedantic)<br>
><br>
> Modified: libcxx/trunk/cmake/config-ix.cmake<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/cmake/config-ix.cmake?rev=191814&r1=191813&r2=191814&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/cmake/config-ix.cmake?rev=191814&r1=191813&r2=191814&view=diff</a><br>
> ==============================================================================<br>
> --- libcxx/trunk/cmake/config-ix.cmake (original)<br>
> +++ libcxx/trunk/cmake/config-ix.cmake Wed Oct 2 02:44:19 2013<br>
> @@ -13,9 +13,11 @@ check_cxx_compiler_flag(-Wwrite-strings<br>
> check_cxx_compiler_flag(-Wno-long-long LIBCXX_HAS_WNO_LONG_LONG_FLAG)<br>
> check_cxx_compiler_flag(-pedantic LIBCXX_HAS_PEDANTIC_FLAG)<br>
> check_cxx_compiler_flag(-Werror LIBCXX_HAS_WERROR_FLAG)<br>
> +check_cxx_compiler_flag(-Wno-error LIBCXX_HAS_WNO_ERROR_FLAG)<br>
> check_cxx_compiler_flag(-fno-exceptions LIBCXX_HAS_FNO_EXCEPTIONS_FLAG)<br>
> check_cxx_compiler_flag(-fno-rtti LIBCXX_HAS_FNO_RTTI_FLAG)<br>
> check_cxx_compiler_flag(/WX LIBCXX_HAS_WX_FLAG)<br>
> +check_cxx_compiler_flag(/WX- LIBCXX_HAS_NO_WX_FLAG)<br>
> check_cxx_compiler_flag(/EHsc LIBCXX_HAS_EHSC_FLAG)<br>
> check_cxx_compiler_flag(/EHs- LIBCXX_HAS_NO_EHS_FLAG)<br>
> check_cxx_compiler_flag(/EHa- LIBCXX_HAS_NO_EHA_FLAG)<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</p>
</div></div><br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div></div>