Follow PackageTarget change in byte code generator
authorBen.Lippmeier@anu.edu.au <unknown>
Sat, 2 Jan 2010 09:30:46 +0000 (09:30 +0000)
committerBen.Lippmeier@anu.edu.au <unknown>
Sat, 2 Jan 2010 09:30:46 +0000 (09:30 +0000)
compiler/ghci/ByteCodeGen.lhs

index ad94e0c..99e896c 100644 (file)
@@ -1028,6 +1028,20 @@ generateCCall d0 s p (CCallSpec target cconv _) fn args_r_to_l
             = case target of
                  DynamicTarget
                     -> return (False, panic "ByteCodeGen.generateCCall(dyn)")
+
+                 PackageTarget target _
+                    -> do res <- ioToBc (lookupStaticPtr stdcall_adj_target)
+                          return (True, res)
+                   where
+                      stdcall_adj_target
+#ifdef mingw32_TARGET_OS
+                          | StdCallConv <- cconv
+                          = let size = fromIntegral a_reps_sizeW * wORD_SIZE in
+                            mkFastString (unpackFS target ++ '@':show size)
+#endif
+                          | otherwise
+                          = target
+
                  StaticTarget target
                     -> do res <- ioToBc (lookupStaticPtr stdcall_adj_target)
                           return (True, res)