Part Number: TM4C1294NCPDT
Tool/software: TI C/C++ Compiler
Hi. I got this error after upgrading ti arm compiler from 18.1.1 to 18.12.0. The error reproduces on OryxCyclone 1.9.0 (https://www.oryx-embedded.com/) library's function "pathFindFileName".
I have cut unnecessary --include_path flags from compiler call.
const char_t *pathFindFileName(const char_t *path)
{
size_t n;
//Retrieve the length of the path
n = strlen(path);
//Skip trailing slash or backslash characters
while(n > 0)
{
//Forward slash or backslash character found?
if(path[n - 1] != '/' && path[n - 1] != '\\')
break;
//Previous character
n--;
}
//Search the string for the last separator
while(n > 0)
{
//Forward slash or backslash character found?
if(path[n - 1] == '/' || path[n - 1] == '\\')
break;
//Previous character
n--;
}
//Return a pointer to the file name
return path + n;
}
Building file: "../OryxCyclone/common/path.c"
Invoking: ARM Compiler
"C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.12.0.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -O2 --opt_for_speed=0
--include_path="D:/work/projects/UpsController/UpsController/OryxCyclone/common"
--include_path="D:/work/projects/UpsController/UpsController/OryxCyclone/cyclone_crypto"
--include_path="D:/work/projects/UpsController/UpsController/OryxCyclone/cyclone_ssl"
--include_path="D:/work/projects/UpsController/UpsController/OryxCyclone/cyclone_tcp"
--include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.12.0.LTS/include"
--define=ccs="ccs" --define=TARGET_IS_SNOWFLAKE_RA0 --define=USE_EK_TM4C1294XL --define=PART_TM4C1294NCPDT -g --c99 --c++14 --gcc --diag_warning=225 --diag_wrap=off --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="OryxCyclone/common/path.d_raw" --obj_directory="OryxCyclone/common" "../OryxCyclone/common/path.c"
>> Compilation failure
OryxCyclone/common/subdir_rules.mk:44: recipe for target 'OryxCyclone/common/path.obj' failed
>>>> Optimizer terminated abnormally
>>>> in function pathFindFileName()
>>>> in file "../OryxCyclone/common/path.c"
This is caused by a defect in the TI C/C++ Optimizer.
TI Customer Support may be able to suggest a workaround to avoid this.
Upgrading to the newest version of the compiler may fix this problem.
Contact TI in the E2E support forums at http://e2e.ti.com under
"Development Tools", "TI C/C++ Compiler". See the link titled
"Submitting an issue".
We need to see this ENTIRE error message and a complete, reproducible
test case including ALL of the command-line options.
Include the .pp file created by option --preproc_with_comment
gmake[1]: *** [OryxCyclone/common/path.obj] Error 1