Home | History | Annotate | Download | only in verifier

Lines Matching refs:Fail

116         verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << error_msg << work_insn_idx;
121 // In a non-debug build, just fail the class.
123 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << error_msg << work_insn_idx;
397 // to hard fail.
742 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
757 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
772 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "method has more than one of public/protected/private";
781 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "zero-length code in concrete non-native method";
798 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
807 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "interface methods must be public";
813 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "interface methods can't be protected";
819 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "constructors can't be abstract or native";
830 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "non-zero-length code in abstract or native method";
840 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "interfaces may not have non-static constructor";
843 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "interfaces may not have final methods";
851 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
863 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "constructors can't be synchronized";
871 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad register counts (ins=" << code_item_->ins_size_
897 std::ostream& MethodVerifier::Fail(VerifyError error) {
915 // at runtime. We may fail to find or to agree on access because of not yet available class
922 // If we fail again at runtime, mark that this instruction would throw and force this
928 // Note: this assumes that Fail is called before we do any work_line modifications.
929 // Note: this can fail before we touch any instruction, for the signature of a method. So
950 // Hard verification failures at compile time will still fail at runtime, so the class is
1029 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "code did not end where expected ("
1052 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad exception entry: startAddr=" << start
1057 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
1079 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
1084 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
1149 // the data flow analysis will fail.
1150 Fail(VERIFY_ERROR_FORCE_INTERPRETER)
1227 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid arg count (" << v_a << ") in "
1242 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid arg count (" << inst->VRegA() << ") in "
1249 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unexpected opcode " << inst->Name();
1254 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "opcode only expected at runtime " << inst->Name();
1262 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "register index out of range (" << idx << " >= "
1271 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "wide register index out of range (" << idx
1280 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad field index " << idx << " (max "
1289 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad method index " << idx << " (max "
1298 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad type index " << idx.index_ << " (max "
1305 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "can't call new-instance on type '" << descriptor << "'";
1310 Fail(VERIFY_ERROR_INSTANTIATION);
1317 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad prototype index " << idx << " (max "
1326 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad string index " << idx << " (max "
1335 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad type index " << idx.index_ << " (max "
1344 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad type index " << idx.index_ << " (max "
1356 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
1361 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
1379 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid array data start: at " << cur_offset
1388 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unaligned array data table: at " << cur_offset
1395 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "array data table at " << cur_offset
1406 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid array data end: at " << cur_offset
1422 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "branch offset of zero not allowed at"
1429 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "branch target overflow "
1438 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid branch target " << offset << " (-> "
1492 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid switch start: at " << cur_offset
1501 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unaligned switch table: at " << cur_offset
1508 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "switch table at " << cur_offset
1530 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
1537 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid switch end: at " << cur_offset
1552 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid packed switch: first_key=" << first_key
1564 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid sparse switch: last key=" << last_key
1580 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid switch target " << offset
1595 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid reg index (" << arg[idx]
1609 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid reg index " << vA << "+" << vC
1721 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "expected 0 args, but method is not static";
1756 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "expected " << expected_args
1797 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "expected " << expected_args
1816 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unexpected signature type char '"
1823 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "expected " << expected_args
1857 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unexpected char in return type descriptor '"
2094 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "encountered data table in instruction stream";
2151 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "move-exception at pc 0x0";
2165 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "return-void not expected";
2174 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unexpected non-category 1 return type "
2199 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "return-wide not expected";
2214 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "return-object not expected";
2224 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "returning undefined register";
2226 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "returning register with conflict";
2228 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "returning uninitialized object '"
2232 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "return-object returns a non-reference type "
2236 Fail(VERIFY_ERROR_NO_CLASS) << " can't resolve returned type '" << return_type
2245 Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "array with erroneous component type: "
2251 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "returning '" << reg_type
2398 // If this is a primitive type, fail HARD.
2402 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "using primitive type "
2421 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "check-cast on unexpected class " << res_type;
2423 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "instance-of on unexpected class " << res_type;
2427 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "check-cast on non-reference in v" << orig_type_reg;
2429 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "instance-of on non-reference in v" << orig_type_reg;
2433 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "check-cast on uninitialized reference in v"
2436 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "instance-of on uninitialized reference in v"
2454 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "array-length on non-array " << res_type;
2461 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "array-length on non-array " << res_type;
2474 Fail(VERIFY_ERROR_INSTANTIATION)
2534 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "thrown exception not initialized";
2536 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "thrown value of non-reference type " << res_type;
2538 Fail(res_type.IsUnresolvedTypes() ? VERIFY_ERROR_NO_CLASS : VERIFY_ERROR_BAD_CLASS_SOFT)
2562 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid fill-array-data with array type "
2566 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid fill-array-data for array of type "
2572 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid fill-array-data with component type "
2580 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid magic for array-data";
2586 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "array-data size mismatch (" << array_data[1]
2608 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "args to if-eq/if-ne (" << reg_type1 << ","
2620 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "args to 'if' (" << reg_type1 << ","
2629 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "type " << reg_type
2749 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "type " << reg_type
2969 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unable to initialize null ref";
2977 // Unknown super class, fail so we re-check at runtime.
2978 // Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "super class unknown for '" << this_type << "'";
2984 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Expected initialization on uninitialized reference "
3036 Fail(VERIFY_ERROR_CLASS_CHANGE) << "expected interface class in invoke-interface '"
3049 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "interface call on uninitialized object "
3059 // the interface will incorrectly fail.
3092 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << message;
3094 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invoke-polymorphic verification failure.";
3150 Fail(VERIFY_ERROR_FORCE_INTERPRETER);
3375 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "return-void-no-barrier not expected for field "
3383 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "return-void-no-barrier not expected for "
3393 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "return-void not expected";
3465 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Unexpected opcode " << inst->DumpString(dex_file_);
3494 // Note: the flag must be reset as it is only global to decouple Fail and is semantically per
3523 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "bad branch";
3632 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
3648 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Execution can walk off end of code area";
3714 Fail(VerifyError::VERIFY_ERROR_NO_CLASS) << "Could not create precise reference for "
3751 Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "accessing broken descriptor '" << descriptor
3765 Fail(VERIFY_ERROR_ACCESS_CLASS) << "illegal class access: '"
3788 // We don't know enough about the type. Fail here and let runtime handle it.
3789 Fail(VERIFY_ERROR_NO_CLASS) << "unresolved exception class " << exception;
3792 Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "unexpected non-exception class " << exception;
3817 Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "unable to find exception handler";
3864 // If we don't have res_method here we must fail. Just use this bool to make sure of that with a
3883 Fail(VERIFY_ERROR_NO_METHOD) << "couldn't find method "
3893 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "rejecting non-direct call to constructor "
3899 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "rejecting call to class initializer "
3907 // Note: this check must be after the initializer check, as those are required to fail a class,
3917 Fail(VERIFY_ERROR_CLASS_CHANGE)
3924 Fail(VERIFY_ERROR_CLASS_CHANGE)
3937 Fail(VERIFY_ERROR_NO_METHOD) << "invoke-interface " << klass->PrettyDescriptor() << "."
3947 Fail(VERIFY_ERROR_ACCESS_METHOD) << "illegal method access (call "
3954 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invoke-super/virtual can't be used on private method "
3969 Fail(VERIFY_ERROR_CLASS_CHANGE) << "invoke type (" << method_type << ") does not match method "
3973 // Make sure we weren't expecting to fail.
3979 << "not found so we were expecting to fail for some reason.";
3996 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid argument count (" << expected_args
4017 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "'this' arg must be initialized";
4024 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "'this' arg must be initialized";
4052 Fail(adjusted_type.IsUnresolvedTypes()
4073 Fail
4081 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invocation because of missing signature "
4092 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "register v" << get_reg << " has type " << src_type
4107 // none, this will fail below.
4111 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invocation, long or double parameter "
4122 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invocation, expected " << expected_args <<
4133 // The main reason for this code block is to fail hard when we find an illegal use, e.g.,
4143 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Bad call site id #" << call_site_idx
4152 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Call site #" << call_site_idx
4165 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Call site #" << call_site_idx
4185 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Call site #" << call_site_idx
4196 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Call site #" << call_site_idx
4203 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Call site #" << call_site_idx
4250 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Call site #" << call_site_idx
4309 Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "Unable to find referenced class from invoke-super";
4315 Fail(VERIFY_ERROR_CLASS_CHANGE) << "Cannot invoke-super on self as interface";
4321 Fail(VERIFY_ERROR_NO_CLASS) << "Unable to resolve the full class of 'this' used in an"
4325 Fail(VERIFY_ERROR_CLASS_CHANGE)
4336 Fail(VERIFY_ERROR_NO_METHOD) << "unknown super class in invoke-super from "
4343 Fail(VERIFY_ERROR_NO_METHOD) << "invalid invoke-super from "
4367 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
4374 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
4381 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
4389 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
4396 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
4410 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
4415 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
4420 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
4425 Fail(VERIFY_ERROR_BAD_CLASS_HARD)
4487 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Cannot infer method from " << inst->Name();
4510 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid argument count (" << expected_args
4520 // Note: given an uninitialized type, this should always fail. Constructors aren't virtual.
4522 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "'this' arg must be initialized";
4531 Fail(actual_arg_type.IsUninitializedTypes() // Just overcautious - should have never
4553 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invalid call to '"
4563 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invocation of "
4576 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invocation of "
4603 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "new-array on non-array class " << res_type;
4613 // the list and fail. It's legal, if silly, for arg_count to be zero.
4638 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Invalid reg type for array index (" << index_type << ")";
4643 // Null array class; this code path will fail at runtime. Infer a merge-able type from the
4655 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "not array type " << array_type << " with aget";
4659 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "reference array type " << array_type
4662 Fail(VERIFY_ERROR_NO_CLASS) << "cannot verify aget for " << array_type
4673 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "primitive array type " << array_type
4676 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "reference array type " << array_type
4681 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "array type " << array_type
4738 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "put insn has type '" << insn_type
4743 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unexpected value in v" << vregA
4753 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Invalid reg type for array index (" << index_type << ")";
4757 // Null array type; this code path will fail at runtime.
4778 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "not array type " << array_type << " with aput";
4782 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "put insn has type '" << insn_type
4785 Fail(VERIFY_ERROR_NO_CLASS) << "cannot verify aput for " << array_type
4795 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "primitive array type " << array_type
4836 Fail(VERIFY_ERROR_ACCESS_FIELD) << "cannot access static field " << field->PrettyField()
4840 Fail(VERIFY_ERROR_CLASS_CHANGE) << "expected field " << field->PrettyField() << " to be static";
4877 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "instance field access on object that has "
4895 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "cannot access instance field " << field->PrettyField()
4914 Fail(type) << "cannot access instance field " << field->PrettyField()
4923 Fail(VERIFY_ERROR_ACCESS_FIELD) << "cannot access instance field " << field->PrettyField()
4927 Fail(VERIFY_ERROR_CLASS_CHANGE) << "expected field " << field->PrettyField()
4947 // GetInstanceField does an assignability check which will fail for uninitialized types.
4961 Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "Might be accessing a superclass instance field prior "
4965 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "cannot access superclass instance field "
4977 Fail(VERIFY_ERROR_ACCESS_FIELD) << "cannot modify final field " << field->PrettyField()
5014 Fail(error) << "expected field " << ArtField::PrettyField(field)
5034 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "expected field " << ArtField::PrettyField(field)
5046 Fail(error) << "expected field " << ArtField::PrettyField(field)
5091 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Cannot infer field from " << inst->Name();
5098 Fail(VERIFY_ERROR_ACCESS_FIELD) << "cannot modify final field " << field->PrettyField()
5123 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Cannot infer field type from " << inst->Name();
5157 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "expected field " << ArtField::PrettyField(field)
5164 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unexpected value in v" << vregA
5172 Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "expected field " << ArtField::PrettyField(field)
5191 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "expected field " << ArtField::PrettyField(field)
5198 Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "expected field " << ArtField::PrettyField(field)
5218 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid use of move-exception";
5227 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid use of move-result*";
5428 Fail(VerifyError::VERIFY_ERROR_NO_CLASS) << "Could not create precise reference for "