FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Cppcheck and harbour code?
Posts: 97
Joined: Mon Nov 21, 2005 10:29 AM
Cppcheck and harbour code?
Posted: Tue Jun 17, 2025 09:14 AM

Hello,

have anybody tryed to check harbour generated code with Cppcheck or any other static code checker? Any point to try to do this?

On first try cppcheck gives a lot of warnings and errors.

Got a client who requires application code to be checked for security reasons...

Taavi.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Cppcheck and harbour code?
Posted: Tue Jun 17, 2025 10:39 AM

Dear Taavi,

Where to get cppcheck from ?

thanks

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 97
Joined: Mon Nov 21, 2005 10:29 AM
Re: Cppcheck and harbour code?
Posted: Tue Jun 17, 2025 02:13 PM
Hello Antonio,

https://cppcheck.sourceforge.io/

Taavi.
Posts: 231
Joined: Fri Jul 20, 2012 01:49 AM
Re: Cppcheck and harbour code?
Posted: Tue Jun 17, 2025 08:43 PM
Very interesting topic.

probably you can configure the output .c files to some cache folder, and then use some file to run the cppcheck from there.
on the hbm you can use -workdir=.\cache\ and all the C files will be there :)

If you have success with it let us to know. very cool.

I will make some testing at the weekend with it.
Regards,

Lailton Fernando Mariano
Posts: 231
Joined: Fri Jul 20, 2012 01:49 AM
Re: Cppcheck and harbour code?
Posted: Wed Jun 18, 2025 02:45 AM
Command to check:

build project with -workdir=./.cache/ and I suggest to use -gc3 too.
cppcheck -I ./include/ -I /Users/lailton/Developer/harbour/include --suppress=missingIncludeSystem .cache/ --output-file=cppcheck.txt
Part my output:
18/20 files checked 96% done
Checking .cache/util.c ...
Checking .cache/util.c: HB_DATASEG_STARTUP;HB_OS_WIN_64;_MSC_VER...
Checking .cache/util.c: HB_DATASEG_STARTUP;HB_PRAGMA_STARTUP...
Checking .cache/util.c: HB_DATASEG_STARTUP;__WATCOMC__...
Checking .cache/util.c: HB_GNUC_STARTUP;__DCC__;__GNUC__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__clang__...
Checking .cache/util.c: HB_GNUC_STARTUP;__DCC__;__GNUC__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__clang__;__DCC__...
Checking .cache/util.c: HB_INITSEG_STARTUP...
Checking .cache/util.c: HB_INITSEG_STARTUP;_M_COFF...
Checking .cache/util.c: HB_NO_FLATTEN;__ICC;__PCC__;__clang__;__GNUC__...
Checking .cache/util.c: HB_OS_BEOS;HB_OS_BSD;HB_OS_DARWIN;HB_OS_LINUX;HB_OS_MINIX;HB_OS_QNX;HB_OS_SUNOS;HB_OS_VXWORKS;_ISOC99_SOURCE;_MSC_VER;_STDC_C99;__BORLANDC__;__DJGPP__;__DMC__;__GNUC__;__LCC__;__MINGW32__;__POCC__;__STDC_VERSION__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__WATCOMC__;__XCC__...
Checking .cache/util.c: HB_OS_BEOS;HB_OS_BSD;HB_OS_DARWIN;HB_OS_LINUX;HB_OS_MINIX;HB_OS_QNX;HB_OS_SUNOS;HB_OS_VXWORKS;_ISOC99_SOURCE;_MSC_VER;_STDC_C99;__BORLANDC__;__DJGPP__;__DMC__;__GNUC__;__LCC__;__MINGW32__;__POCC__;__STDC_VERSION__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__WATCOMC__;__XCC__;HB_OS_VXWORKS;_INTPTR;_INTPTR_T...
Checking .cache/util.c: HB_OS_BEOS;HB_OS_BSD;HB_OS_DARWIN;HB_OS_LINUX;HB_OS_MINIX;HB_OS_QNX;HB_OS_SUNOS;HB_OS_VXWORKS;_ISOC99_SOURCE;_MSC_VER;_STDC_C99;__BORLANDC__;__DJGPP__;__DMC__;__GNUC__;__LCC__;__MINGW32__;__POCC__;__STDC_VERSION__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__WATCOMC__;__XCC__;_MSC_VER...
Checking .cache/util.c: HB_OS_BEOS;HB_OS_BSD;HB_OS_DARWIN;HB_OS_LINUX;HB_OS_MINIX;HB_OS_QNX;HB_OS_SUNOS;HB_OS_VXWORKS;_ISOC99_SOURCE;_MSC_VER;_STDC_C99;__BORLANDC__;__DJGPP__;__DMC__;__GNUC__;__LCC__;__MINGW32__;__POCC__;__STDC_VERSION__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__WATCOMC__;__XCC__;__BORLANDC__...
19/20 files checked 97% done
Checking .cache/watch.c ...
Checking .cache/watch.c: HB_DATASEG_STARTUP;HB_OS_WIN_64;_MSC_VER...
Checking .cache/watch.c: HB_DATASEG_STARTUP;HB_PRAGMA_STARTUP...
Checking .cache/watch.c: HB_DATASEG_STARTUP;__WATCOMC__...
Checking .cache/watch.c: HB_GNUC_STARTUP;__DCC__;__GNUC__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__clang__...
Checking .cache/watch.c: HB_GNUC_STARTUP;__DCC__;__GNUC__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__clang__;__DCC__...
Checking .cache/watch.c: HB_INITSEG_STARTUP...
Checking .cache/watch.c: HB_INITSEG_STARTUP;_M_COFF...
Checking .cache/watch.c: HB_NO_FLATTEN;__ICC;__PCC__;__clang__;__GNUC__...
Checking .cache/watch.c: HB_OS_BEOS;HB_OS_BSD;HB_OS_DARWIN;HB_OS_LINUX;HB_OS_MINIX;HB_OS_QNX;HB_OS_SUNOS;HB_OS_VXWORKS;_ISOC99_SOURCE;_MSC_VER;_STDC_C99;__BORLANDC__;__DJGPP__;__DMC__;__GNUC__;__LCC__;__MINGW32__;__POCC__;__STDC_VERSION__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__WATCOMC__;__XCC__...
Checking .cache/watch.c: HB_OS_BEOS;HB_OS_BSD;HB_OS_DARWIN;HB_OS_LINUX;HB_OS_MINIX;HB_OS_QNX;HB_OS_SUNOS;HB_OS_VXWORKS;_ISOC99_SOURCE;_MSC_VER;_STDC_C99;__BORLANDC__;__DJGPP__;__DMC__;__GNUC__;__LCC__;__MINGW32__;__POCC__;__STDC_VERSION__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__WATCOMC__;__XCC__;HB_OS_VXWORKS;_INTPTR;_INTPTR_T...
Checking .cache/watch.c: HB_OS_BEOS;HB_OS_BSD;HB_OS_DARWIN;HB_OS_LINUX;HB_OS_MINIX;HB_OS_QNX;HB_OS_SUNOS;HB_OS_VXWORKS;_ISOC99_SOURCE;_MSC_VER;_STDC_C99;__BORLANDC__;__DJGPP__;__DMC__;__GNUC__;__LCC__;__MINGW32__;__POCC__;__STDC_VERSION__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__WATCOMC__;__XCC__;_MSC_VER...
Checking .cache/watch.c: HB_OS_BEOS;HB_OS_BSD;HB_OS_DARWIN;HB_OS_LINUX;HB_OS_MINIX;HB_OS_QNX;HB_OS_SUNOS;HB_OS_VXWORKS;_ISOC99_SOURCE;_MSC_VER;_STDC_C99;__BORLANDC__;__DJGPP__;__DMC__;__GNUC__;__LCC__;__MINGW32__;__POCC__;__STDC_VERSION__;__SUNPRO_C;__SUNPRO_CC;__TINYC__;__WATCOMC__;__XCC__;__BORLANDC__...
20/20 files checked 100% done
Regards,

Lailton Fernando Mariano

Continue the discussion