blob: 1b8fe09eb7e97e48659c02295a7e2d7721a459e3 [file] [log] [blame]
// RUN: %clang_cc1 -fsyntax-only -verify %s
// expected-no-diagnostics
// This would previously trigger a failed assertion when instantiating the
// template which uses an overloaded call operator because the end location
// for the expression came from a macro expansion.
#define ASSIGN_OR_RETURN(...) (__VA_ARGS__)
struct Loc {
int operator()(const char* _Nonnull f = __builtin_FILE()) const;
};
template <typename Ty>
void f() {
ASSIGN_OR_RETURN(Loc()());
}
void test() {
f<int>();
}