This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[review] Use strerror_r in safe_strerror if available
- From: "Simon Marchi (Code Review)" <gerrit at gnutoolchain-gerrit dot osci dot io>
- To: Christian Biesinger <cbiesinger at google dot com>, gdb-patches at sourceware dot org
- Date: Thu, 31 Oct 2019 15:53:25 -0400
- Subject: [review] Use strerror_r in safe_strerror if available
- Auto-submitted: auto-generated
- References: <gerrit.1572551088000.I81048fbaf148035c221c528727f7efe58ba528eb@gnutoolchain-gerrit.osci.io>
- Reply-to: gnutoolchain-gerrit at osci dot io
Simon Marchi has posted comments on this change.
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/474
......................................................................
Patch Set 1:
(2 comments)
https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/474/1/gdb/gdbsupport/posix-strerror.c
File gdb/gdbsupport/posix-strerror.c:
https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/474/1/gdb/gdbsupport/posix-strerror.c@24
PS1, Line 24:
19 |
20 | #include "common-defs.h"
21 |
22 | /* Implementation of safe_strerror as defined in common-utils.h. */
23 |
24 > char *
25 | safe_strerror (int errnum)
26 | {
27 | static thread_local char buf[1024];
28 |
29 | char *msg = nullptr;
Just wondering, maybe we could make safe_strerror return a `const char *`? I suppose we never want the caller to modify what we return, since it could point to some immutable string.
https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/474/1/gdb/gdbsupport/posix-strerror.c@31
PS1, Line 31:
26 | {
27 | static thread_local char buf[1024];
28 |
29 | char *msg = nullptr;
30 | #ifdef HAVE_STRERROR_R
31 > #if !__GLIBC__ || ((_POSIX_C_SOURCE >= 200112L) && ! _GNU_SOURCE)
32 | /* Glibc has two different, incompatible versions of strerror_r. */
33 | if (strerror_r (errnum, buf, sizeof (buf)) == 0)
34 | msg = buf;
35 | #else
36 | msg = strerror_r (errnum, buf, sizeof (buf));
Just a nit, can you "indent" the preprocessor declarations, like
#ifdef HAVE_STRERROR_R
# if ...
? I think it makes it easier to read.
--
Gerrit-Project: binutils-gdb
Gerrit-Branch: master
Gerrit-Change-Id: I81048fbaf148035c221c528727f7efe58ba528eb
Gerrit-Change-Number: 474
Gerrit-PatchSet: 1
Gerrit-Owner: Christian Biesinger <cbiesinger@google.com>
Gerrit-CC: Simon Marchi <simon.marchi@polymtl.ca>
Gerrit-Comment-Date: Thu, 31 Oct 2019 19:53:25 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment