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)