Lines Matching +defs:t +defs:binary
7 * Redistribution and use in source and binary forms, with or without
12 * 2. Redistributions in binary form must reproduce the above copyright
573 block_derive_type(type_t *tp, tspec_t t)
577 tp2->t_tspec = t;
587 expr_derive_type(type_t *tp, tspec_t t)
591 tp2->t_tspec = t;
596 /* Create an expression from a unary or binary operator and its operands. */
610 tspec_t t = ln->tn_type->t_subt->t_tspec;
611 ntn->tn_lvalue = t != FUNC && t != VOID;
631 build_integer_constant(tspec_t t, int64_t si)
636 n->tn_type = gettyp(t);
637 n->u.value.v_tspec = t;
942 tspec_t t = arith_rank[i];
944 if (is_integer(t) && !is_uinteger(t))
945 return unsigned_type(t);
946 return t;
985 apply_usual_arithmetic_conversions(op_t op, tnode_t *tn, tspec_t t)
988 ntp->t_tspec = t;
1010 tspec_t t = allow_c90
1016 && is_floating(t) && (*rnp)->tn_op == CON)
1021 if (t != lt)
1022 *lnp = apply_usual_arithmetic_conversions(op, *lnp, t);
1023 if (t != rt)
1024 *rnp = apply_usual_arithmetic_conversions(op, *rnp, t);
1026 if (is_integer(t)) {
1039 tspec_t t;
1041 if (!force && ((t = tn->tn_type->t_tspec) == ARRAY || t == FUNC)) {
1224 tspec_t t = tn->u.ops.left->tn_type->t_tspec;
1227 uint64_t mask = value_bits(size_in_bits(t));
1231 if (!is_integer(t) || is_uinteger(t)) {
1277 v->u.integer = convert_integer(res, t, size_in_bits(t));
1502 tspec_t t = tn->tn_type->t_tspec;
1507 return ((t == PTR && tn->tn_type->t_subt->t_tspec == VOID)
1508 || is_integer(t))
1727 tspec_t t;
1730 t = LDOUBLE;
1733 t = DOUBLE;
1736 t = FLOAT;
1745 tnode_t *ntn = build_op(op, sys, gettyp(t), ln, NULL);
1840 floating_error_value(tspec_t t, long double lv)
1842 if (t == FLOAT)
1844 if (t == DOUBLE)
1869 is_floating_overflow(tspec_t t, long double val)
1873 if (t == FLOAT && (val > FLT_MAX || val < -FLT_MAX))
1875 if (t == DOUBLE && (val > DBL_MAX || val < -DBL_MAX))
1886 tspec_t t = tn->tn_type->t_tspec;
1889 v->v_tspec = t;
1891 lint_assert(is_floating(t));
1893 lint_assert(t == tn->u.ops.left->tn_type->t_tspec);
1894 lint_assert(!is_binary(tn) || t == tn->u.ops.right->tn_type->t_tspec);
1914 v->u.floating = floating_error_value(t, lv);
1951 * Don't warn, as lint doesn't model the imaginary part of
1955 } else if (is_floating_overflow(t, v->u.floating)) {
1958 v->u.floating = floating_error_value(t, v->u.floating);
1991 * Create a tree node for a binary operator and its two operands. Also called
2450 typeok_address(op_t op, const tnode_t *tn, const type_t *tp, tspec_t t)
2452 if (t == ARRAY || t == FUNC) {
2462 } else if (is_scalar(t)) {
2468 } else if (t != STRUCT && t != UNION) {
2482 typeok_indir(const type_t *tp, tspec_t t)
2485 if (t != PTR) {
2498 bool binary = modtab[op].m_binary;
2500 if (lt == VOID || (binary && rt == VOID)) {
2506 else if (binary)
3458 promote_trad(tspec_t t)
3461 if (t == UCHAR || t == USHORT)
3463 if (t == CHAR || t == SCHAR || t == SHORT)
3465 if (t == FLOAT)
3467 if (t == ENUM)
3469 return t;
3479 promote_c90(const tnode_t *tn, tspec_t t, bool farg)
3488 return is_uinteger(t) ? UINT : INT;
3489 return t;
3492 if (t == CHAR || t == SCHAR)
3494 if (t == UCHAR)
3496 if (t == SHORT)
3498 if (t == USHORT)
3500 if (t == ENUM)
3502 if (farg && t == FLOAT)
3504 return t;
3631 * be useless, because functions declared the old style can't expect
3899 * binary integer promotion for one of the operands, or a usual
3901 * binary plain or compound assignments to bit-fields
4666 is_constcond_false(const tnode_t *tn, tspec_t t)
4668 return (t == BOOL || t == INT) &&
4673 * Perform some tests on expressions which can't be done in build_binary()
4772 * there may be other side effects, so don't warn.
4960 * CON. Type conversions are allowed if they do not change binary
4971 tspec_t t, ot;
5014 t = tn->tn_type->t_tspec;
5016 if ((!is_integer(t) && t != PTR) ||
5032 else if (psize(t) != psize(ot))