From 8330537b5b58bd0532a0a49f9cbd59bf526a7847 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 11 Apr 2014 11:45:44 +0000 Subject: [PATCH] re PR middle-end/60797 (gcc hangs with error: only weak aliases are supported in this configuration) 2014-04-11 Richard Biener PR middle-end/60797 * varasm.c (assemble_alias): Avoid endless error reporting recursion by setting TREE_ASM_WRITTEN. * gcc.dg/pr60797.c: New testcase. From-SVN: r209299 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr60797.c | 8 ++++++++ gcc/varasm.c | 2 ++ 4 files changed, 21 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/pr60797.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b4173bcbe12..3b2b76adca6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-04-11 Richard Biener + + PR middle-end/60797 + * varasm.c (assemble_alias): Avoid endless error reporting + recursion by setting TREE_ASM_WRITTEN. + 2014-04-11 Andreas Krebbel * config/s390/s390.md: Add a splitter for NOT rtx. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f880e75a43e..ea812303c35 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-04-11 Richard Biener + + PR middle-end/60797 + * gcc.dg/pr60797.c: New testcase. + 2014-04-11 Andreas Krebbel * gcc.target/s390/htm-nofloat-1.c: Rename to ... diff --git a/gcc/testsuite/gcc.dg/pr60797.c b/gcc/testsuite/gcc.dg/pr60797.c new file mode 100644 index 00000000000..45090bae502 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr60797.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-skip-if "" { alias } } */ + +extern int foo __attribute__((alias("bar"))); /* { dg-error "supported" } */ +int main() +{ + return 0; +} diff --git a/gcc/varasm.c b/gcc/varasm.c index 295c27d9d8d..8e8c5f6634e 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -5665,6 +5665,7 @@ assemble_alias (tree decl, tree target) # if !defined(ASM_OUTPUT_WEAK_ALIAS) && !defined (ASM_WEAKEN_DECL) error_at (DECL_SOURCE_LOCATION (decl), "alias definitions not supported in this configuration"); + TREE_ASM_WRITTEN (decl) = 1; return; # else if (!DECL_WEAK (decl)) @@ -5675,6 +5676,7 @@ assemble_alias (tree decl, tree target) else error_at (DECL_SOURCE_LOCATION (decl), "only weak aliases are supported in this configuration"); + TREE_ASM_WRITTEN (decl) = 1; return; } # endif -- 2.30.2