Various GCC 3.6 and clang build fixes.
Remove #error in common_test.h that fires with clang build and replace with
runtime error.
Fix bit rot caused by not compiling with Wthread-safety.
Fix clang build issues in compiler relating to missing header file definitions
in object files.
Other minor build and tidying issues.
Change-Id: Ife829ab0664581936155be524de46e6181c750b0
diff --git a/src/verifier/method_verifier.h b/src/verifier/method_verifier.h
index b7e1cf2..ab7e3cc 100644
--- a/src/verifier/method_verifier.h
+++ b/src/verifier/method_verifier.h
@@ -583,8 +583,10 @@
// Devirtualization map.
typedef SafeMap<const uint32_t, CompilerDriver::MethodReference> PcToConreteMethod;
- typedef SafeMap<const CompilerDriver::MethodReference, const PcToConreteMethod*> DevirtualizationMapTable;
- MethodVerifier::PcToConreteMethod* GenerateDevirtMap();
+ typedef SafeMap<const CompilerDriver::MethodReference, const PcToConreteMethod*>
+ DevirtualizationMapTable;
+ MethodVerifier::PcToConreteMethod* GenerateDevirtMap()
+ SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
static Mutex* devirt_maps_lock_ DEFAULT_MUTEX_ACQUIRED_AFTER;
static DevirtualizationMapTable* devirt_maps_ GUARDED_BY(devirt_maps_lock_);
diff --git a/src/verifier/reg_type_cache-inl.h b/src/verifier/reg_type_cache-inl.h
index 0c6e8d0..f6b0056 100644
--- a/src/verifier/reg_type_cache-inl.h
+++ b/src/verifier/reg_type_cache-inl.h
@@ -24,7 +24,7 @@
namespace art {
namespace verifier {
template <class Type>
-Type* RegTypeCache::CreatePrimitiveTypeInstance(mirror::ClassLoader* loader, std::string descriptor) {
+Type* RegTypeCache::CreatePrimitiveTypeInstance(std::string descriptor) {
mirror::Class* klass = NULL;
// Try loading the class from linker.
if (!descriptor.empty()) {
diff --git a/src/verifier/reg_type_cache.cc b/src/verifier/reg_type_cache.cc
index aac7e37..e914d1e 100644
--- a/src/verifier/reg_type_cache.cc
+++ b/src/verifier/reg_type_cache.cc
@@ -266,18 +266,18 @@
}
void RegTypeCache::CreatePrimitiveTypes() {
- CreatePrimitiveTypeInstance<UndefinedType>(NULL, "");
- CreatePrimitiveTypeInstance<ConflictType>(NULL, "");
- CreatePrimitiveTypeInstance<BooleanType>(NULL, "Z");
- CreatePrimitiveTypeInstance<ByteType>(NULL, "B");
- CreatePrimitiveTypeInstance<ShortType>(NULL, "S");
- CreatePrimitiveTypeInstance<CharType>(NULL, "C");
- CreatePrimitiveTypeInstance<IntegerType>(NULL, "I");
- CreatePrimitiveTypeInstance<LongLoType>(NULL, "J");
- CreatePrimitiveTypeInstance<LongHiType>(NULL, "J");
- CreatePrimitiveTypeInstance<FloatType>(NULL, "F");
- CreatePrimitiveTypeInstance<DoubleLoType>(NULL, "D");
- CreatePrimitiveTypeInstance<DoubleHiType>(NULL, "D");
+ CreatePrimitiveTypeInstance<UndefinedType>("");
+ CreatePrimitiveTypeInstance<ConflictType>("");
+ CreatePrimitiveTypeInstance<BooleanType>("Z");
+ CreatePrimitiveTypeInstance<ByteType>("B");
+ CreatePrimitiveTypeInstance<ShortType>("S");
+ CreatePrimitiveTypeInstance<CharType>("C");
+ CreatePrimitiveTypeInstance<IntegerType>("I");
+ CreatePrimitiveTypeInstance<LongLoType>("J");
+ CreatePrimitiveTypeInstance<LongHiType>("J");
+ CreatePrimitiveTypeInstance<FloatType>("F");
+ CreatePrimitiveTypeInstance<DoubleLoType>("D");
+ CreatePrimitiveTypeInstance<DoubleHiType>("D");
}
const RegType& RegTypeCache::FromUnresolvedMerge(const RegType& left, const RegType& right) {
diff --git a/src/verifier/reg_type_cache.h b/src/verifier/reg_type_cache.h
index 41d3c69..602c950 100644
--- a/src/verifier/reg_type_cache.h
+++ b/src/verifier/reg_type_cache.h
@@ -55,7 +55,7 @@
const RegType& From(mirror::ClassLoader* loader, std::string descriptor, bool precise)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
template <class Type>
- static Type* CreatePrimitiveTypeInstance(mirror::ClassLoader*, std::string)
+ static Type* CreatePrimitiveTypeInstance(std::string descriptor)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
void FillPrimitiveTypes() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
const RegType& FromClass(mirror::Class* klass, bool precise)