代替“;fvtable gc”;在GCC中
replacement for "fvtable-gc" in GCC
GCCv4.7.1中的"fvtable gc"选项是否有替换项(GCCv3.x中支持它)?我想在链接过程中删除未使用的虚拟函数。
fvtable gc为vtable和虚拟函数引用发出特殊的重新定位,以便链接器可以识别未使用的虚拟函数,并将引用它们的vtable槽清零。这对于-ffunction部分和-Wl,-gc部分最有用,以便也丢弃函数本身。
看起来这个功能太bug了,所以几年前就被删除了。我不认为有同等的替代品。
虽然我还没有找到官方声明,但有几条评论认为fvtable-gc
至少在GCC 3.x系列中被破坏了,可能更早。例如(来源:cris.h;声称是GCC的一部分):
当从-fvtable gc中删除错误时(-force-addr导致tinfo.cc中的.vtable_entry asm无效,而GCC 3.0-pre中什么都不起作用)…
许多年后的今天,编译器应该更先进。也许GCC的整个程序优化器足够聪明,可以检测并消除未使用的虚拟函数,但我不确定。
相关文章:
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 奇怪的结构&GCC&clang(void*返回类型)
- GCC本机矩阵运算库
- PowerPC ppc64le上的Gcc Woverloaded虚拟错误
- gcc和c++17的过载解析失败
- 数据成员SFINAE的C++17测试:gcc vs clang
- GCC对可能有效的代码抛出init list生存期警告
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 使用gcc从静态链接的文件中查找可选符号
- 普通环路未使用gcc 4.8.5自动矢量化
- 有了gcc,是否可以链接库,但前提是它存在
- Visual C++GC接口如何启用它以及要包含哪个库
- 在clang++预处理器中确定gcc工具链版本
- 为什么 gcc 编译这个而 msvc 没有
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 代替“;fvtable gc”;在GCC中
- GCC—gc-sections和查找符号依赖项