mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-30 17:25:21 +00:00
Let subprograms with instructions without parent scopes fail the
verification. Tested via a unit test. Follow-up to r226616. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226684 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
#include "llvm/IR/BasicBlock.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
#include "llvm/IR/DIBuilder.h"
|
||||
#include "llvm/IR/Function.h"
|
||||
#include "llvm/IR/IntrinsicInst.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
@@ -287,5 +288,21 @@ TEST_F(IRBuilderTest, RAIIHelpersTest) {
|
||||
EXPECT_EQ(BB, Builder.GetInsertBlock());
|
||||
}
|
||||
|
||||
TEST_F(IRBuilderTest, DIBuilder) {
|
||||
IRBuilder<> Builder(BB);
|
||||
DIBuilder DIB(*M);
|
||||
auto File = DIB.createFile("F.CBL", "/");
|
||||
auto CU = DIB.createCompileUnit(dwarf::DW_LANG_Cobol74, "F.CBL", "/",
|
||||
"llvm-cobol74", true, "", 0);
|
||||
auto Type = DIB.createSubroutineType(File, DIB.getOrCreateTypeArray({}));
|
||||
auto SP = DIB.createFunction(CU, "foo", "", File, 1, Type,
|
||||
false, true, 1, 0, true, F);
|
||||
EXPECT_TRUE(SP.Verify());
|
||||
AllocaInst *I = Builder.CreateAlloca(Builder.getInt8Ty());
|
||||
auto BadScope = DIB.createLexicalBlockFile(DIDescriptor(), File, 0);
|
||||
I->setDebugLoc(DebugLoc::get(2, 0, BadScope));
|
||||
EXPECT_FALSE(SP.Verify());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user