From: Douglas Gregor Date: Tue, 17 Aug 2010 16:09:23 +0000 (+0000) Subject: A member function never has "C" linkage. Fixes . X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=45975531e3e93033b41e04974340e4e8f7481d61;p=clang A member function never has "C" linkage. Fixes . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111238 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 419856ff50..00b052d476 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -989,6 +989,9 @@ bool FunctionDecl::isExternC() const { break; } + + if (DC->isRecord()) + break; } return false; diff --git a/test/SemaCXX/linkage-spec.cpp b/test/SemaCXX/linkage-spec.cpp index fdb642c78f..b2e8eb2ee8 100644 --- a/test/SemaCXX/linkage-spec.cpp +++ b/test/SemaCXX/linkage-spec.cpp @@ -68,3 +68,12 @@ extern "C" void pr7859_b(int) {} // expected-error {{conflicting}} extern "C" void pr7859_c(short) {} // expected-note {{previous definition}} extern "C" void pr7859_c(int) {} // expected-error {{conflicting}} + +// +extern "C" { + struct s0 { + private: + s0(); + s0(const s0 &); + }; +}