diff --git a/C/text.c b/C/text.c index 9f732ffb7..33ec47615 100644 --- a/C/text.c +++ b/C/text.c @@ -320,13 +320,16 @@ Yap_ListToBuffer(void *buf, Term t, seq_tv_t *inp, int *widep USES_REGS) static yap_error_number gen_type_error(int flags) { - if (flags & (YAP_STRING_STRING|YAP_STRING_ATOM|YAP_STRING_INT|YAP_STRING_FLOAT|YAP_STRING_ATOMS_CODES|YAP_STRING_BIG)) + if ((flags & (YAP_STRING_STRING|YAP_STRING_ATOM|YAP_STRING_INT|YAP_STRING_FLOAT|YAP_STRING_ATOMS_CODES|YAP_STRING_BIG)) == + (YAP_STRING_STRING|YAP_STRING_ATOM|YAP_STRING_INT|YAP_STRING_FLOAT|YAP_STRING_ATOMS_CODES|YAP_STRING_BIG)) return TYPE_ERROR_TEXT; - if (flags & (YAP_STRING_STRING|YAP_STRING_ATOM|YAP_STRING_INT|YAP_STRING_FLOAT|YAP_STRING_BIG)) + if ((flags & (YAP_STRING_STRING|YAP_STRING_ATOM|YAP_STRING_INT|YAP_STRING_FLOAT|YAP_STRING_BIG)) == + (YAP_STRING_STRING|YAP_STRING_ATOM|YAP_STRING_INT|YAP_STRING_FLOAT|YAP_STRING_BIG)) return TYPE_ERROR_ATOMIC; - if (flags & (YAP_STRING_INT|YAP_STRING_FLOAT|YAP_STRING_BIG)) + if ((flags & (YAP_STRING_INT|YAP_STRING_FLOAT|YAP_STRING_BIG)) == + (YAP_STRING_INT|YAP_STRING_FLOAT|YAP_STRING_BIG)) return TYPE_ERROR_NUMBER; - if (flags & YAP_STRING_ATOM) + if (flags & YAP_STRING_ATOM ) return TYPE_ERROR_ATOM; if (flags & YAP_STRING_STRING) return TYPE_ERROR_STRING;