Skip to content

Commit

Permalink
[Tooling] Correct the "-std" compile command option.
Browse files Browse the repository at this point in the history
Summary:
"-std c++11" is not valid in compiler, we have to use "-std=c++11".

Test in vscode with this patch, code completion for header works as expected.

Reviewers: sammccall

Subscribers: cfe-commits, klimek

Differential Revision: https://reviews.llvm.org/D45512

llvm-svn: 329786
  • Loading branch information
hokein committed Apr 11, 2018
1 parent 9f0b8e8 commit 27695da
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
Expand Up @@ -191,9 +191,9 @@ struct TransferableCommand {
// --std flag may only be transferred if the language is the same.
// We may consider "translating" these, e.g. c++11 -> c11.
if (Std != LangStandard::lang_unspecified && foldType(TargetType) == Type) {
Result.CommandLine.push_back("-std");
Result.CommandLine.push_back(
LangStandard::getLangStandardForKind(Std).getName());
"-std=" +
std::string(LangStandard::getLangStandardForKind(Std).getName()));
}
Result.CommandLine.push_back(Filename);
return Result;
Expand Down
4 changes: 2 additions & 2 deletions clang/unittests/Tooling/CompilationDatabaseTest.cpp
Expand Up @@ -711,9 +711,9 @@ TEST_F(InterpolateTest, Language) {

// .h is ambiguous, so we add explicit language flags
EXPECT_EQ(getCommand("foo.h"),
"clang -D dir/foo.cpp -x c++-header -std c++17");
"clang -D dir/foo.cpp -x c++-header -std=c++17");
// and don't add -x if the inferred language is correct.
EXPECT_EQ(getCommand("foo.hpp"), "clang -D dir/foo.cpp -std c++17");
EXPECT_EQ(getCommand("foo.hpp"), "clang -D dir/foo.cpp -std=c++17");
// respect -x if it's already there.
EXPECT_EQ(getCommand("baz.h"), "clang -D dir/baz.cee -x c-header");
// prefer a worse match with the right language
Expand Down

0 comments on commit 27695da

Please sign in to comment.