aboutsummaryrefslogtreecommitdiffstats
path: root/mutator-lvl0.cpp
diff options
context:
space:
mode:
authorbloodstalker <thabogre@gmail.com>2016-12-13 12:30:41 +0000
committerbloodstalker <thabogre@gmail.com>2016-12-13 12:30:41 +0000
commitada7bbf65097ea7405b69a45651557901b4d08a4 (patch)
tree4cd6ee1813f0c97f63e08710088c1338d88b65e9 /mutator-lvl0.cpp
parentsigned up mutator for cii best practices (diff)
downloadmutator-ada7bbf65097ea7405b69a45651557901b4d08a4.tar.gz
mutator-ada7bbf65097ea7405b69a45651557901b4d08a4.zip
rule check for 8.5 works correctly now
Diffstat (limited to 'mutator-lvl0.cpp')
-rw-r--r--mutator-lvl0.cpp28
1 files changed, 20 insertions, 8 deletions
diff --git a/mutator-lvl0.cpp b/mutator-lvl0.cpp
index 4253913..72fc618 100644
--- a/mutator-lvl0.cpp
+++ b/mutator-lvl0.cpp
@@ -928,6 +928,7 @@ public:
if (VD->isThisDeclarationADefinition(*ASTC) && !(!VD->isLocalVarDecl() && VD->isLocalVarDeclOrParm()))
{
+ std::cout << "XXXXXXXXXXXXXXXXXXXXXXXX" << " " << IncludeFileArr.size() << std::endl;
for (unsigned x = 0; x < IncludeFileArr.size(); ++x)
{
if (SM.getFilename(SL).str() == IncludeFileArr[x])
@@ -2460,21 +2461,30 @@ public:
for (unsigned x = 0; x < IncludeFileArr.size(); ++x)
{
- if (FileName.str() == IncludeFileArr[x])
+ if (SearchPath.str() + "/" + FileName.str() == IncludeFileArr[x])
{
IsNewIncludeFile = false;
break;
}
}
+ /*its supposed to supprt linux and cygwin,mingw and mac builds.*/
if (IsNewIncludeFile)
{
+#if defined(__linux__)
IncludeFileArr.push_back(SearchPath.str() + "/" + FileName.str());
+#elif defined(__MACH__) && defined(__APPLE__)
+ IncludeFileArr.push_back(SearchPath.str() + "/" + FileName.str());
+#elif defined(__CYGWIN__) || defined(_WIN32) || defined(_WIN64)
+ IncludeFileArr.push_back(SearchPath.str() + "\\" + FileName.str());
+#else
+ IncludeFileArr.push_back(SearchPath.str() + "/" + FileName.str());
+#endif
}
}
size_t whateverSlashPos = FileName.find("\\", 0);
- size_t theotherSlashPos = FileName.find("/", 0);
+ size_t theotherSlashPos = FileName.find(" / ", 0);
if (whateverSlashPos != std::string::npos || theotherSlashPos != std::string::npos)
{
@@ -2497,7 +2507,7 @@ public:
DefMacroDirective* DMD = MD.getLocalDirective();
- bool ShouldBeTagged195 = false;
+ bool ShouldBeTagged194 = false;
if (DMD->isDefined())
{
@@ -2511,27 +2521,27 @@ public:
{
if (!(TokenArrayRef[0].getKind() == tok::identifier))
{
- ShouldBeTagged195 = true;
+ ShouldBeTagged194 = true;
}
}
else if (NumOfTokens == 3U)
{
if (!(TokenArrayRef[0].getKind() == tok::l_paren && TokenArrayRef[1].getKind() == tok::identifier && TokenArrayRef[2].getKind() == tok::r_paren))
{
- //ShouldBeTagged195 = true;
+ ShouldBeTagged194 = true;
}
}
else
{
- //ShouldBeTagged195 = true;
+ ShouldBeTagged194 = true;
}
}
else
{
- //ShouldBeTagged195 = true;
+ ShouldBeTagged194 = true;
}
- if (ShouldBeTagged195)
+ if (ShouldBeTagged194)
{
#if 0
std::cout << "19.14 : " << "Illegal \"defined\" form : " << std::endl;
@@ -3057,7 +3067,9 @@ public:
std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, StringRef file) override
{
+#if 1
CI.getPreprocessor().addPPCallbacks(llvm::make_unique<PPInclusion>(&CI.getSourceManager()));
+#endif
TheRewriter.setSourceMgr(CI.getSourceManager(), CI.getLangOpts());
return llvm::make_unique<MyASTConsumer>(TheRewriter);