summaryrefslogtreecommitdiff
path: root/compiler/llvmGen/LlvmCodeGen/Data.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/llvmGen/LlvmCodeGen/Data.hs')
-rw-r--r--compiler/llvmGen/LlvmCodeGen/Data.hs10
1 files changed, 6 insertions, 4 deletions
diff --git a/compiler/llvmGen/LlvmCodeGen/Data.hs b/compiler/llvmGen/LlvmCodeGen/Data.hs
index 8e42149dce..eae8246138 100644
--- a/compiler/llvmGen/LlvmCodeGen/Data.hs
+++ b/compiler/llvmGen/LlvmCodeGen/Data.hs
@@ -38,11 +38,12 @@ structStr = fsLit "_struct"
-- done by 'resolveLlvmData'.
genLlvmData :: LlvmEnv -> (Section, CmmStatics) -> LlvmUnresData
genLlvmData env (sec, Statics lbl xs) =
- let static = map genData xs
+ let dflags = getDflags env
+ static = map genData xs
label = strCLabel_llvm env lbl
types = map getStatTypes static
- getStatTypes (Left x) = cmmToLlvmType $ cmmLitType x
+ getStatTypes (Left x) = cmmToLlvmType $ cmmLitType dflags x
getStatTypes (Right x) = getStatType x
strucTy = LMStruct types
@@ -106,9 +107,10 @@ resData :: LlvmEnv -> UnresStatic -> (LlvmEnv, LlvmStatic, [LMGlobal])
resData env (Right stat) = (env, stat, [])
resData env (Left cmm@(CmmLabel l)) =
- let label = strCLabel_llvm env l
+ let dflags = getDflags env
+ label = strCLabel_llvm env l
ty = funLookup label env
- lmty = cmmToLlvmType $ cmmLitType cmm
+ lmty = cmmToLlvmType $ cmmLitType dflags cmm
in case ty of
-- Make generic external label defenition and then pointer to it
Nothing ->