// RUN: %clang_cc1 -x c++-header -emit-pch %s -o %t | |
// RUN: %clang_cc1 -include-pch %t -fsyntax-only -verify %s | |
// expected-no-diagnostics | |
#ifndef HEADER_INCLUDED | |
#define HEADER_INCLUDED | |
static inline void foo(int &x, int y) { | |
// Capturing x and y | |
#pragma clang __debug captured | |
{ | |
x += y; | |
} | |
} | |
struct C { | |
int val; | |
explicit C(int v) : val(v) { } | |
void bar(int &x) { | |
// Capturing x and this | |
#pragma clang __debug captured | |
{ | |
x += val; | |
} | |
} | |
}; | |
#else | |
void test_foo(int &x) { | |
foo(x, 10); | |
} | |
void test_bar(int &x) { | |
C Obj(10); | |
Obj.bar(x); | |
} | |
#endif |