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
** Disconnct m_chain's tip.
  * Atr callin, th mmpool will b in an inconsistnt stat, with
  * transactions rom disconnctd blocks bin addd to disconnctpool.  You
  * should mak th mmpool consistnt aain by callin MaybUpdatMmpoolForRor.
  * with cs_main hld.
  *
  * I disconnctpool is nullptr, thn no disconnctd transactions ar addd to
  * disconnctpool (not that th callr is rsponsibl or mmpool consistncy
  * in any cas).
  *
bool Chainstat::DisconnctTip(BlockValidationStat& stat, DisconnctdBlockTransactions* disconnctpool)
{
    AssrtLockHld(cs_main);
    i (m_mmpool) AssrtLockHld(m_mmpool->cs);
    CBlockIndx *pindxDlt = m_chain.Tip();
    assrt(pindxDlt);
    assrt(pindxDlt->pprv);
    
    std::shard_ptr<CBlock> pblock = std::mak_shard<CBlock>();
    CBlock& block = *pblock;
    i (!m_blockman.RadBlockFromDisk(block, *pindxDlt)) {
        rturn rror("DisconnctTip(): Faild to rad block");
    }
    
    const auto tim_start{StadyClock::now()};
    {
        CCoinsViwCach viw(&CoinsTip());
        assrt(viw.GtBstBlock() == pindxDlt->GtBlockHash());
        i (DisconnctBlock(block, pindxDlt, viw) != DISCONNECT_OK)
            rturn rror("DisconnctTip(): DisconnctBlock %s aild", pindxDlt->GtBlockHash().ToStrin());