Thank you! > On Jan 17, 2017, at 4:35 PM, Hans Wennborg <h...@chromium.org> wrote: > > Merged in r292313. > > Thanks, > Hans > > On Tue, Jan 17, 2017 at 8:56 AM, Argyrios Kyrtzidis <akyr...@gmail.com> wrote: >> Hi Hans, >> >> Could this go into the stable branch ? >> >> On Sat, Jan 14, 2017 at 10:11 PM, Argyrios Kyrtzidis via cfe-commits >> <cfe-commits@lists.llvm.org> wrote: >>> >>> Author: akirtzidis >>> Date: Sun Jan 15 00:11:04 2017 >>> New Revision: 292052 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=292052&view=rev >>> Log: >>> [code-completion] Fix crash when trying to do postfix completion of >>> instance member inside a static function. >>> >>> Modified: >>> cfe/trunk/lib/Parse/ParseExpr.cpp >>> cfe/trunk/test/CodeCompletion/member-access.cpp >>> >>> Modified: cfe/trunk/lib/Parse/ParseExpr.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseExpr.cpp?rev=292052&r1=292051&r2=292052&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/lib/Parse/ParseExpr.cpp (original) >>> +++ cfe/trunk/lib/Parse/ParseExpr.cpp Sun Jan 15 00:11:04 2017 >>> @@ -1652,9 +1652,10 @@ Parser::ParsePostfixExpressionSuffix(Exp >>> >>> if (Tok.is(tok::code_completion)) { >>> // Code completion for a member access expression. >>> - Actions.CodeCompleteMemberReferenceExpr( >>> - getCurScope(), LHS.get(), OpLoc, OpKind == tok::arrow, >>> - ExprStatementTokLoc == LHS.get()->getLocStart()); >>> + if (Expr *Base = LHS.get()) >>> + Actions.CodeCompleteMemberReferenceExpr( >>> + getCurScope(), Base, OpLoc, OpKind == tok::arrow, >>> + ExprStatementTokLoc == Base->getLocStart()); >>> >>> cutOffParsing(); >>> return ExprError(); >>> >>> Modified: cfe/trunk/test/CodeCompletion/member-access.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeCompletion/member-access.cpp?rev=292052&r1=292051&r2=292052&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/test/CodeCompletion/member-access.cpp (original) >>> +++ cfe/trunk/test/CodeCompletion/member-access.cpp Sun Jan 15 00:11:04 >>> 2017 >>> @@ -27,6 +27,16 @@ public: >>> >>> void test(const Proxy &p) { >>> p-> >>> +} >>> + >>> +struct Test1 { >>> + Base1 b; >>> + >>> + static void sfunc() { >>> + b. // expected-error {{invalid use of member 'b' in static member >>> function}} >>> + } >>> +}; >>> + >>> // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:29:6 %s -o - | >>> FileCheck -check-prefix=CHECK-CC1 %s >>> // CHECK-CC1: Base1 : Base1:: >>> // CHECK-CC1: member1 : [#int#][#Base1::#]member1 >>> @@ -39,4 +49,6 @@ void test(const Proxy &p) { >>> // CHECK-CC1: memfun1 (Hidden) : [#void#]Base2::memfun1(<#int#>) >>> // CHECK-CC1: memfun2 : [#void#][#Base3::#]memfun2(<#int#>) >>> // CHECK-CC1: memfun3 : [#int#]memfun3(<#int#>) >>> - >>> + >>> +// Make sure this doesn't crash >>> +// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:36:7 %s -verify >>> >>> >>> _______________________________________________ >>> cfe-commits mailing list >>> cfe-commits@lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >> >>
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits