When generating C, don't pretend functions are data
[ghc-hetmet.git] / compiler / nativeGen / MachCodeGen.hs
index d16962c..d94a906 100644 (file)
@@ -40,6 +40,7 @@ import CLabel
 import ClosureInfo     ( C_SRT(..) )
 
 -- The rest:
+import BasicTypes
 import StaticFlags     ( opt_PIC )
 import ForeignCall     ( CCallConv(..) )
 import OrdList
@@ -3408,7 +3409,7 @@ outOfLineFloatOp mop res args
           code2 <- stmtToInstrs (CmmAssign (CmmLocal res) (CmmReg (CmmLocal tmp)))
           return (code1 `appOL` code2)
   where
-       lbl = mkForeignLabel fn Nothing False
+       lbl = mkForeignLabel fn Nothing False IsFunction
 
        fn = case mop of
              MO_F32_Sqrt  -> fsLit "sqrtf"
@@ -3841,7 +3842,7 @@ outOfLineFloatOp mop
        
        dflags  <- getDynFlagsNat
        mopExpr <- cmmMakeDynamicReference dflags addImportNat CallReference 
-               $  mkForeignLabel functionName Nothing True
+               $  mkForeignLabel functionName Nothing True IsFunction
 
        let mopLabelOrExpr 
                = case mopExpr of
@@ -4112,7 +4113,7 @@ genCCall target dest_regs argsAndHints
             do
                 dflags <- getDynFlagsNat
                 mopExpr <- cmmMakeDynamicReference dflags addImportNat CallReference $
-                              mkForeignLabel functionName Nothing True
+                              mkForeignLabel functionName Nothing True IsFunction
                 let mopLabelOrExpr = case mopExpr of
                         CmmLit (CmmLabel lbl) -> Left lbl
                         _ -> Right mopExpr