Author: compnerd Date: Fri Oct 30 19:39:15 2015 New Revision: 251729 URL: http://llvm.org/viewvc/llvm-project?rev=251729&view=rev Log: Sema: correct typo recovery with blocks
Handle blocks in the tree transform for the typo correction as otherwise, the capture may miss. This would trigger an assertion. Thanks to Doug Gregor for the help with this! Fixes PR25001. Added: cfe/trunk/test/SemaCXX/typo-correction-blocks.c Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=251729&r1=251728&r2=251729&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaExprCXX.cpp (original) +++ cfe/trunk/lib/Sema/SemaExprCXX.cpp Fri Oct 30 19:39:15 2015 @@ -6545,6 +6545,8 @@ public: ExprResult TransformLambdaExpr(LambdaExpr *E) { return Owned(E); } + ExprResult TransformBlockExpr(BlockExpr *E) { return Owned(E); } + ExprResult Transform(Expr *E) { ExprResult Res; while (true) { Added: cfe/trunk/test/SemaCXX/typo-correction-blocks.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/typo-correction-blocks.c?rev=251729&view=auto ============================================================================== --- cfe/trunk/test/SemaCXX/typo-correction-blocks.c (added) +++ cfe/trunk/test/SemaCXX/typo-correction-blocks.c Fri Oct 30 19:39:15 2015 @@ -0,0 +1,12 @@ +// RUN: %clang_cc1 -triple i386-apple-macosx -fblocks -fsyntax-only -verify %s + +extern int h(int *); +extern void g(int, void (^)(void)); +extern int fuzzys; // expected-note {{'fuzzys' declared here}} + +static void f(void *v) { + g(fuzzy, ^{ // expected-error {{did you mean 'fuzzys'}} + int i = h(v); + }); +} + _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits