// Verifies that a single function is valid, taking the specified action. // Useful for debugging. func VerifyFunction(f Value, a VerifierFailureAction) error { broken := C.LLVMVerifyFunction(f.C, C.LLVMVerifierFailureAction(a)) // C++'s verifyFunction means isFunctionBroken, so it returns false if // there are no errors if broken != 0 { return verifyFunctionError } return nil }
// Verifies that a module is valid, taking the specified action if not. // Optionally returns a human-readable description of any invalid constructs. func VerifyModule(m Module, a VerifierFailureAction) error { var cmsg *C.char broken := C.LLVMVerifyModule(m.C, C.LLVMVerifierFailureAction(a), &cmsg) // C++'s verifyModule means isModuleBroken, so it returns false if // there are no errors if broken != 0 { err := errors.New(C.GoString(cmsg)) C.LLVMDisposeMessage(cmsg) return err } return nil }