{"push_id":1380308462,"size":2,"distinct_size":1,"ref":"refs/heads/FreeBSD-RA-x86_64","head":"d96a5710afb6b8d4c3f5bcd81c7321fa40e15b19","before":"85e09fe25b10afedd2f71fe1de1dda31979f8af1","commits":[{"sha":"1f8730fb213ca296a565b84cc5b46c2c252a843b","author":{"name":"Eric Fiselier","email":"a16fbdd223a71781803acbd9bd107ba1353fc2f0@efcs.ca"},"message":"Fix __libcpp_is_constructible for source types with explicit conversion operators.\n\nPreviously __libcpp_is_constructible checked the validity of reference\nconstruction using 'eat<To>(declval<From>())' but this doesn't consider\nFrom's explicit conversion operators. This patch teaches __libcpp_is_constructible\nhow to handle these cases. To do this we need to check the validity\nusing 'static_cast<To>(declval<From>())'. Unfortunately static_cast allows\nadditional base-to-derived and lvalue-to-rvalue conversions, which have to be\nchecked for and manually rejected.\n\nWhile implementing these changes I discovered that Clang incorrectly\nrejects `static_cast<int&&>(declval<float&>())` even though\n`int &&X(declval<float&>())` is well formed. In order to tolerate this bug\nthe `__eat<T>(...)` needs to be left in-place. Otherwise it could be replaced\nentirely with the new static_cast implementation.\n\nThanks to Walter Brown for providing the test cases.\n\ngit-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285786 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":false,"url":"https://api.github.com/repos/llvm-beanz/llvm-submodules/commits/1f8730fb213ca296a565b84cc5b46c2c252a843b"},{"sha":"d96a5710afb6b8d4c3f5bcd81c7321fa40e15b19","author":{"name":"Beanz-Bot","email":"311a2fd234709ab098421c07fd9cf3f8bcd4fa6a@apple.com"},"message":"Merge commit '1f8730fb213ca296a565b84cc5b46c2c252a843b' into HEAD","distinct":true,"url":"https://api.github.com/repos/llvm-beanz/llvm-submodules/commits/d96a5710afb6b8d4c3f5bcd81c7321fa40e15b19"}]}
{"actor":{"display_login":"llvm-beanz"}}