From 9b25ab5329acf4c5ef1d824f4726909269f67e89 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 7 Sep 2023 13:21:06 +0200 Subject: [PATCH] CppEditor: Fix removal of "foreign" clang include directories The version number does not necessarily contain all version parts anymore. See also 628babb5cb2c9170946b9f0de6c16005f7e39fa7. Fixes: QTCREATORBUG-29571 Change-Id: I71fec628c54b430cf2fe0fe54f4f309a2f811043 Reviewed-by: Christian Stenger --- src/plugins/cppeditor/compileroptionsbuilder_test.cpp | 2 ++ src/plugins/cppeditor/headerpathfilter.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/cppeditor/compileroptionsbuilder_test.cpp b/src/plugins/cppeditor/compileroptionsbuilder_test.cpp index b09a8061fc7..8e142fcc86e 100644 --- a/src/plugins/cppeditor/compileroptionsbuilder_test.cpp +++ b/src/plugins/cppeditor/compileroptionsbuilder_test.cpp @@ -281,6 +281,8 @@ void CompilerOptionsBuilderTest::testClangHeadersAndCppIncludePathsOrderLinux() t.builtIn("/usr/local/include"), t.builtIn("/usr/lib/gcc/x86_64-linux-gnu/4.8/include"), t.builtIn("/usr/include/x86_64-linux-gnu"), + t.builtIn("/usr/lib64/clang/16/include"), + t.builtIn("/usr/lib/clang/15.0.7/include"), t.builtIn("/usr/include")}; CompilerOptionsBuilder compilerOptionsBuilder(t.finalize(), UseSystemHeader::No, UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No, diff --git a/src/plugins/cppeditor/headerpathfilter.cpp b/src/plugins/cppeditor/headerpathfilter.cpp index 4def05060c1..bc1625643f4 100644 --- a/src/plugins/cppeditor/headerpathfilter.cpp +++ b/src/plugins/cppeditor/headerpathfilter.cpp @@ -104,7 +104,7 @@ bool isClangSystemHeaderPath(const HeaderPath &headerPath) // For example GCC on macOS uses system clang include path which makes clang code model // include incorrect system headers. static const QRegularExpression clangIncludeDir( - R"(\A.*/lib\d*/clang/\d+\.\d+(\.\d+)?/include\z)"); + R"(\A.*/lib\d*/clang/\d+(\.\d+){0,2}/include\z)"); return clangIncludeDir.match(headerPath.path).hasMatch(); }