From 6c4fecc4f70c04f087e3d36b45393f97f245b518 Mon Sep 17 00:00:00 2001
From: Deomid Ryabkov <rojer@cesanta.com>
Date: Mon, 28 Mar 2016 15:17:41 +0300
Subject: [PATCH] TI compiler cannot analyze returns from branches

Thinks that mg_ws_random_mask does not return a value.
Help the poor, mentally challenged compiler.

PUBLISHED_FROM=e7c0c47dd2fcbb4e847515892939d69c7a573c2e
---
 mongoose.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/mongoose.c b/mongoose.c
index 3ad080c48..dddbf0377 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -4688,6 +4688,7 @@ struct ws_mask_ctx {
 };
 
 static uint32_t mg_ws_random_mask(void) {
+  uint32_t mask;
 /*
  * The spec requires WS client to generate hard to
  * guess mask keys. From RFC6455, Section 5.3:
@@ -4703,14 +4704,15 @@ static uint32_t mg_ws_random_mask(void) {
  * that lacks random().
  */
 #ifdef MG_DISABLE_WS_RANDOM_MASK
-  return 0xefbeadde; /* generated with a random number generator, I swear */
+  mask = 0xefbeadde; /* generated with a random number generator, I swear */
 #else
   if (sizeof(long) >= 4) {
-    return (uint32_t) random();
+    mask = (uint32_t) random();
   } else if (sizeof(long) == 2) {
-    return (uint32_t) random() << 16 | (uint32_t) random();
+    mask = (uint32_t) random() << 16 | (uint32_t) random();
   }
 #endif
+  return mask;
 }
 
 static void mg_send_ws_header(struct mg_connection *nc, int op, size_t len,
-- 
GitLab