This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/15179] bad parse error recovery with missing typename



------- Comment #15 from manu at gcc dot gnu dot org  2009-08-04 09:22 -------
Testcase in comment #9 does not produce any output anymore.

Testcase in comment #10 produces:

/home/manuel/src/pr15179.C:8:18: error: type ?A<yn>? is not derived from type
?B<yn>?
/home/manuel/src/pr15179.C:8:23: error: expected ?;? before ?Type?


Testcase in comment #14 produces:

/home/manuel/src/pr15179-3.C: At global scope:
/home/manuel/src/pr15179-3.C:22:23: error: expected constructor, destructor, or
type conversion before ?&? token


It seems to me that there is a tentative parse of a type in
cp_parser_decl_specifier_seq, that fails, and then we end up trying to parse
something else until it fails completely.

For the typedef testcases, the code in cp_parser_decl_specifier_seq could just
directly parse the complete typedef and return, because only a type can follow
typedef.

For the non-typedef testcase, it is less clear how to handle a failure to parse
a type, since that may actually mean we are looking at something else.

I don't really know where the "failure" happens. That would need more debugging
that I have time to do now. Any help appreciated.


-- 

manu at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |4.4.0
   Last reconfirmed|2005-05-08 17:34:10         |2009-08-04 09:22:11
               date|                            |


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]