CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EDMPluginDumper.cc
Go to the documentation of this file.
1 #include "EDMPluginDumper.h"
2 #include <iostream>
3 #include <fstream>
4 #include <iterator>
5 #include <string>
6 #include <algorithm>
7 
8 using namespace clang;
9 using namespace clang::ento;
10 using namespace llvm;
11 
12 namespace clangcms {
13 
14 void EDMPluginDumper::checkASTDecl(const clang::ClassTemplateDecl *TD,clang::ento::AnalysisManager& mgr,
15  clang::ento::BugReporter &BR ) const {
16 
17  std::string tname = TD->getTemplatedDecl()->getQualifiedNameAsString();
18  if ( tname == "edm::WorkerMaker" ) {
19  for ( auto I = TD->spec_begin(), E = TD->spec_end(); I != E; ++I) {
20  for (unsigned J = 0, F = I->getTemplateArgs().size(); J!=F; ++J) {
21  llvm::SmallString<100> buf;
22  llvm::raw_svector_ostream os(buf);
23  I->getTemplateArgs().get(J).print(mgr.getASTContext().getPrintingPolicy(),os);
24  std::string rname = os.str();
25  const char * pPath = std::getenv("LOCALRT");
26  std::string dname("");
27  if ( pPath != NULL ) dname = std::string(pPath);
28  std::string fname("/tmp/plugins.txt.unsorted");
29  std::string tname = dname + fname;
30  std::string ostring = rname +"\n";
31  std::ofstream file(tname.c_str(),std::ios::app);
32  file<<ostring;
33  }
34  }
35  }
36 
37 } //end class
38 
39 
40 }//end namespace
41 
42 
#define NULL
Definition: scimark2.h:8
const std::complex< double > I
Definition: I.h:8
string fname
main script
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:281