xref: /llvm-project/clang/test/Modules/enum-class.cppm (revision da00c60dae0040185dc45039c4397f6e746548e9)
12f1555fbSChuanqi Xu// Checks for reachability for C++11 enum class properly
22f1555fbSChuanqi Xu//
32f1555fbSChuanqi Xu// RUN: rm -rf %t
42f1555fbSChuanqi Xu// RUN: mkdir -p %t
52f1555fbSChuanqi Xu// RUN: split-file %s %t
62f1555fbSChuanqi Xu//
72f1555fbSChuanqi Xu// RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-module-interface -o %t/A.pcm
82f1555fbSChuanqi Xu// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -verify -fsyntax-only
9*da00c60dSChuanqi Xu//
10*da00c60dSChuanqi Xu// RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-reduced-module-interface -o %t/A.pcm
11*da00c60dSChuanqi Xu// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -verify -fsyntax-only
122f1555fbSChuanqi Xu
132f1555fbSChuanqi Xu//--- foo.h
142f1555fbSChuanqi Xuenum class foo {
152f1555fbSChuanqi Xu    a, b, c
162f1555fbSChuanqi Xu};
172f1555fbSChuanqi Xu
182f1555fbSChuanqi Xu//--- A.cppm
192f1555fbSChuanqi Xumodule;
202f1555fbSChuanqi Xu#include "foo.h"
212f1555fbSChuanqi Xuexport module A;
222f1555fbSChuanqi Xuexport foo func();
232f1555fbSChuanqi Xu
242f1555fbSChuanqi Xu//--- Use.cpp
252f1555fbSChuanqi Xu// expected-no-diagnostics
262f1555fbSChuanqi Xuimport A;
272f1555fbSChuanqi Xuvoid bar() {
282f1555fbSChuanqi Xu    auto f = func();
292f1555fbSChuanqi Xu}
30