This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix PR60797
- From: Richard Biener <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Jakub Jelinek <jakub at redhat dot com>
- Date: Fri, 11 Apr 2014 12:37:42 +0200 (CEST)
- Subject: [PATCH] Fix PR60797
- Authentication-results: sourceware.org; auth=none
This fixes the endless error reporting for unhandled aliases
by setting TREE_ASM_WRITTEN on the decls we complained about.
Bootstrapped on x86_64-unknown-linux-gnu, testing in progress
(sort-of pointless on that target of course).
Richard.
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.
Index: gcc/varasm.c
===================================================================
*** gcc/varasm.c (revision 209292)
--- gcc/varasm.c (working copy)
*************** assemble_alias (tree decl, tree target)
*** 5665,5670 ****
--- 5665,5671 ----
# 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))
*************** assemble_alias (tree decl, tree target)
*** 5675,5680 ****
--- 5676,5682 ----
else
error_at (DECL_SOURCE_LOCATION (decl),
"only weak aliases are supported in this configuration");
+ TREE_ASM_WRITTEN (decl) = 1;
return;
}
# endif
Index: gcc/testsuite/gcc.dg/pr60797.c
===================================================================
*** gcc/testsuite/gcc.dg/pr60797.c (revision 0)
--- gcc/testsuite/gcc.dg/pr60797.c (working copy)
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ /* { dg-skip-if "" { alias } } */
+
+ extern int foo __attribute__((alias("bar"))); /* { dg-error "supported" } */
+ int main()
+ {
+ return 0;
+ }