【问题标题】:replacement for "fvtable-gc" in GCC替换 GCC 中的“fvtable-gc”
【发布时间】:2013-07-01 00:28:54
【问题描述】:

GCCv4.7.1 中的“fvtable-gc”选项是否有任何替代品(GCCv3.x 支持)?我想在联动过程中移除未使用的虚函数。

fvtable-gc 为虚表和虚函数引用发出特殊的重定位,以便链接器可以识别未使用的虚函数并将引用它们的虚表槽清零。这对 -ffunction-sections 和 -Wl,--gc-sections 最有用,以便同时丢弃函数本身。

【问题讨论】:

    标签: c++ optimization gcc virtual-functions vtable


    【解决方案1】:

    看起来这个功能太有问题了,所以几年前就被删除了。我认为没有等效的替代品。

    虽然我还没有找到官方的说法,但至少在 GCC 3.x 系列中,有几个 cmets fvtable-gc 被破坏了,可能更早。例如(source: cris.h; claiming to be part of GCC):

    ...当从 -fvtable-gc 中删除错误时(-fforce-addr 导致 tinfo.cc 中的 .vtable_entry asm 无效,并且在 GCC 3.0-pre 中根本没有任何作用)...

    多年后的今天,编译器应该更加先进。也许 GCC 的整个程序优化器足够聪明,可以检测和消除未使用的虚函数,但我不确定。

    【讨论】:

      猜你喜欢
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多