gollvm: fix buglet in Llvm_backend::conditional_expression

Never create a temporary for the conditional expression if the top
level type is void; this can crop up for conditionals of the form
"(xxx != nil ? (void)runtime_error(..) : nil)", which the front end now
generates in certain cases.

Change-Id: I0638dd59e64b456efb9509bdfbf02a8547f19159
Reviewed-on: https://go-review.googlesource.com/46415
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/llvm-gofrontend/go-llvm.cpp b/llvm-gofrontend/go-llvm.cpp
index 5bf6dcf..a699403 100644
--- a/llvm-gofrontend/go-llvm.cpp
+++ b/llvm-gofrontend/go-llvm.cpp
@@ -1601,7 +1601,7 @@
   if (else_expr) {
     Bstatement *elseStmt = nullptr;
     elseBlock = nbuilder_.mkBlock(function, novars, location);
-    if (!btype || else_expr->btype() == void_type()) {
+    if (!btype || btype == void_type() || else_expr->btype() == void_type()) {
       elseStmt = expression_statement(function, else_expr);
     } else {
       // Capture "else_expr" into temporary. Type needs to agree with