Fix negate op not working for -0 in llvm backend
[ghc-hetmet.git] / compiler / llvmGen / LlvmCodeGen / Data.hs
index a5b82aa..e3d2adc 100644 (file)
@@ -71,7 +71,7 @@ resolveLlvmData _ env (lbl, alias, unres) =
         label          = strCLabel_llvm lbl
         link           = if (externallyVisibleCLabel lbl)
                             then ExternallyVisible else Internal
-        glob           = LMGlobalVar label alias link
+        glob           = LMGlobalVar label alias link Nothing Nothing
     in (env', (refs' ++ [(glob, struct)], [alias]))
 
 
@@ -114,7 +114,8 @@ resData env (Left cmm@(CmmLabel l)) =
             -- Referenced data exists in this module, retrieve type and make
             -- pointer to it.
             Just ty' ->
-                let var = LMGlobalVar label (LMPointer ty') ExternallyVisible
+                let var = LMGlobalVar label (LMPointer ty')
+                            ExternallyVisible Nothing Nothing
                     ptr  = LMStaticPointer var
                 in (env, LMPtoI ptr lmty, [Nothing])
 
@@ -167,7 +168,7 @@ genStaticLit (CmmInt i w)
     = Right $ LMStaticLit (LMIntLit i (LMInt $ widthInBits w))
 
 genStaticLit (CmmFloat r w)
-    = Right $ LMStaticLit (LMFloatLit r (widthToLlvmFloat w))
+    = Right $ LMStaticLit (LMFloatLit (fromRational r) (widthToLlvmFloat w))
 
 -- Leave unresolved, will fix later
 genStaticLit c@(CmmLabel        _    ) = Left $ c