Lines Matching defs:tp2
158 * tp2->u.sou'.
2174 qualifiers_correspond(const type_t *tp1, const type_t *tp2, bool ignqual)
2177 if (tp1->t_const != tp2->t_const && !ignqual && allow_c90)
2179 if (tp1->t_volatile != tp2->t_volatile && !ignqual && allow_c90)
2185 pointer_types_are_compatible(const type_t *tp1, const type_t *tp2, bool ignqual)
2188 return tp1->t_tspec == VOID || tp2->t_tspec == VOID ||
2189 qualifiers_correspond(tp1, tp2, ignqual);
2193 prototypes_compatible(const type_t *tp1, const type_t *tp2, bool *dowarn)
2196 if (tp1->t_vararg != tp2->t_vararg)
2200 const sym_t *p2 = tp2->u.params;
2238 types_compatible(const type_t *tp1, const type_t *tp2,
2242 while (tp1 != NULL && tp2 != NULL) {
2260 if (t != tp2->t_tspec)
2263 if (!qualifiers_correspond(tp1, tp2, ignqual))
2267 return tp1->u.sou == tp2->u.sou;
2270 return tp1->u.enumer == tp2->u.enumer;
2272 if (t == ARRAY && tp1->u.dimension != tp2->u.dimension) {
2273 if (tp1->u.dimension != 0 && tp2->u.dimension != 0)
2278 if (tp1->t_proto && tp2->t_proto) {
2279 if (!prototypes_compatible(tp1, tp2, dowarn))
2281 } else if ((tp1->t_proto || tp2->t_proto)
2283 && !is_old_style_compat(tp1->t_proto ? tp1 : tp2))
2288 tp2 = tp2->t_subt;
2292 return tp1 == tp2;