blob: 78fd74425b84d00caf3bd215e807f4b3808bbfce [file] [log] [blame]
Richard Smith7a614d82011-06-11 17:19:42 +00001// Test this without pch.
Richard Smith762bb9d2011-10-13 22:29:44 +00002// RUN: %clang_cc1 -x c++ -std=c++11 -DHEADER -DSOURCE -fsyntax-only -emit-llvm -o - %s
Richard Smith7a614d82011-06-11 17:19:42 +00003
4// Test with pch.
Richard Smith762bb9d2011-10-13 22:29:44 +00005// RUN: %clang_cc1 -x c++ -std=c++11 -DHEADER -emit-pch -o %t %s
6// RUN: %clang_cc1 -x c++ -std=c++11 -DHEADER -include-pch %t -fsyntax-only -emit-llvm -o - %s
Richard Smith7a614d82011-06-11 17:19:42 +00007
8#ifdef HEADER
9int n;
10struct S {
11 int *p = &m;
12 int &m = n;
13 S *that = this;
14};
Richard Smithca523302012-06-10 03:12:00 +000015template<typename T> struct X { T t {0}; };
Argyrios Kyrtzidisf8f480f2013-05-30 23:59:46 +000016
17struct v_t { };
18
19struct m_t
20{
21 struct { v_t v; };
22 m_t() { }
23};
24
Richard Smith7a614d82011-06-11 17:19:42 +000025#endif
26
27#ifdef SOURCE
28S s;
Richard Smithca523302012-06-10 03:12:00 +000029
30struct E { explicit E(int); };
31X<E> x;
Argyrios Kyrtzidisf8f480f2013-05-30 23:59:46 +000032
33m_t *test() {
34 return new m_t;
35}
36
Richard Smith7a614d82011-06-11 17:19:42 +000037#elif HEADER
38#undef HEADER
39#define SOURCE
40#endif