aboutsummaryrefslogtreecommitdiffstats
path: root/mutator-lvl0.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mutator-lvl0.cpp')
-rw-r--r--mutator-lvl0.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/mutator-lvl0.cpp b/mutator-lvl0.cpp
index 99763e7..31e79c0 100644
--- a/mutator-lvl0.cpp
+++ b/mutator-lvl0.cpp
@@ -497,6 +497,30 @@ private:
Rewriter &Rewrite;
};
/**********************************************************************************************************************/
+class MCFunction169 : public MatchFinder::MatchCallback
+{
+public:
+ MCFunction169 (Rewriter &Rewrite) : Rewrite (Rewrite) {}
+
+ virtual void run(const MatchFinder::MatchResult &MR)
+ {
+ const ImplicitCastExpr* ICE = MR.Nodes.getNodeAs<clang::ImplicitCastExpr>("mcfunc169");
+
+ SourceLocation SL = ICE->getLocStart();
+ SL = Devi::SourceLocationHasMacro(SL, Rewrite, "start");
+
+ CastKind CK = ICE->getCastKind();
+
+ if (CK == CK_FunctionToPointerDecay)
+ {
+ std::cout << "16.9 : " << "FunctionToPointerDecay: " << std::endl;
+ std::cout << SL.printToString(*MR.SourceManager) << "\n" << std::endl;
+ }
+ }
+
+private:
+ Rewriter &Rewrite;
+};
/**********************************************************************************************************************/
/**********************************************************************************************************************/
class MyASTConsumer : public ASTConsumer {
@@ -504,7 +528,7 @@ class MyASTConsumer : public ASTConsumer {
public:
MyASTConsumer(Rewriter &R) : HandlerForCmpless(R), HandlerWhileCmpless(R), HandlerElseCmpless(R), HandlerIfCmpless(R), \
HandlerForIfElse(R), HandlerForSwitchBrkLess(R), HandlerForSwitchDftLEss(R), HandlerForMCSwitch151(R), HandlerForMCSwitch155(R), \
- HandlerForMCFunction161(R), HandlerForFunction162(R), HandlerForFunction164(R), HandlerForFunction166(R), HandlerForFunction168(R) {
+ HandlerForMCFunction161(R), HandlerForFunction162(R), HandlerForFunction164(R), HandlerForFunction166(R), HandlerForFunction168(R), HandlerForFunction169(R) {
/*forstmts whithout a compound statement.*/
Matcher.addMatcher(forStmt(unless(hasDescendant(compoundStmt()))).bind("mcfor"), &HandlerForCmpless);
@@ -538,6 +562,8 @@ public:
Matcher.addMatcher(callExpr().bind("mcfunc166"), &HandlerForFunction166);
Matcher.addMatcher(functionDecl(forEachDescendant(returnStmt().bind("mcfunc168"))), &HandlerForFunction168);
+
+ Matcher.addMatcher(implicitCastExpr(unless(hasAncestor(callExpr()))).bind("mcfunc169"), &HandlerForFunction169);
}
void HandleTranslationUnit(ASTContext &Context) override {
@@ -559,6 +585,7 @@ private:
MCFunction164 HandlerForFunction164;
MCFunction166 HandlerForFunction166;
MCFunction168 HandlerForFunction168;
+ MCFunction169 HandlerForFunction169;
MatchFinder Matcher;
};
/**********************************************************************************************************************/