Fix IAR warnings

IAR was warning that conditional execution could bypass initialisation of
variables, although those same variables were not used uninitialised. Fix
this along with some other IAR warnings.

Signed-off-by: Paul Elliott <paul.elliott@arm.com>
diff --git a/library/ecp.c b/library/ecp.c
index a029c22..9051490 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -163,7 +163,8 @@
     int ret;
     unsigned char secret_bytes[MBEDTLS_ECP_MAX_BYTES];
     /* The list starts with strong hashes */
-    const mbedtls_md_type_t md_type = mbedtls_md_list()[0];
+    const mbedtls_md_type_t md_type =
+        (const mbedtls_md_type_t) (mbedtls_md_list()[0]);
     const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(md_type);
 
     if (secret_len > MBEDTLS_ECP_MAX_BYTES) {
@@ -2062,12 +2063,13 @@
     } else
 #endif
     {
+        int have_rng = 1;
+
         /* Start with a non-zero point and randomize its coordinates */
         i = d;
         MBEDTLS_MPI_CHK(ecp_select_comb(grp, R, T, T_size, x[i]));
         MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&R->Z, 1));
 
-        int have_rng = 1;
 #if defined(MBEDTLS_ECP_NO_INTERNAL_RNG)
         if (f_rng == NULL) {
             have_rng = 0;
@@ -2172,6 +2174,7 @@
     unsigned char parity_trick;
     unsigned char k[COMB_MAX_D + 1];
     mbedtls_ecp_point *RR = R;
+    int have_rng = 1;
 
 #if defined(MBEDTLS_ECP_RESTARTABLE)
     if (rs_ctx != NULL && rs_ctx->rsm != NULL) {
@@ -2208,7 +2211,6 @@
      *
      * Avoid the leak by randomizing coordinates before we normalize them.
      */
-    int have_rng = 1;
 #if defined(MBEDTLS_ECP_NO_INTERNAL_RNG)
     if (f_rng == NULL) {
         have_rng = 0;