Commit be46831f by Jan Hubicka Committed by Jan Hubicka

re PR tree-optimization/47276 (ICE in function_and_variable_visibility, at…

re PR tree-optimization/47276 (ICE in function_and_variable_visibility, at ipa.c:857 during compiling glibc.)

	PR tree-optimization/47276 
	* ipa.c (function_and_variable_visibility): Do not try to mark alias
	declarations as needed.
	* gcc.dg/pr47276.c: New testcase.

From-SVN: r168844
parent 620437f2
2011-01-13 Jan Hubicka <jh@suse.cz>
PR tree-optimization/47276
* ipa.c (function_and_variable_visibility): Do not try to mark alias
declarations as needed.
2011-01-15 Martin Jambor <mjambor@suse.cz>
* common.opt (fdevirtualize): New flag.
......
......@@ -847,6 +847,8 @@ function_and_variable_visibility (bool whole_program)
if ((node = cgraph_node_for_asm (p->target)) != NULL
&& !DECL_EXTERNAL (node->decl))
{
if (!node->analyzed)
continue;
/* Weakrefs alias symbols from other compilation unit. In the case
the destination of weakref became available because of LTO, we must
mark it as needed. */
......
2011-01-13 Jan Hubicka <jh@suse.cz>
PR tree-optimization/47276
* gcc.dg/pr47276.c: New testcase.
2011-01-15 Giovanni Funchal <gafunchal@gmail.com>
Jonathan Wakely <jwakely.gcc@gmail.com>
......
/* { dg-do compile } */
/* { dg-require-alias "" } */
extern void syslog (int __pri, __const char *__fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
extern void vsyslog (int __pri, __const char *__fmt, int __ap)
__attribute__ ((__format__ (__printf__, 2, 0)));
void
__vsyslog(int pri, const char *fmt, int ap)
{
}
void
__syslog_chk(int pri, int flag, const char *fmt, ...)
{
}
void
__vsyslog_chk(int pri, int flag, const char *fmt, int ap)
{
}
extern __typeof (__vsyslog_chk) __EI___vsyslog_chk __asm__("" "__vsyslog_chk"); extern __typeof (__vsyslog_chk) __EI___vsyslog_chk __attribute__((alias ("" "__GI___vsyslog_chk")));
void
__syslog(int pri, const char *fmt, ...)
{
}
extern __typeof (__syslog) syslog __attribute__ ((alias ("__syslog")));
extern __typeof (syslog) __EI_syslog __asm__("" "syslog"); extern __typeof (syslog) __EI_syslog __attribute__((alias ("" "__GI_syslog")));
extern __typeof (__vsyslog) vsyslog __attribute__ ((alias ("__vsyslog")));
extern __typeof (vsyslog) __EI_vsyslog __asm__("" "vsyslog"); extern __typeof (vsyslog) __EI_vsyslog __attribute__((alias ("" "__GI_vsyslog")));
extern __typeof (syslog) syslog __asm__ ("" "__GI_syslog") __attribute__ ((visibility ("hidden")));
extern __typeof (vsyslog) vsyslog __asm__ ("" "__GI_vsyslog") __attribute__ ((visibility ("hidden")));
extern __typeof (__vsyslog_chk) __vsyslog_chk __asm__ ("" "__GI___vsyslog_chk") __attribute__ ((visibility ("hidden")));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment