]> granicus.if.org Git - clang/commitdiff
Fix 32-bit buildbots by removing tests that are dependent on pointer-size comparisons.
authorAndrew Kaylor <andrew.kaylor@intel.com>
Tue, 19 Sep 2017 21:43:01 +0000 (21:43 +0000)
committerAndrew Kaylor <andrew.kaylor@intel.com>
Tue, 19 Sep 2017 21:43:01 +0000 (21:43 +0000)
The recently behavior in the code that these tests were meant to be checking will be ammended as soon as a suitable change can be properly reviewed.

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

test/CodeGen/nullptr-arithmetic.c
test/Sema/pointer-addition.c
test/SemaCXX/nullptr-arithmetic.cpp

index 4c62df132ded965a9ea27b33707ea83503a7d63a..0c8ad5e34dc96eede23ff750866f925e33c12e6d 100644 (file)
@@ -17,26 +17,18 @@ int8_t *test1(intptr_t n) {
 // CHECK: inttoptr
 // CHECK-NOT: getelementptr
 
-// This doesn't meet the idiom because the offset type isn't pointer-sized.
-int8_t *test2(int8_t n) {
-  return NULLPTRI8 + n;
-}
-// CHECK-LABEL: test2
-// CHECK: getelementptr
-// CHECK-NOT: inttoptr
-
 // This doesn't meet the idiom because the element type is larger than a byte.
-int16_t *test3(intptr_t n) {
+int16_t *test2(intptr_t n) {
   return (int16_t*)0 + n;
 }
-// CHECK-LABEL: test3
+// CHECK-LABEL: test2
 // CHECK: getelementptr
 // CHECK-NOT: inttoptr
 
 // This doesn't meet the idiom because the offset is subtracted.
-int8_t* test4(intptr_t n) {
+int8_t* test3(intptr_t n) {
   return NULLPTRI8 - n;
 }
-// CHECK-LABEL: test4
+// CHECK-LABEL: test3
 // CHECK: getelementptr
 // CHECK-NOT: inttoptr
index 00778996f4ab5305e5794dc31951d9867654792b..3e77cbde477cde35a229aa945971772ca5b6de68 100644 (file)
@@ -27,6 +27,4 @@ void a(S* b, void* c) {
   // Cases that don't match the GNU inttoptr idiom get a different warning.
   f = (char*)0 - i; // expected-warning {{performing pointer arithmetic on a null pointer has undefined behavior}}
   int *g = (int*)0 + i; // expected-warning {{performing pointer arithmetic on a null pointer has undefined behavior}}
-  unsigned char j = (unsigned char)b;
-  f = (char*)0 + j; // expected-warning {{performing pointer arithmetic on a null pointer has undefined behavior}}
 }
index bcb99b6eed81ab6dc5c016524d572e0ffed291dd..7d11e268f2545ebeea94ec6bc3b9596b6922cbe0 100644 (file)
@@ -2,7 +2,7 @@
 
 #include <stdint.h>
 
-void f(intptr_t offset, int8_t b) {
+void f(intptr_t offset) {
   // A zero offset from a nullptr is OK.
   char *f = (char*)nullptr + 0;
   int *g = (int*)0 + 0;
@@ -13,7 +13,6 @@ void f(intptr_t offset, int8_t b) {
   // Cases that don't match the GNU inttoptr idiom get a different warning.
   f = (char*)0 - offset; // expected-warning {{performing pointer arithmetic on a null pointer has undefined behavior if the offset is nonzero}}
   g = (int*)0 + offset; // expected-warning {{performing pointer arithmetic on a null pointer has undefined behavior if the offset is nonzero}}
-  f = (char*)0 + b; // expected-warning {{performing pointer arithmetic on a null pointer has undefined behavior if the offset is nonzero}}
 }
 
 // Value-dependent pointer arithmetic should not produce a nullptr warning.