1// RUN: %clang_cc1 -analyze -analyzer-checker=core -fobjc-arc -verify %s 2// expected-no-diagnostics 3@interface NSObject 4@end 5@interface NSString : NSObject 6- (id)lastPathComponent; 7@end 8int getBool(); 9int *getPtr(); 10int foo() { 11 int r = 0; 12 NSString *filename = @"filename"; 13 for (int x = 0; x< 10; x++) { 14 int *p = getPtr(); 15 // Liveness info is not computed correctly due to the following expression. 16 // This happens due to CFG being special cased for short circuit operators. 17 // Note, due to ObjC method call, the outermost logical operator is wrapped in ExprWithCleanups. 18 // PR18159 19 if ((p != 0) && (getBool()) && ([filename lastPathComponent]) && (getBool())) { 20 r = *p; // no-warning 21 } 22 } 23 return r; 24}