]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/60797 (gcc hangs with error: only weak aliases are supported in...
authorRichard Biener <rguenther@suse.de>
Fri, 11 Apr 2014 11:45:44 +0000 (11:45 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 11 Apr 2014 11:45:44 +0000 (11:45 +0000)
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

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr60797.c [new file with mode: 0644]
gcc/varasm.c

index b4173bcbe129b22951f3f683fd7333f24bee051c..3b2b76adca6d7f43665522d90332911ebc6ea20f 100644 (file)
@@ -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.
index f880e75a43e60545e4834a09f412646481b9ca8e..ea812303c35d163ec7efe7d0ba411d7f41c6f7d4 100644 (file)
@@ -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 (file)
index 0000000..45090ba
--- /dev/null
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-skip-if "" { alias } } */
+
+extern int foo __attribute__((alias("bar"))); /* { dg-error "supported" } */
+int main()
+{
+  return 0;
+}
index 295c27d9d8dc59d940125b63ac9edcf0f21ca65f..8e8c5f6634e325ffc1dcbc319841941b46dbf863 100644 (file)
@@ -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