首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCC、duplicate typedefs和DWARF

GCC、duplicate typedefs和DWARF
EN

Stack Overflow用户
提问于 2016-03-28 20:39:00
回答 1查看 362关注 0票数 2

在过去的几年里,GCC允许重复的typedefs,只要它们彼此兼容。我面临的问题是DWARF调试扩展:似乎GCC (v4.8)将重复的typedefs标记为未使用,并且没有将它们包含在DWARF中。

示例:

代码语言:javascript
复制
typedef struct yyx yyx_handle;
typedef struct yyx yyx_handle;

yyx_handle *get_yyx(void *p)
{ return (yyx_handle *)p; }

结果:

代码语言:javascript
复制
$ gcc -o f1.o -c f1.c -g
$ readelf --debug-dump f1.o | grep yyx_handle | wc -l
0

如果我添加-fno-eliminate-unused-debug-types,就会包含类型定义,但随后所有未使用的类型也会出现,这会增大目标文件的大小。

显而易见的解决方案是删除重复的定义,但这并不总是实用的。还有其他建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-31 02:05:48

我觉得这只是一个gcc的bug。我建议上报给GCC·布格斯拉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36262493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档