[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Modules / cxx20-modules-enum-odr.cppm
blob831c01143a27ba539b186c704d381597a854fea8
1 // RUN: rm -rf %t
2 // RUN: mkdir -p %t
3 // RUN: split-file %s %t
4 //
5 // RUN: %clang_cc1 -std=c++20 %t/mod1.cppm -emit-module-interface -o %t/mod1.pcm
6 // RUN: %clang_cc1 -std=c++20 %t/mod2.cppm -emit-module-interface -o %t/mod2.pcm
7 // RUN: %clang_cc1 -std=c++20 %t/test.cpp -fprebuilt-module-path=%t -verify -fsyntax-only
9 //--- size_t.h
11 extern "C" {
12     typedef unsigned int size_t;
15 //--- csize_t
16 namespace std {
17             using :: size_t;
20 //--- align.h
21 namespace std {
22     enum class align_val_t : size_t {};
25 //--- mod1.cppm
26 module;
27 #include "size_t.h"
28 #include "align.h"
29 export module mod1;
30 namespace std {
31 export using std::align_val_t;
34 //--- mod2.cppm
35 module;
36 #include "size_t.h"
37 #include "csize_t"
38 #include "align.h"
39 export module mod2;
40 namespace std {
41 export using std::align_val_t;
44 //--- test.cpp
45 // expected-no-diagnostics
46 import mod1;
47 import mod2;
48 void test() {
49     std::align_val_t v;