Verifier: Don't call debug info verifier if the module is broken
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 16 Mar 2015 21:23:56 +0000 (21:23 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 16 Mar 2015 21:23:56 +0000 (21:23 +0000)
commit7401b1e78007f6ce14dbb9f087e07025e0a9d140
tree26fa9c1a47304c0c32b19d913baebf8530fe485b
parent3d510665e98e12838abf8b949c96191bbe2b3935
Verifier: Don't call debug info verifier if the module is broken

If `Verifier` has already found a failure, don't call
`DebugInfoVerifier`.  The latter sometimes crashes in `DebugInfoFinder`
when the former would give a nice message.  The only two cases I found
it crashing are explicit verifier tests I've added:

  - test/Verifier/llvm.dbg.declare-expression.ll
  - test/Verifier/llvm.dbg.value-expression.ll

However, I assume frontends with bugs will create invalid IR as well.

IMO, the `DebugInfoVerifier` should never crash (instead, it should fail
to verify), but subtleties like that will be easier to work out once
it's enabled again.

This is part of PR22777.

llvm-svn: 232418
llvm/lib/IR/Verifier.cpp