From f2b9036355376b6b86cda8d945fdacf5903ac223 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Mon, 17 Aug 2020 14:39:18 -0700 Subject: [PATCH] exo: build with -Wextra --- config/templates/exosphere.mk | 2 +- libexosphere/arm.mk | 2 +- libexosphere/arm64.mk | 2 +- .../include/exosphere/secmon/secmon_monitor_context.hpp | 6 ++++++ .../source/crypto/crypto_aes_impl_security_engine.cpp | 6 ++++++ libexosphere/source/i2c/i2c_api.cpp | 4 ++++ libvapours/include/vapours/assert.hpp | 2 +- 7 files changed, 20 insertions(+), 4 deletions(-) diff --git a/config/templates/exosphere.mk b/config/templates/exosphere.mk index 7025e615..e2629d9f 100644 --- a/config/templates/exosphere.mk +++ b/config/templates/exosphere.mk @@ -8,7 +8,7 @@ include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/../common.mk #--------------------------------------------------------------------------------- ifeq ($(strip $(ATMOSPHERE_ARCH_NAME)),arm64) DEFINES := $(ATMOSPHERE_DEFINES) -DATMOSPHERE_IS_EXOSPHERE -SETTINGS := $(ATMOSPHERE_SETTINGS) -mgeneral-regs-only -ffixed-x18 -Os -Werror -fno-non-call-exceptions +SETTINGS := $(ATMOSPHERE_SETTINGS) -mgeneral-regs-only -ffixed-x18 -Os -Wextra -Werror -fno-non-call-exceptions CFLAGS := $(ATMOSPHERE_CFLAGS) $(SETTINGS) $(DEFINES) $(INCLUDE) CXXFLAGS := $(CFLAGS) $(ATMOSPHERE_CXXFLAGS) -fno-use-cxa-atexit ASFLAGS := $(ATMOSPHERE_ASFLAGS) $(SETTINGS) diff --git a/libexosphere/arm.mk b/libexosphere/arm.mk index 044c1289..f82386e0 100644 --- a/libexosphere/arm.mk +++ b/libexosphere/arm.mk @@ -14,7 +14,7 @@ include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/../config/common.mk #--------------------------------------------------------------------------------- DEFINES := $(ATMOSPHERE_DEFINES) -DATMOSPHERE_IS_EXOSPHERE -SETTINGS := $(ATMOSPHERE_SETTINGS) -Os -Werror -flto -fno-non-call-exceptions +SETTINGS := $(ATMOSPHERE_SETTINGS) -Os -Wextra -Werror -flto -fno-non-call-exceptions CFLAGS := $(ATMOSPHERE_CFLAGS) $(SETTINGS) $(DEFINES) $(INCLUDE) CXXFLAGS := $(CFLAGS) $(ATMOSPHERE_CXXFLAGS) -fno-use-cxa-atexit ASFLAGS := $(ATMOSPHERE_ASFLAGS) $(SETTINGS) diff --git a/libexosphere/arm64.mk b/libexosphere/arm64.mk index f20a5bcd..3ce1165b 100644 --- a/libexosphere/arm64.mk +++ b/libexosphere/arm64.mk @@ -14,7 +14,7 @@ include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/../config/common.mk #--------------------------------------------------------------------------------- DEFINES := $(ATMOSPHERE_DEFINES) -DATMOSPHERE_IS_EXOSPHERE -SETTINGS := $(ATMOSPHERE_SETTINGS) -mgeneral-regs-only -ffixed-x18 -Os -Werror -fno-non-call-exceptions +SETTINGS := $(ATMOSPHERE_SETTINGS) -mgeneral-regs-only -ffixed-x18 -Os -Wextra -Werror -fno-non-call-exceptions CFLAGS := $(ATMOSPHERE_CFLAGS) $(SETTINGS) $(DEFINES) $(INCLUDE) CXXFLAGS := $(CFLAGS) $(ATMOSPHERE_CXXFLAGS) -fno-use-cxa-atexit ASFLAGS := $(ATMOSPHERE_ASFLAGS) $(SETTINGS) diff --git a/libexosphere/include/exosphere/secmon/secmon_monitor_context.hpp b/libexosphere/include/exosphere/secmon/secmon_monitor_context.hpp index 263ab28f..568812c7 100644 --- a/libexosphere/include/exosphere/secmon/secmon_monitor_context.hpp +++ b/libexosphere/include/exosphere/secmon/secmon_monitor_context.hpp @@ -89,7 +89,13 @@ namespace ams::secmon { constexpr inline const SecureMonitorConfiguration DefaultSecureMonitorConfiguration = { .target_firmware = ams::TargetFirmware_Current, + .key_generation = {}, + .hardware_type = {}, + .soc_type = {}, + .hardware_state = {}, + .pad_0B = {}, .flags = SecureMonitorConfigurationFlag_Default, + .reserved = {}, }; } diff --git a/libexosphere/source/crypto/crypto_aes_impl_security_engine.cpp b/libexosphere/source/crypto/crypto_aes_impl_security_engine.cpp index d71f7244..54fab167 100644 --- a/libexosphere/source/crypto/crypto_aes_impl_security_engine.cpp +++ b/libexosphere/source/crypto/crypto_aes_impl_security_engine.cpp @@ -33,6 +33,8 @@ namespace ams::crypto::impl { template void AesImpl::Initialize(const void *key, size_t key_size, bool is_encrypt) { static_assert(IsSupportedKeySize(KeySize)); + AMS_ASSERT(key_size == sizeof(int)); + AMS_UNUSED(is_encrypt); /* Set the security engine keyslot. */ this->slot = *static_cast(key); @@ -50,9 +52,11 @@ namespace ams::crypto::impl { } else if constexpr (KeySize == 24) { /* Aes 192. */ /* TODO: se::EncryptAes192(dst, dst_size, this->slot, src, src_size); */ + AMS_UNUSED(dst, dst_size, src, src_size); } else if constexpr (KeySize == 32) { /* Aes 256. */ /* TODO: se::EncryptAes256(dst, dst_size, this->slot, src, src_size); */ + AMS_UNUSED(dst, dst_size, src, src_size); } else { /* Invalid key size. */ static_assert(!std::is_same, AesImpl>::value); @@ -71,9 +75,11 @@ namespace ams::crypto::impl { } else if constexpr (KeySize == 24) { /* Aes 192. */ /* TODO: se::DecryptAes192(dst, dst_size, this->slot, src, src_size); */ + AMS_UNUSED(dst, dst_size, src, src_size); } else if constexpr (KeySize == 32) { /* Aes 256. */ /* TODO: se::DecryptAes256(dst, dst_size, this->slot, src, src_size); */ + AMS_UNUSED(dst, dst_size, src, src_size); } else { /* Invalid key size. */ static_assert(!std::is_same, AesImpl>::value); diff --git a/libexosphere/source/i2c/i2c_api.cpp b/libexosphere/source/i2c/i2c_api.cpp index 10842976..baafacc9 100644 --- a/libexosphere/source/i2c/i2c_api.cpp +++ b/libexosphere/source/i2c/i2c_api.cpp @@ -88,6 +88,8 @@ namespace ams::i2c { } bool Write(uintptr_t base_address, Port port, int address, const void *src, size_t src_size, bool unused) { + AMS_UNUSED(port, unused); + /* Ensure we don't write too much. */ u32 data = 0; if (src_size > MaxTransferSize) { @@ -125,6 +127,8 @@ namespace ams::i2c { } bool Read(uintptr_t base_address, Port port, void *dst, size_t dst_size, int address, bool unused) { + AMS_UNUSED(port, unused); + /* Ensure we don't read too much. */ if (dst_size > MaxTransferSize) { return false; diff --git a/libvapours/include/vapours/assert.hpp b/libvapours/include/vapours/assert.hpp index 5cf46d35..d5034993 100644 --- a/libvapours/include/vapours/assert.hpp +++ b/libvapours/include/vapours/assert.hpp @@ -32,7 +32,7 @@ namespace ams::diag { #define AMS_CALL_ABORT_IMPL(cond, ...) ::ams::diag::AbortImpl(__FILE__, __LINE__, __PRETTY_FUNCTION__, cond, 0, ## __VA_ARGS__) #else #define AMS_CALL_ASSERT_FAIL_IMPL(cond, ...) ::ams::diag::AssertionFailureImpl("", 0, "", "", 0) -#define AMS_CALL_ABORT_IMPL(cond, ...) ::ams::diag::AbortImpl() +#define AMS_CALL_ABORT_IMPL(cond, ...) ::ams::diag::AbortImpl(); AMS_UNUSED(cond, ## __VA_ARGS__) #endif #ifdef AMS_ENABLE_ASSERTIONS