[test-suite] CLAMR: port upstream index resize fix in rezone_all (#300)

When running CLAMR with libstdc++ container checks enabled
(_GLIBCXX_DEBUG or _GLIBCXX_ASSERTIONS), Mesh::rezone_all sometimes
aborts with a std::vector<int>::operator[] assertion.

The root cause is that index is resized to new_ncells, but both the
REZONE_NO_OPTIMIZATION and optimized paths fill and read index[ic]
  for ic in [0, ncells). On net coarsening steps we have
    new_ncells = ncells + add_ncells < ncells,
so index has size new_ncells but is indexed up to ncells - 1, causing
an out-of-bounds access.

Fix this by resizing index to ncells (as done in upstream CLAMR),
because index is a map from old cells to new cells and the loops that
populate and read it always use ic < ncells.

This makes CLAMR pass under libstdc++ debug mode and assertions on
Fedora 42 with GCC 15.

References:
  - https://github.com/lanl/CLAMR/blob/master/mesh/mesh.cpp#L2974-L2978
  - llvm/llvm-project#144678
  - llvm/llvm-test-suite#259 (follow-up for the remaining CLAMR failure)

Signed-off-by: Jerry Zhang Jian <[email protected]>
1 file changed