pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a template.
authorJason Merrill <jason@casey.cygnus.com>
Tue, 25 Jan 2000 05:53:12 +0000 (05:53 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 25 Jan 2000 05:53:12 +0000 (00:53 -0500)
        * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a
        template.

        * decl2.c (mark_used): Do instantiate inlines that have been
        explicitly instantiated.

From-SVN: r31601

gcc/cp/ChangeLog
gcc/cp/decl2.c
gcc/cp/pt.c

index 92dcb79..14cad83 100644 (file)
@@ -1,3 +1,11 @@
+2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
+
+       * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a
+       template.
+
+       * decl2.c (mark_used): Do instantiate inlines that have been
+       explicitly instantiated.
+
 2000-01-24  Richard Henderson  <rth@cygnus.com>
 
        * call.c (build_over_call): Use expand_tree_builtin.
index 51f02ec..56283c8 100644 (file)
@@ -5202,7 +5202,8 @@ mark_used (decl)
      instantiation because that is not checked in instantiate_decl.  */
   if ((TREE_CODE (decl) == FUNCTION_DECL || TREE_CODE (decl) == VAR_DECL)
       && DECL_LANG_SPECIFIC (decl) && DECL_TEMPLATE_INFO (decl)
-      && !DECL_EXPLICIT_INSTANTIATION (decl))
+      && (!DECL_EXPLICIT_INSTANTIATION (decl)
+         || (TREE_CODE (decl) == FUNCTION_DECL && DECL_INLINE (decl))))
     instantiate_decl (decl);
 }
 
index 67670fa..701ec9b 100644 (file)
@@ -5121,6 +5121,11 @@ static tree
 maybe_fold_nontype_arg (arg)
      tree arg;
 {
+  /* If we're not in a template, ARG is already as simple as it's going to
+     get, and trying to reprocess the trees will break.  */
+  if (! processing_template_decl)
+    return arg;
+
   if (TREE_CODE_CLASS (TREE_CODE (arg)) != 't'
       && !uses_template_parms (arg))
     {