summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-02 15:48:52 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-02 15:48:52 +0000
commit7c8750c15d57df1cda76bc66e0a7a59bd4544f2e (patch)
tree851c3aa7b314e91d451f5fce0f6b5cee9ae65c37
parent0e843db7e807a0a64fdd7fcf5e50f33f843cc6bd (diff)
downloadgcc-7c8750c15d57df1cda76bc66e0a7a59bd4544f2e.tar.gz
* semantics.c (describable_type): Don't pretend to be in a template.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151335 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/semantics.c6
2 files changed, 4 insertions, 6 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index d4745c370c6..0a351b2068d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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.
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 1c16b72e8d5..1e5255e8ce2 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -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;