aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--sparse-llvm.c2
-rw-r--r--validation/backend/store-type.c12
2 files changed, 13 insertions, 1 deletions
diff --git a/sparse-llvm.c b/sparse-llvm.c
index 00ace6e8..9b768b54 100644
--- a/sparse-llvm.c
+++ b/sparse-llvm.c
@@ -583,7 +583,7 @@ static void output_op_store(struct function *fn, struct instruction *insn)
/* convert address back to pointer */
addr = LLVMBuildIntToPtr(fn->builder, addr_i,
- LLVMPointerType(int_type, 0), "addr");
+ LLVMTypeOf(src_p), "addr");
target_in = pseudo_to_value(fn, insn, insn->target);
diff --git a/validation/backend/store-type.c b/validation/backend/store-type.c
new file mode 100644
index 00000000..9e2ce73f
--- /dev/null
+++ b/validation/backend/store-type.c
@@ -0,0 +1,12 @@
+struct foo;
+static struct foo *var;
+
+static void set(struct foo *f)
+{
+ var = f;
+}
+
+/*
+ * check-name: Type of stored objects
+ * check-command: ./sparsec -c $file -o tmp.o
+ */