Author: Nathan Ridge Date: 2023-08-18T00:40:11-04:00 New Revision: bd74186f1a0831b2c596e87ea056419379a223c1
URL: https://github.com/llvm/llvm-project/commit/bd74186f1a0831b2c596e87ea056419379a223c1 DIFF: https://github.com/llvm/llvm-project/commit/bd74186f1a0831b2c596e87ea056419379a223c1.diff LOG: [clangd] Avoid passing -xobjective-c++-header to the system include extractor Fixes https://github.com/clangd/clangd/issues/1568 Differential Revision: https://reviews.llvm.org/D147905 Added: Modified: clang-tools-extra/clangd/SystemIncludeExtractor.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/SystemIncludeExtractor.cpp b/clang-tools-extra/clangd/SystemIncludeExtractor.cpp index 6cce28f53b5771..ac99b220f6bd3f 100644 --- a/clang-tools-extra/clangd/SystemIncludeExtractor.cpp +++ b/clang-tools-extra/clangd/SystemIncludeExtractor.cpp @@ -133,6 +133,16 @@ struct DriverArgs { } } + // Downgrade objective-c++-header (used in clangd's fallback flags for .h + // files) to c++-header, as some drivers may fail to run the extraction + // command if it contains `-xobjective-c++-header` and objective-c++ support + // is not installed. + // In practice, we don't see diff erent include paths for the two on + // clang+mac, which is the most common objectve-c compiler. + if (Lang == "objective-c++-header") { + Lang = "c++-header"; + } + // If language is not explicit in the flags, infer from the file. // This is important as we want to cache each language separately. if (Lang.empty()) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits