Expressions like iVar==z'fe' were causing an assertion error because the Relate()
function in Evaluate/tools.cpp that processes relational operators didn't
deal with BOZ literals, which are typeless. I fixed this by checking to see if
the operands are BOZ literals. If so, I convert them to integers with default
kind. To get the default kind, I needed to pass a new parameter to Relate().
I also added a test to resolve63.f90 that triggers the problem.
Also, when I ran the latest clang-format on Evaluate/tools.cpp, it
reformatted a comment which was coincidentally related to BOZ literals. This
change is unrelated to the rest of the code.
Evaluate is not supposed to have link-time dependencies on Semantics (I think) so calling GetDefaultKind is bad here. Instead of passing in SemanticsContext, I think you could pass in (a reference to) the common::IntrinsicTypeDefaultKinds that is stored in SemanticsContext.