2026-08-21 06:58 ftp://ftp.de.debian.org/debian/pool/main/r/rtc-testbench/rtc-testbench_5.4.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --library=openssl --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning --suppress=normalCheckLevelConditionExpressions -D__GNUC__ --platform=unix64 -j96 platform: Linux-6.8.0-137-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.4.0 compiler: g++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0 cppcheck: head 2.21.0 head-info: 2e19539 (2026-08-18 17:04:48 +0200) count: 238 241 elapsed-time: 0.8 0.7 head-timing-info: old-timing-info: head results: RTC-Testbench-5.4/src/xdp_kern_avtp_vid400.c:63:17: error: There is an unknown macro here somewhere. Configuration is required. If SEC is a macro then please configure it. [unknownMacro] RTC-Testbench-5.4/src/security.c:67:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/security.c:102:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/xdp_kern_opcua_vid100.c:63:17: error: There is an unknown macro here somewhere. Configuration is required. If SEC is a macro then please configure it. [unknownMacro] RTC-Testbench-5.4/src/xdp_kern_opcua_vid200.c:63:17: error: There is an unknown macro here somewhere. Configuration is required. If SEC is a macro then please configure it. [unknownMacro] RTC-Testbench-5.4/src/xdp_kern_opcua_vid300.c:63:17: error: There is an unknown macro here somewhere. Configuration is required. If SEC is a macro then please configure it. [unknownMacro] RTC-Testbench-5.4/src/xdp_kern_profinet_veth_dispatch.c:76:17: error: There is an unknown macro here somewhere. Configuration is required. If SEC is a macro then please configure it. [unknownMacro] RTC-Testbench-5.4/src/xdp_kern_profinet_vid100.c:89:17: error: There is an unknown macro here somewhere. Configuration is required. If SEC is a macro then please configure it. [unknownMacro] RTC-Testbench-5.4/src/xdp_kern_profinet_vid200.c:89:17: error: There is an unknown macro here somewhere. Configuration is required. If SEC is a macro then please configure it. [unknownMacro] RTC-Testbench-5.4/src/xdp_metadata.c:12:43: style: Parameter 'ctx' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/hist.c:43:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/hist.c:98:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/hist.c:114:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/hist.c:143:50: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable VERSION [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/thread.h:27:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:20:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_LEVEL_INFO [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:71:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_LEVEL_INFO [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:97:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_LEVEL_INFO [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/log_mqtt.c:34:70: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/log_mqtt.c:38:59: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/utils.h:165:30: style: Variable 'meta_data' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/log_json.c:37:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/log_json.c:74:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/log_json.c:117:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/workload.c:29:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/workload.c:85:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/thread.c:39:43: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SCHED_FIFO [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/thread.c:86:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PTHREAD_PRIO_INHERIT [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/thread.c:95:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CLOCK_MONOTONIC [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/thread.c:163:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/mirror.c:99:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/mirror.c:110:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable VERSION [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/mirror.c:126:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable optarg [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/reference.c:97:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:104:12: style: Variable 'head' is reassigned a value before the old one has been used. [redundantAssignment] RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:103:7: note: head is assigned RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:104:12: note: head is overwritten RTC-Testbench-5.4/src/reference.c:108:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable VERSION [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/reference.c:123:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable optarg [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.h:42:16: style: Argument 'ptr_chaser' shadows outer variable [shadowVariable] RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:12:15: note: Shadowed variable RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.h:42:16: note: Shadow argument RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:63:40: style: Argument 'ptr_chaser' shadows outer variable [shadowVariable] RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:12:15: note: Shadowed variable RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:63:40: note: Shadow argument RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.c:14:37: style: Parameter 'argv' can be declared as const array [constParameter] RTC-Testbench-5.4/tests/workloads/pointer_chasing/pointer_chasing.h:42:16: style: Parameter 'ptr_chaser' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/log.c:30:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/log.c:215:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/hist.c:160:22: style: Variable 'hist' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/hist.c:173:22: style: Variable 'hist' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/hist.c:182:21: style: Variable 'hist' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/hist.c:190:21: style: Variable 'hist' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/packet.c:25:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/packet.c:124:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable iov_base [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/packet.c:188:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable iov_base [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/workload.c:20:10: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] RTC-Testbench-5.4/src/workload.c:23:11: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] RTC-Testbench-5.4/src/workload.c:36:10: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] RTC-Testbench-5.4/src/workload.c:39:11: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] RTC-Testbench-5.4/src/workload.c:143:2: warning: Either the condition '!thread_context' is redundant or there is possible null pointer dereference: thread_context. [nullPointerRedundantCheck] RTC-Testbench-5.4/src/workload.c:144:6: note: Assuming that condition '!thread_context' is not redundant RTC-Testbench-5.4/src/workload.c:143:2: note: Null pointer dereference RTC-Testbench-5.4/src/workload.c:74:38: style:inconclusive: Function 'workload_context_init' argument 4 names different: declaration 'workload_argument' definition 'workload_arguments'. [funcArgNamesDifferent] RTC-Testbench-5.4/src/workload.h:33:38: note: Function 'workload_context_init' argument 4 names different: declaration 'workload_argument' definition 'workload_arguments'. RTC-Testbench-5.4/src/workload.c:74:38: note: Function 'workload_context_init' argument 4 names different: declaration 'workload_argument' definition 'workload_arguments'. RTC-Testbench-5.4/src/workload.c:75:44: style:inconclusive: Function 'workload_context_init' argument 6 names different: declaration 'workload_setup_argument' definition 'workload_setup_arguments'. [funcArgNamesDifferent] RTC-Testbench-5.4/src/workload.h:34:44: note: Function 'workload_context_init' argument 6 names different: declaration 'workload_setup_argument' definition 'workload_setup_arguments'. RTC-Testbench-5.4/src/workload.c:75:44: note: Function 'workload_context_init' argument 6 names different: declaration 'workload_setup_argument' definition 'workload_setup_arguments'. RTC-Testbench-5.4/src/workload.c:15:8: style: Variable 'token' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/workload.c:73:73: style: Parameter 'workload_file' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/workload.c:74:13: style: Parameter 'workload_function' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/workload.c:74:38: style: Parameter 'workload_arguments' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/workload.c:75:13: style: Parameter 'workload_setup_function' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/workload.c:75:44: style: Parameter 'workload_setup_arguments' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/workload.c:79:8: style: Variable 'error' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/log_json.c:26:72: style: Parameter 'ctx' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/log_json.c:157:70: style: Parameter 'ctx' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/net.c:157:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PACKET_MR_PROMISC [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:173:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable F_GETFL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:193:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_P_ALL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:245:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:275:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:310:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:362:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:413:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:451:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:489:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:527:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:562:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:613:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SOCK_DGRAM [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/net.c:672:70: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sockaddr_in [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/thread.c:18:71: style:inconclusive: Function 'create_rt_thread' argument 3 names different: declaration 'priority' definition 'thread_priority'. [funcArgNamesDifferent] RTC-Testbench-5.4/src/thread.h:95:71: note: Function 'create_rt_thread' argument 3 names different: declaration 'priority' definition 'thread_priority'. RTC-Testbench-5.4/src/thread.c:18:71: note: Function 'create_rt_thread' argument 3 names different: declaration 'priority' definition 'thread_priority'. RTC-Testbench-5.4/src/thread.c:171:2: warning: Uninitialized variable: p [uninitvar] RTC-Testbench-5.4/src/thread.c:167:9: note: Assuming condition is false RTC-Testbench-5.4/src/thread.c:171:2: note: Uninitialized variable: p RTC-Testbench-5.4/src/xdp.c:43:35: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XDP_MODE_NATIVE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/xdp.c:243:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/xdp.c:307:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/xdp.c:355:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable _SC_PAGE_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/xdp.c:442:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/xdp.c:522:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/xdp.c:709:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/xdp.c:844:53: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable len [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/dcp_thread.c:39:50: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/dcp_thread.c:65:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/dcp_thread.c:181:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PF_PACKET [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/dcp_thread.c:264:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/dcp_thread.c:337:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/dcp_thread.c:389:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/dcp_thread.c:432:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/mirror.c:114:26: style: Parameter 'argv' can be declared as const array [constParameter] RTC-Testbench-5.4/src/reference.c:112:26: style: Parameter 'argv' can be declared as const array [constParameter] RTC-Testbench-5.4/src/lldp_thread.c:38:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/lldp_thread.c:66:35: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/lldp_thread.c:177:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/lldp_thread.c:286:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/lldp_thread.c:349:82: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/lldp_thread.c:410:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/lldp_thread.c:452:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/udp_thread.c:71:58: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sockaddr_in [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/udp_thread.c:108:58: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sockaddr_in [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/udp_thread.c:153:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CLOCK_MONOTONIC [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/udp_thread.c:222:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/udp_thread.c:352:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/udp_thread.c:401:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rtc_thread.c:43:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rtc_thread.c:181:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rtc_thread.c:310:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rtc_thread.c:475:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rtc_thread.c:524:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rtc_thread.c:577:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/stat.c:84:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/stat.c:622:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/stat.c:783:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/layer2_thread.c:70:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/layer2_thread.c:222:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/layer2_thread.c:316:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/layer2_thread.c:448:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/layer2_thread.c:562:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/layer2_thread.c:612:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/layer2_thread.c:680:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:45:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:50:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:65:41: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:88:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:137:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:189:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:240:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:597:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:620:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/utils.c:658:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ethhdr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rta_thread.c:42:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rta_thread.c:181:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rta_thread.c:294:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rta_thread.c:439:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rta_thread.c:491:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rta_thread.c:535:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/rta_thread.c:588:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/tsn_thread.c:49:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable XSK_UMEM__DEFAULT_FRAME_SIZE [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/tsn_thread.c:201:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/tsn_thread.c:339:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ETH_ALEN [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/tsn_thread.c:524:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/tsn_thread.c:575:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/tsn_thread.c:651:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/log.c:129:84: style: Condition 'config_have_rx_timestamp()' is always false [knownConditionTrueFalse] RTC-Testbench-5.4/src/log.c:129:84: note: Calling function 'config_have_rx_timestamp' returns 0 RTC-Testbench-5.4/src/log.c:129:84: note: Condition 'config_have_rx_timestamp()' is always false RTC-Testbench-5.4/src/log.c:140:84: style: Condition 'config_have_rx_timestamp()' is always false [knownConditionTrueFalse] RTC-Testbench-5.4/src/log.c:140:84: note: Calling function 'config_have_rx_timestamp' returns 0 RTC-Testbench-5.4/src/log.c:140:84: note: Condition 'config_have_rx_timestamp()' is always false RTC-Testbench-5.4/src/log.c:151:30: style: Condition 'config_have_rx_timestamp()' is always false [knownConditionTrueFalse] RTC-Testbench-5.4/src/log.c:151:30: note: Calling function 'config_have_rx_timestamp' returns 0 RTC-Testbench-5.4/src/log.c:151:30: note: Condition 'config_have_rx_timestamp()' is always false RTC-Testbench-5.4/src/log.c:322:60: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/xdp.c:282:30: style: Condition 'config_have_rx_timestamp()' is always false [knownConditionTrueFalse] RTC-Testbench-5.4/src/xdp.c:282:30: note: Calling function 'config_have_rx_timestamp' returns 0 RTC-Testbench-5.4/src/xdp.c:282:30: note: Condition 'config_have_rx_timestamp()' is always false RTC-Testbench-5.4/src/xdp.c:547:36: error: Null pointer dereference [nullPointer] RTC-Testbench-5.4/src/xdp.c:576:36: error: Null pointer dereference [nullPointer] RTC-Testbench-5.4/src/xdp.c:607:39: error: Null pointer dereference [nullPointer] RTC-Testbench-5.4/src/xdp.c:799:38: error: Null pointer dereference [nullPointer] RTC-Testbench-5.4/src/xdp.c:805:39: error: Null pointer dereference [nullPointer] RTC-Testbench-5.4/src/xdp.c:822:40: error: Null pointer dereference [nullPointer] RTC-Testbench-5.4/src/xdp.c:835:40: error: Null pointer dereference [nullPointer] RTC-Testbench-5.4/src/xdp.c:46:56: style: Parameter 'obj' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/xdp.c:305:60: style: Parameter 'xsk' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/xdp.c:772:39: style: Parameter 'data' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/xdp.c:774:19: style: Variable 'meta' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/xdp.c:776:14: portability: 'data' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/dcp_thread.c:31:58: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/dcp_thread.c:45:60: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/dcp_thread.c:51:41: style: Variable 'eth_old' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/dcp_thread.c:133:31: style: Variable 'eth' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/dcp_thread.c:419:31: style: Variable 'dcp_config' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/dcp_thread.c:546:57: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/lldp_thread.c:45:58: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/lldp_thread.c:142:17: style: Variable 'eth' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/lldp_thread.c:279:30: style: Variable 'meta' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/lldp_thread.c:440:31: style: Variable 'lldp_config' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/lldp_thread.c:562:58: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/udp_thread.c:515:51: style:inconclusive: Function 'udp_low_threads_create' argument 1 names different: declaration 'thread_context' definition 'udp_thread_context'. [funcArgNamesDifferent] RTC-Testbench-5.4/src/udp_thread.h:19:51: note: Function 'udp_low_threads_create' argument 1 names different: declaration 'thread_context' definition 'udp_thread_context'. RTC-Testbench-5.4/src/udp_thread.c:515:51: note: Function 'udp_low_threads_create' argument 1 names different: declaration 'thread_context' definition 'udp_thread_context'. RTC-Testbench-5.4/src/udp_thread.c:534:52: style:inconclusive: Function 'udp_high_threads_create' argument 1 names different: declaration 'thread_context' definition 'udp_thread_context'. [funcArgNamesDifferent] RTC-Testbench-5.4/src/udp_thread.h:23:52: note: Function 'udp_high_threads_create' argument 1 names different: declaration 'thread_context' definition 'udp_thread_context'. RTC-Testbench-5.4/src/udp_thread.c:534:52: note: Function 'udp_high_threads_create' argument 1 names different: declaration 'thread_context' definition 'udp_thread_context'. RTC-Testbench-5.4/src/udp_thread.c:29:57: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/udp_thread.c:502:64: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/stat.c:536:84: style: Condition 'config_have_rx_timestamp()' is always false [knownConditionTrueFalse] RTC-Testbench-5.4/src/stat.c:536:84: note: Calling function 'config_have_rx_timestamp' returns 0 RTC-Testbench-5.4/src/stat.c:536:84: note: Condition 'config_have_rx_timestamp()' is always false RTC-Testbench-5.4/src/stat.c:743:47: style:inconclusive: Function 'stat_frame_workload' argument 1 names different: declaration '' definition 'frame_type'. [funcArgNamesDifferentUnnamed] RTC-Testbench-5.4/src/rtc_thread.c:34:58: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/rtc_thread.c:718:31: style: Variable 'rtc_config' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/rtc_thread.c:748:57: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/layer2_thread.c:37:64: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/layer2_thread.c:154:31: style: Variable 'eth' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/layer2_thread.c:453:17: style: Variable 'eth' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/layer2_thread.c:463:32: style: Variable 'veth' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/layer2_thread.c:787:31: style: Variable 'l2_config' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/layer2_thread.c:810:64: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/layer2_thread.c:466:5: portability: 'p' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/layer2_thread.c:470:5: portability: 'p' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/layer2_thread.c:489:4: portability: 'p' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/tsn_thread.c:874:51: style:inconclusive: Function 'tsn_low_threads_create' argument 1 names different: declaration 'thread_context' definition 'tsn_thread_context'. [funcArgNamesDifferent] RTC-Testbench-5.4/src/tsn_thread.h:25:51: note: Function 'tsn_low_threads_create' argument 1 names different: declaration 'thread_context' definition 'tsn_thread_context'. RTC-Testbench-5.4/src/tsn_thread.c:874:51: note: Function 'tsn_low_threads_create' argument 1 names different: declaration 'thread_context' definition 'tsn_thread_context'. RTC-Testbench-5.4/src/tsn_thread.c:898:52: style:inconclusive: Function 'tsn_high_threads_create' argument 1 names different: declaration 'thread_context' definition 'tsn_thread_context'. [funcArgNamesDifferent] RTC-Testbench-5.4/src/tsn_thread.h:20:52: note: Function 'tsn_high_threads_create' argument 1 names different: declaration 'thread_context' definition 'tsn_thread_context'. RTC-Testbench-5.4/src/tsn_thread.c:898:52: note: Function 'tsn_high_threads_create' argument 1 names different: declaration 'thread_context' definition 'tsn_thread_context'. RTC-Testbench-5.4/src/tsn_thread.c:40:58: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/tsn_thread.c:160:64: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/tsn_thread.c:861:64: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/utils.c:604:3: error: Resource leak: fd [resourceLeak] RTC-Testbench-5.4/src/utils.c:82:41: style: Variable 'eth_old' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/utils.c:247:17: style: Variable 'eth' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/utils.c:259:32: style: Variable 'veth' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/utils.c:299:18: style: Variable 'begin_of_aad_data' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/utils.c:341:18: style: Variable 'begin_of_aad_data' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/utils.c:479:18: style: Variable 'begin_of_aad_data' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/utils.c:512:18: style: Variable 'begin_of_aad_data' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/utils.c:557:16: style: Variable 'iv' can be declared as const array [constVariable] RTC-Testbench-5.4/src/utils.c:68:17: portability: 'buffer' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/utils.c:68:69: portability: 'buffer' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/utils.c:262:5: portability: 'p' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/utils.c:266:5: portability: 'p' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/utils.c:287:5: portability: 'p' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/utils.c:306:5: portability: 'p' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer] RTC-Testbench-5.4/src/rta_thread.c:33:58: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/rta_thread.c:743:31: style: Variable 'rta_config' can be declared as pointer to const [constVariablePointer] RTC-Testbench-5.4/src/rta_thread.c:773:57: style: Parameter 'thread_context' can be declared as pointer to const [constParameterPointer] RTC-Testbench-5.4/src/config.c:59:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:78:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:88:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:99:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:111:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:159:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:550:44: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CLOCK_TAI [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:918:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:1288:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:1325:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] RTC-Testbench-5.4/src/config.c:1424:6: style: Condition '!config_have_xdp_tx_time()' is always true [knownConditionTrueFalse] RTC-Testbench-5.4/src/config.c:1424:30: note: Calling function 'config_have_xdp_tx_time' returns 0 RTC-Testbench-5.4/src/config.c:1424:6: note: Condition '!config_have_xdp_tx_time()' is always true RTC-Testbench-5.4/src/config.c:1437:6: style: Condition '!config_have_tx_timestamp()' is always true [knownConditionTrueFalse] RTC-Testbench-5.4/src/config.c:1437:31: note: Calling function 'config_have_tx_timestamp' returns 0 RTC-Testbench-5.4/src/config.c:1437:6: note: Condition '!config_have_tx_timestamp()' is always true RTC-Testbench-5.4/src/config.c:1455:6: style: Condition '!config_have_busy_poll()' is always true [knownConditionTrueFalse] RTC-Testbench-5.4/src/config.c:1455:28: note: Calling function 'config_have_busy_poll' returns 0 RTC-Testbench-5.4/src/config.c:1455:6: note: Condition '!config_have_busy_poll()' is always true RTC-Testbench-5.4/src/config.c:1465:6: style: Condition '!config_have_mosquitto()' is always true [knownConditionTrueFalse] RTC-Testbench-5.4/src/config.c:1465:28: note: Calling function 'config_have_mosquitto' returns 0 RTC-Testbench-5.4/src/config.c:1465:6: note: Condition '!config_have_mosquitto()' is always true RTC-Testbench-5.4/src/config.c:901:23: style: Variable 'default_debug_montitor_destination' can be declared as const array [constVariable] RTC-Testbench-5.4/src/config.c:903:23: style: Variable 'default_lldp_destination' can be declared as const array [constVariable] RTC-Testbench-5.4/src/config.c:904:23: style: Variable 'default_destination' can be declared as const array [constVariable] RTC-Testbench-5.4/src/config.c:905:23: style: Variable 'default_dcp_identify' can be declared as const array [constVariable] diff: 2.21.0 RTC-Testbench-5.4/src/thread.c:19:47: style:inconclusive: Function 'create_rt_thread' argument 6 names different: declaration '' definition 'data'. [funcArgNamesDifferentUnnamed] 2.21.0 RTC-Testbench-5.4/src/xdp.c:789:11: style:inconclusive: Function 'xdp_receive_frames' argument 5 names different: declaration '' definition 'data'. [funcArgNamesDifferentUnnamed] 2.21.0 RTC-Testbench-5.4/src/xdp.c:789:43: style:inconclusive: Function 'xdp_receive_frames' argument 6 names different: declaration '' definition 'tx_time'. [funcArgNamesDifferentUnnamed] DONE