[cfe-dev] parse C++ throw
Chris Lattner
clattner at apple.com
Sun Feb 24 20:24:12 PST 2008
On Feb 24, 2008, at 4:20 PM, Mike Stump wrote:
> Here is a patch to add parsing support for C++ throw expressions.
Wow, very nice. You did a great job, I just have some minor nit-picky
comments below.
> I tested to ensure this would be safe for C, it is, as throw isn't
> only recognized when doing C++.
Right!
> Did I do the type of the throw expression correctly? I copied the
> way true and false were done.
I'm surprised that throw is an expression, you learn something new
every day. Your code looks great.
+/// PraseThrowExpression - THis handles the C++ throw expression.
Minor typos here: prase -> parse, THis -> This
Tabs:
+ virtual ExprResult ActOnCXXThrow(SourceLocation OpLoc,
+ ExprTy *Op = 0) {
+ /// CXXThrowExpr - [C++ 15] C++ Throw Expression.
+ ///
+ class CXXThrowExpr : public Expr {
+ Expr *Op;
+ SourceLocation Loc;
I'd suggest renaming Loc -> ThrowLoc to be more explicit about what it
is the location of. In the comment, please say explicitly that this
handles two cases "throw;" in which case the operand is null, and
"throw x;" in which case x is the operand.
This method:
+ Expr *getSubExpr() const { return Op; }
Should be replaced with these two:
+ const Expr *getSubExpr() const { return Op; }
+ Expr *getSubExpr() { return Op; }
Please resubmit the tweaked patch and I'll apply, thanks Mike!
-Chris
More information about the cfe-dev
mailing list