Cppcheck and harbour code?

Post Reply
Taavi
Posts: 97
Joined: Mon Nov 21, 2005 10:29 am

Cppcheck and harbour code?

Post by Taavi »

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.
User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Cppcheck and harbour code?

Post by Antonio Linares »

Dear Taavi,

Where to get cppcheck from ?

thanks
regards, saludos

Antonio Linares
www.fivetechsoft.com
Taavi
Posts: 97
Joined: Mon Nov 21, 2005 10:29 am

Re: Cppcheck and harbour code?

Post by Taavi »

Hello Antonio,

https://cppcheck.sourceforge.io/

Taavi.
User avatar
Lailton
Posts: 231
Joined: Fri Jul 20, 2012 1:49 am
Location: Brazil
Contact:

Re: Cppcheck and harbour code?

Post by Lailton »

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
User avatar
Lailton
Posts: 231
Joined: Fri Jul 20, 2012 1:49 am
Location: Brazil
Contact:

Re: Cppcheck and harbour code?

Post by Lailton »

Command to check:

build project with -workdir=./.cache/ and I suggest to use -gc3 too.

Code: Select all | Expand

cppcheck -I ./include/ -I /Users/lailton/Developer/harbour/include --suppress=missingIncludeSystem .cache/ --output-file=cppcheck.txt
Part my output:

Code: Select all | Expand

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
Post Reply