Skip to content

Commit 14e5f01

Browse files
authored
Merge pull request #743 from CEED/jeremy/tidy
tidy - small fixes
2 parents b997b43 + fd936b7 commit 14e5f01

6 files changed

Lines changed: 52 additions & 18 deletions

File tree

.gitlab-ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ noether-rocm:
4040
- cd .. && export NEK5K_VERSION=Nek5000-19.0 && { [[ -d $NEK5K_VERSION ]] || { git clone --depth 1 --branch v19.0 https://github.com/Nek5000/Nek5000.git $NEK5K_VERSION && cd $NEK5K_VERSION/tools && ./maketools genbox genmap reatore2 && cd ../..; }; } && git -C $NEK5K_VERSION describe --tags && export NEK5K_DIR=$PWD/$NEK5K_VERSION && export PATH=$NEK5K_DIR/bin:$PATH MPI=0 && cd libCEED
4141
- make -k -j$NPROC_CPU BACKENDS="$BACKENDS_CPU" junit search=nek
4242
- make -k -j$NPROC_GPU BACKENDS="$BACKENDS_GPU" junit search=nek
43+
# Clang-tidy
44+
- clang-tidy --version && TIDY_OPTS="-fix-errors" make -j$NPROC_CPU tidy && git diff --exit-code
4345
# Report status
4446
- echo "SUCCESS" > .job_status
4547
after_script:

backends/ceed-backend-weak.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ static int CeedRegister_Weak(const char *name, int num_prefixes, ...) {
2020
int ierr;
2121
for (int i=0; i<num_prefixes; i++) {
2222
ierr = CeedRegister(va_arg(prefixes, const char*), CeedInit_Weak, CEED_MAX_BACKEND_PRIORITY);
23+
if (ierr) va_end(prefixes); // Prevent leak on error
2324
CeedChk(ierr);
2425
}
2526
va_end(prefixes);

backends/hip-gen/ceed-hip-gen-operator-build.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -746,7 +746,7 @@ CEED_INTERN int CeedHipGenOperatorBuild(CeedOperator op) {
746746
CeedQFunction_Hip_gen *qf_data;
747747
ierr = CeedOperatorGetQFunction(op, &qf); CeedChkBackend(ierr);
748748
ierr = CeedQFunctionGetData(qf, &qf_data); CeedChkBackend(ierr);
749-
CeedInt Q, P1d, Q1d = 0, numelements, elemsize, numinputfields,
749+
CeedInt Q, P1d = 0, Q1d = 0, numelements, elemsize, numinputfields,
750750
numoutputfields, ncomp, dim = 0, lsize;
751751
ierr = CeedOperatorGetNumQuadraturePoints(op, &Q); CeedChkBackend(ierr);
752752
ierr = CeedOperatorGetNumElements(op, &numelements); CeedChkBackend(ierr);

interface/ceed-basis.c

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ int CeedHouseholderApplyQ(CeedScalar *A, const CeedScalar *Q,
9999
CeedInt m, CeedInt n, CeedInt k,
100100
CeedInt row, CeedInt col) {
101101
int ierr;
102-
CeedScalar v[m];
102+
CeedScalar *v;
103+
ierr = CeedMalloc(m, &v); CeedChk(ierr);
103104
for (CeedInt ii=0; ii<k; ii++) {
104105
CeedInt i = t_mode == CEED_TRANSPOSE ? ii : k-1-ii;
105106
for (CeedInt j=i+1; j<m; j++)
@@ -108,6 +109,7 @@ int CeedHouseholderApplyQ(CeedScalar *A, const CeedScalar *Q,
108109
ierr = CeedHouseholderReflect(&A[i*row], &v[i], tau[i], m-i, n, row, col);
109110
CeedChk(ierr);
110111
}
112+
ierr = CeedFree(&v); CeedChk(ierr);
111113
return CEED_ERROR_SUCCESS;
112114
}
113115

@@ -200,10 +202,11 @@ int CeedBasisGetCollocatedGrad(CeedBasis basis, CeedScalar *collo_grad_1d) {
200202
int i, j, k;
201203
Ceed ceed;
202204
CeedInt ierr, P_1d=(basis)->P_1d, Q_1d=(basis)->Q_1d;
203-
CeedScalar *interp_1d, *grad_1d, tau[Q_1d];
205+
CeedScalar *interp_1d, *grad_1d, *tau;
204206

205207
ierr = CeedMalloc(Q_1d*P_1d, &interp_1d); CeedChk(ierr);
206208
ierr = CeedMalloc(Q_1d*P_1d, &grad_1d); CeedChk(ierr);
209+
ierr = CeedMalloc(Q_1d, &tau); CeedChk(ierr);
207210
memcpy(interp_1d, (basis)->interp_1d, Q_1d*P_1d*sizeof(basis)->interp_1d[0]);
208211
memcpy(grad_1d, (basis)->grad_1d, Q_1d*P_1d*sizeof(basis)->interp_1d[0]);
209212

@@ -232,6 +235,7 @@ int CeedBasisGetCollocatedGrad(CeedBasis basis, CeedScalar *collo_grad_1d) {
232235

233236
ierr = CeedFree(&interp_1d); CeedChk(ierr);
234237
ierr = CeedFree(&grad_1d); CeedChk(ierr);
238+
ierr = CeedFree(&tau); CeedChk(ierr);
235239
return CEED_ERROR_SUCCESS;
236240
}
237241

@@ -1435,37 +1439,45 @@ int CeedSimultaneousDiagonalization(Ceed ceed, CeedScalar *mat_A,
14351439
CeedScalar *mat_B, CeedScalar *x,
14361440
CeedScalar *lambda, CeedInt n) {
14371441
int ierr;
1438-
CeedScalar mat_C[n*n], matG[n*n], vecD[n];
1442+
CeedScalar *mat_C, *mat_G, *vecD;
1443+
ierr = CeedCalloc(n*n, &mat_C); CeedChk(ierr);
1444+
ierr = CeedCalloc(n*n, &mat_G); CeedChk(ierr);
1445+
ierr = CeedCalloc(n, &vecD); CeedChk(ierr);
14391446

14401447
// Compute B = G D G^T
1441-
memcpy(matG, mat_B, n*n*sizeof(mat_B[0]));
1442-
ierr = CeedSymmetricSchurDecomposition(ceed, matG, vecD, n); CeedChk(ierr);
1448+
memcpy(mat_G, mat_B, n*n*sizeof(mat_B[0]));
1449+
ierr = CeedSymmetricSchurDecomposition(ceed, mat_G, vecD, n); CeedChk(ierr);
14431450
for (CeedInt i=0; i<n; i++)
14441451
vecD[i] = sqrt(vecD[i]);
14451452

14461453
// Compute C = (G D^1/2)^-1 A (G D^1/2)^-T
14471454
// = D^-1/2 G^T A G D^-1/2
14481455
for (CeedInt i=0; i<n; i++)
14491456
for (CeedInt j=0; j<n; j++)
1450-
mat_C[j+i*n] = matG[i+j*n] / vecD[i];
1457+
mat_C[j+i*n] = mat_G[i+j*n] / vecD[i];
14511458
ierr = CeedMatrixMultiply(ceed, (const CeedScalar *)mat_C,
14521459
(const CeedScalar *)mat_A, x, n, n, n);
14531460
CeedChk(ierr);
14541461
for (CeedInt i=0; i<n; i++)
14551462
for (CeedInt j=0; j<n; j++)
1456-
matG[j+i*n] = matG[j+i*n] / vecD[j];
1463+
mat_G[j+i*n] = mat_G[j+i*n] / vecD[j];
14571464
ierr = CeedMatrixMultiply(ceed, (const CeedScalar *)x,
1458-
(const CeedScalar *)matG, mat_C, n, n, n);
1465+
(const CeedScalar *)mat_G, mat_C, n, n, n);
14591466
CeedChk(ierr);
14601467

14611468
// Compute Q^T C Q = lambda
14621469
ierr = CeedSymmetricSchurDecomposition(ceed, mat_C, lambda, n); CeedChk(ierr);
14631470

14641471
// Set x = (G D^1/2)^-T Q
14651472
// = G D^-1/2 Q
1466-
ierr = CeedMatrixMultiply(ceed, (const CeedScalar *)matG,
1473+
ierr = CeedMatrixMultiply(ceed, (const CeedScalar *)mat_G,
14671474
(const CeedScalar *)mat_C, x, n, n, n);
14681475
CeedChk(ierr);
1476+
1477+
// Cleanup
1478+
ierr = CeedFree(&mat_C); CeedChk(ierr);
1479+
ierr = CeedFree(&mat_G); CeedChk(ierr);
1480+
ierr = CeedFree(&vecD); CeedChk(ierr);
14691481
return CEED_ERROR_SUCCESS;
14701482
}
14711483

interface/ceed-operator.c

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ static int CeedOperatorCheckField(Ceed ceed, CeedQFunctionField qf_field,
116116
// LCOV_EXCL_STOP
117117
}
118118
ierr = CeedElemRestrictionGetNumComponents(r, &restr_num_comp);
119+
CeedChk(ierr);
119120
}
120121
if ((r == CEED_ELEMRESTRICTION_NONE) != (eval_mode == CEED_EVAL_WEIGHT)) {
121122
// LCOV_EXCL_START
@@ -298,10 +299,11 @@ int CeedOperatorSingleView(CeedOperator op, bool sub, FILE *stream) {
298299
int ierr;
299300
const char *pre = sub ? " " : "";
300301

301-
CeedInt totalfields;
302-
ierr = CeedOperatorGetNumArgs(op, &totalfields); CeedChk(ierr);
302+
CeedInt total_fields = 0;
303+
ierr = CeedOperatorGetNumArgs(op, &total_fields); CeedChk(ierr);
303304

304-
fprintf(stream, "%s %d Field%s\n", pre, totalfields, totalfields>1 ? "s" : "");
305+
fprintf(stream, "%s %d Field%s\n", pre, total_fields,
306+
total_fields>1 ? "s" : "");
305307

306308
fprintf(stream, "%s %d Input Field%s:\n", pre, op->qf->num_input_fields,
307309
op->qf->num_input_fields>1 ? "s" : "");
@@ -1048,7 +1050,7 @@ int CeedOperatorSetField(CeedOperator op, const char *field_name,
10481050
"%d elements", num_elem, op->num_elem);
10491051
// LCOV_EXCL_STOP
10501052

1051-
CeedInt num_qpts;
1053+
CeedInt num_qpts = 0;
10521054
if (b != CEED_BASIS_COLLOCATED) {
10531055
ierr = CeedBasisGetNumQuadraturePoints(b, &num_qpts); CeedChk(ierr);
10541056
if (op->num_qpts && op->num_qpts != num_qpts)
@@ -1550,6 +1552,12 @@ int CeedSingleOperatorAssemble(CeedOperator op, CeedInt offset,
15501552
}
15511553
}
15521554

1555+
if (num_eval_mode_in == 0 || num_eval_mode_out == 0)
1556+
// LCOV_EXCL_START
1557+
return CeedError(ceed, CEED_ERROR_UNSUPPORTED,
1558+
"Cannot assemble operator with out inputs/outputs");
1559+
// LCOV_EXCL_STOP
1560+
15531561
CeedInt num_elem, elem_size, num_qpts, num_comp;
15541562
ierr = CeedElemRestrictionGetNumElements(rstr_in, &num_elem); CeedChk(ierr);
15551563
ierr = CeedElemRestrictionGetElementSize(rstr_in, &elem_size); CeedChk(ierr);
@@ -1745,6 +1753,7 @@ int CeedOperatorLinearAssembleSymbolic(CeedOperator op,
17451753
const char *resource, *fallback_resource;
17461754
ierr = CeedGetResource(op->ceed, &resource); CeedChk(ierr);
17471755
ierr = CeedGetOperatorFallbackResource(op->ceed, &fallback_resource);
1756+
CeedChk(ierr);
17481757
if (strcmp(fallback_resource, "") && strcmp(resource, fallback_resource)) {
17491758
// Fallback to reference Ceed
17501759
if (!op->op_fallback) {
@@ -1819,7 +1828,7 @@ int CeedOperatorLinearAssembleSymbolic(CeedOperator op,
18191828
**/
18201829
int CeedOperatorLinearAssemble(CeedOperator op, CeedVector values) {
18211830
int ierr;
1822-
CeedInt num_suboperators, single_entries;
1831+
CeedInt num_suboperators, single_entries = 0;
18231832
CeedOperator *sub_operators;
18241833
ierr = CeedOperatorCheckReady(op); CeedChk(ierr);
18251834

@@ -1831,6 +1840,7 @@ int CeedOperatorLinearAssemble(CeedOperator op, CeedVector values) {
18311840
const char *resource, *fallback_resource;
18321841
ierr = CeedGetResource(op->ceed, &resource); CeedChk(ierr);
18331842
ierr = CeedGetOperatorFallbackResource(op->ceed, &fallback_resource);
1843+
CeedChk(ierr);
18341844
if (strcmp(fallback_resource, "") && strcmp(resource, fallback_resource)) {
18351845
// Fallback to reference Ceed
18361846
if (!op->op_fallback) {

interface/ceed.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,10 @@ int CeedRegistryGetList(size_t *n, char ***const resources,
641641
*n += 1;
642642
}
643643
}
644+
if (*n == 0)
645+
// LCOV_EXCL_START
646+
return CeedError(NULL, CEED_ERROR_MAJOR, "No backends installed");
647+
// LCOV_EXCL_STOP
644648
*resources = realloc(*resources, *n * sizeof(**resources));
645649
if (!resources)
646650
return CeedError(NULL, CEED_ERROR_MAJOR, "realloc() failure");
@@ -971,7 +975,8 @@ const char *CeedErrorFormat(Ceed ceed, const char *format, va_list *args) {
971975
return CeedErrorFormat(ceed->parent, format, args);
972976
if (ceed->op_fallback_parent)
973977
return CeedErrorFormat(ceed->op_fallback_parent, format, args);
974-
vsnprintf(ceed->err_msg, CEED_MAX_RESOURCE_LEN, format, *args);
978+
// Using pointer to va_list for better FFI, but clang-tidy can't verify va_list is initalized
979+
vsnprintf(ceed->err_msg, CEED_MAX_RESOURCE_LEN, format, *args); // NOLINT
975980
return ceed->err_msg;
976981
}
977982
// LCOV_EXCL_STOP
@@ -1042,7 +1047,10 @@ int CeedErrorStore(Ceed ceed, const char *filename, int line_no,
10421047
CeedInt len;
10431048
len = snprintf(ceed->err_msg, CEED_MAX_RESOURCE_LEN, "%s:%d in %s(): ",
10441049
filename, line_no, func);
1045-
vsnprintf(ceed->err_msg + len, CEED_MAX_RESOURCE_LEN - len, format, *args);
1050+
// Using pointer to va_list for better FFI, but clang-tidy can't verify va_list is initalized
1051+
// *INDENT-OFF*
1052+
vsnprintf(ceed->err_msg + len, CEED_MAX_RESOURCE_LEN - len, format, *args); // NOLINT
1053+
// *INDENT-ON*
10461054
return err_code;
10471055
}
10481056
// LCOV_EXCL_STOP
@@ -1079,7 +1087,8 @@ int CeedErrorAbort(Ceed ceed, const char *filename, int line_no,
10791087
int CeedErrorExit(Ceed ceed, const char *filename, int line_no,
10801088
const char *func, int err_code, const char *format, va_list *args) {
10811089
fprintf(stderr, "%s:%d in %s(): ", filename, line_no, func);
1082-
vfprintf(stderr, format, *args);
1090+
// Using pointer to va_list for better FFI, but clang-tidy can't verify va_list is initalized
1091+
vfprintf(stderr, format, *args); // NOLINT
10831092
fprintf(stderr, "\n");
10841093
exit(err_code);
10851094
return err_code;

0 commit comments

Comments
 (0)