<div dir="ltr">Have you tested this? I assume there are strict aliasing violations in Clang/LLVM if we've had this turned on for a while.<br><br>(does strict aliasing still have the special case for enum type punning? Becaues I've certainly seen (& fixed) that in a few places in Clang/LLVM)</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 14, 2015 at 10:39 AM, Chris Bieneman via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">beanz created this revision.<br>
beanz added reviewers: bogner, echristo.<br>
beanz added a subscriber: cfe-commits.<br>
<br>
The code comments in the Makefile indicate this was put in place to support issues when building clang with GCC. Today clang's strict aliasing works, so we shouldn't pass -fno-strict-aliasing when building with clang.<br>
<br>
<a href="http://reviews.llvm.org/D12036" rel="noreferrer" target="_blank">http://reviews.llvm.org/D12036</a><br>
<br>
Files:<br>
  CMakeLists.txt<br>
  Makefile<br>
<br>
Index: Makefile<br>
===================================================================<br>
--- Makefile<br>
+++ Makefile<br>
@@ -67,8 +67,11 @@<br>
 #   <a href="http://gcc.gnu.org/PR41874" rel="noreferrer" target="_blank">http://gcc.gnu.org/PR41874</a><br>
 #   <a href="http://gcc.gnu.org/PR41838" rel="noreferrer" target="_blank">http://gcc.gnu.org/PR41838</a><br>
 #<br>
-# We can revisit this when LLVM/Clang support it.<br>
+# We don't need to do this if the host compiler is clang.<br>
+ifeq ($(shell cc -v 2>&1 | grep clang), "")<br>
 CXX.Flags += -fno-strict-aliasing<br>
+endif<br>
+<br>
<br>
 # Set up Clang's tblgen.<br>
 ifndef CLANG_TBLGEN<br>
Index: CMakeLists.txt<br>
===================================================================<br>
--- CMakeLists.txt<br>
+++ CMakeLists.txt<br>
@@ -253,7 +253,10 @@<br>
<br>
 # Add appropriate flags for GCC<br>
 if (LLVM_COMPILER_IS_GCC_COMPATIBLE)<br>
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-common -Woverloaded-virtual -fno-strict-aliasing")<br>
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-common -Woverloaded-virtual")<br>
+  if (NOT LLVM_COMPILER_IS_CLANG)<br>
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")<br>
+  endif ()<br>
<br>
   # Enable -pedantic for Clang even if it's not enabled for LLVM.<br>
   if (NOT LLVM_ENABLE_PEDANTIC)<br>
<br>
<br>
<br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div>