This is a list of currently open issues for the TASKING SmartCode v10.1r1.
The list may include issues found in later releases, whether such issues also appear in this release has not always been verified yet. See below for the list of closed issues. The list of fixed issues for v10.1r1 is included in the release notes of the product.
ID | Summary |
SMRT-143 |
C compiler: wrong code generation: dextr/extr.u with pos = 32 (out of range) |
SMRT-158 |
Compiler error ctc S911 with MISRA rule 10.3 |
SMRT-171 |
SW implementation of C standard library function fmaf() does not raise FE_INVALID when returning NAN |
SMRT-195 |
Loading failed error when hex or srec files for individual memories are created |
SMRT-199 |
Misleading 'ctc E350: invalid constraint for parameter 1' error indicating wrong parameter number |
SMRT-211 |
Functions memcpy(), memmove(), and memset() may fail with a bus trap when accessing the Peripheral Space |
SMRT-212 |
TriCore compiler may generate double word access instructions to peripheral memory |
SMRT-222 |
strtod and scanf of float/double give incorrect results for many hexadecimal inputs |
SMRT-243 |
C compiler: MISRA C 2012 rule 3.2 - false positive error for line splicing |
SMRT-254 |
C++ compiler cannot assign result of std::numeric_limits<float>::infinity() to constexpr variable |
SMRT-256 |
Linker segmentation fault on very long symbol names |
SMRT-259 |
C compiler takes a long time to process a C++ compiler generated input file |
SMRT-262 |
C++ compiler error 'E0828: ... support for "new[]" and "delete[]" is disabled' for option --no-array-new-and-delete |
SMRT-277 |
C compiler: wrong code generation for float-to-int conversion when using #pragma STDC FENV_ACCESS ON: no FE_INVALID is raised |
SMRT-281 |
Constant propagation optimization may violate #pragma STDC FENV_ACCESS ON |
SMRT-282 |
Control flow simplification optimization may violate #pragma STDC FENV_ACCESS ON |
SMRT-286 |
Atomic load is removed in some cases |
SMRT-287 |
8051 compiler: Conditional illegal sequential load of volatile address |
SMRT-292 |
C compiler: MISRA C 2012 rule 18.8 erroneously flags violation of variable-length array |
SMRT-294 |
Calling exit from a static object destructor causes a dead lock |
SMRT-298 |
Conversion double-to-float may produce 0 instead of FLT_MIN |
SMRT-301 |
Archiver option -w/--warning does nothing |
SMRT-312 |
Function @FLD accepts negative arguments with undefined behavior |
SMRT-319 |
S911 error when any MISRA C 2012 rule check for rules 10.x is enabled |
SMRT-322 |
Software implementation of C standard library function fma may return 1.0 instead of INFINITY |
SMRT-325 |
Using LSL group fill keyword without a value does not fill alignment gaps with zeros |
SMRT-326 |
S911 error when automatic inlining enabled plus size/speed tradeoff value less than 2 |
SMRT-327 |
Float values need to be word aligned and not halfword aligned |
SMRT-328 |
Erroneous code generation due to loop fusion optimization |
SMRT-329 |
Struct parameter passing error in a va_arg use case |
SMRT-334 |
PPU copytable processing causes ECC memory issues on TC49x hardware |
SMRT-335 |
FPU instructions may corrupt 64-bit integer computations |
SMRT-338 |
Non EABI compliant bitfield offset used in a struct with a structsize larger than 32 bit |
SMRT-343 |
C compiler: incorrect integer promotion using expression simplification optimization |
SMRT-345 |
C compiler: missing truncation for cast that is converted to _Bool |
SMRT-347 |
S911 internal consistency check failed error when using a VLA in a function call |
SMRT-352 |
Preprocessor output is not included in the given output folder |
SMRT-358 |
C++ Compiler: Non EABI compliant bitfield offset used in a struct |
SMRT-359 |
DSP-C: operations on __sfract / __wrap __sfract may produce incorrect results |
SMRT-360 |
Missing zero-extend for indirect store to _Bool automatic variable |
SMRT-362 |
C compiler: Incorrect CSE of VLA size expression |
SMRT-363 |
C compiler: flexible array member initialization: diagnostics may be missing |
SMRT-366 |
Segmentation fault error due to LSL sizeof built-in function usage in a non-supported context |
SMRT-367 |
Incorrect vectorization of small loop with unsigned iterator |
SMRT-370 |
C++ compiler generates code not accepted by the C compiler when --no-inlining option used |
SMRT-371 |
C++ compiler generates code not accepted by the C compiler when --g++ option used |
SMRT-374 |
PPU Interrupt handlers do not end up in interrupt table |
SMRT-377 |
Compiler ignores variable value change after this has been passed by reference in a function call |
SMRT-383 |
Inconsistent W549 condition is always true warning, depending on the constant propagation optimization setting |
SMRT-388 |
Compiler overwrites a complete byte in a bitstruct whereas only two bits are modified |
SMRT-393 |
Wrong code generation for an if-else statement |
SMRT-394 |
Erroneous code generated for C++ code using __disable_and_save and __restore intrinsics |
SMRT-395 |
Wrong symbol value for empty copy table sub-table |
SMRT-396 |
Auto-vectorization may produce an "infinite" loop |
SMRT-398 |
Memory access trap due to empty copy table for core1 |
SMRT-399 |
C51 assembler: missing diagnostics for sfr bit type expressions |
SMRT-401 |
Erroneous code generation due to incomplete address register initialization |
SMRT-403 |
Missing diagnostic message W507 variable is possibly uninitialized |
SMRT-405 |
Unclarity about the interpretation of Safety Manual guideline "Verify object file" |
SMRT-406 |
C compiler error S900 internal consistency check failed - please report |
SMRT-407 |
User stack demand higher than calculated by the C compiler |
SMRT-408 |
Linker error E121 'relocation value out of range' when assembler optimizations disabled |
SMRT-413 |
Default near allocation is not disabled for floating point libraries |
SMRT-417 |
Linker feature --whole-archive ignores object modules without exported symbols |
SMRT-422 |
Run-time stack check will fail when project uses separate interrupt stack |
SMRT-425 |
Struct alignments for bit-fields not always EABI compliant |
SMRT-426 |
Incorrect alignment of vstack |
SMRT-427 |
Control program: incorrect handling of -L option without argument |
SMRT-429 |
Purpose of guideline "Generate intermediate files and diagnostics files" is not clearly specified |
SMRT-430 |
Linker assigns two PPU variables to the same memory location incorrectly |
SMRT-436 |
C compiler: unexpected "Assertion failed" when using _Alignas for an object with block scope |
SMRT-437 |
Compiler issues ld.dd instructions to read data from EEPROM (DFLASH) memory which is not permitted |
SMRT-447 |
Optimization ignores __weak__ attribute in the code |
SMRT-449 |
LSL macro NOXC800INIT is not documented |
SMRT-451 |
C compiler error S917: internal consistency check failed - please report |
SMRT-453 |
MISRA C:2012 rule 5.3 violation when math.h and libfloat.h are included |
SMRT-459 |
Overlapping sections created when a reserved section is used with a memory fill entry |
SMRT-471 |
Example included in chapter 7.9.12. Stack Size Estimation is erroneous |
SMRT-479 |
ARC return of struct in register falls through |
SMRT-487 |
C compiler: VLA: error S911: internal consistency check failed - please report |
SMRT-491 |
Trap encountered when debugging an elf file while the hex file works normal |
SMRT-492 |
Loading specific ELF file in the debugger takes a long time to complete |
SMRT-495 |
Erroneous reserved size calculated in memory usage section |
SMRT-496 |
C Compiler: _Bool - incorrect expression evaluation |
SMRT-497 |
Compiler conducts a signed division instead of an unsigned one in a specific use case |
SMRT-500 |
C compiler ignores cast in a specific use case for a function return value |
SMRT-502 |
Compiler: incorrect return value |
SMRT-508 |
Copy table processing for other cores than core 0 causes a bus trap |
SMRT-509 |
C compiler may leave empty .src file when it is killed |
SMRT-514 |
Header file setjmp.h - MISRA C check disabling not restored to default |
SMRT-515 |
Erroneous code when loading a _Bool type variable into a char type using a _Bool pointer in an inline function |
SMRT-522 |
Generate debug information for used symbols only |
SMRT-528 |
Compiler generates wrong code for loops with 64-bit iterators |
SMRT-529 |
Header file Ifx_TypesReg.h does not support C++ compiler usage |
SMRT-538 |
User stack pointer 4-byte aligned when interrupt occurs between FCALL and FRET |
SMRT-540 |
Flow optimization causes missing read operation |
SMRT-543 |
Compiler carc misses check for __vccm pointer qualifier |
SMRT-549 |
Wrong ABS pattern optimization for float or double |
SMRT-551 |
Tool elfstrip breaks weak definition replacement for references in same object file |
SMRT-552 |
Incremental linking breaks weak definition replacement for references in same object file |
SMRT-554 |
Structs including function or data pointers are not initialized in a PIM application |
SMRT-556 |
Invalid strength reduction for subscript with unsigned wraparound |
SMRT-559 |
DSP-C: Constant folding involving fixed-point types may produce incorrect results |
SMRT-560 |
Wrong bit-field alignment for a short type member of a struct |
SMRT-561 |
Stack is not initialized for some __channel functions with run-time library calls |
SMRT-568 |
PPU uncached variables are accessed from TriCore side via cached addresses |
SMRT-570 |
Forward store optimization for weak variable causes NULL pointer dereference |
SMRT-572 |
PPU C compiler does not generate instructions bypassing the cache |
SMRT-575 |
Only the first quarter of the PPU image is copied by _ppu_init routine |
SMRT-577 |
Variable with the attribute uncached gets located in CPUcs.DSPR memory (0x10000000) |
SMRT-578 |
MISRA global rules are not checked when only one module is supplied |
SMRT-579 |
An atomic_flag type variable (stdatomic.h) ends up in cached memory |
SMRT-583 |
Call graph not correct for aliases |
SMRT-585 |
TriCore compiler does not warn about an extern __uncached__ variable declaration |
SMRT-586 |
Loop invariant code optimization issue |
SMRT-587 |
Wrong iterator values after jumping into loop |
SMRT-589 |
MOVL optimized out even when zero status bit is significant |
SMRT-590 |
Object dump tools issue incorrect assembly instruction 'NOR' instead of 'NOT' |
SMRT-592 |
Evaluation of floating expressions involving NaN may produce wrong results |
SMRT-594 |
Compiler conducts a signed modulo calculation instead of unsigned |
SMRT-599 |
Memory access out of bounds due to a missing conversion of the loop increment |
SMRT-601 |
Absolute placement of sda group fails due to erroneous arch_ppu.lsl LSL file content |
SMRT-608 |
Incorrect constant propagation |
SMRT-609 |
C compiler c51 generates wrong code |
SMRT-621 |
Compiler generated code reads from uninitialized stack address |
SMRT-622 |
Erroneous code for XOR assignment in a nested loop |
SMRT-623 |
C compiler ignores cast in a specific use case for a function return value |
SMRT-635 |
Compiler generates ld.da/st.da instructions for copying 8-byte structs in peripheral memory |
SMRT-640 |
Software FP implementation of float16 type conversion does not raise inexact exception on overflow |
SMRT-644 |
errno is not a macro |
SMRT-652 |
C compiler generates incorrect array index values |
SMRT-655 |
FP library: incorrect missing FE_INVALID exception |
SMRT-660 |
C++ compiler allows #defining a keyword |
SMRT-661 |
C++ compiler implementation of std::is_trivial<> does not check all destructor requirements |
SMRT-664 |
C++ compiler does not detect certain invalid namespace redeclarations |
SMRT-665 |
C++ compiler does not detect constexpr use of defaulted constructor that cannot be constexpr |
SMRT-667 |
C++ compiler does not ignore explicit conversion functions for implicit conversion |
SMRT-669 |
C++ compiler accepts pointer to integer casts in constant expressions |
SMRT-670 |
Problems using an alias for the destructor invocation of a templated class |
SMRT-672 |
C++ compiler template resolution may fail when explicit template parameters are provided in function use |
SMRT-673 |
C++ compiler does not emit error for empty attribute list on member declaration without declarator |
SMRT-675 |
C++ compiler accepts auto specifier with multiple trailing return type function declarations |
SMRT-687 |
Optimization error when register names used as C variable names |
SMRT-697 |
Incorrect peephole optimization for specific use case |
SMRT-70 |
Inconsistent .cproject file content after a project clean |
SMRT-704 |
Invalid floating-point transformation x - x == 0 |
SMRT-711 |
Function strcpy() can produce bus interrupt |
SMRT-713 |
Function strcmp() can produce bus interrupt |
SMRT-715 |
Assembler emits an invalid call when the offset between functions at fixed addresses (__at) is too large |
SMRT-717 |
Common debug info section generated by C compiler may contain references to code sections |
SMRT-718 |
carc S900: internal consistency check failed - please report |
SMRT-723 |
C compiler: missing cast to short |
SMRT-729 |
C compiler error ctc S917: internal consistency check failed due to erroneous loop optimization |
SMRT-730 |
Erroneous spilling of 64-bit variables |
SMRT-737 |
Erroneous code due to a missing cast in a specific use case |
SMRT-739 |
Wrong result for signed right shift-and with immediate values |
SMRT-744 |
ARC linker rejects object files with zero e_flags field when targeting TC4Dx |
SMRT-747 |
Incorrect sign extension for compound operation on bit-field with -OE |
SMRT-749 |
Incorrect constant folding with __sat types |
SMRT-751 |
Store merging may give wrong result |
SMRT-757 |
High byte missing from short with --mil-split |
SMRT-759 |
Erroneous code for do-while loop |
SMRT-772 |
C++ compiler does not emit error for lambda function with parameter without default argument following parameter with default argument |
SMRT-773 |
Compiler reports false positive warning W529 for a use case |
SMRT-776 |
C compiler error S911: internal consistency check failed for a use case using goto labels |
SMRT-778 |
Compiler ignores cast in a specific use case |
SMRT-779 |
C compiler should not issue warning W542: missing braces around initializer for a universal zero initialization |
SMRT-781 |
C Compiler: incorrect shift calculation for long long cast int |
SMRT-783 |
Scheduler incorrectly reorders loads and stores |
SMRT-787 |
Read from union member incorrectly removed by optimization |
SMRT-788 |
C Compiler: incorrect optimization of cast operation from int to short |
SMRT-789 |
C Compiler: assignment in loop ignored |
SMRT-797 |
Linker does not verify a possible overlap in the section name in a section select statement |
SMRT-803 |
Incorrect copy table code for unaligned destination in non byte addressable memory regions |
SMRT-809 |
Loop with iterator wrap-around terminates prematurely |
SMRT-810 |
Missing diagnostic for an empty include file name |
SMRT-811 |
Missing diagnostic for *&non_lvalue |
SMRT-812 |
Constant expressions are more general than defined by the C standard |
SMRT-813 |
Missing diagnostic for some cases with name redeclaration |
SMRT-814 |
Missing diagnostic for some uses of the _Alignof operator |
SMRT-815 |
setjmp is not defined as a macro |
SMRT-816 |
Wrong code generation when pure functions are used |
SMRT-820 |
Incorrect iteration count when iterator limit variables have very large values |
SMRT-825 |
Control program passes option -gsl to the assembler when -g is used in the invocation |
SMRT-833 |
Propagation error in some compile time constant computations involving loops with iterator wrap-around |
SMRT-841 |
Erroneous struct member alignment when __align is applied to a struct definition |
SMRT-844 |
Inter-core symbol reference to 'uncached' variable may get address in cached range |
SMRT-850 |
TASKING properties export does not include file/folder local settings |
SMRT-851 |
C Compiler: initialization of an automatic struct member removed by optimizations |
SMRT-874 |
Packed structure is initialized with normal store instead of __unaligned store |
SMRT-890 |
Linker warning W164 failed to read debugging information for global typechecking when __packw or __packhw data types used |
SMRT-893 |
C compiler generates invalid conditional arithmetic |
SMRT-894 |
C compiler generates invalid arithmetic |
SMRT-896 |
C Compiler : Aliasing not detected |
SMRT-902 |
Missing cast to unsigned char |
SMRT-916 |
Wrong type conversion in SIMD codegen |
SMRT-920 |
Aliasing not detected for static variables |
SMRT-921 |
Aliasing issue for struct/union argument passed by value |
SMRT-922 |
Wrong type conversion for signed/unsigned char data type |
SMRT-924 |
Incorrect forward store optimization |
SMRT-926 |
Missing MISRA C:2012 rule 9.1 violation error for conditional initialized automatic with -OP |
This is a list of issues that have been closed with a resolution other than fixed. This list contains issues that will not be fixed, issues that appeared to be not a problem and/or issues that could not be reproduced. The list of fixed issues for v10.1r1 is not shown here, it is included in the release notes of the product.