[compiler-rt] r273026 - Fix most MSVC warnings in compiler-rt profiling library

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 17 11:22:56 PDT 2016


nice. Thanks for the fix!

David

On Fri, Jun 17, 2016 at 11:12 AM, Reid Kleckner via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: rnk
> Date: Fri Jun 17 13:12:50 2016
> New Revision: 273026
>
> URL: http://llvm.org/viewvc/llvm-project?rev=273026&view=rev
> Log:
> Fix most MSVC warnings in compiler-rt profiling library
>
> Here's the warnings and how they were fixed:
>
> - InstrProfilingUtil.c(110): warning C4013: '_open_osfhandle' undefined;
> assuming extern returning int
>
> Include io.h to get the prototype.
>
> - warning C4005: 'FILE_MAP_EXECUTE': macro redefinition
>
> Stop trying to support pre-XP versions of Windows, don't attempt to
> define this macro.
>
> - InstrProfilingWriter.c(271): warning C4221: nonstandard extension used:
> 'Data': cannot be initialized using address of automatic variable 'Header'
> - InstrProfilingWriter.c(275): warning C4221: nonstandard extension used:
> 'Data': cannot be initialized using address of automatic variable 'Zeroes'
>
> Turn this warning off. This is definitely legal in C++, all compilers
> accept it, and I only have room for half of one language standard in my
> brain.
>
> - InstrProfilingValue.c(320): warning C4113: 'uint32_t (__cdecl *)()'
> differs in parameter lists from 'uint32_t (__cdecl *)(void)'
>
> Fix this with an explicit (void) in the prototype.
>
> - InstrProfilingMerge.c.obj : warning LNK4006: _VPMergeHook already
> defined in InstrProfilingMergeFile.c.obj; second definition ignored
>
> Last remaining warning. This is from linking a selectany definition with
> a strong definition. We need to sort out weak symbols in compiler-rt in
> general, though.
>
> Modified:
>     compiler-rt/trunk/cmake/config-ix.cmake
>     compiler-rt/trunk/lib/profile/CMakeLists.txt
>     compiler-rt/trunk/lib/profile/InstrProfilingPort.h
>     compiler-rt/trunk/lib/profile/InstrProfilingUtil.c
>     compiler-rt/trunk/lib/profile/InstrProfilingValue.c
>     compiler-rt/trunk/lib/profile/WindowsMMap.h
>
> Modified: compiler-rt/trunk/cmake/config-ix.cmake
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=273026&r1=273025&r2=273026&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/cmake/config-ix.cmake (original)
> +++ compiler-rt/trunk/cmake/config-ix.cmake Fri Jun 17 13:12:50 2016
> @@ -60,6 +60,7 @@ check_cxx_compiler_flag(/W4 COMPILER_RT_
>  check_cxx_compiler_flag(/WX COMPILER_RT_HAS_WX_FLAG)
>  check_cxx_compiler_flag(/wd4146 COMPILER_RT_HAS_WD4146_FLAG)
>  check_cxx_compiler_flag(/wd4291 COMPILER_RT_HAS_WD4291_FLAG)
> +check_cxx_compiler_flag(/wd4221 COMPILER_RT_HAS_WD4221_FLAG)
>  check_cxx_compiler_flag(/wd4391 COMPILER_RT_HAS_WD4391_FLAG)
>  check_cxx_compiler_flag(/wd4722 COMPILER_RT_HAS_WD4722_FLAG)
>  check_cxx_compiler_flag(/wd4800 COMPILER_RT_HAS_WD4800_FLAG)
>
> Modified: compiler-rt/trunk/lib/profile/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/CMakeLists.txt?rev=273026&r1=273025&r2=273026&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/profile/CMakeLists.txt (original)
> +++ compiler-rt/trunk/lib/profile/CMakeLists.txt Fri Jun 17 13:12:50 2016
> @@ -77,6 +77,11 @@ if(COMPILER_RT_TARGET_HAS_FCNTL_LCK)
>       -DCOMPILER_RT_HAS_FCNTL_LCK=1)
>  endif()
>
> +# This appears to be a C-only warning banning the use of locals in
> aggregate
> +# initializers. All other compilers accept this, though.
> +# nonstandard extension used : 'identifier' : cannot be initialized using
> address of automatic variable
> +append_list_if(COMPILER_RT_HAS_WD4221_FLAG /wd4221 EXTRA_FLAGS)
> +
>  if(APPLE)
>    add_compiler_rt_runtime(clang_rt.profile
>      STATIC
>
> Modified: compiler-rt/trunk/lib/profile/InstrProfilingPort.h
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingPort.h?rev=273026&r1=273025&r2=273026&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/profile/InstrProfilingPort.h (original)
> +++ compiler-rt/trunk/lib/profile/InstrProfilingPort.h Fri Jun 17 13:12:50
> 2016
> @@ -13,6 +13,7 @@
>  #ifdef _MSC_VER
>  #define COMPILER_RT_ALIGNAS(x) __declspec(align(x))
>  #define COMPILER_RT_VISIBILITY
> +/* FIXME: selectany does not have the same semantics as weak. */
>  #define COMPILER_RT_WEAK __declspec(selectany)
>  /* Need to include <windows.h> */
>  #define COMPILER_RT_ALLOCA _alloca
>
> Modified: compiler-rt/trunk/lib/profile/InstrProfilingUtil.c
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingUtil.c?rev=273026&r1=273025&r2=273026&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/profile/InstrProfilingUtil.c (original)
> +++ compiler-rt/trunk/lib/profile/InstrProfilingUtil.c Fri Jun 17 13:12:50
> 2016
> @@ -12,6 +12,7 @@
>
>  #ifdef _WIN32
>  #include <direct.h>
> +#include <io.h>
>  #include <windows.h>
>  #else
>  #include <sys/stat.h>
>
> Modified: compiler-rt/trunk/lib/profile/InstrProfilingValue.c
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingValue.c?rev=273026&r1=273025&r2=273026&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/profile/InstrProfilingValue.c (original)
> +++ compiler-rt/trunk/lib/profile/InstrProfilingValue.c Fri Jun 17
> 13:12:50 2016
> @@ -309,7 +309,7 @@ static ValueProfNode *getNextNValueData(
>    return VNode;
>  }
>
> -static uint32_t getValueProfDataSizeWrapper() {
> +static uint32_t getValueProfDataSizeWrapper(void) {
>    return getValueProfDataSize(&RTRecordClosure);
>  }
>
>
> Modified: compiler-rt/trunk/lib/profile/WindowsMMap.h
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/WindowsMMap.h?rev=273026&r1=273025&r2=273026&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/profile/WindowsMMap.h (original)
> +++ compiler-rt/trunk/lib/profile/WindowsMMap.h Fri Jun 17 13:12:50 2016
> @@ -21,13 +21,7 @@
>   */
>  #define PROT_READ     0x1
>  #define PROT_WRITE    0x2
> -/* This flag is only available in WinXP+ */
> -#ifdef FILE_MAP_EXECUTE
> -#define PROT_EXEC     0x4
> -#else
> -#define PROT_EXEC        0x0
> -#define FILE_MAP_EXECUTE 0
> -#endif
> +#define PROT_EXEC     0x0
>
>  #define MAP_FILE      0x00
>  #define MAP_SHARED    0x01
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160617/40dd295f/attachment-0001.html>


More information about the llvm-commits mailing list