// RUN: %clang_cc1 -triple %itanium_abi_triple -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only %s | FileCheck %s

// PR39942

class a;
template <class b> a &operator<<(b &, const char *);
int c;
#define d(l) l(__FILE__, __LINE__, c)
#define COMPACT_GOOGLE_LOG_ERROR d(e)
#define f(g, cond) cond ? (void)0 : h() & g
#define i(j) COMPACT_GOOGLE_LOG_##j.g()
#define k(j) f(i(j), 0)
class e {
public:
  e(const char *, int, int);
  a &g();
};
class h {
public:
  void operator&(a &);
};
void use_str(const char *);

#define m(func)                                                                \
  use_str(#func);                                                              \
  k(ERROR) << #func;                                                           \
  return 0; // CHECK: File 1, [[@LINE-1]]:4 -> [[@LINE-1]]:16 = (#0 - #1)
int main() {
  m(asdf);
}
