mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2024-12-19 08:52:25 +00:00
ams: add -Wno-format-truncation to flags
This commit is contained in:
parent
9003ad6e49
commit
f594de0081
5 changed files with 19 additions and 32 deletions
|
@ -17,8 +17,10 @@ endif
|
||||||
|
|
||||||
export ATMOSPHERE_DEFINES := -DATMOSPHERE
|
export ATMOSPHERE_DEFINES := -DATMOSPHERE
|
||||||
export ATMOSPHERE_SETTINGS := -fPIE -g
|
export ATMOSPHERE_SETTINGS := -fPIE -g
|
||||||
export ATMOSPHERE_CFLAGS := -Wall -ffunction-sections -fdata-sections -fno-strict-aliasing -fwrapv \
|
export ATMOSPHERE_CFLAGS := -Wall -ffunction-sections -fdata-sections -fno-strict-aliasing -fwrapv \
|
||||||
-fno-asynchronous-unwind-tables -fno-unwind-tables -fno-stack-protector
|
-fno-asynchronous-unwind-tables -fno-unwind-tables -fno-stack-protector \
|
||||||
|
-Wno-format-truncation
|
||||||
|
|
||||||
export ATMOSPHERE_CXXFLAGS := -fno-rtti -fno-exceptions -std=gnu++20
|
export ATMOSPHERE_CXXFLAGS := -fno-rtti -fno-exceptions -std=gnu++20
|
||||||
export ATMOSPHERE_ASFLAGS :=
|
export ATMOSPHERE_ASFLAGS :=
|
||||||
|
|
||||||
|
|
|
@ -86,22 +86,17 @@ namespace ams::emummc {
|
||||||
const Storage storage = static_cast<Storage>(g_exo_config.base_cfg.type);
|
const Storage storage = static_cast<Storage>(g_exo_config.base_cfg.type);
|
||||||
g_is_emummc = g_exo_config.base_cfg.magic == StorageMagic && storage != Storage_Emmc;
|
g_is_emummc = g_exo_config.base_cfg.magic == StorageMagic && storage != Storage_Emmc;
|
||||||
|
|
||||||
/* Format paths. Ignore string format warnings. */
|
/* Format paths. */
|
||||||
#pragma GCC diagnostic push
|
if (storage == Storage_SdFile) {
|
||||||
#pragma GCC diagnostic ignored "-Wformat-truncation"
|
std::snprintf(g_exo_config.file_cfg.path, sizeof(g_exo_config.file_cfg.path), "/%s", paths->file_path);
|
||||||
{
|
}
|
||||||
if (storage == Storage_SdFile) {
|
|
||||||
std::snprintf(g_exo_config.file_cfg.path, sizeof(g_exo_config.file_cfg.path), "/%s", paths->file_path);
|
std::snprintf(g_exo_config.emu_dir_path, sizeof(g_exo_config.emu_dir_path), "/%s", paths->nintendo_path);
|
||||||
}
|
|
||||||
|
/* If we're emummc, implement default nintendo redirection path. */
|
||||||
std::snprintf(g_exo_config.emu_dir_path, sizeof(g_exo_config.emu_dir_path), "/%s", paths->nintendo_path);
|
if (g_is_emummc && std::strcmp(g_exo_config.emu_dir_path, "/") == 0) {
|
||||||
|
std::snprintf(g_exo_config.emu_dir_path, sizeof(g_exo_config.emu_dir_path), "/emummc/Nintendo_%04x", g_exo_config.base_cfg.id);
|
||||||
/* If we're emummc, implement default nintendo redirection path. */
|
|
||||||
if (g_is_emummc && std::strcmp(g_exo_config.emu_dir_path, "/") == 0) {
|
|
||||||
std::snprintf(g_exo_config.emu_dir_path, sizeof(g_exo_config.emu_dir_path), "/emummc/Nintendo_%04x", g_exo_config.base_cfg.id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#pragma GCC diagnostic pop
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_has_cached = true;
|
g_has_cached = true;
|
||||||
|
|
|
@ -237,10 +237,7 @@ namespace ams::patcher {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print the path for this directory. */
|
/* Print the path for this directory. */
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#pragma GCC diagnostic ignored "-Wformat-truncation"
|
|
||||||
std::snprintf(path + patches_dir_path_len, sizeof(path) - patches_dir_path_len, "/%s", entry.name);
|
std::snprintf(path + patches_dir_path_len, sizeof(path) - patches_dir_path_len, "/%s", entry.name);
|
||||||
#pragma GCC diagnostic pop
|
|
||||||
const size_t patch_dir_path_len = patches_dir_path_len + 1 + std::strlen(entry.name);
|
const size_t patch_dir_path_len = patches_dir_path_len + 1 + std::strlen(entry.name);
|
||||||
|
|
||||||
/* Open the patch directory. */
|
/* Open the patch directory. */
|
||||||
|
|
|
@ -56,15 +56,11 @@ namespace ams::mitm::settings {
|
||||||
const auto api_info = exosphere::GetApiInfo();
|
const auto api_info = exosphere::GetApiInfo();
|
||||||
const char emummc_char = emummc::IsActive() ? 'E' : 'S';
|
const char emummc_char = emummc::IsActive() ? 'E' : 'S';
|
||||||
|
|
||||||
/* GCC complains about the following snprintf possibly truncating, but this is not a problem and has been carefully accounted for. */
|
/* NOTE: We have carefully accounted for the size of the string we print. */
|
||||||
#pragma GCC diagnostic push
|
/* No truncation occurs assuming two-digits for all version number components. */
|
||||||
#pragma GCC diagnostic ignored "-Wformat-truncation"
|
char display_version[sizeof(g_ams_firmware_version.display_version)];
|
||||||
{
|
std::snprintf(display_version, sizeof(display_version), "%s|AMS %u.%u.%u|%c", g_ams_firmware_version.display_version, api_info.GetMajorVersion(), api_info.GetMinorVersion(), api_info.GetMicroVersion(), emummc_char);
|
||||||
char display_version[sizeof(g_ams_firmware_version.display_version)];
|
std::memcpy(g_ams_firmware_version.display_version, display_version, sizeof(display_version));
|
||||||
std::snprintf(display_version, sizeof(display_version), "%s|AMS %u.%u.%u|%c", g_ams_firmware_version.display_version, api_info.GetMajorVersion(), api_info.GetMinorVersion(), api_info.GetMicroVersion(), emummc_char);
|
|
||||||
std::memcpy(g_ams_firmware_version.display_version, display_version, sizeof(display_version));
|
|
||||||
}
|
|
||||||
#pragma GCC diagnostic pop
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_cached_firmware_version = true;
|
g_cached_firmware_version = true;
|
||||||
|
|
|
@ -138,10 +138,7 @@ int main(int argc, char **argv)
|
||||||
settings::system::GetSerialNumber(std::addressof(serial_number));
|
settings::system::GetSerialNumber(std::addressof(serial_number));
|
||||||
|
|
||||||
char os_private[0x60];
|
char os_private[0x60];
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#pragma GCC diagnostic ignored "-Wformat-truncation"
|
|
||||||
const auto os_priv_len = std::snprintf(os_private, sizeof(os_private), "%s (%.8s)", firmware_version.display_name, firmware_version.revision);
|
const auto os_priv_len = std::snprintf(os_private, sizeof(os_private), "%s (%.8s)", firmware_version.display_name, firmware_version.revision);
|
||||||
#pragma GCC diagnostic pop
|
|
||||||
AMS_ASSERT(static_cast<size_t>(os_priv_len) < sizeof(os_private));
|
AMS_ASSERT(static_cast<size_t>(os_priv_len) < sizeof(os_private));
|
||||||
|
|
||||||
R_ABORT_UNLESS(erpt::srv::SetSerialNumberAndOsVersion(serial_number.str,
|
R_ABORT_UNLESS(erpt::srv::SetSerialNumberAndOsVersion(serial_number.str,
|
||||||
|
|
Loading…
Reference in a new issue