From patchwork Wed Nov 18 16:39:59 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Pedro Alves X-Patchwork-Id: 9727 Received: (qmail 91623 invoked by alias); 18 Nov 2015 16:40:12 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 91512 invoked by uid 89); 18 Nov 2015 16:40:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 18 Nov 2015 16:40:09 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id C4E6519F3A1; Wed, 18 Nov 2015 16:40:07 +0000 (UTC) Received: from brno.lan (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tAIGe2QA030267; Wed, 18 Nov 2015 11:40:07 -0500 From: Pedro Alves To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 3/6] [C++] s390: Fix enum gdb_syscall conversion Date: Wed, 18 Nov 2015 16:39:59 +0000 Message-Id: <1447864802-24016-4-git-send-email-palves@redhat.com> In-Reply-To: <1447864802-24016-1-git-send-email-palves@redhat.com> References: <1447864802-24016-1-git-send-email-palves@redhat.com> MIME-Version: 1.0 From: Simon Marchi 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-18 Simon Marchi Pedro Alves * s390-linux-tdep.c (s390_canonicalize_syscall): Add casts and intermediate 'int' variable. --- gdb/s390-linux-tdep.c | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) 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; + } } }