On 12/14/2011 03:41 PM, Dodji Seketeli wrote:
@@ -8041,6 +8041,7 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn) { conversion *t1 = cand1->convs[i + off1]; conversion *t2 = cand2->convs[i + off2]; + conversion *next_conv = next_conversion (t1); int comp = compare_ics (t1, t2);if (comp != 0) @@ -8054,11 +8055,11 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn) && TREE_CODE (t2->type) == INTEGER_TYPE && (TYPE_PRECISION (t1->type) == TYPE_PRECISION (t2->type)) - && (TYPE_UNSIGNED (t1->u.next->type) - || (TREE_CODE (t1->u.next->type) + && (TYPE_UNSIGNED (next_conv->type) + || (TREE_CODE (next_conv->type) == ENUMERAL_TYPE)))
I don't think we want to hoist that up so far; we're only interested in the next conversion if a lot of other checks pass. Let's just do the mechanical transformation again here. OK with that change.
Jason
