Why always abort in verifyFunction?

Hello everyone:

I have a little question about the second argument action of verifyFunction.

In docs:

**Enumerator:**

AbortProcessAction |

verifyModule will print to stderr and abort()

|

  • | - |
    PrintMessageAction |

    verifyModule will print to stderr and return true

    |
    ReturnStatusAction |

    verifyModule will just return true

    |
But it still abort when I pass PrintMessageAction/ReturnStatusAction to function.

Log:
Basic Block in function ‘jitmain’ does not have terminator!
label %load_store
LLVM ERROR: Broken module, no Basic Block terminator!

Is there something wrong?

Best regards,
-myesis

Hi Xiu,

The Verifier pass runs a PreVerifier pass, which does not honour the action argument,
and will always abort on a broken module, (Line 106, lib/VMCore/Verifier.cpp)

Perhaps you should file a bug against this, to allow you to not abort if you so wish.

Joey

Hi Xiu,

The Verifier pass runs a PreVerifier pass, which does not honour the action argument,
and will always abort on a broken module, (Line 106, lib/VMCore/Verifier.cpp)

So the argument can not be used as described as the official document? I just want to make sure of that and probably we
can find another way to deal with broken module.

Thanks
MK

I definitely think it's a bug, you should file a bug report. But you basically
cannot do anything with a broken module, except print it out and try to fix the
module.

Regards,
chenwj

Hi Xiu,

The Verifier pass runs a PreVerifier pass, which does not honour the action
argument,
and will always abort on a broken module, \(Line 106, lib/VMCore/
Verifier\.cpp\)

So the argument can not be used as described as the official document? I just
want to make sure of that and probably we
can find another way to deal with broken module.

I definitely think it's a bug, you should file a bug report. But you basically
cannot do anything with a broken module, except print it out and try to fix the
module.

Yes I just want to see the dumped IR before program abort . So I can
find some translation
error by analysis the IR assemble.

Thanks
MK