// From https://github.com/llvm/llvm-project/issues/61067
// RUN: rm -rf %t
// RUN: mkdir -p %t
// RUN: split-file %s %t
//
// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/a.cppm \
// RUN:     -emit-module-interface -o %t/a.pcm
// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/b.cppm \
// RUN:     -emit-module-interface -fmodule-file=a=%t/a.pcm -o %t/b.pcm
// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/b.pcm -S \
// RUN:     -emit-llvm -disable-llvm-passes -o - | FileCheck %t/b.cppm
// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/c.cpp -fmodule-file=a=%t/a.pcm \
// RUN:     -S -emit-llvm -disable-llvm-passes -o - | FileCheck %t/c.cpp

//--- a.cppm
export module a;

export struct a {
	friend bool operator==(a, a) = default;
};

//--- b.cppm
export module b;

import a;

void b() {
	(void)(a() == a());
}

// CHECK: define{{.*}}linkonce_odr{{.*}}@_ZW1aeqS_1aS0_(

//--- c.cpp
import a;

int c() {
    (void)(a() == a());
}

// CHECK: define{{.*}}linkonce_odr{{.*}}@_ZW1aeqS_1aS0_(
