aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPekka Enberg <penberg@kernel.org>2011-08-29 19:26:17 +0300
committerPekka Enberg <penberg@kernel.org>2011-08-29 19:34:21 +0300
commit70b2c17c095d393a7313c0681e3d6cc58bb01147 (patch)
tree10d7a6b2dc0a1f1836f36d2564c72a445a66a38c
parentdeb11bd4ee6ed46bce6a5e35a69ada519d81a0a8 (diff)
downloadsparse-70b2c17c095d393a7313c0681e3d6cc58bb01147.tar.gz
sparse, llvm: Cleanup output_data()
Signed-off-by: Pekka Enberg <penberg@kernel.org>
-rw-r--r--sparse-llvm.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sparse-llvm.c b/sparse-llvm.c
index f5771ba1..f89f7a73 100644
--- a/sparse-llvm.c
+++ b/sparse-llvm.c
@@ -808,15 +808,17 @@ static void output_fn(LLVMModuleRef module, struct entrypoint *ep)
static int output_data(LLVMModuleRef module, struct symbol *sym)
{
struct expression *initializer = sym->initializer;
- unsigned long long initial_value = 0;
+ LLVMValueRef initial_value;
LLVMValueRef data;
const char *name;
if (initializer) {
if (initializer->type == EXPR_VALUE)
- initial_value = initializer->value;
+ initial_value = LLVMConstInt(symbol_type(sym), initializer->value, 1);
else
assert(0);
+ } else {
+ initial_value = LLVMConstInt(symbol_type(sym), 0, 1);
}
name = show_ident(sym->ident);
@@ -825,7 +827,7 @@ static int output_data(LLVMModuleRef module, struct symbol *sym)
LLVMSetLinkage(data, data_linkage(sym));
- LLVMSetInitializer(data, LLVMConstInt(symbol_type(sym), initial_value, 1));
+ LLVMSetInitializer(data, initial_value);
return 0;
}