Some of the predicates can't always be decided - for example when a type definition isn't available. At the same time it's necessary to let client code decide what to do about such cases - specifically we can't just use true or false values as there are callees with conflicting strategies how to handle this.
This is a speculative fix for PR47276.
https://bugs.llvm.org/show_bug.cgi?id=47276