Use PointerUnion::getAddrOf instead of messing with PointerUnion & reinterpret_cast.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126021 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp
index b4946cf..0fd0e08 100644
--- a/lib/Sema/SemaLookup.cpp
+++ b/lib/Sema/SemaLookup.cpp
@@ -2294,7 +2294,7 @@
     void Destroy();
 
     // Iteration.
-    typedef NamedDecl **iterator;
+    typedef NamedDecl * const *iterator;
     iterator begin();
     iterator end();
   };
@@ -2389,8 +2389,8 @@
   if (DeclOrVector.isNull())
     return 0;
 
-  if (DeclOrVector.dyn_cast<NamedDecl *>())
-    return &reinterpret_cast<NamedDecl*&>(DeclOrVector);
+  if (DeclOrVector.is<NamedDecl *>())
+    return DeclOrVector.getAddrOf<NamedDecl *>();
 
   return DeclOrVector.get<DeclVector *>()->begin();
 }