Make FullSourceLoc derive from SourceLocation instead of 
containing one.  Containment is generally better than derivation,
but in this case FullSourceLoc really 'isa' SourceLocation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62375 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Basic/SourceLocation.cpp b/lib/Basic/SourceLocation.cpp
index c68cb8b..2b7584e 100644
--- a/lib/Basic/SourceLocation.cpp
+++ b/lib/Basic/SourceLocation.cpp
@@ -38,74 +38,74 @@
 }
 
 FullSourceLoc FullSourceLoc::getInstantiationLoc() const {
-  assert (isValid());
-  return FullSourceLoc(SrcMgr->getInstantiationLoc(Loc), *SrcMgr);
+  assert(isValid());
+  return FullSourceLoc(SrcMgr->getInstantiationLoc(*this), *SrcMgr);
 }
 
 FullSourceLoc FullSourceLoc::getSpellingLoc() const {
   assert(isValid());
-  return FullSourceLoc(SrcMgr->getSpellingLoc(Loc), *SrcMgr);
+  return FullSourceLoc(SrcMgr->getSpellingLoc(*this), *SrcMgr);
 }
 
 FullSourceLoc FullSourceLoc::getIncludeLoc() const {
-  assert (isValid());
-  return FullSourceLoc(SrcMgr->getIncludeLoc(Loc), *SrcMgr);
+  assert(isValid());
+  return FullSourceLoc(SrcMgr->getIncludeLoc(*this), *SrcMgr);
 }
 
 unsigned FullSourceLoc::getLineNumber() const {
-  assert (isValid());
-  return SrcMgr->getLineNumber(Loc);
+  assert(isValid());
+  return SrcMgr->getLineNumber(*this);
 }
 
 unsigned FullSourceLoc::getColumnNumber() const {
-  assert (isValid());
-  return SrcMgr->getColumnNumber(Loc);
+  assert(isValid());
+  return SrcMgr->getColumnNumber(*this);
 }
 
 
 unsigned FullSourceLoc::getInstantiationLineNumber() const {
-  assert (isValid());
-  return SrcMgr->getInstantiationLineNumber(Loc);
+  assert(isValid());
+  return SrcMgr->getInstantiationLineNumber(*this);
 }
 
 unsigned FullSourceLoc::getInstantiationColumnNumber() const {
-  assert (isValid());
-  return SrcMgr->getInstantiationColumnNumber(Loc);
+  assert(isValid());
+  return SrcMgr->getInstantiationColumnNumber(*this);
 }
 
 unsigned FullSourceLoc::getSpellingLineNumber() const {
-  assert (isValid());
-  return SrcMgr->getSpellingLineNumber(Loc);
+  assert(isValid());
+  return SrcMgr->getSpellingLineNumber(*this);
 }
 
 unsigned FullSourceLoc::getSpellingColumnNumber() const {
-  assert (isValid());
-  return SrcMgr->getSpellingColumnNumber(Loc);
+  assert(isValid());
+  return SrcMgr->getSpellingColumnNumber(*this);
 }
 
 const char* FullSourceLoc::getSourceName() const {
-  assert (isValid());
-  return SrcMgr->getSourceName(Loc);
+  assert(isValid());
+  return SrcMgr->getSourceName(*this);
 }
 
 const FileEntry* FullSourceLoc::getFileEntryForLoc() const { 
-  assert (isValid());
-  return SrcMgr->getFileEntryForLoc(Loc);
+  assert(isValid());
+  return SrcMgr->getFileEntryForLoc(*this);
 }
 
 bool FullSourceLoc::isInSystemHeader() const {
-  assert (isValid());
-  return SrcMgr->isInSystemHeader(Loc);
+  assert(isValid());
+  return SrcMgr->isInSystemHeader(*this);
 }
 
 const char *FullSourceLoc::getCharacterData() const {
   assert(isValid());
-  return SrcMgr->getCharacterData(Loc);
+  return SrcMgr->getCharacterData(*this);
 }
 
 const llvm::MemoryBuffer* FullSourceLoc::getBuffer() const {
-  assert (isValid());
-  return SrcMgr->getBuffer(Loc.getFileID());
+  assert(isValid());
+  return SrcMgr->getBuffer(getFileID());
 }
 
 void FullSourceLoc::dump() const {
@@ -114,7 +114,7 @@
     return;
   }
   
-  if (Loc.isFileID()) {
+  if (isFileID()) {
     // The instantiation and spelling pos is identical for file locs.
     fprintf(stderr, "File Loc from '%s': %d: %d\n",
             getSourceName(), getInstantiationLineNumber(),