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.

[参考译文] CCS/CCStudio:禁用警告的单个实例

Guru**** 2604115 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/628484/ccs-ccstudio-disable-single-instance-of-a-warning

部件号:CCStudio

工具/软件:Code Composer Studio

如何禁用警告的单个实例/发出警告的一次性例外?

我知道你可以用-- Diag_suppress,但我希望通常保持警告打开,表示一行代码出现异常,并保持我的警告框(以及从源代码控制中提取项目的其他所有人的警告框)干净。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    可能的一个选项是使用特定于文件的选项来指定--diag_suppress。 当然,这将适用于该文件的所有源,但这是您可以为我指定的最小粒度。

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

    感谢您回复我。

    是否可以从CCS诊断选项GUI执行单个文件压缩?  此操作的语法是什么?

    当我在压缩诊断框中添加###-filename.c或###--filename.c时,我得到了

    警告:无效的编译器选项--filename.c (忽略)

    是否还有方法可以抑制特定于字母的错误版本(例如169-D)?  每当我压缩169-d (vs 169)时,我会收到以下编译错误:

    命令行错误:无效编号: 169-d
    1严重错误,在此编译中检测到。
    编译已终止。 

    (我使用7.2 与TI 17.6 v.0 STS for ARM CC3220作为编译器版本)

    谢谢!

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

    I can do a single file suppress from the CCS Diagnostic Options GUI?(能否从CCS诊断选项GUI执行单个文件禁止?)  此操作的语法是什么?[/QUOT]

    见 :http://software-dl.ti.com/ccs/esd/documents/users_guide/sdto_ccs_build-handbook.html#file-specific-options

    ALEXA 说:
    是否还有方法可以抑制特定于字母的错误版本(例如169-D)?[/QUOT]

    “D”代表酌情处理。 这意味着您可以更改级别(例如从警告更改为错误)。 因此无需指定诊断代码的-D部分。

    谢谢

    KI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢!
    ... 我想知道为什么我从来没有看到错误的味道A,B或C:)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在MS编译器中,有一种使用push/pop pragma临时处理诊断的方法。 人们可能会倾向于使用TI的diag_suppress和diag_default pragma,但它不会这样工作。 如果存在diag_suppress pragma,我会看到,它确实会抑制,但如果在文件的后面放置diag_default pragma,则以前的影响会消失。

    我发现TI专家建议在中使用这些pragma  。 对我来说,以下片段

    #pragma diag_suppress=179
    static inline Int32_t platform_memory_test2 (UINT32_t start_address,UINT32_t end_address)
    {
    uINT32_t索引,值;
    
    /*写入模式*/
    对于(index = start_address;index < end_address;index +=4){
    *(volatile UINT32_t *)索引=(UINT32_t)索引;
    }
    返回0;
    }
    
    #pragma diag_default=179
    static inline Int32_t platform_memory_test (UINT32_t start_address, UINT32_t end_address)
    {
    uINT32_t索引,值;
    

    为两种功能生成2个警告:

    说明	资源	路径	位置	类型
    #179-D函数"platform_memory_test"已声明,但从未引用	cus_plat_init.c	/mtp300_lte/platform	line 382	C/C++ problem
    #179-D function "platform_memory_test2"已声明,但从未引用	cus_plate_init.c	/mtp300_lte/platform	line 369	C/C++ problem
    

    但是,如果我将diag_suppress pragma放在文件中的任何位置,这将禁止对所有实例发出警告,而不仅仅是对pragma之后的实例发出警告。 所以我相信这些pragma不像文件中所记载的那样起作用。

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

    Alexa 说:
    我知道您可以使用--diag_suppress来抑制每个警告实例,但我想保持警告的一般性,表示一行代码上的异常,并保留我的警告框

    TI编译器支持#pragma diag_suppress, 它与 #pragma diag_push和 #pragma diag_pop结合使用,可用于禁用特定代码行的警告。 有关示例,请参阅  TI ARM编译器用户指南中的5.10 9诊断消息pragma。

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

    切斯特

    不错的地方 这应该有助于武装世界的人们。

    C6000编译器中尚不支持push/pop机制,diag_suppress pragma具有作用,类似于文件范围选项:无论pragma语句的位置如何,指定诊断的所有实例都将被禁止,而不仅仅是从语句到转换单元末尾的实例。