On Thu, Dec 17, 2015 at 02:47:29PM +0300, Yury Gribov wrote: > On 12/17/2015 02:41 PM, Richard Biener wrote: > >On Thu, 17 Dec 2015, Yury Gribov wrote: > > > >>Some obvious symmetry fixes. > >> > >>Cc-ing > >>* Andrey (Belevantsev) for bb_top_order_comparator > >>* Andrew (MacLeod) for compare_case_labels > >>* Andrew (Pinski) for resort_field_decl_cmp > >>* Diego for pair_cmp > >>* Geoff for resort_method_name_cmp > >>* Jakub for compare_case_labels > >>* Jason for method_name_cmp > >>* Richard for insert_phi_nodes_compare_var_infos, compare_case_labels > >>* Steven for cmp_v_in_regset_pool > > > >So for compare_case_labels we only ever have one label with > >!CASE_LOW - which means you only run into the case that needs > >!CASE_LOW && !CASE_LOW if comparing an element with itself, correct? > > > >In this case (missing "same element" handling rather than symmetry > >fixing) I'd prefer a > > > > if (case1 == case2) > > return 0; > > > >So just to confirm - do the patches also contain same element > >compare fixings? > > Yes, that's a fix for same element. How about adding if + gcc_assert that > both cases can't be NULL otherwise?
Some of the qsort comparison functions are hot paths, we don't really want to slow them down. So, if anything, gcc_checking_assert rather than gcc_assert. But, which qsort is so lame that it calls comparison on the same element? Jakub