------- Comment #5 from manu at gcc dot gnu dot org  2008-10-26 01:58 -------
I also have trouble understanding what is going on in
cp_parser_cast_expression. It seems that after parsing a '(type-id)' we cannot
be sure that this is a cast:

      /* If ok so far, parse the dependent expression. We cannot be
         sure it is a cast. Consider `(T ())'.  It is a parenthesized
         ctor of T, but looks like a cast to function returning T
         without a dependent expression.  */

However, can't we check first whether the type-id just parse could be a
constructor? For that to be true, 

1. T must be a type that can be constructed
2. I don't think a parenthesized constructor can appear in the same context as
a cast to function. Can't we infer the correct answer by the surroundings?
3. Even if we cannot get it right in the above cases, in the case of (t *) it
is clear that this is not a constructor.


-- 


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

Reply via email to