From: Pedro Alves <palves@redhat.com>
To: gdb-patches@sourceware.org
Cc: Simon Marchi <simon.marchi@polymtl.ca>
Subject: [PATCH] Add cast to VEC_iterate
Date: Thu, 29 Oct 2015 13:03:00 -0000 [thread overview]
Message-ID: <1446062352-27859-1-git-send-email-palves@redhat.com> (raw)
Fixes this in C++:
../../src/gdb/break-catch-sig.c: In function âint VEC_gdb_signal_type_iterate(const VEC_gdb_signal_type*, unsigned int, gdb_signal_type*)â:
../../src/gdb/common/vec.h:576:12: error: invalid conversion from âintâ to âgdb_signal_type {aka gdb_signal}â [-fpermissive]
*ptr = 0; \
^
../../src/gdb/common/vec.h:417:1: note: in expansion of macro âDEF_VEC_FUNC_Pâ
DEF_VEC_FUNC_P(T) \
^
../../src/gdb/break-catch-sig.c:37:1: note: in expansion of macro âDEF_VEC_Iâ
DEF_VEC_I (gdb_signal_type);
^
I actually carried a different fix in the C++ branch that removed this
assignment and then adjusted all callers that depended on it. The
thinking was that this is for the case where we're returning false,
indicating end of iteration. But that results in a much larger and
tricker patch; looking back it seems quite pointless. I looked at the
history of GCC's C++ conversion and saw that they added this same cast
to their version of vec.h, FWIW. (GCC's vec.h is completely different
nowadays, having been converted to templates meanwhile.)
gdb/ChangeLog:
2015-10-28 Pedro Alves <palves@redhat.com>
* common/vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
---
gdb/common/vec.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/common/vec.h b/gdb/common/vec.h
index 2564485..6189283 100644
--- a/gdb/common/vec.h
+++ b/gdb/common/vec.h
@@ -573,7 +573,7 @@ static inline int VEC_OP (T,iterate) \
} \
else \
{ \
- *ptr = 0; \
+ *ptr = (T) 0; \
return 0; \
} \
} \
--
1.9.3
next reply other threads:[~2015-10-28 19:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-29 13:03 Pedro Alves [this message]
2015-10-29 13:03 ` Simon Marchi
2015-10-29 17:53 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1446062352-27859-1-git-send-email-palves@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=simon.marchi@polymtl.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox