<div dir="ltr"><pre>This is needed to ensure that the profile counters are emitted <br>for all functions and methods.<br></pre><pre><br>-------------- next part --------------<br>Index: lib/CodeGen/CodeGenModule.cpp<br>===================================================================<br>
--- lib/CodeGen/CodeGenModule.cpp (revision 209698)<br>+++ lib/CodeGen/CodeGenModule.cpp (working copy)<br>@@ -1073,6 +1073,8 @@<br> if (LangOpts.EmitAllDecls)<br> return false;<br> <br>+ if(CodeGenOpts.ProfileInstrGenerate && isa<FunctionDecl>(Global))<br>
+ return false;<br> return !getContext().DeclMustBeEmitted(Global);<br> }<br> <br>@@ -3028,6 +3030,16 @@<br> break;<br> <br> // C++ Decls<br>+ case Decl::CXXRecord: {<br>+ if(!CodeGenOpts.ProfileInstrGenerate)<br>
+ break;<br>+ CXXRecordDecl *Record = cast<CXXRecordDecl>(D);<br>+ for(CXXRecordDecl::method_iterator I = Record->method_begin(); I != Record->method_end(); ++I) {<br>+ if(I->hasBody())<br>+ EmitTopLevelDecl(*I);<br>
+ }<br>+ break;<br>+ }<br> case Decl::Namespace:<br> EmitNamespace(cast<NamespaceDecl>(D));<br> break;<br><br><br></pre></div>