MNT: Bump build - for compilation against newer version of clang
A couple of users have reported Mat::operator(): index out of bounds
errors when running melodic on macOS Intel/M1. I was able to reproduce the error on my Intel macbook:
- https://www.jiscmail.ac.uk/cgi-bin/wa-jisc.exe?A2=FSL;21323fe8.2308
- https://www.jiscmail.ac.uk/cgi-bin/wa-jisc.exe?A2=FSL;bf9826c6.2308
The error was being triggered by an innocuous-looking line of code: https://git.fmrib.ox.ac.uk/fsl/melodic/-/blob/2111.3/meldata.cc?ref_type=tags#L1219 - specifically, the EVP(1, numComp)
statement was triggering the error.
Debugging showed that the internal program state was consistent - the internal arma::mat
array had the correct shape, and the requested row/column were within bounds.
I was only able to reproduce the error when compiling at -O2
optimisation level - the error did not occur when compiling at -O0
, -O1
or -O3
. Furthermore, the error went away when I compiled with a newer version of llvm/clang (16.0.6) - the binary which was triggering the error was compiled with llvm/clang 15.0.7.
So at this point I'm going to assume that this was caused by a bug in one of the optimisation pathways employed by llvm. Rebuilding with a newer version should resolve the problem. Once the rebuilt package has been published, affected users can update their installation by running update_fsl_package fsl-melodic
.