150
|
1 // RUN: %clang_cc1 -triple %itanium_abi_triple -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only %s | FileCheck %s
|
|
2
|
|
3 // PR39942
|
|
4
|
|
5 class a;
|
|
6 template <class b> a &operator<<(b &, const char *);
|
|
7 int c;
|
|
8 #define d(l) l(__FILE__, __LINE__, c)
|
|
9 #define COMPACT_GOOGLE_LOG_ERROR d(e)
|
|
10 #define f(g, cond) cond ? (void)0 : h() & g
|
|
11 #define i(j) COMPACT_GOOGLE_LOG_##j.g()
|
|
12 #define k(j) f(i(j), 0)
|
|
13 class e {
|
|
14 public:
|
|
15 e(const char *, int, int);
|
|
16 a &g();
|
|
17 };
|
|
18 class h {
|
|
19 public:
|
|
20 void operator&(a &);
|
|
21 };
|
|
22 void use_str(const char *);
|
|
23
|
|
24 #define m(func) \
|
|
25 use_str(#func); \
|
|
26 k(ERROR) << #func; \
|
|
27 return 0; // CHECK: File 1, [[@LINE-1]]:4 -> [[@LINE-1]]:16 = (#0 - #1)
|
|
28 int main() {
|
|
29 m(asdf);
|
|
30 }
|