// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s // pr6644 extern "C" { namespace N { struct X { virtual void f(); }; void X::f() { } } } // CHECK: define void @_ZN1N1X1fEv extern "C" { static void test2_f() { } // This is not required by the standard, but users assume they know // the mangling of static functions in extern "C" contexts. // CHECK: define internal void @test2_f( void test2_use() { test2_f(); } } extern "C" { struct test3_s { }; bool operator==(const int& a, const test3_s& b) { } }