[PATCH] Fix <bits/mqueue2.h> for C++
Jakub Jelinek
jakub@redhat.com
Mon Jun 6 13:34:00 GMT 2011
Hi!
g++ -O2 -D_FORTIFY_SOURCE=2 -pedantic complains about mqueue.h,
as mq_open inline isn't marked throw () while mq_open prototype is.
Fixed by adding __NTH, additionally __mq_open_2 and __mq_open_alias
can't throw either.
2011-06-04 Jakub Jelinek <jakub@redhat.com>
[BZ #12841]
* rt/bits/mqueue2.h (__mq_open_2): Add __THROW.
(__mq_open_alias): Use __REDIRECT_NTH instead of __REDIRECT.
(mq_open): Add __NTH.
--- libc/rt/bits/mqueue2.h 2009-05-16 19:23:37.000000000 +0200
+++ libc/rt/bits/mqueue2.h 2011-06-04 19:05:38.322333773 +0200
@@ -1,5 +1,5 @@
/* Checking macros for mq functions.
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,16 +25,18 @@
parameter. */
extern mqd_t mq_open (__const char *__name, int __oflag, ...)
__THROW __nonnull ((1));
-extern mqd_t __mq_open_2 (__const char *__name, int __oflag) __nonnull ((1));
-extern mqd_t __REDIRECT (__mq_open_alias, (__const char *__name, int __oflag, ...),
- mq_open) __nonnull ((1));
+extern mqd_t __mq_open_2 (__const char *__name, int __oflag)
+ __THROW __nonnull ((1));
+extern mqd_t __REDIRECT_NTH (__mq_open_alias, (__const char *__name,
+ int __oflag, ...), mq_open)
+ __nonnull ((1));
__errordecl (__mq_open_wrong_number_of_args,
"mq_open can be called either with 2 or 4 arguments");
__errordecl (__mq_open_missing_mode_and_attr,
"mq_open with O_CREAT in second argument needs 4 arguments");
__extern_always_inline mqd_t
-mq_open (__const char *__name, int __oflag, ...)
+__NTH (mq_open (__const char *__name, int __oflag, ...))
{
if (__va_arg_pack_len () != 0 && __va_arg_pack_len () != 2)
__mq_open_wrong_number_of_args ();
Jakub
More information about the Libc-alpha
mailing list