From 861ea56e20d60f28e21d47f331c29b2e303e2dbe Mon Sep 17 00:00:00 2001 From: Stephen Hines Date: Wed, 23 Apr 2014 16:03:57 -0700 Subject: Fix ART compilation for Clang 3.5. This change adds required <> to some template instantiations, which Clang was complaining about (and ignoring otherwise). It also updates the integrated assembler defines, since Clang 3.5 now supports named arguments. Change-Id: I878b8c96bcbc29415582c18a2df678b7f9a9d4ad --- runtime/arch/x86/asm_support_x86.S | 4 ++-- runtime/interpreter/interpreter.cc | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/runtime/arch/x86/asm_support_x86.S b/runtime/arch/x86/asm_support_x86.S index e329530..642d9a3 100644 --- a/runtime/arch/x86/asm_support_x86.S +++ b/runtime/arch/x86/asm_support_x86.S @@ -19,8 +19,8 @@ #include "asm_support_x86.h" -#if defined(__clang__) - // Clang's as(1) doesn't let you name macro parameters. +#if defined(__clang__) && (__clang_major__ < 4) && (__clang_minor__ < 5) + // Clang's as(1) doesn't let you name macro parameters prior to 3.5. #define MACRO0(macro_name) .macro macro_name #define MACRO1(macro_name, macro_arg1) .macro macro_name #define MACRO2(macro_name, macro_arg1, macro_args2) .macro macro_name diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc index 1bf0078..e3f3cd0 100644 --- a/runtime/interpreter/interpreter.cc +++ b/runtime/interpreter/interpreter.cc @@ -302,19 +302,19 @@ JValue ExecuteGotoImpl(Thread* self, MethodHelper& mh, const DexFile::CodeItem* exit(0); } // Explicit definitions of ExecuteGotoImpl. -template SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) +template<> SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) JValue ExecuteGotoImpl(Thread* self, MethodHelper& mh, const DexFile::CodeItem* code_item, ShadowFrame& shadow_frame, JValue result_register); -template SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) +template<> SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) JValue ExecuteGotoImpl(Thread* self, MethodHelper& mh, const DexFile::CodeItem* code_item, ShadowFrame& shadow_frame, JValue result_register); -template SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) +template<> SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) JValue ExecuteGotoImpl(Thread* self, MethodHelper& mh, const DexFile::CodeItem* code_item, ShadowFrame& shadow_frame, JValue result_register); -template SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) +template<> SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) JValue ExecuteGotoImpl(Thread* self, MethodHelper& mh, const DexFile::CodeItem* code_item, ShadowFrame& shadow_frame, JValue result_register); -- cgit v1.1