CMS 3D CMS Logo

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,
15  clang::ento::AnalysisManager &mgr,
16  clang::ento::BugReporter &BR) const {
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  std::string fname("plugins.txt.unsorted");
26  std::string ostring = rname + "\n";
27  support::writeLog(ostring, fname);
28  }
29  }
30  }
31 
32  } //end class
33 
34 } // namespace clangcms
static char const * tname
Definition: GTSchema.h:13
const std::complex< double > I
Definition: I.h:8
string fname
main script
const G4String rname[NREG]
void writeLog(const std::string &ostring, const std::string &tfstring)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163