[OB PATCH] Fix gdb.arch/i386-sse.exp with clang

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[OB PATCH] Fix gdb.arch/i386-sse.exp with clang

Sourceware - gdb-patches mailing list
Hi all,

gdb.arch/i386-sse.exp fails to run with clang, because of:

 gdb compile failed, /gdbtest/src/gdb/testsuite/gdb.arch/i386-sse.c:56:40: warning:
       passing 'int *' to parameter of type 'unsigned int *' converts between
       pointers to integer types with different sign [-Wpointer-sign]
   if (!x86_cpuid (1, NULL, NULL, NULL, &edx))
                                        ^~~~
 /gdbtest/src/gdb/testsuite/../nat/x86-cpuid.h:35:41: note: passing
       argument to parameter '__edx' here
             unsigned int *__ecx, unsigned int *__edx)
                                               ^
 1 warning generated.

Fix it by declaring edx unsigned.

Checked on Fedora 31 x86_64, GCC and clang, pushed as obvious.

Cheers,
Gary

--
gdb/testsuite/ChangeLog:

        * gdb.arch/i386-sse.c (have_sse) <edx>: Make unsigned.
---
 gdb/testsuite/ChangeLog           | 4 ++++
 gdb/testsuite/gdb.arch/i386-sse.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.arch/i386-sse.c b/gdb/testsuite/gdb.arch/i386-sse.c
index 72250e0..bd9bc1a 100644
--- a/gdb/testsuite/gdb.arch/i386-sse.c
+++ b/gdb/testsuite/gdb.arch/i386-sse.c
@@ -51,7 +51,7 @@
 int
 have_sse (void)
 {
-  int edx;
+  unsigned int edx;
 
   if (!x86_cpuid (1, NULL, NULL, NULL, &edx))
     return 0;
--
1.8.3.1