diff options
author | serge-sans-paille <sguelton@redhat.com> | 2019-12-11 21:30:10 +0100 |
---|---|---|
committer | serge-sans-paille <sguelton@redhat.com> | 2020-01-09 17:31:00 +0100 |
commit | cee4a1c957426e9477c8579ff960c8c2bd4af9e2 (patch) | |
tree | 6ae81e86924a355e2ce2fe41118af4f2b71a035a /clang/lib/Sema/SemaChecking.cpp | |
parent | d27a15fed79c8e8484825ce6c3ce1682daeb1547 (diff) | |
download | bcm5719-llvm-cee4a1c957426e9477c8579ff960c8c2bd4af9e2.tar.gz bcm5719-llvm-cee4a1c957426e9477c8579ff960c8c2bd4af9e2.zip |
Improve support of GNU mempcpy
- Lower to the memcpy intrinsic
- Raise warnings when size/bounds are known
Differential Revision: https://reviews.llvm.org/D71374
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index d8711fb6bca..0fd9cb7c0e4 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -340,7 +340,8 @@ void Sema::checkFortifiedBuiltinMemoryFunction(FunctionDecl *FD, case Builtin::BI__builtin___strncat_chk: case Builtin::BI__builtin___strncpy_chk: case Builtin::BI__builtin___stpncpy_chk: - case Builtin::BI__builtin___memccpy_chk: { + case Builtin::BI__builtin___memccpy_chk: + case Builtin::BI__builtin___mempcpy_chk: { DiagID = diag::warn_builtin_chk_overflow; IsChkVariant = true; SizeIndex = TheCall->getNumArgs() - 2; @@ -379,7 +380,9 @@ void Sema::checkFortifiedBuiltinMemoryFunction(FunctionDecl *FD, case Builtin::BImemmove: case Builtin::BI__builtin_memmove: case Builtin::BImemset: - case Builtin::BI__builtin_memset: { + case Builtin::BI__builtin_memset: + case Builtin::BImempcpy: + case Builtin::BI__builtin_mempcpy: { DiagID = diag::warn_fortify_source_overflow; SizeIndex = TheCall->getNumArgs() - 1; ObjectIndex = 0; |