Add test case showing the analyzer invalidates '__block' variables when the block is passed as an argument to an ObjC method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95366 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Ted Kremenek 2010-02-05 06:10:46 +00:00
Родитель 72119c478f
Коммит cada305b86
1 изменённых файлов: 13 добавлений и 0 удалений

Просмотреть файл

@ -590,6 +590,19 @@ int blocks_2(int *p, int z) {
return z;
}
// Test that the value of 'x' is considered invalidated after the block
// is passed as an argument to the message expression.
typedef void (^RDar7582031CB)(void);
@interface RDar7582031
- rdar7582031:RDar7582031CB;
@end
unsigned rdar7582031(RDar7582031 *o) {
__block unsigned x;
[o rdar7582031:^{ x = 1; }];
return x; // no-warning
}
//===----------------------------------------------------------------------===//
// <rdar://problem/7462324> - Test that variables passed using __blocks
// are not treated as being uninitialized.