From 7cf1a7eb7df5bd7d2c95a2110e9904be2d64ab0a Mon Sep 17 00:00:00 2001 From: Don Cross Date: Mon, 19 Jun 2023 12:37:39 -0400 Subject: [PATCH] Minor tweaks for cppcheck. Use const pointers for grav sim. Slightly different cppcheck dev 2.11 behaviors have added another warning that I don't care about. I don't want to have to convert callback pointers to const, then cast them to const. However, it did find a couple of useful cases I fixed in astronomy.c where GravSim parameters could be made const. --- generate/template/astronomy.c | 10 +++++----- generate/unit_test_c | 2 +- source/c/README.md | 6 +++--- source/c/astronomy.c | 10 +++++----- source/c/astronomy.h | 6 +++--- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/generate/template/astronomy.c b/generate/template/astronomy.c index e933931c..8efffffe 100644 --- a/generate/template/astronomy.c +++ b/generate/template/astronomy.c @@ -3265,7 +3265,7 @@ astro_status_t Astronomy_GravSimUpdate( current accelerations apply across the whole time interval. approx_pos = pos1 + vel1*dt + (1/2)acc*dt^2 */ - body_grav_calc_t *prev = &sim->prev->bodies[i]; + const body_grav_calc_t *prev = &sim->prev->bodies[i]; sim->curr->bodies[i].r = UpdatePosition(dt, prev->r, prev->v, prev->a); } @@ -3277,7 +3277,7 @@ astro_status_t Astronomy_GravSimUpdate( for (i = 0; i < numBodies; ++i) { - body_grav_calc_t *prev = &sim->prev->bodies[i]; + const body_grav_calc_t *prev = &sim->prev->bodies[i]; body_grav_calc_t *curr = &sim->curr->bodies[i]; /* @@ -3442,7 +3442,7 @@ void Astronomy_GravSimSwap(astro_grav_sim_t *sim) * @param sim * A gravity simulator object that was created by a prior call to #Astronomy_GravSimInit. */ -astro_time_t Astronomy_GravSimTime(astro_grav_sim_t *sim) +astro_time_t Astronomy_GravSimTime(const astro_grav_sim_t *sim) { return sim->curr->time; } @@ -3459,7 +3459,7 @@ astro_time_t Astronomy_GravSimTime(astro_grav_sim_t *sim) * @param sim * A gravity simulator object that was created by a prior call to #Astronomy_GravSimInit. */ -int Astronomy_GravSimNumBodies(astro_grav_sim_t *sim) +int Astronomy_GravSimNumBodies(const astro_grav_sim_t *sim) { return sim->numBodies; } @@ -3476,7 +3476,7 @@ int Astronomy_GravSimNumBodies(astro_grav_sim_t *sim) * @param sim * A gravity simulator object that was created by a prior call to #Astronomy_GravSimInit. */ -astro_body_t Astronomy_GravSimOrigin(astro_grav_sim_t *sim) +astro_body_t Astronomy_GravSimOrigin(const astro_grav_sim_t *sim) { return sim->originBody; } diff --git a/generate/unit_test_c b/generate/unit_test_c index 354750b0..1ffbb129 100755 --- a/generate/unit_test_c +++ b/generate/unit_test_c @@ -8,7 +8,7 @@ Fail() [[ "$1" == "" || "$1" == "-v" ]] || Fail "Invalid command line options." [[ -z "${CPP}" ]] && CPP=g++ -cppcheck -I ../source/c --enable=all --inline-suppr --suppress=variableScope --suppress=shadowFunction --suppress=unusedFunction --suppress=missingIncludeSystem --error-exitcode=9 ../source/c ../demo/c/*.c ctest.c || exit 1 +cppcheck -I ../source/c --enable=all --inline-suppr --suppress=unmatchedSuppression --suppress=variableScope --suppress=shadowFunction --suppress=unusedFunction --suppress=missingIncludeSystem --suppress=constParameterCallback --error-exitcode=9 ../source/c ../demo/c/*.c ctest.c || exit 1 # Verify that the source can be built as modern C++. ${CPP} -x c++ -std=c++17 -c -Wall -Werror -O3 ../source/c/astronomy.c || Fail "Cannot compile as C++" diff --git a/source/c/README.md b/source/c/README.md index 85670b9e..b1de2560 100644 --- a/source/c/README.md +++ b/source/c/README.md @@ -985,7 +985,7 @@ When a simulation is created by a call to [`Astronomy_GravSimInit`](#Astronomy_G | Type | Parameter | Description | | --- | --- | --- | -| astro_grav_sim_t * | `sim` | A gravity simulator object that was created by a prior call to [`Astronomy_GravSimInit`](#Astronomy_GravSimInit). | +| `const astro_grav_sim_t *` | `sim` | A gravity simulator object that was created by a prior call to [`Astronomy_GravSimInit`](#Astronomy_GravSimInit). | @@ -1005,7 +1005,7 @@ When a simulation is created by a call to [`Astronomy_GravSimInit`](#Astronomy_G | Type | Parameter | Description | | --- | --- | --- | -| astro_grav_sim_t * | `sim` | A gravity simulator object that was created by a prior call to [`Astronomy_GravSimInit`](#Astronomy_GravSimInit). | +| `const astro_grav_sim_t *` | `sim` | A gravity simulator object that was created by a prior call to [`Astronomy_GravSimInit`](#Astronomy_GravSimInit). | @@ -1049,7 +1049,7 @@ Usually this function will be called immediately after a matching call to [`Astr | Type | Parameter | Description | | --- | --- | --- | -| astro_grav_sim_t * | `sim` | A gravity simulator object that was created by a prior call to [`Astronomy_GravSimInit`](#Astronomy_GravSimInit). | +| `const astro_grav_sim_t *` | `sim` | A gravity simulator object that was created by a prior call to [`Astronomy_GravSimInit`](#Astronomy_GravSimInit). | diff --git a/source/c/astronomy.c b/source/c/astronomy.c index b81de5d5..fcf0b56e 100644 --- a/source/c/astronomy.c +++ b/source/c/astronomy.c @@ -4199,7 +4199,7 @@ astro_status_t Astronomy_GravSimUpdate( current accelerations apply across the whole time interval. approx_pos = pos1 + vel1*dt + (1/2)acc*dt^2 */ - body_grav_calc_t *prev = &sim->prev->bodies[i]; + const body_grav_calc_t *prev = &sim->prev->bodies[i]; sim->curr->bodies[i].r = UpdatePosition(dt, prev->r, prev->v, prev->a); } @@ -4211,7 +4211,7 @@ astro_status_t Astronomy_GravSimUpdate( for (i = 0; i < numBodies; ++i) { - body_grav_calc_t *prev = &sim->prev->bodies[i]; + const body_grav_calc_t *prev = &sim->prev->bodies[i]; body_grav_calc_t *curr = &sim->curr->bodies[i]; /* @@ -4376,7 +4376,7 @@ void Astronomy_GravSimSwap(astro_grav_sim_t *sim) * @param sim * A gravity simulator object that was created by a prior call to #Astronomy_GravSimInit. */ -astro_time_t Astronomy_GravSimTime(astro_grav_sim_t *sim) +astro_time_t Astronomy_GravSimTime(const astro_grav_sim_t *sim) { return sim->curr->time; } @@ -4393,7 +4393,7 @@ astro_time_t Astronomy_GravSimTime(astro_grav_sim_t *sim) * @param sim * A gravity simulator object that was created by a prior call to #Astronomy_GravSimInit. */ -int Astronomy_GravSimNumBodies(astro_grav_sim_t *sim) +int Astronomy_GravSimNumBodies(const astro_grav_sim_t *sim) { return sim->numBodies; } @@ -4410,7 +4410,7 @@ int Astronomy_GravSimNumBodies(astro_grav_sim_t *sim) * @param sim * A gravity simulator object that was created by a prior call to #Astronomy_GravSimInit. */ -astro_body_t Astronomy_GravSimOrigin(astro_grav_sim_t *sim) +astro_body_t Astronomy_GravSimOrigin(const astro_grav_sim_t *sim) { return sim->originBody; } diff --git a/source/c/astronomy.h b/source/c/astronomy.h index 8582ea18..f8cbac95 100644 --- a/source/c/astronomy.h +++ b/source/c/astronomy.h @@ -1384,9 +1384,9 @@ astro_state_vector_t Astronomy_GravSimBodyState( astro_body_t body ); -astro_time_t Astronomy_GravSimTime(astro_grav_sim_t *sim); -int Astronomy_GravSimNumBodies(astro_grav_sim_t *sim); -astro_body_t Astronomy_GravSimOrigin(astro_grav_sim_t *sim); +astro_time_t Astronomy_GravSimTime(const astro_grav_sim_t *sim); +int Astronomy_GravSimNumBodies(const astro_grav_sim_t *sim); +astro_body_t Astronomy_GravSimOrigin(const astro_grav_sim_t *sim); void Astronomy_GravSimSwap(astro_grav_sim_t *sim); void Astronomy_GravSimFree(astro_grav_sim_t *sim);