diff options
author | Stephen Hines <srhines@google.com> | 2014-04-23 16:03:57 -0700 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2014-04-24 18:58:23 -0700 |
commit | 861ea56e20d60f28e21d47f331c29b2e303e2dbe (patch) | |
tree | 5cd016ab31e2448560fcd3313805d21aff184701 /runtime | |
parent | 17c50db442d2791d9c4d7d1e98060556c323ce9b (diff) | |
download | art-861ea56e20d60f28e21d47f331c29b2e303e2dbe.zip art-861ea56e20d60f28e21d47f331c29b2e303e2dbe.tar.gz art-861ea56e20d60f28e21d47f331c29b2e303e2dbe.tar.bz2 |
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
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/arch/x86/asm_support_x86.S | 4 | ||||
-rw-r--r-- | 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<true, false>(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<false, false>(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<true, true>(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<false, true>(Thread* self, MethodHelper& mh, const DexFile::CodeItem* code_item, ShadowFrame& shadow_frame, JValue result_register); |