From 40a6f64795847f2b96ec24e9b11cb7002f0b48bf Mon Sep 17 00:00:00 2001
From: James Morrissey <james.morrissey@arm.com>
Date: Mon, 10 Feb 2014 14:24:36 +0000
Subject: [PATCH] Fix asserts appearing in release builds

Also fix warnings generated in release builds when assert code
is absent.

Change-Id: I45b9173d3888f9e93e98eb5b4fdc06727ba5cbf4
---
 Makefile                       | 2 ++
 bl1/bl1_main.c                 | 2 ++
 common/bl_common.c             | 5 +++--
 common/psci/psci_common.c      | 7 +++++--
 common/psci/psci_setup.c       | 5 ++---
 plat/fvp/aarch64/plat_common.c | 5 +++--
 6 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/Makefile b/Makefile
index 7938318de..f64a700c3 100644
--- a/Makefile
+++ b/Makefile
@@ -154,6 +154,8 @@ ifneq (${DEBUG}, 0)
 CFLAGS			+= 	-g
 # -save-temps -fverbose-asm
 ASFLAGS			+= 	-g -Wa,--gdwarf-2
+else
+CFLAGS			+=	-DNDEBUG=1
 endif
 
 
diff --git a/bl1/bl1_main.c b/bl1/bl1_main.c
index df9237435..06ab4e59e 100644
--- a/bl1/bl1_main.c
+++ b/bl1/bl1_main.c
@@ -47,7 +47,9 @@ void bl1_arch_next_el_setup(void);
   ******************************************************************************/
 void bl1_main(void)
 {
+#if DEBUG
 	unsigned long sctlr_el3 = read_sctlr();
+#endif
 	unsigned long bl2_base;
 	unsigned int load_type = TOP_LOAD, spsr;
 	meminfo *bl1_tzram_layout;
diff --git a/common/bl_common.c b/common/bl_common.c
index 0a0c5cd80..d401f8cc2 100644
--- a/common/bl_common.c
+++ b/common/bl_common.c
@@ -272,8 +272,9 @@ unsigned long load_image(meminfo *mem_layout,
 			 unsigned int load_type,
 			 unsigned long fixed_addr)
 {
-	unsigned long temp_image_base, image_base;
-	long offset;
+	unsigned long temp_image_base = 0;
+	unsigned long image_base = 0;
+	long offset = 0;
 	int image_flen;
 
 	/* Find the size of the image */
diff --git a/common/psci/psci_common.c b/common/psci/psci_common.c
index e6be2f86e..193655ddc 100644
--- a/common/psci/psci_common.c
+++ b/common/psci/psci_common.c
@@ -37,6 +37,7 @@
 #include <psci.h>
 #include <psci_private.h>
 #include <runtime_svc.h>
+#include "debug.h"
 
 /*******************************************************************************
  * Arrays that contains information needs to resume a cpu's execution when woken
@@ -511,7 +512,8 @@ void psci_afflvl_power_on_finish(unsigned long mpidr,
 				    start_afflvl,
 				    end_afflvl,
 				    mpidr_nodes);
-	assert (rc == PSCI_E_SUCCESS);
+	if (rc != PSCI_E_SUCCESS)
+		panic();
 
 	/*
 	 * This function acquires the lock corresponding to each affinity
@@ -529,7 +531,8 @@ void psci_afflvl_power_on_finish(unsigned long mpidr,
 					 end_afflvl,
 					 pon_handlers,
 					 mpidr);
-	assert (rc == PSCI_E_SUCCESS);
+	if (rc != PSCI_E_SUCCESS)
+		panic();
 
 	/*
 	 * This loop releases the lock corresponding to each affinity level
diff --git a/common/psci/psci_setup.c b/common/psci/psci_setup.c
index c0d29f242..4c32b411a 100644
--- a/common/psci/psci_setup.c
+++ b/common/psci/psci_setup.c
@@ -255,7 +255,7 @@ static unsigned int psci_init_aff_map(unsigned long mpidr,
  ******************************************************************************/
 void psci_setup(unsigned long mpidr)
 {
-	int afflvl, affmap_idx, rc, max_afflvl;
+	int afflvl, affmap_idx, max_afflvl;
 	aff_map_node *node;
 
 	/* Initialize psci's internal state */
@@ -314,8 +314,7 @@ void psci_setup(unsigned long mpidr)
 			psci_set_state(node, PSCI_STATE_ON);
 	}
 
-	rc = platform_setup_pm(&psci_plat_pm_ops);
-	assert(rc == 0);
+	platform_setup_pm(&psci_plat_pm_ops);
 	assert(psci_plat_pm_ops);
 
 	return;
diff --git a/plat/fvp/aarch64/plat_common.c b/plat/fvp/aarch64/plat_common.c
index 8568bfe28..5b53aafb8 100644
--- a/plat/fvp/aarch64/plat_common.c
+++ b/plat/fvp/aarch64/plat_common.c
@@ -35,6 +35,7 @@
 #include <bl_common.h>
 /* Included only for error codes */
 #include <psci.h>
+#include "debug.h"
 
 unsigned char platform_normal_stacks[PLATFORM_STACK_SIZE][PLATFORM_CORE_COUNT]
 __attribute__ ((aligned(PLATFORM_CACHE_LINE_SIZE),
@@ -534,8 +535,8 @@ int platform_config_setup(void)
 	bld = (sys_id >> SYS_ID_BLD_SHIFT) & SYS_ID_BLD_MASK;
 	arch = (sys_id >> SYS_ID_ARCH_SHIFT) & SYS_ID_ARCH_MASK;
 
-	assert(rev == REV_FVP);
-	assert(arch == ARCH_MODEL);
+	if ((rev != REV_FVP) || (arch != ARCH_MODEL))
+		panic();
 
 	/*
 	 * The build field in the SYS_ID tells which variant of the GIC
-- 
GitLab