http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52495
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2012-08-17 01:13:29
UTC ---
I also run into this. The bug is in rs6000.h:
#ifdef HAVE_GAS_WEAK
#define RS6000_WEAK 1
#else
#define RS6000_WEAK 0
#endif
#if RS6000_WEAK
/* Used in lieu of ASM_WEAKEN_LABEL. */
#define ASM_WEAKEN_DECL(FILE, DECL, NAME, VAL) \
do \
{ \
fputs ("\t.weak\t", (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL \
&& DEFAULT_ABI == ABI_AIX && DOT_SYMBOLS) \
{ \
if (TARGET_XCOFF)
..
ASM_WEAKEN_DECL is used unconditionally.