* semantics.c (describable_type): Don't pretend to be in a template.
authorJason Merrill <jason@redhat.com>
Wed, 2 Sep 2009 15:48:52 +0000 (11:48 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 2 Sep 2009 15:48:52 +0000 (11:48 -0400)
From-SVN: r151335

gcc/cp/ChangeLog
gcc/cp/semantics.c

index d4745c370c68a78058384dc3832d5b249efdf6cf..0a351b2068d76ef91dd110baa86bb4c9405832c6 100644 (file)
@@ -1,4 +1,6 @@
-2009-09-01  Jason Merrill  <jason@redhat.com>
+2009-09-02  Jason Merrill  <jason@redhat.com>
+
+       * semantics.c (describable_type): Don't pretend to be in a template.
 
        * ptree.c (cxx_print_type) [DECLTYPE_TYPE]: Print the expression.
 
index 1c16b72e8d5addb6722611555a31037d48af727f..1e5255e8ce2bae9b601261d713d6349f86ef4b2c 100644 (file)
@@ -4543,17 +4543,13 @@ describable_type (tree expr)
 {
   tree type = NULL_TREE;
 
-  /* processing_template_decl isn't set when we're called from the mangling
-     code, so bump it now.  */
-  ++processing_template_decl;
   if (! type_dependent_expression_p (expr)
       && ! type_unknown_p (expr))
     {
-      type = TREE_TYPE (expr);
+      type = unlowered_expr_type (expr);
       if (real_lvalue_p (expr))
        type = build_reference_type (type);
     }
-  --processing_template_decl;
 
   if (type)
     return type;