From 7a1a3e909dc7834f290a4b1c282b015380eaf94d Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Thu, 26 Mar 2015 05:03:10 +0000 Subject: [PATCH] bugpoint: Verify input files Like r233229 for `llvm-link`, start verifying input files to `bugpoint`. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233253 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/BugPoint/metadata.ll | 8 ++++---- tools/bugpoint/BugDriver.cpp | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/test/BugPoint/metadata.ll b/test/BugPoint/metadata.ll index 95d22a81f9e..c706d9036d7 100644 --- a/test/BugPoint/metadata.ll +++ b/test/BugPoint/metadata.ll @@ -6,9 +6,9 @@ ; CHECK: call void @foo(), !dbg ![[LOC:[0-9]+]], !attach ![[CALL:[0-9]+]] ; CHECK: ![[LOC]] = !MDLocation(line: 104, column: 105, scope: ![[SCOPE:[0-9]+]]) -; CHECK: ![[SCOPE]] = !MDCompileUnit(language: 0, file: ![[FILE:[0-9]+]], producer: "me", isOptimized: true, runtimeVersion: 0, emissionKind: 0, enums: ![[LIST:[0-9]+]], retainedTypes: ![[LIST]]) +; CHECK: ![[SCOPE]] = !MDSubprogram(name: "test" +; CHECK-SAME: file: ![[FILE:[0-9]+]] ; CHECK: ![[FILE]] = !MDFile(filename: "source.c", directory: "/dir") -; CHECK: ![[LIST]] = !{i32 0} ; CHECK: ![[CALL]] = !{!"the call to foo"} %rust_task = type {} @@ -31,12 +31,12 @@ declare void @foo() !3 = !{!"noise"} !4 = !{!"filler"} -!9 = !MDCompileUnit(language: 0, producer: "me", isOptimized: true, emissionKind: 0, file: !15, enums: !16, retainedTypes: !16) +!9 = !MDSubprogram(name: "test", file: !15) !10 = !MDLocation(line: 100, column: 101, scope: !9) !11 = !MDLocation(line: 102, column: 103, scope: !9) !12 = !MDLocation(line: 104, column: 105, scope: !9) !13 = !MDLocation(line: 106, column: 107, scope: !9) !14 = !MDLocation(line: 108, column: 109, scope: !9) !15 = !MDFile(filename: "source.c", directory: "/dir") -!16 = !{i32 0} +!16 = !{} !17 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/tools/bugpoint/BugDriver.cpp b/tools/bugpoint/BugDriver.cpp index d76e7d030ec..865cb513c55 100644 --- a/tools/bugpoint/BugDriver.cpp +++ b/tools/bugpoint/BugDriver.cpp @@ -16,6 +16,7 @@ #include "BugDriver.h" #include "ToolRunner.h" #include "llvm/IR/Module.h" +#include "llvm/IR/Verifier.h" #include "llvm/IRReader/IRReader.h" #include "llvm/Linker/Linker.h" #include "llvm/Pass.h" @@ -91,6 +92,11 @@ std::unique_ptr llvm::parseInputFile(StringRef Filename, return Result; } + if (verifyModule(*Result, &errs())) { + errs() << "bugpoint: " << Filename << ": error: does not verify\n"; + return std::unique_ptr(); + } + // If we don't have an override triple, use the first one to configure // bugpoint, or use the host triple if none provided. if (TargetTriple.getTriple().empty()) {