Fix the type of conditionals involving void*

From PR1989.

Simplified testcase:
struct a; int a() {0 ? (void*)1 : 0 ? 0 : (struct a*)0;}

crashes with clang -emit-llvm.

Patch okay?

-Eli

conditionaltypefix.txt (1.68 KB)