Fix location of ICCEs and NoSuchMethodErrors.

Also add detail as to why verifier believes an ICCE.

Change-Id: Ie16ea2847fb94e157969c560a780c9345b1e7441
diff --git a/src/class_linker.cc b/src/class_linker.cc
index e693c56..41f14df 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -3524,40 +3524,40 @@
       case kDirect:
       case kStatic:
         if (resolved != NULL) {
-          ThrowIncompatibleClassChangeError(type, kVirtual, resolved);
+          ThrowIncompatibleClassChangeError(type, kVirtual, resolved, referrer);
         } else {
           resolved = klass->FindInterfaceMethod(name, signature);
           if (resolved != NULL) {
-            ThrowIncompatibleClassChangeError(type, kInterface, resolved);
+            ThrowIncompatibleClassChangeError(type, kInterface, resolved, referrer);
           } else {
-            ThrowNoSuchMethodError(type, klass, name, signature);
+            ThrowNoSuchMethodError(type, klass, name, signature, referrer);
           }
         }
         break;
       case kInterface:
         if (resolved != NULL) {
-          ThrowIncompatibleClassChangeError(type, kDirect, resolved);
+          ThrowIncompatibleClassChangeError(type, kDirect, resolved, referrer);
         } else {
           resolved = klass->FindVirtualMethod(name, signature);
           if (resolved != NULL) {
-            ThrowIncompatibleClassChangeError(type, kVirtual, resolved);
+            ThrowIncompatibleClassChangeError(type, kVirtual, resolved, referrer);
           } else {
-            ThrowNoSuchMethodError(type, klass, name, signature);
+            ThrowNoSuchMethodError(type, klass, name, signature, referrer);
           }
         }
         break;
       case kSuper:
-        ThrowNoSuchMethodError(type, klass, name, signature);
+        ThrowNoSuchMethodError(type, klass, name, signature, referrer);
         break;
       case kVirtual:
         if (resolved != NULL) {
-          ThrowIncompatibleClassChangeError(type, kDirect, resolved);
+          ThrowIncompatibleClassChangeError(type, kDirect, resolved, referrer);
         } else {
           resolved = klass->FindInterfaceMethod(name, signature);
           if (resolved != NULL) {
-            ThrowIncompatibleClassChangeError(type, kInterface, resolved);
+            ThrowIncompatibleClassChangeError(type, kInterface, resolved, referrer);
           } else {
-            ThrowNoSuchMethodError(type, klass, name, signature);
+            ThrowNoSuchMethodError(type, klass, name, signature, referrer);
           }
         }
         break;