Skip to content

MNT: Bump build - for compilation against newer version of clang

Paul McCarthy requested to merge paulmc-master-patch-19329 into master

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:

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.

Merge request reports

Loading