summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-10 05:16:17 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-10 05:16:17 +0000
commit1c1c14571766c8eaa97dc33c997d8f97d95fee6b (patch)
tree27ee83a86f7029e72f894d9a7aa9f3230e9bb212
parent5219ed3570dafacfa9b512fd9a2167515628c14a (diff)
downloadgcc-1c1c14571766c8eaa97dc33c997d8f97d95fee6b.tar.gz
* error.c (find_typenames_r): Also add decltypes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151586 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/error.c6
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index d0050772385..db2a892988f 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+2009-09-09 Jason Merrill <jason@redhat.com>
+
+ * error.c (find_typenames_r): Also add decltypes.
+
2009-09-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/28293
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 19649292627..5d38e026454 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1159,7 +1159,8 @@ dump_template_decl (tree t, int flags)
}
/* find_typenames looks through the type of the function template T
- and returns a VEC containing any typedefs or TYPENAME_TYPEs it finds. */
+ and returns a VEC containing any typedefs, decltypes or TYPENAME_TYPEs
+ it finds. */
struct find_typenames_t
{
@@ -1176,7 +1177,8 @@ find_typenames_r (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED, void *data)
if (TYPE_P (*tp) && is_typedef_decl (TYPE_NAME (*tp)))
/* Add the type of the typedef without any additional cv-quals. */
mv = TREE_TYPE (TYPE_NAME (*tp));
- else if (TREE_CODE (*tp) == TYPENAME_TYPE)
+ else if (TREE_CODE (*tp) == TYPENAME_TYPE
+ || TREE_CODE (*tp) == DECLTYPE_TYPE)
/* Add the typename without any cv-qualifiers. */
mv = TYPE_MAIN_VARIANT (*tp);