aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-03-31 03:50:43 -0800
committerRichard Henderson <rth@gcc.gnu.org>2002-03-31 03:50:43 -0800
commit41ba8a20bd2bdfa0180420cce0182d0753e85de9 (patch)
treece09c76db1f36957c598aac2bd4e81c863f38597 /gcc
parenta7648399b2519aa5ee3a0887a274b43b61242008 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/config/alpha/elf.h31
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/special/alias-2.c18
-rw-r--r--gcc/testsuite/gcc.dg/special/ecos.exp12
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
###########