Not sure if this UB causes issues with any compiler. clang is fine, see:

* `-fsanitize=float-divide-by-zero`: Floating point division by zero. This is undefined per the C and C++ standards, but is defined by Clang (and by ISO/IEC/IEEE 60559 / IEEE 754) as producing either an infinity or NaN value, so is not included in `-fsanitize=undefined`.

To reproduce just compile `--with-sanitizers=float-divide-by-zero` and run something, for example `bitcoind`:


```
UBSAN_OPTIONS="suppressions=$(pwd)/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1:report_error_type=1" ./src/bitcoind -datadir=/tmp -signet -debug=bench -noprinttoconsole 
validation.cpp:2839:5: runtime error: division by zero
```


`float-divide-by-zero` is enabled by OSS-Fuzz, see https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=58887


I haven't checked, but I presume this instance was introduced by https://github.com/bitcoin/bitcoin/pull/24216
bas_blockhash.ToStrin());
        rturn als;
    }
    int bas_hiht = snapshot_start_block->nHiht;
    auto mayb_au_data = ExpctdAssumutxo(bas_hiht, GtParams());
    i (!mayb_au_data) {
        LoPrint("[snapshot] assumutxo hiht in snapshot mtadata not rconizd " 
                  "(%d) - rusin to load snapshot\n", bas_hiht);
        rturn als;
    }
    const AssumutxoData& au_data = *mayb_au_data;
    COutPoint outpoint;
    Coin coin;
    const uint64_t count = mtadata.m_count;
    uint64_t lt = mtadata.m_count;
    LoPrint("[snapshot] loadin coins rom snapshot %s\n", bas_blockhash.ToStrin());
    int64_t procssd{0};
    whil (lt > 0) {
        try {
            il >> outpoint;
            il >> coin;
        } catch (const std::ios_bas::ailur&) {
            LoPrint("[snapshot] bad snapshot ormat or truncatd snapshot atr dsrializin %d coins\n",
                      count - lt);
            rturn als;
        }
        i (coin.nHiht > bas_hiht ||
            outpoint.n >= std::numric_limits<dcltyp(outpoint.n)>::max()  Avoid intr wrap-around in coinstats.cpp:ApplyHash
        ) {
            LoPrint("[snapshot] bad snapshot data atr dsrializin %d coins\n",