ID |
Summary |
State |
Reported In Release |
Target Release |
Workaround |
Release Notes |
CODEGEN-1646 |
Mistakenly including a C++ header file in C yields unhelpful warning |
Accepted |
C2000_15.12.3.LTS |
|
Compile the file as a C++ file, not a C file, or remove the include of the C++ header file |
If a user tries to include a C++ variant (e.g. cstdarg) of a C standard header file (e.g. stdarg.h) header file in a C file, the TI compiler emits an unhelpful warning message: "incompatible redefinition"
It would be better if the TI compiler were to an emit an error like "you must use C++ to include 'cstdarg'," but this is a QoI enhancement, not a bug. |
SDSCM00051510 |
macro CLOCKS_PER_SEC should be type clock_t |
Accepted |
C2000_15.12.0.LTS |
|
|
|
SDSCM00051392 |
C2000 float software multiply doesn't handle -1*INF properly |
Accepted |
C2000_15.12.0.LTS |
|
|
|
SDSCM00051384 |
C2000 can't print 0 with %a format |
Accepted |
C2000_15.12.0.LTS |
|
|
|
SDSCM00050540 |
CLA Assembler accepts invalid instruction MMOV32 mem, MRn, COND |
Accepted |
C2000_15.12.0.LTS |
|
Care should be taken when writing hand-coded assembly to only write valid instructions as they are documented. |
|
SDSCM00050131 |
Local struct with non-constant initializer treated as static scope variable |
Accepted |
C2000_15.12.0.LTS |
|
|
|
SDSCM00049284 |
Compiler misreports Misra warning 10.1 |
Accepted |
C2000_15.12.0.LTS |
|
|
|
SDSCM00049280 |
Ill advised enum scalar usage gets MISRA diagnostic, but similar usage of enum array does not |
Open |
C2000_15.12.0.LTS |
|
|
|
SDSCM00049278 |
Array that is correctly initialized erroneously gets a MISRA diagnostic about size not being specified |
Open |
C2000_15.12.0.LTS |
|
|
|
SDSCM00046113 |
C2000 RTS float arithmetic functions do not round correctly |
Open |
C2000_15.12.0.LTS |
|
|
|
SDSCM00040934 |
Structure is not initialized correctly when using -o2 or -o3 optimization |
Accepted |
C2000_15.12.0.LTS |
|
The initialization will have to be done at run-time, through a __sti initialization routine. You can see this routine when compiling without optimization. To workaround the compiler removing this initialization routine, initialize the object at the beginning of main:
Info2.mSize = ((unsigned)_end_isr_stack - (unsigned)_start_isr_stack);
|
|
SDSCM00037411 |
C2000 assembler segmentation fault on RPTB with syntax error |
Accepted |
C2000_15.12.0.LTS |
|
Ensure that RPTB statements follow the correct syntax:
RPTB label, #immediate
RPTB label, loc16
If the #immediate or loc16 field is not present, the INTERNAL ERROR segmentation fault will occur. The line number given in the error message will be for a label.
|
|
SDSCM00018691 |
Linker gives misleading warning when dot expressions used in SECTION directive for .stack section |
Accepted |
C2000_15.12.0.LTS |
|
|
|
SDSCM00016646 |
strcmp doesn't correctly handle values with uppermost bit set |
Accepted |
C2000_15.12.0.LTS |
|
|
|
SDSCM00014430 |
calloc doesn't check arguments to make sure the requested size is reasonable |
Accepted |
C2000_15.12.0.LTS |
|
|
|
SDSCM00008928 |
Extern inline functions are not supported in the C/C++ Compiler with COFF ABI |
Accepted |
C2000_15.12.0.LTS |
|
|
This bug only affects COFF ABI. If a function is declared as inline and there are no references to it in the same file, the function is eliminated and can't be called from another file. |
SDSCM00008685 |
DWARF does not correctly represent variables stored in register pairs |
Accepted |
C2000_15.12.0.LTS |
|
Although 'var1' and 'var2' are shown to be in single registers, a
debugger could determine that they are actually stored in register
pairs by looking at the type of the variables:
[00000113] DW_TAG_base_type
DW_AT_name long long
DW_AT_encoding 0x5
DW_AT_byte_size 0x8
The base type indicates that the size of the variables is 0x8 bytes.
Since a single register can only store 0x4 bytes of information, it
would take two registers to hold this values.
On TI architectures, values stored in multiple registers are always
stored in consecutive registers. Thus, the debugger would know that
if the entire value could not fit in A4, the rest of the value must be
in A5. A5 would contain the upper 32 bits of the value.
|
|
SDSCM00008652 |
pow(2,x) has fairly significant rounding error |
Accepted |
C2000_15.12.0.LTS |
|
Please describe the workaround for this problem.
|
|
SDSCM00008630 |
printf gives wrong value for pointer when its value is incremented |
Open |
C2000_15.12.0.LTS |
|
To get rid of the warning message modify the printf statement as
follows:
printf('0x%lx\n', 0x10000 + (t=(long int)&global_var));
This modified code executes correctly too.
|
|
SDSCM00008543 |
Forward reference in .space generates an internal error |
Accepted |
C2000_15.12.0.LTS |
|
none
|
|
SDSCM00008465 |
Language Conformance: crash because of void pointer dereference |
Accepted |
C2000_15.12.0.LTS |
|
Please describe the workaround for this problem.
|
|
SDSCM00008248 |
Compilers on PC will not work without TMP set |
Accepted |
C2000_15.12.0.LTS |
|
Set the TMP environment variable, even if just set to . (current directory)
|
|