Author: serge-sans-paille Date: 2021-09-28T16:07:33+02:00 New Revision: bd379915de38a9af3d65e19075a6a64ebbb8d6db
URL: https://github.com/llvm/llvm-project/commit/bd379915de38a9af3d65e19075a6a64ebbb8d6db DIFF: https://github.com/llvm/llvm-project/commit/bd379915de38a9af3d65e19075a6a64ebbb8d6db.diff LOG: Refine the constraint for isInlineBuiltinDeclaration Require it to be always_inline, to more closely match how _FORITFY_SOURCE behaves. This avoids generation of `.inline` suffixed functions - these should always be inlined. Added: Modified: clang/lib/AST/Decl.cpp clang/test/CodeGen/memcpy-nobuiltin.inc Removed: ################################################################################ diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index 835e28c0bc9f..60ca8633224b 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -3176,7 +3176,8 @@ bool FunctionDecl::isInlineBuiltinDeclaration() const { return false; const FunctionDecl *Definition; - return hasBody(Definition) && Definition->isInlineSpecified(); + return hasBody(Definition) && Definition->isInlineSpecified() && + Definition->hasAttr<AlwaysInlineAttr>(); } bool FunctionDecl::isDestroyingOperatorDelete() const { diff --git a/clang/test/CodeGen/memcpy-nobuiltin.inc b/clang/test/CodeGen/memcpy-nobuiltin.inc index 25eab0a9ffd0..d1d034c12899 100644 --- a/clang/test/CodeGen/memcpy-nobuiltin.inc +++ b/clang/test/CodeGen/memcpy-nobuiltin.inc @@ -2,7 +2,7 @@ extern void *memcpy(void *dest, void const *from, size_t n); #ifdef WITH_DECL -inline void *memcpy(void *dest, void const *from, size_t n) { +inline __attribute__((always_inline)) void *memcpy(void *dest, void const *from, size_t n) { char const *ifrom = from; char *idest = dest; while (n--) @@ -11,7 +11,7 @@ inline void *memcpy(void *dest, void const *from, size_t n) { } #endif #ifdef WITH_SELF_REFERENCE_DECL -inline void *memcpy(void *dest, void const *from, size_t n) { +inline __attribute__((always_inline)) void *memcpy(void *dest, void const *from, size_t n) { if (n != 0) memcpy(dest, from, n); return dest; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits