testsuite, objective-c: Fix a testcase on Windows.
authorIain Sandoe <iain@sandoe.co.uk>
Wed, 15 Feb 2023 10:47:51 +0000 (10:47 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Wed, 15 Feb 2023 10:51:35 +0000 (10:51 +0000)
Windows needs to use uintptr_t to represent an integral pointer type (long
is not the right type there).

Patch from 'nightstike'.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
gcc/testsuite/ChangeLog:

* obj-c++.dg/proto-lossage-4.mm: Use uintptr_t for integral pointer
representations.

gcc/testsuite/obj-c++.dg/proto-lossage-4.mm

index 2e753d1..ff053be 100644 (file)
@@ -6,24 +6,26 @@
 /* One-line substitute for objc/objc.h */
 typedef struct objc_object { struct objc_class *class_pointer; } *id;
 
+typedef __UINTPTR_TYPE__ uintptr_t;
+
 @protocol Proto
-- (long)someValue;
+- (uintptr_t)someValue;
 @end
 
 @interface Obj
-- (long)anotherValue;
+- (uintptr_t)anotherValue;
 @end
 
-long foo(void) {
-  long receiver = 2;
+uintptr_t foo(void) {
+  uintptr_t receiver = 2;
   Obj *objrcvr;
   Obj <Proto> *objrcvr2;
 
   /* NB: Since 'receiver' is an invalid ObjC message receiver, the compiler
      should warn but then search for methods as if we were messaging 'id'.  */
 
-  receiver += [receiver someValue]; /* { dg-warning "invalid receiver type .long int." } */
-  receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .long int." } */
+  receiver += [receiver someValue]; /* { dg-warning "invalid receiver type .uintptr_t." } */
+  receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .uintptr_t." } */
 
   receiver += [(Obj *)receiver someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
 /* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */