[PATCH setup] Fix error with gcc 10.2 and -Werror=format

Jon Turney jon.turney@dronecode.org.uk
Thu Sep 24 21:23:13 GMT 2020


archive_tar.cc: In member function ‘virtual const string archive_tar::next_file_name()’:
archive_tar.cc:161:37: error: 'I' flag used with ‘%o’ gnu_scanf format [-Werror=format=]
archive_tar.cc:161:37: error: format ‘%o’ expects argument of type ‘unsigned int*’, but argument 3 has type ‘size_t*’ {aka ‘long long unsigned int*’} [-Werror=format=]
archive_tar.cc:181:38: error: 'I' flag used with ‘%o’ gnu_scanf format [-Werror=format=]
archive_tar.cc:181:38: error: format ‘%o’ expects argument of type ‘unsigned int*’, but argument 3 has type ‘size_t*’ {aka ‘long long unsigned int*’} [-Werror=format=]
---
 archive_tar.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/archive_tar.cc b/archive_tar.cc
index 05c3f6e..c359238 100644
--- a/archive_tar.cc
+++ b/archive_tar.cc
@@ -158,7 +158,7 @@ archive_tar::next_file_name ()
   else if (state.have_longname)
     state.have_longname = 0;
 
-  sscanf (state.tar_header.size, "%Io", &state.file_length);
+  sscanf (state.tar_header.size, "%zo", &state.file_length);
   state.file_offset = 0;
 
   if (_tar_verbose)
@@ -178,7 +178,7 @@ archive_tar::next_file_name ()
                           CYG_PATH_MAX);
 	  err++;
 	  state.parent->read (&state.tar_header, 512);
-	  sscanf (state.tar_header.size, "%Io", &state.file_length);
+	  sscanf (state.tar_header.size, "%zo", &state.file_length);
 	  state.file_offset = 0;
 	  skip_file ();
 	  return next_file_name ();
-- 
2.28.0



More information about the Cygwin-apps mailing list