diff options
| author | bloodstalker <thabogre@gmail.com> | 2017-02-08 09:12:32 +0000 | 
|---|---|---|
| committer | bloodstalker <thabogre@gmail.com> | 2017-02-08 09:12:32 +0000 | 
| commit | 94a73d8785ae34f780c1fe03fd4c338ae2a0eaa4 (patch) | |
| tree | d28da8c249f991ce23c048ff36522cd41ff686ac | |
| parent | uodated 2/8/17 (diff) | |
| download | mutator-94a73d8785ae34f780c1fe03fd4c338ae2a0eaa4.tar.gz mutator-94a73d8785ae34f780c1fe03fd4c338ae2a0eaa4.zip | |
added 19.8
| -rw-r--r-- | mutator-lvl0.cpp | 33 | 
1 files changed, 32 insertions, 1 deletions
| diff --git a/mutator-lvl0.cpp b/mutator-lvl0.cpp index bd06212..46ed8e7 100644 --- a/mutator-lvl0.cpp +++ b/mutator-lvl0.cpp @@ -48,6 +48,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.*  #include "clang/Frontend/CompilerInstance.h"  #include "clang/Frontend/FrontendActions.h"  #include "clang/Lex/Lexer.h" +#include "clang/Lex/MacroArgs.h"  #include "clang/Lex/Preprocessor.h"  #include "clang/Lex/PPCallbacks.h"  #include "clang/Tooling/CommonOptionsParser.h" @@ -6162,7 +6163,6 @@ public:      MacroInfo* MI = MD.getMacroInfo(); -    /*underdev2*/      /*start of 19.4*/      ArrayRef<Token> TokenArrayRef = MI->tokens(); @@ -6333,6 +6333,32 @@ public:      }      /*end of 19.4*/ +#if 1 +    if (Args != nullptr) +    { +      /*@DEVI-Macro args are passed twice. first they are expanded and then the whole macro, +      including the args is checked again for expansion, so args are passed twice.*/ +      if (MI->getNumArgs() != Args->getNumArguments() - MI->getNumArgs()) +      { +        if (Devi::IsTheMatchInSysHeader(CheckSystemHeader, SM, MDSL)) +        { +          /*intentionally left blank*/ +        } +        else +        { +          if (Devi::IsTheMatchInMainFile(MainFileOnly, SM, MDSL)) +          { +            std::cout << "19.8:" << "Funciton-like macro invoked with wrong number of arguments:"; +            std::cout << Range.getBegin().printToString(SM) << ":" << Args->getNumArguments() << " " << MI->getNumArgs() << ":" << std::endl; + +            XMLDocOut.XMLAddNode(SM, SL, "19.8", "Funciton-like macro invoked with wrong number of arguments:"); +            JSONDocOUT.JSONAddElement(SM, SL, "19.8", "Funciton-like macro invoked with wrong number of arguments:"); +          } +        } +      } +    } +#endif +      if (MacroNameString == "offsetof")      {        if (Devi::IsTheMatchInSysHeader(CheckSystemHeader, SM, MDSL)) @@ -7354,6 +7380,11 @@ public:        JSONDocOUT.JSONAddElement(SpellingLine, SpellingColumn, FileName, "14.2", "Expression result is unused:");      } +    if (Info.getID() == 0U) +    { + +    } +    }  private: | 
