asmok-g added a comment.

This is also causing a compilation error in some google third-party code. 
Compiling with older clang doesn't give that error. Error:

  error: no matching function for call to object of type 
'key_compare_adapter<QuicIntervalSet<long>::IntervalLess>::checked_compare'
      comp(__trans_tmp_3, k);
      ^~~~
  /tmp/pre.ii:85:5: note: in instantiation of function template specialization 
'btree_node<set_params<QuicIntervalSet<long>::IntervalLess>>::linear_search_impl<int,
 key_compare_adapter<QuicIntervalSet<long>::IntervalLess>::checked_compare>' 
requested here
      linear_search_impl(k, 0, 0, comp,
      ^
  /tmp/pre.ii:76:32: note: in instantiation of function template specialization 
'btree_node<set_params<QuicIntervalSet<long>::IntervalLess>>::linear_search<int,
 key_compare_adapter<QuicIntervalSet<long>::IntervalLess>::checked_compare>' 
requested here
      use_linear_search::value ? linear_search(k, comp) : binary_search(k, 
comp);
                                 ^
  /tmp/pre.ii:123:15: note: in instantiation of function template 
specialization 
'btree_node<set_params<QuicIntervalSet<long>::IntervalLess>>::lower_bound<int>' 
requested here
    iter.node_->lower_bound(key, key_comp());
                ^
  /tmp/pre.ii:111:51: note: in instantiation of function template 
specialization 
'btree<set_params<QuicIntervalSet<long>::IntervalLess>>::internal_lower_bound<int>'
 requested here
    template <typename K> void lower_bound(K key) { internal_lower_bound(key); }
                                                    ^
  /tmp/pre.ii:133:37: note: in instantiation of function template 
specialization 
'btree<set_params<QuicIntervalSet<long>::IntervalLess>>::lower_bound<int>' 
requested here
    void lower_bound(int key) { tree_.lower_bound(key); }
                                      ^
  /tmp/pre.ii:164:14: note: in instantiation of member function 
'btree_container<btree<set_params<QuicIntervalSet<long>::IntervalLess>>>::lower_bound'
 requested here
    intervals_.lower_bound(0);
               ^
  /tmp/pre.ii:158:16: note: in instantiation of member function 
'QuicIntervalSet<long>::Add' requested here
    void Add() { Add(value_type(Add_min, Add_max)); }
                 ^
  /tmp/pre.ii:190:34: note: in instantiation of member function 
'QuicIntervalSet<long>::Add' requested here
    unacked_frame_headers_offsets_.Add();
                                   ^
  /tmp/pre.ii:44:10: note: candidate template ignored: substitution failure 
[with T = QuicInterval, U = int]
      void operator()(T lhs, U rhs) {

I attached the preprocessed file for the case F24012260: pre.ii 
<https://reviews.llvm.org/F24012260>.

The commande to reproduce is: `clang -msse4.2 -O1 -fsized-deallocation 
-std=gnu++17 -c pre.ii`


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129973/new/

https://reviews.llvm.org/D129973

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to