Hi,

This patch removes the implicit setting of DECL_DECLARATED_INLINE_P on
member function.

This has been questionable behaviour since it was added, and though it
has no effect on wider discussions around what should be the correct
semantics of pragma(inline) within D modules, doing this tree-level
optimization has mostly zero benefit as cross-module inlining doesn't
happen anyway.

Bootstrapped and regression tested on x86_64-linux-gnu, and committed to
mainline.

Regards
Iain.

---
gcc/d/ChangeLog:

        * decl.cc (get_symbol_decl): Do not implicitly set
        DECL_DECLARED_INLINE_P on member functions.
---
 gcc/d/decl.cc | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/gcc/d/decl.cc b/gcc/d/decl.cc
index 77144fe11c8..15eb9a43399 100644
--- a/gcc/d/decl.cc
+++ b/gcc/d/decl.cc
@@ -1250,13 +1250,6 @@ get_symbol_decl (Declaration *decl)
        }
 
       /* Miscellaneous function flags.  */
-      if (fd->isMember2 () || fd->isFuncLiteralDeclaration ())
-       {
-         /* See grokmethod in cp/decl.c.  Maybe we shouldn't be setting inline
-            flags without reason or proper handling.  */
-         DECL_DECLARED_INLINE_P (decl->csym) = 1;
-         DECL_NO_INLINE_WARNING_P (decl->csym) = 1;
-       }
 
       /* In [pragma/inline], functions decorated with `pragma(inline)' affects
         whether they are inlined or not.  */
-- 
2.25.1

Reply via email to