| // 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); |
| } |