From: Jim Meyering Date: Mon, 28 Nov 2011 09:24:04 +0000 (+0100) Subject: propername: do not mark proper_name with the const attribute X-Git-Tag: v0.1~1396 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=69f517e5975418e7b2c5033f8f60191919f44b9d;p=gnulib.git propername: do not mark proper_name with the const attribute * lib/propername.h (proper_name): Do *not* mark as _GL_ATTRIBUTE_CONST, since it examines data pointed to by its parameter. * lib/propername.c (proper_name): Instead, add a pragma to suppress the suggestion from -Wsuggest-attribute=const. --- diff --git a/ChangeLog b/ChangeLog index fe8f9d175..28fbe90a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2011-11-28 Jim Meyering + propername: do not mark proper_name with the const attribute + * lib/propername.h (proper_name): Do *not* mark as _GL_ATTRIBUTE_CONST, + since it examines data pointed to by its parameter. + * lib/propername.c (proper_name): Instead, add a pragma to suppress + the suggestion from -Wsuggest-attribute=const. + propername: mark one more function as const * lib/propername.h (proper_name): Mark as _GL_ATTRIBUTE_CONST. diff --git a/lib/propername.c b/lib/propername.c index b74923de9..346c31048 100644 --- a/lib/propername.c +++ b/lib/propername.c @@ -15,6 +15,12 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +/* Without this pragma, gcc 4.7.0 20111124 mistakenly suggests that + the proper_name function might be candidate for attribute 'const' */ +#if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ +# pragma GCC diagnostic ignored "-Wsuggest-attribute=const" +#endif + #include /* Specification. */ diff --git a/lib/propername.h b/lib/propername.h index 014153282..997c57b23 100644 --- a/lib/propername.h +++ b/lib/propername.h @@ -89,7 +89,7 @@ extern "C" { #endif /* Return the localization of NAME. NAME is written in ASCII. */ -extern const char * proper_name (const char *name) _GL_ATTRIBUTE_CONST; +extern const char * proper_name (const char *name) /* NOT attribute const */; /* Return the localization of a name whose original writing is not ASCII. NAME_UTF8 is the real name, written in UTF-8 with octal or hexadecimal