[PATCH] D129973: [clang] Pass FoundDecl to DeclRefExpr creator for operator overloads

Asmaa via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 4 00:43:16 PDT 2022


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



More information about the cfe-commits mailing list