Patch suggestion: Add calls to doInitialization() and doFinalization() in verifyFunction()

Michael Kruse llvm-commits at meinersbur.de
Fri Oct 25 02:43:27 PDT 2013


The function verifyFunction() in lib/IR/Verifier.cpp misses some calls. It
creates a temporary FunctionPassManager that will run a single Verifier
pass. Unfortunately, FunctionPassManager is no PassManager and does not
call doInitialization() and doFinalization() by itself. Verifier does
important tasks in doInitialization() such as collecting type information
used to check DebugInfo metadata and doFinalization() does some additional
checks. Therefore these checks were missed and debug info couldn't be
verified at all, it just crashed if the function had some.

verifyFunction() is currently not used in llvm unless -debug option is
enabled, and in unittests/IR/VerifierTest.cpp

VerifierTest had to be changed to create the function in a module from
which the type debug info can be collected.

Patch applicable to r193391.

Regards,
Michael Kruse
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131025/bbeff62f/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: text/x-patch
Size: 1301 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131025/bbeff62f/attachment.bin>


More information about the llvm-commits mailing list