llvm-project/clang/test/PCH/captured-stmt.cpp

43 lines
595 B
C++

// 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