Petri Lipponen - 2022-01-24

I've bumped into a strange issue with cppcheck when migrating from our old CI to CircleCI. The cppcheck works ok in the old CI.

CppCheck is 2.3 in old and 2.6 in the new

Our flow is simple:

  1. Generate cmake based project json and build everything (since we generate some files during the build) in our build docker container
  2. run cppcheck with command (in another docker container ):
cppcheck -D__GNUC__ --verbose --cppcheck-build-dir=./_cppcheck_build_SS2 --project=_build-SS2/compile_commands.json --enable=all --std=c++11 --xml 2> cppcheck-report-SS2.xml

If I do these steps on my laptop, the analysis is slow and results a lot of errors in the xml (since I've removed --suppress from external libraries). If I run the same in the CI docker, the result is empty <errors> element in the xml and the whole 500+ file "analysis" is over in 8 seconds. It's like it skips the analysis alltogether, but even with "--verbose" it doens't report any errors. I've checked that all the include paths seem to be correct and there is nothing obviously different between the two cases.</errors>

Any ideas what could cause something like this?

The output of failing analysis looks like this (the whole log is way too big to include):

Checking /home/circleci/project/avocado/core/SmartSensor2Application.cpp ...
Defines:__GNUC__=1;APP_SS2_APPLICATION=1;ARCH_CORTEX=1;ARCH_CORTEX_M4=1;ARCH_NRF52=1;ARMVFP_SP__=1;BLE_STACK_SUPPORT_REQD=1;BSP_HACK_USE_INLINE_PINCONFIG=1;BSP_LINKTO_APPFLASH=1;BUILD_BSP_TICKLESS_SYSTICK=1;CMAKE_APPLICATION="SmartSensor2Application";CMAKE_EXTERNAL_PRODUCT_NAME="SmartSensor2";CMAKE_INTERNAL_PRODUCT_NAME="Avocado";CMAKE_USB_PRESENCE_POLLING_INTERVAL_MSEC=2000;CMSIS_DEVICE_HEADER="nrf52.h";CONFIG_NFCT_PINS_AS_GPIOS=1;CPU_SPEED_HZ=64000000;CPU_SPEED_HZ_ACTUAL=64000000;DATALOGGER_EXTFLASH_EEPROM=1;DEBUG_NRF=1;DISABLE_DEBUGLOG=1;FSL_RTOS_FREE_RTOS=1;KERNEL_HEAP_SIZE=0xAD80;KERNEL_MAX_NUM_OPEN_FILES=0;KERNEL_MAX_NUM_TASKS=10;KERNEL_NUM_FILESYSTEMS=0;KERNEL_TICK_RATE_HZ=1024;LOGGER_FULL_GPS_ALWAYS=false;LOGGER_FULL_GPS_INTERVAL=60;MIMOSA_BSP_NEA=1;MIMOSA_PORT_NEA=1;NEA_HACK_MODE_LP=1;NEA_HACK_MODE_STR="LP";NRF52=1;NRF52832=1;NRF52832_XXAA=1;NRF52_PAN_12=1;NRF52_PAN_15=1;NRF52_PAN_20=1;NRF52_PAN_30=1;NRF52_PAN_31=1;NRF52_PAN_36=1;NRF52_PAN_51=1;NRF52_PAN_53=1;NRF52_PAN_54=1;NRF52_PAN_55=1;NRF52_PAN_58=1;NRF52_PAN_62=1;NRF52_PAN_63=1;NRF52_PAN_64=1;NRF_DFU_SETTINGS_VERSION=1;NRF_LOG_BACKEND_SERIAL_USES_RTT=0;NRF_LOG_DEFAULT_LEVEL=0;NRF_LOG_DEFERRED=0;NRF_LOG_ENABLED=0;NRF_SD_BLE_API_VERSION=6;OD_CLAMP_2_7_V=1;PRAGMA_PACK_SUPPORTED=1;PRAGMA_PACK_SUPPORTED=1;RESOURCES_VARIANT_HEADER="/home/circleci/project/_build-SS2/wbresources/resources.h";S132=1;SERIAL_FRAME_WITH_CRC=1;SSM_DEVICE_ID=0;USE_BLE_UART=1;USE_NOFS=1;WB_ASSERT_IN_RELEASE=1;WB_BSP="bsp/nea/bsp.h";WB_EXT_CONFIG="/home/circleci/project/movesense/build/../ss2_app/WhiteboardConfig.h";WB_HACK_ENABLE_SUB_RESULT_TO_NOTIFY=1;WB_HACK_TYPE_CHECK_WARN_ONLY=1;WB_HAVE_ALIEN_STRUCTURES=1;WB_HAVE_BLE_COMM=1;WB_HAVE_BYPASS=1;WB_HAVE_COMM=1;WB_HAVE_COMM_STATISTICS=1;WB_HAVE_DEPRECATED_BYTE_STREAM=1;WB_HAVE_NON_CRITICAL_CLEANUP=1;WB_HAVE_PATH_PARAMETERS=1;WB_HAVE_SERIAL_COMM=1;WB_HAVE_TIME=1;WB_HAVE_TIMERS=1;WB_HAVE_TYPE_CHECK_PROVIDERS=1;WB_HAVE_UNKNOWN_STRUCTURES=1;WB_HAVE_VERBOSE_RESULT_STRING=1;WB_MSGTRACE_FILTER_TIMER_MESSAGES=1;WB_PORT="os/nea/port.h";_GNU_SOURCE=1;__HEAP_SIZE=0;__STACK_SIZE=1024;__STDC_LIMIT_MACROS=1;TRACE_FILENAME="SmartSensor2Application.cpp";__INT32_TYPE__=int;__UINT32_TYPE__=unsigned int;NDEBUG=1;__cplusplus=201103L
Undefines: __INT32_TYPE__; __UINT32_TYPE__
Includes: -I/home/circleci/project/ -I/home/circleci/project/avocado/core/ -I/home/circleci/project/movesense/build/../../hwconfig/C/SS2/ -I/home/circleci/project/movesense/build/../../hwconfig/C/SS2/sdk_config/ -I/home/circleci/project/movesense/movesense_core/ -I/home/circleci/project/movesense/movesense_core/internal/DataLogger/extflash_eeprom/ -I/home/circleci/project/nea/ -I/home/circleci/project/nea/common/platform/ -I/home/circleci/project/nea/oswrapper/freertos/ -I/home/circleci/project/nea/platform/bsp/nRF5x/ -I/home/circleci/project/nea/whiteboard/quantity/ -I/home/circleci/project/vendor/FreeRTOS/FreeRTOS/FreeRTOS/Source/include/ -I/home/circleci/project/vendor/whiteboard/ -I/home/circleci/project/vendor/whiteboard/src/ -I/home/circleci/project/_build-SS2/generated/
Platform:Native
Checking /home/circleci/project/avocado/core/SmartSensor2Application.cpp: __GNUC__=1;APP_SS2_APPLICATION=1;ARCH_CORTEX=1;ARCH_CORTEX_M4=1;ARCH_NRF52=1;ARMVFP_SP__=1;BLE_STACK_SUPPORT_REQD=1;BSP_HACK_USE_INLINE_PINCONFIG=1;BSP_LINKTO_APPFLASH=1;BUILD_BSP_TICKLESS_SYSTICK=1;CMAKE_APPLICATION="SmartSensor2Application";CMAKE_EXTERNAL_PRODUCT_NAME="SmartSensor2";CMAKE_INTERNAL_PRODUCT_NAME="Avocado";CMAKE_USB_PRESENCE_POLLING_INTERVAL_MSEC=2000;CMSIS_DEVICE_HEADER="nrf52.h";CONFIG_NFCT_PINS_AS_GPIOS=1;CPU_SPEED_HZ=64000000;CPU_SPEED_HZ_ACTUAL=64000000;DATALOGGER_EXTFLASH_EEPROM=1;DEBUG_NRF=1;DISABLE_DEBUGLOG=1;FSL_RTOS_FREE_RTOS=1;KERNEL_HEAP_SIZE=0xAD80;KERNEL_MAX_NUM_OPEN_FILES=0;KERNEL_MAX_NUM_TASKS=10;KERNEL_NUM_FILESYSTEMS=0;KERNEL_TICK_RATE_HZ=1024;LOGGER_FULL_GPS_ALWAYS=false;LOGGER_FULL_GPS_INTERVAL=60;MIMOSA_BSP_NEA=1;MIMOSA_PORT_NEA=1;NEA_HACK_MODE_LP=1;NEA_HACK_MODE_STR="LP";NRF52=1;NRF52832=1;NRF52832_XXAA=1;NRF52_PAN_12=1;NRF52_PAN_15=1;NRF52_PAN_20=1;NRF52_PAN_30=1;NRF52_PAN_31=1;NRF52_PAN_36=1;NRF52_PAN_51=1;NRF52_PAN_53=1;NRF52_PAN_54=1;NRF52_PAN_55=1;NRF52_PAN_58=1;NRF52_PAN_62=1;NRF52_PAN_63=1;NRF52_PAN_64=1;NRF_DFU_SETTINGS_VERSION=1;NRF_LOG_BACKEND_SERIAL_USES_RTT=0;NRF_LOG_DEFAULT_LEVEL=0;NRF_LOG_DEFERRED=0;NRF_LOG_ENABLED=0;NRF_SD_BLE_API_VERSION=6;OD_CLAMP_2_7_V=1;PRAGMA_PACK_SUPPORTED=1;PRAGMA_PACK_SUPPORTED=1;RESOURCES_VARIANT_HEADER="/home/circleci/project/_build-SS2/wbresources/resources.h";S132=1;SERIAL_FRAME_WITH_CRC=1;SSM_DEVICE_ID=0;USE_BLE_UART=1;USE_NOFS=1;WB_ASSERT_IN_RELEASE=1;WB_BSP="bsp/nea/bsp.h";WB_EXT_CONFIG="/home/circleci/project/movesense/build/../ss2_app/WhiteboardConfig.h";WB_HACK_ENABLE_SUB_RESULT_TO_NOTIFY=1;WB_HACK_TYPE_CHECK_WARN_ONLY=1;WB_HAVE_ALIEN_STRUCTURES=1;WB_HAVE_BLE_COMM=1;WB_HAVE_BYPASS=1;WB_HAVE_COMM=1;WB_HAVE_COMM_STATISTICS=1;WB_HAVE_DEPRECATED_BYTE_STREAM=1;WB_HAVE_NON_CRITICAL_CLEANUP=1;WB_HAVE_PATH_PARAMETERS=1;WB_HAVE_SERIAL_COMM=1;WB_HAVE_TIME=1;WB_HAVE_TIMERS=1;WB_HAVE_TYPE_CHECK_PROVIDERS=1;WB_HAVE_UNKNOWN_STRUCTURES=1;WB_HAVE_VERBOSE_RESULT_STRING=1;WB_MSGTRACE_FILTER_TIMER_MESSAGES=1;WB_PORT="os/nea/port.h";_GNU_SOURCE=1;__HEAP_SIZE=0;__STACK_SIZE=1024;__STDC_LIMIT_MACROS=1;TRACE_FILENAME="SmartSensor2Application.cpp";__INT32_TYPE__=int;__UINT32_TYPE__=unsigned int;NDEBUG=1;__cplusplus=201103L...
1/449 files checked 0% done
 

Last edit: Petri Lipponen 2022-01-25