Add test for issue 60486
authorChuanqi Xu <yedeng.yd@linux.alibaba.com>
Fri, 24 Feb 2023 06:27:51 +0000 (14:27 +0800)
committerChuanqi Xu <yedeng.yd@linux.alibaba.com>
Fri, 24 Feb 2023 06:32:05 +0000 (14:32 +0800)
Close https://github.com/llvm/llvm-project/issues/60486.

When I look back at this problem again, it only appears if we specify it
with `-fmodule-file=<BMI-path>`. And it disappears after we specify it
as `-fmodule-file=<module-name>=<BMI-path>`. Since we want to depreacate
the form `-fmodule-file=<BMI-path>`, we can think the problem goes
away.

clang/test/Modules/pr60486.cppm [new file with mode: 0644]

diff --git a/clang/test/Modules/pr60486.cppm b/clang/test/Modules/pr60486.cppm
new file mode 100644 (file)
index 0000000..13802a4
--- /dev/null
@@ -0,0 +1,28 @@
+// Address: https://github.com/llvm/llvm-project/issues/60486
+//
+// RUN: rm -rf %t
+// RUN: mkdir -p %t
+// RUN: split-file %s %t
+//
+// RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-module-interface -o %t/a.pcm
+// RUN: %clang_cc1 -std=c++20 -fmodule-file=a=%t/a.pcm %t/b.cppm -fsyntax-only -verify
+
+//--- foo.h
+template<typename = void>
+struct s {
+};
+
+template<typename>
+concept c = requires { s{}; };
+
+//--- a.cppm
+module;
+#include "foo.h"
+export module a;
+
+//--- b.cppm
+// expected-no-diagnostics
+module;
+#include "foo.h"
+export module b;
+import a;