diff options
| -rw-r--r-- | runtime/arch/arm/fault_handler_arm.cc | 14 | ||||
| -rw-r--r-- | runtime/arch/arm64/fault_handler_arm64.cc | 14 | ||||
| -rw-r--r-- | runtime/arch/mips/fault_handler_mips.cc | 20 |
3 files changed, 31 insertions, 17 deletions
diff --git a/runtime/arch/arm/fault_handler_arm.cc b/runtime/arch/arm/fault_handler_arm.cc index 564fcba5fc..480190a4bb 100644 --- a/runtime/arch/arm/fault_handler_arm.cc +++ b/runtime/arch/arm/fault_handler_arm.cc @@ -47,7 +47,8 @@ static uint32_t GetInstructionSize(uint8_t* pc) { return instr_size; } -void FaultManager::HandleNestedSignal(int sig, siginfo_t* info, void* context) { +void FaultManager::HandleNestedSignal(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context) { // Note that in this handler we set up the registers and return to // longjmp directly rather than going through an assembly language stub. The // reason for this is that longjmp is (currently) in ARM mode and that would @@ -64,7 +65,7 @@ void FaultManager::HandleNestedSignal(int sig, siginfo_t* info, void* context) { VLOG(signals) << "longjmp address: " << reinterpret_cast<void*>(sc->arm_pc); } -void FaultManager::GetMethodAndReturnPcAndSp(siginfo_t* siginfo, void* context, +void FaultManager::GetMethodAndReturnPcAndSp(siginfo_t* siginfo ATTRIBUTE_UNUSED, void* context, mirror::ArtMethod** out_method, uintptr_t* out_return_pc, uintptr_t* out_sp) { struct ucontext* uc = reinterpret_cast<struct ucontext*>(context); @@ -100,7 +101,8 @@ void FaultManager::GetMethodAndReturnPcAndSp(siginfo_t* siginfo, void* context, *out_return_pc = (sc->arm_pc + instr_size) | 1; } -bool NullPointerHandler::Action(int sig, siginfo_t* info, void* context) { +bool NullPointerHandler::Action(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context) { // The code that looks for the catch location needs to know the value of the // ARM PC at the point of call. For Null checks we insert a GC map that is immediately after // the load/store instruction that might cause the fault. However the mapping table has @@ -127,7 +129,8 @@ bool NullPointerHandler::Action(int sig, siginfo_t* info, void* context) { // The offset from r9 is Thread::ThreadSuspendTriggerOffset(). // To check for a suspend check, we examine the instructions that caused // the fault (at PC-4 and PC). -bool SuspensionHandler::Action(int sig, siginfo_t* info, void* context) { +bool SuspensionHandler::Action(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context) { // These are the instructions to check for. The first one is the ldr r0,[r9,#xxx] // where xxx is the offset of the suspend trigger. uint32_t checkinst1 = 0xf8d90000 + Thread::ThreadSuspendTriggerOffset<4>().Int32Value(); @@ -196,7 +199,8 @@ bool SuspensionHandler::Action(int sig, siginfo_t* info, void* context) { // If we determine this is a stack overflow we need to move the stack pointer // to the overflow region below the protected region. -bool StackOverflowHandler::Action(int sig, siginfo_t* info, void* context) { +bool StackOverflowHandler::Action(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context) { struct ucontext* uc = reinterpret_cast<struct ucontext*>(context); struct sigcontext *sc = reinterpret_cast<struct sigcontext*>(&uc->uc_mcontext); VLOG(signals) << "stack overflow handler with sp at " << std::hex << &uc; diff --git a/runtime/arch/arm64/fault_handler_arm64.cc b/runtime/arch/arm64/fault_handler_arm64.cc index 687d232dad..c914d85db2 100644 --- a/runtime/arch/arm64/fault_handler_arm64.cc +++ b/runtime/arch/arm64/fault_handler_arm64.cc @@ -37,7 +37,8 @@ extern "C" void art_quick_implicit_suspend(); namespace art { -void FaultManager::HandleNestedSignal(int sig, siginfo_t* info, void* context) { +void FaultManager::HandleNestedSignal(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context) { // To match the case used in ARM we return directly to the longjmp function // rather than through a trivial assembly language stub. @@ -51,7 +52,7 @@ void FaultManager::HandleNestedSignal(int sig, siginfo_t* info, void* context) { sc->pc = reinterpret_cast<uintptr_t>(longjmp); } -void FaultManager::GetMethodAndReturnPcAndSp(siginfo_t* siginfo, void* context, +void FaultManager::GetMethodAndReturnPcAndSp(siginfo_t* siginfo ATTRIBUTE_UNUSED, void* context, mirror::ArtMethod** out_method, uintptr_t* out_return_pc, uintptr_t* out_sp) { struct ucontext *uc = reinterpret_cast<struct ucontext *>(context); @@ -82,7 +83,8 @@ void FaultManager::GetMethodAndReturnPcAndSp(siginfo_t* siginfo, void* context, *out_return_pc = sc->pc + 4; } -bool NullPointerHandler::Action(int sig, siginfo_t* info, void* context) { +bool NullPointerHandler::Action(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context) { // The code that looks for the catch location needs to know the value of the // PC at the point of call. For Null checks we insert a GC map that is immediately after // the load/store instruction that might cause the fault. @@ -105,7 +107,8 @@ bool NullPointerHandler::Action(int sig, siginfo_t* info, void* context) { // The offset from r18 is Thread::ThreadSuspendTriggerOffset(). // To check for a suspend check, we examine the instructions that caused // the fault (at PC-4 and PC). -bool SuspensionHandler::Action(int sig, siginfo_t* info, void* context) { +bool SuspensionHandler::Action(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context) { // These are the instructions to check for. The first one is the ldr x0,[r18,#xxx] // where xxx is the offset of the suspend trigger. uint32_t checkinst1 = 0xf9400240 | (Thread::ThreadSuspendTriggerOffset<8>().Int32Value() << 7); @@ -155,7 +158,8 @@ bool SuspensionHandler::Action(int sig, siginfo_t* info, void* context) { return false; } -bool StackOverflowHandler::Action(int sig, siginfo_t* info, void* context) { +bool StackOverflowHandler::Action(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context) { struct ucontext *uc = reinterpret_cast<struct ucontext *>(context); struct sigcontext *sc = reinterpret_cast<struct sigcontext*>(&uc->uc_mcontext); VLOG(signals) << "stack overflow handler with sp at " << std::hex << &uc; diff --git a/runtime/arch/mips/fault_handler_mips.cc b/runtime/arch/mips/fault_handler_mips.cc index aa6d68a70f..c9949d4295 100644 --- a/runtime/arch/mips/fault_handler_mips.cc +++ b/runtime/arch/mips/fault_handler_mips.cc @@ -29,23 +29,29 @@ namespace art { -void FaultManager::HandleNestedSignal(int sig, siginfo_t* info, void* context) { +void FaultManager::HandleNestedSignal(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context ATTRIBUTE_UNUSED) { } -void FaultManager::GetMethodAndReturnPcAndSp(siginfo_t* siginfo, void* context, - mirror::ArtMethod** out_method, - uintptr_t* out_return_pc, uintptr_t* out_sp) { +void FaultManager::GetMethodAndReturnPcAndSp(siginfo_t* siginfo ATTRIBUTE_UNUSED, + void* context ATTRIBUTE_UNUSED, + mirror::ArtMethod** out_method ATTRIBUTE_UNUSED, + uintptr_t* out_return_pc ATTRIBUTE_UNUSED, + uintptr_t* out_sp ATTRIBUTE_UNUSED) { } -bool NullPointerHandler::Action(int sig, siginfo_t* info, void* context) { +bool NullPointerHandler::Action(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context ATTRIBUTE_UNUSED) { return false; } -bool SuspensionHandler::Action(int sig, siginfo_t* info, void* context) { +bool SuspensionHandler::Action(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context ATTRIBUTE_UNUSED) { return false; } -bool StackOverflowHandler::Action(int sig, siginfo_t* info, void* context) { +bool StackOverflowHandler::Action(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED, + void* context ATTRIBUTE_UNUSED) { return false; } } // namespace art |