diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index c07816eb59802..1f3f06c09c714 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -7748,7 +7748,7 @@ def show_includes : Flag<["--"], "show-includes">, HelpText<"Print cl.exe style /showIncludes to stdout">; def dependency_filter : Separate<["-"], "dependency-filter">, HelpText<"Filter dependencies with prefix from the dependency output.">, - MarshallingInfoString>; + MarshallingInfoStringVector>; } // let Visibility = [CC1Option] diff --git a/clang/include/clang/Frontend/DependencyOutputOptions.h b/clang/include/clang/Frontend/DependencyOutputOptions.h index db583b7e4d7bb..dca0390558cb3 100644 --- a/clang/include/clang/Frontend/DependencyOutputOptions.h +++ b/clang/include/clang/Frontend/DependencyOutputOptions.h @@ -87,8 +87,8 @@ class DependencyOutputOptions { std::string ModuleDependencyOutputDir; /// Dependency output which is prefixed with this string is filtered from - /// the dependency output. - std::string DependencyFilter; + /// the dependency output. + std::vector DependencyFilter; public: DependencyOutputOptions() diff --git a/clang/include/clang/Frontend/Utils.h b/clang/include/clang/Frontend/Utils.h index 4c8edaeefb517..110b008993f1b 100644 --- a/clang/include/clang/Frontend/Utils.h +++ b/clang/include/clang/Frontend/Utils.h @@ -121,7 +121,7 @@ class DependencyFileGenerator : public DependencyCollector { void outputDependencyFile(DiagnosticsEngine &Diags); std::string OutputFile; - std::string DependencyFilter; + std::vector DependencyFilter; std::vector Targets; bool IncludeSystemHeaders; bool PhonyTarget; diff --git a/clang/lib/Frontend/DependencyFile.cpp b/clang/lib/Frontend/DependencyFile.cpp index 5297517a4956c..5a0d44298823a 100644 --- a/clang/lib/Frontend/DependencyFile.cpp +++ b/clang/lib/Frontend/DependencyFile.cpp @@ -255,11 +255,10 @@ bool DependencyFileGenerator::sawDependency(StringRef Filename, bool FromModule, if (isSpecialFilename(Filename)) return false; - if (DependencyFilter.size() && - DependencyFilter.compare(0, DependencyFilter.size(), Filename.data(), - DependencyFilter.size()) == 0) - // Remove dependencies that are prefixed by the Filter string. - return false; + // Remove dependencies that are prefixed by the Filter string. + for (const std::string &FD : DependencyFilter) + if (FD.compare(0, FD.size(), Filename.data(), FD.size()) == 0) + return false; if (IncludeSystemHeaders) return true; diff --git a/clang/test/Frontend/Inputs/dependency.cpp b/clang/test/Frontend/Inputs/dependency.cpp new file mode 100644 index 0000000000000..3e1b41306e1cf --- /dev/null +++ b/clang/test/Frontend/Inputs/dependency.cpp @@ -0,0 +1,3 @@ +int dep() { + return 0; +} diff --git a/clang/test/Frontend/dependency-gen.c b/clang/test/Frontend/dependency-gen.c index b0a3ec174ebdb..664a86a345ebb 100644 --- a/clang/test/Frontend/dependency-gen.c +++ b/clang/test/Frontend/dependency-gen.c @@ -47,3 +47,11 @@ // RUN: %clang -MMD -MF - %s -fsyntax-only -resource-dir=%S/Inputs/resource_dir_with_sanitizer_ignorelist -fsanitize=undefined -flto -fvisibility=hidden -I ./ | FileCheck -check-prefix=ONLY-USER-DEPS %s // ONLY-USER-DEPS: dependency-gen.o: // NOT-ONLY-USER-DEPS: ubsan_ignorelist.txt + +// RUN: %clang -c -x c++ -fsycl \ +// RUN: -MD -MF - %S/Inputs/dependency.cpp | FileCheck -check-prefix=FILTER %s + +// FILTER: dependency.o: +// FILTER: {{.*}}dependency.cpp +// FILTER: dependency.o: +// FILTER: {{.*}}dependency.cpp diff --git a/devops/dependencies-igc-dev.json b/devops/dependencies-igc-dev.json index 6df2daa2cfbed..b3e0a886c379a 100644 --- a/devops/dependencies-igc-dev.json +++ b/devops/dependencies-igc-dev.json @@ -1,10 +1,10 @@ { "linux": { "igc_dev": { - "github_tag": "igc-dev-2e6ebc3", - "version": "2e6ebc3", - "updated_at": "2024-07-28T03:46:07Z", - "url": "https://api.github.com/repos/intel/intel-graphics-compiler/actions/artifacts/1747533183/zip", + "github_tag": "igc-dev-cd26fa9", + "version": "cd26fa9", + "updated_at": "2024-08-02T21:54:38Z", + "url": "https://api.github.com/repos/intel/intel-graphics-compiler/actions/artifacts/1771028508/zip", "root": "{DEPS_ROOT}/opencl/runtime/linux/oclgpu" } }