std::move and unique_ptr transfer

What is the value of p1 after this code executes?

#include <memory>
auto p1 = std::make_unique<int>(42);
auto p2 = std::move(p1);
A

Undefined behavior.

B

p1 still points to 42; both p1 and p2 share ownership.

C

p1 is nullptr; ownership has been transferred to p2.

D

Compilation error: unique_ptr cannot be moved.