// Test this without pch. | |
// RUN: %clang_cc1 -x c++ -std=c++11 -DHEADER -DSOURCE -fsyntax-only -emit-llvm -o - %s | |
// Test with pch. | |
// RUN: %clang_cc1 -x c++ -std=c++11 -DHEADER -emit-pch -o %t %s | |
// RUN: %clang_cc1 -x c++ -std=c++11 -DHEADER -include-pch %t -fsyntax-only -emit-llvm -o - %s | |
#ifdef HEADER | |
int n; | |
struct S { | |
int *p = &m; | |
int &m = n; | |
S *that = this; | |
}; | |
template<typename T> struct X { T t {0}; }; | |
struct v_t { }; | |
struct m_t | |
{ | |
struct { v_t v; }; | |
m_t() { } | |
}; | |
#endif | |
#ifdef SOURCE | |
S s; | |
struct E { explicit E(int); }; | |
X<E> x; | |
m_t *test() { | |
return new m_t; | |
} | |
#elif HEADER | |
#undef HEADER | |
#define SOURCE | |
#endif |