d: Do not implicitly set DECL_DECLARED_INLINE_P on member functions.
authorIain Buclaw <ibuclaw@gdcproject.org>
Thu, 25 Jun 2020 07:33:26 +0000 (09:33 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Thu, 25 Jun 2020 15:02:47 +0000 (17:02 +0200)
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.

gcc/d/ChangeLog:

* decl.cc (get_symbol_decl): Do not implicitly set
DECL_DECLARED_INLINE_P on member functions.

gcc/d/decl.cc

index 77144fe..15eb9a4 100644 (file)
@@ -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.  */