aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2015-10-29 15:25:08 +0000
committerPedro Alves <palves@redhat.com>2015-10-29 17:39:33 +0000
commit7535d5edeaa5cfa5ba369e8d3ffb47972483394a (patch)
tree0f947faec5c61b342089f9c3c5317d3a72878031 /gdb
parentguile/: Add enum cast (diff)
downloadbinutils-gdb-7535d5edeaa5cfa5ba369e8d3ffb47972483394a.tar.gz
binutils-gdb-7535d5edeaa5cfa5ba369e8d3ffb47972483394a.tar.bz2
binutils-gdb-7535d5edeaa5cfa5ba369e8d3ffb47972483394a.zip
Add cast to VEC_iterate
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-29 Pedro Alves <palves@redhat.com> * common/vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/common/vec.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 94332211751..c22eb46c457 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2015-10-29 Pedro Alves <palves@redhat.com>
+ * common/vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
+
+2015-10-29 Pedro Alves <palves@redhat.com>
+
* guile/scm-frame.c (gdbscm_unwind_stop_reason_string): Add cast.
2015-10-29 Eli Zaretskii <eliz@gnu.org>
diff --git a/gdb/common/vec.h b/gdb/common/vec.h
index 25644857abe..6189283a03b 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; \
} \
} \