Mercurial > hg > CbC > CbC_llvm
diff tools/bugpoint-passes/TestPasses.cpp @ 100:7d135dc70f03 LLVM 3.9
LLVM 3.9
author | Miyagi Mitsuki <e135756@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 26 Jan 2016 22:53:40 +0900 |
parents | afa8332a0e37 |
children | 3a76565eade5 |
line wrap: on
line diff
--- a/tools/bugpoint-passes/TestPasses.cpp Tue Oct 13 17:49:56 2015 +0900 +++ b/tools/bugpoint-passes/TestPasses.cpp Tue Jan 26 22:53:40 2016 +0900 @@ -76,20 +76,21 @@ namespace { /// CrashOnDeclFunc - This pass is used to test bugpoint. It intentionally - /// crash if the module has an undefined function (ie a function that is - /// defined in an external module). - class CrashOnDeclFunc : public ModulePass { - public: - static char ID; // Pass ID, replacement for typeid - CrashOnDeclFunc() : ModulePass(ID) {} - private: - bool runOnModule(Module &M) override { - for (auto &F : M.functions()) { - if (F.isDeclaration()) - abort(); - } - return false; +/// crashes if the module has an undefined function (ie a function that is +/// defined in an external module). +class CrashOnDeclFunc : public ModulePass { +public: + static char ID; // Pass ID, replacement for typeid + CrashOnDeclFunc() : ModulePass(ID) {} + +private: + bool runOnModule(Module &M) override { + for (auto &F : M.functions()) { + if (F.isDeclaration()) + abort(); } + return false; + } }; } @@ -97,3 +98,29 @@ static RegisterPass<CrashOnDeclFunc> Z("bugpoint-crash-decl-funcs", "BugPoint Test Pass - Intentionally crash on declared functions"); + +#include <iostream> +namespace { +/// CrashOnOneCU - This pass is used to test bugpoint. It intentionally +/// crashes if the Module has two or more compile units +class CrashOnTooManyCUs : public ModulePass { +public: + static char ID; + CrashOnTooManyCUs() : ModulePass(ID) {} + +private: + bool runOnModule(Module &M) override { + NamedMDNode *CU_Nodes = M.getNamedMetadata("llvm.dbg.cu"); + if (!CU_Nodes) + return false; + if (CU_Nodes->getNumOperands() >= 2) + abort(); + return false; + } +}; +} + +char CrashOnTooManyCUs::ID = 0; +static RegisterPass<CrashOnTooManyCUs> + A("bugpoint-crash-too-many-cus", + "BugPoint Test Pass - Intentionally crash on too many CUs");