From c0959b173b1358ce8b4e3e02c3cd9166186b1f2e Mon Sep 17 00:00:00 2001 From: bloodstalker Date: Mon, 20 Aug 2018 00:06:45 +0430 Subject: fixes #47. probably a good idea to just wipe and re-clone. also moved m0 to its own folder. --- m0/mutator_aux.h | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 m0/mutator_aux.h (limited to 'm0/mutator_aux.h') diff --git a/m0/mutator_aux.h b/m0/mutator_aux.h new file mode 100644 index 0000000..9f22a5a --- /dev/null +++ b/m0/mutator_aux.h @@ -0,0 +1,66 @@ + +/***************************************************Project Mutator****************************************************/ +//-*-c++-*- +/*********************************************************************************************************************/ +/*first line intentionally left blank*/ +/*Copyright (C) 2017 Farzad Sadeghi + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.*/ +/*********************************************************************************************************************/ +/*inclusion guard*/ +#ifndef MUTATOR_AUX_H +#define MUTATOR_AUX_H +/*********************************************************************************************************************/ +/*inclusion directives*/ +#include +#include +#include "clang/AST/AST.h" +#include "clang/ASTMatchers/ASTMatchFinder.h" +#include "clang/Basic/SourceManager.h" +#include "clang/Rewrite/Core/Rewriter.h" +/*********************************************************************************************************************/ +/*Macros and definitions*/ +#define CheckSLValidity(SL) \ + do {\ + if (!SL.isValid()) {return void();}}\ + while(0); +/*********************************************************************************************************************/ +using namespace clang; +/*********************************************************************************************************************/ +namespace Devi { +enum class NodeKind {NoValue, VarDecl, FieldDecl, RecordDecl, LabelDecl, FunctionDecl, TypedefDecl, ParmVarDecl, EnumDecl, EnumConstDecl}; +enum class Scope {NoValue, TU, Block}; +enum class FunctionDeclKind {NoValue, Definition, Declaration}; +/*********************************************************************************************************************/ +SourceLocation SourceLocationHasMacro(SourceLocation SL, Rewriter &Rewrite, std::string Kind); +SourceLocation SourceLocationHasMacro(SourceLocation __sl, Rewriter &__rewrite); +SourceLocation getSLSpellingLoc(SourceLocation __sl, Rewriter &__rewrite); +/*********************************************************************************************************************/ +bool IsTheMatchInSysHeader(bool SysHeaderFlag, const ast_matchers::MatchFinder::MatchResult &MR, SourceLocation SL); +bool IsTheMatchInSysHeader(bool SysHeaderFlag, const SourceManager &SM, SourceLocation SL); +bool IsTheMatchInSysHeader(bool SysHeaderFlag, bool SysHeader, SourceLocation SL); +bool IsTheMatchInSysHeader(bool SysHeaderFlag, bool SysHeader); +/*********************************************************************************************************************/ +bool IsTheMatchInMainFile(bool MainFileFlag, const ast_matchers::MatchFinder::MatchResult &MR, SourceLocation SL); +bool IsTheMatchInMainFile(bool MainFileFlag, const SourceManager &SM, SourceLocation SL); +bool IsTheMatchInMainFile(bool MainFileFlag, bool MainFile, SourceLocation SL); +bool IsTheMatchInMainFile(bool MainFileFlag, bool MainFile); +/*********************************************************************************************************************/ +/*end of namespace Devi*/ +} +#endif +/*********************************************************************************************************************/ +/*last line intentionally left blank.*/ + -- cgit v1.2.3