|
14 | 14 | #include "clang/Basic/FileEntry.h"
|
15 | 15 | #include "clang/Basic/FileManager.h"
|
16 | 16 | #include "clang/Basic/LLVM.h"
|
| 17 | +#include "clang/Basic/LangOptions.h" |
17 | 18 | #include "clang/Basic/SourceLocation.h"
|
18 | 19 | #include "clang/Basic/SourceManager.h"
|
19 | 20 | #include "clang/Basic/Specifiers.h"
|
@@ -179,8 +180,10 @@ class PragmaIncludes::RecordPragma : public PPCallbacks, public CommentHandler {
|
179 | 180 | RecordPragma(const CompilerInstance &CI, PragmaIncludes *Out)
|
180 | 181 | : RecordPragma(CI.getPreprocessor(), Out) {}
|
181 | 182 | RecordPragma(const Preprocessor &P, PragmaIncludes *Out)
|
182 |
| - : SM(P.getSourceManager()), HeaderInfo(P.getHeaderSearchInfo()), Out(Out), |
183 |
| - Arena(std::make_shared<llvm::BumpPtrAllocator>()), |
| 183 | + : SM(P.getSourceManager()), HeaderInfo(P.getHeaderSearchInfo()), |
| 184 | + L(P.getLangOpts().CPlusPlus ? tooling::stdlib::Lang::CXX |
| 185 | + : tooling::stdlib::Lang::C), |
| 186 | + Out(Out), Arena(std::make_shared<llvm::BumpPtrAllocator>()), |
184 | 187 | UniqueStrings(*Arena),
|
185 | 188 | MainFileStem(llvm::sys::path::stem(
|
186 | 189 | SM.getNonBuiltinFilenameForID(SM.getMainFileID()).value_or(""))) {}
|
@@ -224,7 +227,7 @@ class PragmaIncludes::RecordPragma : public PPCallbacks, public CommentHandler {
|
224 | 227 | std::optional<Header> IncludedHeader;
|
225 | 228 | if (IsAngled)
|
226 | 229 | if (auto StandardHeader =
|
227 |
| - tooling::stdlib::Header::named("<" + FileName.str() + ">")) { |
| 230 | + tooling::stdlib::Header::named("<" + FileName.str() + ">", L)) { |
228 | 231 | IncludedHeader = *StandardHeader;
|
229 | 232 | }
|
230 | 233 | if (!IncludedHeader && File)
|
@@ -363,6 +366,7 @@ class PragmaIncludes::RecordPragma : public PPCallbacks, public CommentHandler {
|
363 | 366 | bool InMainFile = false;
|
364 | 367 | const SourceManager &SM;
|
365 | 368 | const HeaderSearch &HeaderInfo;
|
| 369 | + const tooling::stdlib::Lang L; |
366 | 370 | PragmaIncludes *Out;
|
367 | 371 | std::shared_ptr<llvm::BumpPtrAllocator> Arena;
|
368 | 372 | /// Intern table for strings. Contents are on the arena.
|
|
0 commit comments