This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Fix <bits/mqueue2.h> for C++
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Ulrich Drepper <drepper at gmail dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Sat, 4 Jun 2011 19:57:40 +0200
- Subject: [PATCH] Fix <bits/mqueue2.h> for C++
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
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