diff options
author | Richard Henderson <rth@redhat.com> | 2002-03-31 03:50:43 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-03-31 03:50:43 -0800 |
commit | 41ba8a20bd2bdfa0180420cce0182d0753e85de9 (patch) | |
tree | ce09c76db1f36957c598aac2bd4e81c863f38597 /gcc | |
parent | a7648399b2519aa5ee3a0887a274b43b61242008 (diff) | |
download | gcc-41ba8a20bd2bdfa0180420cce0182d0753e85de9.zip gcc-41ba8a20bd2bdfa0180420cce0182d0753e85de9.tar.gz gcc-41ba8a20bd2bdfa0180420cce0182d0753e85de9.tar.bz2 |
elf.h (ASM_OUTPUT_DEF): Tidy.
* config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
(ASM_OUTPUT_DEF_FROM_DECLS): New.
* gcc.dg/special/alias-2.c: New.
* gcc.dg/special/ecos.exp: Run it.
From-SVN: r51650
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/alpha/elf.h | 31 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/special/alias-2.c | 18 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/special/ecos.exp | 12 |
5 files changed, 67 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f49d14c..04e7f56 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2002-03-31 Richard Henderson <rth@redhat.com> + PR target/3997 + * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy. + (ASM_OUTPUT_DEF_FROM_DECLS): New. + +2002-03-31 Richard Henderson <rth@redhat.com> + * libgcc2.c (__bb_exit_func): Make static. * config/alpha/alpha.md (trap): New. diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h index 8878eda..05853c2 100644 --- a/gcc/config/alpha/elf.h +++ b/gcc/config/alpha/elf.h @@ -483,11 +483,32 @@ do { \ /* This is how we tell the assembler that two symbols have the same value. */ #undef ASM_OUTPUT_DEF -#define ASM_OUTPUT_DEF(FILE, NAME1, NAME2) \ - do { assemble_name(FILE, NAME1); \ - fputs(" = ", FILE); \ - assemble_name(FILE, NAME2); \ - fputc('\n', FILE); } while (0) +#define ASM_OUTPUT_DEF(FILE, ALIAS, NAME) \ + do { \ + assemble_name(FILE, ALIAS); \ + fputs(" = ", FILE); \ + assemble_name(FILE, NAME); \ + fputc('\n', FILE); \ + } while (0) + +#undef ASM_OUTPUT_DEF_FROM_DECLS +#define ASM_OUTPUT_DEF_FROM_DECLS(FILE, DECL, TARGET) \ + do { \ + const char *alias = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \ + const char *name = IDENTIFIER_POINTER (TARGET); \ + if (TREE_CODE (DECL) == FUNCTION_DECL) \ + { \ + fputc ('$', FILE); \ + assemble_name (FILE, alias); \ + fputs ("..ng = $", FILE); \ + assemble_name (FILE, name); \ + fputs ("..ng\n", FILE); \ + } \ + assemble_name(FILE, alias); \ + fputs(" = ", FILE); \ + assemble_name(FILE, name); \ + fputc('\n', FILE); \ + } while (0) /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index abf2c20..cec193e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2002-03-31 Richard Henderson <rth@redhat.com> + * gcc.dg/special/alias-2.c: New. + * gcc.dg/special/ecos.exp: Run it. + +2002-03-31 Richard Henderson <rth@redhat.com> + * gcc.dg/va-arg-1.c: Expect warnings, not errors. 2002-03-31 Kazu Hirata <kazu@hxi.com> diff --git a/gcc/testsuite/gcc.dg/special/alias-2.c b/gcc/testsuite/gcc.dg/special/alias-2.c new file mode 100644 index 0000000..5dd9f53 --- /dev/null +++ b/gcc/testsuite/gcc.dg/special/alias-2.c @@ -0,0 +1,18 @@ +/* PR 3997 */ +/* { dg-do run } */ + +extern void abort (void); +extern void exit (int); + +void foo(void) +{ + exit(0); +} + +static void bar(void) __attribute__((alias("foo"))); + +int main() +{ + bar(); + abort (); +} diff --git a/gcc/testsuite/gcc.dg/special/ecos.exp b/gcc/testsuite/gcc.dg/special/ecos.exp index 56995cd..b887502 100644 --- a/gcc/testsuite/gcc.dg/special/ecos.exp +++ b/gcc/testsuite/gcc.dg/special/ecos.exp @@ -94,6 +94,18 @@ switch [check_alias_available "$srcdir/$subdir/alias-1.c"] { dg-finish ########### +# alias-2.c +########### + +dg-init +switch [check_alias_available "$srcdir/$subdir/alias-2.c"] { + yes { dg-runtest "$srcdir/$subdir/alias-2.c" "" "" } + no { unsupported "alias-2.c" } + default { fail "alias-2.c" } +} +dg-finish + +########### # wkali-1.c ########### |