From e75fec2b238f0e26cfb7645f2208baebe3440d41 Mon Sep 17 00:00:00 2001 From: Nick Desaulniers Date: Thu, 17 Dec 2020 12:34:01 -0800 Subject: [PATCH] [AttrDocs] document always_inline GNU documentaion for always_inline: https://gcc.gnu.org/onlinedocs/gcc/Inline.html GNU documentation for function attributes: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html Microsoft documentation for __force_inline: https://docs.microsoft.com/en-us/cpp/cpp/inline-functions-cpp Reviewed By: ojeda Differential Revision: https://reviews.llvm.org/D68410 --- clang/include/clang/Basic/Attr.td | 2 +- clang/include/clang/Basic/AttrDocs.td | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td index ce2ee40dc036..ba6c459f4a43 100644 --- a/clang/include/clang/Basic/Attr.td +++ b/clang/include/clang/Basic/Attr.td @@ -684,7 +684,7 @@ def AlignMac68k : InheritableAttr { def AlwaysInline : InheritableAttr { let Spellings = [GCC<"always_inline">, Keyword<"__forceinline">]; let Subjects = SubjectList<[Function]>; - let Documentation = [Undocumented]; + let Documentation = [AlwaysInlineDocs]; } def Artificial : InheritableAttr { diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td index c3a412158aba..6f47ca505b5e 100644 --- a/clang/include/clang/Basic/AttrDocs.td +++ b/clang/include/clang/Basic/AttrDocs.td @@ -5653,3 +5653,22 @@ Requirements on Development Tools - Engineering Specification Documentation `_ for more information. }]; } + +def AlwaysInlineDocs : Documentation { + let Category = DocCatFunction; + let Content = [{ +Inlining heuristics are disabled and inlining is always attempted regardless of +optimization level. + +Does not guarantee that inline substitution actually occurs. + +See also `the Microsoft Docs on Inline Functions`_, `the GCC Common Function +Attribute docs`_, and `the GCC Inline docs`_. + +.. _the Microsoft Docs on Inline Functions: https://docs.microsoft.com/en-us/cpp/cpp/inline-functions-cpp +.. _the GCC Common Function Attribute docs: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html +.. _the GCC Inline docs: https://gcc.gnu.org/onlinedocs/gcc/Inline.html + +}]; + let Heading = "always_inline, __force_inline"; +} -- 2.34.1