[Openmp-commits] [PATCH] D49904: [CMake] Disable -Wstringop-overflow

Jonas Hahnfeld via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Thu Jul 26 23:46:11 PDT 2018


Hahnfeld created this revision.
Hahnfeld added reviewers: AndreyChurbanov, jlpeyton.
Herald added subscribers: openmp-commits, mgorny.

GCC 8 produces false-positives with this:

  In file included from <openmp>/src/runtime/src/kmp_os.h:950,
                   from <openmp>/src/runtime/src/kmp.h:78,
                   from <openmp>/src/runtime/src/kmp_environment.cpp:54:
  <openmp>/src/runtime/src/kmp_environment.cpp: In function ‘char* __kmp_env_get(const char*)’:
  <openmp>/src/runtime/src/kmp_safe_c_api.h:52:50: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
   #define KMP_STRNCPY_S(dst, bsz, src, cnt) strncpy(dst, src, cnt)
                                             ~~~~~~~^~~~~~~~~~~~~~~
  <openmp>/src/runtime/src/kmp_environment.cpp:97:5: note: in expansion of macro ‘KMP_STRNCPY_S’
       KMP_STRNCPY_S(result, len, value, len);
       ^~~~~~~~~~~~~
  <openmp>/src/runtime/src/kmp_environment.cpp:92:28: note: length computed here
       size_t len = KMP_STRLEN(value) + 1;

This is stupid because result is allocated with KMP_INTERNAL_MALLOC(len),
so the arguments are correct.


Repository:
  rOMP OpenMP

https://reviews.llvm.org/D49904

Files:
  runtime/cmake/LibompHandleFlags.cmake
  runtime/cmake/config-ix.cmake


Index: runtime/cmake/config-ix.cmake
===================================================================
--- runtime/cmake/config-ix.cmake
+++ runtime/cmake/config-ix.cmake
@@ -66,6 +66,7 @@
 check_c_compiler_flag(-Wself-assign LIBOMP_HAVE_WNO_SELF_ASSIGN_FLAG)
 check_c_compiler_flag(-Wvla-extension LIBOMP_HAVE_WNO_VLA_EXTENSION_FLAG)
 check_c_compiler_flag(-Wformat-pedantic LIBOMP_HAVE_WNO_FORMAT_PEDANTIC_FLAG)
+check_c_compiler_flag(-Wstringop-overflow=0 LIBOMP_HAVE_WSTRINGOP_OVERFLOW_FLAG)
 check_c_compiler_flag(-msse2 LIBOMP_HAVE_MSSE2_FLAG)
 check_c_compiler_flag(-ftls-model=initial-exec LIBOMP_HAVE_FTLS_MODEL_FLAG)
 libomp_check_architecture_flag(-mmic LIBOMP_HAVE_MMIC_FLAG)
Index: runtime/cmake/LibompHandleFlags.cmake
===================================================================
--- runtime/cmake/LibompHandleFlags.cmake
+++ runtime/cmake/LibompHandleFlags.cmake
@@ -44,6 +44,7 @@
   libomp_append(flags_local -Wno-self-assign LIBOMP_HAVE_WNO_SELF_ASSIGN_FLAG)
   libomp_append(flags_local -Wno-vla-extension LIBOMP_HAVE_WNO_VLA_EXTENSION_FLAG)
   libomp_append(flags_local -Wno-format-pedantic LIBOMP_HAVE_WNO_FORMAT_PEDANTIC_FLAG)
+  libomp_append(flags_local -Wstringop-overflow=0 LIBOMP_HAVE_WSTRINGOP_OVERFLOW_FLAG)
   libomp_append(flags_local /GS LIBOMP_HAVE_GS_FLAG)
   libomp_append(flags_local /EHsc LIBOMP_HAVE_EHSC_FLAG)
   libomp_append(flags_local /Oy- LIBOMP_HAVE_OY__FLAG)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D49904.157648.patch
Type: text/x-patch
Size: 1413 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20180727/35a0d688/attachment.bin>


More information about the Openmp-commits mailing list