On Sun, Sep 25, 2011 at 2:37 PM, Joern Rennecke <amyl...@spamcop.net> wrote: > This patch has not been reviewed for eight weeks. > > ----- Forwarded message from amyl...@spamcop.net ----- > Date: Mon, 01 Aug 2011 01:01:30 -0400 > From: Joern Rennecke <amyl...@spamcop.net> > Reply-To: Joern Rennecke <amyl...@spamcop.net> > Subject: RFA: Testsuite fixes (3/3): USER_LABEL_PREFIX > To: gcc-patches@gcc.gnu.org > > We have some new tests that use assembler names without regard to > USER_LABEL_PREFIX. These tests fail for targets with non-empty > USER_LABEL_PREFIX during the assembly phase. > > Fixed by using ASMNAME macro like in e.g. gcc.dg/alias-7.c . > > Regression tested with x86_64-unknown-linux-gnu X sh-elf . > This fixes 15 spurious FAILures, giving 27 more expected PASSes.
Ok. Thanks, Richard. > > ----- End forwarded message ----- > > > 2011-07-26 Joern Rennecke <joern.renne...@embecosm.com> > > * gcc.dg/pr47276.c (ASMNAME, ASMNAME2, STRING): Define. > (__EI___vsyslog_chk, __EI_syslog, __EI_vsyslog): Use ASMNAME. > (syslog, vsyslog, __vsyslog_chk): Likewise. > > * gcc.dg/lto/20081222_1.c (ASMNAME, ASMNAME2, STRING): Define. > (x, EXT_x): Use ASMNAME. > > * gcc.dg/torture/pr48044.c (ASMNAME, ASMNAME2, STRING): Define. > (a, c): Use ASMNAME. > > Index: gcc.dg/lto/20081222_1.c > =================================================================== > --- gcc.dg/lto/20081222_1.c (.../GNU/fsf-gcc/trunk/gcc/testsuite) > (revision 2013) > +++ gcc.dg/lto/20081222_1.c > (.../Customer-Projects/X/branches/Y-20110628/toolchain/gcc-4.7.0-20110701/gcc/testsuite) > (revision 2013) > @@ -1,8 +1,12 @@ > #include "20081222_0.h" > > +#define ASMNAME(cname) ASMNAME2 (__USER_LABEL_PREFIX__, cname) > +#define ASMNAME2(prefix, cname) STRING (prefix) cname > +#define STRING(x) #x > + > /* Actually, call "x" "INT_X", and make it hidden. */ > extern __typeof (x) x > - __asm__ ("INT_x") > + __asm__ (ASMNAME ("INT_x")) > __attribute__ ((__visibility__ ("hidden"))); > > int x () > @@ -12,5 +16,5 @@ int x () > > /* Make an externally-visible symbol "X" that's an alias for INT_x. */ > extern __typeof (x) EXT_x > - __asm__ ("x") > + __asm__ (ASMNAME ("x")) > __attribute__ ((__alias__ ("INT_x"))); > Index: gcc.dg/torture/pr48044.c > =================================================================== > --- gcc.dg/torture/pr48044.c (.../GNU/fsf-gcc/trunk/gcc/testsuite) > (revision 2013) > +++ gcc.dg/torture/pr48044.c > (.../Customer-Projects/X/branches/Y-20110628/toolchain/gcc-4.7.0-20110701/gcc/testsuite) > (revision 2013) > @@ -2,6 +2,10 @@ > /* { dg-do compile } */ > /* { dg-require-alias "" } */ > > -int a __asm__ ("b") = 0; > -extern int c __asm__ ("a") __attribute__ ((alias ("b"))); > +#define ASMNAME(cname) ASMNAME2 (__USER_LABEL_PREFIX__, cname) > +#define ASMNAME2(prefix, cname) STRING (prefix) cname > +#define STRING(x) #x > + > +int a __asm__ (ASMNAME ("b")) = 0; > +extern int c __asm__ (ASMNAME ("a")) __attribute__ ((alias ("b"))); > extern int d __attribute__ ((weak, alias ("a"))); > Index: gcc.dg/pr47276.c > =================================================================== > --- gcc.dg/pr47276.c (.../GNU/fsf-gcc/trunk/gcc/testsuite) (revision > 2013) > +++ gcc.dg/pr47276.c > (.../Customer-Projects/X/branches/Y-20110628/toolchain/gcc-4.7.0-20110701/gcc/testsuite) > (revision 2013) > @@ -1,6 +1,11 @@ > /* { dg-do compile } */ > /* { dg-require-alias "" } */ > /* { dg-require-visibility "" } */ > + > +#define ASMNAME(cname) ASMNAME2 (__USER_LABEL_PREFIX__, cname) > +#define ASMNAME2(prefix, cname) STRING (prefix) cname > +#define STRING(x) #x > + > extern void syslog (int __pri, __const char *__fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); > extern void vsyslog (int __pri, __const char *__fmt, int __ap) > @@ -17,15 +22,15 @@ __syslog_chk(int pri, int flag, const ch > __vsyslog_chk(int pri, int flag, const char *fmt, int ap) > { > } > -extern __typeof (__vsyslog_chk) __EI___vsyslog_chk __asm__("" > "__vsyslog_chk"); extern __typeof (__vsyslog_chk) __EI___vsyslog_chk > __attribute__((alias ("" "__GI___vsyslog_chk"))); > +extern __typeof (__vsyslog_chk) __EI___vsyslog_chk __asm__("" ASMNAME > ("__vsyslog_chk")); extern __typeof (__vsyslog_chk) __EI___vsyslog_chk > __attribute__((alias ("" "__GI___vsyslog_chk"))); > void > __syslog(int pri, const char *fmt, ...) > { > } > extern __typeof (__syslog) syslog __attribute__ ((alias ("__syslog"))); > -extern __typeof (syslog) __EI_syslog __asm__("" "syslog"); extern __typeof > (syslog) __EI_syslog __attribute__((alias ("" "__GI_syslog"))); > +extern __typeof (syslog) __EI_syslog __asm__("" ASMNAME ("syslog")); extern > __typeof (syslog) __EI_syslog __attribute__((alias ("" "__GI_syslog"))); > extern __typeof (__vsyslog) vsyslog __attribute__ ((alias ("__vsyslog"))); > -extern __typeof (vsyslog) __EI_vsyslog __asm__("" "vsyslog"); extern > __typeof (vsyslog) __EI_vsyslog __attribute__((alias ("" "__GI_vsyslog"))); > -extern __typeof (syslog) syslog __asm__ ("" "__GI_syslog") __attribute__ > ((visibility ("hidden"))); > -extern __typeof (vsyslog) vsyslog __asm__ ("" "__GI_vsyslog") __attribute__ > ((visibility ("hidden"))); > -extern __typeof (__vsyslog_chk) __vsyslog_chk __asm__ ("" > "__GI___vsyslog_chk") __attribute__ ((visibility ("hidden"))); > +extern __typeof (vsyslog) __EI_vsyslog __asm__("" ASMNAME ("vsyslog")); > extern __typeof (vsyslog) __EI_vsyslog __attribute__((alias ("" > "__GI_vsyslog"))); > +extern __typeof (syslog) syslog __asm__ ("" ASMNAME ("__GI_syslog")) > __attribute__ ((visibility ("hidden"))); > +extern __typeof (vsyslog) vsyslog __asm__ ("" ASMNAME ("__GI_vsyslog")) > __attribute__ ((visibility ("hidden"))); > +extern __typeof (__vsyslog_chk) __vsyslog_chk __asm__ ("" ASMNAME > ("__GI___vsyslog_chk")) __attribute__ ((visibility ("hidden"))); > >