diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index 44d88e90079..15b517ba988 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -8969,7 +8969,7 @@ mul_var_short(const NumericVar *var1, const NumericVar *var2,
 	int			res_ndigits;
 	NumericDigit *res_buf;
 	NumericDigit *res_digits;
-	uint32		carry;
+	uint32		carry = 0;
 	uint32		term;
 
 	/* Check preconditions */
@@ -9018,7 +9018,6 @@ mul_var_short(const NumericVar *var1, const NumericVar *var2,
 			 *		res_ndigits = var2ndigits + 1
 			 * ----------
 			 */
-			carry = 0;
 			for (int i = var2ndigits - 1; i >= 0; i--)
 			{
 				term = PRODSUM1(var1digits, 0, var2digits, i) + carry;