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.

[参考译文] 如何使用 pragma 抑制所有警告

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1044230/how-to-suppress-all-warnings-with-pragmas

您好!

我正在尝试使用 pragma 来禁用特定代码段的所有警告。  我使用 的是 ti-cgt-arm_20.2.5.LTS。

我还想抑制特定的警告(我知道有很多线程打开)、但引用警告和错误编号会很有用。  这是否在任何地方发布?

Fullscreen
1
2
3
4
5
6
#pragma diag_push
#pragma diag_suppress [what goes here?]
// code block
#pragma diag_pop
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    典型方法... 不使用#pragma 构建该代码块。  使用构建选项 --display_error_number。  这会导致每个诊断都包含一个 ID 号,类似于...

    Fullscreen
    1
    "file.c", line 7: warning #112-D: statement is unreachable
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    假设您的代码块获得该诊断、并且您希望将其抑制。  这个#pragma 是抑制它的一种方法...

    Fullscreen
    1
    #pragma diag_suppress 112
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    请注意数字112是如何来自诊断的。  有关所有详细信息、 请在 TI ARM 编译器手册中搜索 标题 为了解诊断消息的子章节。

    谢谢、此致、

    乔治

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

    这不是我问的问题。  我想知道如何抑制给定代码块而不是特定代码块的所有警告。  关于想要特定警告抑制的评论只是问是否有已发布的列表。

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

    EXT_EP-9948条目  已提交、请求提供所有可能诊断的列表。  不幸的是,这项工作尚未完成。  我会将您的请求添加到其中。  注意此请求将记录在不公开的部分条目中,因此您不会在条目的公共视图中看到任何更改。

    谢谢、此致、

    乔治

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

    谢谢你。  对原始问题有什么想法?

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

    遗憾的是、没有#pragma 或类似的内容可抑制所有警告。  最接近的解决方案是命令行选项 --no_warnings。  如果代码组织为 CCS 工程、则可以使用 "特定于文件的选项 "仅将--no_warnings 应用于一个文件。

    谢谢、此致、

    乔治