This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
signal_adapter won't match signal(...)
- To: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Subject: signal_adapter won't match signal(...)
- From: Alexandre Oliva <aoliva at redhat dot com>
- Date: 16 Mar 2001 00:40:54 -0300
- Organization: GCC Team, Red Hat
On systems that declare signal without specifying its argument list,
signal_adapter fails to match. This patch fixes it. Tested on a
dozen of operating systems, along with the latest two snapshots. I
had forgotten to post this.
Ok for 3.0 and mainline?
Index: libstdc++-v3/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* src/gen-num-limits.cc (signal_adapter): Overloaded to match
signal_func with an unspecified argument list.
Index: libstdc++-v3/src/gen-num-limits.cc
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/src/gen-num-limits.cc,v
retrieving revision 1.7
diff -u -p -r1.7 gen-num-limits.cc
--- libstdc++-v3/src/gen-num-limits.cc 2001/02/11 18:15:49 1.7
+++ libstdc++-v3/src/gen-num-limits.cc 2001/03/16 03:37:42
@@ -114,8 +114,16 @@ template <typename signal_handler_type,
inline void (*signal_adapter (signal_handler_type
(*signal_func)(signal_number_type,
signal_handler_type),
- signal_number_type arg,
- void (*handler)(int)))(int)
+ signal_number_type arg,
+ void (*handler)(int)))(int)
+{
+ return (void (*)(int))(*signal_func)(arg, (signal_handler_type)handler);
+}
+
+template <typename signal_handler_type, typename signal_number_type>
+inline void (*signal_adapter (signal_handler_type (*signal_func)(...),
+ signal_number_type arg,
+ void (*handler)(int)))(int)
{
return (void (*)(int))(*signal_func)(arg, (signal_handler_type)handler);
}
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist *Please* write to mailing lists, not to me