forked from eden-emu/eden
		
	general: Enforce C4800 everywhere except in video_core
This commit is contained in:
		
							parent
							
								
									4bad20dc5f
								
							
						
					
					
						commit
						9fba74d245
					
				
					 14 changed files with 57 additions and 41 deletions
				
			
		|  | @ -76,6 +76,7 @@ if (MSVC) | ||||||
|         /we4549 # 'operator1': operator before comma has no effect; did you intend 'operator2'? |         /we4549 # 'operator1': operator before comma has no effect; did you intend 'operator2'? | ||||||
|         /we4555 # Expression has no effect; expected expression with side-effect |         /we4555 # Expression has no effect; expected expression with side-effect | ||||||
|         /we4715 # 'function': not all control paths return a value |         /we4715 # 'function': not all control paths return a value | ||||||
|  |         /we4826 # Conversion from 'type1' to 'type2' is sign-extended. This may cause unexpected runtime behavior. | ||||||
|         /we4834 # Discarding return value of function with 'nodiscard' attribute |         /we4834 # Discarding return value of function with 'nodiscard' attribute | ||||||
|         /we5038 # data member 'member1' will be initialized after data member 'member2' |         /we5038 # data member 'member1' will be initialized after data member 'member2' | ||||||
|         /we5245 # 'function': unreferenced function with internal linkage has been removed |         /we5245 # 'function': unreferenced function with internal linkage has been removed | ||||||
|  |  | ||||||
|  | @ -206,6 +206,7 @@ if (MSVC) | ||||||
|         /we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data |         /we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data | ||||||
|         /we4245 # 'conversion': conversion from 'type1' to 'type2', signed/unsigned mismatch |         /we4245 # 'conversion': conversion from 'type1' to 'type2', signed/unsigned mismatch | ||||||
|         /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data |         /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data | ||||||
|  |         /we4800 # Implicit conversion from 'type' to bool. Possible information loss | ||||||
|     ) |     ) | ||||||
| else() | else() | ||||||
|     target_compile_options(audio_core PRIVATE |     target_compile_options(audio_core PRIVATE | ||||||
|  |  | ||||||
|  | @ -157,6 +157,12 @@ if (MSVC) | ||||||
|   target_compile_options(common PRIVATE |   target_compile_options(common PRIVATE | ||||||
|     /W4 |     /W4 | ||||||
|     /WX |     /WX | ||||||
|  | 
 | ||||||
|  |     /we4242 # 'identifier': conversion from 'type1' to 'type2', possible loss of data | ||||||
|  |     /we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data | ||||||
|  |     /we4245 # 'conversion': conversion from 'type1' to 'type2', signed/unsigned mismatch | ||||||
|  |     /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data | ||||||
|  |     /we4800 # Implicit conversion from 'type' to bool. Possible information loss | ||||||
|   ) |   ) | ||||||
| else() | else() | ||||||
|   target_compile_options(common PRIVATE |   target_compile_options(common PRIVATE | ||||||
|  |  | ||||||
|  | @ -141,10 +141,6 @@ public: | ||||||
|     constexpr BitField(BitField&&) noexcept = default; |     constexpr BitField(BitField&&) noexcept = default; | ||||||
|     constexpr BitField& operator=(BitField&&) noexcept = default; |     constexpr BitField& operator=(BitField&&) noexcept = default; | ||||||
| 
 | 
 | ||||||
|     [[nodiscard]] constexpr operator T() const { |  | ||||||
|         return Value(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     constexpr void Assign(const T& value) { |     constexpr void Assign(const T& value) { | ||||||
| #ifdef _MSC_VER | #ifdef _MSC_VER | ||||||
|         storage = static_cast<StorageType>((storage & ~mask) | FormatValue(value)); |         storage = static_cast<StorageType>((storage & ~mask) | FormatValue(value)); | ||||||
|  | @ -162,6 +158,17 @@ public: | ||||||
|         return ExtractValue(storage); |         return ExtractValue(storage); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     template <typename ConvertedToType> | ||||||
|  |     [[nodiscard]] constexpr ConvertedToType As() const { | ||||||
|  |         static_assert(!std::is_same_v<T, ConvertedToType>, | ||||||
|  |                       "Unnecessary cast. Use Value() instead."); | ||||||
|  |         return static_cast<ConvertedToType>(Value()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     [[nodiscard]] constexpr operator T() const { | ||||||
|  |         return Value(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     [[nodiscard]] constexpr explicit operator bool() const { |     [[nodiscard]] constexpr explicit operator bool() const { | ||||||
|         return Value() != 0; |         return Value() != 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -774,6 +774,7 @@ if (MSVC) | ||||||
|         /we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data |         /we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data | ||||||
|         /we4245 # 'conversion': conversion from 'type1' to 'type2', signed/unsigned mismatch |         /we4245 # 'conversion': conversion from 'type1' to 'type2', signed/unsigned mismatch | ||||||
|         /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data |         /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data | ||||||
|  |         /we4800 # Implicit conversion from 'type' to bool. Possible information loss | ||||||
|     ) |     ) | ||||||
| else() | else() | ||||||
|     target_compile_options(core PRIVATE |     target_compile_options(core PRIVATE | ||||||
|  |  | ||||||
|  | @ -127,7 +127,7 @@ void ProgramMetadata::LoadManual(bool is_64_bit, ProgramAddressSpaceType address | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool ProgramMetadata::Is64BitProgram() const { | bool ProgramMetadata::Is64BitProgram() const { | ||||||
|     return npdm_header.has_64_bit_instructions; |     return npdm_header.has_64_bit_instructions.As<bool>(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ProgramAddressSpaceType ProgramMetadata::GetAddressSpaceType() const { | ProgramAddressSpaceType ProgramMetadata::GetAddressSpaceType() const { | ||||||
|  |  | ||||||
|  | @ -1158,27 +1158,27 @@ bool EmulatedController::IsControllerSupported(bool use_temporary_value) const { | ||||||
|     const auto type = is_configuring && use_temporary_value ? tmp_npad_type : npad_type; |     const auto type = is_configuring && use_temporary_value ? tmp_npad_type : npad_type; | ||||||
|     switch (type) { |     switch (type) { | ||||||
|     case NpadStyleIndex::ProController: |     case NpadStyleIndex::ProController: | ||||||
|         return supported_style_tag.fullkey; |         return supported_style_tag.fullkey.As<bool>(); | ||||||
|     case NpadStyleIndex::Handheld: |     case NpadStyleIndex::Handheld: | ||||||
|         return supported_style_tag.handheld; |         return supported_style_tag.handheld.As<bool>(); | ||||||
|     case NpadStyleIndex::JoyconDual: |     case NpadStyleIndex::JoyconDual: | ||||||
|         return supported_style_tag.joycon_dual; |         return supported_style_tag.joycon_dual.As<bool>(); | ||||||
|     case NpadStyleIndex::JoyconLeft: |     case NpadStyleIndex::JoyconLeft: | ||||||
|         return supported_style_tag.joycon_left; |         return supported_style_tag.joycon_left.As<bool>(); | ||||||
|     case NpadStyleIndex::JoyconRight: |     case NpadStyleIndex::JoyconRight: | ||||||
|         return supported_style_tag.joycon_right; |         return supported_style_tag.joycon_right.As<bool>(); | ||||||
|     case NpadStyleIndex::GameCube: |     case NpadStyleIndex::GameCube: | ||||||
|         return supported_style_tag.gamecube; |         return supported_style_tag.gamecube.As<bool>(); | ||||||
|     case NpadStyleIndex::Pokeball: |     case NpadStyleIndex::Pokeball: | ||||||
|         return supported_style_tag.palma; |         return supported_style_tag.palma.As<bool>(); | ||||||
|     case NpadStyleIndex::NES: |     case NpadStyleIndex::NES: | ||||||
|         return supported_style_tag.lark; |         return supported_style_tag.lark.As<bool>(); | ||||||
|     case NpadStyleIndex::SNES: |     case NpadStyleIndex::SNES: | ||||||
|         return supported_style_tag.lucia; |         return supported_style_tag.lucia.As<bool>(); | ||||||
|     case NpadStyleIndex::N64: |     case NpadStyleIndex::N64: | ||||||
|         return supported_style_tag.lagoon; |         return supported_style_tag.lagoon.As<bool>(); | ||||||
|     case NpadStyleIndex::SegaGenesis: |     case NpadStyleIndex::SegaGenesis: | ||||||
|         return supported_style_tag.lager; |         return supported_style_tag.lager.As<bool>(); | ||||||
|     default: |     default: | ||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -751,8 +751,8 @@ static void Break(Core::System& system, u32 reason, u64 info1, u64 info2) { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     system.GetReporter().SaveSvcBreakReport( |     system.GetReporter().SaveSvcBreakReport( | ||||||
|         static_cast<u32>(break_reason.break_type.Value()), break_reason.signal_debugger, info1, |         static_cast<u32>(break_reason.break_type.Value()), break_reason.signal_debugger.As<bool>(), | ||||||
|         info2, has_dumped_buffer ? std::make_optional(debug_buffer) : std::nullopt); |         info1, info2, has_dumped_buffer ? std::make_optional(debug_buffer) : std::nullopt); | ||||||
| 
 | 
 | ||||||
|     if (!break_reason.signal_debugger) { |     if (!break_reason.signal_debugger) { | ||||||
|         LOG_CRITICAL( |         LOG_CRITICAL( | ||||||
|  |  | ||||||
|  | @ -164,7 +164,7 @@ protected: | ||||||
|         u32_le size; |         u32_le size; | ||||||
|         u32_le library_version; |         u32_le library_version; | ||||||
|         u32_le theme_color; |         u32_le theme_color; | ||||||
|         u8 play_startup_sound; |         bool play_startup_sound; | ||||||
|         u64_le system_tick; |         u64_le system_tick; | ||||||
|     }; |     }; | ||||||
|     static_assert(sizeof(CommonArguments) == 0x20, "CommonArguments has incorrect size."); |     static_assert(sizeof(CommonArguments) == 0x20, "CommonArguments has incorrect size."); | ||||||
|  |  | ||||||
|  | @ -1502,25 +1502,25 @@ bool Controller_NPad::IsControllerSupported(Core::HID::NpadStyleIndex controller | ||||||
|         Core::HID::NpadStyleTag style = GetSupportedStyleSet(); |         Core::HID::NpadStyleTag style = GetSupportedStyleSet(); | ||||||
|         switch (controller) { |         switch (controller) { | ||||||
|         case Core::HID::NpadStyleIndex::ProController: |         case Core::HID::NpadStyleIndex::ProController: | ||||||
|             return style.fullkey; |             return style.fullkey.As<bool>(); | ||||||
|         case Core::HID::NpadStyleIndex::JoyconDual: |         case Core::HID::NpadStyleIndex::JoyconDual: | ||||||
|             return style.joycon_dual; |             return style.joycon_dual.As<bool>(); | ||||||
|         case Core::HID::NpadStyleIndex::JoyconLeft: |         case Core::HID::NpadStyleIndex::JoyconLeft: | ||||||
|             return style.joycon_left; |             return style.joycon_left.As<bool>(); | ||||||
|         case Core::HID::NpadStyleIndex::JoyconRight: |         case Core::HID::NpadStyleIndex::JoyconRight: | ||||||
|             return style.joycon_right; |             return style.joycon_right.As<bool>(); | ||||||
|         case Core::HID::NpadStyleIndex::GameCube: |         case Core::HID::NpadStyleIndex::GameCube: | ||||||
|             return style.gamecube; |             return style.gamecube.As<bool>(); | ||||||
|         case Core::HID::NpadStyleIndex::Pokeball: |         case Core::HID::NpadStyleIndex::Pokeball: | ||||||
|             return style.palma; |             return style.palma.As<bool>(); | ||||||
|         case Core::HID::NpadStyleIndex::NES: |         case Core::HID::NpadStyleIndex::NES: | ||||||
|             return style.lark; |             return style.lark.As<bool>(); | ||||||
|         case Core::HID::NpadStyleIndex::SNES: |         case Core::HID::NpadStyleIndex::SNES: | ||||||
|             return style.lucia; |             return style.lucia.As<bool>(); | ||||||
|         case Core::HID::NpadStyleIndex::N64: |         case Core::HID::NpadStyleIndex::N64: | ||||||
|             return style.lagoon; |             return style.lagoon.As<bool>(); | ||||||
|         case Core::HID::NpadStyleIndex::SegaGenesis: |         case Core::HID::NpadStyleIndex::SegaGenesis: | ||||||
|             return style.lager; |             return style.lager.As<bool>(); | ||||||
|         default: |         default: | ||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -45,6 +45,7 @@ if (MSVC) | ||||||
|         /we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data |         /we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data | ||||||
|         /we4245 # 'conversion': conversion from 'type1' to 'type2', signed/unsigned mismatch |         /we4245 # 'conversion': conversion from 'type1' to 'type2', signed/unsigned mismatch | ||||||
|         /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data |         /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data | ||||||
|  |         /we4800 # Implicit conversion from 'type' to bool. Possible information loss | ||||||
|     ) |     ) | ||||||
| else() | else() | ||||||
|     target_compile_options(input_common PRIVATE |     target_compile_options(input_common PRIVATE | ||||||
|  |  | ||||||
|  | @ -40,8 +40,8 @@ public: | ||||||
|     void EnableMotion() { |     void EnableMotion() { | ||||||
|         if (sdl_controller) { |         if (sdl_controller) { | ||||||
|             SDL_GameController* controller = sdl_controller.get(); |             SDL_GameController* controller = sdl_controller.get(); | ||||||
|             has_accel = SDL_GameControllerHasSensor(controller, SDL_SENSOR_ACCEL); |             has_accel = SDL_GameControllerHasSensor(controller, SDL_SENSOR_ACCEL) == SDL_TRUE; | ||||||
|             has_gyro = SDL_GameControllerHasSensor(controller, SDL_SENSOR_GYRO); |             has_gyro = SDL_GameControllerHasSensor(controller, SDL_SENSOR_GYRO) == SDL_TRUE; | ||||||
|             if (has_accel) { |             if (has_accel) { | ||||||
|                 SDL_GameControllerSetSensorEnabled(controller, SDL_SENSOR_ACCEL, SDL_TRUE); |                 SDL_GameControllerSetSensorEnabled(controller, SDL_SENSOR_ACCEL, SDL_TRUE); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -797,8 +797,8 @@ std::unique_ptr<Common::Input::InputDevice> InputFactory::CreateButtonDevice( | ||||||
| 
 | 
 | ||||||
|     const auto button_id = params.Get("button", 0); |     const auto button_id = params.Get("button", 0); | ||||||
|     const auto keyboard_key = params.Get("code", 0); |     const auto keyboard_key = params.Get("code", 0); | ||||||
|     const auto toggle = params.Get("toggle", false); |     const auto toggle = params.Get("toggle", false) != 0; | ||||||
|     const auto inverted = params.Get("inverted", false); |     const auto inverted = params.Get("inverted", false) != 0; | ||||||
|     input_engine->PreSetController(identifier); |     input_engine->PreSetController(identifier); | ||||||
|     input_engine->PreSetButton(identifier, button_id); |     input_engine->PreSetButton(identifier, button_id); | ||||||
|     input_engine->PreSetButton(identifier, keyboard_key); |     input_engine->PreSetButton(identifier, keyboard_key); | ||||||
|  | @ -820,8 +820,8 @@ std::unique_ptr<Common::Input::InputDevice> InputFactory::CreateHatButtonDevice( | ||||||
| 
 | 
 | ||||||
|     const auto button_id = params.Get("hat", 0); |     const auto button_id = params.Get("hat", 0); | ||||||
|     const auto direction = input_engine->GetHatButtonId(params.Get("direction", "")); |     const auto direction = input_engine->GetHatButtonId(params.Get("direction", "")); | ||||||
|     const auto toggle = params.Get("toggle", false); |     const auto toggle = params.Get("toggle", false) != 0; | ||||||
|     const auto inverted = params.Get("inverted", false); |     const auto inverted = params.Get("inverted", false) != 0; | ||||||
| 
 | 
 | ||||||
|     input_engine->PreSetController(identifier); |     input_engine->PreSetController(identifier); | ||||||
|     input_engine->PreSetHatButton(identifier, button_id); |     input_engine->PreSetHatButton(identifier, button_id); | ||||||
|  | @ -879,7 +879,7 @@ std::unique_ptr<Common::Input::InputDevice> InputFactory::CreateAnalogDevice( | ||||||
|         .threshold = std::clamp(params.Get("threshold", 0.5f), 0.0f, 1.0f), |         .threshold = std::clamp(params.Get("threshold", 0.5f), 0.0f, 1.0f), | ||||||
|         .offset = std::clamp(params.Get("offset", 0.0f), -1.0f, 1.0f), |         .offset = std::clamp(params.Get("offset", 0.0f), -1.0f, 1.0f), | ||||||
|         .inverted = params.Get("invert", "+") == "-", |         .inverted = params.Get("invert", "+") == "-", | ||||||
|         .toggle = static_cast<bool>(params.Get("toggle", false)), |         .toggle = params.Get("toggle", false) != 0, | ||||||
|     }; |     }; | ||||||
|     input_engine->PreSetController(identifier); |     input_engine->PreSetController(identifier); | ||||||
|     input_engine->PreSetAxis(identifier, axis); |     input_engine->PreSetAxis(identifier, axis); | ||||||
|  | @ -895,8 +895,8 @@ std::unique_ptr<Common::Input::InputDevice> InputFactory::CreateTriggerDevice( | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     const auto button = params.Get("button", 0); |     const auto button = params.Get("button", 0); | ||||||
|     const auto toggle = params.Get("toggle", false); |     const auto toggle = params.Get("toggle", false) != 0; | ||||||
|     const auto inverted = params.Get("inverted", false); |     const auto inverted = params.Get("inverted", false) != 0; | ||||||
| 
 | 
 | ||||||
|     const auto axis = params.Get("axis", 0); |     const auto axis = params.Get("axis", 0); | ||||||
|     const Common::Input::AnalogProperties properties = { |     const Common::Input::AnalogProperties properties = { | ||||||
|  | @ -926,8 +926,8 @@ std::unique_ptr<Common::Input::InputDevice> InputFactory::CreateTouchDevice( | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     const auto button = params.Get("button", 0); |     const auto button = params.Get("button", 0); | ||||||
|     const auto toggle = params.Get("toggle", false); |     const auto toggle = params.Get("toggle", false) != 0; | ||||||
|     const auto inverted = params.Get("inverted", false); |     const auto inverted = params.Get("inverted", false) != 0; | ||||||
| 
 | 
 | ||||||
|     const auto axis_x = params.Get("axis_x", 0); |     const auto axis_x = params.Get("axis_x", 0); | ||||||
|     const Common::Input::AnalogProperties properties_x = { |     const Common::Input::AnalogProperties properties_x = { | ||||||
|  |  | ||||||
|  | @ -248,7 +248,6 @@ if (MSVC) | ||||||
|         /we4245 # 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch |         /we4245 # 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch | ||||||
|         /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data |         /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data | ||||||
|         /we4800 # Implicit conversion from 'type' to bool. Possible information loss |         /we4800 # Implicit conversion from 'type' to bool. Possible information loss | ||||||
|         /we4826 # Conversion from 'type1' to 'type2' is sign-extended. This may cause unexpected runtime behavior. |  | ||||||
|     ) |     ) | ||||||
| else() | else() | ||||||
|     target_compile_options(shader_recompiler PRIVATE |     target_compile_options(shader_recompiler PRIVATE | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Morph
						Morph