Have you installed the just-released build 2217? We have made some improvements to the "=default" check.
I have tried to recreate your example, but I'm not seeing any problems:
#include <memory>
class Test
{
public:
Test() : mVal(0) { }
Test(const Test& rhs) : mVal(rhs.mVal) { }
Test(Test&& rhs) noexcept : mVal(rhs.mVal) { }
Test& operator=(const Test& rhs) { mVal = rhs.mVal; }
Test& operator=(Test&& rhs) noexcept { mVal = rhs.mVal; }
~Test() {}
private:
std::unique_ptr<int> mPtr;
int mVal;
};