clang 3.5中不支持-finline-functions?

时间:2014-09-29 20:48:10

标签: c++ c++11 clang inline

我正在使用他们分发的clang 3.5。我正在使用以下命令行将其安装在我的travis vm中:

sudo apt-add-repository 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.5 main'
sudo apt-add-repository 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.5 main'

当我在启用优化的情况下运行我的测试版本时,我收到此错误:

clang: error: optimization flag '-finline-functions' is not supported
  "clang++" -c -x c++ -std=c++1y -Werror -O3 -finline-functions -Wno-inline -Wall -Werror -pthread -fPIC -std=c++1y -DBOOST_ALL_DYN_LINK -DNDEBUG -I"." -I"gamgee" -I"lib/htslib" -o "test/bin/run.test/clang-linux-3.5.0/release/threading-multi/sam_builder_test.o" "test/sam_builder_test.cpp"

我的mac上运行较旧的3.4版本的clang时没有出现同样的错误。

clang是否已切断对3.5中-finline-functions的支持?这是关于这个包构建的具体内容吗?如何用clang-3.5 +替换-finline-functions选项来优化构建?

1 个答案:

答案 0 :(得分:12)

请参阅此提交:http://llvm.org/klaus/clang/commit/6590426aeb5275ec33dac2877f9349bbbb2d4b2e/#0-L-571

以前,该标志被忽略,用户未收到通知。现在通知用户它被忽略。在使用或不使用该标志的情况下,您不应该看到代码生成的任何差异。

它应该只是一个警告,但您已使用-Werror将其升级为错误。