https://github.com/jansvoboda11 created 
https://github.com/llvm/llvm-project/pull/217691

The PR https://github.com/swiftlang/llvm-project/pull/13914 fixed repeated 
#import of a header that belongs to a module in textual builds. One omission 
was not setting the boolean we now use to make the decision to import or skip 
when we tried importing a submodule but figured out it's not covered by the 
umbrella. This PR fixes that.

>From 2d7ca426059d5b969714ee8b9aefe5c454ea6ad5 Mon Sep 17 00:00:00 2001
From: Jan Svoboda <[email protected]>
Date: Thu, 20 Aug 2026 18:44:22 +0200
Subject: [PATCH] [clang][lex] Fix repeated #import of header missing from
 umbrella

---
 .../repeated-include-missing-submodule.c       | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
 create mode 100644 clang/test/Modules/repeated-include-missing-submodule.c

diff --git a/clang/test/Modules/repeated-include-missing-submodule.c 
b/clang/test/Modules/repeated-include-missing-submodule.c
new file mode 100644
index 0000000000000..44f04cec07b92
--- /dev/null
+++ b/clang/test/Modules/repeated-include-missing-submodule.c
@@ -0,0 +1,18 @@
+// Check that multiple include-once of a header not covered by an umbrella 
work.
+
+// RUN: rm -rf %t
+// RUN: split-file %s %t
+
+// RUN: %clang_cc1 -fsyntax-only %t/tu.c -fmodules -fimplicit-module-maps \
+// RUN:   -fmodules-cache-path=%t/cache -verify 
+
+//--- module.modulemap
+module M {
+  umbrella header "M.h"
+  module * { export * }
+}
+//--- M.h
+//--- NotCovered.h
+//--- tu.c
+#import "NotCovered.h" // expected-warning{{missing submodule 'M.NotCovered'}}
+#import "NotCovered.h" // expected-warning{{missing submodule 'M.NotCovered'}}

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to