Revert r345562: "PR23833, DR2140: an lvalue-to-rvalue conversion on a glvalue of type"

This exposes a (known) CodeGen bug: it can't cope with emitting lvalue
expressions that denote non-odr-used but usable-in-constant-expression
variables. See PR39528 for a testcase.

Reverted for now until that issue can be fixed.

llvm-svn: 346065
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index 0cfac99..1e4d12d 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -7644,13 +7644,9 @@
 
     case SK_LValueToRValue: {
       assert(CurInit.get()->isGLValue() && "cannot load from a prvalue");
-      // C++ [conv.lval]p3:
-      //   If T is cv std::nullptr_t, the result is a null pointer constant.
-      CastKind CK =
-          Step->Type->isNullPtrType() ? CK_NullToPointer : CK_LValueToRValue;
-      CurInit =
-          ImplicitCastExpr::Create(S.Context, Step->Type, CK, CurInit.get(),
-                                   /*BasePath=*/nullptr, VK_RValue);
+      CurInit = ImplicitCastExpr::Create(S.Context, Step->Type,
+                                         CK_LValueToRValue, CurInit.get(),
+                                         /*BasePath=*/nullptr, VK_RValue);
       break;
     }