fixed warning C4715 treated as error "not all control paths return a value"
wrapped abort function for MSC in a noreturn function
diff --git a/double-conversion/utils.h b/double-conversion/utils.h
index ce41e62..51d5e61 100644
--- a/double-conversion/utils.h
+++ b/double-conversion/utils.h
@@ -39,9 +39,23 @@
#ifndef UNIMPLEMENTED
#define UNIMPLEMENTED() (abort())
#endif
+#ifndef DOUBLE_CONVERSION_NO_RETURN
+#ifdef _MSC_VER
+#define DOUBLE_CONVERSION_NO_RETURN __declspec(noreturn)
+#else
+#define DOUBLE_CONVERSION_NO_RETURN __attribute__((noreturn))
+#endif
+#endif
#ifndef UNREACHABLE
+#ifdef _MSC_VER
+void DOUBLE_CONVERSION_NO_RETURN abort_noreturn();
+inline void abort_noreturn() { abort(); }
+#define UNREACHABLE() (abort_noreturn())
+#else
#define UNREACHABLE() (abort())
#endif
+#endif
+
// Double operations detection based on target architecture.
// Linux uses a 80bit wide floating point stack on x86. This induces double