【问题标题】:Disabling g++'s return-value optimisation禁用 g++ 的返回值优化
【发布时间】:2012-02-04 04:49:43
【问题描述】:

我需要在命令行上使用什么标志来禁用 g++ 编译器自动启用的返回值优化?

【问题讨论】:

  • 给出一个代码示例,以及为什么你不想要这种优化
  • @fge 我正在调试和测试我的软件库的实现,所以我希望看到我的软件执行过程中的每一步......
  • 当然,您确实意识到很多人实际上会使用带有构造函数省略的库,所以您也需要在该配置中对其进行测试?
  • @Matthieu M,感谢您的提醒。

标签: c++ optimization compiler-construction g++ return-value-optimization


【解决方案1】:

-fno-elide-constructors

C++ 标准允许实现省略创建仅用于初始化相同类型的另一个对象的临时对象。指定此选项会禁用该优化,并强制 G++ 在所有情况下调用复制构造函数。 [来源:man gcc]


【讨论】:

  • 离题:它可能会节省一些时间来注意 clang [my --version is Apple clang version 4.1 (tags/Apple/clang-421.11.66) (基于 LLVM 3.1svn)]使用此标志时有一个错误,在我的情况下似乎会产生段错误:llvm.org/bugs/show_bug.cgi?id=12208
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多