请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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