Fix compiler warning in mul_var_short().
authorDean Rasheed <[email protected]>
Mon, 26 Aug 2024 10:00:20 +0000 (11:00 +0100)
committerDean Rasheed <[email protected]>
Mon, 26 Aug 2024 10:00:20 +0000 (11:00 +0100)
Some compilers (e.g., gcc before version 7) mistakenly think "carry"
might be used uninitialized.

Reported by Tom Lane, per various buildfarm members, e.g. arowana.

src/backend/utils/adt/numeric.c

index 44d88e900792f8b58d336dc72158f87fcef45411..15b517ba988bf3e6c9b249234681c324aba91e74 100644 (file)
@@ -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;