Remove UB in ArrayRef from array
[alexxy/gromacs.git] / src / gromacs / mdlib / tests / leapfrogtestrunners.cpp
index 5badaad2725b988524ab51f93864d8dfa4a01b95..a82d9fc9e797674f32c1b0ec3ee091b9d9ab8285 100644 (file)
@@ -76,9 +76,15 @@ void LeapFrogHostTestRunner::integrate(LeapFrogTestData* testData, int numSteps)
                 step,
                 testData->mdAtoms_.homenr,
                 testData->mdAtoms_.havePartiallyFrozenAtoms,
-                gmx::arrayRefFromArray(testData->mdAtoms_.ptype, testData->mdAtoms_.nr),
-                gmx::arrayRefFromArray(testData->mdAtoms_.invmass, testData->mdAtoms_.nr),
-                gmx::arrayRefFromArray(testData->mdAtoms_.invMassPerDim, testData->mdAtoms_.nr),
+                testData->mdAtoms_.ptype
+                        ? gmx::arrayRefFromArray(testData->mdAtoms_.ptype, testData->mdAtoms_.nr)
+                        : gmx::ArrayRef<ParticleType>{},
+                testData->mdAtoms_.invmass
+                        ? gmx::arrayRefFromArray(testData->mdAtoms_.invmass, testData->mdAtoms_.nr)
+                        : gmx::ArrayRef<real>{},
+                testData->mdAtoms_.invMassPerDim ? gmx::arrayRefFromArray(testData->mdAtoms_.invMassPerDim,
+                                                                          testData->mdAtoms_.nr)
+                                                 : gmx::ArrayRef<rvec>{},
                 &testData->state_,
                 testData->f_,
                 testData->forceCalculationData_,