freeseek / score

Tools to work with GWAS-VCF summary statistics files
MIT License
94 stars 6 forks source link

clang 16 compatibility #2

Closed outpaddling closed 9 months ago

outpaddling commented 11 months ago

FYI, score does not build under clang 16, which is stricter about function pointer assignments by default:

clang 14:

plugins/munge.c:123:74: warning: incompatible function pointer types initializing 'const int ()(tsv_t , bcf1_t , void )' (aka 'const int ()(struct _tsv_t , struct bcf1_t , void )') with an expression of type 'int (tsv_t , bcf1_t , void )' (aka 'int (struct _tsv_t , struct bcf1_t , void )') [-Wincompatible-function-pointer-types] static const int (tsv_setters[])(tsv_t tsv, bcf1_t rec, void usr) = {tsv_setter_id_flexible, // SNP

clang 16: ^~~~~~
plugins/munge.c:123:74: error: incompatible function pointer types initializing 'const int ()(tsv_t , bcf1_t , void )' (aka 'const int ()(struct _tsv_t , struct bcf1_t , void )') with an expression of type 'int (tsv_t , bcf1_t , void )' (aka 'int (struct _tsv_t , struct bcf1_t , void )') [-Wincompatible-function-pointer-types] static const int (tsv_setters[])(tsv_t tsv, bcf1_t rec, void usr) = {tsv_setter_id_flexible, // SNP ^~~~~~

freeseek commented 11 months ago

Yeah, for now replace static const int to static int in munge.c and score.c with the following command:

sed -i 's/^static const int/static int/' plugins/score.c plugins/munge.c

This will be fixed in the next release