| // Fixes #165445 |
| |
| // RUN: rm -rf %t |
| // RUN: mkdir -p %t |
| // RUN: split-file %s %t |
| // |
| // RUN: %clang_cc1 -std=c++20 -x c++-user-header %t/header.h \ |
| // RUN: -emit-header-unit -o %t/header.pcm |
| // |
| // RUN: %clang_cc1 -std=c++20 %t/A.cppm -fmodule-file=%t/header.pcm \ |
| // RUN: -emit-module-interface -o %t/A.pcm |
| // |
| // RUN: %clang_cc1 -std=c++20 %t/B.cppm -fmodule-file=%t/header.pcm \ |
| // RUN: -emit-module-interface -o %t/B.pcm |
| // |
| // RUN: %clang_cc1 -std=c++20 %t/use.cpp \ |
| // RUN: -fmodule-file=A=%t/A.pcm -fmodule-file=B=%t/B.pcm \ |
| // RUN: -fmodule-file=%t/header.pcm \ |
| // RUN: -verify -fsyntax-only |
| |
| //--- enum.h |
| enum E { Value }; |
| |
| //--- header.h |
| #include "enum.h" |
| |
| //--- A.cppm |
| module; |
| #include "enum.h" |
| export module A; |
| |
| auto e = Value; |
| |
| //--- B.cppm |
| export module B; |
| import "header.h"; |
| |
| auto e = Value; |
| |
| //--- use.cpp |
| // expected-no-diagnostics |
| import A; |
| import B; |
| #include "enum.h" |
| |
| auto e = Value; |