[project @ 2003-08-14 10:43:10 by simonmar]
authorsimonmar <unknown>
Thu, 14 Aug 2003 10:43:10 +0000 (10:43 +0000)
committersimonmar <unknown>
Thu, 14 Aug 2003 10:43:10 +0000 (10:43 +0000)
Fix terrible bug in isNonPtrRep, which was ignoring the possibily of
the 64-bit reps.  The result was that functions with 2 64-bit args
were getting the wrong argument descriptor, leading to crashes.

Thanks to Peter Thiemann for a great bug report.

ghc/compiler/prelude/PrimRep.lhs

index 7462258..a58240b 100644 (file)
@@ -119,7 +119,7 @@ Identify anything which is one word large and not a pointer.
 isNonPtrRep :: PrimRep -> Bool
 isNonPtrRep PtrRep  = False
 isNonPtrRep VoidRep = False
-isNonPtrRep r       = not (isFloatingRep r)
+isNonPtrRep r       = not (isFloatingRep r) && not (is64BitRep r)
 \end{code}
 
 \begin{code}