Author: serge-sans-paille Date: 2024-11-28T13:55:29Z New Revision: 07a8ebed56cfa223d1587903e4de0d5788b5f777
URL: https://github.com/llvm/llvm-project/commit/07a8ebed56cfa223d1587903e4de0d5788b5f777 DIFF: https://github.com/llvm/llvm-project/commit/07a8ebed56cfa223d1587903e4de0d5788b5f777.diff LOG: [clang] Move warning about memset/memcpy to NonTriviallyCopyable type… (#117387) …s to its own flag Namely -Wnontrivial-memcall, implied by -Wnontrivial-memaccess This is a followup to #111434 Added: Modified: clang/docs/ReleaseNotes.rst clang/include/clang/Basic/DiagnosticGroups.td clang/include/clang/Basic/DiagnosticSemaKinds.td clang/test/SemaCXX/warn-memaccess.cpp Removed: ################################################################################ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 2ecd19bdc39448..601a233b81904f 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -436,10 +436,10 @@ Modified Compiler Flags to utilize these vector libraries. The behavior for all other vector function libraries remains unchanged. -- The ``-Wnontrivial-memaccess`` warning has been updated to also warn about +- The ``-Wnontrivial-memcall`` warning has been added to warn about passing non-trivially-copyable destrination parameter to ``memcpy``, ``memset`` and similar functions for which it is a documented undefined - behavior. + behavior. It is implied by ``-Wnontrivial-memaccess`` Removed Compiler Flags ------------------------- diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index 8f3c4872e67608..438655a7eaca7b 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -683,7 +683,8 @@ def SizeofArrayDecay : DiagGroup<"sizeof-array-decay">; def SizeofPointerMemaccess : DiagGroup<"sizeof-pointer-memaccess">; def MemsetTransposedArgs : DiagGroup<"memset-transposed-args">; def DynamicClassMemaccess : DiagGroup<"dynamic-class-memaccess">; -def NonTrivialMemaccess : DiagGroup<"nontrivial-memaccess">; +def NonTrivialMemcall : DiagGroup<"nontrivial-memcall">; +def NonTrivialMemaccess : DiagGroup<"nontrivial-memaccess", [NonTrivialMemcall]>; def SuspiciousBzero : DiagGroup<"suspicious-bzero">; def SuspiciousMemaccess : DiagGroup<"suspicious-memaccess", [SizeofPointerMemaccess, DynamicClassMemaccess, diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 316374f92b7daf..8495884dcd058f 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -798,7 +798,7 @@ def warn_cstruct_memaccess : Warning< def warn_cxxstruct_memaccess : Warning< "first argument in call to " "%0 is a pointer to non-trivially copyable type %1">, - InGroup<NonTrivialMemaccess>; + InGroup<NonTrivialMemcall>; def note_nontrivial_field : Note< "field is non-trivial to %select{copy|default-initialize}0">; def err_non_trivial_c_union_in_invalid_context : Error< diff --git a/clang/test/SemaCXX/warn-memaccess.cpp b/clang/test/SemaCXX/warn-memaccess.cpp index 070b44891a91aa..2e60539b3e48ef 100644 --- a/clang/test/SemaCXX/warn-memaccess.cpp +++ b/clang/test/SemaCXX/warn-memaccess.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wnontrivial-memaccess %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wnontrivial-memcall %s extern "C" void *bzero(void *, unsigned); extern "C" void *memset(void *, int, unsigned); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits