Aligned allocation versus CUDA: make deallocation function preference order
authorRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 11 Oct 2016 00:21:10 +0000 (00:21 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 11 Oct 2016 00:21:10 +0000 (00:21 +0000)
commitf75dcbef200540dab900e34396a542619d762f0a
tree091d34ae15e057b032e671a096a0c074cbdcc5c3
parentd3126d5fb4f918cc738dac55f71768ad4523957d
Aligned allocation versus CUDA: make deallocation function preference order
match other CUDA preference orders, per discussion with jlebar. We now model
this in an attempt to match overload resolution as closely as possible:

- First, we throw out all non-callable (due to CUDA host/device mismatch)
  operator delete functions.
- Then we apply sizedness / alignedness preferences based on whether the type
  is overaligned and whether the deallocation function is a member.
- Finally, we use the CUDA callability preference as a tiebreaker.

llvm-svn: 283830
clang/include/clang/Sema/Sema.h
clang/lib/Sema/SemaCUDA.cpp
clang/lib/Sema/SemaExprCXX.cpp
clang/test/SemaCUDA/call-host-fn-from-device.cu