Merge changes from upstream repository (r112367)

Change-Id: Ib88c8fd890e7c8c5597ea2b86cfa934438965c08
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..4f27749
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,18 @@
+LOCAL_PATH := $(call my-dir)
+CLANG_ROOT_PATH := $(LOCAL_PATH)
+
+include $(CLEAR_VARS)
+
+subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
+		lib/Basic	\
+		lib/Lex	\
+		lib/Parse	\
+		lib/AST	\
+		lib/Sema	\
+		lib/CodeGen	\
+		lib/Analysis	\
+	))
+
+include $(LOCAL_PATH)/clang.mk
+
+include $(subdirs)
diff --git a/MODULE_LICENSE_BSD_LIKE b/MODULE_LICENSE_BSD_LIKE
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_BSD_LIKE
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..a378a5f
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,63 @@
+==============================================================================
+LLVM Release License
+==============================================================================
+University of Illinois/NCSA
+Open Source License
+
+Copyright (c) 2007-2010 University of Illinois at Urbana-Champaign.
+All rights reserved.
+
+Developed by:
+
+    LLVM Team
+
+    University of Illinois at Urbana-Champaign
+
+    http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimers.
+
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimers in the
+      documentation and/or other materials provided with the distribution.
+
+    * Neither the names of the LLVM Team, University of Illinois at
+      Urbana-Champaign, nor the names of its contributors may be used to
+      endorse or promote products derived from this Software without specific
+      prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+SOFTWARE.
+
+==============================================================================
+The LLVM software contains code written by third parties.  Such software will
+have its own individual LICENSE.TXT file in the directory in which it appears.
+This file will describe the copyrights, license, and restrictions which apply
+to that code.
+
+The disclaimer of warranty in the University of Illinois Open Source License
+applies to all code in the LLVM Distribution, and nothing in any of the
+other licenses gives permission to use the names of the LLVM Team or the
+University of Illinois to endorse or promote products derived from this
+Software.
+
+The following pieces of software have additional or alternate copyrights,
+licenses, and/or restrictions:
+
+Program             Directory
+-------             ---------
+<none yet>
+
diff --git a/clang-host-build.mk b/clang-host-build.mk
new file mode 100644
index 0000000..df3a759
--- /dev/null
+++ b/clang-host-build.mk
@@ -0,0 +1,17 @@
+LOCAL_CFLAGS :=	\
+	-pedantic	\
+	-Wcast-qual	\
+	-Wno-long-long	\
+	$(LOCAL_CFLAGS)
+
+# Make sure bionic is first so we can include system headers.
+LOCAL_C_INCLUDES :=	\
+	$(CLANG_ROOT_PATH)/include	\
+	$(LOCAL_C_INCLUDES)
+
+LLVM_ROOT_PATH := external/llvm
+include $(LLVM_ROOT_PATH)/llvm.mk
+
+ifneq ($(LLVM_HOST_BUILD_MK),)
+include $(LLVM_HOST_BUILD_MK)
+endif
diff --git a/clang-tblgen-rules.mk b/clang-tblgen-rules.mk
new file mode 100644
index 0000000..c72c4fa
--- /dev/null
+++ b/clang-tblgen-rules.mk
@@ -0,0 +1,82 @@
+###########################################################
+## TableGen: Compile .td files to .inc.
+###########################################################
+ifeq ($(LOCAL_MODULE_CLASS),)
+    LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+endif
+
+ifneq ($(strip $(TBLGEN_TABLES)),)
+
+intermediates := $(call local-intermediates-dir)
+
+ifneq ($(findstring AttrImpl.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/clang/AST/AttrImpl.inc
+$(intermediates)/clang/AST/AttrImpl.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td $(TBLGEN)
+	@echo "Building Clang attribute implementations with tblgen"
+	$(call transform-host-td-to-out,clang-attr-impl)
+endif
+
+ifneq ($(findstring AttrList.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/clang/Basic/AttrList.inc
+$(intermediates)/clang/Basic/AttrList.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td $(TBLGEN)
+	@echo "Building Clang attribute list with tblgen"
+	$(call transform-host-td-to-out,clang-attr-list)
+endif
+
+ifneq ($(findstring Attrs.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/clang/AST/Attrs.inc
+$(intermediates)/clang/AST/Attrs.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td $(TBLGEN)
+	@echo "Building Clang attribute classes with tblgen"
+	$(call transform-host-td-to-out,clang-attr-classes)
+endif
+
+ifneq ($(filter Diagnostic%Kinds.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/clang/Basic/,$(filter Diagnostic%Kinds.inc,$(TBLGEN_TABLES)))
+$(intermediates)/clang/Basic/Diagnostic%Kinds.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td $(TBLGEN)
+	@echo "Building Clang $(patsubst Diagnostic%Kinds.inc,%,$(@F)) diagnostic tables with tblgen"
+	$(call transform-host-td-to-out,clang-diags-defs -clang-component=$(patsubst Diagnostic%Kinds.inc,%,$(@F)))
+endif
+
+ifneq ($(findstring DiagnosticGroups.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/clang/Basic/DiagnosticGroups.inc
+$(intermediates)/clang/Basic/DiagnosticGroups.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td $(CLANG_ROOT_PATH)/include/clang/Basic/DiagnosticGroups.td $(TBLGEN)
+	@echo "Building Clang diagnostic groups with tblgen"
+	$(call transform-host-td-to-out,clang-diag-groups)
+endif
+
+ifneq ($(findstring DeclNodes.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/clang/AST/DeclNodes.inc
+$(intermediates)/clang/AST/DeclNodes.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/DeclNodes.td $(TBLGEN)
+	@echo "Building Clang declaration node tables with tblgen"
+	$(call transform-host-td-to-out,clang-decl-nodes)
+endif
+
+ifneq ($(findstring StmtNodes.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/clang/AST/StmtNodes.inc
+$(intermediates)/clang/AST/StmtNodes.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/StmtNodes.td $(TBLGEN)
+	@echo "Building Clang statement node tables with tblgen"
+	$(call transform-host-td-to-out,clang-stmt-nodes)
+endif
+
+ifneq ($(findstring arm_neon.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/clang/Basic/arm_neon.inc
+$(intermediates)/clang/Basic/arm_neon.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/arm_neon.td $(TBLGEN)
+	@echo "Building Clang arm_neon.inc with tblgen"
+	$(call transform-host-td-to-out,arm-neon-sema)
+endif
+
+ifneq ($(findstring Options.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/clang/Driver/Options.inc
+$(intermediates)/clang/Driver/Options.inc: $(CLANG_ROOT_PATH)/include/clang/Driver/Options.td $(CLANG_ROOT_PATH)/include/clang/Driver/OptParser.td $(TBLGEN)
+	@echo "Building Clang Driver Option tables with tblgen"
+	$(call transform-host-td-to-out,opt-parser-defs)
+endif
+
+ifneq ($(findstring CC1Options.inc,$(TBLGEN_TABLES)),)
+LOCAL_GENERATED_SOURCES += $(intermediates)/clang/Driver/CC1Options.inc
+$(intermediates)/clang/Driver/CC1Options.inc: $(CLANG_ROOT_PATH)/include/clang/Driver/CC1Options.td $(CLANG_ROOT_PATH)/include/clang/Driver/OptParser.td $(TBLGEN)
+	@echo "Building Clang CC1 Option tables with tblgen"
+	$(call transform-host-td-to-out,opt-parser-defs)
+endif
+
+endif
diff --git a/clang.mk b/clang.mk
new file mode 100644
index 0000000..587a510
--- /dev/null
+++ b/clang.mk
@@ -0,0 +1,7 @@
+ifeq ($(CLANG_ROOT_PATH),)
+$(error Must set variable CLANG_ROOT_PATH before including this! $(LOCAL_PATH))
+endif
+
+CLANG_HOST_BUILD_MK := $(CLANG_ROOT_PATH)/clang-host-build.mk
+CLANG_TBLGEN_RULES_MK := $(CLANG_ROOT_PATH)/clang-tblgen-rules.mk
+CLANG_VERSION_INC_MK := $(CLANG_ROOT_PATH)/clang-version-inc.mk
diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h
index 819d7d2..b7d0510 100644
--- a/include/clang/AST/Type.h
+++ b/include/clang/AST/Type.h
@@ -1781,10 +1781,10 @@
   static int getPointAccessorIdx(char c) {
     switch (c) {
     default: return -1;
-    case 'x': return 0;
-    case 'y': return 1;
-    case 'z': return 2;
-    case 'w': return 3;
+    case 'x': case 'r': return 0;
+    case 'y': case 'g': return 1;
+    case 'z': case 'b': return 2;
+    case 'w': case 'a': return 3;
     }
   }
   static int getNumericAccessorIdx(char c) {
diff --git a/include/clang/Basic/Attr.td b/include/clang/Basic/Attr.td
index 12bd5cf..688d368 100644
--- a/include/clang/Basic/Attr.td
+++ b/include/clang/Basic/Attr.td
@@ -10,8 +10,8 @@
 // allow attributes on a given Decl or Stmt).
 class AttrSubject;
 
-include "clang/Basic/DeclNodes.td"
-include "clang/Basic/StmtNodes.td"
+include "DeclNodes.td"
+include "StmtNodes.td"
 
 // A subset-subject is an AttrSubject constrained to operate only on some subset
 // of that subject.
diff --git a/lib/AST/Android.mk b/lib/AST/Android.mk
new file mode 100644
index 0000000..733dcb6
--- /dev/null
+++ b/lib/AST/Android.mk
@@ -0,0 +1,64 @@
+LOCAL_PATH:= $(call my-dir)
+
+# For the host only
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES :=    \
+	AttrImpl.inc	\
+	AttrList.inc	\
+	Attrs.inc	\
+	DeclNodes.inc	\
+	DiagnosticASTKinds.inc	\
+    DiagnosticCommonKinds.inc	\
+	StmtNodes.inc
+
+clang_ast_SRC_FILES :=	\
+	APValue.cpp	\
+	ASTConsumer.cpp	\
+	ASTContext.cpp	\
+	ASTDiagnostic.cpp	\
+	ASTImporter.cpp	\
+	AttrImpl.cpp	\
+	CXXInheritance.cpp	\
+	Decl.cpp	\
+	DeclBase.cpp	\
+	DeclCXX.cpp	\
+	DeclFriend.cpp	\
+	DeclGroup.cpp	\
+	DeclObjC.cpp	\
+	DeclPrinter.cpp	\
+	DeclTemplate.cpp	\
+	DeclarationName.cpp	\
+	Expr.cpp	\
+	ExprCXX.cpp	\
+	ExprClassification.cpp	\
+	ExprConstant.cpp	\
+	FullExpr.cpp	\
+	ItaniumCXXABI.cpp	\
+	InheritViz.cpp	\
+	MicrosoftCXXABI.cpp	\
+	NestedNameSpecifier.cpp	\
+	ParentMap.cpp	\
+	RecordLayout.cpp	\
+	RecordLayoutBuilder.cpp	\
+	Stmt.cpp	\
+	StmtDumper.cpp	\
+	StmtIterator.cpp	\
+	StmtPrinter.cpp	\
+	StmtProfile.cpp	\
+	StmtViz.cpp	\
+	TemplateBase.cpp	\
+	TemplateName.cpp	\
+	Type.cpp	\
+	TypeLoc.cpp	\
+	TypePrinter.cpp
+
+LOCAL_SRC_FILES := $(clang_ast_SRC_FILES)
+
+LOCAL_MODULE:= libclangAST
+
+include $(CLANG_HOST_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Analysis/Android.mk b/lib/Analysis/Android.mk
new file mode 100644
index 0000000..587c22c
--- /dev/null
+++ b/lib/Analysis/Android.mk
@@ -0,0 +1,35 @@
+LOCAL_PATH:= $(call my-dir)
+
+# For the host only
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES :=    \
+	AttrList.inc	\
+	Attrs.inc	\
+	DeclNodes.inc	\
+	DiagnosticCommonKinds.inc	\
+	DiagnosticAnalysisKinds.inc	\
+	StmtNodes.inc
+
+clang_analysis_SRC_FILES :=	\
+	AnalysisContext.cpp	\
+	CFG.cpp	\
+	CFGStmtMap.cpp	\
+	FormatString.cpp	\
+	LiveVariables.cpp	\
+	PrintfFormatString.cpp	\
+	PseudoConstantAnalysis.cpp	\
+	ReachableCode.cpp	\
+	ScanfFormatString.cpp	\
+	UninitializedValues.cpp
+
+
+LOCAL_SRC_FILES := $(clang_analysis_SRC_FILES)
+
+LOCAL_MODULE:= libclangAnalysis
+
+include $(CLANG_HOST_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Basic/Android.mk b/lib/Basic/Android.mk
new file mode 100644
index 0000000..7abe6d2
--- /dev/null
+++ b/lib/Basic/Android.mk
@@ -0,0 +1,40 @@
+LOCAL_PATH:= $(call my-dir)
+
+# For the host only
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES :=    \
+	DiagnosticGroups.inc	\
+	DiagnosticASTKinds.inc	\
+	DiagnosticLexKinds.inc	\
+	DiagnosticSemaKinds.inc	\
+    DiagnosticCommonKinds.inc	\
+	DiagnosticDriverKinds.inc	\
+	DiagnosticParseKinds.inc	\
+	DiagnosticAnalysisKinds.inc	\
+	DiagnosticFrontendKinds.inc	\
+	arm_neon.inc
+
+clang_basic_SRC_FILES :=	\
+	Builtins.cpp	\
+	ConvertUTF.c	\
+	Diagnostic.cpp	\
+	FileManager.cpp	\
+	IdentifierTable.cpp	\
+	SourceLocation.cpp	\
+	SourceManager.cpp	\
+	TargetInfo.cpp	\
+	Targets.cpp	\
+	TokenKinds.cpp	\
+	Version.cpp
+
+LOCAL_SRC_FILES := $(clang_basic_SRC_FILES)
+
+LOCAL_MODULE:= libclangBasic
+
+include $(CLANG_HOST_BUILD_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/CodeGen/Android.mk b/lib/CodeGen/Android.mk
new file mode 100644
index 0000000..4a8d40e
--- /dev/null
+++ b/lib/CodeGen/Android.mk
@@ -0,0 +1,61 @@
+LOCAL_PATH:= $(call my-dir)
+
+# For the host only
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES :=    \
+	AttrList.inc	\
+	Attrs.inc	\
+	DeclNodes.inc	\
+	DiagnosticCommonKinds.inc	\
+	DiagnosticFrontendKinds.inc	\
+	StmtNodes.inc	\
+	arm_neon.inc
+
+clang_codegen_SRC_FILES :=	\
+	BackendUtil.cpp	\
+	CGBlocks.cpp	\
+	CGBuiltin.cpp	\
+	CGCXX.cpp	\
+	CGCall.cpp	\
+	CGClass.cpp	\
+	CGDebugInfo.cpp	\
+	CGDecl.cpp	\
+	CGDeclCXX.cpp	\
+	CGException.cpp	\
+	CGExpr.cpp	\
+	CGExprAgg.cpp	\
+	CGExprCXX.cpp	\
+	CGExprComplex.cpp	\
+	CGExprConstant.cpp	\
+	CGExprScalar.cpp	\
+	CGObjC.cpp	\
+	CGObjCGNU.cpp	\
+	CGObjCMac.cpp	\
+	CGRTTI.cpp	\
+	CGRecordLayoutBuilder.cpp	\
+	CGStmt.cpp	\
+	CGTemporaries.cpp	\
+	CGVTT.cpp	\
+	CGVTables.cpp	\
+	CodeGenAction.cpp	\
+	CodeGenFunction.cpp	\
+	CodeGenModule.cpp	\
+	CodeGenTypes.cpp	\
+	ItaniumCXXABI.cpp	\
+	Mangle.cpp	\
+	MicrosoftCXXABI.cpp	\
+	ModuleBuilder.cpp	\
+	TargetInfo.cpp
+
+LOCAL_SRC_FILES := $(clang_codegen_SRC_FILES)
+
+LOCAL_MODULE:= libclangCodeGen
+
+include $(CLANG_HOST_BUILD_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Lex/Android.mk b/lib/Lex/Android.mk
new file mode 100644
index 0000000..c18fb00
--- /dev/null
+++ b/lib/Lex/Android.mk
@@ -0,0 +1,39 @@
+LOCAL_PATH:= $(call my-dir)
+
+# For the host only
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES :=    \
+	DiagnosticLexKinds.inc	\
+    DiagnosticCommonKinds.inc
+
+clang_lex_SRC_FILES :=	\
+	HeaderMap.cpp	\
+	HeaderSearch.cpp	\
+	Lexer.cpp	\
+	LiteralSupport.cpp	\
+	MacroArgs.cpp	\
+	MacroInfo.cpp	\
+	PPCaching.cpp	\
+	PPDirectives.cpp	\
+	PPExpressions.cpp	\
+	PPLexerChange.cpp	\
+	PPMacroExpansion.cpp	\
+	PTHLexer.cpp	\
+	Pragma.cpp	\
+	PreprocessingRecord.cpp	\
+	Preprocessor.cpp	\
+	PreprocessorLexer.cpp	\
+	ScratchBuffer.cpp	\
+	TokenConcatenation.cpp	\
+	TokenLexer.cpp
+
+LOCAL_SRC_FILES := $(clang_lex_SRC_FILES)
+
+LOCAL_MODULE:= libclangLex
+
+include $(CLANG_HOST_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Parse/Android.mk b/lib/Parse/Android.mk
new file mode 100644
index 0000000..597fd49
--- /dev/null
+++ b/lib/Parse/Android.mk
@@ -0,0 +1,37 @@
+LOCAL_PATH:= $(call my-dir)
+
+# For the host only
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES :=    \
+	AttrList.inc	\
+	Attrs.inc	\
+	DeclNodes.inc	\
+	DiagnosticParseKinds.inc	\
+    DiagnosticCommonKinds.inc	\
+	StmtNodes.inc
+
+clang_parse_SRC_FILES :=	\
+	ParseAST.cpp	\
+	ParseCXXInlineMethods.cpp	\
+	ParseDecl.cpp	\
+	ParseDeclCXX.cpp	\
+	ParseExpr.cpp	\
+	ParseExprCXX.cpp	\
+	ParseInit.cpp	\
+	ParseObjc.cpp	\
+	ParsePragma.cpp	\
+	ParseStmt.cpp	\
+	ParseTemplate.cpp	\
+	ParseTentative.cpp	\
+	Parser.cpp
+
+LOCAL_SRC_FILES := $(clang_parse_SRC_FILES)
+
+LOCAL_MODULE:= libclangParse
+
+include $(CLANG_HOST_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Sema/Android.mk b/lib/Sema/Android.mk
new file mode 100644
index 0000000..03f742b
--- /dev/null
+++ b/lib/Sema/Android.mk
@@ -0,0 +1,59 @@
+LOCAL_PATH:= $(call my-dir)
+
+# For the host only
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES :=    \
+	AttrList.inc	\
+	Attrs.inc	\
+	DeclNodes.inc	\
+	DiagnosticASTKinds.inc	\
+	DiagnosticSemaKinds.inc	\
+	DiagnosticParseKinds.inc	\
+	DiagnosticCommonKinds.inc	\
+	StmtNodes.inc	\
+	arm_neon.inc
+
+clang_sema_SRC_FILES :=	\
+	AnalysisBasedWarnings.cpp	\
+	AttributeList.cpp	\
+	CodeCompleteConsumer.cpp	\
+	DeclSpec.cpp	\
+	IdentifierResolver.cpp	\
+	JumpDiagnostics.cpp	\
+	Sema.cpp	\
+	SemaAccess.cpp	\
+	SemaAttr.cpp	\
+	SemaCXXCast.cpp	\
+	SemaCXXScopeSpec.cpp	\
+	SemaChecking.cpp	\
+	SemaCodeComplete.cpp	\
+	SemaDecl.cpp	\
+	SemaDeclAttr.cpp	\
+	SemaDeclCXX.cpp	\
+	SemaDeclObjC.cpp	\
+	SemaExceptionSpec.cpp	\
+	SemaExpr.cpp	\
+	SemaExprCXX.cpp	\
+	SemaExprObjC.cpp	\
+	SemaInit.cpp	\
+	SemaLookup.cpp	\
+	SemaObjCProperty.cpp	\
+	SemaOverload.cpp	\
+	SemaStmt.cpp	\
+	SemaTemplate.cpp	\
+	SemaTemplateDeduction.cpp	\
+	SemaTemplateInstantiate.cpp	\
+	SemaTemplateInstantiateDecl.cpp	\
+	SemaType.cpp	\
+	TargetAttributesSema.cpp
+
+LOCAL_SRC_FILES := $(clang_sema_SRC_FILES)
+
+LOCAL_MODULE:= libclangSema
+
+include $(CLANG_HOST_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)