propername: do not mark proper_name with the const attribute
authorJim Meyering <meyering@redhat.com>
Mon, 28 Nov 2011 09:24:04 +0000 (10:24 +0100)
committerJim Meyering <meyering@redhat.com>
Mon, 28 Nov 2011 09:26:12 +0000 (10:26 +0100)
* 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.

ChangeLog
lib/propername.c
lib/propername.h

index fe8f9d1..28fbe90 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2011-11-28  Jim Meyering  <meyering@redhat.com>
 
+       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.
 
index b74923d..346c310 100644 (file)
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+/* 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 <config.h>
 
 /* Specification.  */
index 0141532..997c57b 100644 (file)
@@ -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