------- Comment #2 from pinskia at gcc dot gnu dot org  2008-12-31 23:08 -------
I think I have a simple parser fix for this.
Index: parser.c
===================================================================
--- parser.c    (revision 142986)
+++ parser.c    (working copy)
@@ -11537,7 +11537,11 @@ cp_parser_elaborated_type_specifier (cp_
        type = make_typename_type (parser->scope, decl,
                                   typename_type,
                                   /*complain=*/tf_error);
-      else
+      /* If the `typename' keyword is in effect and DECL is not a type decl.
Then
+         type is non existant.   */
+      else if (tag_type == typename_type && TREE_CODE (decl) != TYPE_DECL)
+         type = NULL_TREE; 
+      else 
        type = TREE_TYPE (decl);
     }

But I need to check if we could get anything besides typedecl here really.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2008-12-27 01:29:47         |2008-12-31 23:08:25
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38638

Reply via email to