blob: 0ab093f18d67d3e61cd5313fff67eaeeb1f92c11 [file] [log] [blame]
Argyrios Kyrtzidis7518b372012-07-02 19:19:01 +00001// Without PCH
2// RUN: %clang_cc1 -fsyntax-only -verify -include %s -include %s %s
3
4// With PCH
5// RUN: %clang_cc1 -fsyntax-only -verify %s -chain-include %s -chain-include %s
6
7#ifndef HEADER1
8#define HEADER1
9//===----------------------------------------------------------------------===//
10
11namespace NS {
12
13template <class _Tp, _Tp __v>
14struct TS
15{
16 static const _Tp value = __v;
17};
18
19template <class _Tp, _Tp __v>
20const _Tp TS<_Tp, __v>::value;
21
22TS<int, 2> g1;
23
24}
25
26//===----------------------------------------------------------------------===//
27#elif not defined(HEADER2)
28#define HEADER2
29#if !defined(HEADER1)
30#error Header inclusion order messed up
31#endif
32
33int g2 = NS::TS<int, 2>::value;
34
35//===----------------------------------------------------------------------===//
36#else
37//===----------------------------------------------------------------------===//
38
39#warning reached main file // expected-warning {{reached main file}}
40
41int g3 = NS::TS<int, 2>::value;
42
43//===----------------------------------------------------------------------===//
44#endif