Hi, When I try to compile following in sparse-llvm: int main(const char *argv[]) { int values[5]; values[0] = 9; values[1] = 8; values[2] = 7; values[3] = 6; values[4] = 5; int *p = &values[4]; return (*p == 5) ? 0 : 1; } I get: @values = external global [5 x i32] define i32 @main(i8**) { L0: store i32 9, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @values, i32 0, i32 0) store i32 8, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([5 x i32]* @values to i8*), i64 4) to i32*) store i32 7, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([5 x i32]* @values to i8*), i64 8) to i32*) store i32 6, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([5 x i32]* @values to i8*), i64 12) to i32*) store i32 5, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([5 x i32]* @values to i8*), i64 16) to i32*) ret i32 0 } Here 'values' has been defined above as external global, whereas it should be allocated on the stack. Regards Dibyendu -- 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