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 #if LLVM_VERSION_MAJOR >= 13
24  I->getTemplateArgs().get(J).print(mgr.getASTContext().getPrintingPolicy(), os, false);
25 #else
26  I->getTemplateArgs().get(J).print(mgr.getASTContext().getPrintingPolicy(), os);
27 #endif
28  std::string rname = os.str().str();
29  std::string fname("plugins.txt.unsorted");
30  std::string ostring = rname + "\n";
31  support::writeLog(ostring, fname);
32  }
33  }
34  }
35 
36  } //end class
37 
38 } // namespace clangcms
const std::complex< double > I
Definition: I.h:8
string fname
main script
const G4String rname[NREG]
std::string tname(const std::string &tableName, const std::string &schemaVersion)
void writeLog(const std::string &ostring, const std::string &tfstring)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163