From cf4e229615f84653e47ec54a3035eb2ff1f454cc Mon Sep 17 00:00:00 2001 From: bloodstalker Date: Sat, 29 Sep 2018 14:51:57 +0330 Subject: with a few minor tweaks, you can build m0, obfuscator and bruiser with llvm 8.0(latest tested:trunk 340121). we are skipping llvm 7.0. Ill keep backwards compatibility with 5.0 or 6.0 for a good while. --- README.md | 5 +- bruiser/bruiser.cpp | 24 ++--- bruiser/bruiser.h | 8 ++ m0/mutator-lvl0.cpp | 259 +++++++++++++++++++++++----------------------- m0/mutator-lvl0.h | 9 ++ m0/mutator_aux.cpp | 16 ++- obfuscator/obfuscator.cpp | 27 +++-- 7 files changed, 197 insertions(+), 151 deletions(-) diff --git a/README.md b/README.md index b8cb040..63e0226 100644 --- a/README.md +++ b/README.md @@ -171,11 +171,12 @@ Currently there is only the master branch which is the dev branch. All the as-of ### Building #### Requirements -* `LLVM/Clang` 5.0 or 6.0.
+* `LLVM/Clang` 5.0, 6.0 or 8.0(we will skip 7.0). For 8.0, the latest tested trunk version is 340121.
* `libffi`
* `libcapstone`
* `libkeystone`
* `libpython` 3.5 or higher
+If capstone and keystone are not included inside your distro's reposotory and you're lazy like me, take a look under `extra-tools`. There are two scripts(one for each) to get those for the Travis image. You can use those.
The other requirements are either directly included or have to be included through `git submodule update`.
#### Linux and Mac @@ -189,8 +190,6 @@ git submodule init git submodule update ``` - -To build the project, you need to have the LLVM libraries 5.0 or higher. mutator can not be built with LLVM 4.0 or lower. The latest tested is LLVM trunk:323883.
Here Are the build options:
* Running `make` will build the default target which is `all`. This will build all the executables, without support for coverage instrumentation.
diff --git a/bruiser/bruiser.cpp b/bruiser/bruiser.cpp index ae6db23..726f963 100644 --- a/bruiser/bruiser.cpp +++ b/bruiser/bruiser.cpp @@ -661,10 +661,10 @@ public: if (MR.Nodes.getNodeAs("mainwrapper") != nullptr) { const FunctionDecl* FD = MR.Nodes.getNodeAs("mainwrapper"); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite); - SourceLocation SLE = FD->getLocEnd(); + SourceLocation SLE = FD->DEVI_GETLOCEND(); CheckSLValidity(SLE); SLE = Devi::SourceLocationHasMacro(SLE, Rewrite); @@ -695,7 +695,7 @@ class LiveListFuncs : public MatchFinder::MatchCallback { if (MR.Nodes.getNodeAs("livelistfuncs") != nullptr) { const clang::FunctionDecl* FD = MR.Nodes.getNodeAs("livelistfuncs"); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, R); @@ -705,13 +705,13 @@ class LiveListFuncs : public MatchFinder::MatchCallback { if (FD->hasBody()) { Stmt* Body = FD->getBody(); - SourceLocation SLBody = Body->getLocStart(); - SourceLocation SLShebang = FD->getLocStart(); + SourceLocation SLBody = Body->DEVI_GETLOCSTART(); + SourceLocation SLShebang = FD->DEVI_GETLOCSTART(); PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(clang::SourceRange(SLShebang, SLBody.getLocWithOffset(-1))).c_str()); PushToLua.push_back(R.getRewrittenText(clang::SourceRange(SLShebang, SLBody.getLocWithOffset(-1)))); } else { - SourceLocation SL = FD->getLocStart(); - SourceLocation SLE = FD->getLocEnd(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); + SourceLocation SLE = FD->DEVI_GETLOCEND(); PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(clang::SourceRange(SL, SLE)).c_str()); PushToLua.push_back(R.getRewrittenText(clang::SourceRange(SL, SLE))); } @@ -730,7 +730,7 @@ class LiveListVars : public MatchFinder::MatchCallback { if (MR.Nodes.getNodeAs("livelistvars") != nullptr) { const clang::VarDecl* VD = MR.Nodes.getNodeAs("livelistvars"); - SourceLocation SL = VD->getLocStart(); + SourceLocation SL = VD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, R); @@ -738,8 +738,8 @@ class LiveListVars : public MatchFinder::MatchCallback { return void(); } - PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(SourceRange(VD->getLocStart(), VD->getLocEnd())).c_str()); - PushToLua.push_back(R.getRewrittenText(SourceRange(VD->getLocStart(), VD->getLocEnd()))); + PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(SourceRange(VD->DEVI_GETLOCSTART(), VD->DEVI_GETLOCEND())).c_str()); + PushToLua.push_back(R.getRewrittenText(SourceRange(VD->DEVI_GETLOCSTART(), VD->DEVI_GETLOCEND()))); } } @@ -755,8 +755,8 @@ class LiveListRecords : public MatchFinder::MatchCallback { if (MR.Nodes.getNodeAs("livelistvars") != nullptr) { const clang::RecordDecl* RD = MR.Nodes.getNodeAs("livelistvars"); - PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(SourceRange(RD->getLocStart(), RD->getLocEnd())).c_str()); - PushToLua.push_back(R.getRewrittenText(SourceRange(RD->getLocStart(), RD->getLocEnd()))); + PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(SourceRange(RD->DEVI_GETLOCSTART(), RD->DEVI_GETLOCEND())).c_str()); + PushToLua.push_back(R.getRewrittenText(SourceRange(RD->DEVI_GETLOCSTART(), RD->DEVI_GETLOCEND()))); } } diff --git a/bruiser/bruiser.h b/bruiser/bruiser.h index 1e54d34..d91bae2 100644 --- a/bruiser/bruiser.h +++ b/bruiser/bruiser.h @@ -47,6 +47,14 @@ namespace bruiser /**********************************************************************************************************************/ const char* M0REP = "../test/misrareport.xml"; /**********************************************************************************************************************/ +#if __clang_major__ <= 6 +#define DEVI_GETLOCSTART getLocStart +#define DEVI_GETLOCEND getLocEnd +#elif __clang_major__ >= 8 +#define DEVI_GETLOCSTART getBeginLoc +#define DEVI_GETLOCEND getEndLoc +#endif + #define JOIN2(x1, x2) x1##x2 #define JOIN3(x1, x2, x3) x1##x2##x3 diff --git a/m0/mutator-lvl0.cpp b/m0/mutator-lvl0.cpp index 0d8f0c4..d8dfc46 100644 --- a/m0/mutator-lvl0.cpp +++ b/m0/mutator-lvl0.cpp @@ -373,7 +373,7 @@ public: ME.ExtractAncestry(ast_type_traits::DynTypedNode::create(*IS), *MR.Context); } - SourceLocation SL = IS->getLocStart(); + SourceLocation SL = IS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -411,7 +411,7 @@ public: ME.ExtractAncestry(ast_type_traits::DynTypedNode::create(*IS), *MR.Context); } - SourceLocation SL = IS->getLocStart(); + SourceLocation SL = IS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -445,7 +445,7 @@ public: if (MR.Nodes.getNodeAs("mcifelse") != nullptr) { const IfStmt *ElseIf = MR.Nodes.getNodeAs("mcifelse"); - SourceLocation IFESL = ElseIf->getLocStart(); + SourceLocation IFESL = ElseIf->DEVI_GETLOCSTART(); CheckSLValidity(IFESL); IFESL = Devi::SourceLocationHasMacro(IFESL, Rewrite, "start"); @@ -479,7 +479,7 @@ public: if (MR.Nodes.getNodeAs("mcswitchbrk") != nullptr) { const SwitchStmt *SS = MR.Nodes.getNodeAs("mcswitchbrk"); - SourceLocation SL = SS->getLocStart(); + SourceLocation SL = SS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -513,7 +513,7 @@ public: if (MR.Nodes.getNodeAs("mcswitchdft") != nullptr) { const SwitchStmt *SS = MR.Nodes.getNodeAs("mcswitchdft"); - SourceLocation SL = SS->getLocStart(); + SourceLocation SL = SS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -545,21 +545,18 @@ public: MCSwitch151 (Rewriter &Rewrite) : Rewrite (Rewrite) {} virtual void run(const MatchFinder::MatchResult &MR) { - if (MR.Nodes.getNodeAs("mccmp151") != nullptr && MR.Nodes.getNodeAs("mccase151") != nullptr) - { + if (MR.Nodes.getNodeAs("mccmp151") != nullptr && MR.Nodes.getNodeAs("mccase151") != nullptr) { const CompoundStmt *CS = MR.Nodes.getNodeAs("mccmp151"); const CaseStmt *SS = MR.Nodes.getNodeAs("mccase151"); - SourceLocation SL = SS->getLocStart(); + SourceLocation SL = SS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); if (Devi::IsTheMatchInSysHeader(CheckSystemHeader, MR, SL)) return void(); ASTContext *const ASTC = MR.Context; - ASTContext::DynTypedNodeList NodeList = ASTC->getParents(*CS); - ast_type_traits::DynTypedNode ParentNode; /*@DEVI-assumptions:nothing has more than one parent in C.*/ @@ -567,7 +564,6 @@ public: else return void(); ast_type_traits::ASTNodeKind ParentNodeKind = ParentNode.getNodeKind(); - std::string StringKind = ParentNodeKind.asStringRef().str(); if (StringKind != "SwitchStmt") { @@ -600,7 +596,7 @@ public: if (MR.Nodes.getNodeAs("mcswitch155") != nullptr) { const SwitchStmt *SS = MR.Nodes.getNodeAs("mcswitch155"); - SourceLocation SL = SS->getLocStart(); + SourceLocation SL = SS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -635,7 +631,7 @@ public: const FunctionDecl *FD = MR.Nodes.getNodeAs("mcfunction161"); if (FD->isVariadic()) { - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -672,7 +668,7 @@ public: const FunctionDecl *FD = MR.Nodes.getNodeAs("mc162funcdec"); const CallExpr *CE = MR.Nodes.getNodeAs("mc162callexpr"); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -723,7 +719,7 @@ public: /*to guard against function that have a declaration that is not a definition only.*/ if (FDcl != nullptr) { - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -732,7 +728,7 @@ public: if (Devi::IsTheMatchInMainFile(MainFileOnly, MR, SL)) {/*intentionally left blank*/} else return void(); - SourceLocation SLDcl = FDcl->getLocStart(); + SourceLocation SLDcl = FDcl->DEVI_GETLOCSTART(); SLDcl = Devi::SourceLocationHasMacro(SLDcl, Rewrite, "start"); ArrayRef FDParmList = FD->parameters(); @@ -775,7 +771,7 @@ public: if (MR.Nodes.getNodeAs("mcfunc166") != nullptr) { const CallExpr *CE = MR.Nodes.getNodeAs("mcfunc166"); - SourceLocation SL = CE->getLocStart(); + SourceLocation SL = CE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -786,7 +782,7 @@ public: const SourceManager &SM = ASTC->getSourceManager(); /*start of 20.4*/ - if ((FuncNameString == "malloc" || FuncNameString == "calloc" || FuncNameString == "free" || FuncNameString == "realloc") && SM.isInSystemHeader(FD->getLocStart())) { + if ((FuncNameString == "malloc" || FuncNameString == "calloc" || FuncNameString == "free" || FuncNameString == "realloc") && SM.isInSystemHeader(FD->DEVI_GETLOCSTART())) { if (Devi::IsTheMatchInSysHeader(CheckSystemHeader, MR, SL)) {/*intentionally left blank*/} else { if (Devi::IsTheMatchInMainFile(MainFileOnly, MR, SL)) { @@ -801,7 +797,7 @@ public: /*end of 20.4*/ /*start of 20.7*/ - if ((FuncNameString == "longjmp") && SM.isInSystemHeader(FD->getLocStart())) { + if ((FuncNameString == "longjmp") && SM.isInSystemHeader(FD->DEVI_GETLOCSTART())) { if (Devi::IsTheMatchInSysHeader(CheckSystemHeader, MR, SL)) {/*intentionally left blank*/} else { if (Devi::IsTheMatchInMainFile(MainFileOnly, MR, SL)) { @@ -816,7 +812,7 @@ public: /*end of 20.7*/ /*start of 20.10*/ - if ((FuncNameString == "atof" || FuncNameString == "atoi" || FuncNameString == "atol") && SM.isInSystemHeader(FD->getLocStart())) { + if ((FuncNameString == "atof" || FuncNameString == "atoi" || FuncNameString == "atol") && SM.isInSystemHeader(FD->DEVI_GETLOCSTART())) { if (Devi::IsTheMatchInSysHeader(CheckSystemHeader, MR, SL)) { /*intentionally left blank*/ } else { @@ -832,7 +828,7 @@ public: /*end of 20.10*/ /*start of 20.11*/ - if ((FuncNameString == "abort" || FuncNameString == "exit" || FuncNameString == "getenv" || FuncNameString == "system") && SM.isInSystemHeader(FD->getLocStart())) { + if ((FuncNameString == "abort" || FuncNameString == "exit" || FuncNameString == "getenv" || FuncNameString == "system") && SM.isInSystemHeader(FD->DEVI_GETLOCSTART())) { if (Devi::IsTheMatchInSysHeader(CheckSystemHeader, MR, SL)) {/*intentionally left blank*/} else { if (Devi::IsTheMatchInMainFile(MainFileOnly, MR, SL)) { @@ -879,14 +875,14 @@ public: const Expr *RE [[maybe_unused]] = RT->getRetValue(); - SourceLocation SL = RT->getLocStart(); + SourceLocation SL = RT->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); if (Devi::IsTheMatchInSysHeader(CheckSystemHeader, MR, SL)) return void(); if (!Devi::IsTheMatchInMainFile(MainFileOnly, MR, SL)) return void(); - SourceLocation SLE = RT->getLocEnd(); + SourceLocation SLE = RT->DEVI_GETLOCEND(); SLE = Devi::SourceLocationHasMacro(SLE, Rewrite, "end"); SourceRange SR; @@ -911,7 +907,7 @@ public: if (MR.Nodes.getNodeAs("mcfunc169") != nullptr) { const ImplicitCastExpr* ICE = MR.Nodes.getNodeAs("mcfunc169"); - SourceLocation SL = ICE->getLocStart(); + SourceLocation SL = ICE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -974,7 +970,7 @@ public: alreadymatched = false; const RecordDecl *RD = MR.Nodes.getNodeAs("mcsu184"); - SourceLocation SL = RD->getLocStart(); + SourceLocation SL = RD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1023,7 +1019,7 @@ public: const RecordDecl* RD = MR.Nodes.getNodeAs("mcsu181struct"); - SourceLocation SL = RD->getLocStart(); + SourceLocation SL = RD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1123,7 +1119,7 @@ public: if (MR.Nodes.getNodeAs("mctype6465") != nullptr) { const FieldDecl *FD = MR.Nodes.getNodeAs("mctype6465"); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1194,11 +1190,11 @@ public: DeclarationNameInfo DNI = FD->getNameInfo(); std::string MatchedName = DNI.getAsString(); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); - SourceLocation SLE = FD->getLocEnd(); + SourceLocation SLE = FD->DEVI_GETLOCEND(); SLE = Devi::SourceLocationHasMacro(SLE, Rewrite, "start"); ASTContext* const ASTC = MR.Context; @@ -1365,7 +1361,7 @@ public: if (MR.Nodes.getNodeAs("mcinit91") != nullptr) { const VarDecl* VD = MR.Nodes.getNodeAs("mcinit91"); - SourceLocation SL = VD->getLocStart(); + SourceLocation SL = VD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SourceLocation SLMID; @@ -1374,7 +1370,7 @@ public: } SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); - SourceLocation SLE = VD->getLocEnd(); + SourceLocation SLE = VD->DEVI_GETLOCEND(); SourceLocation SLEMID; if (SLE.isMacroID()) { @@ -1442,13 +1438,13 @@ public: /*JANKY*/ const Expr* InitExpr [[maybe_unused]] = VD->getInit(); SourceRange InitExprSR; - SourceLocation IESL = InitExpr->getLocStart(); + SourceLocation IESL = InitExpr->DEVI_GETLOCSTART(); CheckSLValidity(IESL); IESL = Devi::SourceLocationHasMacro(IESL, Rewrite, "start"); CheckSLValidity(IESL); - SourceLocation IESLE = InitExpr->getLocEnd(); + SourceLocation IESLE = InitExpr->DEVI_GETLOCEND(); IESLE = Devi::SourceLocationHasMacro(IESLE, Rewrite, "end"); InitExprSR.setBegin(IESL); InitExprSR.setEnd(IESLE); @@ -1508,7 +1504,7 @@ public: const InitListExpr* ILE = MR.Nodes.getNodeAs("mcinit92"); const VarDecl* VD = MR.Nodes.getNodeAs("mcinit92daddy"); - SourceLocation SL = VD->getLocStart(); + SourceLocation SL = VD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1535,7 +1531,7 @@ public: it tells us we could not match an integer initialization for this enumconstantdecl.*/ const IntegerLiteral* IL = MR.Nodes.getNodeAs("mcinit93kiddy"); - SourceLocation SL = ED->getLocStart(); + SourceLocation SL = ED->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); newSourceLocation = SL; @@ -1633,7 +1629,7 @@ public: if (MR.Nodes.getNodeAs("mcexpr123kiddy") != nullptr) { const Expr* EXP = MR.Nodes.getNodeAs("mcexpr123kiddy"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1668,7 +1664,7 @@ public: if (MR.Nodes.getNodeAs("mcexpr124") != nullptr) { const Expr* EXP = MR.Nodes.getNodeAs("mcexpr124"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1704,7 +1700,7 @@ public: if (MR.Nodes.getNodeAs("lrhs") != nullptr) { const Expr* EXP = MR.Nodes.getNodeAs("lrhs"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1712,7 +1708,7 @@ public: QualType QT [[maybe_unused]] = EXP->getType(); - SourceLocation SLE = EXP->getLocEnd(); + SourceLocation SLE = EXP->DEVI_GETLOCEND(); SLE = Devi::SourceLocationHasMacro(SLE, Rewrite, "end"); SourceRange SR; @@ -1762,7 +1758,7 @@ public: if (MR.Nodes.getNodeAs("mcexpr126rl") != nullptr) { const Expr* EXP = MR.Nodes.getNodeAs("mcexpr126rl"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1795,7 +1791,7 @@ public: if (MR.Nodes.getNodeAs("mcexpr127rl") != nullptr) { const Expr* EXP = MR.Nodes.getNodeAs("mcexpr127rl"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1833,7 +1829,7 @@ public: const Expr* RHS = MR.Nodes.getNodeAs("mcexpr128rhs"); const Expr* LHS = MR.Nodes.getNodeAs("mcexpr128lhs"); - SourceLocation SL = RHS->getLocStart(); + SourceLocation SL = RHS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1883,7 +1879,7 @@ public: if (MR.Nodes.getNodeAs("mcexpr129") != nullptr) { const Expr* EXP = MR.Nodes.getNodeAs("mcexpr129"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1920,7 +1916,7 @@ public: if (MR.Nodes.getNodeAs("mcexpr1210") != nullptr) { const Expr* EXP = MR.Nodes.getNodeAs("mcexpr1210"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -1982,7 +1978,7 @@ public: if (MR.Nodes.getNodeAs("cse131rlhs") != nullptr) { const Expr* EXP = MR.Nodes.getNodeAs("cse131rlhs"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2015,7 +2011,7 @@ public: if (MR.Nodes.getNodeAs("mccse132") != nullptr) { const Expr* EXP = MR.Nodes.getNodeAs("mccse132"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2049,12 +2045,12 @@ public: const Expr* EXP = MR.Nodes.getNodeAs("mccse1332rl"); const BinaryOperator* BO = MR.Nodes.getNodeAs("mccse1332daddy"); - SourceLocation SLD = BO->getLocStart(); + SourceLocation SLD = BO->DEVI_GETLOCSTART(); CheckSLValidity(SLD); SLD = Devi::SourceLocationHasMacro(SLD, Rewrite, "start"); NewSL = SLD; - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2103,7 +2099,7 @@ public: const ForStmt* FS = MR.Nodes.getNodeAs("mccse134"); - SourceLocation SL = FS->getLocStart(); + SourceLocation SL = FS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2185,26 +2181,26 @@ public: /*underdev*/ if (FSCond != nullptr) { - SourceLocation CSL = FSCond->getLocStart(); + SourceLocation CSL = FSCond->DEVI_GETLOCSTART(); CheckSLValidity(CSL); - SourceLocation CSLE = FSCond->getLocEnd(); + SourceLocation CSLE = FSCond->DEVI_GETLOCEND(); SourceRange CSR; CSR.setBegin(CSL); CSR.setEnd(CSLE); std::string outstring = Rewrite.getRewrittenText(CSR); } - SourceLocation SLD = FS->getLocStart(); + SourceLocation SLD = FS->DEVI_GETLOCSTART(); CheckSLValidity(SLD); SLD = Devi::SourceLocationHasMacro(SLD, Rewrite, "start"); - SourceLocation SL = DRE->getLocStart(); + SourceLocation SL = DRE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); if (FSInit != nullptr && FSInc != nullptr) { - SourceLocation SLFSInit = FSInit->getLocStart(); + SourceLocation SLFSInit = FSInit->DEVI_GETLOCSTART(); SLFSInit = Devi::SourceLocationHasMacro(SLFSInit, Rewrite, "start"); - SourceLocation SLFSInc = FSInc->getLocStart(); + SourceLocation SLFSInc = FSInc->DEVI_GETLOCSTART(); SLFSInc = Devi::SourceLocationHasMacro(SLFSInc, Rewrite, "start"); DeclarationNameInfo DNI = DRE->getNameInfo(); @@ -2252,7 +2248,7 @@ public: if (MR.Nodes.getNodeAs("mccf144") != nullptr) { const GotoStmt* GS = MR.Nodes.getNodeAs("mccf144"); - SourceLocation SL = GS->getLocStart(); + SourceLocation SL = GS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2279,7 +2275,7 @@ public: if (MR.Nodes.getNodeAs("mccf145") != nullptr) { const ContinueStmt* CS = MR.Nodes.getNodeAs("mccf145"); - SourceLocation SL = CS->getLocStart(); + SourceLocation SL = CS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2309,7 +2305,7 @@ public: { const ForStmt* FS = MR.Nodes.getNodeAs("mccffofo"); - SL = FS->getLocStart(); + SL = FS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); } @@ -2318,7 +2314,7 @@ public: { const WhileStmt* WS = MR.Nodes.getNodeAs("mccfwuwu"); - SL = WS->getLocStart(); + SL = WS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); } @@ -2327,7 +2323,7 @@ public: { const DoStmt* DS = MR.Nodes.getNodeAs("mccfdodo"); - SL = DS->getLocStart(); + SL = DS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); } @@ -2389,7 +2385,7 @@ public: { const FunctionDecl* FD = MR.Nodes.getNodeAs("mccf147"); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2451,7 +2447,7 @@ public: { const ForStmt* FS = MR.Nodes.getNodeAs("mccf148for"); - SL = FS->getLocStart(); + SL = FS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2476,7 +2472,7 @@ public: { const WhileStmt* WS = MR.Nodes.getNodeAs("mccf148while"); - SL = WS->getLocStart(); + SL = WS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2501,7 +2497,7 @@ public: { const DoStmt* DS = MR.Nodes.getNodeAs("mccf148do"); - SL = DS->getLocStart(); + SL = DS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2526,7 +2522,7 @@ public: { const SwitchStmt* SS = MR.Nodes.getNodeAs("mccf148switch"); - SL = SS->getLocStart(); + SL = SS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2563,7 +2559,7 @@ public: { const Expr* EXP = MR.Nodes.getNodeAs("mcswitch154"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2608,7 +2604,7 @@ public: { const ImplicitCastExpr* ICE = MR.Nodes.getNodeAs("mcptc111"); - SourceLocation SL = ICE->getLocStart(); + SourceLocation SL = ICE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2763,7 +2759,7 @@ public: { const Expr* EXP = MR.Nodes.getNodeAs("mccse137"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -2853,15 +2849,15 @@ public: FDDef = CE->getDirectCallee(); } - SourceLocation CESL = CE->getLocStart(); + SourceLocation CESL = CE->DEVI_GETLOCSTART(); CheckSLValidity(CESL); CESL = Devi::SourceLocationHasMacro(CESL, Rewrite, "start"); - SourceLocation FDDadSL = FDDad->getLocStart(); + SourceLocation FDDadSL = FDDad->DEVI_GETLOCSTART(); CheckSLValidity(FDDadSL); FDDadSL = Devi::SourceLocationHasMacro(FDDadSL, Rewrite, "start"); - SourceLocation FDSL = FDDef->getLocStart(); + SourceLocation FDSL = FDDef->DEVI_GETLOCSTART(); CheckSLValidity(FDSL); FDSL = Devi::SourceLocationHasMacro(FDSL, Rewrite, "start"); @@ -2966,7 +2962,7 @@ public: { const FunctionDecl* FD = MR.Nodes.getNodeAs("mcfunction165"); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3003,10 +2999,10 @@ public: { const FunctionDecl* FD = MR.Nodes.getNodeAs("mcfunction1652"); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); - SourceLocation SLE = FD->getBody()->getLocStart(); + SourceLocation SLE = FD->getBody()->DEVI_GETLOCSTART(); CheckSLValidity(SLE); SLE = Devi::SourceLocationHasMacro(SLE, Rewrite, "end"); @@ -3061,7 +3057,7 @@ public: { const DeclRefExpr* DRE = MR.Nodes.getNodeAs("mcpointer171") ; - SourceLocation SL = DRE->getLocStart(); + SourceLocation SL = DRE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3113,7 +3109,7 @@ public: const DeclRefExpr* DREL = MR.Nodes.getNodeAs("mcpointer1723lhs"); const BinaryOperator* BO = MR.Nodes.getNodeAs("mcpointer1723daddy"); - SourceLocation SL = BO->getLocStart(); + SourceLocation SL = BO->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3165,7 +3161,7 @@ public: { const CastExpr* CE = MR.Nodes.getNodeAs("mcpointer174"); - SourceLocation SL = CE->getLocStart(); + SourceLocation SL = CE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3195,7 +3191,7 @@ public: { const DeclRefExpr* DRE = MR.Nodes.getNodeAs("mcpointer1742"); - SourceLocation SL = DRE->getLocStart(); + SourceLocation SL = DRE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3244,7 +3240,7 @@ public: { VD = MR.Nodes.getNodeAs("mcpointer175"); - SL = VD->getLocStart(); + SL = VD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3365,10 +3361,10 @@ public: QualType QTEXP = EXP->getType(); const clang::Type* TPEXP = QTEXP.getTypePtr(); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); - SourceLocation SLE = EXP->getLocEnd(); + SourceLocation SLE = EXP->DEVI_GETLOCEND(); SLE = Devi::SourceLocationHasMacro(SLE, Rewrite, "start"); SourceRange SR; @@ -3459,7 +3455,7 @@ public: { const VarDecl* VD = MR.Nodes.getNodeAs("mcsu181arr"); - SourceLocation SL = VD->getLocStart(); + SourceLocation SL = VD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3496,7 +3492,7 @@ public: { const CStyleCastExpr* CSCE = MR.Nodes.getNodeAs("mcptc11cstyle"); - SourceLocation SL = CSCE->getLocStart(); + SourceLocation SL = CSCE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3628,7 +3624,7 @@ public: if ((ICE->getCastKind() == CK_IntegralCast) || (ICE->getCastKind() == CK_FloatingCast) || \ (ICE->getCastKind() == CK_FloatingComplexCast) || (ICE->getCastKind() == CK_IntegralComplexCast)) { - SourceLocation SL = ICE->getLocStart(); + SourceLocation SL = ICE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3874,7 +3870,7 @@ public: const IdentifierInfo *II = ND->getIdentifier(); - SourceLocation SL = ND->getLocStart(); + SourceLocation SL = ND->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -3940,7 +3936,7 @@ public: std::string VDName = VD->getIdentifier()->getName().str(); - SourceLocation SL = VD->getLocStart(); + SourceLocation SL = VD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -4038,7 +4034,7 @@ public: { const VarDecl* VD = MR.Nodes.getNodeAs("mcdcdf88var"); - SourceLocation SL = VD->getLocStart(); + SourceLocation SL = VD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -4081,7 +4077,7 @@ public: { const FunctionDecl* FD = MR.Nodes.getNodeAs("mcdcdf88function"); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -4169,7 +4165,7 @@ public: { RawText = iter->getRawText(SM); - SourceLocation RCSL = iter->getLocStart(); + SourceLocation RCSL = iter->DEVI_GETLOCSTART(); CheckSLValidity(RCSL); RCSL = Devi::SourceLocationHasMacro(RCSL, Rewrite, "start"); @@ -4239,7 +4235,7 @@ public: { const ParmVarDecl* PVD = MR.Nodes.getNodeAs("mcfunction167"); - SourceLocation SL = PVD->getLocStart(); + SourceLocation SL = PVD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -4306,7 +4302,7 @@ public: RHSIsIntLit = true; } - SourceLocation SL = LHS->getLocStart(); + SourceLocation SL = LHS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -4402,7 +4398,7 @@ public: { const RecordDecl* RD = MR.Nodes.getNodeAs("mcexpr1212"); - SourceLocation SL = RD->getLocStart(); + SourceLocation SL = RD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -4437,11 +4433,11 @@ public: { const Expr* EXP = MR.Nodes.getNodeAs("mcexpr1211"); - SourceLocation SL = EXP->getLocStart(); + SourceLocation SL = EXP->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); - SourceLocation SLE = EXP->getLocEnd(); + SourceLocation SLE = EXP->DEVI_GETLOCEND(); SLE = Devi::SourceLocationHasMacro(SLE, Rewrite, "start"); if (Devi::IsTheMatchInSysHeader(CheckSystemHeader, MR, SL)) @@ -4606,7 +4602,7 @@ public: const BinaryOperator* BO = MR.Nodes.getNodeAs("mcatc105"); DynOpNode = ast_type_traits::DynTypedNode::create(*BO); - SL = BO->getLocStart(); + SL = BO->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); } @@ -4616,7 +4612,7 @@ public: const UnaryOperator* UO = MR.Nodes.getNodeAs("mcatc105uno"); DynOpNode = ast_type_traits::DynTypedNode::create(*UO); - SL = UO->getLocStart(); + SL = UO->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); } @@ -4731,7 +4727,7 @@ public: { const ForStmt* FS = MR.Nodes.getNodeAs("mccse135"); - SourceLocation SL = FS->getLocStart(); + SourceLocation SL = FS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -4815,11 +4811,11 @@ public: const IntegerLiteral* IL = MR.Nodes.getNodeAs("mcconst71int"); SourceRange SR; - SL = IL->getLocStart(); + SL = IL->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); SR.setBegin(SL); - SourceLocation SLE = IL->getLocEnd(); + SourceLocation SLE = IL->DEVI_GETLOCEND(); SLE = Devi::SourceLocationHasMacro(SLE, Rewrite, "start"); SR.setEnd(SLE); @@ -4830,7 +4826,7 @@ public: { const clang::StringLiteral* StringLit = MR.Nodes.getNodeAs("mcconst71string"); - SL = StringLit->getLocStart(); + SL = StringLit->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "strat"); @@ -4841,12 +4837,12 @@ public: { const CharacterLiteral* CL = MR.Nodes.getNodeAs("mcconst71char"); - SL = CL->getLocStart(); + SL = CL->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); SourceRange SR; - SourceLocation SLE = CL->getLocEnd(); + SourceLocation SLE = CL->DEVI_GETLOCEND(); SLE = Devi::SourceLocationHasMacro(SLE, Rewrite, "start"); SR.setBegin(SL); SR.setEnd(SLE); @@ -4915,7 +4911,7 @@ public: { const TypedefDecl* BN = MR.Nodes.getNodeAs("ident5typedef"); - SourceLocation SL = BN->getLocStart(); + SourceLocation SL = BN->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -4947,7 +4943,7 @@ public: { const RecordDecl* BN = MR.Nodes.getNodeAs("ident5record"); - SourceLocation SL = BN->getLocStart(); + SourceLocation SL = BN->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5000,7 +4996,7 @@ public: { const FieldDecl* BN = MR.Nodes.getNodeAs("ident5field"); - SourceLocation SL = BN->getLocStart(); + SourceLocation SL = BN->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5054,7 +5050,7 @@ public: { const ParmVarDecl* BN = MR.Nodes.getNodeAs("ident5parmvar"); - SourceLocation SL = BN->getLocStart(); + SourceLocation SL = BN->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5107,7 +5103,7 @@ public: { const FunctionDecl* BN = MR.Nodes.getNodeAs("ident5func"); - SourceLocation SL = BN->getLocStart(); + SourceLocation SL = BN->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5155,7 +5151,7 @@ public: { const VarDecl* BN = MR.Nodes.getNodeAs("ident5var"); - SourceLocation SL = BN->getLocStart(); + SourceLocation SL = BN->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5208,7 +5204,7 @@ public: { const EnumDecl* BN = MR.Nodes.getNodeAs("ident5enum"); - SourceLocation SL = BN->getLocStart(); + SourceLocation SL = BN->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5261,7 +5257,7 @@ public: { const LabelDecl* BN = MR.Nodes.getNodeAs("ident5label"); - SourceLocation SL = BN->getLocStart(); + SourceLocation SL = BN->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5314,7 +5310,7 @@ public: { const EnumConstantDecl* BN = MR.Nodes.getNodeAs("ident5enumconst"); - SourceLocation SL = BN->getLocStart(); + SourceLocation SL = BN->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5376,7 +5372,7 @@ class SFCPPARR01 : public MatchFinder::MatchCallback virtual void run(const MatchFinder::MatchResult &MR) { if (MR.Nodes.getNodeAs("sfcpparrdecl") != nullptr) { const VarDecl* VD = MR.Nodes.getNodeAs("sfcpparrdecl"); - SourceLocation SL = VD->getLocStart(); + SourceLocation SL = VD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5392,7 +5388,7 @@ class SFCPPARR01 : public MatchFinder::MatchCallback if (MR.Nodes.getNodeAs("sfcpparrcastexpr") != nullptr) { const CastExpr* CS = MR.Nodes.getNodeAs("sfcpparrcastexpr"); - SourceLocation SL = CS->getLocStart(); + SourceLocation SL = CS->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5409,7 +5405,7 @@ class SFCPPARR01 : public MatchFinder::MatchCallback { const FieldDecl* FD = MR.Nodes.getNodeAs("sfcpparrfield"); - SourceLocation SL = FD->getLocStart(); + SourceLocation SL = FD->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5443,7 +5439,7 @@ class SFCPPARR02SUB : public MatchFinder::MatchCallback SourceManager *const SM = MR.SourceManager; - SourceLocation SL = DRE->getLocStart(); + SourceLocation SL = DRE->DEVI_GETLOCSTART(); CheckSLValidity(SL); //SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); SL = SM->getSpellingLoc(SL); @@ -5460,7 +5456,7 @@ class SFCPPARR02SUB : public MatchFinder::MatchCallback const NamedDecl* ND = DRE->getFoundDecl(); - SourceLocation OriginSL = ND->getLocStart(); + SourceLocation OriginSL = ND->DEVI_GETLOCSTART(); CheckSLValidity(OriginSL); //OriginSL = Devi::SourceLocationHasMacro(OriginSL, Rewrite, "start"); OriginSL = SM->getSpellingLoc(OriginSL); @@ -5517,7 +5513,7 @@ class SFCPPARR02 : public MatchFinder::MatchCallback SourceManager *const SM = MR.SourceManager; - SourceLocation SL = DRE->getLocStart(); + SourceLocation SL = DRE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = SM->getSpellingLoc(SL); @@ -5525,8 +5521,8 @@ class SFCPPARR02 : public MatchFinder::MatchCallback StringRef NDName = ND->getName(); - SubHandler.setOriginSourceLocation(SM->getSpellingLoc(ND->getLocStart())); - SubHandler.setOriginFileName(SM->getFilename(SM->getSpellingLoc(ND->getLocStart()))); + SubHandler.setOriginSourceLocation(SM->getSpellingLoc(ND->DEVI_GETLOCSTART())); + SubHandler.setOriginFileName(SM->getFilename(SM->getSpellingLoc(ND->DEVI_GETLOCSTART()))); Matcher.addMatcher(declRefExpr(to(varDecl(hasName(NDName.str())))).bind("sfcpp02sub"), &SubHandler); @@ -5558,7 +5554,7 @@ class SFCPPPNTR01 : public MatchFinder::MatchCallback { const VarDecl* VD = MR.Nodes.getNodeAs("sfcpppntr01"); - SourceLocation SL = VD->clang::Decl::getLocStart(); + SourceLocation SL = VD->clang::Decl::DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5597,7 +5593,7 @@ class SFCPPPNTR02 : public MatchFinder::MatchCallback { const DeclRefExpr* DRE = MR.Nodes.getNodeAs("sfcpppntr02"); - SourceLocation SL = DRE->getLocStart(); + SourceLocation SL = DRE->DEVI_GETLOCSTART(); CheckSLValidity(SL); SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start"); @@ -5649,13 +5645,17 @@ public: throw MutExHeaderNotFound(FileName.str()); } +#if __clang_major__ <= 6 virtual void InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName, \ - bool IsAngled, CharSourceRange FileNameRange, const FileEntry* File, \ - StringRef SearchPath, StringRef RelativePath, const clang::Module* Imported) - { - + bool IsAngled, CharSourceRange FileNameRange, const FileEntry* File, \ + StringRef SearchPath, StringRef RelativePath, const clang::Module* Imported) { +#elif __clang_major__ >= 8 + virtual void InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, + StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, const FileEntry *File, + StringRef SearchPath, StringRef RelativePath, const clang::Module *Imported, + SrcMgr::CharacteristicKind FileType) { +#endif CheckSLValidity(HashLoc); - #if defined(__linux__) std::ifstream HeaderABS(SearchPath.str() + "/" + FileName.str()); std::ifstream HeaderRel(RelativePath.str() + "/" + FileName.str()); @@ -7683,17 +7683,20 @@ int main(int argc, const char** argv) { #if 0 std::string action_file_path; + std::cout << "start\n"; for (int i = 0; i < argc; ++i) { if (strcmp(argv[i], "--file") == 0) { if (i < argc - 2) { - action_file_path = argv[i]; + action_file_path = argv[i+1]; } else { - std::cout << "error:bad argument for option --file\n"; + //FIXME } } } std::vector vc; + std::cout << "before\n"; std::vector vs = Devi::action_file_parser(argc, argv, action_file_path); + std::cout << "after\n"; std::transform(vs.begin(), vs.end(), std::back_inserter(vc), [](const std::string &s){return s.c_str();}); #endif //CommonOptionsParser op(argc, &vc[0], MutatorLVL0Cat); diff --git a/m0/mutator-lvl0.h b/m0/mutator-lvl0.h index 5881228..1891fef 100644 --- a/m0/mutator-lvl0.h +++ b/m0/mutator-lvl0.h @@ -37,6 +37,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.* #include "clang/AST/ASTContext.h" #include "clang/AST/ASTTypeTraits.h" /**********************************************************************************************************************/ +/*macros*/ +#if __clang_major__ <= 6 +#define DEVI_GETLOCSTART getLocStart +#define DEVI_GETLOCEND getLocEnd +#elif __clang_major__ >= 8 +#define DEVI_GETLOCSTART getBeginLoc +#define DEVI_GETLOCEND getEndLoc +#endif +/**********************************************************************************************************************/ /*externals*/ /**********************************************************************************************************************/ struct WeakPoint diff --git a/m0/mutator_aux.cpp b/m0/mutator_aux.cpp index f6b2675..b563bbe 100644 --- a/m0/mutator_aux.cpp +++ b/m0/mutator_aux.cpp @@ -43,11 +43,23 @@ SourceLocation SourceLocationHasMacro [[deprecated("doesnt work")]] (SourceLocat /*does the sourcelocation include a macro expansion?*/ if ( SL.isMacroID()) { /*get the expansion range which is startloc and endloc*/ +#if __clang_major__ <= 6 std::pair expansionRange = Rewrite.getSourceMgr().getImmediateExpansionRange(SL); +#elif __clang_major__ == 8 + CharSourceRange expansionRange = Rewrite.getSourceMgr().getImmediateExpansionRange(SL); +#endif if (Kind == "start") { - return (expansionRange.first); +#if __clang_major__ <= 6 + return expansionRange.first; +#elif __clang_major__ >= 8 + return expansionRange.getBegin(); +#endif } else if (Kind == "end") { - return (expansionRange.second); +#if __clang_major__ <= 6 + return expansionRange.second; +#elif __clang_major__ >= 8 + return expansionRange.getEnd(); +#endif } else { std::cout << "the third argument of Devi::SourceLocationHasMacro is invalid." << std::endl; } diff --git a/obfuscator/obfuscator.cpp b/obfuscator/obfuscator.cpp index 9ab7310..b56ded9 100644 --- a/obfuscator/obfuscator.cpp +++ b/obfuscator/obfuscator.cpp @@ -72,6 +72,14 @@ cl::opt SHAKE_LEN("shake_len", cl::desc("length of the shake hash, the #else #define TEMP_FILE "/tmp/obfuscator-tee" #endif + +#if __clang_major__ <= 6 +#define DEVI_GETLOCSTART getLocStart +#define DEVI_GETLOCEND getLocEnd +#elif __clang_major__ >= 8 +#define DEVI_GETLOCSTART getBeginLoc +#define DEVI_GETLOCEND getEndLoc +#endif /**********************************************************************************************************************/ std::string hashWrapper(std::string name) { if (!SHAKE) { @@ -249,12 +257,12 @@ class CalledFunc : public MatchFinder::MatchCallback { #ifdef DBG std::cout << "CallExpr name: " << name << " Hash: " << hash << " New ID: " << newname << "\n"; #endif - auto dummy = Rewrite.getRewrittenText(SourceRange(CE->getLocStart(), CE->getRParenLoc())); + auto dummy = Rewrite.getRewrittenText(SourceRange(CE->DEVI_GETLOCSTART(), CE->getRParenLoc())); auto LParenOffset = dummy.find("("); - SourceLocation SL = Devi::getSLSpellingLoc(CE->getLocStart(), Rewrite); - SourceLocation SLE = Devi::getSLSpellingLoc(CE->getLocStart(), Rewrite).getLocWithOffset(LParenOffset - 0U); + SourceLocation SL = Devi::getSLSpellingLoc(CE->DEVI_GETLOCSTART(), Rewrite); + SourceLocation SLE = Devi::getSLSpellingLoc(CE->DEVI_GETLOCSTART(), Rewrite).getLocWithOffset(LParenOffset - 0U); dummy = Rewrite.getRewrittenText(SourceRange(SL, SLE)); - Rewrite.ReplaceText(SourceRange(CE->getLocStart(), CE->getLocStart().getLocWithOffset(LParenOffset - 1U)), StringRef(newname)); + Rewrite.ReplaceText(SourceRange(CE->DEVI_GETLOCSTART(), CE->DEVI_GETLOCSTART().getLocWithOffset(LParenOffset - 1U)), StringRef(newname)); } } @@ -344,7 +352,7 @@ public: EXP = MR.Nodes.getNodeAs("expr"); SLE = Devi::getSLSpellingLoc(EXP->getExprLoc(), Rewrite); } else { - SLE = Devi::getSLSpellingLoc(VD->getLocEnd(), Rewrite); + SLE = Devi::getSLSpellingLoc(VD->DEVI_GETLOCEND(), Rewrite); } //@devi-FIXME-cluncky @@ -377,7 +385,7 @@ class ClassDecl : public MatchFinder::MatchCallback { #endif SourceLocation SL = Devi::getSLSpellingLoc(RD->getLocation(), Rewrite); - SourceLocation SLE = Devi::getSLSpellingLoc(RD->getLocEnd(), Rewrite); + SourceLocation SLE = Devi::getSLSpellingLoc(RD->DEVI_GETLOCEND(), Rewrite); std::string dummy = Rewrite.getRewrittenText(SourceRange(SL, SLE)); Rewrite.ReplaceText(SourceRange(SL, SLE), StringRef(newname)); @@ -425,9 +433,16 @@ public: Rewrite.ReplaceText(SourceRange(SL, SL.getLocWithOffset(MacroNameTok.getLength() - 1)), newname); } +#if __clang_major__ <= 6 virtual void InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, const FileEntry *File, StringRef SearchPath, StringRef RelativePath, const clang::Module *Imported) { +#elif __clang_major__ >= 8 + virtual void InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, + StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, const FileEntry *File, + StringRef SearchPath, StringRef RelativePath, const clang::Module *Imported, + SrcMgr::CharacteristicKind FileType) { +#endif std::cout << "Include filename: " << FileName.str() << "\n"; // name, extension, path auto header_ = getNameFromPath(FileName.str()); -- cgit v1.2.3