1*2f1555fbSChuanqi Xu// Checks for reachability for C++11 enum class properly
2*2f1555fbSChuanqi Xu//
3*2f1555fbSChuanqi Xu// RUN: rm -rf %t
4*2f1555fbSChuanqi Xu// RUN: mkdir -p %t
5*2f1555fbSChuanqi Xu// RUN: split-file %s %t
6*2f1555fbSChuanqi Xu//
7*2f1555fbSChuanqi Xu// RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-module-interface -o %t/A.pcm
8*2f1555fbSChuanqi Xu// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -verify -fsyntax-only
9*2f1555fbSChuanqi Xu
10*2f1555fbSChuanqi Xu//--- foo.h
11*2f1555fbSChuanqi Xuenum class foo {
12*2f1555fbSChuanqi Xu    a, b, c
13*2f1555fbSChuanqi Xu};
14*2f1555fbSChuanqi Xu
15*2f1555fbSChuanqi Xu//--- A.cppm
16*2f1555fbSChuanqi Xumodule;
17*2f1555fbSChuanqi Xu#include "foo.h"
18*2f1555fbSChuanqi Xuexport module A;
19*2f1555fbSChuanqi Xuexport foo func();
20*2f1555fbSChuanqi Xu
21*2f1555fbSChuanqi Xu//--- Use.cpp
22*2f1555fbSChuanqi Xu// expected-no-diagnostics
23*2f1555fbSChuanqi Xuimport A;
24*2f1555fbSChuanqi Xuvoid bar() {
25*2f1555fbSChuanqi Xu    auto f = func();
26*2f1555fbSChuanqi Xu}
27