commit | e97654b2f28072ad9123006c05e03efd82852982 | [log] [tgz] |
---|---|---|
author | Richard Smith <richard-llvm@metafoo.co.uk> | Thu Jan 11 22:13:57 2018 +0000 |
committer | Richard Smith <richard-llvm@metafoo.co.uk> | Thu Jan 11 22:13:57 2018 +0000 |
tree | f82bfd1573a26a92348f59bf4d03d6c9bdb34d0c | |
parent | c43b7e61a2b48ef6aafa0f69970c2c96636fb7ae [diff] |
Handle scoped_lockable objects being returned by value in C++17. In C++17, guaranteed copy elision means that there isn't necessarily a constructor call when a local variable is initialized by a function call that returns a scoped_lockable by value. In order to model the effects of initializing a local variable with a function call returning a scoped_lockable, pretend that the move constructor was invoked within the caller at the point of return. llvm-svn: 322316