Use the correct libffi type for pointers
authorSimon Marlow <simonmar@microsoft.com>
Fri, 4 Jan 2008 13:19:36 +0000 (13:19 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Fri, 4 Jan 2008 13:19:36 +0000 (13:19 +0000)
compiler/deSugar/DsForeign.lhs
rts/Adjustor.c

index d7096ae..05ff8bd 100644 (file)
@@ -656,7 +656,7 @@ primTyDescChar ty
      WordRep     -> unsigned_word
      Int64Rep    -> 'L'
      Word64Rep   -> 'l'
-     AddrRep     -> unsigned_word
+     AddrRep     -> 'p'
      FloatRep    -> 'f'
      DoubleRep   -> 'd'
      _           -> pprPanic "primTyDescChar" (ppr ty)
index 03fb5d9..8c38df6 100644 (file)
@@ -73,6 +73,7 @@ static ffi_type * char_to_ffi_type(char c)
     case 's':  return &ffi_type_uint16;
     case 'B':  return &ffi_type_sint8;
     case 'b':  return &ffi_type_uint8;
+    case 'p':  return &ffi_type_pointer;
     default:   barf("char_to_ffi_type: unknown type '%c'", c);
     }
 }