1// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - %s | FileCheck %s
2// pr6644
3
4extern "C" {
5  namespace N {
6    struct X {
7      virtual void f();
8    };
9    void X::f() { }
10  }
11}
12
13// CHECK-LABEL: define {{.*}}void @_ZN1N1X1fEv
14
15extern "C" {
16  static void test2_f() {
17  }
18  // CHECK-LABEL: define internal void @_Z7test2_fv
19  static void test2_f(int x) {
20  }
21  // CHECK-LABEL: define internal void @_Z7test2_fi
22  void test2_use() {
23    test2_f();
24    test2_f(42);
25  }
26}
27
28extern "C" {
29  struct test3_s {
30  };
31  bool operator==(const int& a, const test3_s& b)  {
32  }
33}
34