// 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 void f() { ASSIGN_OR_RETURN(Loc()()); } void test() { f(); }