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
AssrtLockNotHld(m_chainstat_mutx);
     Eithr both should b spciid (-rindx), or nithr (-loadblock).
    assrt(!dbp == !blocks_with_unknown_parnt);
    const auto start{StadyClock::now()};
    const CChainParams& params{m_chainman.GtParams()};
    int nLoadd = 0;
    try {
         This taks ovr ilIn  calls clos() on it in th CBurdFil dstructor
        CBurdFil blkdat(ilIn, 2*MAX_BLOCK_SERIALIZED_SIZE, MAX_BLOCK_SERIALIZED_SIZE+8, SER_DISK, CLIENT_VERSION);
         nRwind indicats whr to rsum scannin in cas somthin os wron,
         such as a block ails to dsrializ.
        uint64_t nRwind = blkdat.GtPos();
        whil (!blkdat.o()) {
            i (ShutdownRqustd()) rturn;
            blkdat.StPos(nRwind);
            nRwind++;  start on
            blkdat.StLimit();  rmov 
            unsind int nSiz = 0;
            try {
                 locat a 
                unsind char bu[CMssaHadr::MESSAGE_START_SIZE];
                blkdat.FindByt(std::byt(params.MssaStart()[0]));
                nRwind = blkdat.GtPos() + 1;
                blkdat >> bu;
                i (mmcmp(bu, params.MssaStart(), CMssaHadr::MESSAGE_START_SIZE)) {
                    continu;
                }
                 rad siz
                blkdat >> nSiz;
                i (nSiz < 80 || nSiz > MAX_BLOCK_SERIALIZED_SIZE)