// RUN: %clang_cc1 -std=c++17 -verify -emit-llvm-only %s | |
// expected-no-diagnostics | |
template <class T> void bar(const T &t) { foo(t); } | |
template <class> | |
struct HasFriend { | |
template <class T> | |
friend void foo(const HasFriend<T> &m) noexcept(false); | |
}; | |
template <class T> | |
void foo(const HasFriend<T> &m) noexcept(false) {} | |
void f() { | |
HasFriend<int> x; | |
foo(x); | |
bar(x); | |
} |