sim: m68hc11: clean up pointer casts
authorMike Frysinger <vapier@gentoo.org>
Mon, 1 Nov 2021 04:07:15 +0000 (00:07 -0400)
committerMike Frysinger <vapier@gentoo.org>
Mon, 1 Nov 2021 04:07:15 +0000 (00:07 -0400)
The void *data field is used to past arbitrary data between event
handlers, and these are using it to pass an integer.  Fix up the
casts to avoid using (long) to cast to/from pointers since there
is no guarantee that's the right size.

sim/m68hc11/dv-m68hc11tim.c

index 2c2e523da11ff59370c8bd1f77b1e9a2109c0e21..08604d3144352286a9f72b75a6c81e7243ec1b21 100644 (file)
@@ -260,7 +260,7 @@ m68hc11tim_timer_event (struct hw *me, void *data)
   controller = hw_data (me);
   sd         = hw_system (me);
   cpu        = STATE_CPU (sd, 0);
-  type       = (enum event_type) ((long) data) & 0x0FF;
+  type       = (enum event_type) ((uintptr_t) data) & 0x0FF;
   events     = STATE_EVENTS (sd);
 
   delay = 0;
@@ -280,7 +280,7 @@ m68hc11tim_timer_event (struct hw *me, void *data)
       eventp = &controller->rti_timer_event;
       delay  = controller->rti_prev_interrupt + controller->rti_delay;
       
-      if (((long) (data) & 0x0100) == 0)
+      if (((uintptr_t) data & 0x0100) == 0)
         {
           cpu->ios[M6811_TFLG2] |= M6811_RTIF;
           check_interrupt = 1;
@@ -308,7 +308,7 @@ m68hc11tim_timer_event (struct hw *me, void *data)
       delay += events->nr_ticks_to_process;
 
       eventp = &controller->tof_timer_event;
-      if (((long) (data) & 0x100) == 0)
+      if (((uintptr_t) data & 0x100) == 0)
         {
           cpu->ios[M6811_TFLG2] |= M6811_TOF;
           check_interrupt = 1;