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 14:25:18 PDT 2015


Wow! Thank you for catching that!

Fixed in r245359.

-Chris

> On Aug 18, 2015, at 2:15 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> 
> ----- Original Message -----
>> From: "Chris Bieneman via cfe-commits" <cfe-commits at lists.llvm.org>
>> To: cfe-commits at lists.llvm.org
>> Sent: Tuesday, August 18, 2015 11:15:44 AM
>> Subject: r245304 - We shouldn't need to pass -fno-strict-aliasing when building clang with clang.
>> 
>> Author: cbieneman
>> Date: Tue Aug 18 11:15:44 2015
>> New Revision: 245304
>> 
>> URL: https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D245304-26view-3Drev&d=BQICaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=LZ6mOKBg2jvfMXj1e1AeP3UD23LAMeWnUDGoS7OAfRo&s=OwUS_r30_fyatqpHGo8Mfbpay2m_WXuAZbUe6yr-m5A&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: https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D12036&d=BQICaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=LZ6mOKBg2jvfMXj1e1AeP3UD23LAMeWnUDGoS7OAfRo&s=61uO56iUYJqbrrPmpu3s3IC4BqPskB4xQ1IhffBJM5g&e= 
>> 
>> Modified:
>>    cfe/trunk/CMakeLists.txt
>>    cfe/trunk/Makefile
>> 
>> Modified: cfe/trunk/CMakeLists.txt
>> URL:
>> 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=BQICaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=LZ6mOKBg2jvfMXj1e1AeP3UD23LAMeWnUDGoS7OAfRo&s=kMBsIYcu-mqcpUPKstn6a3qKi1tZ8ZipfNj7-n5zJTE&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:
>> 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=BQICaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=LZ6mOKBg2jvfMXj1e1AeP3UD23LAMeWnUDGoS7OAfRo&s=oVWnGjjONssWGC7tIuD3ftvoidZBhow7jIBK3jGNPzY&e= 
>> ==============================================================================
>> --- cfe/trunk/Makefile (original)
>> +++ cfe/trunk/Makefile Tue Aug 18 11:15:44 2015
>> @@ -67,8 +67,11 @@ endif
>> #   https://urldefense.proofpoint.com/v2/url?u=http-3A__gcc.gnu.org_PR41874&d=BQICaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=LZ6mOKBg2jvfMXj1e1AeP3UD23LAMeWnUDGoS7OAfRo&s=LjF6Tc2RbfHB6IGj5VcgnpQp0V7Ag_ptcayUefS3k0k&e= 
>> #   https://urldefense.proofpoint.com/v2/url?u=http-3A__gcc.gnu.org_PR41838&d=BQICaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=LZ6mOKBg2jvfMXj1e1AeP3UD23LAMeWnUDGoS7OAfRo&s=Wg9_cRbtgqczt08wykO8rWLJYEmUWSxVMeZmPVOxo_Y&e= 
>> #
>> -# 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
> 
> This logic is backwards, it disables strict aliasing when the compiler is clang, and leaves it enabled otherwise. Perhaps you want to ifeq -> ifneq?
> 
> -Hal
> 
>> +
>> 
>> # Set up Clang's tblgen.
>> ifndef CLANG_TBLGEN
>> 
>> 
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Dcommits&d=BQICaQ&c=eEvniauFctOgLOKGJOplqw&r=Hfcbhu5JC70tzQtVGDgDJg&m=LZ6mOKBg2jvfMXj1e1AeP3UD23LAMeWnUDGoS7OAfRo&s=WPkNdzCUCk9mc2t5-AjiEWBOb63rfTn7cniall2Powc&e= 
>> 
> 
> -- 
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory



More information about the cfe-commits mailing list