Merge "Coverity fix: Remove GGC ignore -Warray-bounds" into integration

This commit is contained in:
Paul Beesley 2019-08-20 09:25:00 +00:00 committed by TrustedFirmware Code Review
commit 64690e06ec
1 changed files with 11 additions and 11 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -198,21 +198,17 @@ static unsigned int get_power_on_target_pwrlvl(void)
/****************************************************************************** /******************************************************************************
* Helper function to update the requested local power state array. This array * Helper function to update the requested local power state array. This array
* does not store the requested state for the CPU power level. Hence an * does not store the requested state for the CPU power level. Hence an
* assertion is added to prevent us from accessing the wrong index. * assertion is added to prevent us from accessing the CPU power level.
*****************************************************************************/ *****************************************************************************/
static void psci_set_req_local_pwr_state(unsigned int pwrlvl, static void psci_set_req_local_pwr_state(unsigned int pwrlvl,
unsigned int cpu_idx, unsigned int cpu_idx,
plat_local_state_t req_pwr_state) plat_local_state_t req_pwr_state)
{ {
/*
* This should never happen, we have this here to avoid
* "array subscript is above array bounds" errors in GCC.
*/
assert(pwrlvl > PSCI_CPU_PWR_LVL); assert(pwrlvl > PSCI_CPU_PWR_LVL);
#pragma GCC diagnostic push if ((pwrlvl > PSCI_CPU_PWR_LVL) && (pwrlvl <= PLAT_MAX_PWR_LVL) &&
#pragma GCC diagnostic ignored "-Warray-bounds" (cpu_idx < PLATFORM_CORE_COUNT)) {
psci_req_local_pwr_states[pwrlvl - 1U][cpu_idx] = req_pwr_state; psci_req_local_pwr_states[pwrlvl - 1U][cpu_idx] = req_pwr_state;
#pragma GCC diagnostic pop }
} }
/****************************************************************************** /******************************************************************************
@ -245,7 +241,11 @@ static plat_local_state_t *psci_get_req_local_pwr_states(unsigned int pwrlvl,
{ {
assert(pwrlvl > PSCI_CPU_PWR_LVL); assert(pwrlvl > PSCI_CPU_PWR_LVL);
return &psci_req_local_pwr_states[pwrlvl - 1U][cpu_idx]; if ((pwrlvl > PSCI_CPU_PWR_LVL) && (pwrlvl <= PLAT_MAX_PWR_LVL) &&
(cpu_idx < PLATFORM_CORE_COUNT)) {
return &psci_req_local_pwr_states[pwrlvl - 1U][cpu_idx];
} else
return NULL;
} }
/* /*