Tool/software: TI C/C++ Compiler
We would like more information about the following known issues with TI's ARM Optimizing C/C++ Compiler v18.1.4.LTS.
FYI, we are using the following arguments with the compiler:
"C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl" -mv7R5 --code_state=32 --float_support=VFPv3D16 --define=_TMS570LC43x_ -g --c99 --diag_warning=225 --diag_wrap=off --display_error_number --enum_type=packed --abi=eabi --asm_listing --preproc_with_compile". (Plus several --include_paths, --defines, and a --preproc_dependency.)
(Note that we have specified an optimization level of "off" in CCS, which I believe it is honoring by specifying the -g argument without specifying an --opt_level argument.)
CODEGEN-4304 "runtime failure on unaligned access (on some processor variants, not all)":
I see that this has a test case attached to it, but no further analysis. This does not seem to be a case where the user has done something wrong, leading to an unaligned access, but rather some kind of issue with the compiler or library. What are the scenarios that can trigger this problem?
SDSCM00051484 "Compiler does not respect partial overrides in C99 designated initializers":
We use C99 designated initializers in our code. What kind of designated initialize usage is vulnerable here?
SDSCM00047077 "Incorrectly reduced double constant to float when ultimate destination is short":
How big is this scope? Does it also happens when the "ultimate destination" is char? Are int/long or long long destinations safe? Is it always the case the double constants are reduced to float when "targeting" short, or just sometimes? Does optimization impact this? Are there any other situations where the compiler is reducing double-precision operations to single-precision (other than the normal ones required by the C standards)?
As an aside, we would like to see this issue addressed. We appreciate that it is reasonable to flag the severity as minor in terms of the probable impact on executing code, but it is a significant issue for us, process-wise, to track down and analyze code that might be vulnerable to this problem.
SDSCM00050131 "Local struct with non-constant initializer treated as static scope variable":
I appreciate that this is fixed in 18.1.5.LTS, but we have equipment compiled under 18.1.4.LTS. Is this issue impact by whether or not optimization was enabled?
My interpretation is that the following two issues are not a problem when optimization is disabled. Can you confirm?
- CODEGEN-5527 "Local structure initialization is incorrectly optimized away"
- CODEGEN-5032 "Loop over array, preceded by shuffle of the array using scalar temp repeatedly, may produce incorrect results"
--thx