替换GCC中的“fvtable-gc”

时间:2013-07-03 10:44:13

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

GCCv4.7.1中是否有'fvtable-gc'选项的替代品(GCCv3.x支持)?我想在链接过程中删除未使用的虚函数。

  

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

1 个答案:

答案 0 :(得分:1)

看起来这个功能太多了,所以几年前就已经删除了。我认为没有相应的替代品。

虽然我还没有找到官方声明,但有几条评论至少在GCC 3.x系列中有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的整个程序优化器足够聪明,可以检测并消除未使用的虚函数,但我不确定。