https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62150
Bug ID: 62150 Summary: test case g++.dg/ext/arm-fp16/fp16-mangle-1.C failed on ARM Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: amker.cheng at gmail dot com Hi, The test case is like below. /* { dg-do compile { target arm*-*-* } } */ /* { dg-options "-mfp16-format=ieee" } */ /* Test mangling */ /* { dg-final { scan-assembler "\t.global\t_Z1fPDh" } } */ void f (__fp16 *x) { } /* { dg-final { scan-assembler "\t.global\t_Z1gPDhS_" } } */ void g (__fp16 *x, __fp16 *y) { } /* { dg-final { scan-assembler "\t.global\t_ZN1SIDhDhE1iE" } } */ template <typename T, typename U> struct S { static int i; }; template <> int S<__fp16, __fp16>::i = 3; But the generated assembly code is like. .weak _ZN1SIDhDhE1iE .section .data._ZN1SIDhDhE1iE,"awG",%progbits,_ZN1SIDhDhE1iE,comdat .align 2 .type _ZN1SIDhDhE1iE, %object .size _ZN1SIDhDhE1iE, 4 _ZN1SIDhDhE1iE: .word 3 .ident "GCC: (GNU) 4.10.0 20140811 (experimental)" In which _ZN1SIDhDhE1iE is weak, rather than global. This starts from r213307 and as stated by Jason at https://gcc.gnu.org/ml/gcc-patches/2014-08/msg01483.html. It is a bug? I know little about c++, so better leave it to an expert. Thanks very much.