Closed Defects in Release

ID Summary State Reported In Release Target Release Workaround Release Notes
CODEGEN-3876 Code incorrectly removed from functions calling "naked" attribute functions Fixed PRU_2.2.0 PRU_2.2.1 The compiler supports the GCC attribute "naked," which means that a function shall not have prolog or epilog code. The idea is that this makes a blank function that the user may fill with assembly code. The compiler also keeps track of the register usage behavior of previous functions in the same module, so that it can do some small optimizations like allocate caller-saved registers or eliminate unused code. In this case, the compiler mistakenly assumed that a naked function did not use its input. The truth is that naked functions are essentially hand-coded assembly functions; while the compiler can assume they obey the C calling convention, the compiler can't know register behavior because it cannot parse the assembly instructions.
CODEGEN-3858 OFD gets DIE attribute offset wrong when using --dwarf_display=none,dinfo Fixed PRU_2.2.0 PRU_2.2.1 If you use --dwarf_display=none,dinfo, use --dwarf_display=none,dinfo,types instead You can use OFD to display the DWARF debugging information in your object files by using the option '--dwarf' (or -g). You can narrow the categories of DWARF information displayed by using the '--dwarf_display' option. If you use the option --dwarf_display=none,dinfo you will see the DWARF DIE objects in the .dwarf_info section, but you will not see any DW_AT_type attributes unless you also use the "types" flag. This is not a bug. However, when OFD skips a DW_AT_type attribute, it displays the offset of the skipped DW_AT_type for the next attribute instead of the next attribute's correct offset.
CODEGEN-3619 pragma triggers false MISRA-C:2004 19.1/A warning Fixed PRU_2.2.0 PRU_2.2.1 N/A Certain pragmas appearing prior to #include statements, such as #pragma RESET_MISRA, would cause MISRA warning 19.1/A to be issued: MISRA-C:2004 19.1/A: #include statements in a file should only be preceded by other preprocessor directives or comments
CODEGEN-2373 Internal linker error triggered by function alias Fixed PRU_2.2.0 PRU_2.2.1 Linker sometimes generates "Assertion failed" message and aborts.
CODEGEN-2286 palign(8) of .init_array messes up __TI_INITARRAY_Limit address Fixed PRU_2.2.0 PRU_2.2.0 In the linker command file, replace .init_array > FLASH, palign(8), fill = 0xffffffff with the following GROUP statement: GROUP { .init_array } > FLASH, palign(8) The palign(8) on GROUP will ensure that any required padding is added after .init_array. However, both the size of .init_array and the value of __TI_INITARRAY_Limit remain unchanged. Applying palign(8) to .init_array caused __TI_INIT_ARRAY_Limit to be set to the end of .init_array including the padding. This broke RTS startup code responsible for calling constructors because the table of constructors now includes invalid data. This bug has been fixed and __TI_INIT_ARRAY_Limit is no longer affected by padding.
CODEGEN-2210 PRU assembler rejects valid LBBO instruction Fixed PRU_2.2.0 PRU_2.2.0 Use formats of LBBO and SBBO instructions that specify immediate values in the 3rd or 4th operands. The PRU assembler rejected valid LBBO and SBBO instructions that specified registers for the 3rd and 4th operands, for example, LBBO &r3, r1, r2.w0, b0 The PRU assembler is now updated to accept this format for LBBO and SBBO instructions.
CODEGEN-2119 Stack usage assistant call graph misses callee relationship for some direct calls Fixed PRU_2.2.0 PRU_2.2.0 The Object File Display utility failed to detect function callees when generating call graph information for functions that contain nested blocks.
CODEGEN-2113 Hex utility mishandles space in directory name of output file Fixed PRU_2.2.0 PRU_2.2.0 Use directory names without spaces for output files. The hex utility did not correctly handle spaces in output directory and file names.
CODEGEN-1976 Value of __cplusplus is wrong Fixed PRU_2.2.0 If possible, use the -ps or --strict_ansi options. This mode will use the strict definition of __cplusplus, which is 199711L. Our parser mimicked G++ behavior for the value of this macro in relaxed ANSI mode. This reproduced a bug in G++ versions v.4.7 and v.4.3 that has since been fixed.
CODEGEN-1941 PRU disasm lib crashes CCSv6.2.0 for Linux Fixed PRU_2.2.0 PRU_2.2.0 wrong workaround When using Ubuntu 16.04 and attempting to connect to a PRU core, CCS either freezes or collapses without a trace. This was tested with both CCSv6.1.3 and CCSv6.2.0 on Ubuntu 16.04 64 bits and using XDS100v2 and XDS200 on AM335x devices.
CODEGEN-1517 #pragma FUNCTION_OPTIONS meaningless unless at least -o0 is used Fixed PRU_2.2.0
CODEGEN-1333 Structure assignment causes compiler to fail with INTERNAL ERROR: Decomposition error Fixed PRU_2.2.0 PRU_2.2.0 Replace struct assignments involving packed structures with a memcpy() call to copy the contents of the RHS of the struct assign to the LHS.
SDSCM00052339 demangler --output option does not work at all Fixed PRU_2.2.0 PRU_2.2.0 armdem file.asm > file.dis
SDSCM00052301 Linker crashes when --ecc:ecc_error is used Fixed PRU_2.2.0 PRU_2.2.0 None.
SDSCM00052265 Flexible array with initializer not handle correctly Fixed PRU_2.2.0 PRU_2.2.0 None.
SDSCM00052163 The PRU Compiler Guide states that we do not provide floating point emulation routines for PRU. This is wrong. Fixed PRU_2.2.0

Generated on Wed Nov 29 15:19:32 2017