diff --git a/inkcpp/include/runner.h b/inkcpp/include/runner.h index d23891b5..5eafb637 100644 --- a/inkcpp/include/runner.h +++ b/inkcpp/include/runner.h @@ -29,6 +29,8 @@ namespace ink::runtime class runner_interface { public: + virtual ~runner_interface(){}; + #pragma region Interface Methods /** diff --git a/inkcpp/output.cpp b/inkcpp/output.cpp index 54742edc..8e54a8a5 100644 --- a/inkcpp/output.cpp +++ b/inkcpp/output.cpp @@ -109,6 +109,8 @@ namespace ink case data_type::allocated_string_pointer: case data_type::newline: return true; + default: + break; } i++; @@ -206,6 +208,8 @@ namespace ink case data_type::newline: str << std::endl; break; + default: + break; } } @@ -248,6 +252,8 @@ namespace ink case data_type::newline: str += "\n"; break; + default: + break; } } @@ -307,6 +313,8 @@ namespace ink case data_type::newline: *(ptr++) = _data[i]; break; + default: + break; } } @@ -398,6 +406,8 @@ namespace ink case data_type::newline: length += 1; break; + default: + break; } } @@ -433,6 +443,8 @@ namespace ink case data_type::newline: *ptr = '\n'; ptr++; break; + default: + break; } } @@ -486,6 +498,8 @@ namespace ink case data_type::glue: hasGlue = true; break; + default: + break; } return false; diff --git a/inkcpp/runner_impl.cpp b/inkcpp/runner_impl.cpp index 0dc95e7d..3665d501 100644 --- a/inkcpp/runner_impl.cpp +++ b/inkcpp/runner_impl.cpp @@ -191,6 +191,8 @@ namespace ink::runtime::internal case Command::MAX: result = lhs > rhs ? lhs : rhs; break; + default: + break; } // Push result onto the stack @@ -212,6 +214,8 @@ namespace ink::runtime::internal case Command::NOT: result = !v; break; + default: + break; } // Push to the stack @@ -475,6 +479,8 @@ namespace ink::runtime::internal // Newline was removed. Proceed as if we never hit it forget(); break; + default: + break; } } diff --git a/inkcpp/value.cpp b/inkcpp/value.cpp index 6da899c5..2a2be696 100644 --- a/inkcpp/value.cpp +++ b/inkcpp/value.cpp @@ -96,6 +96,8 @@ namespace ink if (new_type == value_type::integer) val = value((int)val._first.float_value); return; + default: + break; } inkAssert(false, "Invalid value cast"); @@ -131,6 +133,8 @@ namespace ink break; case data_type::none: return; + default: + break; } } } @@ -150,6 +154,8 @@ namespace ink case data_type::string_table_pointer: case data_type::allocated_string_pointer: return _first.string_val[0] != '\0'; + default: + break; } inkFail("Invalid type to check for truthy"); @@ -232,6 +238,8 @@ namespace ink return new_value; } + default: + break; } inkFail("Invalid type for add"); @@ -250,6 +258,8 @@ namespace ink return left.as_int() - right.as_int(); case value_type::decimal: return left.as_float() - right.as_float(); + default: + break; } inkFail("Invalid type for subtract"); @@ -266,6 +276,8 @@ namespace ink return left.as_int() * right.as_int(); case value_type::decimal: return left.as_float() * right.as_float(); + default: + break; } inkFail("Invalid type for multiply"); @@ -282,6 +294,8 @@ namespace ink return left.as_int() / right.as_int(); case value_type::decimal: return left.as_float() / right.as_float(); + default: + break; } inkFail("Invalid type for divide"); @@ -296,6 +310,8 @@ namespace ink { case value_type::integer: return left.as_int() % right.as_int(); + default: + break; } inkFail("Invalid type for mod"); @@ -485,6 +501,8 @@ namespace ink return compare_string(left, right); case value_type::divert: return left.as_divert() == right.as_divert(); + default: + break; } inkFail("Invalid type for is_equal"); @@ -501,6 +519,8 @@ namespace ink return left.as_int() < right.as_int(); case value_type::decimal: return left.as_float() < right.as_float(); + default: + break; } inkFail("Invalid type for less_than"); @@ -516,6 +536,8 @@ namespace ink return -val._first.integer_value; case data_type::float32: return -val._first.float_value; + default: + break; } inkFail("Invalid type for negate"); diff --git a/shared/public/system.h b/shared/public/system.h index 0a7d6a5c..820e3e83 100644 --- a/shared/public/system.h +++ b/shared/public/system.h @@ -97,7 +97,7 @@ namespace ink // assert #ifndef INK_ENABLE_UNREAL void ink_assert(bool condition, const char* msg = nullptr); - [[ noreturn ]] inline void ink_assert(const char* msg = nullptr) { ink_assert(false, msg); } + [[ noreturn ]] inline void ink_assert(const char* msg = nullptr) { ink_assert(false, msg); exit(EXIT_FAILURE);} #else [[ noreturn ]] inline void ink_fail(const char*) { check(false); throw nullptr; } #endif