ObjectiveC migrator: Fixes a crash and makes couple
of harmless changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188303 91177308-0d34-0410-b5e6-96231b3b80d8
Have Range::overlapsWith use positive logic

Improved test to catch missing case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188304 91177308-0d34-0410-b5e6-96231b3b80d8
Fix implementation of C11 6.2.7/4 and C++11 [dcl.array]p3:

When a local extern declaration redeclares some other entity, the type of that
entity is merged with the prior type if the prior declaration is visible (in C)
or is declared in the same scope (in C++).

 - Make LookupRedeclarationWithLinkage actually work in C++, use it in the right
   set of cases, and make it track whether it found a shadowed declaration.
 - Track whether we found a declaration in the same scope (for C++) including
   across serialization and template instantiation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188307 91177308-0d34-0410-b5e6-96231b3b80d8

Conflicts:

	lib/Sema/SemaLookup.cpp
	test/PCH/cxx-templates.cpp

Change-Id: I3c0906e6826d93fcd310fb268dd738a739493f01