diff options
author | Steve Naroff <snaroff@apple.com> | 2009-03-03 19:52:17 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2009-03-03 19:52:17 +0000 |
commit | 371b8fb4c3083ba22908b0c2f9ae77a3eeb67487 (patch) | |
tree | 3c977f6bfe05be733b1135455e1735ee3e333f26 /clang/lib/Sema/SemaStmt.cpp | |
parent | 530e03894095ee791c9ed8d3c9d6e4f0bf685d7c (diff) | |
download | bcm5719-llvm-371b8fb4c3083ba22908b0c2f9ae77a3eeb67487.tar.gz bcm5719-llvm-371b8fb4c3083ba22908b0c2f9ae77a3eeb67487.zip |
Fix <rdar://problem/6640991> Exception handling executes wrong clause (Daniel, please verify).
Also necessary to fix:
<rdar://problem/6632061> [sema] non object types should not be allowed in @catch statements
<rdar://problem/6252237> [sema] qualified id should be disallowed in @catch statements
llvm-svn: 65964
Diffstat (limited to 'clang/lib/Sema/SemaStmt.cpp')
-rw-r--r-- | clang/lib/Sema/SemaStmt.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp index e7dff6d5b32..49bd85a9e7e 100644 --- a/clang/lib/Sema/SemaStmt.cpp +++ b/clang/lib/Sema/SemaStmt.cpp @@ -962,11 +962,11 @@ Sema::OwningStmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc, Action::OwningStmtResult Sema::ActOnObjCAtCatchStmt(SourceLocation AtLoc, - SourceLocation RParen, StmtArg Parm, + SourceLocation RParen, DeclTy *Parm, StmtArg Body, StmtArg catchList) { Stmt *CatchList = static_cast<Stmt*>(catchList.release()); ObjCAtCatchStmt *CS = new (Context) ObjCAtCatchStmt(AtLoc, RParen, - static_cast<DeclStmt*>(Parm.release()), static_cast<Stmt*>(Body.release()), + static_cast<ParmVarDecl*>(Parm), static_cast<Stmt*>(Body.release()), CatchList); return Owned(CatchList ? CatchList : CS); } |