This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] C7x C/C++-优化器异常终止

Guru**** 664280 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1308302/c7x-c-c---optimizer-terminated-abnormally

在使用-O4 --opt_for_speed=5命令行参数编译 C7x 代码期间抛出"优化器异常终止"消息(-opt_for_speed=1没有问题):


生成文件:"../v_fix_point_hypot3_test.cpp"
调用:C7000编译器
"c:/ti/ti-processor-sdk-rtos-j721s2-evm-08_06_00_11/ti-cgt-c7000_3.1.0.LTS/bin/cl7x -o4 --opt_for_speed=5 --include_path="C:/valeo/workspace/eSmart/v_fix_point_opt_fail --include_path="C:/ti/ti-processor-sdk-rtos-j721s2-evm-08_06_00_11/ti-cgt-c7000_3.1.0.LTS/include --diag_warning=225 --diag_wrap=off --display_error_number --preproc_with_compile --preproc_detail="v_fix_point_hypot3_test.d_hypot3_point"。

>>编译失败
subdir_rules.mk:16:目标"v_fix_point_hypot3_test.obj"的配方失败

>>>优化程序异常终止
>>>输入函数_ZN10n Core_Math 7hypot3dIiLm16ELm16EEENS_11V_FIX_POINTIT_XT0_EXT1_EEES3_S3_S3_()
>>>在文件"..\v.\v_fix_point_hypot.h"中
这是由 TI C/C++优化器中的缺陷导致的。
TI 客户支持可能会建议一种避免这种情况的权变措施。

升级到最新版本的编译器可能会解决这个问题。

请访问 http://e2e.ti.com 上的 E2E 支持论坛联系 TI
"开发工具"、"TI C/C++编译器"。 请参阅标题为
"提交问题"。

我们需要看到整个错误消息、以及一个完整、可重现的
包含所有命令行选项的测试用例。
包含由 option --preproc_with_comment 创建的.pp 文件

使用的编译器为:TI-CGT-c7000_3.1.0.LTS

附加了生成内部错误的 CCS 工程。

e2e.ti.com/.../v_5F00_fix_5F00_point_5F00_opt_5F00_fail.zip


我发现、如果使用"非类"模板函数而不是模板类的静态方法、内部错误会消失。 可以通过将 v_fix_point_hypot.h 第28行的"#if 0"更改为"#if 1"来切换这些选项。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您通知我们此问题并提交测试用例。  我能够重现相同的行为。  我提交了条目 EXT_EP-11618 来对此进行调查。  我们欢迎您通过这个链接来了解这一点。

    谢谢。此致、

    -乔治