From d641930baf268844ceed4440a31e32f3049ef722 Mon Sep 17 00:00:00 2001
From: twinaphex <libretro@gmail.com>
Date: Thu, 22 Sep 2016 23:10:11 +0200
Subject: [PATCH] Fix statement is unreachable warning

---
 libretro-common/file/archive_file.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/libretro-common/file/archive_file.c b/libretro-common/file/archive_file.c
index 511fd6abf9..39ed009511 100644
--- a/libretro-common/file/archive_file.c
+++ b/libretro-common/file/archive_file.c
@@ -388,26 +388,21 @@ int file_archive_parse_file_iterate(
             state->type = ARCHIVE_TRANSFER_DEINIT_ERROR;
          break;
       case ARCHIVE_TRANSFER_ITERATE:
+         if (file_archive_get_file_backend(file))
          {
             const struct file_archive_file_backend *backend =
                file_archive_get_file_backend(file);
+            int ret = backend->archive_parse_file_iterate_step(state,
+                  valid_exts, userdata, file_cb);
+            if (ret != 1)
+               state->type = ARCHIVE_TRANSFER_DEINIT;
+            if (ret == -1)
+               state->type = ARCHIVE_TRANSFER_DEINIT_ERROR;
 
-            if (backend)
-            {
-               int ret = backend->archive_parse_file_iterate_step(state,
-                     valid_exts, userdata, file_cb);
-               if (ret != 1)
-                  state->type = ARCHIVE_TRANSFER_DEINIT;
-               if (ret == -1)
-                  state->type = ARCHIVE_TRANSFER_DEINIT_ERROR;
-
-               /* early return to prevent deinit from never firing */
-               return 0;
-            }
-            else
-               return -1;
+            /* early return to prevent deinit from never firing */
+            return 0;
          }
-         break;
+         return -1;
       case ARCHIVE_TRANSFER_DEINIT_ERROR:
          *returnerr = false;
       case ARCHIVE_TRANSFER_DEINIT: