Sparse front-end generates SYM_PTR with SYM_BASETYPE with bit_size set to -1 for "void *" pointers. We currently map that to LLVMVoidType() but that no longer works with LLVM Subversion trunk: $ ./sparse-llvm validation/backend/struct.c sparse-llvm: Type.cpp:676: static llvm::PointerType* llvm::PointerType::get(llvm::Type*, unsigned int): Assertion `isValidElementType(EltTy) && "Invalid type for pointer element!"' failed. Aborted Fix the issue by switching to LLVMIntType(bits_per_pointer) in sym_basetype_type(). Cc: Christopher Li <sparse@xxxxxxxxxxx> Cc: Jeff Garzik <jgarzik@xxxxxxxxxx> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- sparse-llvm.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/sparse-llvm.c b/sparse-llvm.c index a85dfea..ec46a04 100644 --- a/sparse-llvm.c +++ b/sparse-llvm.c @@ -80,7 +80,7 @@ static LLVMTypeRef sym_basetype_type(struct symbol *sym) } else { switch (sym->bit_size) { case -1: - ret = LLVMVoidType(); + ret = LLVMIntType(bits_in_pointer); break; case 8: ret = LLVMInt8Type(); -- 1.7.6.4 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html