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.

[参考译文] AM6442:tiarmclang:抑制来自内部代码的警告

Guru**** 2482225 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1447090/am6442-tiarmclang-suppress-warnings-from-inside-code

器件型号:AM6442

工具与软件:

您好!

我们目前正在开发一个使用适用于 AM64的 MCU+ SDK 并使用 tiarmclang 作为编译器的项目。 但是、在编译时会生成数百条警告、其中大多数来自 SDK 头文件内部、不同的方式多次包含这些文件:

In file included from C:/Gavrailov/repos/vemxxx/rt-fw/source/sysconfig/ti_board_config.c:35:
In file included from C:/Gavrailov/repos/vemxxx/rt-fw/source/sysconfig\ti_board_config.h:40:
In file included from C:/Gavrailov/repos/vemxxx/rt-fw/source/sysconfig\ti_drivers_config.h:195:
In file included from c:/ti/mcu_plus_sdk_am64x_10_00_00_20/source\drivers/udma.h:82:
c:/ti/mcu_plus_sdk_am64x_10_00_00_20/source\drivers/udma/include/csl_pktdma_cppi5.h:286:68: warning: unused parameter 'descType' [-Wunused-parameter]
  286 | static inline void CSL_pktdmaCppi5SetPktLen( void *pDesc, uint32_t descType, uint32_t pktLen )
      |                                                                    ^
c:/ti/mcu_plus_sdk_am64x_10_00_00_20/source\drivers/udma/include/csl_pktdma_cppi5.h:575:65: warning: unused parameter 'pDesc' [-Wunused-parameter]
  575 | static inline uint32_t CSL_pktdmaCppi5GetPsDataLoc( const void *pDesc )
      |                                                                 ^
c:/ti/mcu_plus_sdk_am64x_10_00_00_20/source\drivers/udma/include/csl_pktdma_cppi5.h:592:55: warning: unused parameter 'pDesc' [-Wunused-parameter]
  592 | static inline void CSL_pktdmaCppi5SetPsDataLoc( void *pDesc, uint32_t psLoc )
      |                                                       ^
c:/ti/mcu_plus_sdk_am64x_10_00_00_20/source\drivers/udma/include/csl_pktdma_cppi5.h:592:71: warning: unused parameter 'psLoc' [-Wunused-parameter]
  592 | static inline void CSL_pktdmaCppi5SetPsDataLoc( void *pDesc, uint32_t psLoc )
      |                                                                       ^
c:/ti/mcu_plus_sdk_am64x_10_00_00_20/source\drivers/udma/include/csl_pktdma_cppi5.h:654:78: warning: unused parameter 'bInSopBuf' [-Wunused-parameter]
  654 | static inline uint64_t CSL_pktdmaCppi5GetPsDataAddr( const void *pDesc, bool bInSopBuf, bool bEpiPresent )
      |                                                                              ^
c:/ti/mcu_plus_sdk_am64x_10_00_00_20/source\drivers/udma/include/csl_pktdma_cppi5.h:861:65: warning: unused parameter 'descType' [-Wunused-parameter]
  861 | static inline void CSL_pktdmaCppi5SetIds( void *pDesc, uint32_t descType, uint32_t pktId, uint32_t flowId )
      |                                                                 ^
c:/ti/mcu_plus_sdk_am64x_10_00_00_20/source\drivers/udma/include/csl_pktdma_cppi5.h:861:84: warning: unused parameter 'pktId' [-Wunused-parameter]
  861 | static inline void CSL_pktdmaCppi5SetIds( void *pDesc, uint32_t descType, uint32_t pktId, uint32_t flowId )

我们希望在包含这些文件的位置关闭警告、并在剩余代码中保留警告。 在 GCC 中、在相应 pragma 的帮助下完成:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
  foo(b);                       /* no diagnostic for this one */
#pragma GCC diagnostic pop

遗憾的是、到目前为止、我们还未找到使用 tiarmclang 执行此操作的方法。 是否完全实现了该功能?

此致!

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

    您好!  tiarmclang 还支持这些诊断 pragma、它们具有"#pragma GCC 诊断"和"#pragma clang 诊断"。   但是、好像我们的用户指南中没有记录   这些内容、所以我提交了 sir.ext.ti.com/.../EXT_EP-12004来跟踪这些内容。

    如果您认为 pragma 不起作用、我们需要详细了解您的用例、编译器版本和编译器选项。  请按照 如何提交编译器测试用例一文中的说明进行操作

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

    您好、这似乎可行:

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wno-c++20-extensions"
    #pragma clang diagnostic push

    谢谢、此致!