Release date: November 21, 2024
Enhanced Code Coverage
- Coverage engine has been enhanced to better support modern C/C++ syntax.
- Improved compatibility with Python 3.14.
- Enhanced logging and diagnostics.
Support for Compilers
The following compilers are now supported:
Compiler Name | Compiler Identifier |
---|---|
Clang C/C++ Compiler v 17.0 for x86_64 | clang_17_0-x86_64 |
Clang C/C++ Compiler v 17.0 for aarch64/arm64 | clang_17_0-aarch64 |
Clang C/C++ Compiler v 18.0 for x86_64 | clang_18_0-x86_64 |
Clang C/C++ Compiler v 18.0 for aarch64/arm64 | clang_18_0-aarch64 |
GNU GCC 11.x for PowerPC | gcc_11-powerpc |
Green Hills Software Compiler for Tricore v. 2021.1.x | ghstri_2021_1 |
HighTec Clang C/C++ Compiler 8.1 for aarch32/arm | hightec-clang_8_1-aarch32 |
See Compilers.
Additional Updates
- An option to disable C/C++test instrumentation for functions with OpenMP instructions has been added. See How can I disable C/C++test code instrumentation for functions containing OpenMP instructions?
- An option to disable symbolic links expansion when generating coverage reports for Bazel projects has been added. See Collecting Coverage for Bazel Projects.
Updated in 2024.2.1
- Options to disable C/C++test instrumentation for functions with '#pragma loop' and '#pragma GCC ivdep' directives have been added. See How can I disable C/C++test code instrumentation for functions containing '#pragma loop' directives? and How can I disable C/C++test code instrumentation for functions containing '#pragma GCC ivdep' directives?
Deprecated and Removed Support
Compilers to Be Deprecated
Support for the following compilers will be deprecated in future releases:
- ARM Compiler 6.9
- Clang C/C++ Compiler v 10.0 (x86_64)
- Hexagon Clang Compiler v. 8.4.x
- QNX GCC 5.x
- QNX GCC 5.x (x86-64)
- QNX GCC 5.x (ARM)
- QNX GCC 5.x (ARM64)
- TI ARM C/C++ Compiler v18.1
- TI ARM C/C++ Compiler GNU GCC 7.x
Deprecated Compilers
Support for the following compilers is deprecated and will be removed in future releases:
- ARM Compiler 5.0
- GNU GCC 6.x
- GNU GCC 6.x (x86_64)
Removed Support for Compilers
The following compilers are no longer supported:
- GNU GCC 5.x
- GNU GCC 5.x (x86_64)
- Green Hills Software Compiler for ARM64 v. 2014.1.x
- Green Hills Software Compiler for V850 v. 2014.1.x
- Wind River GCC 4.8.x
Resolved Bugs and FRs
Bug/FR ID | Description |
---|---|
CPP-55517 | [compiler] Support for Green Hills compiler 2021.1.5 for TriCore |
CPP-56807 | [engine] Parsing fails on a Modern C++ function declaration with "const auto" |
CPP-56814 | [compiler] Support for HighTec C compiler for ARM 8.1 (runtime analysis) |
CPP-57057 | [engine] Static inline field parsing error when not initialized explicitly |
CPP-57209 | [engine] error: no instance of function template "std::construct_at" |
CPP-57361 | [engine] cpptestcc fails on __c11_atomic_is_lock_free |
CPP-57389 | [engine] Coverage instrumentation error: Mixing void and non-void results of the functor in for_each is not supported |
CPP-57398 | [engine] Instrumentation compile error: ambiguous call of overloaded Matrix... |
CPP-57399 | [engine] Coverage instrumentation error: TFixedBlockAllocator is not a template |
CPP-57484 | [engine] cpptestcc fails on __c11_atomic_load |
CPP-57517 | [engine] error: declaration is incompatible with "CInfraComArray<CMasterClass ... |
CPP-57533 | [compiler] Support for powerpc-eabi-gcc 11.2 compiler |
CPP-57553 | [engine] Variadic template stubs are ignored |
CPP-57594 | [engine] error: expected an expression static constexpr bool isComplex = ((QTypeInfo<Ts>::isComplex) || ...); |
CPP-57609 | [engine] Add option for disabling C/C++test instrumentation for functions with OpenMP code |
CPP-57628 | [engine] afxpanecontainer.h line 35: error: expected a ")" |
CPP-57678 | [engine] static assertion failed when running SCA, the original code compiles w/o issues |
CPP-57679 | [engine] Improve compiler configuration for vxtc_6_3 (--fp-model=1) |
CPP-57734 | [engine] Improve support for CLA mode of tic2000_18_1 compiler for Static Analysis |
CPP-57744 | [engine] xharness crash due to stack overflow during reconstruction |
CPP-57770 | [engine] error: incomplete type "A<void>" is not allowed |
CPP-57778 | [engine] Errors with QT brace-initialization |
CPP-57796 | [engine] error: expression must have a constant value |
CPP-57835 | [bazel] Add option to disable symlinks expansion (CPPTEST_COVERAGE_SRC_ROOT_RESOLVE_SYMLINKS) |
CPP-57899 | [engine] Instrumentation parse error: more than one operator "=" matches these operands |
CPP-57919 | [compiler] Improve support for -c99 option for TI compilers |
CPP-57990 | [compiler] Inconsistent handling of profiling flags with GNU GCC |
CPP-58001 | [engine] C++23 literal suffixes for floats cause parse errors |
CPP-58053 | [engine] 'static constexpr' array init error |
CPP-58058 | [engine] no instance of function template "printValue" matches the argument list |
CPP-58070 | [engine] Instrumentation problem when -ignore-const-decisions is enabled |
CPP-58072 | [engine] Class does not initialize correctly during instrumentation |
CPP-58077 | [engine] Instrumentation problem due to extra brackets |
CPP-58251 | [engine] I\O exception was caught - Unable to read XML file |
CPP-58585 | [engine] Instrumentation error: cannot deduce "auto" type |
CPP-57674 | [engine] Add option for disabling C/C++test instrumentation for functions with (clang) pragma loop directives |
CPP-57832 | [engine] Add option for disabling C/C++test instrumentation for functions with #pragma GCC ivdep |
CPP-58600 | [engine] STATUS_ACCESS_VIOLATION: The thread attempts to read from or write to a virtual address for which it does not have access |
CPP-58629 | [engine] Wrong type deduction for list-initialized auto-typed compound arguments |
CPP-58658 | [engine] error: nontype "Fei::Imaging::Spectrum::const_spectrum_data_ref<T>::iterator [with T=T]" is not a type name |
CPP-58659 | [engine] error: default constexpr comparison function calls non-constexpr function function |
CPP-58723 | [engine] Parser errors when using atomics in VS 2022 |
CPP-58754 | [engine] error: type name is not allowed |
CPP-58776 | [engine] Support for GCC array initializers |
CPP-58781 | [engine] error: more than one operator "<" matches these operands |
CPP-58787 | [engine] Support for GCC C++20 mixed initializers |
CPP-58865 | [engine] Parse errors in redeclaration of base class members |