ID |
Summary |
State |
Reported In Release |
Target Release |
Workaround |
Release Notes |
CODEGEN-1995 |
Pointer math addend incorrectly truncated to ptrdiff_t on MSP430 |
Planned |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00052531 |
Incorrect value assigned to a forward reference of a symbol defined in terms of the section's PC ($) after jump expansion |
Open |
MSP430_16.9.0.LTS |
|
Two workarounds are possible:
1) Use a label to get the value of the PC at a key location instead of "symbol .equ $"
2) Replace the jump that will be expanded with an already expanded form. In the example, the jump could be replaced with:
JLO $+6
BR label1 |
|
CODEGEN-1295 |
MSP430 RTS rint() double routines failing for some inputs |
Open |
MSP430_16.9.0.LTS |
|
Avoid using the rint() RTS routines with double arguments and instead use the corresponding rint() float routines.
|
MSP430 RTS routines rint() rintl() lrint() lrintl() llrint() llrintl() failing for some inputs with double arguments.
|
SDSCM00051908 |
Print a more friendly message when using a lnk.cmd with too large memory |
Accepted |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00050131 |
Local struct with non-constant initializer treated as static scope variable |
Accepted |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00049284 |
Compiler misreports Misra warning 10.1 |
Accepted |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00049280 |
Ill advised enum scalar usage gets MISRA diagnostic, but similar usage of enum array does not |
Open |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00049278 |
Array that is correctly initialized erroneously gets a MISRA diagnostic about size not being specified |
Open |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00047833 |
msp C++ cpp compiled with printf_support=minimal causes cout to output incorrect results |
Accepted |
MSP430_16.9.0.LTS |
|
Instead either compile without --printf_support, or choose options nofloat or full. |
|
SDSCM00046695 |
FP rounding error, 1 ULP makes P70590.c fail |
Accepted |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00046115 |
MSP430 RTS float arithmetic functions do not round correctly |
Open |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00046113 |
C2000 RTS float arithmetic functions do not round correctly |
Open |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00044526 |
Compiler emits bogus DW_OP_reg16 for split argument |
Accepted |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00040934 |
Structure is not initialized correctly when using -o2 or -o3 optimization |
Accepted |
MSP430_16.9.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);
|
|
SDSCM00038293 |
Relocation overflows for BIT instruction using 20-bit pointer |
Accepted |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00038178 |
Should forbid non-const objects larger than 64k in large model if --near_data=globals |
Accepted |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00018691 |
Linker gives misleading warning when dot expressions used in SECTION directive for .stack section |
Accepted |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00014430 |
calloc doesn't check arguments to make sure the requested size is reasonable |
Accepted |
MSP430_16.9.0.LTS |
|
|
|
SDSCM00008685 |
DWARF does not correctly represent variables stored in register pairs |
Accepted |
MSP430_16.9.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 |
MSP430_16.9.0.LTS |
|
Please describe the workaround for this problem.
|
|
SDSCM00008630 |
printf gives wrong value for pointer when its value is incremented |
Open |
MSP430_16.9.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 |
MSP430_16.9.0.LTS |
|
none
|
|
SDSCM00008465 |
Language Conformance: crash because of void pointer dereference |
Accepted |
MSP430_16.9.0.LTS |
|
Please describe the workaround for this problem.
|
|
SDSCM00008248 |
Compilers on PC will not work without TMP set |
Accepted |
MSP430_16.9.0.LTS |
|
Set the TMP environment variable, even if just set to . (current directory)
|
|