[llvm-branch-commits] [cfe-branch] r136042 - in /cfe/branches/exception-handling-rewrite: ./ include/clang-c/ include/clang/Basic/ include/clang/Frontend/ include/clang/Serialization/ lib/ARCMigrate/ lib/AST/ lib/Basic/ lib/CodeGen/ lib/Frontend/ lib/Headers/ lib/Lex/ lib/Parse/ lib/Rewrite/ lib/Sema/ lib/Serialization/ lib/StaticAnalyzer/Checkers/ lib/StaticAnalyzer/Core/ lib/StaticAnalyzer/Frontend/ test/CodeGen/ test/FixIt/ test/Index/ test/Sema/ test/SemaCXX/ tools/c-index-test/ tools/driver/ tools/libclang/ www/

Bill Wendling isanbard at gmail.com
Mon Jul 25 18:36:55 PDT 2011


Author: void
Date: Mon Jul 25 20:36:54 2011
New Revision: 136042

URL: http://llvm.org/viewvc/llvm-project?rev=136042&view=rev
Log:
Merge with ToT.

Added:
    cfe/branches/exception-handling-rewrite/test/CodeGen/2002-07-29-Casts.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2002-07-29-Casts.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2002-09-19-StarInLabel.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2002-09-19-StarInLabel.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2003-08-18-SigSetJmp.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2003-08-18-SigSetJmp.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2003-08-29-StructLayoutBug.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2003-08-29-StructLayoutBug.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2003-08-30-LargeIntegerBitfieldMember.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2003-08-30-LargeIntegerBitfieldMember.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2003-09-18-BitfieldTests.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2003-09-18-BitfieldTests.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2003-10-06-NegateExprType.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2003-10-06-NegateExprType.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2003-11-13-TypeSafety.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2003-11-13-TypeSafety.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2003-11-16-StaticArrayInit.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2003-11-16-StaticArrayInit.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2004-01-08-ExternInlineRedefine.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2004-01-08-ExternInlineRedefine.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2004-03-15-SimpleIndirectGoto.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2004-03-15-SimpleIndirectGoto.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2004-11-27-InvalidConstantExpr.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2004-11-27-InvalidConstantExpr.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2005-06-15-ExpandGotoInternalProblem.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2005-06-15-ExpandGotoInternalProblem.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2007-02-07-AddrLabel.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2007-02-07-AddrLabel.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2007-04-05-UnPackedStruct.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2007-04-05-UnPackedStruct.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2007-04-11-PR1321.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2007-04-11-PR1321.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2007-04-24-VolatileStructCopy.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2007-04-24-VolatileStructCopy.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2007-04-24-str-const.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2007-04-24-str-const.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2007-05-11-str-const.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2007-05-11-str-const.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2007-06-05-NoInlineAttribute.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2007-06-05-NoInlineAttribute.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2007-09-17-WeakRef.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2007-09-17-WeakRef.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2010-07-14-ref-off-end.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2010-07-14-ref-off-end.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/2011-03-31-ArrayRefFolding.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/2011-03-31-ArrayRefFolding.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/Atomics-no64bit.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/Atomics-no64bit.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/inline-asm-mrv.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/inline-asm-mrv.c
    cfe/branches/exception-handling-rewrite/test/CodeGen/sret2.c
      - copied unchanged from r136040, cfe/trunk/test/CodeGen/sret2.c
    cfe/branches/exception-handling-rewrite/test/FixIt/fixit-static-object-decl.m
      - copied unchanged from r136040, cfe/trunk/test/FixIt/fixit-static-object-decl.m
    cfe/branches/exception-handling-rewrite/test/Index/cursor-ref-names.cpp
      - copied unchanged from r136040, cfe/trunk/test/Index/cursor-ref-names.cpp
    cfe/branches/exception-handling-rewrite/test/Sema/2009-03-09-WeakDeclarations-1.c
      - copied unchanged from r136040, cfe/trunk/test/Sema/2009-03-09-WeakDeclarations-1.c
    cfe/branches/exception-handling-rewrite/test/Sema/2009-04-22-UnknownSize.c
      - copied unchanged from r136040, cfe/trunk/test/Sema/2009-04-22-UnknownSize.c
    cfe/branches/exception-handling-rewrite/test/Sema/2009-07-17-VoidParameter.c
      - copied unchanged from r136040, cfe/trunk/test/Sema/2009-07-17-VoidParameter.c
    cfe/branches/exception-handling-rewrite/test/Sema/2010-05-31-palignr.c
      - copied unchanged from r136040, cfe/trunk/test/Sema/2010-05-31-palignr.c
    cfe/branches/exception-handling-rewrite/test/Sema/align-arm-apcs-gnu.c
      - copied unchanged from r136040, cfe/trunk/test/Sema/align-arm-apcs-gnu.c
    cfe/branches/exception-handling-rewrite/test/Sema/align-arm.c
      - copied unchanged from r136040, cfe/trunk/test/Sema/align-arm.c
Removed:
    cfe/branches/exception-handling-rewrite/test/Sema/align-arm-apcs.c
Modified:
    cfe/branches/exception-handling-rewrite/   (props changed)
    cfe/branches/exception-handling-rewrite/include/clang-c/Index.h
    cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceLocation.h
    cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceManager.h
    cfe/branches/exception-handling-rewrite/include/clang/Basic/TargetInfo.h
    cfe/branches/exception-handling-rewrite/include/clang/Frontend/VerifyDiagnosticsClient.h
    cfe/branches/exception-handling-rewrite/include/clang/Serialization/ASTReader.h
    cfe/branches/exception-handling-rewrite/lib/ARCMigrate/PlistReporter.cpp
    cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransBlockObjCVariable.cpp
    cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransformActions.cpp
    cfe/branches/exception-handling-rewrite/lib/ARCMigrate/Transforms.cpp
    cfe/branches/exception-handling-rewrite/lib/AST/ASTContext.cpp
    cfe/branches/exception-handling-rewrite/lib/AST/ExprConstant.cpp
    cfe/branches/exception-handling-rewrite/lib/Basic/DiagnosticIDs.cpp
    cfe/branches/exception-handling-rewrite/lib/Basic/SourceLocation.cpp
    cfe/branches/exception-handling-rewrite/lib/Basic/SourceManager.cpp
    cfe/branches/exception-handling-rewrite/lib/Basic/TargetInfo.cpp
    cfe/branches/exception-handling-rewrite/lib/Basic/Targets.cpp
    cfe/branches/exception-handling-rewrite/lib/CodeGen/CGBuiltin.cpp
    cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDebugInfo.cpp
    cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDecl.cpp
    cfe/branches/exception-handling-rewrite/lib/CodeGen/CodeGenModule.cpp
    cfe/branches/exception-handling-rewrite/lib/Frontend/DependencyFile.cpp
    cfe/branches/exception-handling-rewrite/lib/Frontend/PrintPreprocessedOutput.cpp
    cfe/branches/exception-handling-rewrite/lib/Frontend/TextDiagnosticPrinter.cpp
    cfe/branches/exception-handling-rewrite/lib/Frontend/VerifyDiagnosticsClient.cpp
    cfe/branches/exception-handling-rewrite/lib/Headers/tgmath.h
    cfe/branches/exception-handling-rewrite/lib/Lex/Lexer.cpp
    cfe/branches/exception-handling-rewrite/lib/Lex/MacroInfo.cpp
    cfe/branches/exception-handling-rewrite/lib/Lex/PPDirectives.cpp
    cfe/branches/exception-handling-rewrite/lib/Lex/PPMacroExpansion.cpp
    cfe/branches/exception-handling-rewrite/lib/Lex/TokenLexer.cpp
    cfe/branches/exception-handling-rewrite/lib/Parse/ParseExpr.cpp
    cfe/branches/exception-handling-rewrite/lib/Parse/ParseStmt.cpp
    cfe/branches/exception-handling-rewrite/lib/Rewrite/HTMLRewrite.cpp
    cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteMacros.cpp
    cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteObjC.cpp
    cfe/branches/exception-handling-rewrite/lib/Sema/Sema.cpp
    cfe/branches/exception-handling-rewrite/lib/Sema/SemaCodeComplete.cpp
    cfe/branches/exception-handling-rewrite/lib/Sema/SemaDecl.cpp
    cfe/branches/exception-handling-rewrite/lib/Sema/SemaDeclCXX.cpp
    cfe/branches/exception-handling-rewrite/lib/Serialization/ASTReader.cpp
    cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
    cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/BugReporter.cpp
    cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/CFRefCount.cpp
    cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/ExprEngine.cpp
    cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
    cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
    cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
    cfe/branches/exception-handling-rewrite/test/Index/blocks.c
    cfe/branches/exception-handling-rewrite/test/Index/index-templates.cpp
    cfe/branches/exception-handling-rewrite/test/Index/recursive-cxx-member-calls.cpp
    cfe/branches/exception-handling-rewrite/test/Index/recursive-member-access.c
    cfe/branches/exception-handling-rewrite/test/SemaCXX/warn-unreachable.cpp   (props changed)
    cfe/branches/exception-handling-rewrite/tools/c-index-test/c-index-test.c
    cfe/branches/exception-handling-rewrite/tools/driver/cc1as_main.cpp
    cfe/branches/exception-handling-rewrite/tools/libclang/CIndex.cpp
    cfe/branches/exception-handling-rewrite/tools/libclang/CIndexUSRs.cpp
    cfe/branches/exception-handling-rewrite/tools/libclang/libclang.darwin.exports
    cfe/branches/exception-handling-rewrite/tools/libclang/libclang.exports
    cfe/branches/exception-handling-rewrite/www/cxx_status.html
    cfe/branches/exception-handling-rewrite/www/get_started.html

Propchange: cfe/branches/exception-handling-rewrite/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jul 25 20:36:54 2011
@@ -1,2 +1,3 @@
 /cfe/branches/type-system-rewrite:134693-134817
+/cfe/trunk:135899-136040
 /cfe/trunk/test/SemaTemplate:126920

Modified: cfe/branches/exception-handling-rewrite/include/clang-c/Index.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/include/clang-c/Index.h?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/include/clang-c/Index.h (original)
+++ cfe/branches/exception-handling-rewrite/include/clang-c/Index.h Mon Jul 25 20:36:54 2011
@@ -2385,6 +2385,54 @@
  * from which it was instantiated. Otherwise, returns a NULL cursor.
  */
 CINDEX_LINKAGE CXCursor clang_getSpecializedCursorTemplate(CXCursor C);
+
+/**
+ * \brief Given a cursor that references something else, return the source range
+ * covering that reference.
+ *
+ * \param C A cursor pointing to a member reference, a declaration reference, or
+ * an operator call.
+ * \param NameFlags A bitset with three independent flags: 
+ * CXNameRange_WantQualifier, CXNameRange_WantTemplateArgs, and
+ * CXNameRange_WantSinglePiece.
+ * \param PieceIndex For contiguous names or when passing the flag 
+ * CXNameRange_WantSinglePiece, only one piece with index 0 is 
+ * available. When the CXNameRange_WantSinglePiece flag is not passed for a
+ * non-contiguous names, this index can be used to retreive the individual
+ * pieces of the name. See also CXNameRange_WantSinglePiece.
+ *
+ * \returns The piece of the name pointed to by the given cursor. If there is no
+ * name, or if the PieceIndex is out-of-range, a null-cursor will be returned.
+ */
+CINDEX_LINKAGE CXSourceRange clang_getCursorReferenceNameRange(CXCursor C,
+                                                unsigned NameFlags, 
+                                                unsigned PieceIndex);
+
+enum CXNameRefFlags {
+  /**
+   * \brief Include the nested-name-specifier, e.g. Foo:: in x.Foo::y, in the
+   * range.
+   */
+  CXNameRange_WantQualifier = 0x1,
+  
+  /**
+   * \brief Include the explicit template arguments, e.g. <int> in x.f<int>, in 
+   * the range.
+   */
+  CXNameRange_WantTemplateArgs = 0x2,
+
+  /**
+   * \brief If the name is non-contiguous, return the full spanning range.
+   *
+   * Non-contiguous names occur in Objective-C when a selector with two or more
+   * parameters is used, or in C++ when using an operator:
+   * \code
+   * [object doSomething:here withValue:there]; // ObjC
+   * return some_vector[1]; // C++
+   * \endcode
+   */
+  CXNameRange_WantSinglePiece = 0x4
+};
   
 /**
  * @}

Modified: cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceLocation.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceLocation.h?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceLocation.h (original)
+++ cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceLocation.h Mon Jul 25 20:36:54 2011
@@ -274,11 +274,11 @@
 
   FileID getFileID() const;
 
-  FullSourceLoc getInstantiationLoc() const;
+  FullSourceLoc getExpansionLoc() const;
   FullSourceLoc getSpellingLoc() const;
 
-  unsigned getInstantiationLineNumber(bool *Invalid = 0) const;
-  unsigned getInstantiationColumnNumber(bool *Invalid = 0) const;
+  unsigned getExpansionLineNumber(bool *Invalid = 0) const;
+  unsigned getExpansionColumnNumber(bool *Invalid = 0) const;
 
   unsigned getSpellingLineNumber(bool *Invalid = 0) const;
   unsigned getSpellingColumnNumber(bool *Invalid = 0) const;

Modified: cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceManager.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceManager.h?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceManager.h (original)
+++ cfe/branches/exception-handling-rewrite/include/clang/Basic/SourceManager.h Mon Jul 25 20:36:54 2011
@@ -723,24 +723,24 @@
     return SourceLocation::getFileLoc(FileOffset);
   }
 
-  /// getInstantiationLoc - Given a SourceLocation object, return the
-  /// instantiation location referenced by the ID.
-  SourceLocation getInstantiationLoc(SourceLocation Loc) const {
+  /// getExpansionLoc - Given a SourceLocation object, return the expansion
+  /// location referenced by the ID.
+  SourceLocation getExpansionLoc(SourceLocation Loc) const {
     // Handle the non-mapped case inline, defer to out of line code to handle
-    // instantiations.
+    // expansions.
     if (Loc.isFileID()) return Loc;
-    return getInstantiationLocSlowCase(Loc);
+    return getExpansionLocSlowCase(Loc);
   }
 
-  /// getImmediateInstantiationRange - Loc is required to be an instantiation
-  /// location.  Return the start/end of the instantiation information.
+  /// getImmediateExpansionRange - Loc is required to be an expansion location.
+  /// Return the start/end of the expansion information.
   std::pair<SourceLocation,SourceLocation>
-  getImmediateInstantiationRange(SourceLocation Loc) const;
+  getImmediateExpansionRange(SourceLocation Loc) const;
 
-  /// getInstantiationRange - Given a SourceLocation object, return the
-  /// range of tokens covered by the instantiation in the ultimate file.
+  /// getExpansionRange - Given a SourceLocation object, return the range of
+  /// tokens covered by the expansion the ultimate file.
   std::pair<SourceLocation,SourceLocation>
-  getInstantiationRange(SourceLocation Loc) const;
+  getExpansionRange(SourceLocation Loc) const;
 
 
   /// getSpellingLoc - Given a SourceLocation object, return the spelling
@@ -767,11 +767,11 @@
     return std::make_pair(FID, Loc.getOffset()-getSLocEntry(FID).getOffset());
   }
 
-  /// getDecomposedInstantiationLoc - Decompose the specified location into a
+  /// getDecomposedExpansionLoc - Decompose the specified location into a
   /// raw FileID + Offset pair.  If the location is an instantiation record,
   /// walk through it until we find the final location instantiated.
   std::pair<FileID, unsigned>
-  getDecomposedInstantiationLoc(SourceLocation Loc) const {
+  getDecomposedExpansionLoc(SourceLocation Loc) const {
     FileID FID = getFileID(Loc);
     const SrcMgr::SLocEntry *E = &getSLocEntry(FID);
 
@@ -779,7 +779,7 @@
     if (Loc.isFileID())
       return std::make_pair(FID, Offset);
 
-    return getDecomposedInstantiationLocSlowCase(E);
+    return getDecomposedExpansionLocSlowCase(E);
   }
 
   /// getDecomposedSpellingLoc - Decompose the specified location into a raw
@@ -828,8 +828,8 @@
   unsigned getColumnNumber(FileID FID, unsigned FilePos, 
                            bool *Invalid = 0) const;
   unsigned getSpellingColumnNumber(SourceLocation Loc, bool *Invalid = 0) const;
-  unsigned getInstantiationColumnNumber(SourceLocation Loc,
-                                        bool *Invalid = 0) const;
+  unsigned getExpansionColumnNumber(SourceLocation Loc,
+                                    bool *Invalid = 0) const;
   unsigned getPresumedColumnNumber(SourceLocation Loc, bool *Invalid = 0) const;
 
 
@@ -839,8 +839,7 @@
   /// about to emit a diagnostic.
   unsigned getLineNumber(FileID FID, unsigned FilePos, bool *Invalid = 0) const;
   unsigned getSpellingLineNumber(SourceLocation Loc, bool *Invalid = 0) const;
-  unsigned getInstantiationLineNumber(SourceLocation Loc, 
-                                      bool *Invalid = 0) const;
+  unsigned getExpansionLineNumber(SourceLocation Loc, bool *Invalid = 0) const;
   unsigned getPresumedLineNumber(SourceLocation Loc, bool *Invalid = 0) const;
 
   /// Return the filename or buffer identifier of the buffer the location is in.
@@ -1130,11 +1129,11 @@
   FileID getFileIDLocal(unsigned SLocOffset) const;
   FileID getFileIDLoaded(unsigned SLocOffset) const;
 
-  SourceLocation getInstantiationLocSlowCase(SourceLocation Loc) const;
+  SourceLocation getExpansionLocSlowCase(SourceLocation Loc) const;
   SourceLocation getSpellingLocSlowCase(SourceLocation Loc) const;
 
   std::pair<FileID, unsigned>
-  getDecomposedInstantiationLocSlowCase(const SrcMgr::SLocEntry *E) const;
+  getDecomposedExpansionLocSlowCase(const SrcMgr::SLocEntry *E) const;
   std::pair<FileID, unsigned>
   getDecomposedSpellingLocSlowCase(const SrcMgr::SLocEntry *E,
                                    unsigned Offset) const;

Modified: cfe/branches/exception-handling-rewrite/include/clang/Basic/TargetInfo.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/include/clang/Basic/TargetInfo.h?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/include/clang/Basic/TargetInfo.h (original)
+++ cfe/branches/exception-handling-rewrite/include/clang/Basic/TargetInfo.h Mon Jul 25 20:36:54 2011
@@ -88,6 +88,7 @@
 
   unsigned HasAlignMac68kSupport : 1;
   unsigned RealTypeUsesObjCFPRet : 3;
+  unsigned UsePreferredTypeAlign : 1;
 
   // TargetInfo Constructor.  Default initializes all fields.
   TargetInfo(const std::string &T);
@@ -272,6 +273,12 @@
     return HasAlignMac68kSupport;
   }
 
+  /// usePreferredTypeAlign - Check whether this target uses minimum alignment
+  /// defined by ABI or some other preferred alignment.
+  bool usePreferredTypeAlign() const {
+    return UsePreferredTypeAlign;
+  }
+
   /// getTypeName - Return the user string for the specified integer type enum.
   /// For example, SignedShort -> "short".
   static const char *getTypeName(IntType T);

Modified: cfe/branches/exception-handling-rewrite/include/clang/Frontend/VerifyDiagnosticsClient.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/include/clang/Frontend/VerifyDiagnosticsClient.h?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/include/clang/Frontend/VerifyDiagnosticsClient.h (original)
+++ cfe/branches/exception-handling-rewrite/include/clang/Frontend/VerifyDiagnosticsClient.h Mon Jul 25 20:36:54 2011
@@ -70,6 +70,7 @@
   Preprocessor *CurrentPreprocessor;
 
 private:
+  FileID FirstErrorFID; // FileID of first diagnostic
   void CheckDiagnostics();
 
 public:

Modified: cfe/branches/exception-handling-rewrite/include/clang/Serialization/ASTReader.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/include/clang/Serialization/ASTReader.h?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/include/clang/Serialization/ASTReader.h (original)
+++ cfe/branches/exception-handling-rewrite/include/clang/Serialization/ASTReader.h Mon Jul 25 20:36:54 2011
@@ -387,7 +387,46 @@
   /// directly loaded modules.
   SmallVector<Module *, 1> Loaders;
 };
-  
+
+/// \brief The manager for modules loaded by the ASTReader.
+class ModuleManager {
+  /// \brief The chain of AST files. The first entry is the one named by the
+  /// user, the last one is the one that doesn't depend on anything further.
+  SmallVector<Module*, 2> Chain;
+public:
+  typedef SmallVector<Module*, 2>::iterator ModuleIterator;
+  typedef SmallVector<Module*, 2>::const_iterator ModuleConstIterator;
+  typedef SmallVector<Module*, 2>::reverse_iterator ModuleReverseIterator;
+
+  ModuleIterator begin() { return Chain.begin(); }
+  ModuleIterator end() { return Chain.end(); }
+
+  ModuleConstIterator begin() const { return Chain.begin(); }
+  ModuleConstIterator end() const { return Chain.end(); }
+
+  ModuleReverseIterator rbegin() { return Chain.rbegin(); }
+  ModuleReverseIterator rend() { return Chain.rend(); }
+
+  const std::string &getPrimaryFileName() const { return Chain[0]->FileName; }
+
+  Module &getPrimaryModule() { return *Chain[0]; }
+  Module &getLastModule() { return *Chain.back(); }
+  Module &operator[](unsigned Index) const { return *Chain[Index]; }
+
+  unsigned size() const { return Chain.size(); }
+
+  Module &addModule(ModuleKind Type) {
+    Module *newModule = new Module(Type);
+    Chain.push_back(newModule);
+    return *newModule;
+  }
+
+  ~ModuleManager() {
+    for (unsigned i = 0, e = Chain.size(); i != e; ++i)
+      delete Chain[e - i - 1];
+  }
+};
+
 } // end namespace serialization
   
 /// \brief Reads an AST files chain containing the contents of a translation
@@ -425,7 +464,12 @@
   
   typedef serialization::Module Module;
   typedef serialization::ModuleKind ModuleKind;
+  typedef serialization::ModuleManager ModuleManager;
   
+  typedef ModuleManager::ModuleIterator ModuleIterator;
+  typedef ModuleManager::ModuleConstIterator ModuleConstIterator;
+  typedef ModuleManager::ModuleReverseIterator ModuleReverseIterator;
+
 private:
   /// \brief The receiver of some callbacks invoked by ASTReader.
   llvm::OwningPtr<ASTReaderListener> Listener;
@@ -460,10 +504,8 @@
   /// \brief The first module in source order.
   Module *FirstInSource;
 
-  /// \brief The chain of AST files. The first entry is the one named by the
-  /// user, the last one is the one that doesn't depend on anything further.
-  /// That is, the entry I was created with -include-pch I+1.
-  SmallVector<Module*, 2> Chain;
+  /// \brief The module manager which manages modules and their dependencies
+  ModuleManager ModuleMgr;
 
   /// \brief A map of global bit offsets to the module that stores entities
   /// at those bit offsets.
@@ -1040,7 +1082,9 @@
   }
 
   /// \brief Retrieve the name of the named (primary) AST file
-  const std::string &getFileName() const { return Chain[0]->FileName; }
+  const std::string &getFileName() const {
+    return ModuleMgr.getPrimaryFileName();
+  }
 
   /// \brief Retrieve the name of the original source file name
   const std::string &getOriginalSourceFile() { return OriginalFileName; }
@@ -1096,8 +1140,10 @@
   /// reader.
   unsigned getTotalNumPreprocessedEntities() const {
     unsigned Result = 0;
-    for (unsigned I = 0, N = Chain.size(); I != N; ++I)
-      Result += Chain[I]->NumPreallocatedPreprocessingEntities;
+    for (ModuleConstIterator I = ModuleMgr.begin(),
+        E = ModuleMgr.end(); I != E; ++I) {
+      Result += (*I)->NumPreallocatedPreprocessingEntities;
+    }
     
     return Result;
   }

Modified: cfe/branches/exception-handling-rewrite/lib/ARCMigrate/PlistReporter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/ARCMigrate/PlistReporter.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/ARCMigrate/PlistReporter.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/ARCMigrate/PlistReporter.cpp Mon Jul 25 20:36:54 2011
@@ -22,7 +22,7 @@
 static void AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V,
                    const SourceManager &SM, SourceLocation L) {
 
-  FileID FID = SM.getFileID(SM.getInstantiationLoc(L));
+  FileID FID = SM.getFileID(SM.getExpansionLoc(L));
   FIDMap::iterator I = FIDs.find(FID);
   if (I != FIDs.end()) return;
   FIDs[FID] = V.size();
@@ -31,7 +31,7 @@
 
 static unsigned GetFID(const FIDMap& FIDs, const SourceManager &SM,
                        SourceLocation L) {
-  FileID FID = SM.getFileID(SM.getInstantiationLoc(L));
+  FileID FID = SM.getFileID(SM.getExpansionLoc(L));
   FIDMap::const_iterator I = FIDs.find(FID);
   assert(I != FIDs.end());
   return I->second;
@@ -47,7 +47,7 @@
                          SourceLocation L, const FIDMap &FM,
                          unsigned indent, bool extend = false) {
 
-  FullSourceLoc Loc(SM.getInstantiationLoc(L), const_cast<SourceManager&>(SM));
+  FullSourceLoc Loc(SM.getExpansionLoc(L), const_cast<SourceManager&>(SM));
 
   // Add in the length of the token, so that we cover multi-char tokens.
   unsigned offset =
@@ -55,9 +55,9 @@
 
   Indent(o, indent) << "<dict>\n";
   Indent(o, indent) << " <key>line</key><integer>"
-                    << Loc.getInstantiationLineNumber() << "</integer>\n";
+                    << Loc.getExpansionLineNumber() << "</integer>\n";
   Indent(o, indent) << " <key>col</key><integer>"
-                    << Loc.getInstantiationColumnNumber() + offset << "</integer>\n";
+                    << Loc.getExpansionColumnNumber() + offset << "</integer>\n";
   Indent(o, indent) << " <key>file</key><integer>"
                     << GetFID(FM, SM, Loc) << "</integer>\n";
   Indent(o, indent) << "</dict>\n";

Modified: cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransBlockObjCVariable.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransBlockObjCVariable.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransBlockObjCVariable.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransBlockObjCVariable.cpp Mon Jul 25 20:36:54 2011
@@ -100,7 +100,7 @@
         bool useWeak = canApplyWeak(Pass.Ctx, var->getType());
         SourceManager &SM = Pass.Ctx.getSourceManager();
         Transaction Trans(Pass.TA);
-        Pass.TA.replaceText(SM.getInstantiationLoc(attr->getLocation()),
+        Pass.TA.replaceText(SM.getExpansionLoc(attr->getLocation()),
                             "__block",
                             useWeak ? "__weak" : "__unsafe_unretained");
       }

Modified: cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransformActions.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransformActions.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransformActions.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/ARCMigrate/TransformActions.cpp Mon Jul 25 20:36:54 2011
@@ -68,11 +68,11 @@
       SourceLocation beginLoc = range.getBegin(), endLoc = range.getEnd();
       assert(beginLoc.isValid() && endLoc.isValid());
       if (range.isTokenRange()) {
-        Begin = FullSourceLoc(srcMgr.getInstantiationLoc(beginLoc), srcMgr);
+        Begin = FullSourceLoc(srcMgr.getExpansionLoc(beginLoc), srcMgr);
         End = FullSourceLoc(getLocForEndOfToken(endLoc, srcMgr, PP), srcMgr);
       } else {
-        Begin = FullSourceLoc(srcMgr.getInstantiationLoc(beginLoc), srcMgr);
-        End = FullSourceLoc(srcMgr.getInstantiationLoc(endLoc), srcMgr);
+        Begin = FullSourceLoc(srcMgr.getExpansionLoc(beginLoc), srcMgr);
+        End = FullSourceLoc(srcMgr.getExpansionLoc(endLoc), srcMgr);
       }
       assert(Begin.isValid() && End.isValid());
     } 
@@ -381,7 +381,7 @@
     return false;
 
   SourceManager &SM = Ctx.getSourceManager();
-  if (SM.isInSystemHeader(SM.getInstantiationLoc(loc)))
+  if (SM.isInSystemHeader(SM.getExpansionLoc(loc)))
     return false;
 
   if (loc.isFileID())
@@ -394,7 +394,7 @@
     return false;
 
   SourceManager &SM = Ctx.getSourceManager();
-  if (SM.isInSystemHeader(SM.getInstantiationLoc(loc)))
+  if (SM.isInSystemHeader(SM.getExpansionLoc(loc)))
     return false;
 
   if (loc.isFileID())
@@ -416,7 +416,7 @@
     return false;
 
   SourceManager &SM = Ctx.getSourceManager();
-  loc = SM.getInstantiationLoc(loc);
+  loc = SM.getExpansionLoc(loc);
 
   // Break down the source location.
   std::pair<FileID, unsigned> locInfo = SM.getDecomposedLoc(loc);
@@ -477,7 +477,7 @@
                                              StringRef text,
                                              StringRef replacementText) {
   SourceManager &SM = Ctx.getSourceManager();
-  loc = SM.getInstantiationLoc(loc);
+  loc = SM.getExpansionLoc(loc);
   // canReplaceText already checked if loc points at text.
   SourceLocation afterText = loc.getFileLocWithOffset(text.size());
 
@@ -491,7 +491,7 @@
   IndentationRanges.push_back(
                  std::make_pair(CharRange(CharSourceRange::getTokenRange(range),
                                           SM, PP),
-                                SM.getInstantiationLoc(parentIndent)));
+                                SM.getExpansionLoc(parentIndent)));
 }
 
 void TransformActionsImpl::commitClearDiagnostic(ArrayRef<unsigned> IDs,
@@ -501,7 +501,7 @@
 
 void TransformActionsImpl::addInsertion(SourceLocation loc, StringRef text) {
   SourceManager &SM = Ctx.getSourceManager();
-  loc = SM.getInstantiationLoc(loc);
+  loc = SM.getExpansionLoc(loc);
   for (std::list<CharRange>::reverse_iterator
          I = Removals.rbegin(), E = Removals.rend(); I != E; ++I) {
     if (!SM.isBeforeInTranslationUnit(loc, I->End))
@@ -589,7 +589,7 @@
                                                          SourceManager &SM,
                                                          Preprocessor &PP) {
   if (loc.isMacroID())
-    loc = SM.getInstantiationRange(loc).second;
+    loc = SM.getExpansionRange(loc).second;
   return PP.getLocForEndOfToken(loc);
 }
 

Modified: cfe/branches/exception-handling-rewrite/lib/ARCMigrate/Transforms.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/ARCMigrate/Transforms.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/ARCMigrate/Transforms.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/ARCMigrate/Transforms.cpp Mon Jul 25 20:36:54 2011
@@ -95,7 +95,7 @@
   if (loc.isMacroID()) {
     if (!Lexer::isAtEndOfMacroExpansion(loc, SM, Ctx.getLangOptions()))
       return SourceLocation();
-    loc = SM.getInstantiationRange(loc).second;
+    loc = SM.getExpansionRange(loc).second;
   }
   loc = Lexer::getLocForEndOfToken(loc, /*Offset=*/0, SM, Ctx.getLangOptions());
 

Modified: cfe/branches/exception-handling-rewrite/lib/AST/ASTContext.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/AST/ASTContext.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/AST/ASTContext.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/AST/ASTContext.cpp Mon Jul 25 20:36:54 2011
@@ -696,7 +696,10 @@
         // Walk through any array types while we're at it.
         T = getBaseElementType(arrayType);
       }
-      Align = std::max(Align, getPreferredTypeAlign(T.getTypePtr()));
+      if (Target.usePreferredTypeAlign())
+        Align = std::max(Align, getPreferredTypeAlign(T.getTypePtr()));
+      else
+        Align = std::max(Align, getTypeAlign(T.getTypePtr()));
     }
 
     // Fields can be subject to extra alignment constraints, like if

Modified: cfe/branches/exception-handling-rewrite/lib/AST/ExprConstant.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/AST/ExprConstant.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/AST/ExprConstant.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/AST/ExprConstant.cpp Mon Jul 25 20:36:54 2011
@@ -1592,10 +1592,15 @@
   //   result shall be the alignment of the referenced type."
   if (const ReferenceType *Ref = T->getAs<ReferenceType>())
     T = Ref->getPointeeType();
-
-  // __alignof is defined to return the preferred alignment.
-  return Info.Ctx.toCharUnitsFromBits(
-    Info.Ctx.getPreferredTypeAlign(T.getTypePtr()));
+ 
+  // __alignof defaults to returning the preferred alignment, but
+  // can be overridden by the specific target.
+  if (Info.Ctx.Target.usePreferredTypeAlign())
+    return Info.Ctx.toCharUnitsFromBits(
+      Info.Ctx.getPreferredTypeAlign(T.getTypePtr()));
+  else
+    return Info.Ctx.toCharUnitsFromBits(
+      Info.Ctx.getTypeAlign(T.getTypePtr()));
 }
 
 CharUnits IntExprEvaluator::GetAlignOfExpr(const Expr *E) {

Modified: cfe/branches/exception-handling-rewrite/lib/Basic/DiagnosticIDs.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Basic/DiagnosticIDs.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Basic/DiagnosticIDs.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Basic/DiagnosticIDs.cpp Mon Jul 25 20:36:54 2011
@@ -540,7 +540,7 @@
       Diag.SuppressSystemWarnings &&
       Loc.isValid() &&
       Diag.getSourceManager().isInSystemHeader(
-          Diag.getSourceManager().getInstantiationLoc(Loc)))
+          Diag.getSourceManager().getExpansionLoc(Loc)))
     return DiagnosticIDs::Ignored;
 
   return Result;

Modified: cfe/branches/exception-handling-rewrite/lib/Basic/SourceLocation.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Basic/SourceLocation.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Basic/SourceLocation.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Basic/SourceLocation.cpp Mon Jul 25 20:36:54 2011
@@ -54,7 +54,7 @@
     return;
   }
 
-  SM.getInstantiationLoc(*this).print(OS, SM);
+  SM.getExpansionLoc(*this).print(OS, SM);
 
   OS << " <Spelling=";
   SM.getSpellingLoc(*this).print(OS, SM);
@@ -75,9 +75,9 @@
 }
 
 
-FullSourceLoc FullSourceLoc::getInstantiationLoc() const {
+FullSourceLoc FullSourceLoc::getExpansionLoc() const {
   assert(isValid());
-  return FullSourceLoc(SrcMgr->getInstantiationLoc(*this), *SrcMgr);
+  return FullSourceLoc(SrcMgr->getExpansionLoc(*this), *SrcMgr);
 }
 
 FullSourceLoc FullSourceLoc::getSpellingLoc() const {
@@ -85,14 +85,14 @@
   return FullSourceLoc(SrcMgr->getSpellingLoc(*this), *SrcMgr);
 }
 
-unsigned FullSourceLoc::getInstantiationLineNumber(bool *Invalid) const {
+unsigned FullSourceLoc::getExpansionLineNumber(bool *Invalid) const {
   assert(isValid());
-  return SrcMgr->getInstantiationLineNumber(*this, Invalid);
+  return SrcMgr->getExpansionLineNumber(*this, Invalid);
 }
 
-unsigned FullSourceLoc::getInstantiationColumnNumber(bool *Invalid) const {
+unsigned FullSourceLoc::getExpansionColumnNumber(bool *Invalid) const {
   assert(isValid());
-  return SrcMgr->getInstantiationColumnNumber(*this, Invalid);
+  return SrcMgr->getExpansionColumnNumber(*this, Invalid);
 }
 
 unsigned FullSourceLoc::getSpellingLineNumber(bool *Invalid) const {

Modified: cfe/branches/exception-handling-rewrite/lib/Basic/SourceManager.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Basic/SourceManager.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Basic/SourceManager.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Basic/SourceManager.cpp Mon Jul 25 20:36:54 2011
@@ -289,7 +289,7 @@
 /// unspecified.
 void SourceManager::AddLineNote(SourceLocation Loc, unsigned LineNo,
                                 int FilenameID) {
-  std::pair<FileID, unsigned> LocInfo = getDecomposedInstantiationLoc(Loc);
+  std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc);
 
   bool Invalid = false;
   const SLocEntry &Entry = getSLocEntry(LocInfo.first, &Invalid);
@@ -319,7 +319,7 @@
     return AddLineNote(Loc, LineNo, FilenameID);
   }
 
-  std::pair<FileID, unsigned> LocInfo = getDecomposedInstantiationLoc(Loc);
+  std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc);
 
   bool Invalid = false;
   const SLocEntry &Entry = getSLocEntry(LocInfo.first, &Invalid);
@@ -783,11 +783,11 @@
 }
 
 SourceLocation SourceManager::
-getInstantiationLocSlowCase(SourceLocation Loc) const {
+getExpansionLocSlowCase(SourceLocation Loc) const {
   do {
     // Note: If Loc indicates an offset into a token that came from a macro
     // expansion (e.g. the 5th character of the token) we do not want to add
-    // this offset when going to the instantiation location.  The instatiation
+    // this offset when going to the instantiation location.  The expansion
     // location is the macro invocation, which the offset has nothing to do
     // with.  This is unlike when we get the spelling loc, because the offset
     // directly correspond to the token whose spelling we're inspecting.
@@ -809,7 +809,7 @@
 
 
 std::pair<FileID, unsigned>
-SourceManager::getDecomposedInstantiationLocSlowCase(
+SourceManager::getDecomposedExpansionLocSlowCase(
                                              const SrcMgr::SLocEntry *E) const {
   // If this is an instantiation record, walk through all the instantiation
   // points.
@@ -857,30 +857,30 @@
 }
 
 
-/// getImmediateInstantiationRange - Loc is required to be an instantiation
+/// getImmediateExpansionRange - Loc is required to be an instantiation
 /// location.  Return the start/end of the instantiation information.
 std::pair<SourceLocation,SourceLocation>
-SourceManager::getImmediateInstantiationRange(SourceLocation Loc) const {
+SourceManager::getImmediateExpansionRange(SourceLocation Loc) const {
   assert(Loc.isMacroID() && "Not an instantiation loc!");
   const InstantiationInfo &II = getSLocEntry(getFileID(Loc)).getInstantiation();
   return II.getInstantiationLocRange();
 }
 
-/// getInstantiationRange - Given a SourceLocation object, return the
-/// range of tokens covered by the instantiation in the ultimate file.
+/// getExpansionRange - Given a SourceLocation object, return the range of
+/// tokens covered by the expansion in the ultimate file.
 std::pair<SourceLocation,SourceLocation>
-SourceManager::getInstantiationRange(SourceLocation Loc) const {
+SourceManager::getExpansionRange(SourceLocation Loc) const {
   if (Loc.isFileID()) return std::make_pair(Loc, Loc);
 
   std::pair<SourceLocation,SourceLocation> Res =
-    getImmediateInstantiationRange(Loc);
+    getImmediateExpansionRange(Loc);
 
   // Fully resolve the start and end locations to their ultimate instantiation
   // points.
   while (!Res.first.isFileID())
-    Res.first = getImmediateInstantiationRange(Res.first).first;
+    Res.first = getImmediateExpansionRange(Res.first).first;
   while (!Res.second.isFileID())
-    Res.second = getImmediateInstantiationRange(Res.second).second;
+    Res.second = getImmediateExpansionRange(Res.second).second;
   return Res;
 }
 
@@ -958,10 +958,10 @@
   return getColumnNumber(LocInfo.first, LocInfo.second, Invalid);
 }
 
-unsigned SourceManager::getInstantiationColumnNumber(SourceLocation Loc,
-                                                     bool *Invalid) const {
+unsigned SourceManager::getExpansionColumnNumber(SourceLocation Loc,
+                                                 bool *Invalid) const {
   if (isInvalid(Loc, Invalid)) return 0;
-  std::pair<FileID, unsigned> LocInfo = getDecomposedInstantiationLoc(Loc);
+  std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc);
   return getColumnNumber(LocInfo.first, LocInfo.second, Invalid);
 }
 
@@ -1153,10 +1153,10 @@
   std::pair<FileID, unsigned> LocInfo = getDecomposedSpellingLoc(Loc);
   return getLineNumber(LocInfo.first, LocInfo.second);
 }
-unsigned SourceManager::getInstantiationLineNumber(SourceLocation Loc, 
-                                                   bool *Invalid) const {
+unsigned SourceManager::getExpansionLineNumber(SourceLocation Loc,
+                                               bool *Invalid) const {
   if (isInvalid(Loc, Invalid)) return 0;
-  std::pair<FileID, unsigned> LocInfo = getDecomposedInstantiationLoc(Loc);
+  std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc);
   return getLineNumber(LocInfo.first, LocInfo.second);
 }
 unsigned SourceManager::getPresumedLineNumber(SourceLocation Loc,
@@ -1176,7 +1176,7 @@
 SrcMgr::CharacteristicKind
 SourceManager::getFileCharacteristic(SourceLocation Loc) const {
   assert(!Loc.isInvalid() && "Can't get file characteristic of invalid loc!");
-  std::pair<FileID, unsigned> LocInfo = getDecomposedInstantiationLoc(Loc);
+  std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc);
   bool Invalid = false;
   const SLocEntry &SEntry = getSLocEntry(LocInfo.first, &Invalid);
   if (Invalid || !SEntry.isFile())
@@ -1223,7 +1223,7 @@
   if (Loc.isInvalid()) return PresumedLoc();
 
   // Presumed locations are always for instantiation points.
-  std::pair<FileID, unsigned> LocInfo = getDecomposedInstantiationLoc(Loc);
+  std::pair<FileID, unsigned> LocInfo = getDecomposedExpansionLoc(Loc);
 
   bool Invalid = false;
   const SLocEntry &Entry = getSLocEntry(LocInfo.first, &Invalid);

Modified: cfe/branches/exception-handling-rewrite/lib/Basic/TargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Basic/TargetInfo.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Basic/TargetInfo.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Basic/TargetInfo.cpp Mon Jul 25 20:36:54 2011
@@ -65,6 +65,9 @@
   // Default to no types using fpret.
   RealTypeUsesObjCFPRet = 0;
 
+  // Default to using preferred type alignment.
+  UsePreferredTypeAlign = true;
+
   // Default to using the Itanium ABI.
   CXXABI = CXXABI_Itanium;
 

Modified: cfe/branches/exception-handling-rewrite/lib/Basic/Targets.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Basic/Targets.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Basic/Targets.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Basic/Targets.cpp Mon Jul 25 20:36:54 2011
@@ -1978,11 +1978,13 @@
                              "v64:32:64-v128:32:128-a0:0:32-n32");
       }
 
-      // FIXME: Override "preferred align" for double and long long.
+      // Default to using minimum alignment, not preferred.
+      UsePreferredTypeAlign = false;
     } else if (Name == "aapcs") {
       // FIXME: Enumerated types are variable width in straight AAPCS.
+
     } else if (Name == "aapcs-linux") {
-      ;
+
     } else
       return false;
 

Modified: cfe/branches/exception-handling-rewrite/lib/CodeGen/CGBuiltin.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/CodeGen/CGBuiltin.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/CodeGen/CGBuiltin.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/CodeGen/CGBuiltin.cpp Mon Jul 25 20:36:54 2011
@@ -1457,8 +1457,7 @@
     Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
     Ops[3] = Builder.CreateBitCast(Ops[3], Ty);
     Ops.push_back(GetPointeeAlignment(*this, E->getArg(1)));
-    Ops[1] = Builder.CreateCall(F, makeArrayRef(Ops.begin() + 1, Ops.end()),
-                                "vld2_lane");
+    Ops[1] = Builder.CreateCall(F, makeArrayRef(Ops).slice(1), "vld2_lane");
     Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
     return Builder.CreateStore(Ops[1], Ops[0]);
@@ -1470,8 +1469,7 @@
     Ops[3] = Builder.CreateBitCast(Ops[3], Ty);
     Ops[4] = Builder.CreateBitCast(Ops[4], Ty);
     Ops.push_back(GetPointeeAlignment(*this, E->getArg(1)));
-    Ops[1] = Builder.CreateCall(F, makeArrayRef(Ops.begin() + 1, Ops.end()),
-                                "vld3_lane");
+    Ops[1] = Builder.CreateCall(F, makeArrayRef(Ops).slice(1), "vld3_lane");
     Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
     return Builder.CreateStore(Ops[1], Ops[0]);
@@ -1484,8 +1482,7 @@
     Ops[4] = Builder.CreateBitCast(Ops[4], Ty);
     Ops[5] = Builder.CreateBitCast(Ops[5], Ty);
     Ops.push_back(GetPointeeAlignment(*this, E->getArg(1)));
-    Ops[1] = Builder.CreateCall(F, makeArrayRef(Ops.begin() + 1, Ops.end()),
-                                "vld3_lane");
+    Ops[1] = Builder.CreateCall(F, makeArrayRef(Ops).slice(1), "vld3_lane");
     Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
     return Builder.CreateStore(Ops[1], Ops[0]);

Modified: cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDebugInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDebugInfo.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDebugInfo.cpp Mon Jul 25 20:36:54 2011
@@ -51,7 +51,7 @@
 
 void CGDebugInfo::setLocation(SourceLocation Loc) {
   if (Loc.isValid())
-    CurLoc = CGM.getContext().getSourceManager().getInstantiationLoc(Loc);
+    CurLoc = CGM.getContext().getSourceManager().getExpansionLoc(Loc);
 }
 
 /// getContextDescriptor - Get context info for the decl.
@@ -1740,7 +1740,7 @@
   // Don't bother if things are the same as last time.
   SourceManager &SM = CGM.getContext().getSourceManager();
   if (CurLoc == PrevLoc || 
-      SM.getInstantiationLoc(CurLoc) == SM.getInstantiationLoc(PrevLoc))
+      SM.getExpansionLoc(CurLoc) == SM.getExpansionLoc(PrevLoc))
     // New Builder may not be in sync with CGDebugInfo.
     if (!Builder.getCurrentDebugLocation().isUnknown())
       return;

Modified: cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDecl.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDecl.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/CodeGen/CGDecl.cpp Mon Jul 25 20:36:54 2011
@@ -274,8 +274,7 @@
   if (const AnnotateAttr *AA = D.getAttr<AnnotateAttr>()) {
     SourceManager &SM = CGM.getContext().getSourceManager();
     llvm::Constant *Ann =
-      CGM.EmitAnnotateAttr(GV, AA,
-                           SM.getInstantiationLineNumber(D.getLocation()));
+      CGM.EmitAnnotateAttr(GV, AA, SM.getExpansionLineNumber(D.getLocation()));
     CGM.AddAnnotation(Ann);
   }
 

Modified: cfe/branches/exception-handling-rewrite/lib/CodeGen/CodeGenModule.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/CodeGen/CodeGenModule.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/CodeGen/CodeGenModule.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/CodeGen/CodeGenModule.cpp Mon Jul 25 20:36:54 2011
@@ -1311,8 +1311,8 @@
 
   if (const AnnotateAttr *AA = D->getAttr<AnnotateAttr>()) {
     SourceManager &SM = Context.getSourceManager();
-    AddAnnotation(EmitAnnotateAttr(GV, AA,
-                              SM.getInstantiationLineNumber(D->getLocation())));
+    AddAnnotation(EmitAnnotateAttr(
+        GV, AA, SM.getExpansionLineNumber(D->getLocation())));
   }
 
   GV->setInitializer(Init);

Modified: cfe/branches/exception-handling-rewrite/lib/Frontend/DependencyFile.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Frontend/DependencyFile.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Frontend/DependencyFile.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Frontend/DependencyFile.cpp Mon Jul 25 20:36:54 2011
@@ -123,7 +123,7 @@
   SourceManager &SM = PP->getSourceManager();
 
   const FileEntry *FE =
-    SM.getFileEntryForID(SM.getFileID(SM.getInstantiationLoc(Loc)));
+    SM.getFileEntryForID(SM.getFileID(SM.getExpansionLoc(Loc)));
   if (FE == 0) return;
 
   StringRef Filename = FE->getName();

Modified: cfe/branches/exception-handling-rewrite/lib/Frontend/PrintPreprocessedOutput.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Frontend/PrintPreprocessedOutput.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Frontend/PrintPreprocessedOutput.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Frontend/PrintPreprocessedOutput.cpp Mon Jul 25 20:36:54 2011
@@ -419,7 +419,7 @@
 
   // Print out space characters so that the first token on a line is
   // indented for easy reading.
-  unsigned ColNo = SM.getInstantiationColumnNumber(Tok.getLocation());
+  unsigned ColNo = SM.getExpansionColumnNumber(Tok.getLocation());
 
   // This hack prevents stuff like:
   // #define HASH #

Modified: cfe/branches/exception-handling-rewrite/lib/Frontend/TextDiagnosticPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Frontend/TextDiagnosticPrinter.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Frontend/TextDiagnosticPrinter.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Frontend/TextDiagnosticPrinter.cpp Mon Jul 25 20:36:54 2011
@@ -85,8 +85,8 @@
          "Expect a correspondence between source and caret line!");
   if (!R.isValid()) return;
 
-  SourceLocation Begin = SM.getInstantiationLoc(R.getBegin());
-  SourceLocation End = SM.getInstantiationLoc(R.getEnd());
+  SourceLocation Begin = SM.getExpansionLoc(R.getBegin());
+  SourceLocation End = SM.getExpansionLoc(R.getEnd());
 
   // If the End location and the start location are the same and are a macro
   // location, then the range was something that came from a macro expansion
@@ -94,27 +94,27 @@
   // highlight the range.  If this is a function-like macro, we'd also like to
   // highlight the arguments.
   if (Begin == End && R.getEnd().isMacroID())
-    End = SM.getInstantiationRange(R.getEnd()).second;
+    End = SM.getExpansionRange(R.getEnd()).second;
 
-  unsigned StartLineNo = SM.getInstantiationLineNumber(Begin);
+  unsigned StartLineNo = SM.getExpansionLineNumber(Begin);
   if (StartLineNo > LineNo || SM.getFileID(Begin) != FID)
     return;  // No intersection.
 
-  unsigned EndLineNo = SM.getInstantiationLineNumber(End);
+  unsigned EndLineNo = SM.getExpansionLineNumber(End);
   if (EndLineNo < LineNo || SM.getFileID(End) != FID)
     return;  // No intersection.
 
   // Compute the column number of the start.
   unsigned StartColNo = 0;
   if (StartLineNo == LineNo) {
-    StartColNo = SM.getInstantiationColumnNumber(Begin);
+    StartColNo = SM.getExpansionColumnNumber(Begin);
     if (StartColNo) --StartColNo;  // Zero base the col #.
   }
 
   // Compute the column number of the end.
   unsigned EndColNo = CaretLine.size();
   if (EndLineNo == LineNo) {
-    EndColNo = SM.getInstantiationColumnNumber(End);
+    EndColNo = SM.getExpansionColumnNumber(End);
     if (EndColNo) {
       --EndColNo;  // Zero base the col #.
 
@@ -322,7 +322,7 @@
 
   // Otherwise, the caller of the macro is located where this macro is
   // expanded (while the spelling is part of the macro definition).
-  return SM.getImmediateInstantiationRange(Loc).first;
+  return SM.getImmediateExpansionRange(Loc).first;
 }
 
 /// Gets the location of the immediate macro callee, one level down the stack
@@ -335,7 +335,7 @@
   // expansion location points to the unexpanded paramater reference within
   // the macro definition (or callee).
   if (SM.isMacroArgInstantiation(Loc))
-    return SM.getImmediateInstantiationRange(Loc).first;
+    return SM.getImmediateExpansionRange(Loc).first;
 
   // Otherwise, the callee of the macro is located where this location was
   // spelled inside the macro definition.
@@ -519,7 +519,7 @@
         // We have an insertion hint. Determine whether the inserted
         // code is on the same line as the caret.
         std::pair<FileID, unsigned> HintLocInfo
-          = SM.getDecomposedInstantiationLoc(Hint->RemoveRange.getBegin());
+          = SM.getDecomposedExpansionLoc(Hint->RemoveRange.getBegin());
         if (SM.getLineNumber(HintLocInfo.first, HintLocInfo.second) ==
               SM.getLineNumber(FID, FileOffset)) {
           // Insert the new code into the line just below the code
@@ -914,7 +914,7 @@
                 
         if (DiagOpts->ShowSourceRanges && Info.getNumRanges()) {
           FileID CaretFileID =
-            SM.getFileID(SM.getInstantiationLoc(Info.getLocation()));
+            SM.getFileID(SM.getExpansionLoc(Info.getLocation()));
           bool PrintedRange = false;
 
           for (unsigned i = 0, e = Info.getNumRanges(); i != e; ++i) {
@@ -923,8 +923,8 @@
 
             SourceLocation B = Info.getRange(i).getBegin();
             SourceLocation E = Info.getRange(i).getEnd();
-            B = SM.getInstantiationLoc(B);
-            E = SM.getInstantiationLoc(E);
+            B = SM.getExpansionLoc(B);
+            E = SM.getExpansionLoc(E);
 
             // If the End location and the start location are the same and are a
             // macro location, then the range was something that came from a
@@ -932,7 +932,7 @@
             // best we can do is to highlight the range.  If this is a
             // function-like macro, we'd also like to highlight the arguments.
             if (B == E && Info.getRange(i).getEnd().isMacroID())
-              E = SM.getInstantiationRange(Info.getRange(i).getEnd()).second;
+              E = SM.getExpansionRange(Info.getRange(i).getEnd()).second;
 
             std::pair<FileID, unsigned> BInfo = SM.getDecomposedLoc(B);
             std::pair<FileID, unsigned> EInfo = SM.getDecomposedLoc(E);

Modified: cfe/branches/exception-handling-rewrite/lib/Frontend/VerifyDiagnosticsClient.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Frontend/VerifyDiagnosticsClient.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Frontend/VerifyDiagnosticsClient.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Frontend/VerifyDiagnosticsClient.cpp Mon Jul 25 20:36:54 2011
@@ -52,6 +52,10 @@
 
 void VerifyDiagnosticsClient::HandleDiagnostic(Diagnostic::Level DiagLevel,
                                               const DiagnosticInfo &Info) {
+  if (FirstErrorFID.isInvalid() && Info.hasSourceManager()) {
+    const SourceManager &SM = Info.getSourceManager();
+    FirstErrorFID = SM.getFileID(Info.getLocation());
+  }
   // Send the diagnostic to the buffer, we will check it once we reach the end
   // of the source file (or are destructed).
   Buffer->HandleDiagnostic(DiagLevel, Info);
@@ -323,14 +327,12 @@
 
 /// FindExpectedDiags - Lex the main source file to find all of the
 //   expected errors and warnings.
-static void FindExpectedDiags(Preprocessor &PP, ExpectedData &ED) {
-  // Create a raw lexer to pull all the comments out of the main file.  We don't
-  // want to look in #include'd headers for expected-error strings.
-  SourceManager &SM = PP.getSourceManager();
-  FileID FID = SM.getMainFileID();
-  if (SM.getMainFileID().isInvalid())
+static void FindExpectedDiags(Preprocessor &PP, ExpectedData &ED, FileID FID) {
+  // Create a raw lexer to pull all the comments out of FID.
+  if (FID.isInvalid())
     return;
 
+  SourceManager& SM = PP.getSourceManager();
   // Create a lexer to lex all the tokens of the main file in raw mode.
   const llvm::MemoryBuffer *FromFile = SM.getBuffer(FID);
   Lexer RawLex(FID, FromFile, SM, PP.getLangOptions());
@@ -481,11 +483,21 @@
   // If we have a preprocessor, scan the source for expected diagnostic
   // markers. If not then any diagnostics are unexpected.
   if (CurrentPreprocessor) {
-    FindExpectedDiags(*CurrentPreprocessor, ED);
+    SourceManager &SM = CurrentPreprocessor->getSourceManager();
+    // Extract expected-error strings from main file.
+    FindExpectedDiags(*CurrentPreprocessor, ED, SM.getMainFileID());
+    // Only check for expectations in other diagnostic locations
+    // if they are not the main file (via ID or FileEntry) - the main
+    // file has already been looked at, and its expectations must not
+    // be added twice.
+    if (!FirstErrorFID.isInvalid() && FirstErrorFID != SM.getMainFileID()
+        && (!SM.getFileEntryForID(FirstErrorFID)
+            || (SM.getFileEntryForID(FirstErrorFID) !=
+                SM.getFileEntryForID(SM.getMainFileID()))))
+      FindExpectedDiags(*CurrentPreprocessor, ED, FirstErrorFID);
 
     // Check that the expected diagnostics occurred.
-    NumErrors += CheckResults(Diags, CurrentPreprocessor->getSourceManager(),
-                              *Buffer, ED);
+    NumErrors += CheckResults(Diags, SM, *Buffer, ED);
   } else {
     NumErrors += (PrintProblem(Diags, 0,
                                Buffer->err_begin(), Buffer->err_end(),

Modified: cfe/branches/exception-handling-rewrite/lib/Headers/tgmath.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Headers/tgmath.h?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Headers/tgmath.h (original)
+++ cfe/branches/exception-handling-rewrite/lib/Headers/tgmath.h Mon Jul 25 20:36:54 2011
@@ -1049,19 +1049,18 @@
 
 static float
     _TG_ATTRS
-    __tg_nexttoward(float __x, float __y) {return nexttowardf(__x, __y);}
+    __tg_nexttoward(float __x, long double __y) {return nexttowardf(__x, __y);}
 
 static double
     _TG_ATTRS
-    __tg_nexttoward(double __x, double __y) {return nexttoward(__x, __y);}
+    __tg_nexttoward(double __x, long double __y) {return nexttoward(__x, __y);}
 
 static long double
     _TG_ATTRS
     __tg_nexttoward(long double __x, long double __y) {return nexttowardl(__x, __y);}
 
 #undef nexttoward
-#define nexttoward(__x, __y) __tg_nexttoward(__tg_promote2((__x), (__y))(__x), \
-                                             __tg_promote2((__x), (__y))(__y))
+#define nexttoward(__x, __y) __tg_nexttoward(__tg_promote1((__x))(__x), (__y))
 
 // remainder
 

Modified: cfe/branches/exception-handling-rewrite/lib/Lex/Lexer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Lex/Lexer.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Lex/Lexer.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Lex/Lexer.cpp Mon Jul 25 20:36:54 2011
@@ -394,7 +394,7 @@
 
   // If this comes from a macro expansion, we really do want the macro name, not
   // the token this macro expanded to.
-  Loc = SM.getInstantiationLoc(Loc);
+  Loc = SM.getExpansionLoc(Loc);
   std::pair<FileID, unsigned> LocInfo = SM.getDecomposedLoc(Loc);
   bool Invalid = false;
   StringRef Buffer = SM.getBufferData(LocInfo.first, &Invalid);
@@ -687,7 +687,7 @@
       return SourceLocation(); // Points inside the macro expansion.
 
     // Continue and find the location just after the macro expansion.
-    Loc = SM.getInstantiationRange(Loc).second;
+    Loc = SM.getExpansionRange(Loc).second;
   }
 
   unsigned Len = Lexer::MeasureTokenLength(Loc, SM, Features);
@@ -912,7 +912,7 @@
   // Figure out the expansion loc range, which is the range covered by the
   // original _Pragma(...) sequence.
   std::pair<SourceLocation,SourceLocation> II =
-    SM.getImmediateInstantiationRange(FileLoc);
+    SM.getImmediateExpansionRange(FileLoc);
 
   return SM.createInstantiationLoc(SpellingLoc, II.first, II.second, TokLen);
 }

Modified: cfe/branches/exception-handling-rewrite/lib/Lex/MacroInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Lex/MacroInfo.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Lex/MacroInfo.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Lex/MacroInfo.cpp Mon Jul 25 20:36:54 2011
@@ -68,9 +68,9 @@
   assert((macroEnd.isFileID() || lastToken.is(tok::comment)) &&
          "Macro defined in macro?");
   std::pair<FileID, unsigned>
-      startInfo = SM.getDecomposedInstantiationLoc(macroStart);
+      startInfo = SM.getDecomposedExpansionLoc(macroStart);
   std::pair<FileID, unsigned>
-      endInfo = SM.getDecomposedInstantiationLoc(macroEnd);
+      endInfo = SM.getDecomposedExpansionLoc(macroEnd);
   assert(startInfo.first == endInfo.first &&
          "Macro definition spanning multiple FileIDs ?");
   assert(startInfo.second <= endInfo.second);

Modified: cfe/branches/exception-handling-rewrite/lib/Lex/PPDirectives.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Lex/PPDirectives.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Lex/PPDirectives.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Lex/PPDirectives.cpp Mon Jul 25 20:36:54 2011
@@ -825,7 +825,7 @@
     // If we are leaving the current presumed file, check to make sure the
     // presumed include stack isn't empty!
     FileID CurFileID =
-      SM.getDecomposedInstantiationLoc(FlagTok.getLocation()).first;
+      SM.getDecomposedExpansionLoc(FlagTok.getLocation()).first;
     PresumedLoc PLoc = SM.getPresumedLoc(FlagTok.getLocation());
     if (PLoc.isInvalid())
       return true;
@@ -834,7 +834,7 @@
     // different physical file, then we aren't in a "1" line marker flag region.
     SourceLocation IncLoc = PLoc.getIncludeLoc();
     if (IncLoc.isInvalid() ||
-        SM.getDecomposedInstantiationLoc(IncLoc).first != CurFileID) {
+        SM.getDecomposedExpansionLoc(IncLoc).first != CurFileID) {
       PP.Diag(FlagTok, diag::err_pp_linemarker_invalid_pop);
       PP.DiscardUntilEndOfDirective();
       return true;

Modified: cfe/branches/exception-handling-rewrite/lib/Lex/PPMacroExpansion.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Lex/PPMacroExpansion.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Lex/PPMacroExpansion.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Lex/PPMacroExpansion.cpp Mon Jul 25 20:36:54 2011
@@ -838,7 +838,7 @@
     // can matter for a function-like macro that expands to contain __LINE__.
     // Skip down through expansion points until we find a file loc for the
     // end of the expansion history.
-    Loc = SourceMgr.getInstantiationRange(Loc).second;
+    Loc = SourceMgr.getExpansionRange(Loc).second;
     PresumedLoc PLoc = SourceMgr.getPresumedLoc(Loc);
 
     // __LINE__ expands to a simple numeric value.

Modified: cfe/branches/exception-handling-rewrite/lib/Lex/TokenLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Lex/TokenLexer.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Lex/TokenLexer.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Lex/TokenLexer.cpp Mon Jul 25 20:36:54 2011
@@ -55,7 +55,7 @@
     // definition. Tokens that get lexed directly from the definition will
     // have their locations pointing inside this chunk. This is to avoid
     // creating separate source location entries for each token.
-    SourceLocation macroStart = SM.getInstantiationLoc(Tokens[0].getLocation());
+    SourceLocation macroStart = SM.getExpansionLoc(Tokens[0].getLocation());
     MacroDefStartInfo = SM.getDecomposedLoc(macroStart);
     MacroExpansionStart = SM.createInstantiationLoc(macroStart,
                                               ExpandLocStart,

Modified: cfe/branches/exception-handling-rewrite/lib/Parse/ParseExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Parse/ParseExpr.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Parse/ParseExpr.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Parse/ParseExpr.cpp Mon Jul 25 20:36:54 2011
@@ -311,7 +311,7 @@
         const char *FIText = ": ";
         const SourceManager &SM = PP.getSourceManager();
         if (FILoc.isFileID() || PP.isAtStartOfMacroExpansion(FILoc)) {
-          FILoc = SM.getInstantiationLoc(FILoc);
+          FILoc = SM.getExpansionLoc(FILoc);
           bool IsInvalid = false;
           const char *SourcePtr =
             SM.getCharacterData(FILoc.getFileLocWithOffset(-1), &IsInvalid);

Modified: cfe/branches/exception-handling-rewrite/lib/Parse/ParseStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Parse/ParseStmt.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Parse/ParseStmt.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Parse/ParseStmt.cpp Mon Jul 25 20:36:54 2011
@@ -1567,12 +1567,12 @@
     // that the rest of the line is an assembly-language statement.
     SourceManager &SrcMgr = PP.getSourceManager();
     SourceLocation TokLoc = Tok.getLocation();
-    unsigned LineNo = SrcMgr.getInstantiationLineNumber(TokLoc);
+    unsigned LineNo = SrcMgr.getExpansionLineNumber(TokLoc);
     do {
       EndLoc = TokLoc;
       ConsumeAnyToken();
       TokLoc = Tok.getLocation();
-    } while ((SrcMgr.getInstantiationLineNumber(TokLoc) == LineNo) &&
+    } while ((SrcMgr.getExpansionLineNumber(TokLoc) == LineNo) &&
              Tok.isNot(tok::r_brace) && Tok.isNot(tok::semi) &&
              Tok.isNot(tok::eof));
   }

Modified: cfe/branches/exception-handling-rewrite/lib/Rewrite/HTMLRewrite.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Rewrite/HTMLRewrite.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Rewrite/HTMLRewrite.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Rewrite/HTMLRewrite.cpp Mon Jul 25 20:36:54 2011
@@ -33,8 +33,8 @@
 void html::HighlightRange(Rewriter &R, SourceLocation B, SourceLocation E,
                           const char *StartTag, const char *EndTag) {
   SourceManager &SM = R.getSourceMgr();
-  B = SM.getInstantiationLoc(B);
-  E = SM.getInstantiationLoc(E);
+  B = SM.getExpansionLoc(B);
+  E = SM.getExpansionLoc(E);
   FileID FID = SM.getFileID(B);
   assert(SM.getFileID(E) == FID && "B/E not in the same file!");
 
@@ -519,7 +519,7 @@
     // expansion by inserting a start tag before the macro expansion and
     // end tag after it.
     std::pair<SourceLocation, SourceLocation> LLoc =
-      SM.getInstantiationRange(Tok.getLocation());
+      SM.getExpansionRange(Tok.getLocation());
 
     // Ignore tokens whose instantiation location was not the main file.
     if (SM.getFileID(LLoc.first) != FID) {
@@ -542,7 +542,7 @@
     // instantiation.  It would be really nice to pop up a window with all the
     // spelling of the tokens or something.
     while (!Tok.is(tok::eof) &&
-           SM.getInstantiationLoc(Tok.getLocation()) == LLoc.first) {
+           SM.getExpansionLoc(Tok.getLocation()) == LLoc.first) {
       // Insert a newline if the macro expansion is getting large.
       if (LineLen > 60) {
         Expansion += "<br>";

Modified: cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteMacros.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteMacros.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteMacros.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteMacros.cpp Mon Jul 25 20:36:54 2011
@@ -112,7 +112,7 @@
   // that aren't in the preprocessed view, we have macros that expand to no
   // tokens, or macro arguments etc.
   while (RawTok.isNot(tok::eof) || PPTok.isNot(tok::eof)) {
-    SourceLocation PPLoc = SM.getInstantiationLoc(PPTok.getLocation());
+    SourceLocation PPLoc = SM.getExpansionLoc(PPTok.getLocation());
 
     // If PPTok is from a different source file, ignore it.
     if (!SM.isFromMainFile(PPLoc)) {
@@ -197,7 +197,7 @@
     while (PPOffs < RawOffs) {
       Expansion += ' ' + PP.getSpelling(PPTok);
       PP.Lex(PPTok);
-      PPLoc = SM.getInstantiationLoc(PPTok.getLocation());
+      PPLoc = SM.getExpansionLoc(PPTok.getLocation());
       PPOffs = SM.getFileOffset(PPLoc);
     }
     Expansion += ' ';

Modified: cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteObjC.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteObjC.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteObjC.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Rewrite/RewriteObjC.cpp Mon Jul 25 20:36:54 2011
@@ -690,7 +690,7 @@
   // #included file.  If the former, rewrite it now.  If the later, check to see
   // if we rewrote the #include/#import.
   SourceLocation Loc = D->getLocation();
-  Loc = SM->getInstantiationLoc(Loc);
+  Loc = SM->getExpansionLoc(Loc);
 
   // If this is for a builtin, ignore it.
   if (Loc.isInvalid()) return;
@@ -933,8 +933,8 @@
   SourceLocation LocStart = Method->getLocStart();
   SourceLocation LocEnd = Method->getLocEnd();
 
-  if (SM->getInstantiationLineNumber(LocEnd) >
-      SM->getInstantiationLineNumber(LocStart)) {
+  if (SM->getExpansionLineNumber(LocEnd) >
+      SM->getExpansionLineNumber(LocStart)) {
     InsertText(LocStart, "#if 0\n");
     ReplaceText(LocEnd, 1, ";\n#endif\n");
   } else {
@@ -2342,13 +2342,13 @@
       startLoc = ECE->getLParenLoc();
     else
       startLoc = E->getLocStart();
-    startLoc = SM->getInstantiationLoc(startLoc);
+    startLoc = SM->getExpansionLoc(startLoc);
     const char *endBuf = SM->getCharacterData(startLoc);
     ReplaceText(DeclLoc, endBuf-startBuf-1, TypeAsString);
   }
   else {
     SourceLocation X = ND->getLocEnd();
-    X = SM->getInstantiationLoc(X);
+    X = SM->getExpansionLoc(X);
     const char *endBuf = SM->getCharacterData(X);
     ReplaceText(DeclLoc, endBuf-startBuf-1, TypeAsString);
   }
@@ -5108,7 +5108,7 @@
     DeclLoc = ND->getLocation();
   const char *startBuf = SM->getCharacterData(DeclLoc);
   SourceLocation X = ND->getLocEnd();
-  X = SM->getInstantiationLoc(X);
+  X = SM->getExpansionLoc(X);
   const char *endBuf = SM->getCharacterData(X);
   std::string Name(ND->getNameAsString());
   std::string ByrefType;
@@ -5203,7 +5203,7 @@
       startLoc = ECE->getLParenLoc();
     else
       startLoc = E->getLocStart();
-    startLoc = SM->getInstantiationLoc(startLoc);
+    startLoc = SM->getExpansionLoc(startLoc);
     endBuf = SM->getCharacterData(startLoc);
     ByrefType += " " + Name;
     ByrefType += " = {(void*)";

Modified: cfe/branches/exception-handling-rewrite/lib/Sema/Sema.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Sema/Sema.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Sema/Sema.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Sema/Sema.cpp Mon Jul 25 20:36:54 2011
@@ -687,7 +687,7 @@
 
   // There's no good way right now to look at the intermediate
   // instantiations, so just jump to the instantiation location.
-  loc = getSourceManager().getInstantiationLoc(loc);
+  loc = getSourceManager().getExpansionLoc(loc);
 
   // If that's written with the name, stop here.
   SmallVector<char, 16> buffer;

Modified: cfe/branches/exception-handling-rewrite/lib/Sema/SemaCodeComplete.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Sema/SemaCodeComplete.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Sema/SemaCodeComplete.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Sema/SemaCodeComplete.cpp Mon Jul 25 20:36:54 2011
@@ -3706,7 +3706,7 @@
   LookupVisibleDecls(Ctx, LookupOrdinaryName, Consumer);
 
   HandleCodeCompleteResults(this, CodeCompleter, 
-                            CodeCompletionContext::CCC_Name,
+                            Results.getCompletionContext(),
                             Results.data(),Results.size());
 }
 

Modified: cfe/branches/exception-handling-rewrite/lib/Sema/SemaDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Sema/SemaDecl.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Sema/SemaDecl.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Sema/SemaDecl.cpp Mon Jul 25 20:36:54 2011
@@ -3937,7 +3937,8 @@
   QualType T = NewVD->getType();
 
   if (T->isObjCObjectType()) {
-    Diag(NewVD->getLocation(), diag::err_statically_allocated_object);
+    Diag(NewVD->getLocation(), diag::err_statically_allocated_object)
+      << FixItHint::CreateInsertion(NewVD->getLocation(), "*");
     return NewVD->setInvalidDecl();
   }
 

Modified: cfe/branches/exception-handling-rewrite/lib/Sema/SemaDeclCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Sema/SemaDeclCXX.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Sema/SemaDeclCXX.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Sema/SemaDeclCXX.cpp Mon Jul 25 20:36:54 2011
@@ -4947,7 +4947,7 @@
                                       IdentLoc, Named, CommonAncestor);
 
     if (IsUsingDirectiveInToplevelContext(CurContext) &&
-        !SourceMgr.isFromMainFile(SourceMgr.getInstantiationLoc(IdentLoc))) {
+        !SourceMgr.isFromMainFile(SourceMgr.getExpansionLoc(IdentLoc))) {
       Diag(IdentLoc, diag::warn_using_directive_in_header);
     }
 

Modified: cfe/branches/exception-handling-rewrite/lib/Serialization/ASTReader.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/Serialization/ASTReader.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/Serialization/ASTReader.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/Serialization/ASTReader.cpp Mon Jul 25 20:36:54 2011
@@ -1740,16 +1740,16 @@
 }
 
 void ASTReader::ReadDefinedMacros() {
-  for (unsigned I = 0, N = Chain.size(); I != N; ++I) {
-    Module &F = *Chain[N - I - 1];
-    llvm::BitstreamCursor &MacroCursor = F.MacroCursor;
+  for (ModuleReverseIterator I = ModuleMgr.rbegin(),
+      E = ModuleMgr.rend(); I != E; ++I) {
+    llvm::BitstreamCursor &MacroCursor = (*I)->MacroCursor;
 
     // If there was no preprocessor block, skip this file.
     if (!MacroCursor.getBitStreamReader())
       continue;
 
     llvm::BitstreamCursor Cursor = MacroCursor;
-    Cursor.JumpToBit(F.MacroStartOffset);
+    Cursor.JumpToBit((*I)->MacroStartOffset);
 
     RecordData Record;
     while (true) {
@@ -2465,8 +2465,9 @@
 }
 
 ASTReader::ASTReadResult ASTReader::validateFileEntries() {
-  for (unsigned CI = 0, CN = Chain.size(); CI != CN; ++CI) {
-    Module *F = Chain[CI];
+  for (ModuleIterator I = ModuleMgr.begin(),
+      E = ModuleMgr.end(); I != E; ++I) {
+    Module *F = *I;
     llvm::BitstreamCursor &SLocEntryCursor = F->SLocEntryCursor;
 
     for (unsigned i = 0, e = F->LocalNumSLocFileEntries; i != e; ++i) {
@@ -2582,9 +2583,10 @@
          Id != IdEnd; ++Id)
       Identifiers.push_back(Id->second);
     // We need to search the tables in all files.
-    for (unsigned J = 0, M = Chain.size(); J != M; ++J) {
+    for (ModuleIterator J = ModuleMgr.begin(),
+        M = ModuleMgr.end(); J != M; ++J) {
       ASTIdentifierLookupTable *IdTable
-        = (ASTIdentifierLookupTable *)Chain[J]->IdentifierLookupTable;
+        = (ASTIdentifierLookupTable *)(*J)->IdentifierLookupTable;
       // Not all AST files necessarily have identifier tables, only the useful
       // ones.
       if (!IdTable)
@@ -2592,7 +2594,7 @@
       for (unsigned I = 0, N = Identifiers.size(); I != N; ++I) {
         IdentifierInfo *II = Identifiers[I];
         // Look in the on-disk hash tables for an entry for this identifier
-        ASTIdentifierLookupTrait Info(*this, *Chain[J], II);
+        ASTIdentifierLookupTrait Info(*this, *(*J), II);
         std::pair<const char*,unsigned> Key(II->getNameStart(),II->getLength());
         ASTIdentifierLookupTable::iterator Pos = IdTable->find(Key, &Info);
         if (Pos == IdTable->end())
@@ -2622,7 +2624,7 @@
         OriginalFileID = SourceMgr.getDecomposedLoc(Loc).first;
     }
     else {
-      OriginalFileID = FileID::get(Chain[0]->SLocEntryBaseID 
+      OriginalFileID = FileID::get(ModuleMgr.getPrimaryModule().SLocEntryBaseID
                                         + OriginalFileID.getOpaqueValue() - 1);
     }
 
@@ -2635,9 +2637,9 @@
 
 ASTReader::ASTReadResult ASTReader::ReadASTCore(StringRef FileName,
                                                 ModuleKind Type) {
-  Module *Prev = Chain.empty() ? 0 : Chain.back();
-  Chain.push_back(new Module(Type));
-  Module &F = *Chain.back();
+  Module *Prev = !ModuleMgr.size() ? 0 : &ModuleMgr.getLastModule();
+  ModuleMgr.addModule(Type);
+  Module &F = ModuleMgr.getLastModule();
   if (Prev)
     Prev->NextInSource = &F;
   else
@@ -3060,12 +3062,12 @@
 }
 
 void ASTReader::ReadPreprocessedEntities() {
-  for (unsigned I = 0, N = Chain.size(); I != N; ++I) {
-    Module &F = *Chain[I];
+  for (ModuleIterator I = ModuleMgr.begin(), E = ModuleMgr.end(); I != E; ++I) {
+    Module &F = *(*I);
     if (!F.PreprocessorDetailCursor.getBitStreamReader())
       continue;
 
-    SavedStreamPosition SavedPosition(F.PreprocessorDetailCursor);  
+    SavedStreamPosition SavedPosition(F.PreprocessorDetailCursor);
     F.PreprocessorDetailCursor.JumpToBit(F.PreprocessorDetailStartOffset);
     while (LoadPreprocessedEntity(F)) { }
   }
@@ -3083,8 +3085,8 @@
 
 HeaderFileInfo ASTReader::GetHeaderFileInfo(const FileEntry *FE) {
   HeaderFileInfoTrait Trait(FE->getName());
-  for (unsigned I = 0, N = Chain.size(); I != N; ++I) {
-    Module &F = *Chain[I];
+  for (ModuleIterator I = ModuleMgr.begin(), E = ModuleMgr.end(); I != E; ++I) {
+    Module &F = *(*I);
     HeaderFileInfoLookupTable *Table
       = static_cast<HeaderFileInfoLookupTable *>(F.HeaderFileInfoTable);
     if (!Table)
@@ -3107,8 +3109,8 @@
 }
 
 void ASTReader::ReadPragmaDiagnosticMappings(Diagnostic &Diag) {
-  for (unsigned I = 0, N = Chain.size(); I != N; ++I) {
-    Module &F = *Chain[I];
+  for (ModuleIterator I = ModuleMgr.begin(), E = ModuleMgr.end(); I != E; ++I) {
+    Module &F = *(*I);
     unsigned Idx = 0;
     while (Idx < F.PragmaDiagMappings.size()) {
       SourceLocation Loc = ReadSourceLocation(F, F.PragmaDiagMappings[Idx++]);
@@ -4304,8 +4306,9 @@
 /// Return the amount of memory used by memory buffers, breaking down
 /// by heap-backed versus mmap'ed memory.
 void ASTReader::getMemoryBufferSizes(MemoryBufferSizes &sizes) const {
-  for (unsigned i = 0, e = Chain.size(); i != e; ++i)
-    if (llvm::MemoryBuffer *buf = Chain[i]->Buffer.get()) {
+  for (ModuleConstIterator I = ModuleMgr.begin(),
+      E = ModuleMgr.end(); I != E; ++I) {
+    if (llvm::MemoryBuffer *buf = (*I)->Buffer.get()) {
       size_t bytes = buf->getBufferSize();
       switch (buf->getBufferKind()) {
         case llvm::MemoryBuffer::MemoryBuffer_Malloc:
@@ -4316,6 +4319,7 @@
           break;
       }
     }
+  }
 }
 
 void ASTReader::InitializeSema(Sema &S) {
@@ -4402,7 +4406,7 @@
 
   // The special data sets below always come from the most recent PCH,
   // which is at the front of the chain.
-  Module &F = *Chain.front();
+  Module &F = ModuleMgr.getPrimaryModule();
 
   // If there were any pending implicit instantiations, deserialize them
   // and add them to Sema's queue of such instantiations.
@@ -4459,9 +4463,9 @@
 IdentifierInfo* ASTReader::get(const char *NameStart, const char *NameEnd) {
   // Try to find this name within our on-disk hash tables. We start with the
   // most recent one, since that one contains the most up-to-date info.
-  for (unsigned I = 0, N = Chain.size(); I != N; ++I) {
+  for (ModuleIterator I = ModuleMgr.begin(), E = ModuleMgr.end(); I != E; ++I) {
     ASTIdentifierLookupTable *IdTable
-        = (ASTIdentifierLookupTable *)Chain[I]->IdentifierLookupTable;
+        = (ASTIdentifierLookupTable *)(*I)->IdentifierLookupTable;
     if (!IdTable)
       continue;
     std::pair<const char*, unsigned> Key(NameStart, NameEnd - NameStart);
@@ -4504,9 +4508,9 @@
 }
 
 ASTIdentifierIterator::ASTIdentifierIterator(const ASTReader &Reader)
-  : Reader(Reader), Index(Reader.Chain.size() - 1) {
+  : Reader(Reader), Index(Reader.ModuleMgr.size() - 1) {
   ASTIdentifierLookupTable *IdTable
-    = (ASTIdentifierLookupTable *)Reader.Chain[Index]->IdentifierLookupTable;
+    = (ASTIdentifierLookupTable *)Reader.ModuleMgr[Index].IdentifierLookupTable;
   Current = IdTable->key_begin();
   End = IdTable->key_end();
 }
@@ -4519,7 +4523,8 @@
 
     --Index;
     ASTIdentifierLookupTable *IdTable
-      = (ASTIdentifierLookupTable *)Reader.Chain[Index]->IdentifierLookupTable;
+      = (ASTIdentifierLookupTable *)Reader.ModuleMgr[Index].
+        IdentifierLookupTable;
     Current = IdTable->key_begin();
     End = IdTable->key_end();
   }
@@ -4538,8 +4543,8 @@
 std::pair<ObjCMethodList, ObjCMethodList>
 ASTReader::ReadMethodPool(Selector Sel) {
   // Find this selector in a hash table. We want to find the most recent entry.
-  for (unsigned I = 0, N = Chain.size(); I != N; ++I) {
-    Module &F = *Chain[I];
+  for (ModuleIterator I = ModuleMgr.begin(), E = ModuleMgr.end(); I != E; ++I) {
+    Module &F = *(*I);
     if (!F.SelectorLookupTable)
       continue;
 
@@ -5305,8 +5310,6 @@
 }
 
 ASTReader::~ASTReader() {
-  for (unsigned i = 0, e = Chain.size(); i != e; ++i)
-    delete Chain[e - i - 1];
   // Delete all visible decl lookup tables
   for (DeclContextOffsetsMap::iterator I = DeclContextOffsets.begin(),
                                        E = DeclContextOffsets.end();

Modified: cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp Mon Jul 25 20:36:54 2011
@@ -53,7 +53,7 @@
     const CompoundLiteralExpr* CL = CR->getLiteralExpr();
     os << "stack memory associated with a compound literal "
           "declared on line "
-        << SM.getInstantiationLineNumber(CL->getLocStart())
+        << SM.getExpansionLineNumber(CL->getLocStart())
         << " returned to caller";    
     range = CL->getSourceRange();
   }
@@ -62,14 +62,14 @@
     SourceLocation L = ARE->getLocStart();
     range = ARE->getSourceRange();    
     os << "stack memory allocated by call to alloca() on line "
-       << SM.getInstantiationLineNumber(L);
+       << SM.getExpansionLineNumber(L);
   }
   else if (const BlockDataRegion *BR = dyn_cast<BlockDataRegion>(R)) {
     const BlockDecl *BD = BR->getCodeRegion()->getDecl();
     SourceLocation L = BD->getLocStart();
     range = BD->getSourceRange();
     os << "stack-allocated block declared on line "
-       << SM.getInstantiationLineNumber(L);
+       << SM.getExpansionLineNumber(L);
   }
   else if (const VarRegion *VR = dyn_cast<VarRegion>(R)) {
     os << "stack memory associated with local variable '"

Modified: cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/BugReporter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/BugReporter.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/BugReporter.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/BugReporter.cpp Mon Jul 25 20:36:54 2011
@@ -213,7 +213,7 @@
 
   if (Loc.asStmt())
     os << "Execution continues on line "
-       << getSourceManager().getInstantiationLineNumber(Loc.asLocation())
+       << getSourceManager().getExpansionLineNumber(Loc.asLocation())
        << '.';
   else {
     os << "Execution jumps to the end of the ";
@@ -560,7 +560,7 @@
           const PathDiagnosticLocation &End = PDB.getEnclosingStmtLocation(S);
 
           os << "Control jumps to line "
-          << End.asLocation().getInstantiationLineNumber();
+          << End.asLocation().getExpansionLineNumber();
           PD.push_front(new PathDiagnosticControlFlowPiece(Start, End,
                                                            os.str()));
           break;
@@ -578,11 +578,11 @@
               default:
                 os << "No cases match in the switch statement. "
                 "Control jumps to line "
-                << End.asLocation().getInstantiationLineNumber();
+                << End.asLocation().getExpansionLineNumber();
                 break;
               case Stmt::DefaultStmtClass:
                 os << "Control jumps to the 'default' case at line "
-                << End.asLocation().getInstantiationLineNumber();
+                << End.asLocation().getExpansionLineNumber();
                 break;
 
               case Stmt::CaseStmtClass: {
@@ -609,7 +609,7 @@
                   os << LHS->EvaluateAsInt(PDB.getASTContext());
 
                 os << ":'  at line "
-                << End.asLocation().getInstantiationLineNumber();
+                << End.asLocation().getExpansionLineNumber();
                 break;
               }
             }
@@ -974,15 +974,15 @@
   SourceRange ContaineeR = Containee.asRange();
 
   SourceManager &SM = PDB.getSourceManager();
-  SourceLocation ContainerRBeg = SM.getInstantiationLoc(ContainerR.getBegin());
-  SourceLocation ContainerREnd = SM.getInstantiationLoc(ContainerR.getEnd());
-  SourceLocation ContaineeRBeg = SM.getInstantiationLoc(ContaineeR.getBegin());
-  SourceLocation ContaineeREnd = SM.getInstantiationLoc(ContaineeR.getEnd());
-
-  unsigned ContainerBegLine = SM.getInstantiationLineNumber(ContainerRBeg);
-  unsigned ContainerEndLine = SM.getInstantiationLineNumber(ContainerREnd);
-  unsigned ContaineeBegLine = SM.getInstantiationLineNumber(ContaineeRBeg);
-  unsigned ContaineeEndLine = SM.getInstantiationLineNumber(ContaineeREnd);
+  SourceLocation ContainerRBeg = SM.getExpansionLoc(ContainerR.getBegin());
+  SourceLocation ContainerREnd = SM.getExpansionLoc(ContainerR.getEnd());
+  SourceLocation ContaineeRBeg = SM.getExpansionLoc(ContaineeR.getBegin());
+  SourceLocation ContaineeREnd = SM.getExpansionLoc(ContaineeR.getEnd());
+
+  unsigned ContainerBegLine = SM.getExpansionLineNumber(ContainerRBeg);
+  unsigned ContainerEndLine = SM.getExpansionLineNumber(ContainerREnd);
+  unsigned ContaineeBegLine = SM.getExpansionLineNumber(ContaineeRBeg);
+  unsigned ContaineeEndLine = SM.getExpansionLineNumber(ContaineeREnd);
 
   assert(ContainerBegLine <= ContainerEndLine);
   assert(ContaineeBegLine <= ContaineeEndLine);
@@ -990,11 +990,11 @@
   return (ContainerBegLine <= ContaineeBegLine &&
           ContainerEndLine >= ContaineeEndLine &&
           (ContainerBegLine != ContaineeBegLine ||
-           SM.getInstantiationColumnNumber(ContainerRBeg) <=
-           SM.getInstantiationColumnNumber(ContaineeRBeg)) &&
+           SM.getExpansionColumnNumber(ContainerRBeg) <=
+           SM.getExpansionColumnNumber(ContaineeRBeg)) &&
           (ContainerEndLine != ContaineeEndLine ||
-           SM.getInstantiationColumnNumber(ContainerREnd) >=
-           SM.getInstantiationColumnNumber(ContainerREnd)));
+           SM.getExpansionColumnNumber(ContainerREnd) >=
+           SM.getExpansionColumnNumber(ContainerREnd)));
 }
 
 void EdgeBuilder::rawAddEdge(PathDiagnosticLocation NewLoc) {
@@ -1010,8 +1010,8 @@
     return;
 
   // FIXME: Ignore intra-macro edges for now.
-  if (NewLocClean.asLocation().getInstantiationLoc() ==
-      PrevLocClean.asLocation().getInstantiationLoc())
+  if (NewLocClean.asLocation().getExpansionLoc() ==
+      PrevLocClean.asLocation().getExpansionLoc())
     return;
 
   PD.push_front(new PathDiagnosticControlFlowPiece(NewLocClean, PrevLocClean));
@@ -1495,7 +1495,7 @@
     // Determine the instantiation location, which is the location we group
     // related PathDiagnosticPieces.
     SourceLocation InstantiationLoc = Loc.isMacroID() ?
-                                      SM.getInstantiationLoc(Loc) :
+                                      SM.getExpansionLoc(Loc) :
                                       SourceLocation();
 
     if (Loc.isFileID()) {
@@ -1517,7 +1517,7 @@
     PathDiagnosticMacroPiece *MacroGroup = 0;
 
     SourceLocation ParentInstantiationLoc = InstantiationLoc.isMacroID() ?
-                                          SM.getInstantiationLoc(Loc) :
+                                          SM.getExpansionLoc(Loc) :
                                           SourceLocation();
 
     // Walk the entire macro stack.

Modified: cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/CFRefCount.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/CFRefCount.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/CFRefCount.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/CFRefCount.cpp Mon Jul 25 20:36:54 2011
@@ -2480,7 +2480,7 @@
   Description.clear();
   llvm::raw_string_ostream os(Description);
   SourceManager& SMgr = Eng.getContext().getSourceManager();
-  unsigned AllocLine = SMgr.getInstantiationLineNumber(AllocSite);
+  unsigned AllocLine = SMgr.getExpansionLineNumber(AllocSite);
   os << "Potential leak ";
   if (tf.isGCEnabled()) {
     os << "(when using garbage collection) ";

Modified: cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/ExprEngine.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/ExprEngine.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/ExprEngine.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/ExprEngine.cpp Mon Jul 25 20:36:54 2011
@@ -3099,9 +3099,9 @@
 
           if (SLoc.isFileID()) {
             Out << "\\lline="
-              << GraphPrintSourceManager->getInstantiationLineNumber(SLoc)
+              << GraphPrintSourceManager->getExpansionLineNumber(SLoc)
               << " col="
-              << GraphPrintSourceManager->getInstantiationColumnNumber(SLoc)
+              << GraphPrintSourceManager->getExpansionColumnNumber(SLoc)
               << "\\l";
           }
 
@@ -3152,9 +3152,9 @@
 
           if (SLoc.isFileID()) {
             Out << "\\lline="
-              << GraphPrintSourceManager->getInstantiationLineNumber(SLoc)
+              << GraphPrintSourceManager->getExpansionLineNumber(SLoc)
               << " col="
-              << GraphPrintSourceManager->getInstantiationColumnNumber(SLoc);
+              << GraphPrintSourceManager->getExpansionColumnNumber(SLoc);
           }
 
           if (isa<SwitchStmt>(T)) {

Modified: cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp Mon Jul 25 20:36:54 2011
@@ -143,7 +143,7 @@
 
   // Verify that the entire path is from the same FileID.
   for (PathDiagnostic::const_iterator I = D.begin(), E = D.end(); I != E; ++I) {
-    FullSourceLoc L = I->getLocation().asLocation().getInstantiationLoc();
+    FullSourceLoc L = I->getLocation().asLocation().getExpansionLoc();
 
     if (FID.isInvalid()) {
       FID = SMgr.getFileID(L);
@@ -154,12 +154,12 @@
     for (PathDiagnosticPiece::range_iterator RI=I->ranges_begin(),
                                              RE=I->ranges_end(); RI!=RE; ++RI) {
 
-      SourceLocation L = SMgr.getInstantiationLoc(RI->getBegin());
+      SourceLocation L = SMgr.getExpansionLoc(RI->getBegin());
 
       if (!L.isFileID() || SMgr.getFileID(L) != FID)
         return; // FIXME: Emit a warning?
 
-      L = SMgr.getInstantiationLoc(RI->getEnd());
+      L = SMgr.getExpansionLoc(RI->getEnd());
 
       if (!L.isFileID() || SMgr.getFileID(L) != FID)
         return; // FIXME: Emit a warning?
@@ -221,9 +221,9 @@
       << html::EscapeText(Entry->getName())
       << "</td></tr>\n<tr><td class=\"rowname\">Location:</td><td>"
          "<a href=\"#EndPath\">line "
-      << (*D.rbegin()).getLocation().asLocation().getInstantiationLineNumber()
+      << (*D.rbegin()).getLocation().asLocation().getExpansionLineNumber()
       << ", column "
-      << (*D.rbegin()).getLocation().asLocation().getInstantiationColumnNumber()
+      << (*D.rbegin()).getLocation().asLocation().getExpansionColumnNumber()
       << "</a></td></tr>\n"
          "<tr><td class=\"rowname\">Description:</td><td>"
       << D.getDescription() << "</td></tr>\n";
@@ -261,7 +261,7 @@
     os << "\n<!-- BUGFILE " << DirName << Entry->getName() << " -->\n";
 
     os << "\n<!-- BUGLINE "
-       << D.back()->getLocation().asLocation().getInstantiationLineNumber()
+       << D.back()->getLocation().asLocation().getExpansionLineNumber()
        << " -->\n";
 
     os << "\n<!-- BUGPATHLENGTH " << D.size() << " -->\n";
@@ -324,7 +324,7 @@
 
   SourceManager &SM = R.getSourceMgr();
   assert(&Pos.getManager() == &SM && "SourceManagers are different!");
-  std::pair<FileID, unsigned> LPosInfo = SM.getDecomposedInstantiationLoc(Pos);
+  std::pair<FileID, unsigned> LPosInfo = SM.getDecomposedExpansionLoc(Pos);
 
   if (LPosInfo.first != BugFileID)
     return;
@@ -335,7 +335,7 @@
   // Compute the column number.  Rewind from the current position to the start
   // of the line.
   unsigned ColNo = SM.getColumnNumber(LPosInfo.first, LPosInfo.second);
-  const char *TokInstantiationPtr =Pos.getInstantiationLoc().getCharacterData();
+  const char *TokInstantiationPtr =Pos.getExpansionLoc().getCharacterData();
   const char *LineStart = TokInstantiationPtr-ColNo;
 
   // Compute LineEnd.
@@ -441,7 +441,7 @@
 
     // Get the name of the macro by relexing it.
     {
-      FullSourceLoc L = MP->getLocation().asLocation().getInstantiationLoc();
+      FullSourceLoc L = MP->getLocation().asLocation().getExpansionLoc();
       assert(L.isFileID());
       StringRef BufferInfo = L.getBufferData();
       const char* MacroName = L.getDecomposedLoc().second + BufferInfo.data();
@@ -549,11 +549,11 @@
   SourceManager &SM = R.getSourceMgr();
   const LangOptions &LangOpts = R.getLangOpts();
 
-  SourceLocation InstantiationStart = SM.getInstantiationLoc(Range.getBegin());
-  unsigned StartLineNo = SM.getInstantiationLineNumber(InstantiationStart);
+  SourceLocation InstantiationStart = SM.getExpansionLoc(Range.getBegin());
+  unsigned StartLineNo = SM.getExpansionLineNumber(InstantiationStart);
 
-  SourceLocation InstantiationEnd = SM.getInstantiationLoc(Range.getEnd());
-  unsigned EndLineNo = SM.getInstantiationLineNumber(InstantiationEnd);
+  SourceLocation InstantiationEnd = SM.getExpansionLoc(Range.getEnd());
+  unsigned EndLineNo = SM.getExpansionLineNumber(InstantiationEnd);
 
   if (EndLineNo < StartLineNo)
     return;
@@ -563,7 +563,7 @@
     return;
 
   // Compute the column number of the end.
-  unsigned EndColNo = SM.getInstantiationColumnNumber(InstantiationEnd);
+  unsigned EndColNo = SM.getExpansionColumnNumber(InstantiationEnd);
   unsigned OldEndColNo = EndColNo;
 
   if (EndColNo) {

Modified: cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp Mon Jul 25 20:36:54 2011
@@ -109,7 +109,7 @@
 static void AddFID(FIDMap &FIDs, SmallVectorImpl<FileID> &V,
                    const SourceManager* SM, SourceLocation L) {
 
-  FileID FID = SM->getFileID(SM->getInstantiationLoc(L));
+  FileID FID = SM->getFileID(SM->getExpansionLoc(L));
   FIDMap::iterator I = FIDs.find(FID);
   if (I != FIDs.end()) return;
   FIDs[FID] = V.size();
@@ -118,7 +118,7 @@
 
 static unsigned GetFID(const FIDMap& FIDs, const SourceManager &SM,
                        SourceLocation L) {
-  FileID FID = SM.getFileID(SM.getInstantiationLoc(L));
+  FileID FID = SM.getFileID(SM.getExpansionLoc(L));
   FIDMap::const_iterator I = FIDs.find(FID);
   assert(I != FIDs.end());
   return I->second;
@@ -134,7 +134,7 @@
                          SourceLocation L, const FIDMap &FM,
                          unsigned indent, bool extend = false) {
 
-  FullSourceLoc Loc(SM.getInstantiationLoc(L), const_cast<SourceManager&>(SM));
+  FullSourceLoc Loc(SM.getExpansionLoc(L), const_cast<SourceManager&>(SM));
 
   // Add in the length of the token, so that we cover multi-char tokens.
   unsigned offset =
@@ -142,9 +142,9 @@
 
   Indent(o, indent) << "<dict>\n";
   Indent(o, indent) << " <key>line</key><integer>"
-                    << Loc.getInstantiationLineNumber() << "</integer>\n";
+                    << Loc.getExpansionLineNumber() << "</integer>\n";
   Indent(o, indent) << " <key>col</key><integer>"
-                    << Loc.getInstantiationColumnNumber() + offset << "</integer>\n";
+                    << Loc.getExpansionColumnNumber() + offset << "</integer>\n";
   Indent(o, indent) << " <key>file</key><integer>"
                     << GetFID(FM, SM, Loc) << "</integer>\n";
   Indent(o, indent) << "</dict>\n";

Modified: cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp (original)
+++ cfe/branches/exception-handling-rewrite/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp Mon Jul 25 20:36:54 2011
@@ -267,7 +267,7 @@
   // Don't run the actions on declarations in header files unless
   // otherwise specified.
   SourceManager &SM = Ctx->getSourceManager();
-  SourceLocation SL = SM.getInstantiationLoc(D->getLocation());
+  SourceLocation SL = SM.getExpansionLoc(D->getLocation());
   if (!Opts.AnalyzeAll && !SM.isFromMainFile(SL))
     return;
 

Modified: cfe/branches/exception-handling-rewrite/test/Index/blocks.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/test/Index/blocks.c?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/test/Index/blocks.c (original)
+++ cfe/branches/exception-handling-rewrite/test/Index/blocks.c Mon Jul 25 20:36:54 2011
@@ -26,7 +26,7 @@
 // CHECK: blocks.c:9:37: UnexposedExpr= Extent=[9:37 - 9:55]
 // CHECK: blocks.c:9:37: UnexposedExpr=x:4:19 Extent=[9:37 - 9:51]
 // CHECK: blocks.c:9:38: TypeRef=int_t:3:13 Extent=[9:38 - 9:43]
-// CHECK: blocks.c:9:50: MemberRefExpr=x:4:19 Extent=[9:45 - 9:51]
+// CHECK: blocks.c:9:50: MemberRefExpr=x:4:19 SingleRefName=[9:50 - 9:51] RefName=[9:50 - 9:51] Extent=[9:45 - 9:51]
 // CHECK: blocks.c:9:45: DeclRefExpr=foo:9:23 Extent=[9:45 - 9:48]
 // CHECK: blocks.c:9:54: DeclRefExpr=i:8:11 Extent=[9:54 - 9:55]
 // CHECK: blocks.c:9:59: UnexposedExpr= Extent=[9:59 - 9:64]

Modified: cfe/branches/exception-handling-rewrite/test/Index/index-templates.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/test/Index/index-templates.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/test/Index/index-templates.cpp (original)
+++ cfe/branches/exception-handling-rewrite/test/Index/index-templates.cpp Mon Jul 25 20:36:54 2011
@@ -157,11 +157,11 @@
 // CHECK-LOAD: index-templates.cpp:53:6: FunctionDecl=template_exprs:53:6 (Definition)
 // CHECK-LOAD: index-templates.cpp:54:3: CallExpr=f:4:6 Extent=[54:3 - 54:68]
 // CHECK-LOAD: index-templates.cpp:54:3: UnexposedExpr=f:4:6 Extent=[54:3 - 54:35]
-// CHECK-LOAD: index-templates.cpp:54:3: DeclRefExpr=f:4:6 Extent=[54:3 - 54:35]
+// CHECK-LOAD: index-templates.cpp:54:3: DeclRefExpr=f:4:6 RefName=[54:3 - 54:4] RefName=[54:4 - 54:35] Extent=[54:3 - 54:35]
 // CHECK-LOAD: index-templates.cpp:54:5: TypeRef=Unsigned:42:18 Extent=[54:5 - 54:13]
 // CHECK-LOAD: index-templates.cpp:54:15: DeclRefExpr=OneDimension:35:16 Extent=[54:15 - 54:27]
 // CHECK-LOAD: index-templates.cpp:54:29: TemplateRef=array:37:8 Extent=[54:29 - 54:34]
-// CHECK-LOAD: index-templates.cpp:55:8: MemberRefExpr=getAs:50:26 Extent=[55:3 - 55:23]
+// CHECK-LOAD: index-templates.cpp:55:8: MemberRefExpr=getAs:50:26 SingleRefName=[55:8 - 55:13] RefName=[55:8 - 55:13] Extent=[55:3 - 55:23]
 // CHECK-LOAD: index-templates.cpp:55:3: CallExpr=Z4:49:8 Extent=[55:3 - 55:7]
 // CHECK-LOAD: index-templates.cpp:55:14: TypeRef=Unsigned:42:18 Extent=[55:14 - 55:22]
 // CHECK-LOAD: index-templates.cpp:68:6: FunctionTemplate=unresolved_exprs:68:6 (Definition)

Modified: cfe/branches/exception-handling-rewrite/test/Index/recursive-cxx-member-calls.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/test/Index/recursive-cxx-member-calls.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/test/Index/recursive-cxx-member-calls.cpp (original)
+++ cfe/branches/exception-handling-rewrite/test/Index/recursive-cxx-member-calls.cpp Mon Jul 25 20:36:54 2011
@@ -1699,7 +1699,7 @@
 // CHECK: 53:12: UnexposedExpr= Extent=[53:12 - 53:35]
 // CHECK: 53:12: UnexposedExpr=Length:44:10 Extent=[53:12 - 53:18]
 // CHECK: 53:12: MemberRefExpr=Length:44:10 Extent=[53:12 - 53:18]
-// CHECK: 53:29: MemberRefExpr=Length:44:10 Extent=[53:22 - 53:35]
+// CHECK: 53:29: MemberRefExpr=Length:44:10 SingleRefName=[53:29 - 53:35] RefName=[53:29 - 53:35] Extent=[53:22 - 53:35]
 // CHECK: 53:22: DeclRefExpr=Prefix:52:29 Extent=[53:22 - 53:28]
 // CHECK: 54:11: UnexposedExpr= Extent=[54:11 - 54:56]
 // CHECK: 54:11: CallExpr=memcmp:7:7 Extent=[54:11 - 54:51]
@@ -1708,9 +1708,9 @@
 // CHECK: 54:18: UnexposedExpr=Data:43:15 Extent=[54:18 - 54:22]
 // CHECK: 54:18: MemberRefExpr=Data:43:15 Extent=[54:18 - 54:22]
 // CHECK: 54:24: UnexposedExpr=Data:43:15 Extent=[54:24 - 54:35]
-// CHECK: 54:31: MemberRefExpr=Data:43:15 Extent=[54:24 - 54:35]
+// CHECK: 54:31: MemberRefExpr=Data:43:15 SingleRefName=[54:31 - 54:35] RefName=[54:31 - 54:35] Extent=[54:24 - 54:35]
 // CHECK: 54:24: DeclRefExpr=Prefix:52:29 Extent=[54:24 - 54:30]
-// CHECK: 54:44: MemberRefExpr=Length:44:10 Extent=[54:37 - 54:50]
+// CHECK: 54:44: MemberRefExpr=Length:44:10 SingleRefName=[54:44 - 54:50] RefName=[54:44 - 54:50] Extent=[54:37 - 54:50]
 // CHECK: 54:37: DeclRefExpr=Prefix:52:29 Extent=[54:37 - 54:43]
 // CHECK: 54:55: UnexposedExpr= Extent=[54:55 - 54:56]
 // CHECK: 56:8: CXXMethod=endswith:56:8 (Definition) Extent=[56:3 - 59:4]
@@ -1722,7 +1722,7 @@
 // CHECK: 57:12: UnexposedExpr= Extent=[57:12 - 57:35]
 // CHECK: 57:12: UnexposedExpr=Length:44:10 Extent=[57:12 - 57:18]
 // CHECK: 57:12: MemberRefExpr=Length:44:10 Extent=[57:12 - 57:18]
-// CHECK: 57:29: MemberRefExpr=Length:44:10 Extent=[57:22 - 57:35]
+// CHECK: 57:29: MemberRefExpr=Length:44:10 SingleRefName=[57:29 - 57:35] RefName=[57:29 - 57:35] Extent=[57:22 - 57:35]
 // CHECK: 57:22: DeclRefExpr=Suffix:56:27 Extent=[57:22 - 57:28]
 // CHECK: 58:7: UnexposedExpr= Extent=[58:7 - 58:69]
 // CHECK: 58:7: CallExpr=memcmp:7:7 Extent=[58:7 - 58:64]
@@ -1732,12 +1732,12 @@
 // CHECK: 58:14: UnexposedExpr= Extent=[58:14 - 58:35]
 // CHECK: 58:14: CallExpr=end:50:12 Extent=[58:14 - 58:19]
 // CHECK: 58:14: MemberRefExpr=end:50:12 Extent=[58:14 - 58:17]
-// CHECK: 58:29: MemberRefExpr=Length:44:10 Extent=[58:22 - 58:35]
+// CHECK: 58:29: MemberRefExpr=Length:44:10 SingleRefName=[58:29 - 58:35] RefName=[58:29 - 58:35] Extent=[58:22 - 58:35]
 // CHECK: 58:22: DeclRefExpr=Suffix:56:27 Extent=[58:22 - 58:28]
 // CHECK: 58:37: UnexposedExpr=Data:43:15 Extent=[58:37 - 58:48]
-// CHECK: 58:44: MemberRefExpr=Data:43:15 Extent=[58:37 - 58:48]
+// CHECK: 58:44: MemberRefExpr=Data:43:15 SingleRefName=[58:44 - 58:48] RefName=[58:44 - 58:48] Extent=[58:37 - 58:48]
 // CHECK: 58:37: DeclRefExpr=Suffix:56:27 Extent=[58:37 - 58:43]
-// CHECK: 58:57: MemberRefExpr=Length:44:10 Extent=[58:50 - 58:63]
+// CHECK: 58:57: MemberRefExpr=Length:44:10 SingleRefName=[58:57 - 58:63] RefName=[58:57 - 58:63] Extent=[58:50 - 58:63]
 // CHECK: 58:50: DeclRefExpr=Suffix:56:27 Extent=[58:50 - 58:56]
 // CHECK: 58:68: UnexposedExpr= Extent=[58:68 - 58:69]
 // CHECK: 60:13: CXXMethod=substr:60:13 (Definition) Extent=[60:3 - 62:4]
@@ -1776,7 +1776,7 @@
 // CHECK: 69:18: TemplateRef=pair:4:44 Extent=[69:18 - 69:22]
 // CHECK: 69:25: TypeRef=class clang::IdentifierInfo:66:7 Extent=[69:25 - 69:39]
 // CHECK: 70:5: UnexposedStmt= Extent=[70:5 - 70:47]
-// CHECK: 70:41: MemberRefExpr=second:4:55 Extent=[70:12 - 70:47]
+// CHECK: 70:41: MemberRefExpr=second:4:55 SingleRefName=[70:41 - 70:47] RefName=[70:41 - 70:47] Extent=[70:12 - 70:47]
 // CHECK: 70:12: UnexposedExpr= Extent=[70:12 - 70:39]
 // CHECK: 70:13: UnexposedExpr= Extent=[70:13 - 70:38]
 // CHECK: 70:20: TypeRef=actualtype:69:54 Extent=[70:20 - 70:30]
@@ -1791,7 +1791,7 @@
 // CHECK: 74:17: VarDecl=p:74:17 (Definition) Extent=[74:5 - 74:60]
 // CHECK: 74:21: UnexposedExpr= Extent=[74:21 - 74:60]
 // CHECK: 74:21: UnexposedExpr=second:4:55 Extent=[74:21 - 74:56]
-// CHECK: 74:50: MemberRefExpr=second:4:55 Extent=[74:21 - 74:56]
+// CHECK: 74:50: MemberRefExpr=second:4:55 SingleRefName=[74:50 - 74:56] RefName=[74:50 - 74:56] Extent=[74:21 - 74:56]
 // CHECK: 74:21: UnexposedExpr= Extent=[74:21 - 74:48]
 // CHECK: 74:22: UnexposedExpr= Extent=[74:22 - 74:47]
 // CHECK: 74:29: TypeRef=actualtype:73:54 Extent=[74:29 - 74:39]
@@ -1875,12 +1875,12 @@
 // CHECK: 101:30: CallExpr= Extent=[101:30 - 101:45]
 // CHECK: 101:30: UnexposedExpr=getName:77:19 Extent=[101:30 - 101:45]
 // CHECK: 101:30: CallExpr=getName:77:19 Extent=[101:30 - 101:45]
-// CHECK: 101:36: MemberRefExpr=getName:77:19 Extent=[101:30 - 101:43]
+// CHECK: 101:36: MemberRefExpr=getName:77:19 SingleRefName=[101:36 - 101:43] RefName=[101:36 - 101:43] Extent=[101:30 - 101:43]
 // CHECK: 101:30: DeclRefExpr=Name:100:67 Extent=[101:30 - 101:34]
 // CHECK: 102:3: UnexposedStmt= Extent=[102:3 - 103:55]
 // CHECK: 102:7: UnexposedExpr= Extent=[102:7 - 102:59]
 // CHECK: 102:7: CallExpr=startswith:52:8 Extent=[102:7 - 102:32]
-// CHECK: 102:16: MemberRefExpr=startswith:52:8 Extent=[102:7 - 102:26]
+// CHECK: 102:16: MemberRefExpr=startswith:52:8 SingleRefName=[102:16 - 102:26] RefName=[102:16 - 102:26] Extent=[102:7 - 102:26]
 // CHECK: 102:7: UnexposedExpr=AttrName:101:19 Extent=[102:7 - 102:15]
 // CHECK: 102:7: DeclRefExpr=AttrName:101:19 Extent=[102:7 - 102:15]
 // CHECK: 102:27: CallExpr= Extent=[102:27 - 102:31]
@@ -1890,7 +1890,7 @@
 // CHECK: 102:27: UnexposedExpr= Extent=[102:27 - 102:31]
 // CHECK: 102:27: UnexposedExpr= Extent=[102:27 - 102:31]
 // CHECK: 102:36: CallExpr=endswith:56:8 Extent=[102:36 - 102:59]
-// CHECK: 102:45: MemberRefExpr=endswith:56:8 Extent=[102:36 - 102:53]
+// CHECK: 102:45: MemberRefExpr=endswith:56:8 SingleRefName=[102:45 - 102:53] RefName=[102:45 - 102:53] Extent=[102:36 - 102:53]
 // CHECK: 102:36: UnexposedExpr=AttrName:101:19 Extent=[102:36 - 102:44]
 // CHECK: 102:36: DeclRefExpr=AttrName:101:19 Extent=[102:36 - 102:44]
 // CHECK: 102:54: CallExpr= Extent=[102:54 - 102:58]
@@ -1905,180 +1905,180 @@
 // CHECK: 103:14: DeclRefExpr=operator=:38:7
 // CHECK: 103:16: UnexposedExpr=substr:60:13 Extent=[103:16 - 103:55]
 // CHECK: 103:16: CallExpr=substr:60:13 Extent=[103:16 - 103:55]
-// CHECK: 103:25: MemberRefExpr=substr:60:13 Extent=[103:16 - 103:31]
+// CHECK: 103:25: MemberRefExpr=substr:60:13 SingleRefName=[103:25 - 103:31] RefName=[103:25 - 103:31] Extent=[103:16 - 103:31]
 // CHECK: 103:16: UnexposedExpr=AttrName:101:19 Extent=[103:16 - 103:24]
 // CHECK: 103:16: DeclRefExpr=AttrName:101:19 Extent=[103:16 - 103:24]
 // CHECK: 103:32: UnexposedExpr= Extent=[103:32 - 103:33]
 // CHECK: 103:32: UnexposedExpr= Extent=[103:32 - 103:33]
 // CHECK: 103:35: UnexposedExpr= Extent=[103:35 - 103:54]
 // CHECK: 103:35: CallExpr=size:51:10 Extent=[103:35 - 103:50]
-// CHECK: 103:44: MemberRefExpr=size:51:10 Extent=[103:35 - 103:48]
+// CHECK: 103:44: MemberRefExpr=size:51:10 SingleRefName=[103:44 - 103:48] RefName=[103:44 - 103:48] Extent=[103:35 - 103:48]
 // CHECK: 103:35: UnexposedExpr=AttrName:101:19 Extent=[103:35 - 103:43]
 // CHECK: 103:35: DeclRefExpr=AttrName:101:19 Extent=[103:35 - 103:43]
 // CHECK: 103:53: UnexposedExpr= Extent=[103:53 - 103:54]
 // CHECK: 103:53: UnexposedExpr= Extent=[103:53 - 103:54]
 // CHECK: 105:3: UnexposedStmt= Extent=[105:3 - 185:31]
 // CHECK: 105:10: CallExpr=Default:92:5 Extent=[105:10 - 185:31]
-// CHECK: 185:6: MemberRefExpr=Default:92:5 Extent=[105:10 - 185:13]
+// CHECK: 185:6: MemberRefExpr=Default:92:5 SingleRefName=[185:6 - 185:13] RefName=[185:6 - 185:13] Extent=[105:10 - 185:13]
 // CHECK: 105:10: UnexposedExpr=Case:88:42 Extent=[105:10 - 184:33]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 184:33]
-// CHECK: 184:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 184:10]
+// CHECK: 184:6: MemberRefExpr=Case:88:42 SingleRefName=[184:6 - 184:10] RefName=[184:6 - 184:10] Extent=[105:10 - 184:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 183:37]
-// CHECK: 183:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 183:10]
+// CHECK: 183:6: MemberRefExpr=Case:88:42 SingleRefName=[183:6 - 183:10] RefName=[183:6 - 183:10] Extent=[105:10 - 183:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 182:37]
-// CHECK: 182:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 182:10]
+// CHECK: 182:6: MemberRefExpr=Case:88:42 SingleRefName=[182:6 - 182:10] RefName=[182:6 - 182:10] Extent=[105:10 - 182:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 181:35]
-// CHECK: 181:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 181:10]
+// CHECK: 181:6: MemberRefExpr=Case:88:42 SingleRefName=[181:6 - 181:10] RefName=[181:6 - 181:10] Extent=[105:10 - 181:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 180:31]
-// CHECK: 180:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 180:10]
+// CHECK: 180:6: MemberRefExpr=Case:88:42 SingleRefName=[180:6 - 180:10] RefName=[180:6 - 180:10] Extent=[105:10 - 180:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 179:31]
-// CHECK: 179:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 179:10]
+// CHECK: 179:6: MemberRefExpr=Case:88:42 SingleRefName=[179:6 - 179:10] RefName=[179:6 - 179:10] Extent=[105:10 - 179:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 178:35]
-// CHECK: 178:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 178:10]
+// CHECK: 178:6: MemberRefExpr=Case:88:42 SingleRefName=[178:6 - 178:10] RefName=[178:6 - 178:10] Extent=[105:10 - 178:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 177:63]
-// CHECK: 177:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 177:10]
+// CHECK: 177:6: MemberRefExpr=Case:88:42 SingleRefName=[177:6 - 177:10] RefName=[177:6 - 177:10] Extent=[105:10 - 177:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 176:45]
-// CHECK: 176:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 176:10]
+// CHECK: 176:6: MemberRefExpr=Case:88:42 SingleRefName=[176:6 - 176:10] RefName=[176:6 - 176:10] Extent=[105:10 - 176:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 175:51]
-// CHECK: 175:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 175:10]
+// CHECK: 175:6: MemberRefExpr=Case:88:42 SingleRefName=[175:6 - 175:10] RefName=[175:6 - 175:10] Extent=[105:10 - 175:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 174:49]
-// CHECK: 174:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 174:10]
+// CHECK: 174:6: MemberRefExpr=Case:88:42 SingleRefName=[174:6 - 174:10] RefName=[174:6 - 174:10] Extent=[105:10 - 174:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 173:49]
-// CHECK: 173:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 173:10]
+// CHECK: 173:6: MemberRefExpr=Case:88:42 SingleRefName=[173:6 - 173:10] RefName=[173:6 - 173:10] Extent=[105:10 - 173:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 172:53]
-// CHECK: 172:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 172:10]
+// CHECK: 172:6: MemberRefExpr=Case:88:42 SingleRefName=[172:6 - 172:10] RefName=[172:6 - 172:10] Extent=[105:10 - 172:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 171:57]
-// CHECK: 171:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 171:10]
+// CHECK: 171:6: MemberRefExpr=Case:88:42 SingleRefName=[171:6 - 171:10] RefName=[171:6 - 171:10] Extent=[105:10 - 171:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 170:65]
-// CHECK: 170:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 170:10]
+// CHECK: 170:6: MemberRefExpr=Case:88:42 SingleRefName=[170:6 - 170:10] RefName=[170:6 - 170:10] Extent=[105:10 - 170:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 169:57]
-// CHECK: 169:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 169:10]
+// CHECK: 169:6: MemberRefExpr=Case:88:42 SingleRefName=[169:6 - 169:10] RefName=[169:6 - 169:10] Extent=[105:10 - 169:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 168:65]
-// CHECK: 168:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 168:10]
+// CHECK: 168:6: MemberRefExpr=Case:88:42 SingleRefName=[168:6 - 168:10] RefName=[168:6 - 168:10] Extent=[105:10 - 168:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 167:55]
-// CHECK: 167:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 167:10]
+// CHECK: 167:6: MemberRefExpr=Case:88:42 SingleRefName=[167:6 - 167:10] RefName=[167:6 - 167:10] Extent=[105:10 - 167:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 166:55]
-// CHECK: 166:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 166:10]
+// CHECK: 166:6: MemberRefExpr=Case:88:42 SingleRefName=[166:6 - 166:10] RefName=[166:6 - 166:10] Extent=[105:10 - 166:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 165:53]
-// CHECK: 165:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 165:10]
+// CHECK: 165:6: MemberRefExpr=Case:88:42 SingleRefName=[165:6 - 165:10] RefName=[165:6 - 165:10] Extent=[105:10 - 165:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 164:53]
-// CHECK: 164:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 164:10]
+// CHECK: 164:6: MemberRefExpr=Case:88:42 SingleRefName=[164:6 - 164:10] RefName=[164:6 - 164:10] Extent=[105:10 - 164:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 163:49]
-// CHECK: 163:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 163:10]
+// CHECK: 163:6: MemberRefExpr=Case:88:42 SingleRefName=[163:6 - 163:10] RefName=[163:6 - 163:10] Extent=[105:10 - 163:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 162:47]
-// CHECK: 162:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 162:10]
+// CHECK: 162:6: MemberRefExpr=Case:88:42 SingleRefName=[162:6 - 162:10] RefName=[162:6 - 162:10] Extent=[105:10 - 162:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 161:45]
-// CHECK: 161:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 161:10]
+// CHECK: 161:6: MemberRefExpr=Case:88:42 SingleRefName=[161:6 - 161:10] RefName=[161:6 - 161:10] Extent=[105:10 - 161:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 160:45]
-// CHECK: 160:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 160:10]
+// CHECK: 160:6: MemberRefExpr=Case:88:42 SingleRefName=[160:6 - 160:10] RefName=[160:6 - 160:10] Extent=[105:10 - 160:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 159:45]
-// CHECK: 159:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 159:10]
+// CHECK: 159:6: MemberRefExpr=Case:88:42 SingleRefName=[159:6 - 159:10] RefName=[159:6 - 159:10] Extent=[105:10 - 159:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 158:45]
-// CHECK: 158:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 158:10]
+// CHECK: 158:6: MemberRefExpr=Case:88:42 SingleRefName=[158:6 - 158:10] RefName=[158:6 - 158:10] Extent=[105:10 - 158:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 157:43]
-// CHECK: 157:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 157:10]
+// CHECK: 157:6: MemberRefExpr=Case:88:42 SingleRefName=[157:6 - 157:10] RefName=[157:6 - 157:10] Extent=[105:10 - 157:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 156:41]
-// CHECK: 156:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 156:10]
+// CHECK: 156:6: MemberRefExpr=Case:88:42 SingleRefName=[156:6 - 156:10] RefName=[156:6 - 156:10] Extent=[105:10 - 156:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 155:41]
-// CHECK: 155:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 155:10]
+// CHECK: 155:6: MemberRefExpr=Case:88:42 SingleRefName=[155:6 - 155:10] RefName=[155:6 - 155:10] Extent=[105:10 - 155:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 154:41]
-// CHECK: 154:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 154:10]
+// CHECK: 154:6: MemberRefExpr=Case:88:42 SingleRefName=[154:6 - 154:10] RefName=[154:6 - 154:10] Extent=[105:10 - 154:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 153:37]
-// CHECK: 153:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 153:10]
+// CHECK: 153:6: MemberRefExpr=Case:88:42 SingleRefName=[153:6 - 153:10] RefName=[153:6 - 153:10] Extent=[105:10 - 153:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 152:41]
-// CHECK: 152:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 152:10]
+// CHECK: 152:6: MemberRefExpr=Case:88:42 SingleRefName=[152:6 - 152:10] RefName=[152:6 - 152:10] Extent=[105:10 - 152:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 151:39]
-// CHECK: 151:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 151:10]
+// CHECK: 151:6: MemberRefExpr=Case:88:42 SingleRefName=[151:6 - 151:10] RefName=[151:6 - 151:10] Extent=[105:10 - 151:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 150:39]
-// CHECK: 150:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 150:10]
+// CHECK: 150:6: MemberRefExpr=Case:88:42 SingleRefName=[150:6 - 150:10] RefName=[150:6 - 150:10] Extent=[105:10 - 150:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 149:39]
-// CHECK: 149:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 149:10]
+// CHECK: 149:6: MemberRefExpr=Case:88:42 SingleRefName=[149:6 - 149:10] RefName=[149:6 - 149:10] Extent=[105:10 - 149:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 148:39]
-// CHECK: 148:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 148:10]
+// CHECK: 148:6: MemberRefExpr=Case:88:42 SingleRefName=[148:6 - 148:10] RefName=[148:6 - 148:10] Extent=[105:10 - 148:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 147:39]
-// CHECK: 147:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 147:10]
+// CHECK: 147:6: MemberRefExpr=Case:88:42 SingleRefName=[147:6 - 147:10] RefName=[147:6 - 147:10] Extent=[105:10 - 147:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 146:39]
-// CHECK: 146:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 146:10]
+// CHECK: 146:6: MemberRefExpr=Case:88:42 SingleRefName=[146:6 - 146:10] RefName=[146:6 - 146:10] Extent=[105:10 - 146:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 145:41]
-// CHECK: 145:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 145:10]
+// CHECK: 145:6: MemberRefExpr=Case:88:42 SingleRefName=[145:6 - 145:10] RefName=[145:6 - 145:10] Extent=[105:10 - 145:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 144:37]
-// CHECK: 144:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 144:10]
+// CHECK: 144:6: MemberRefExpr=Case:88:42 SingleRefName=[144:6 - 144:10] RefName=[144:6 - 144:10] Extent=[105:10 - 144:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 143:37]
-// CHECK: 143:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 143:10]
+// CHECK: 143:6: MemberRefExpr=Case:88:42 SingleRefName=[143:6 - 143:10] RefName=[143:6 - 143:10] Extent=[105:10 - 143:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 142:35]
-// CHECK: 142:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 142:10]
+// CHECK: 142:6: MemberRefExpr=Case:88:42 SingleRefName=[142:6 - 142:10] RefName=[142:6 - 142:10] Extent=[105:10 - 142:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 141:35]
-// CHECK: 141:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 141:10]
+// CHECK: 141:6: MemberRefExpr=Case:88:42 SingleRefName=[141:6 - 141:10] RefName=[141:6 - 141:10] Extent=[105:10 - 141:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 140:35]
-// CHECK: 140:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 140:10]
+// CHECK: 140:6: MemberRefExpr=Case:88:42 SingleRefName=[140:6 - 140:10] RefName=[140:6 - 140:10] Extent=[105:10 - 140:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 139:35]
-// CHECK: 139:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 139:10]
+// CHECK: 139:6: MemberRefExpr=Case:88:42 SingleRefName=[139:6 - 139:10] RefName=[139:6 - 139:10] Extent=[105:10 - 139:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 138:35]
-// CHECK: 138:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 138:10]
+// CHECK: 138:6: MemberRefExpr=Case:88:42 SingleRefName=[138:6 - 138:10] RefName=[138:6 - 138:10] Extent=[105:10 - 138:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 137:55]
-// CHECK: 137:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 137:10]
+// CHECK: 137:6: MemberRefExpr=Case:88:42 SingleRefName=[137:6 - 137:10] RefName=[137:6 - 137:10] Extent=[105:10 - 137:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 136:35]
-// CHECK: 136:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 136:10]
+// CHECK: 136:6: MemberRefExpr=Case:88:42 SingleRefName=[136:6 - 136:10] RefName=[136:6 - 136:10] Extent=[105:10 - 136:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 135:35]
-// CHECK: 135:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 135:10]
+// CHECK: 135:6: MemberRefExpr=Case:88:42 SingleRefName=[135:6 - 135:10] RefName=[135:6 - 135:10] Extent=[105:10 - 135:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 134:35]
-// CHECK: 134:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 134:10]
+// CHECK: 134:6: MemberRefExpr=Case:88:42 SingleRefName=[134:6 - 134:10] RefName=[134:6 - 134:10] Extent=[105:10 - 134:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 133:35]
-// CHECK: 133:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 133:10]
+// CHECK: 133:6: MemberRefExpr=Case:88:42 SingleRefName=[133:6 - 133:10] RefName=[133:6 - 133:10] Extent=[105:10 - 133:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 132:33]
-// CHECK: 132:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 132:10]
+// CHECK: 132:6: MemberRefExpr=Case:88:42 SingleRefName=[132:6 - 132:10] RefName=[132:6 - 132:10] Extent=[105:10 - 132:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 131:33]
-// CHECK: 131:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 131:10]
+// CHECK: 131:6: MemberRefExpr=Case:88:42 SingleRefName=[131:6 - 131:10] RefName=[131:6 - 131:10] Extent=[105:10 - 131:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 130:33]
-// CHECK: 130:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 130:10]
+// CHECK: 130:6: MemberRefExpr=Case:88:42 SingleRefName=[130:6 - 130:10] RefName=[130:6 - 130:10] Extent=[105:10 - 130:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 129:33]
-// CHECK: 129:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 129:10]
+// CHECK: 129:6: MemberRefExpr=Case:88:42 SingleRefName=[129:6 - 129:10] RefName=[129:6 - 129:10] Extent=[105:10 - 129:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 128:33]
-// CHECK: 128:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 128:10]
+// CHECK: 128:6: MemberRefExpr=Case:88:42 SingleRefName=[128:6 - 128:10] RefName=[128:6 - 128:10] Extent=[105:10 - 128:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 127:33]
-// CHECK: 127:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 127:10]
+// CHECK: 127:6: MemberRefExpr=Case:88:42 SingleRefName=[127:6 - 127:10] RefName=[127:6 - 127:10] Extent=[105:10 - 127:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 126:33]
-// CHECK: 126:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 126:10]
+// CHECK: 126:6: MemberRefExpr=Case:88:42 SingleRefName=[126:6 - 126:10] RefName=[126:6 - 126:10] Extent=[105:10 - 126:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 125:29]
-// CHECK: 125:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 125:10]
+// CHECK: 125:6: MemberRefExpr=Case:88:42 SingleRefName=[125:6 - 125:10] RefName=[125:6 - 125:10] Extent=[105:10 - 125:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 124:33]
-// CHECK: 124:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 124:10]
+// CHECK: 124:6: MemberRefExpr=Case:88:42 SingleRefName=[124:6 - 124:10] RefName=[124:6 - 124:10] Extent=[105:10 - 124:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 123:33]
-// CHECK: 123:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 123:10]
+// CHECK: 123:6: MemberRefExpr=Case:88:42 SingleRefName=[123:6 - 123:10] RefName=[123:6 - 123:10] Extent=[105:10 - 123:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 122:31]
-// CHECK: 122:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 122:10]
+// CHECK: 122:6: MemberRefExpr=Case:88:42 SingleRefName=[122:6 - 122:10] RefName=[122:6 - 122:10] Extent=[105:10 - 122:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 121:31]
-// CHECK: 121:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 121:10]
+// CHECK: 121:6: MemberRefExpr=Case:88:42 SingleRefName=[121:6 - 121:10] RefName=[121:6 - 121:10] Extent=[105:10 - 121:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 120:31]
-// CHECK: 120:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 120:10]
+// CHECK: 120:6: MemberRefExpr=Case:88:42 SingleRefName=[120:6 - 120:10] RefName=[120:6 - 120:10] Extent=[105:10 - 120:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 119:31]
-// CHECK: 119:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 119:10]
+// CHECK: 119:6: MemberRefExpr=Case:88:42 SingleRefName=[119:6 - 119:10] RefName=[119:6 - 119:10] Extent=[105:10 - 119:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 118:31]
-// CHECK: 118:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 118:10]
+// CHECK: 118:6: MemberRefExpr=Case:88:42 SingleRefName=[118:6 - 118:10] RefName=[118:6 - 118:10] Extent=[105:10 - 118:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 117:31]
-// CHECK: 117:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 117:10]
+// CHECK: 117:6: MemberRefExpr=Case:88:42 SingleRefName=[117:6 - 117:10] RefName=[117:6 - 117:10] Extent=[105:10 - 117:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 116:31]
-// CHECK: 116:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 116:10]
+// CHECK: 116:6: MemberRefExpr=Case:88:42 SingleRefName=[116:6 - 116:10] RefName=[116:6 - 116:10] Extent=[105:10 - 116:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 115:29]
-// CHECK: 115:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 115:10]
+// CHECK: 115:6: MemberRefExpr=Case:88:42 SingleRefName=[115:6 - 115:10] RefName=[115:6 - 115:10] Extent=[105:10 - 115:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 114:29]
-// CHECK: 114:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 114:10]
+// CHECK: 114:6: MemberRefExpr=Case:88:42 SingleRefName=[114:6 - 114:10] RefName=[114:6 - 114:10] Extent=[105:10 - 114:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 113:29]
-// CHECK: 113:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 113:10]
+// CHECK: 113:6: MemberRefExpr=Case:88:42 SingleRefName=[113:6 - 113:10] RefName=[113:6 - 113:10] Extent=[105:10 - 113:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 112:31]
-// CHECK: 112:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 112:10]
+// CHECK: 112:6: MemberRefExpr=Case:88:42 SingleRefName=[112:6 - 112:10] RefName=[112:6 - 112:10] Extent=[105:10 - 112:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 111:29]
-// CHECK: 111:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 111:10]
+// CHECK: 111:6: MemberRefExpr=Case:88:42 SingleRefName=[111:6 - 111:10] RefName=[111:6 - 111:10] Extent=[105:10 - 111:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 110:27]
-// CHECK: 110:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 110:10]
+// CHECK: 110:6: MemberRefExpr=Case:88:42 SingleRefName=[110:6 - 110:10] RefName=[110:6 - 110:10] Extent=[105:10 - 110:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 109:27]
-// CHECK: 109:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 109:10]
+// CHECK: 109:6: MemberRefExpr=Case:88:42 SingleRefName=[109:6 - 109:10] RefName=[109:6 - 109:10] Extent=[105:10 - 109:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 108:27]
-// CHECK: 108:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 108:10]
+// CHECK: 108:6: MemberRefExpr=Case:88:42 SingleRefName=[108:6 - 108:10] RefName=[108:6 - 108:10] Extent=[105:10 - 108:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 107:33]
-// CHECK: 107:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 107:10]
+// CHECK: 107:6: MemberRefExpr=Case:88:42 SingleRefName=[107:6 - 107:10] RefName=[107:6 - 107:10] Extent=[105:10 - 107:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 106:27]
-// CHECK: 106:6: MemberRefExpr=Case:88:42 Extent=[105:10 - 106:10]
+// CHECK: 106:6: MemberRefExpr=Case:88:42 SingleRefName=[106:6 - 106:10] RefName=[106:6 - 106:10] Extent=[105:10 - 106:10]
 // CHECK: 105:10: UnexposedExpr=StringSwitch:87:12 Extent=[105:10 - 105:63]
 // CHECK: 105:16: TemplateRef=StringSwitch:83:47 Extent=[105:16 - 105:28]
 // CHECK: 105:10: CallExpr=StringSwitch:87:12 Extent=[105:10 - 105:62]

Modified: cfe/branches/exception-handling-rewrite/test/Index/recursive-member-access.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/test/Index/recursive-member-access.c?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/test/Index/recursive-member-access.c (original)
+++ cfe/branches/exception-handling-rewrite/test/Index/recursive-member-access.c Mon Jul 25 20:36:54 2011
@@ -133,124 +133,124 @@
 // CHECK: 6:29: TypeRef=struct rdar8650865:1:8 Extent=[6:29 - 6:40]
 // CHECK: 6:45: UnexposedStmt= Extent=[6:45 - 124:2]
 // CHECK: 7:3: UnexposedStmt= Extent=[7:3 - 123:8]
-// CHECK: 123:7: MemberRefExpr=x:3:7 Extent=[7:10 - 123:8]
-// CHECK: 122:7: MemberRefExpr=first:2:23 Extent=[7:10 - 122:12]
-// CHECK: 121:7: MemberRefExpr=first:2:23 Extent=[7:10 - 121:12]
-// CHECK: 120:7: MemberRefExpr=first:2:23 Extent=[7:10 - 120:12]
-// CHECK: 119:7: MemberRefExpr=first:2:23 Extent=[7:10 - 119:12]
-// CHECK: 118:7: MemberRefExpr=first:2:23 Extent=[7:10 - 118:12]
-// CHECK: 117:7: MemberRefExpr=first:2:23 Extent=[7:10 - 117:12]
-// CHECK: 116:7: MemberRefExpr=first:2:23 Extent=[7:10 - 116:12]
-// CHECK: 115:7: MemberRefExpr=first:2:23 Extent=[7:10 - 115:12]
-// CHECK: 114:7: MemberRefExpr=first:2:23 Extent=[7:10 - 114:12]
-// CHECK: 113:7: MemberRefExpr=first:2:23 Extent=[7:10 - 113:12]
-// CHECK: 112:7: MemberRefExpr=first:2:23 Extent=[7:10 - 112:12]
-// CHECK: 111:7: MemberRefExpr=first:2:23 Extent=[7:10 - 111:12]
-// CHECK: 110:7: MemberRefExpr=first:2:23 Extent=[7:10 - 110:12]
-// CHECK: 109:7: MemberRefExpr=first:2:23 Extent=[7:10 - 109:12]
-// CHECK: 108:7: MemberRefExpr=first:2:23 Extent=[7:10 - 108:12]
-// CHECK: 107:7: MemberRefExpr=first:2:23 Extent=[7:10 - 107:12]
-// CHECK: 106:7: MemberRefExpr=first:2:23 Extent=[7:10 - 106:12]
-// CHECK: 105:7: MemberRefExpr=first:2:23 Extent=[7:10 - 105:12]
-// CHECK: 104:7: MemberRefExpr=first:2:23 Extent=[7:10 - 104:12]
-// CHECK: 103:7: MemberRefExpr=first:2:23 Extent=[7:10 - 103:12]
-// CHECK: 102:7: MemberRefExpr=first:2:23 Extent=[7:10 - 102:12]
-// CHECK: 101:7: MemberRefExpr=first:2:23 Extent=[7:10 - 101:12]
-// CHECK: 100:7: MemberRefExpr=first:2:23 Extent=[7:10 - 100:12]
-// CHECK: 99:7: MemberRefExpr=first:2:23 Extent=[7:10 - 99:12]
-// CHECK: 98:7: MemberRefExpr=first:2:23 Extent=[7:10 - 98:12]
-// CHECK: 97:7: MemberRefExpr=first:2:23 Extent=[7:10 - 97:12]
-// CHECK: 96:7: MemberRefExpr=first:2:23 Extent=[7:10 - 96:12]
-// CHECK: 95:7: MemberRefExpr=first:2:23 Extent=[7:10 - 95:12]
-// CHECK: 94:7: MemberRefExpr=first:2:23 Extent=[7:10 - 94:12]
-// CHECK: 93:7: MemberRefExpr=first:2:23 Extent=[7:10 - 93:12]
-// CHECK: 92:7: MemberRefExpr=first:2:23 Extent=[7:10 - 92:12]
-// CHECK: 91:7: MemberRefExpr=first:2:23 Extent=[7:10 - 91:12]
-// CHECK: 90:7: MemberRefExpr=first:2:23 Extent=[7:10 - 90:12]
-// CHECK: 89:7: MemberRefExpr=first:2:23 Extent=[7:10 - 89:12]
-// CHECK: 88:7: MemberRefExpr=first:2:23 Extent=[7:10 - 88:12]
-// CHECK: 87:7: MemberRefExpr=first:2:23 Extent=[7:10 - 87:12]
-// CHECK: 86:7: MemberRefExpr=first:2:23 Extent=[7:10 - 86:12]
-// CHECK: 85:7: MemberRefExpr=first:2:23 Extent=[7:10 - 85:12]
-// CHECK: 84:7: MemberRefExpr=first:2:23 Extent=[7:10 - 84:12]
-// CHECK: 83:7: MemberRefExpr=first:2:23 Extent=[7:10 - 83:12]
-// CHECK: 82:7: MemberRefExpr=first:2:23 Extent=[7:10 - 82:12]
-// CHECK: 81:7: MemberRefExpr=first:2:23 Extent=[7:10 - 81:12]
-// CHECK: 80:7: MemberRefExpr=first:2:23 Extent=[7:10 - 80:12]
-// CHECK: 79:7: MemberRefExpr=first:2:23 Extent=[7:10 - 79:12]
-// CHECK: 78:7: MemberRefExpr=first:2:23 Extent=[7:10 - 78:12]
-// CHECK: 77:7: MemberRefExpr=first:2:23 Extent=[7:10 - 77:12]
-// CHECK: 76:7: MemberRefExpr=first:2:23 Extent=[7:10 - 76:12]
-// CHECK: 75:7: MemberRefExpr=first:2:23 Extent=[7:10 - 75:12]
-// CHECK: 74:7: MemberRefExpr=first:2:23 Extent=[7:10 - 74:12]
-// CHECK: 73:7: MemberRefExpr=first:2:23 Extent=[7:10 - 73:12]
-// CHECK: 72:7: MemberRefExpr=first:2:23 Extent=[7:10 - 72:12]
-// CHECK: 71:7: MemberRefExpr=first:2:23 Extent=[7:10 - 71:12]
-// CHECK: 70:7: MemberRefExpr=first:2:23 Extent=[7:10 - 70:12]
-// CHECK: 69:7: MemberRefExpr=first:2:23 Extent=[7:10 - 69:12]
-// CHECK: 68:7: MemberRefExpr=first:2:23 Extent=[7:10 - 68:12]
-// CHECK: 67:7: MemberRefExpr=first:2:23 Extent=[7:10 - 67:12]
-// CHECK: 66:7: MemberRefExpr=first:2:23 Extent=[7:10 - 66:12]
-// CHECK: 65:7: MemberRefExpr=first:2:23 Extent=[7:10 - 65:12]
-// CHECK: 64:7: MemberRefExpr=first:2:23 Extent=[7:10 - 64:12]
-// CHECK: 63:7: MemberRefExpr=first:2:23 Extent=[7:10 - 63:12]
-// CHECK: 62:7: MemberRefExpr=first:2:23 Extent=[7:10 - 62:12]
-// CHECK: 61:7: MemberRefExpr=first:2:23 Extent=[7:10 - 61:12]
-// CHECK: 60:7: MemberRefExpr=first:2:23 Extent=[7:10 - 60:12]
-// CHECK: 59:7: MemberRefExpr=first:2:23 Extent=[7:10 - 59:12]
-// CHECK: 58:7: MemberRefExpr=first:2:23 Extent=[7:10 - 58:12]
-// CHECK: 57:7: MemberRefExpr=first:2:23 Extent=[7:10 - 57:12]
-// CHECK: 56:7: MemberRefExpr=first:2:23 Extent=[7:10 - 56:12]
-// CHECK: 55:7: MemberRefExpr=first:2:23 Extent=[7:10 - 55:12]
-// CHECK: 54:7: MemberRefExpr=first:2:23 Extent=[7:10 - 54:12]
-// CHECK: 53:7: MemberRefExpr=first:2:23 Extent=[7:10 - 53:12]
-// CHECK: 52:7: MemberRefExpr=first:2:23 Extent=[7:10 - 52:12]
-// CHECK: 51:7: MemberRefExpr=first:2:23 Extent=[7:10 - 51:12]
-// CHECK: 50:7: MemberRefExpr=first:2:23 Extent=[7:10 - 50:12]
-// CHECK: 49:7: MemberRefExpr=first:2:23 Extent=[7:10 - 49:12]
-// CHECK: 48:7: MemberRefExpr=first:2:23 Extent=[7:10 - 48:12]
-// CHECK: 47:7: MemberRefExpr=first:2:23 Extent=[7:10 - 47:12]
-// CHECK: 46:7: MemberRefExpr=first:2:23 Extent=[7:10 - 46:12]
-// CHECK: 45:7: MemberRefExpr=first:2:23 Extent=[7:10 - 45:12]
-// CHECK: 44:7: MemberRefExpr=first:2:23 Extent=[7:10 - 44:12]
-// CHECK: 43:7: MemberRefExpr=first:2:23 Extent=[7:10 - 43:12]
-// CHECK: 42:7: MemberRefExpr=first:2:23 Extent=[7:10 - 42:12]
-// CHECK: 41:7: MemberRefExpr=first:2:23 Extent=[7:10 - 41:12]
-// CHECK: 40:7: MemberRefExpr=first:2:23 Extent=[7:10 - 40:12]
-// CHECK: 39:7: MemberRefExpr=first:2:23 Extent=[7:10 - 39:12]
-// CHECK: 38:7: MemberRefExpr=first:2:23 Extent=[7:10 - 38:12]
-// CHECK: 37:7: MemberRefExpr=first:2:23 Extent=[7:10 - 37:12]
-// CHECK: 36:7: MemberRefExpr=first:2:23 Extent=[7:10 - 36:12]
-// CHECK: 35:7: MemberRefExpr=first:2:23 Extent=[7:10 - 35:12]
-// CHECK: 34:7: MemberRefExpr=first:2:23 Extent=[7:10 - 34:12]
-// CHECK: 33:7: MemberRefExpr=first:2:23 Extent=[7:10 - 33:12]
-// CHECK: 32:7: MemberRefExpr=first:2:23 Extent=[7:10 - 32:12]
-// CHECK: 31:7: MemberRefExpr=first:2:23 Extent=[7:10 - 31:12]
-// CHECK: 30:7: MemberRefExpr=first:2:23 Extent=[7:10 - 30:12]
-// CHECK: 29:7: MemberRefExpr=first:2:23 Extent=[7:10 - 29:12]
-// CHECK: 28:7: MemberRefExpr=first:2:23 Extent=[7:10 - 28:12]
-// CHECK: 27:7: MemberRefExpr=first:2:23 Extent=[7:10 - 27:12]
-// CHECK: 26:7: MemberRefExpr=first:2:23 Extent=[7:10 - 26:12]
-// CHECK: 25:7: MemberRefExpr=first:2:23 Extent=[7:10 - 25:12]
-// CHECK: 24:7: MemberRefExpr=first:2:23 Extent=[7:10 - 24:12]
-// CHECK: 23:7: MemberRefExpr=first:2:23 Extent=[7:10 - 23:12]
-// CHECK: 22:7: MemberRefExpr=first:2:23 Extent=[7:10 - 22:12]
-// CHECK: 21:7: MemberRefExpr=first:2:23 Extent=[7:10 - 21:12]
-// CHECK: 20:7: MemberRefExpr=first:2:23 Extent=[7:10 - 20:12]
-// CHECK: 19:7: MemberRefExpr=first:2:23 Extent=[7:10 - 19:12]
-// CHECK: 18:7: MemberRefExpr=first:2:23 Extent=[7:10 - 18:12]
-// CHECK: 17:7: MemberRefExpr=first:2:23 Extent=[7:10 - 17:12]
-// CHECK: 16:7: MemberRefExpr=first:2:23 Extent=[7:10 - 16:12]
-// CHECK: 15:7: MemberRefExpr=first:2:23 Extent=[7:10 - 15:12]
-// CHECK: 14:7: MemberRefExpr=first:2:23 Extent=[7:10 - 14:12]
-// CHECK: 13:7: MemberRefExpr=first:2:23 Extent=[7:10 - 13:12]
-// CHECK: 12:7: MemberRefExpr=first:2:23 Extent=[7:10 - 12:12]
-// CHECK: 11:7: MemberRefExpr=first:2:23 Extent=[7:11 - 11:12]
-// CHECK: 10:7: MemberRefExpr=first:2:23 Extent=[7:12 - 10:12]
-// CHECK: 9:7: MemberRefExpr=first:2:23 Extent=[7:13 - 9:12]
-// CHECK: 8:7: MemberRefExpr=first:2:23 Extent=[7:14 - 8:12]
-// CHECK: 7:27: MemberRefExpr=first:2:23 Extent=[7:15 - 7:32]
-// CHECK: 7:19: MemberRefExpr=first:2:23 Extent=[7:16 - 7:24]
+// CHECK: 123:7: MemberRefExpr=x:3:7 SingleRefName=[123:7 - 123:8] RefName=[123:7 - 123:8] Extent=[7:10 - 123:8]
+// CHECK: 122:7: MemberRefExpr=first:2:23 SingleRefName=[122:7 - 122:12] RefName=[122:7 - 122:12] Extent=[7:10 - 122:12]
+// CHECK: 121:7: MemberRefExpr=first:2:23 SingleRefName=[121:7 - 121:12] RefName=[121:7 - 121:12] Extent=[7:10 - 121:12]
+// CHECK: 120:7: MemberRefExpr=first:2:23 SingleRefName=[120:7 - 120:12] RefName=[120:7 - 120:12] Extent=[7:10 - 120:12]
+// CHECK: 119:7: MemberRefExpr=first:2:23 SingleRefName=[119:7 - 119:12] RefName=[119:7 - 119:12] Extent=[7:10 - 119:12]
+// CHECK: 118:7: MemberRefExpr=first:2:23 SingleRefName=[118:7 - 118:12] RefName=[118:7 - 118:12] Extent=[7:10 - 118:12]
+// CHECK: 117:7: MemberRefExpr=first:2:23 SingleRefName=[117:7 - 117:12] RefName=[117:7 - 117:12] Extent=[7:10 - 117:12]
+// CHECK: 116:7: MemberRefExpr=first:2:23 SingleRefName=[116:7 - 116:12] RefName=[116:7 - 116:12] Extent=[7:10 - 116:12]
+// CHECK: 115:7: MemberRefExpr=first:2:23 SingleRefName=[115:7 - 115:12] RefName=[115:7 - 115:12] Extent=[7:10 - 115:12]
+// CHECK: 114:7: MemberRefExpr=first:2:23 SingleRefName=[114:7 - 114:12] RefName=[114:7 - 114:12] Extent=[7:10 - 114:12]
+// CHECK: 113:7: MemberRefExpr=first:2:23 SingleRefName=[113:7 - 113:12] RefName=[113:7 - 113:12] Extent=[7:10 - 113:12]
+// CHECK: 112:7: MemberRefExpr=first:2:23 SingleRefName=[112:7 - 112:12] RefName=[112:7 - 112:12] Extent=[7:10 - 112:12]
+// CHECK: 111:7: MemberRefExpr=first:2:23 SingleRefName=[111:7 - 111:12] RefName=[111:7 - 111:12] Extent=[7:10 - 111:12]
+// CHECK: 110:7: MemberRefExpr=first:2:23 SingleRefName=[110:7 - 110:12] RefName=[110:7 - 110:12] Extent=[7:10 - 110:12]
+// CHECK: 109:7: MemberRefExpr=first:2:23 SingleRefName=[109:7 - 109:12] RefName=[109:7 - 109:12] Extent=[7:10 - 109:12]
+// CHECK: 108:7: MemberRefExpr=first:2:23 SingleRefName=[108:7 - 108:12] RefName=[108:7 - 108:12] Extent=[7:10 - 108:12]
+// CHECK: 107:7: MemberRefExpr=first:2:23 SingleRefName=[107:7 - 107:12] RefName=[107:7 - 107:12] Extent=[7:10 - 107:12]
+// CHECK: 106:7: MemberRefExpr=first:2:23 SingleRefName=[106:7 - 106:12] RefName=[106:7 - 106:12] Extent=[7:10 - 106:12]
+// CHECK: 105:7: MemberRefExpr=first:2:23 SingleRefName=[105:7 - 105:12] RefName=[105:7 - 105:12] Extent=[7:10 - 105:12]
+// CHECK: 104:7: MemberRefExpr=first:2:23 SingleRefName=[104:7 - 104:12] RefName=[104:7 - 104:12] Extent=[7:10 - 104:12]
+// CHECK: 103:7: MemberRefExpr=first:2:23 SingleRefName=[103:7 - 103:12] RefName=[103:7 - 103:12] Extent=[7:10 - 103:12]
+// CHECK: 102:7: MemberRefExpr=first:2:23 SingleRefName=[102:7 - 102:12] RefName=[102:7 - 102:12] Extent=[7:10 - 102:12]
+// CHECK: 101:7: MemberRefExpr=first:2:23 SingleRefName=[101:7 - 101:12] RefName=[101:7 - 101:12] Extent=[7:10 - 101:12]
+// CHECK: 100:7: MemberRefExpr=first:2:23 SingleRefName=[100:7 - 100:12] RefName=[100:7 - 100:12] Extent=[7:10 - 100:12]
+// CHECK: 99:7: MemberRefExpr=first:2:23 SingleRefName=[99:7 - 99:12] RefName=[99:7 - 99:12] Extent=[7:10 - 99:12]
+// CHECK: 98:7: MemberRefExpr=first:2:23 SingleRefName=[98:7 - 98:12] RefName=[98:7 - 98:12] Extent=[7:10 - 98:12]
+// CHECK: 97:7: MemberRefExpr=first:2:23 SingleRefName=[97:7 - 97:12] RefName=[97:7 - 97:12] Extent=[7:10 - 97:12]
+// CHECK: 96:7: MemberRefExpr=first:2:23 SingleRefName=[96:7 - 96:12] RefName=[96:7 - 96:12] Extent=[7:10 - 96:12]
+// CHECK: 95:7: MemberRefExpr=first:2:23 SingleRefName=[95:7 - 95:12] RefName=[95:7 - 95:12] Extent=[7:10 - 95:12]
+// CHECK: 94:7: MemberRefExpr=first:2:23 SingleRefName=[94:7 - 94:12] RefName=[94:7 - 94:12] Extent=[7:10 - 94:12]
+// CHECK: 93:7: MemberRefExpr=first:2:23 SingleRefName=[93:7 - 93:12] RefName=[93:7 - 93:12] Extent=[7:10 - 93:12]
+// CHECK: 92:7: MemberRefExpr=first:2:23 SingleRefName=[92:7 - 92:12] RefName=[92:7 - 92:12] Extent=[7:10 - 92:12]
+// CHECK: 91:7: MemberRefExpr=first:2:23 SingleRefName=[91:7 - 91:12] RefName=[91:7 - 91:12] Extent=[7:10 - 91:12]
+// CHECK: 90:7: MemberRefExpr=first:2:23 SingleRefName=[90:7 - 90:12] RefName=[90:7 - 90:12] Extent=[7:10 - 90:12]
+// CHECK: 89:7: MemberRefExpr=first:2:23 SingleRefName=[89:7 - 89:12] RefName=[89:7 - 89:12] Extent=[7:10 - 89:12]
+// CHECK: 88:7: MemberRefExpr=first:2:23 SingleRefName=[88:7 - 88:12] RefName=[88:7 - 88:12] Extent=[7:10 - 88:12]
+// CHECK: 87:7: MemberRefExpr=first:2:23 SingleRefName=[87:7 - 87:12] RefName=[87:7 - 87:12] Extent=[7:10 - 87:12]
+// CHECK: 86:7: MemberRefExpr=first:2:23 SingleRefName=[86:7 - 86:12] RefName=[86:7 - 86:12] Extent=[7:10 - 86:12]
+// CHECK: 85:7: MemberRefExpr=first:2:23 SingleRefName=[85:7 - 85:12] RefName=[85:7 - 85:12] Extent=[7:10 - 85:12]
+// CHECK: 84:7: MemberRefExpr=first:2:23 SingleRefName=[84:7 - 84:12] RefName=[84:7 - 84:12] Extent=[7:10 - 84:12]
+// CHECK: 83:7: MemberRefExpr=first:2:23 SingleRefName=[83:7 - 83:12] RefName=[83:7 - 83:12] Extent=[7:10 - 83:12]
+// CHECK: 82:7: MemberRefExpr=first:2:23 SingleRefName=[82:7 - 82:12] RefName=[82:7 - 82:12] Extent=[7:10 - 82:12]
+// CHECK: 81:7: MemberRefExpr=first:2:23 SingleRefName=[81:7 - 81:12] RefName=[81:7 - 81:12] Extent=[7:10 - 81:12]
+// CHECK: 80:7: MemberRefExpr=first:2:23 SingleRefName=[80:7 - 80:12] RefName=[80:7 - 80:12] Extent=[7:10 - 80:12]
+// CHECK: 79:7: MemberRefExpr=first:2:23 SingleRefName=[79:7 - 79:12] RefName=[79:7 - 79:12] Extent=[7:10 - 79:12]
+// CHECK: 78:7: MemberRefExpr=first:2:23 SingleRefName=[78:7 - 78:12] RefName=[78:7 - 78:12] Extent=[7:10 - 78:12]
+// CHECK: 77:7: MemberRefExpr=first:2:23 SingleRefName=[77:7 - 77:12] RefName=[77:7 - 77:12] Extent=[7:10 - 77:12]
+// CHECK: 76:7: MemberRefExpr=first:2:23 SingleRefName=[76:7 - 76:12] RefName=[76:7 - 76:12] Extent=[7:10 - 76:12]
+// CHECK: 75:7: MemberRefExpr=first:2:23 SingleRefName=[75:7 - 75:12] RefName=[75:7 - 75:12] Extent=[7:10 - 75:12]
+// CHECK: 74:7: MemberRefExpr=first:2:23 SingleRefName=[74:7 - 74:12] RefName=[74:7 - 74:12] Extent=[7:10 - 74:12]
+// CHECK: 73:7: MemberRefExpr=first:2:23 SingleRefName=[73:7 - 73:12] RefName=[73:7 - 73:12] Extent=[7:10 - 73:12]
+// CHECK: 72:7: MemberRefExpr=first:2:23 SingleRefName=[72:7 - 72:12] RefName=[72:7 - 72:12] Extent=[7:10 - 72:12]
+// CHECK: 71:7: MemberRefExpr=first:2:23 SingleRefName=[71:7 - 71:12] RefName=[71:7 - 71:12] Extent=[7:10 - 71:12]
+// CHECK: 70:7: MemberRefExpr=first:2:23 SingleRefName=[70:7 - 70:12] RefName=[70:7 - 70:12] Extent=[7:10 - 70:12]
+// CHECK: 69:7: MemberRefExpr=first:2:23 SingleRefName=[69:7 - 69:12] RefName=[69:7 - 69:12] Extent=[7:10 - 69:12]
+// CHECK: 68:7: MemberRefExpr=first:2:23 SingleRefName=[68:7 - 68:12] RefName=[68:7 - 68:12] Extent=[7:10 - 68:12]
+// CHECK: 67:7: MemberRefExpr=first:2:23 SingleRefName=[67:7 - 67:12] RefName=[67:7 - 67:12] Extent=[7:10 - 67:12]
+// CHECK: 66:7: MemberRefExpr=first:2:23 SingleRefName=[66:7 - 66:12] RefName=[66:7 - 66:12] Extent=[7:10 - 66:12]
+// CHECK: 65:7: MemberRefExpr=first:2:23 SingleRefName=[65:7 - 65:12] RefName=[65:7 - 65:12] Extent=[7:10 - 65:12]
+// CHECK: 64:7: MemberRefExpr=first:2:23 SingleRefName=[64:7 - 64:12] RefName=[64:7 - 64:12] Extent=[7:10 - 64:12]
+// CHECK: 63:7: MemberRefExpr=first:2:23 SingleRefName=[63:7 - 63:12] RefName=[63:7 - 63:12] Extent=[7:10 - 63:12]
+// CHECK: 62:7: MemberRefExpr=first:2:23 SingleRefName=[62:7 - 62:12] RefName=[62:7 - 62:12] Extent=[7:10 - 62:12]
+// CHECK: 61:7: MemberRefExpr=first:2:23 SingleRefName=[61:7 - 61:12] RefName=[61:7 - 61:12] Extent=[7:10 - 61:12]
+// CHECK: 60:7: MemberRefExpr=first:2:23 SingleRefName=[60:7 - 60:12] RefName=[60:7 - 60:12] Extent=[7:10 - 60:12]
+// CHECK: 59:7: MemberRefExpr=first:2:23 SingleRefName=[59:7 - 59:12] RefName=[59:7 - 59:12] Extent=[7:10 - 59:12]
+// CHECK: 58:7: MemberRefExpr=first:2:23 SingleRefName=[58:7 - 58:12] RefName=[58:7 - 58:12] Extent=[7:10 - 58:12]
+// CHECK: 57:7: MemberRefExpr=first:2:23 SingleRefName=[57:7 - 57:12] RefName=[57:7 - 57:12] Extent=[7:10 - 57:12]
+// CHECK: 56:7: MemberRefExpr=first:2:23 SingleRefName=[56:7 - 56:12] RefName=[56:7 - 56:12] Extent=[7:10 - 56:12]
+// CHECK: 55:7: MemberRefExpr=first:2:23 SingleRefName=[55:7 - 55:12] RefName=[55:7 - 55:12] Extent=[7:10 - 55:12]
+// CHECK: 54:7: MemberRefExpr=first:2:23 SingleRefName=[54:7 - 54:12] RefName=[54:7 - 54:12] Extent=[7:10 - 54:12]
+// CHECK: 53:7: MemberRefExpr=first:2:23 SingleRefName=[53:7 - 53:12] RefName=[53:7 - 53:12] Extent=[7:10 - 53:12]
+// CHECK: 52:7: MemberRefExpr=first:2:23 SingleRefName=[52:7 - 52:12] RefName=[52:7 - 52:12] Extent=[7:10 - 52:12]
+// CHECK: 51:7: MemberRefExpr=first:2:23 SingleRefName=[51:7 - 51:12] RefName=[51:7 - 51:12] Extent=[7:10 - 51:12]
+// CHECK: 50:7: MemberRefExpr=first:2:23 SingleRefName=[50:7 - 50:12] RefName=[50:7 - 50:12] Extent=[7:10 - 50:12]
+// CHECK: 49:7: MemberRefExpr=first:2:23 SingleRefName=[49:7 - 49:12] RefName=[49:7 - 49:12] Extent=[7:10 - 49:12]
+// CHECK: 48:7: MemberRefExpr=first:2:23 SingleRefName=[48:7 - 48:12] RefName=[48:7 - 48:12] Extent=[7:10 - 48:12]
+// CHECK: 47:7: MemberRefExpr=first:2:23 SingleRefName=[47:7 - 47:12] RefName=[47:7 - 47:12] Extent=[7:10 - 47:12]
+// CHECK: 46:7: MemberRefExpr=first:2:23 SingleRefName=[46:7 - 46:12] RefName=[46:7 - 46:12] Extent=[7:10 - 46:12]
+// CHECK: 45:7: MemberRefExpr=first:2:23 SingleRefName=[45:7 - 45:12] RefName=[45:7 - 45:12] Extent=[7:10 - 45:12]
+// CHECK: 44:7: MemberRefExpr=first:2:23 SingleRefName=[44:7 - 44:12] RefName=[44:7 - 44:12] Extent=[7:10 - 44:12]
+// CHECK: 43:7: MemberRefExpr=first:2:23 SingleRefName=[43:7 - 43:12] RefName=[43:7 - 43:12] Extent=[7:10 - 43:12]
+// CHECK: 42:7: MemberRefExpr=first:2:23 SingleRefName=[42:7 - 42:12] RefName=[42:7 - 42:12] Extent=[7:10 - 42:12]
+// CHECK: 41:7: MemberRefExpr=first:2:23 SingleRefName=[41:7 - 41:12] RefName=[41:7 - 41:12] Extent=[7:10 - 41:12]
+// CHECK: 40:7: MemberRefExpr=first:2:23 SingleRefName=[40:7 - 40:12] RefName=[40:7 - 40:12] Extent=[7:10 - 40:12]
+// CHECK: 39:7: MemberRefExpr=first:2:23 SingleRefName=[39:7 - 39:12] RefName=[39:7 - 39:12] Extent=[7:10 - 39:12]
+// CHECK: 38:7: MemberRefExpr=first:2:23 SingleRefName=[38:7 - 38:12] RefName=[38:7 - 38:12] Extent=[7:10 - 38:12]
+// CHECK: 37:7: MemberRefExpr=first:2:23 SingleRefName=[37:7 - 37:12] RefName=[37:7 - 37:12] Extent=[7:10 - 37:12]
+// CHECK: 36:7: MemberRefExpr=first:2:23 SingleRefName=[36:7 - 36:12] RefName=[36:7 - 36:12] Extent=[7:10 - 36:12]
+// CHECK: 35:7: MemberRefExpr=first:2:23 SingleRefName=[35:7 - 35:12] RefName=[35:7 - 35:12] Extent=[7:10 - 35:12]
+// CHECK: 34:7: MemberRefExpr=first:2:23 SingleRefName=[34:7 - 34:12] RefName=[34:7 - 34:12] Extent=[7:10 - 34:12]
+// CHECK: 33:7: MemberRefExpr=first:2:23 SingleRefName=[33:7 - 33:12] RefName=[33:7 - 33:12] Extent=[7:10 - 33:12]
+// CHECK: 32:7: MemberRefExpr=first:2:23 SingleRefName=[32:7 - 32:12] RefName=[32:7 - 32:12] Extent=[7:10 - 32:12]
+// CHECK: 31:7: MemberRefExpr=first:2:23 SingleRefName=[31:7 - 31:12] RefName=[31:7 - 31:12] Extent=[7:10 - 31:12]
+// CHECK: 30:7: MemberRefExpr=first:2:23 SingleRefName=[30:7 - 30:12] RefName=[30:7 - 30:12] Extent=[7:10 - 30:12]
+// CHECK: 29:7: MemberRefExpr=first:2:23 SingleRefName=[29:7 - 29:12] RefName=[29:7 - 29:12] Extent=[7:10 - 29:12]
+// CHECK: 28:7: MemberRefExpr=first:2:23 SingleRefName=[28:7 - 28:12] RefName=[28:7 - 28:12] Extent=[7:10 - 28:12]
+// CHECK: 27:7: MemberRefExpr=first:2:23 SingleRefName=[27:7 - 27:12] RefName=[27:7 - 27:12] Extent=[7:10 - 27:12]
+// CHECK: 26:7: MemberRefExpr=first:2:23 SingleRefName=[26:7 - 26:12] RefName=[26:7 - 26:12] Extent=[7:10 - 26:12]
+// CHECK: 25:7: MemberRefExpr=first:2:23 SingleRefName=[25:7 - 25:12] RefName=[25:7 - 25:12] Extent=[7:10 - 25:12]
+// CHECK: 24:7: MemberRefExpr=first:2:23 SingleRefName=[24:7 - 24:12] RefName=[24:7 - 24:12] Extent=[7:10 - 24:12]
+// CHECK: 23:7: MemberRefExpr=first:2:23 SingleRefName=[23:7 - 23:12] RefName=[23:7 - 23:12] Extent=[7:10 - 23:12]
+// CHECK: 22:7: MemberRefExpr=first:2:23 SingleRefName=[22:7 - 22:12] RefName=[22:7 - 22:12] Extent=[7:10 - 22:12]
+// CHECK: 21:7: MemberRefExpr=first:2:23 SingleRefName=[21:7 - 21:12] RefName=[21:7 - 21:12] Extent=[7:10 - 21:12]
+// CHECK: 20:7: MemberRefExpr=first:2:23 SingleRefName=[20:7 - 20:12] RefName=[20:7 - 20:12] Extent=[7:10 - 20:12]
+// CHECK: 19:7: MemberRefExpr=first:2:23 SingleRefName=[19:7 - 19:12] RefName=[19:7 - 19:12] Extent=[7:10 - 19:12]
+// CHECK: 18:7: MemberRefExpr=first:2:23 SingleRefName=[18:7 - 18:12] RefName=[18:7 - 18:12] Extent=[7:10 - 18:12]
+// CHECK: 17:7: MemberRefExpr=first:2:23 SingleRefName=[17:7 - 17:12] RefName=[17:7 - 17:12] Extent=[7:10 - 17:12]
+// CHECK: 16:7: MemberRefExpr=first:2:23 SingleRefName=[16:7 - 16:12] RefName=[16:7 - 16:12] Extent=[7:10 - 16:12]
+// CHECK: 15:7: MemberRefExpr=first:2:23 SingleRefName=[15:7 - 15:12] RefName=[15:7 - 15:12] Extent=[7:10 - 15:12]
+// CHECK: 14:7: MemberRefExpr=first:2:23 SingleRefName=[14:7 - 14:12] RefName=[14:7 - 14:12] Extent=[7:10 - 14:12]
+// CHECK: 13:7: MemberRefExpr=first:2:23 SingleRefName=[13:7 - 13:12] RefName=[13:7 - 13:12] Extent=[7:10 - 13:12]
+// CHECK: 12:7: MemberRefExpr=first:2:23 SingleRefName=[12:7 - 12:12] RefName=[12:7 - 12:12] Extent=[7:10 - 12:12]
+// CHECK: 11:7: MemberRefExpr=first:2:23 SingleRefName=[11:7 - 11:12] RefName=[11:7 - 11:12] Extent=[7:11 - 11:12]
+// CHECK: 10:7: MemberRefExpr=first:2:23 SingleRefName=[10:7 - 10:12] RefName=[10:7 - 10:12] Extent=[7:12 - 10:12]
+// CHECK: 9:7: MemberRefExpr=first:2:23 SingleRefName=[9:7 - 9:12] RefName=[9:7 - 9:12] Extent=[7:13 - 9:12]
+// CHECK: 8:7: MemberRefExpr=first:2:23 SingleRefName=[8:7 - 8:12] RefName=[8:7 - 8:12] Extent=[7:14 - 8:12]
+// CHECK: 7:27: MemberRefExpr=first:2:23 SingleRefName=[7:27 - 7:32] RefName=[7:27 - 7:32] Extent=[7:15 - 7:32]
+// CHECK: 7:19: MemberRefExpr=first:2:23 SingleRefName=[7:19 - 7:24] RefName=[7:19 - 7:24] Extent=[7:16 - 7:24]
 // CHECK: 7:16: DeclRefExpr=s:6:42 Extent=[7:16 - 7:17]
 
 // RUN: c-index-test -test-annotate-tokens=%s:1:1:124:1 %s | FileCheck -check-prefix=CHECK-tokens %s

Removed: cfe/branches/exception-handling-rewrite/test/Sema/align-arm-apcs.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/test/Sema/align-arm-apcs.c?rev=136041&view=auto
==============================================================================
--- cfe/branches/exception-handling-rewrite/test/Sema/align-arm-apcs.c (original)
+++ cfe/branches/exception-handling-rewrite/test/Sema/align-arm-apcs.c (removed)
@@ -1,4 +0,0 @@
-// RUN: %clang_cc1 -triple arm-unknown-unknown -target-abi apcs-gnu -fsyntax-only -verify %s
-
-struct s0 { double f0; int f1; };
-char chk0[__alignof__(struct s0) == 4 ? 1 : -1]; 

Propchange: cfe/branches/exception-handling-rewrite/test/SemaCXX/warn-unreachable.cpp
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jul 25 20:36:54 2011
@@ -1,2 +1,2 @@
 /cfe/branches/type-system-rewrite/test/SemaCXX/warn-unreachable.cpp:134693-134817
-/cfe/trunk/test/SemaCXX/warn-unreachable.cpp:121961
+/cfe/trunk/test/SemaCXX/warn-unreachable.cpp:121961,135899-136040

Modified: cfe/branches/exception-handling-rewrite/tools/c-index-test/c-index-test.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/tools/c-index-test/c-index-test.c?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/tools/c-index-test/c-index-test.c (original)
+++ cfe/branches/exception-handling-rewrite/tools/c-index-test/c-index-test.c Mon Jul 25 20:36:54 2011
@@ -158,6 +158,21 @@
 /* Pretty-printing.                                                           */
 /******************************************************************************/
 
+static void PrintRange(CXSourceRange R, const char *str) {
+  CXFile begin_file, end_file;
+  unsigned begin_line, begin_column, end_line, end_column;
+
+  clang_getSpellingLocation(clang_getRangeStart(R),
+                            &begin_file, &begin_line, &begin_column, 0);
+  clang_getSpellingLocation(clang_getRangeEnd(R),
+                            &end_file, &end_line, &end_column, 0);
+  if (!begin_file || !end_file)
+    return;
+
+  printf(" %s=", str);
+  PrintExtent(stdout, begin_line, begin_column, end_line, end_column);
+}
+
 int want_display_name = 0;
 
 static void PrintCursor(CXTranslationUnit TU, CXCursor Cursor) {
@@ -173,6 +188,9 @@
     CXCursor SpecializationOf;
     CXCursor *overridden;
     unsigned num_overridden;
+    unsigned RefNameRangeNr;
+    CXSourceRange CursorExtent;
+    CXSourceRange RefNameRange;
 
     ks = clang_getCursorKindSpelling(Cursor.kind);
     string = want_display_name? clang_getCursorDisplayName(Cursor) 
@@ -288,6 +306,26 @@
       if (clang_isFileMultipleIncludeGuarded(TU, File))
         printf("  [multi-include guarded]");
     }
+    
+    CursorExtent = clang_getCursorExtent(Cursor);
+    RefNameRange = clang_getCursorReferenceNameRange(Cursor, 
+                                                   CXNameRange_WantQualifier
+                                                 | CXNameRange_WantSinglePiece
+                                                 | CXNameRange_WantTemplateArgs,
+                                                     0);
+    if (!clang_equalRanges(CursorExtent, RefNameRange))
+      PrintRange(RefNameRange, "SingleRefName");
+    
+    for (RefNameRangeNr = 0; 1; RefNameRangeNr++) {
+      RefNameRange = clang_getCursorReferenceNameRange(Cursor, 
+                                                   CXNameRange_WantQualifier
+                                                 | CXNameRange_WantTemplateArgs,
+                                                       RefNameRangeNr);
+      if (clang_equalRanges(clang_getNullRange(), RefNameRange))
+        break;
+      if (!clang_equalRanges(CursorExtent, RefNameRange))
+        PrintRange(RefNameRange, "RefName");
+    }
   }
 }
 
@@ -405,18 +443,7 @@
 
 static void PrintCursorExtent(CXCursor C) {
   CXSourceRange extent = clang_getCursorExtent(C);
-  CXFile begin_file, end_file;
-  unsigned begin_line, begin_column, end_line, end_column;
-
-  clang_getSpellingLocation(clang_getRangeStart(extent),
-                            &begin_file, &begin_line, &begin_column, 0);
-  clang_getSpellingLocation(clang_getRangeEnd(extent),
-                            &end_file, &end_line, &end_column, 0);
-  if (!begin_file || !end_file)
-    return;
-
-  printf(" Extent=");
-  PrintExtent(stdout, begin_line, begin_column, end_line, end_column);
+  PrintRange(extent, "Extent");
 }
 
 /* Data used by all of the visitors. */

Modified: cfe/branches/exception-handling-rewrite/tools/driver/cc1as_main.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/tools/driver/cc1as_main.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/tools/driver/cc1as_main.cpp (original)
+++ cfe/branches/exception-handling-rewrite/tools/driver/cc1as_main.cpp Mon Jul 25 20:36:54 2011
@@ -34,8 +34,8 @@
 #include "llvm/MC/MCRegisterInfo.h"
 #include "llvm/MC/MCStreamer.h"
 #include "llvm/MC/MCSubtargetInfo.h"
-#include "llvm/MC/TargetAsmBackend.h"
-#include "llvm/MC/TargetAsmParser.h"
+#include "llvm/MC/MCAsmBackend.h"
+#include "llvm/MC/MCTargetAsmParser.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/FormattedStream.h"
 #include "llvm/Support/ErrorHandling.h"
@@ -299,33 +299,34 @@
     MCInstPrinter *IP =
       TheTarget->createMCInstPrinter(Opts.OutputAsmVariant, *MAI);
     MCCodeEmitter *CE = 0;
-    TargetAsmBackend *TAB = 0;
+    MCAsmBackend *MAB = 0;
     if (Opts.ShowEncoding) {
-      CE = TheTarget->createCodeEmitter(*TM->getInstrInfo(), STI, Ctx);
-      TAB = TheTarget->createAsmBackend(Opts.Triple);
+      CE = TheTarget->createMCCodeEmitter(*TM->getInstrInfo(), STI, Ctx);
+      MAB = TheTarget->createMCAsmBackend(Opts.Triple);
     }
     Str.reset(TheTarget->createAsmStreamer(Ctx, *Out, /*asmverbose*/true,
                                            /*useLoc*/ true,
-                                           /*useCFI*/ true, IP, CE, TAB,
+                                           /*useCFI*/ true, IP, CE, MAB,
                                            Opts.ShowInst));
   } else if (Opts.OutputType == AssemblerInvocation::FT_Null) {
     Str.reset(createNullStreamer(Ctx));
   } else {
     assert(Opts.OutputType == AssemblerInvocation::FT_Obj &&
            "Invalid file type!");
-    MCCodeEmitter *CE = TheTarget->createCodeEmitter(*TM->getInstrInfo(),
-                                                     STI, Ctx);
-    TargetAsmBackend *TAB = TheTarget->createAsmBackend(Opts.Triple);
-    Str.reset(TheTarget->createObjectStreamer(Opts.Triple, Ctx, *TAB, *Out,
-                                              CE, Opts.RelaxAll,
-                                              Opts.NoExecStack));
+    MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*TM->getInstrInfo(),
+                                                       STI, Ctx);
+    MCAsmBackend *MAB = TheTarget->createMCAsmBackend(Opts.Triple);
+    Str.reset(TheTarget->createMCObjectStreamer(Opts.Triple, Ctx, *MAB, *Out,
+                                                CE, Opts.RelaxAll,
+                                                Opts.NoExecStack));
     Str.get()->InitSections();
   }
 
   OwningPtr<MCAsmParser> Parser(createMCAsmParser(*TheTarget, SrcMgr, Ctx,
                                                   *Str.get(), *MAI));
-  OwningPtr<TargetAsmParser>
-    TAP(TheTarget->createAsmParser(const_cast<MCSubtargetInfo&>(STI), *Parser));
+  OwningPtr<MCTargetAsmParser>
+    TAP(TheTarget->createMCAsmParser(const_cast<MCSubtargetInfo&>(STI),
+                                     *Parser));
   if (!TAP) {
     Diags.Report(diag::err_target_unknown_triple) << Opts.Triple;
     return false;
@@ -363,10 +364,7 @@
 
   // Initialize targets and assembly printers/parsers.
   InitializeAllTargetInfos();
-  // FIXME: We shouldn't need to initialize the Target(Machine)s.
-  InitializeAllTargets();
   InitializeAllTargetMCs();
-  InitializeAllAsmPrinters();
   InitializeAllAsmParsers();
 
   // Construct our diagnostic client.

Modified: cfe/branches/exception-handling-rewrite/tools/libclang/CIndex.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/tools/libclang/CIndex.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/tools/libclang/CIndex.cpp (original)
+++ cfe/branches/exception-handling-rewrite/tools/libclang/CIndex.cpp Mon Jul 25 20:36:54 2011
@@ -117,7 +117,7 @@
   // location accordingly.
   SourceLocation EndLoc = R.getEnd();
   if (EndLoc.isValid() && EndLoc.isMacroID())
-    EndLoc = SM.getInstantiationRange(EndLoc).second;
+    EndLoc = SM.getExpansionRange(EndLoc).second;
   if (R.isTokenRange() && !EndLoc.isInvalid() && EndLoc.isFileID()) {
     unsigned Length = Lexer::MeasureTokenLength(EndLoc, SM, LangOpts);
     EndLoc = EndLoc.getFileLocWithOffset(Length);
@@ -439,7 +439,7 @@
     // FIXME: My kingdom for a proper binary search approach to finding
     // cursors!
     std::pair<FileID, unsigned> Location
-      = AU->getSourceManager().getDecomposedInstantiationLoc(
+      = AU->getSourceManager().getDecomposedExpansionLoc(
                                                    RegionOfInterest.getBegin());
     if (Location.first != AU->getSourceManager().getMainFileID())
       OnlyLocalDecls = false;
@@ -463,9 +463,9 @@
   // Find the file in which the region of interest lands.
   SourceManager &SM = AU->getSourceManager();
   std::pair<FileID, unsigned> Begin
-    = SM.getDecomposedInstantiationLoc(RegionOfInterest.getBegin());
+    = SM.getDecomposedExpansionLoc(RegionOfInterest.getBegin());
   std::pair<FileID, unsigned> End
-    = SM.getDecomposedInstantiationLoc(RegionOfInterest.getEnd());
+    = SM.getDecomposedExpansionLoc(RegionOfInterest.getEnd());
   
   // The region of interest spans files; we have to walk everything.
   if (Begin.first != End.first)
@@ -477,8 +477,7 @@
     // Build the mapping from files to sets of preprocessed entities.
     for (; First != Last; ++First) {
       std::pair<FileID, unsigned> P
-        = SM.getDecomposedInstantiationLoc(
-                                        (*First)->getSourceRange().getBegin());
+        = SM.getDecomposedExpansionLoc((*First)->getSourceRange().getBegin());
       
       ByFileMap[P.first].push_back(*First);
     }
@@ -2325,6 +2324,47 @@
   return result;
 }
 
+namespace {
+typedef llvm::SmallVector<SourceRange, 4> RefNamePieces;
+RefNamePieces buildPieces(unsigned NameFlags, bool IsMemberRefExpr, 
+                          const DeclarationNameInfo &NI, 
+                          const SourceRange &QLoc, 
+                          const ExplicitTemplateArgumentList *TemplateArgs = 0){
+  const bool WantQualifier = NameFlags & CXNameRange_WantQualifier;
+  const bool WantTemplateArgs = NameFlags & CXNameRange_WantTemplateArgs;
+  const bool WantSinglePiece = NameFlags & CXNameRange_WantSinglePiece;
+  
+  const DeclarationName::NameKind Kind = NI.getName().getNameKind();
+  
+  RefNamePieces Pieces;
+
+  if (WantQualifier && QLoc.isValid())
+    Pieces.push_back(QLoc);
+  
+  if (Kind != DeclarationName::CXXOperatorName || IsMemberRefExpr)
+    Pieces.push_back(NI.getLoc());
+  
+  if (WantTemplateArgs && TemplateArgs)
+    Pieces.push_back(SourceRange(TemplateArgs->LAngleLoc,
+                                 TemplateArgs->RAngleLoc));
+  
+  if (Kind == DeclarationName::CXXOperatorName) {
+    Pieces.push_back(SourceLocation::getFromRawEncoding(
+                       NI.getInfo().CXXOperatorName.BeginOpNameLoc));
+    Pieces.push_back(SourceLocation::getFromRawEncoding(
+                       NI.getInfo().CXXOperatorName.EndOpNameLoc));
+  }
+  
+  if (WantSinglePiece) {
+    SourceRange R(Pieces.front().getBegin(), Pieces.back().getEnd());
+    Pieces.clear();
+    Pieces.push_back(R);
+  }  
+
+  return Pieces;  
+}
+}
+
 //===----------------------------------------------------------------------===//
 // Misc. API hooks.
 //===----------------------------------------------------------------------===//               
@@ -2824,7 +2864,7 @@
 
   const SourceManager &SM =
     *static_cast<const SourceManager*>(location.ptr_data[0]);
-  SourceLocation InstLoc = SM.getInstantiationLoc(Loc);
+  SourceLocation InstLoc = SM.getExpansionLoc(Loc);
 
   // Check that the FileID is invalid on the expansion location.
   // This can manifest in invalid code.
@@ -2839,9 +2879,9 @@
   if (file)
     *file = (void *)SM.getFileEntryForSLocEntry(sloc);
   if (line)
-    *line = SM.getInstantiationLineNumber(InstLoc);
+    *line = SM.getExpansionLineNumber(InstLoc);
   if (column)
-    *column = SM.getInstantiationColumnNumber(InstLoc);
+    *column = SM.getExpansionColumnNumber(InstLoc);
   if (offset)
     *offset = SM.getDecomposedLoc(InstLoc).second;
 }
@@ -2865,7 +2905,7 @@
         SM.getFileEntryForID(SM.getDecomposedLoc(SimpleSpellingLoc).first))
       SpellLoc = SimpleSpellingLoc;
     else
-      SpellLoc = SM.getInstantiationLoc(SpellLoc);
+      SpellLoc = SM.getExpansionLoc(SpellLoc);
   }
 
   std::pair<FileID, unsigned> LocInfo = SM.getDecomposedLoc(SpellLoc);
@@ -4253,6 +4293,54 @@
   *endColumn = SM.getSpellingColumnNumber(Body->getRBracLoc());
 }
 
+
+CXSourceRange clang_getCursorReferenceNameRange(CXCursor C, unsigned NameFlags,
+                                                unsigned PieceIndex) {
+  RefNamePieces Pieces;
+  
+  switch (C.kind) {
+  case CXCursor_MemberRefExpr:
+    if (MemberExpr *E = dyn_cast<MemberExpr>(getCursorExpr(C)))
+      Pieces = buildPieces(NameFlags, true, E->getMemberNameInfo(),
+                           E->getQualifierLoc().getSourceRange());
+    break;
+  
+  case CXCursor_DeclRefExpr:
+    if (DeclRefExpr *E = dyn_cast<DeclRefExpr>(getCursorExpr(C)))
+      Pieces = buildPieces(NameFlags, false, E->getNameInfo(), 
+                           E->getQualifierLoc().getSourceRange(),
+                           E->getExplicitTemplateArgsOpt());
+    break;
+    
+  case CXCursor_CallExpr:
+    if (CXXOperatorCallExpr *OCE = 
+        dyn_cast<CXXOperatorCallExpr>(getCursorExpr(C))) {
+      Expr *Callee = OCE->getCallee();
+      if (ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(Callee))
+        Callee = ICE->getSubExpr();
+
+      if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(Callee))
+        Pieces = buildPieces(NameFlags, false, DRE->getNameInfo(),
+                             DRE->getQualifierLoc().getSourceRange());
+    }
+    break;
+    
+  default:
+    break;
+  }
+
+  if (Pieces.empty()) {
+    if (PieceIndex == 0)
+      return clang_getCursorExtent(C);
+  } else if (PieceIndex < Pieces.size()) {
+      SourceRange R = Pieces[PieceIndex];
+      if (R.isValid())
+        return cxloc::translateSourceRange(getCursorContext(C), R);
+  }
+  
+  return clang_getNullRange();
+}
+
 void clang_enableStackTraces(void) {
   llvm::sys::PrintStackTraceOnErrorSignal();
 }

Modified: cfe/branches/exception-handling-rewrite/tools/libclang/CIndexUSRs.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/tools/libclang/CIndexUSRs.cpp?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/tools/libclang/CIndexUSRs.cpp (original)
+++ cfe/branches/exception-handling-rewrite/tools/libclang/CIndexUSRs.cpp Mon Jul 25 20:36:54 2011
@@ -486,7 +486,7 @@
     IgnoreResults = true;
     return true;
   }
-  L = SM.getInstantiationLoc(L);
+  L = SM.getExpansionLoc(L);
   const std::pair<FileID, unsigned> &Decomposed = SM.getDecomposedLoc(L);
   const FileEntry *FE = SM.getFileEntryForID(Decomposed.first);
   if (FE) {

Modified: cfe/branches/exception-handling-rewrite/tools/libclang/libclang.darwin.exports
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/tools/libclang/libclang.darwin.exports?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/tools/libclang/libclang.darwin.exports (original)
+++ cfe/branches/exception-handling-rewrite/tools/libclang/libclang.darwin.exports Mon Jul 25 20:36:54 2011
@@ -2,6 +2,7 @@
 _clang_CXCursorSet_insert
 _clang_CXXMethod_isStatic
 _clang_CXXMethod_isVirtual
+_clang_getCursorReferenceNameRange
 _clang_annotateTokens
 _clang_codeCompleteAt
 _clang_codeCompleteGetDiagnostic

Modified: cfe/branches/exception-handling-rewrite/tools/libclang/libclang.exports
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/tools/libclang/libclang.exports?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/tools/libclang/libclang.exports (original)
+++ cfe/branches/exception-handling-rewrite/tools/libclang/libclang.exports Mon Jul 25 20:36:54 2011
@@ -2,6 +2,7 @@
 clang_CXCursorSet_insert
 clang_CXXMethod_isStatic
 clang_CXXMethod_isVirtual
+clang_getCursorReferenceNameRange
 clang_annotateTokens
 clang_codeCompleteAt
 clang_codeCompleteGetDiagnostic

Modified: cfe/branches/exception-handling-rewrite/www/cxx_status.html
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/www/cxx_status.html?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/www/cxx_status.html (original)
+++ cfe/branches/exception-handling-rewrite/www/cxx_status.html Mon Jul 25 20:36:54 2011
@@ -338,10 +338,10 @@
 </tr>
 <tr>
   <td>defaulted methods</td>
-  <td></td>
-  <td></td>
-  <td></td>
-  <td></td>
+  <td class="basic"></td>
+  <td class="basic"></td>
+  <td class="basic"></td>
+  <td class="basic"></td>
   <td></td>
   <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1717.pdf">N1717</a>
       <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2326.html">N2326</a>
@@ -366,24 +366,24 @@
   <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2150.html">N2150</a></td>
 </tr>
 <tr>
-  <td>virtual function safety modifications</td>
-  <td></td>
-  <td></td>
-  <td></td>
-  <td></td>
+  <td>Explicit override controls</td>
+  <td class="complete" align="center">&#x2713;</td>
+  <td class="complete" align="center">&#x2713;</td>
+  <td class="complete" align="center">&#x2713;</td>
+  <td class="na"></td>
   <td></td>
   <td></td>
 </tr>
 <tr>
   <td>Explicit conversion operators</td>
-  <td class="complete" align="center"></td>
-  <td class="basic" align="center"></td>
-  <td class="basic" align="center"></td>
-  <td class="broken"></td>
+  <td class="complete" align="center">&#x2713;</td>
+  <td class="complete" align="center">&#x2713;</td>
+  <td class="advanced" align="center">&#x2717;</td>
+  <td class="na">N/A</td>
   <td>12.3</td>
   <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf">N2437</a>
       <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2333.html">N2333</a>
-      No name mangling; ASTs don't contain calls to conversion operators</td>
+      Does not implement DR899</td>
 </tr>
 <tr><td colspan="7" class="category">Template Modifications</td></tr>
 <tr>

Modified: cfe/branches/exception-handling-rewrite/www/get_started.html
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/exception-handling-rewrite/www/get_started.html?rev=136042&r1=136041&r2=136042&view=diff
==============================================================================
--- cfe/branches/exception-handling-rewrite/www/get_started.html (original)
+++ cfe/branches/exception-handling-rewrite/www/get_started.html Mon Jul 25 20:36:54 2011
@@ -165,7 +165,7 @@
         more information on other configuration options for cmake.</li>
 </li>
     <li>The above, if successful, will have created an LLVM.sln file in the
-       llvm directory.
+       <tt>build</tt> directory.
   </ul>
   <li>Build Clang:</li>
   <ul>





More information about the llvm-branch-commits mailing list