1// RUN: %clang_cc1 -x c++-header -emit-pch %s -o %t
2// RUN: %clang_cc1 -include-pch %t -fsyntax-only -verify %s
3
4// expected-no-diagnostics
5
6#ifndef HEADER_INCLUDED
7#define HEADER_INCLUDED
8
9static inline void foo(int &x, int y) {
10  // Capturing x and y
11  #pragma clang __debug captured
12  {
13    x += y;
14  }
15}
16
17struct C {
18  int val;
19
20  explicit C(int v) : val(v) { }
21
22  void bar(int &x) {
23    // Capturing x and this
24    #pragma clang __debug captured
25    {
26      x += val;
27    }
28  }
29};
30
31#else
32
33void test_foo(int &x) {
34  foo(x, 10);
35}
36
37void test_bar(int &x) {
38  C Obj(10);
39  Obj.bar(x);
40}
41
42#endif
43