Douglas Gregor wrote: > > On Oct 11, 2009, at 2:03 AM, Sebastian Redl wrote: >> Author: cornedbee >> Date: Sun Oct 11 04:03:14 2009 >> New Revision: 83764 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=83764&view=rev >> Log: >> Test exception spec compatibility on return type and parameters. >> >> Along the way, use RequireCompleteType when testing exception spec >> types. >> Separate all the ugly spec stuff into its own file. > >> +/// CheckSpecifiedExceptionType - Check if the given type is valid >> in an >> +/// exception specification. Incomplete types, or pointers to >> incomplete types >> +/// other than void are not allowed. >> +bool Sema::CheckSpecifiedExceptionType(QualType T, const SourceRange >> &Range) { >> + // FIXME: This may not correctly work with the fix for core issue >> 437, >> + // where a class's own type is considered complete within its >> body. But >> + // perhaps RequireCompleteType itself should contain this logic? > > My suggestion for this would be to have the parser delay semantic > analysis of the exception specifications of member functions in the > same way that we delay parsing of default arguments of the parameters > of member functions. For example, these checks on the exception > specialization for a member function declaration could be performed by > ActOnFinishDelayedCXXMethodDeclaration. Hi Doug,
Where would I then put the checks for non-member functions, and how would I prevent the check from being done twice? Sebastian _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
