diff options
| -rw-r--r-- | sparse-llvm.c | 2 | ||||
| -rw-r--r-- | validation/backend/load-type.c | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/sparse-llvm.c b/sparse-llvm.c index e4929e9b..6f2fbd69 100644 --- a/sparse-llvm.c +++ b/sparse-llvm.c @@ -615,7 +615,7 @@ static void output_op_load(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"); /* perform load */ target = LLVMBuildLoad(fn->builder, addr, "load_target"); diff --git a/validation/backend/load-type.c b/validation/backend/load-type.c new file mode 100644 index 00000000..80416cad --- /dev/null +++ b/validation/backend/load-type.c @@ -0,0 +1,12 @@ +extern struct _IO_FILE *stdin; + +static void sub(struct _IO_FILE *in) {} + +static void test(void) { + sub(stdin); +} + +/* + * check-name: Type of loaded objects + * check-command: ./sparsec -c $file -o tmp.o + */ |
