// RUN: rm -rf %t | |
// RUN: split-file %s %t | |
// RUN: cd %t | |
// | |
// RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-module-interface -o %t/a.pcm | |
// RUN: %clang_cc1 -std=c++20 %t/b.cppm -fmodule-file=a=%t/a.pcm -fsyntax-only -verify | |
//--- a.h | |
namespace n { | |
struct s { }; | |
void operator+(s, int) { | |
} | |
} // namespace n | |
//--- a.cppm | |
module; | |
#include "a.h" | |
export module a; | |
export template<typename T> | |
void a(T x) { | |
n::s() + x; | |
} | |
//--- b.cppm | |
// expected-no-diagnostics | |
export module b; | |
import a; | |
void b() { | |
a(0); | |
} |