[PATCH] Fix attribute_hidden location

Jakub Jelinek jakub@redhat.com
Tue Aug 31 13:24:00 GMT 2004


Hi!

GCC recently started allowing visibility attributes not only for decls, but
also for types.
The side-effect of this is that with type *attribute_hidden foo (void)
attribute_hidden no longer applies to foo, but to type * (and results in
a warning).
See http://gcc.gnu.org/PR17251 for details.
If attribute_hidden is moved before the type, it will work right with
both old and new GCC, so even if GCC is changed to restore the old
behaviour somehow, IMHO following patch certainly doesn't hurt.

2004-08-31  Jakub Jelinek  <jakub@redhat.com>

	* wcsmbs/wcsmbsload.c (__wcsmbs_getfct): Move attribute_hidden
	before return type.
	* locale/localename.c (__current_locale_name): Likewise.

--- libc/wcsmbs/wcsmbsload.c.jj	2004-04-13 10:42:56.000000000 +0200
+++ libc/wcsmbs/wcsmbsload.c	2004-08-31 15:02:12.678731411 +0200
@@ -78,8 +78,8 @@ const struct gconv_fcts __wcsmbs_gconv_f
 };
 
 
-struct __gconv_step *
 attribute_hidden
+struct __gconv_step *
 __wcsmbs_getfct (const char *to, const char *from, size_t *nstepsp)
 {
   size_t nsteps;
--- libc/locale/localename.c.jj	2002-08-30 12:36:18.000000000 +0200
+++ libc/locale/localename.c	2004-08-31 15:01:43.144992759 +0200
@@ -1,5 +1,5 @@
 /* current locale setting names
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004 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
@@ -19,8 +19,8 @@
 
 #include "localeinfo.h"
 
-const char *
 attribute_hidden
+const char *
 __current_locale_name (int category)
 {
   return _NL_CURRENT_LOCALE->__names[category];


	Jakub



More information about the Libc-hacker mailing list