summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-04-29 16:03:59 +0000
committerTed Kremenek <kremenek@apple.com>2009-04-29 16:03:59 +0000
commitbcf597d2e5789bf1df0031a44a2fd73bae3755c1 (patch)
tree9d218bf5f717f1cd7cd7629b2cf5ca219bbd52ab
parent3941d22a98dbf7e23159a0655a4640fb3e76cc9e (diff)
downloadbcm5719-llvm-bcf597d2e5789bf1df0031a44a2fd73bae3755c1.tar.gz
bcm5719-llvm-bcf597d2e5789bf1df0031a44a2fd73bae3755c1.zip
Add test case for transfer function logic for OSCompareAndSwap32Barrier.
llvm-svn: 70383
-rw-r--r--clang/test/Analysis/NSString.m18
1 files changed, 14 insertions, 4 deletions
diff --git a/clang/test/Analysis/NSString.m b/clang/test/Analysis/NSString.m
index 3f2b09189e9..63b8ef83018 100644
--- a/clang/test/Analysis/NSString.m
+++ b/clang/test/Analysis/NSString.m
@@ -1,9 +1,9 @@
-// RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=basic -verify %s &&
-// RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=range -verify %s
+// RUN: clang-cc -arch i386 -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=basic -verify %s &&
+// RUN: clang-cc -arch i386 -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=range -verify %s
-// NOTWORK: clang-cc -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=basic -verify %s &&
-// NOTWORK: clang-cc -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=range -verify %s
+// NOTWORK: clang-cc -arch i386 -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=basic -verify %s &&
+// NOTWORK: clang-cc -arch i386 -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=range -verify %s
//===----------------------------------------------------------------------===//
// The following code is reduced using delta-debugging from
@@ -14,6 +14,7 @@
// both svelte and portable to non-Mac platforms.
//===----------------------------------------------------------------------===//
+typedef int int32_t;
typedef const void * CFTypeRef;
typedef const struct __CFString * CFStringRef;
typedef const struct __CFAllocator * CFAllocatorRef;
@@ -235,6 +236,15 @@ void testOSCompareAndSwap() {
[old release];
}
+void testOSCompareAndSwap32Barrier() {
+ NSString *old = 0;
+ NSString *s = [[NSString alloc] init]; // no-warning
+ if (!OSAtomicCompareAndSwap32Barrier((int32_t) 0, (int32_t) s, (int32_t*) &old))
+ [s release];
+ else
+ [old release];
+}
+
void test_objc_atomicCompareAndSwap() {
NSString *old = 0;
NSString *s = [[NSString alloc] init]; // no-warning
OpenPOWER on IntegriCloud