41 lines
645 B
C++
41 lines
645 B
C++
|
// 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
|