[project @ 2003-09-19 15:58:00 by simonmar]
authorsimonmar <unknown>
Fri, 19 Sep 2003 15:58:00 +0000 (15:58 +0000)
committersimonmar <unknown>
Fri, 19 Sep 2003 15:58:00 +0000 (15:58 +0000)
The whole family of index<blah>OffForeignPtr# primops has been broken
for some time now.  This commit fixes them.

I'm tempted to get rid of them altogether, since arguably the
withForeignPtr interface subsumes all this.  But if you want to index
off a ForeignPtr in pure code, you have to use unsafePerformIO, which
is hard to optimise away (GHC doesn't do it), so these primops still
have their uses.

ghc/compiler/absCSyn/AbsCUtils.lhs

index 7dfd8ee..f842d19 100644 (file)
@@ -663,7 +663,7 @@ mk_OSBI_ref offw rep base idx
 
 
 doIndexOffForeignObjOp maybe_post_read_cast rep res addr idx
-   = mkBasicIndexedRead fixedHdrSize maybe_post_read_cast rep res addr idx
+   = mkBasicIndexedRead 0 maybe_post_read_cast rep res (mkDerefOff WordRep addr fixedHdrSize) idx
 
 doIndexOffAddrOp maybe_post_read_cast rep res addr idx
    = mkBasicIndexedRead 0 maybe_post_read_cast rep res addr idx