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.

[参考译文] CODECOMPOSER:错误报告:在函数调用中设置变量时警告误报。

Guru**** 2534260 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1564677/codecomposer-bug-report-warning-false-positive-when-variable-is-set-in-function-call

部件号:CODECOMPOSER


工具/软件:

您好、

以下代码会降低:  

>#552-D 变量“len"已“已设置但从未使用  

我认为这是不正确的。

编译器:TI v20.2.7.LTS

此致、

Gabriel

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

    编译器将代码视为与...等效。

        len = 4;
        _sst25_spi_send(4, data);

    在这种情况下是变量 长度 驱动器。

    谢谢。此致、

    -乔治

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

    您好、George、

    感谢您的回答。

    考虑您的示例、我可以了解编译器会生成此警告的原因。

    我之所以提出这个问题、是因为据我所知、这种行为是不寻常的。

    正如您所看到的、我们在 3 个主要编译器 gcc、clang 和 msvc 中看不到这种行为:

    godbolt.org/.../c9q9eqMvz

     我认为、TI 编译器的行为不同可能会导致摩擦。  

    此致、

    Gabriel

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

    我尊重你的意见。   

    同时、语言标准中没有规定编译器诊断的处理方式。 这就是为什么 TI Arm 编译器支持控制许多(而非全部)诊断的方法的原因。  这个特定的诊断就是您可以控制的诊断。  例如、可以使用选项将其压缩  -- diag_suppress=552. 。  如需详细信息(包括其他方法)、 请在 TI ARM 编译器手册 中搜索标题为 了解诊断消息的子章节

    谢谢。此致、

    -乔治

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

    是有道理的。 关于抑制警告,我认为我不想这样做,因为它可能是有用的。

    -

    从现在开始,我会将此问题视为“功能请求“而不是“错误报告“。

    如果您愿意、我也可以将其关闭为“已解决“。

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

    请参阅 tiarmclang 在线手册第一页底部的注释。  它说……

    armcl 的 v20.2.x.LTS 维护版本中将仅提供错误修复

    由于我们同意这是功能请求而不是错误、因此将不会实现。

    如果可行、请考虑从进行更改 armcl 最终目的 tiarmclang 编译器

    谢谢。此致、

    -乔治

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

    明白了。

    感谢您的建议。 我认为新的编译器不支持 TI Hercules MCU 系列。