abacus-gene / paml

PAML is a program package for model fitting and phylogenetic tree reconstruction using DNA and protein sequence data. Please report only **technical issues** on this repository (e.g., compiling, programs abort or do not run at all, etc.). Problems with input data and general questions should be posted at https://groups.google.com/g/pamlsoftware?pli
GNU General Public License v3.0
103 stars 19 forks source link

`#elif with no expression` in treesub.c function ‘DistanceMatNuc’ #11

Closed mkweskin closed 3 years ago

mkweskin commented 3 years ago

I'm using gcc 7.3.0 and get a compilation error from baseml.c

cc  -O3 -Wall -Wno-unused-result -c baseml.c
In file included from baseml.c:137:0:
treesub.c: In function ‘DistanceMatNuc’:
treesub.c:2144:6: error: #elif with no expression
 #elif
      ^
make: *** [baseml.o] Error 1

The error seems to be because #elif is used without defining elif condition in treesub.c:

#if(1)
         if (fout) fprintf(fout, " %6.3f", t*com.ls);
#elif
         if (fout) fprintf(fout, " %9.6f", com.ls);
#endif

I think you may have this conditional to keep old code in the elif around, is so this change may work:

#if(1)
         if (fout) fprintf(fout, " %6.3f", t*com.ls);
#elif(1)
         if (fout) fprintf(fout, " %9.6f", com.ls);
#endif
ziheng-yang commented 3 years ago

yes, the fix you suggested will work fine.