diff --git a/gcc/optabs.c b/gcc/optabs.c
index 97983a864b1309aa1f8486022830a308a73f63d4..a0d6645e595415c68d278f6a35d32197cb6f982d 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -1512,7 +1512,8 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
 	  op1x = convert_to_mode (word_mode, op1, 1);
 	}
 
-      if (GET_MODE (op0) != mode)
+      if (GET_MODE (op0) != VOIDmode
+	  && GET_MODE (op0) != mode)
 	op0 = convert_to_mode (mode, op0, unsignedp);
 
       /* Pass 1 for NO_QUEUE so we don't lose any increments