TASKING VX-toolset for TriCore v6.3r1 patch 5
Release Note (updated February 12, 2024)
Scope
This release note covers the changes between v6.3r1 and v6.3r1 patch 5 of the TASKING VX-toolset for TriCore.
For release notes prior to v6.3r1, please visit the TASKING
TriCore support website.
Contents
This patch contains changes to the following components:
- TriCore C compiler
- ARM (HSM) C compiler
- TriCore C++ compiler with support for packed structures
- TriCore linker
- TriCore control program specification file
- TriCore high level language object dumper
- TriCore ELF dump utility
- TriCore hardware debug module to support DAS version 7.2.0 and above
- TriCore debugger symbol reader
- TriCore library source files: copysign.c, copysignf.c, isinf.c, isinff.c, isnan.c, isnanf.c, f_ftohp.c,
llrint.c, llrintf.c, llrintl.c, lrint.c, lrintf.c, lrintl.c, rint.c, rintf.c, rintl.c, sqrtf.c,
fesetexceptflag.c, float_config.h, libfloat.h, fprt.h, fenv.c, except.c,
add_spf.c, div_spf.c, mul_spf.c, equ_dpf.c, equ_spf.c, is_0_dpf.c, is_0_spf.c, la_e_dpf.c, la_e_spf.c, lt_e_dpf.c, lt_e_spf.c,
cdpf2c.c, cdpf2l.c, cdpf2ll.c, cdpf2s.c, cdpf2uc.c, cdpf2ul.c,
cdpf2ull.c, cdpf2us.c, cspf2c.c, cspf2l.c, cspf2ll.c, cspf2s.c, cspf2uc.c, cspf2ul.c, cspf2ull.c and cspf2us.c
- Files to support the TC32X, TC33x, TC3Ex and TC37xEXT family, e.g. LSL files, SFR files and files to provide debugger support
- Updated LSL files for derivatives TC35x and TC37x
- Files to provide debugger support for the TC387, TC3Ex and TC37xEXT on a TC3x7 TriBoard
- Files to provide debugger support for the TC36X on a TC366 TriBoard
- Files to provide debugger support for the TC33X on a TC33X and TC3x7 TriBoard and on a ADAS TC337 TriBoard
Please note that the TriCore and ARM libraries (HSM) have been rebuilt. These libraries are also part of this patch.
For this patch, the following executable files have an updated build number: Build 21092262
- carm\bin\carm.exe
- ctc\bin\ctc.exe
- ctc\bin\cptc.exe
- ctc\bin\ltc.exe
- ctc\bin\hldumptc.exe
- ctc\bin\elfdump.exe
All other executable files still have the original v6.3r1 build number: Build 19041558
Fixed Problems
- TCVX-44441
- Incorrect use of a loop instruction
- TCVX-44443
- Intrinsics __getbyteN and __gethwN may return wrong result
- TCVX-44453
- Incorrect propagation of __pure__ function call result
- TCVX-44485
- Multi-core debugging not compliant to DAS driver version 7.2.0
- TCVX-44510
- Debugger: ELF load and parse hangs - debug session must be aborted
- TCVX-44522
- The __dsync() intrinsic does not always work as a memory fence
- TCVX-44614
- GLIBCXX_3.4.21 not defined in file libstdc++.so.6 error for Linux host
Fixed Problems in the ARM compiler (HSM)
- TCVX-44549
- ARM C compiler: loop optimization causes endless loop
- TCVX-44596
- C compiler: wrong code generation when using packed structures with some members declared as bit fields
- TCVX-44626
- Incorrect conversion of _Complex type to _Bool
Fixed Problems
- TCVX-40928
- AURIX multi-core: hex file does not contain code for cloned functions in ROM
- TCVX-43626
- XBAR0_SRI_BusErrorEvent alarm triggered by non linked fputc function
- TCVX-43754
- HLL dump tool does not include information about a static void function in the symbol table
- TCVX-43880
- Elfdump segmentation fault error when initialized functions included in the ELF file
- TCVX-43881
- Compiler MISRA 2012 rule 9.5 : incorrect flagging of rule violation
- TCVX-43911
- C compiler error S911 when MISRA C:2012 rule 16.3 is enabled and erroneous label added to switch case
- TCVX-43990
- Compiler error ctc s911: backend triggers ctc S911 with --tradeoff=0
- TCVX-44002
- Unexpected MISRA C:2012 rule 12.4 violation error
- TCVX-44022
- Unexpected W549: condition is always true warning
- TCVX-44028
- Wrong error ctc E460 for accesses to bit offset 31 using __imaskldmst intrinsic
- TCVX-44030
- SIMD optimization leads to erroneous assembly instruction
- TCVX-44041
- Assembler error E128 for C++ compiler generated code
- TCVX-44042
- Improve diagnostic for incorrect declarations
- TCVX-44044
- Check on constant expression of _Static_assert() not strict enough
- TCVX-44045
- Qualifiers const and volatile do not work inside _Generic()
- TCVX-44098
- Linker silently truncates ELF e_phnum field
- TCVX-44224
- Wrong result multiplying two INIFINITY values when using software floating-point library
- TCVX-44231
- Wrong sizeof result for atomic_flag type
- TCVX-44237
- Illegal double word access to SFR register range
- TCVX-44245
- C compiler: wrong code generation when using packed structures with members of 16-bit signed types
- TCVX-44246
- C compiler error: S911 : Expression simplification - with empty function parameter
- TCVX-44255
- C compiler: wrong code generation when using packed structures with some members declared as bit fields
- TCVX-44257
- Compiler violates EABI due to 4 byte user stack frame generation
- TCVX-44260
- Linker: ltc - Segmentation fault on LSL output section in overlay group
- TCVX-44278
- C++ compiler: generated code results in address 0x0000000 access causing bus trap
- TCVX-44286
- Directive .size missing for run-time library functions and some C library functions
- TCVX-44309
- MISRA C 2012 rule 10.4 checker reports false positive and fails to detect a violation
- TCVX-44339
- Subnormal values may incorrectly compare equal to zero
- TCVX-44377
- Linking with -lc*_fpu causes fesetround(FE_TONEAREST) to return -1 instead of 0
- TCVX-44383
- For non-trapping floating point comparisons: NaN == NaN incorrectly returns true
- TCVX-44387
- Erroneous code in code compaction function leads to invalid function parameter
- TCVX-44393
- Compiler issues double word accesses for data located in MCS memory
- TCVX-44400
- Wrong value is loaded into a 48-bit struct if used as a member of a larger 64-bit struct
- TCVX-44407
- C compiler front-end may produce imprecise FP result (±1 bit difference)
- TCVX-44419
- Linker does not insert alignment_protection section when copy_unit is greater than 1
- TCVX-44421
- Conversion of float to integer raises "Overflow" instead of "Invalid operation" exception
- TCVX-44423
- libfprt: subnormal values incorrectly compare equal to zero
- TCVX-44428
- Function fesetexceptflag() may incorrectly raise FE_INEXACT and/or call trap handler
- TCVX-44437
- Incorrect code for branch target align optimization when tail merging optimization active
- TCVX-44481
- Linker: option --global-type-checking causes a segmentation fault
Fixed Problems
- TCVX-44087
- Linker ltc: very long link / locate time >= 1 hour
Fixed Problems
- TCVX-40469
- Linker allows cloned sections outside the available DSPR0 memory range
- TCVX-43546
- Linker does not insert alignment_protection sections when a group includes sections with a different alignment
- TCVX-43913
- Compile-time concatenation of character string literal with unicode string literal fails
- TCVX-43980
- Linker may hang when the size of an output section is at least 2 MB
- TCVX-43998
- Invalid constant propagation with tripple indirection
- TCVX-44008
- Include file may be skipped when same filename is included from different directories
- TCVX-44014
- Missing initialization for local variable in a specific test case
- TCVX-44043
- Incorrect conversion of _Complex type to _Bool
- TCVX-44050
- Linker inserts section in an ordered, contiguous, fill group
- TCVX-44082
- Intrinsics __extracthwN and __extractbbyteN may return wrong result
- TCVX-44102
- Loop invariant code optimization issue
- TCVX-44215
- Standard floating-point functions that are inlined may return wrong result
- TCVX-44218
- Large floating-point numbers become zero when converted to _Float16
- TCVX-44270
- C compiler: wrong code generation when using packed structures with some members declared as bit fields of width 17..24
- TCVX-44289
- Zero-sized bit-field does not create padding before subsequent bit-field with --eabi=B
New Device Support
- Toolset support for the TC33x family
Fixed Problems
- TCVX-43868
- Run-time error for double _Complex expression passing to a function
- TCVX-43893
- C compiler omits value assignment to pointer type function argument with forward store optimization enabled
- TCVX-43915
- Unroll small loops optimization leads to wrong code when speed tradeoff -t0 used
- TCVX-43916
- C compiler - Generic Assembly Code optimization leads to false array index location in loop
- TCVX-43928
- Incorrect reordering of volatile memory reads
- TCVX-43931
- EMEM memory definition missing in TC35x LSL file
- TCVX-43940
- Erroneous code for a 'for' loop
- TCVX-43946
- Compiler Error: ctc S900 - internal consistency check failed with -O2 -t0
New Device Support
- Debugger support for TC387 chip on TC3x7 TriBoard
After installation of this patch, the directory backup_patch5
is present
in the installation directory of the product.
- Copy the contents of directory
backup_patch5
to the installation directory.
This way you overwrite the files installed by the patch.
- Remove directory
backup_patch5
.
TASKING products are protected with TASKING license management software.
License key
You need a license key when you install a TASKING product on a computer. When you order a TASKING
product from TASKING or one of its distributors, a license key will be sent to you by email or on paper.
See Obtaining a License on our website for more information.
Local TASKING License Server (not applicable to evaluation licenses)
If you have ordered a TASKING product with a floating license, you can have it serviced by the
Remote TASKING License Server (the most convenient solution) or through a Local TASKING License Server
(in case you have no external network access for example). Consult your TASKING representative for
assistance on deciding what the best setup would be for your situation.
If you like to setup up a local license server, we kindly refer you for more information to
Support for TASKING License Management System (TLM)
on our website. Here you can also download the Local TASKING License Server package.
It is advised that you install the Local TASKING License Server before you install products that
require this server.