From: Francois-Xavier Coudert Date: Tue, 8 Nov 2011 21:58:47 +0000 (+0000) Subject: re PR libfortran/47972 (error.c:158:7: warning: return makes pointer from integer... X-Git-Tag: upstream/12.2.0~79925 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6ef982714cf2a0a796cd55805ceeeaa07726a903;p=platform%2Fupstream%2Fgcc.git re PR libfortran/47972 (error.c:158:7: warning: return makes pointer from integer without a cast) PR libfortran/47972 * runtime/error.c (gf_strerror): Silence warning. From-SVN: r181180 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index becb601..3a2db6d 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,5 +1,10 @@ 2011-11-08 Francois-Xavier Coudert + PR libfortran/47972 + * runtime/error.c (gf_strerror): Silence warning. + +2011-11-08 Francois-Xavier Coudert + PR libfortran/47970 * intrinsics/c99_functions.c (round): Move higher in the file. diff --git a/libgfortran/runtime/error.c b/libgfortran/runtime/error.c index aa44706..cb06429 100644 --- a/libgfortran/runtime/error.c +++ b/libgfortran/runtime/error.c @@ -219,19 +219,13 @@ gf_strerror (int errnum, size_t buflen __attribute__((unused))) { #ifdef HAVE_STRERROR_R - /* TODO: How to prevent the compiler warning due to strerror_r of - the untaken branch having the wrong return type? */ - if (__builtin_classify_type (strerror_r (0, buf, 0)) == 5) - { - /* GNU strerror_r() */ - return strerror_r (errnum, buf, buflen); - } - else - { - /* POSIX strerror_r () */ - strerror_r (errnum, buf, buflen); - return buf; - } + return + __builtin_choose_expr (__builtin_classify_type (strerror_r (0, buf, 0)) + == 5, + /* GNU strerror_r() */ + strerror_r (errnum, buf, buflen), + /* POSIX strerror_r () */ + (strerror_r (errnum, buf, buflen), buf)); #else /* strerror () is not necessarily thread-safe, but should at least be available everywhere. */