Migrate external/clang to CLANG-153220-20120321.

Change-Id: I3b469a42a5048f05f06d14aba34419119047e1a9
diff --git a/Android.mk b/Android.mk
index 4be49e2..0b5f7d2 100644
--- a/Android.mk
+++ b/Android.mk
@@ -10,6 +10,7 @@
   lib/Basic \
   lib/CodeGen \
   lib/Driver \
+  lib/Edit \
   lib/Frontend \
   lib/FrontendTool \
   lib/Index \
diff --git a/clang-tblgen-rules.mk b/clang-tblgen-rules.mk
index 542ed03..030ed2b 100644
--- a/clang-tblgen-rules.mk
+++ b/clang-tblgen-rules.mk
@@ -58,6 +58,20 @@
 	$(call transform-host-clang-td-to-out,clang-attr-classes)
 endif
 
+ifneq ($(findstring AttrParsedAttrKinds.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrParsedAttrKinds.inc
+$(intermediates)/include/clang/Sema/AttrParsedAttrKinds.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
+$(intermediates)/include/clang/Sema/AttrParsedAttrKinds.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td $(CLANG_TBLGEN)
+	$(call transform-host-clang-td-to-out,clang-attr-parsed-attr-kinds)
+endif
+
+ifneq ($(findstring AttrParsedAttrList.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrParsedAttrList.inc
+$(intermediates)/include/clang/Sema/AttrParsedAttrList.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
+$(intermediates)/include/clang/Sema/AttrParsedAttrList.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td $(CLANG_TBLGEN)
+	$(call transform-host-clang-td-to-out,clang-attr-parsed-attr-list)
+endif
+
 ifneq ($(findstring AttrTemplateInstantiate.inc,$(TBLGEN_TABLES)),)
 LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrTemplateInstantiate.inc
 $(intermediates)/include/clang/Sema/AttrTemplateInstantiate.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
diff --git a/lib/ARCMigrate/Android.mk b/lib/ARCMigrate/Android.mk
index 99902f9..657a975 100644
--- a/lib/ARCMigrate/Android.mk
+++ b/lib/ARCMigrate/Android.mk
@@ -8,6 +8,7 @@
 TBLGEN_TABLES := \
   Attrs.inc \
   AttrList.inc \
+  AttrParsedAttrList.inc    \
   DeclNodes.inc \
   DiagnosticCommonKinds.inc \
   DiagnosticGroups.inc \
@@ -18,6 +19,7 @@
   ARCMT.cpp \
   ARCMTActions.cpp \
   FileRemapper.cpp \
+  ObjCMT.cpp \
   PlistReporter.cpp \
   TransAPIUses.cpp \
   TransARCAssign.cpp \
diff --git a/lib/AST/Android.mk b/lib/AST/Android.mk
index 3b1c133..6e52ada 100644
--- a/lib/AST/Android.mk
+++ b/lib/AST/Android.mk
@@ -46,6 +46,7 @@
 	MicrosoftCXXABI.cpp	\
 	MicrosoftMangle.cpp	\
 	NestedNameSpecifier.cpp	\
+        NSAPI.cpp       \
 	ParentMap.cpp	\
 	RecordLayout.cpp	\
 	RecordLayoutBuilder.cpp	\
diff --git a/lib/Analysis/Android.mk b/lib/Analysis/Android.mk
index 2362bb8..f5e3779 100644
--- a/lib/Analysis/Android.mk
+++ b/lib/Analysis/Android.mk
@@ -15,6 +15,7 @@
 
 clang_analysis_SRC_FILES := \
   AnalysisDeclContext.cpp \
+  CallGraph.cpp \
   CFG.cpp \
   CFGReachabilityAnalysis.cpp \
   CFGStmtMap.cpp \
diff --git a/lib/Edit/Android.mk b/lib/Edit/Android.mk
new file mode 100644
index 0000000..3975b86
--- /dev/null
+++ b/lib/Edit/Android.mk
@@ -0,0 +1,30 @@
+LOCAL_PATH:= $(call my-dir)
+
+clang_edit_SRC_FILES := \
+  Commit.cpp \
+  EditedSource.cpp \
+  RewriteObjCFoundationAPI.cpp
+
+
+# For the host only
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES := \
+  Attrs.inc \
+  AttrList.inc \
+  DeclNodes.inc \
+  DiagnosticCommonKinds.inc \
+  StmtNodes.inc
+
+LOCAL_SRC_FILES := $(clang_edit_SRC_FILES)
+
+LOCAL_MODULE:= libclangEdit
+
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_HOST_BUILD_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Frontend/Android.mk b/lib/Frontend/Android.mk
index f79d035..63a726f 100644
--- a/lib/Frontend/Android.mk
+++ b/lib/Frontend/Android.mk
@@ -8,6 +8,7 @@
 TBLGEN_TABLES := \
   AttrList.inc \
   Attrs.inc \
+  AttrParsedAttrList.inc \
   CC1Options.inc \
   DiagnosticASTKinds.inc \
   DiagnosticCommonKinds.inc \
diff --git a/lib/Parse/Android.mk b/lib/Parse/Android.mk
index 2ced435..2e419ea 100644
--- a/lib/Parse/Android.mk
+++ b/lib/Parse/Android.mk
@@ -8,10 +8,11 @@
 TBLGEN_TABLES :=    \
 	AttrList.inc	\
 	AttrLateParsed.inc \
+        AttrParsedAttrList.inc \
 	Attrs.inc	\
 	DeclNodes.inc	\
 	DiagnosticParseKinds.inc	\
-    DiagnosticCommonKinds.inc	\
+        DiagnosticCommonKinds.inc	\
 	StmtNodes.inc
 
 clang_parse_SRC_FILES :=	\
diff --git a/lib/Rewrite/Android.mk b/lib/Rewrite/Android.mk
index 45f9976..5a7eec9 100644
--- a/lib/Rewrite/Android.mk
+++ b/lib/Rewrite/Android.mk
@@ -12,6 +12,7 @@
 TBLGEN_TABLES := \
   AttrList.inc \
   Attrs.inc \
+  AttrParsedAttrList.inc \
   DiagnosticCommonKinds.inc \
   DiagnosticFrontendKinds.inc \
   DeclNodes.inc \
diff --git a/lib/Sema/Android.mk b/lib/Sema/Android.mk
index 860dd77..4669f86 100644
--- a/lib/Sema/Android.mk
+++ b/lib/Sema/Android.mk
@@ -8,6 +8,8 @@
 TBLGEN_TABLES :=    \
 	AttrList.inc	\
 	Attrs.inc	\
+	AttrParsedAttrKinds.inc    \
+	AttrParsedAttrList.inc    \
 	AttrTemplateInstantiate.inc	\
 	DeclNodes.inc	\
 	DiagnosticASTKinds.inc	\
diff --git a/lib/Serialization/Android.mk b/lib/Serialization/Android.mk
index cbb70ff..1df628c 100644
--- a/lib/Serialization/Android.mk
+++ b/lib/Serialization/Android.mk
@@ -11,6 +11,7 @@
 
 TBLGEN_TABLES := \
   AttrList.inc \
+  AttrParsedAttrList.inc \
   AttrPCHRead.inc \
   AttrPCHWrite.inc \
   Attrs.inc \
diff --git a/lib/StaticAnalyzer/Checkers/Android.mk b/lib/StaticAnalyzer/Checkers/Android.mk
index 3ca40e5..902a44b 100644
--- a/lib/StaticAnalyzer/Checkers/Android.mk
+++ b/lib/StaticAnalyzer/Checkers/Android.mk
@@ -3,6 +3,7 @@
 clang_static_analyzer_checkers_TBLGEN_TABLES := \
   AttrKinds.inc \
   AttrList.inc \
+  AttrParsedAttrList.inc \
   Attrs.inc \
   Checkers.inc \
   DeclNodes.inc \
diff --git a/lib/StaticAnalyzer/Core/Android.mk b/lib/StaticAnalyzer/Core/Android.mk
index 955f695..9437340 100644
--- a/lib/StaticAnalyzer/Core/Android.mk
+++ b/lib/StaticAnalyzer/Core/Android.mk
@@ -8,7 +8,6 @@
   StmtNodes.inc
 
 clang_static_analyzer_core_SRC_FILES := \
-  AggExprVisitor.cpp \
   AnalysisManager.cpp \
   BasicConstraintManager.cpp \
   BasicValueFactory.cpp \
diff --git a/tools/driver/Android.mk b/tools/driver/Android.mk
index 8f88009..9e67642 100644
--- a/tools/driver/Android.mk
+++ b/tools/driver/Android.mk
@@ -40,6 +40,7 @@
   libclangAnalysis \
   libclangIndex \
   libclangRewrite \
+  libclangEdit \
   libclangAST \
   libclangLex \
   libclangBasic \