207 static const Type *make(enum TYPES); |
207 static const Type *make(enum TYPES); |
208 // Test for equivalence of types |
208 // Test for equivalence of types |
209 static int cmp( const Type *const t1, const Type *const t2 ); |
209 static int cmp( const Type *const t1, const Type *const t2 ); |
210 // Test for higher or equal in lattice |
210 // Test for higher or equal in lattice |
211 // Variant that drops the speculative part of the types |
211 // Variant that drops the speculative part of the types |
212 int higher_equal(const Type *t) const { |
212 bool higher_equal(const Type *t) const { |
213 return !cmp(meet(t),t->remove_speculative()); |
213 return !cmp(meet(t),t->remove_speculative()); |
214 } |
214 } |
215 // Variant that keeps the speculative part of the types |
215 // Variant that keeps the speculative part of the types |
216 int higher_equal_speculative(const Type *t) const { |
216 bool higher_equal_speculative(const Type *t) const { |
217 return !cmp(meet_speculative(t),t); |
217 return !cmp(meet_speculative(t),t); |
218 } |
218 } |
219 |
219 |
220 // MEET operation; lower in lattice. |
220 // MEET operation; lower in lattice. |
221 // Variant that drops the speculative part of the types |
221 // Variant that drops the speculative part of the types |