From ae101921e8441d2a87ce0f09804cad2409726cc5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 28 Jan 2022 07:57:35 -0500 Subject: Source: Avoid gcc 12 compilation warning GCC 12 warns: warning: '%04d' directive output may be truncated writing between 4 and 11 bytes into a region of size 5 [-Wformat-truncation=] The surrounding logic guarantees the formatted integer will never be more than 4 bytes, but it doesn't hurt to use a larger buffer. This GCC behavior is documented: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104012#c5 --- Source/cmLocalUnixMakefileGenerator3.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index 2700ded..0f8cdca 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -1274,7 +1274,7 @@ std::string cmLocalUnixMakefileGenerator3::CreateMakeVariable( cmSystemTools::ReplaceString(ret, "-", "__"); cmSystemTools::ReplaceString(ret, "+", "___"); int ni = 0; - char buffer[5]; + char buffer[12]; // make sure the _ version is not already used, if // it is used then add number to the end of the variable while (this->ShortMakeVariableMap.count(ret) && ni < 1000) { @@ -1302,7 +1302,7 @@ std::string cmLocalUnixMakefileGenerator3::CreateMakeVariable( if (static_cast(str1.size()) + static_cast(str2.size()) > size) { str1 = str1.substr(0, size - str2.size()); } - char buffer[5]; + char buffer[12]; int ni = 0; snprintf(buffer, sizeof(buffer), "%04d", ni); ret = str1 + str2 + buffer; -- cgit v0.12