]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Fix throw_winerror_with_name build error on x86-64 Cygwin
authorPedro Alves <pedro@palves.net>
Tue, 20 Feb 2024 16:31:39 +0000 (16:31 +0000)
committerPedro Alves <pedro@palves.net>
Fri, 23 Feb 2024 17:24:17 +0000 (17:24 +0000)
The GDB build currently fails on x86-64 Cygwin, with:

 src/gdbsupport/errors.cc: In function ‘void throw_winerror_with_name(const char*, ULONGEST)’:
 src/gdbsupport/errors.cc:152:12: error: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘ULONGEST’ {aka ‘long unsigned int’} [-Werror=format=]
   152 |   error (_("%s (error %d): %s"), string, err, strwinerror (err));
       |            ^

Fix this by adding a cast.  While at it, the error codes are really a
DWORD that results from a GetLastError() call, so I think unsigned is
more appropriate.  That is also what strwinerror already does:

    sprintf (buf, "unknown win32 error (%u)", (unsigned) error);

The cast is necessary on MinGW GDB as well, where ULONGEST is unsigned
long long, but for some reason, I don't get a warning there.

Approved-By: Tom Tromey <tom@tromey.com>
Change-Id: I3f5faa779765fd8021abf58bb5f68d556b309d17

gdbsupport/errors.cc

index 8ac3ed0da79563168487eed7e19d094c56a42f5e..cccdc5cafb24622e529e86afa5caa19f53ad33c4 100644 (file)
@@ -149,7 +149,7 @@ strwinerror (ULONGEST error)
 void
 throw_winerror_with_name (const char *string, ULONGEST err)
 {
-  error (_("%s (error %d): %s"), string, err, strwinerror (err));
+  error (_("%s (error %u): %s"), string, (unsigned) err, strwinerror (err));
 }
 
 #endif /* USE_WIN32API */