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.

[参考译文] 编译器/TMS320C6672:优化器异常终止

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/749282/compiler-tms320c6672-optimizer-terminated-abnormally

器件型号:TMS320C6672

工具/软件:TI C/C++编译器

您好!

尝试编译以下代码时出现内部编译器错误:

struct bitfield
{
位字段(无符号= 0)
{
*((volatile unsigned*)&_raw)=*(volatile unsigned*)&_raw);
}

运算符 unsigned()常量
{
返回*(volatile unsigned*)&_raw);
}

unsigned _raw;
};

位字段 error_msi_not _acknowledged;

void msi_send()
{
ERROR_msi_no_acknowledged =位字段(位字段(0));
}

使用以下命令行时:

F:/Packages/TI_8.1.0/CodeComposerStudio/ccsv8/tools/compiler/ti-cgt-c6000_8.3.0/bin/cl6x.exe "C:\Users\[...]\Desktop\CompilerError.cpp"-O2

我尚未尝试编译器的8.3.1版。 我的权变措施是不执行构造函数和转换运算符的奇怪序列。 我还发现、将*(volatile unsign*)&_raw)替换为((volatile unsign&&)_raw 不再会导致优化器崩溃、但当打包到边界取决于 cast 运算符的紧密循环中时、往往会生成无限循环、但可能是我对代码的理解不够。

此致、
Lukas

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

    我们的编译器专家将于周一返回办公室、并将对此进行研究。

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

    感谢您报告此问题、并提交一份简明的测试案例。  我可以重现相同的行为。  我在 SDOWP 系统中提交了 CodeGen-5569以进行调查。  欢迎您在我的签名中使用下面的 SDOWP 链接进行访问。

    另一个要考虑的解决方法... 将优化级别从-O2降低到-O1。

    谢谢、此致、

    乔治