]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/34950 (ICE in svn boost math toolkit)
authorJason Merrill <jason@redhat.com>
Wed, 20 Feb 2008 04:47:28 +0000 (23:47 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 20 Feb 2008 04:47:28 +0000 (23:47 -0500)
        PR c++/34950
        * pt.c (resolve_overloaded_unification): Set processing_template_decl
        while we look for possible bindings.

        PR c++/34774
        * pt.c (value_dependent_expression_p): Look into DECL_INITIAL
        of enumerators, too.

From-SVN: r132469

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

index 5c8c2a60d1762eb17114e9aded3fc6e03220434c..e8cd07455f1b9f565d70bebead8d2ca6010ab251 100644 (file)
@@ -1,3 +1,15 @@
+2008-02-19  Jason Merrill  <jason@redhat.com>
+
+       PR c++/34950
+       * pt.c (resolve_overloaded_unification): Set processing_template_decl
+       while we look for possible bindings.
+
+2008-02-13  Jason Merrill  <jason@redhat.com>
+
+       PR c++/34774
+       * pt.c (value_dependent_expression_p): Look into DECL_INITIAL
+       of enumerators, too.
+
 2008-01-28  Jason Merrill  <jason@redhat.com>
 
        PR c++/35007
index e3d5d05cb4858af6b9eaa6a4d32aca9e8ab4de05..10517f17b78f96ea7fe4a5a57dea391d0e78e9ae 100644 (file)
@@ -9790,6 +9790,7 @@ resolve_overloaded_unification (tree tparms,
          if (TREE_CODE (fn) != TEMPLATE_DECL)
            continue;
 
+         ++processing_template_decl;
          subargs = get_bindings (fn, DECL_TEMPLATE_RESULT (fn),
                                  expl_subargs, /*check_ret=*/false);
          if (subargs)
@@ -9798,6 +9799,7 @@ resolve_overloaded_unification (tree tparms,
              good += try_one_overload (tparms, targs, tempargs, parm,
                                        elem, strict, sub_strict, addr_p);
            }
+         --processing_template_decl;
        }
     }
   else
@@ -12562,7 +12564,7 @@ value_dependent_expression_p (tree expression)
       /* A non-type template parm.  */
       if (DECL_TEMPLATE_PARM_P (expression))
        return true;
-      return false;
+      return value_dependent_expression_p (DECL_INITIAL (expression));
 
     case VAR_DECL:
        /* A constant with integral or enumeration type and is initialized