【发布时间】:2018-04-18 18:57:42
【问题描述】:
我有这样的场景:
int open_ext2 () {}
int close_ext2 () {}
int read_ext2 () {}
int write_ext2 () {}
const struct fs_callbacks FS = {
open_file: open_ext2,
close_file: close_ext2,
read_bytes: read_ext2,
write_bytes: write_ext2
};
void main(){
FS.close_file();
}
当我查看 gimple 表示时(使用 -fdump-tree-all 编译)
我看到这样的东西:
D.1796 = close_ext2;
D.1796 ();
我没有得到的是分配open_file: open_ext2的位置
我的问题
- GCC 是如何做到这一点的?
- 它发生在什么阶段?
- 有没有办法找出映射标签 -> 成员函数?
【问题讨论】:
-
它可能被优化掉了,因为它没有被使用
-
gimple 告诉我它被使用了。
-
与其编辑问题以添加解决方案,不如将其发布为答案!不禁止回答自己的问题(甚至可以选择直接在Ask a Question 页面回答问题)
-
我修改了帖子并发布了答案。
标签: c gcc gcc-plugins