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