r245304 - We shouldn't need to pass -fno-strict-aliasing when building clang with clang.

Chris Bieneman via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 18 11:26:43 PDT 2015


> On Aug 18, 2015, at 10:48 AM, Nico Weber <thakis at chromium.org> wrote:
> 
> On Tue, Aug 18, 2015 at 9:15 AM, Chris Bieneman via cfe-commits <cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>> wrote:
> Author: cbieneman
> Date: Tue Aug 18 11:15:44 2015
> New Revision: 245304
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=245304&view=rev <https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D245304-26view-3Drev&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=SF3YQCNSDdiCV_cpwz5f3s3opK1bBqN4q00Y432V00E&s=pZXJ6Mm9h7WjvnCZ5v-TZmTeQe28RrvsLio4Mxk9Bng&e=>
> Log:
> We shouldn't need to pass -fno-strict-aliasing when building clang with clang.
> 
> Summary: 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.
> 
> Reviewers: bogner, echristo
> 
> Subscribers: cfe-commits
> 
> Differential Revision: http://reviews.llvm.org/D12036 <https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D12036&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=SF3YQCNSDdiCV_cpwz5f3s3opK1bBqN4q00Y432V00E&s=yYuJm6MFFbGQcXnF9gfPqO9pNL3S_oeE1T8lqMHw8QE&e=>
> 
> Modified:
>     cfe/trunk/CMakeLists.txt
>     cfe/trunk/Makefile
> 
> Modified: cfe/trunk/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=245304&r1=245303&r2=245304&view=diff <https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_CMakeLists.txt-3Frev-3D245304-26r1-3D245303-26r2-3D245304-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=SF3YQCNSDdiCV_cpwz5f3s3opK1bBqN4q00Y432V00E&s=jvB3eAtU-2kVQfMqXVVIN-JqUnTb3MFSIOHYufVda-0&e=>
> ==============================================================================
> --- cfe/trunk/CMakeLists.txt (original)
> +++ cfe/trunk/CMakeLists.txt Tue Aug 18 11:15:44 2015
> @@ -253,7 +253,10 @@ configure_file(
> 
>  # Add appropriate flags for GCC
>  if (LLVM_COMPILER_IS_GCC_COMPATIBLE)
> -  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-common -Woverloaded-virtual -fno-strict-aliasing")
> +  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-common -Woverloaded-virtual")
> +  if (NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
> +    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
> +  endif ()
> 
>    # Enable -pedantic for Clang even if it's not enabled for LLVM.
>    if (NOT LLVM_ENABLE_PEDANTIC)
> 
> Modified: cfe/trunk/Makefile
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Makefile?rev=245304&r1=245303&r2=245304&view=diff <https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_Makefile-3Frev-3D245304-26r1-3D245303-26r2-3D245304-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=SF3YQCNSDdiCV_cpwz5f3s3opK1bBqN4q00Y432V00E&s=Fpa1vrJq9zzQxZ23cLdOC9NWQM-g36KaZJMUwz9IVAs&e=>
> ==============================================================================
> --- cfe/trunk/Makefile (original)
> +++ cfe/trunk/Makefile Tue Aug 18 11:15:44 2015
> @@ -67,8 +67,11 @@ endif
>  #   http://gcc.gnu.org/PR41874 <https://urldefense.proofpoint.com/v2/url?u=http-3A__gcc.gnu.org_PR41874&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=SF3YQCNSDdiCV_cpwz5f3s3opK1bBqN4q00Y432V00E&s=Nu2Y9ZUMguIJjVLiXZnaPjrUomLtAwp2eDyO0OGOEmM&e=>
>  #   http://gcc.gnu.org/PR41838 <https://urldefense.proofpoint.com/v2/url?u=http-3A__gcc.gnu.org_PR41838&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=SF3YQCNSDdiCV_cpwz5f3s3opK1bBqN4q00Y432V00E&s=ZBt3erleNpDp133S9RChymy1ysd3yshd3B-n3c7SaBc&e=>
> 
> These two bugs are marked fixed. Do we still need to pass this for gcc, or can we just not pass it anywhere?

I don’t have access to gcc to test removing the flag there. I see no reason not to remove it for gcc, but I haven’t and can’t test it. Someone else will need to test it before committing.

-Chris

>  
> 
>  #
> -# We can revisit this when LLVM/Clang support it.
> +# We don't need to do this if the host compiler is clang.
> +ifeq ($(CXX_COMPILER), "clang")
>  CXX.Flags += -fno-strict-aliasing
> +endif
> +
> 
>  # Set up Clang's tblgen.
>  ifndef CLANG_TBLGEN
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits <https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Dcommits&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=SF3YQCNSDdiCV_cpwz5f3s3opK1bBqN4q00Y432V00E&s=1gOfDQ-p57gRTKBN0patGEqgWXVB62F9EoutQAuqopo&e=>
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150818/c6354a69/attachment-0001.html>


More information about the cfe-commits mailing list