This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] [C++] s390: Fix enum gdb_syscall conversion


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=4d1931791d0aca95ce82d5391f03b31613d9173b

commit 4d1931791d0aca95ce82d5391f03b31613d9173b
Author: Simon Marchi <simon.marchi@ericsson.com>
Date:   Thu Nov 19 14:32:53 2015 +0000

    [C++] s390: Fix enum gdb_syscall conversion
    
    Fixes:
    
     src/gdb/s390-linux-tdep.c: In function â??gdb_syscall s390_canonicalize_syscall(int, s390_abi_kind)â??:
     src/gdb/s390-linux-tdep.c:2622:16: error: invalid conversion from â??intâ?? to â??gdb_syscallâ?? [-fpermissive]
    	  return syscall;
    		 ^
     src/gdb/s390-linux-tdep.c:2722:16: error: invalid conversion from â??intâ?? to â??gdb_syscallâ?? [-fpermissive]
    	  return syscall;
    		 ^
     src/gdb/s390-linux-tdep.c:2725:24: error: invalid conversion from â??intâ?? to â??gdb_syscallâ?? [-fpermissive]
    	  return syscall + 2;
    			 ^
     src/gdb/s390-linux-tdep.c:2728:24: error: invalid conversion from â??intâ?? to â??gdb_syscallâ?? [-fpermissive]
    	  return syscall + 5;
    			 ^
     src/gdb/s390-linux-tdep.c:2731:24: error: invalid conversion from â??intâ?? to â??gdb_syscallâ?? [-fpermissive]
    	  return syscall + 6;
    			 ^
     src/gdb/s390-linux-tdep.c:2734:24: error: invalid conversion from â??intâ?? to â??gdb_syscallâ?? [-fpermissive]
    	  return syscall + 7;
    			 ^
    
    gdb/ChangeLog:
    2015-11-19  Simon Marchi  <simon.marchi@ericsson.com>
    	    Pedro Alves  <palves@redhat.com>
    
    	* s390-linux-tdep.c (s390_canonicalize_syscall): Add casts and
    	intermediate 'int' variable.

Diff:
---
 gdb/ChangeLog         |  6 ++++++
 gdb/s390-linux-tdep.c | 41 ++++++++++++++++++++++++-----------------
 2 files changed, 30 insertions(+), 17 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 223b860..4d799d0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2015-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* s390-linux-tdep.c (s390_canonicalize_syscall): Add casts and
+	intermediate 'int' variable.
+
 2015-11-19  Pedro Alves  <palves@redhat.com>
 
 	* linux-thread-db.c (try_thread_db_load_1): Add cast.
diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
index 3ce6336..0f8a3a8 100644
--- a/gdb/s390-linux-tdep.c
+++ b/gdb/s390-linux-tdep.c
@@ -2619,7 +2619,7 @@ s390_canonicalize_syscall (int syscall, enum s390_abi_kind abi)
     case 197: /* fstat64 */
     case 221: /* fcntl64 */
       if (abi == ABI_LINUX_S390)
-        return syscall;
+        return (enum gdb_syscall) syscall;
       return gdb_sys_no_syscall;
     /* These syscalls don't exist on s390.  */
     case 17: /* break */
@@ -2717,22 +2717,29 @@ s390_canonicalize_syscall (int syscall, enum s390_abi_kind abi)
       return gdb_sys_newfstatat;
     /* 313+ not yet supported */
     default:
-      /* Most "old" syscalls copied from i386.  */
-      if (syscall <= 221)
-        return syscall;
-      /* xattr syscalls.  */
-      if (syscall >= 224 && syscall <= 235)
-        return syscall + 2;
-      /* timer syscalls.  */
-      if (syscall >= 254 && syscall <= 262)
-        return syscall + 5;
-      /* mq_* and kexec_load */
-      if (syscall >= 271 && syscall <= 277)
-        return syscall + 6;
-      /* ioprio_set .. epoll_pwait */
-      if (syscall >= 282 && syscall <= 312)
-        return syscall + 7;
-      return gdb_sys_no_syscall;
+      {
+	int ret;
+
+	/* Most "old" syscalls copied from i386.  */
+	if (syscall <= 221)
+	  ret = syscall;
+	/* xattr syscalls.  */
+	else if (syscall >= 224 && syscall <= 235)
+	  ret = syscall + 2;
+	/* timer syscalls.  */
+	else if (syscall >= 254 && syscall <= 262)
+	  ret = syscall + 5;
+	/* mq_* and kexec_load */
+	else if (syscall >= 271 && syscall <= 277)
+	  ret = syscall + 6;
+	/* ioprio_set .. epoll_pwait */
+	else if (syscall >= 282 && syscall <= 312)
+	  ret = syscall + 7;
+	else
+	  ret = gdb_sys_no_syscall;
+
+	return (enum gdb_syscall) ret;
+      }
     }
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]