[C23] Fix failing assertion on structural equivalence checks (#201650)
This assertion was added in 6a22580305d779e2d712900d49578de9a5cb14e8 as
a sanity check and it turns out that the assertion was false in two
different ways.
1) An enumeration might not have an underlying type in our AST; this
happens for a forward declared enumeration without a fixed underlying
type.
2) When comparing the members, we could compare a member of enumeration
type with a member of a non-integral type like a union or structure.
We now account for both cases.
Fixes #190227