diff options
author | Richard Biener <rguenther@suse.de> | 2014-04-11 11:45:44 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-04-11 11:45:44 +0000 |
commit | 8330537b5b58bd0532a0a49f9cbd59bf526a7847 (patch) | |
tree | d6fb042706a18c8c8bb641467840de62f7501d69 /gcc | |
parent | 3c91f126f470758738a0cddbec8f978f42486754 (diff) | |
download | gcc-8330537b5b58bd0532a0a49f9cbd59bf526a7847.zip gcc-8330537b5b58bd0532a0a49f9cbd59bf526a7847.tar.gz gcc-8330537b5b58bd0532a0a49f9cbd59bf526a7847.tar.bz2 |
re PR middle-end/60797 (gcc hangs with error: only weak aliases are supported in this configuration)
2014-04-11 Richard Biener <rguenther@suse.de>
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr60797.c | 8 | ||||
-rw-r--r-- | gcc/varasm.c | 2 |
4 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b4173bc..3b2b76a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-04-11 Richard Biener <rguenther@suse.de> + + PR middle-end/60797 + * varasm.c (assemble_alias): Avoid endless error reporting + recursion by setting TREE_ASM_WRITTEN. + 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * config/s390/s390.md: Add a splitter for NOT rtx. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f880e75..ea81230 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-04-11 Richard Biener <rguenther@suse.de> + + PR middle-end/60797 + * gcc.dg/pr60797.c: New testcase. + 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * 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 0000000..45090ba --- /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 295c27d..8e8c5f6 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 |