// RUN: %clang_cc1 -std=c++11 -fsyntax-only -Wno-objc-root-class -analyze -analyzer-checker=core,debug.ExprInspection -analyzer-config inline-lambdas=true -verify %s int clang_analyzer_eval(int); @interface Super - (void)superMethod; @end @interface Sub : Super { int _ivar1; int _ivar2; } @end @implementation Sub - (void)callMethodOnSuperInCXXLambda; { // Explicit capture. [self]() { [super superMethod]; }(); // Implicit capture. [=]() { [super superMethod]; }(); } - (void)swapIvars { int tmp = _ivar1; _ivar1 = _ivar2; _ivar2 = tmp; } - (void)callMethodOnSelfInCXXLambda; { _ivar1 = 7; _ivar2 = 8; [self]() { [self swapIvars]; }(); clang_analyzer_eval(_ivar1 == 8); // expected-warning{{TRUE}} clang_analyzer_eval(_ivar2 == 7); // expected-warning{{TRUE}} } @end