【问题标题】:How to set an attribute for all C++ functions without changing code?如何在不更改代码的情况下为所有 C++ 函数设置属性?
【发布时间】:2018-04-16 14:04:09
【问题描述】:

我想在 GCC 中使用 -Wunused-result 选项来检测我的代码中未使用/忽略的返回值。但这需要用an attributeattribute specifier sequence 标记函数声明。

手动执行此操作可能非常耗时且容易出错。我想知道是否有办法告诉 GCC 为所有函数设置属性(或设置默认属性),以便我可以使用警告标志。

【问题讨论】:

  • 许多函数如果忽略它们的结果就可以了。
  • 好吧,我一开始尝试了这个选项,但没有收到任何警告,所以我用谷歌搜索了该怎么做,这个答案暗示了这些属性。
  • 是的,抱歉,我也试过了,但文档似乎不准确
  • 为什么你需要那个警告?
  • 在这种情况下,单独的警告不会有帮助,因为它不会捕获呼叫为 auto x = foo(); 但随后忽略 x 的情况,尽管结合未使用的变量警告您可能是安全的跨度>

标签: c++ gcc


【解决方案1】:

这看起来像是 GCC plugin 的工作。 Upstream 也可能接受一个补丁,该补丁使用 pragma 为所有后续函数设置属性,但确切的语义对于 C++ 可能相当棘手。

【讨论】:

    猜你喜欢
    • 2017-11-20
    • 2012-11-01
    • 2019-06-05
    • 2018-02-27
    • 2014-01-07
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2016-06-10
    相关资源
    最近更新 更多