]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
elf.h (ASM_OUTPUT_DEF): Tidy.
authorRichard Henderson <rth@redhat.com>
Sun, 31 Mar 2002 11:50:43 +0000 (03:50 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 31 Mar 2002 11:50:43 +0000 (03:50 -0800)
        * 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

gcc/ChangeLog
gcc/config/alpha/elf.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/special/alias-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/special/ecos.exp

index f49d14c3d54f37921e361495b130119820093543..04e7f56e6018a83fa0896ef728f672fb210a5449 100644 (file)
@@ -1,3 +1,9 @@
+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.
index 8878eda29987215e2387f7a6629ebfd39c2948c4..05853c2e1088a6921027310544c6df2b89876ebd 100644 (file)
@@ -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
index abf2c2072d08dca6300f740523f33bfc4b0f1e8e..cec193ebe19ae203ed46df7f60bbc86f25a628f8 100644 (file)
@@ -1,3 +1,8 @@
+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.
diff --git a/gcc/testsuite/gcc.dg/special/alias-2.c b/gcc/testsuite/gcc.dg/special/alias-2.c
new file mode 100644 (file)
index 0000000..5dd9f53
--- /dev/null
@@ -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 ();
+}
index 56995cd2a13bad6e699e709e9360ca2fbb359304..b8875023ae1f5ef293fca9b51021f560ea0798ee 100644 (file)
@@ -93,6 +93,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
 ###########