Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / Modules / pr61065.cppm
blobcf6fcdda78cd446999a9b2fa11cf2737ee9f1314
1 // From https://github.com/llvm/llvm-project/issues/61065
2 // RUN: rm -rf %t
3 // RUN: mkdir -p %t
4 // RUN: split-file %s %t
5 //
6 // RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-module-interface -o %t/a.pcm
7 // RUN: %clang_cc1 -std=c++20 %t/b.cppm -emit-module-interface -o %t/b.pcm \
8 // RUN:     -fprebuilt-module-path=%t
9 // DISABLED: %clang_cc1 -std=c++20 %t/c.cppm -emit-module-interface -o %t/c.pcm \
10 // DISABLED:     -fprebuilt-module-path=%t
11 // DISABLED: %clang_cc1 -std=c++20 %t/d.cpp -fsyntax-only -verify -fprebuilt-module-path=%t
13 //--- a.cppm
14 export module a;
16 struct base {
17         base(int) {}
20 export struct a : base {
21         using base::base;
24 //--- b.cppm
25 export module b;
27 import a;
29 a b() {
30         return a(1);
33 //--- c.cppm
34 export module c;
36 import a;
37 import b;
39 struct noncopyable {
40         noncopyable(noncopyable const &) = delete;
41     noncopyable() = default;
44 export struct c {
45         noncopyable c0;
46         a c1 = 43;
47     c() = default;
50 //--- d.cpp
51 // expected-no-diagnostics
52 import c;
53 void d() {
54     c _;