From: Sam McCall Date: Mon, 1 Oct 2018 11:56:42 +0000 (+0000) Subject: [CodeComplete] #include completion treats -I as non-system (require header-like exten... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0edd965d5cf9b72e7377ad985c0508c1b87c811c;p=clang [CodeComplete] #include completion treats -I as non-system (require header-like extension). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@343457 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index acf43650bb..bc7d5b582e 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -8098,7 +8098,7 @@ void Sema::CodeCompleteIncludedFile(llvm::StringRef Dir, bool Angled) { AddFilesFromDirLookup(D, false); } for (const auto &D : make_range(S.angled_dir_begin(), S.angled_dir_end())) - AddFilesFromDirLookup(D, true); + AddFilesFromDirLookup(D, false); for (const auto &D : make_range(S.system_dir_begin(), S.system_dir_end())) AddFilesFromDirLookup(D, true); diff --git a/test/CodeCompletion/included-files.cpp b/test/CodeCompletion/included-files.cpp index 81892c58c4..ba153e6e27 100644 --- a/test/CodeCompletion/included-files.cpp +++ b/test/CodeCompletion/included-files.cpp @@ -15,15 +15,21 @@ // CHECK-2: foosys.h" // CHECK-2-NOT: foosys" -// Angled string showes all files, but only in system dirs. +// Angled shows headers from system dirs. #include // RUN: %clang -fsyntax-only -isystem %t/a -Xclang -code-completion-at=%t/main.cc:19:13 %t/main.cc | FileCheck -check-prefix=CHECK-3 %s // CHECK-3-NOT: foo.cc> // CHECK-3-NOT: foo.h> // CHECK-3: foosys> +// With -I rather than -isystem, the header extension is required. +#include +// RUN: %clang -fsyntax-only -I %t/a -Xclang -code-completion-at=%t/main.cc:26:13 %t/main.cc | FileCheck -check-prefix=CHECK-4 %s +// CHECK-4-NOT: foo.cc> +// CHECK-4-NOT: foo.h> +// CHECK-4-NOT: foosys> + // Backslash handling. #include "a\foosys" -// RUN: %clang -fsyntax-only -isystem %t/a -Xclang -code-completion-at=%t/main.cc:26:13 %t/main.cc -fms-compatibility | FileCheck -check-prefix=CHECK-4 %s -// CHECK-4: foosys.h" - +// RUN: %clang -fsyntax-only -isystem %t/a -Xclang -code-completion-at=%t/main.cc:33:13 %t/main.cc -fms-compatibility | FileCheck -check-prefix=CHECK-5 %s +// CHECK-5: foosys.h"