1b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy// RUN: %clang_cc1 %s -DNS=std -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-STD
2b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy// RUN: %clang_cc1 %s -DNS=n -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-N
3b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy
4b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy// _ZNSt1DISt1CE1iE = std::D<std::C>::i
5b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy// CHECK-STD: @_ZNSt1DISt1CE1iE =
6b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy
7b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy// _ZN1n1DINS_1CEE1iE == n::D<n::C>::i
8b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy// CHECK-N: @_ZN1n1DINS_1CEE1iE =
9b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy
10b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloynamespace NS {
11b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy  extern "C" {
12b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy    class C {
13b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy    };
14b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy  }
15b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy
16b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy  template <class T>
17b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy  class D {
18b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy  public:
19b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy    static int i;
20b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy  };
21b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy
22b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy}
23b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy
24b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy
25b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloyint f() {
26b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy  return NS::D<NS::C>::i;
27b3c312ce4d94a037a83ba6df6650b0317b15edd1James Molloy}
28