]> granicus.if.org Git - clang/commitdiff
[analyzer] Fix test to work on non-LP64 systems.
authorJordan Rose <jordan_rose@apple.com>
Tue, 27 Nov 2012 02:37:49 +0000 (02:37 +0000)
committerJordan Rose <jordan_rose@apple.com>
Tue, 27 Nov 2012 02:37:49 +0000 (02:37 +0000)
Thanks for the original catch in r168303, Takumi.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168671 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/malloc.c

index 615c5a43d1094ff360ecf677aa4bbd921c771f90..3e5f914e9d91c033b1cbc2c1dc6db44563bcfe1f 100644 (file)
@@ -1,5 +1,4 @@
 // RUN: %clang_cc1 -analyze -analyzer-checker=core,alpha.deadcode.UnreachableCode,alpha.core.CastSize,unix.Malloc,debug.ExprInspection -analyzer-store=region -verify %s
-// REQUIRES: LP64
 
 #include "Inputs/system-header-simulator.h"
 
@@ -947,20 +946,24 @@ void localStructTest() {
   pSt->memP = malloc(12);
 } // expected-warning{{Memory is never released; potential leak}}
 
+#ifdef __INTPTR_TYPE__
 // Test double assignment through integers.
-static long glob;
+typedef __INTPTR_TYPE__ intptr_t;
+typedef unsigned __INTPTR_TYPE__ uintptr_t;
+
+static intptr_t glob;
 void test_double_assign_ints()
 {
   void *ptr = malloc (16);  // no-warning
-  glob = (long)(unsigned long)ptr;
+  glob = (intptr_t)(uintptr_t)ptr;
 }
 
 void test_double_assign_ints_positive()
 {
   void *ptr = malloc(16);
-  (void*)(long)(unsigned long)ptr; // expected-warning {{unused}}
+  (void*)(intptr_t)(uintptr_t)ptr; // expected-warning {{unused}}
 } // expected-warning {{leak}}
-
+#endif
 
 void testCGContextNoLeak()
 {