NoQ accepted this revision.
NoQ added inline comments.

================
Comment at: clang/test/Analysis/Inputs/system-header-simulator-cxx.h:964-965
+
+  template <typename T>
+  void swap(unique_ptr<T> &x, unique_ptr<T> &y) noexcept {
+    x.swap(y);
----------------
vrnithinkumar wrote:
> xazax.hun wrote:
> > NoQ wrote:
> > > You seem to be relying on the fact that global `std::swap` is implemented 
> > > in terms of the member `std::swap`. That's an implementation detail of 
> > > the standard library; i'm not sure that this is always the case. Ideally 
> > > we should model the global `std::swap` separately.
> > I am not sure how reliable cppreference is, but I think this overload might 
> > actually be guaranteed by the standard: 
> > https://en.cppreference.com/w/cpp/memory/unique_ptr/swap2
> I also made the assumption based on this 
> (https://en.cppreference.com/w/cpp/memory/unique_ptr/swap2).
> 
Aha, interesting. We still probably can't rely on it being always inlined 
though, so we'll still probably have to model it separately.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D83877



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

Reply via email to