re PR target/52999 (ICE, segmentation fault in c_tree_printer)
PR middle-end/52999 * varasm.c (get_section): Don't ICE for section conflicts with built-in section kinds. From-SVN: r186743
This commit is contained in:
parent
74da3af93b
commit
2c2c513a9a
|
@ -1,3 +1,9 @@
|
|||
2012-04-24 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/52999
|
||||
* varasm.c (get_section): Don't ICE for section conflicts with
|
||||
built-in section kinds.
|
||||
|
||||
2012-04-23 David Edelsohn <dje.gcc@gmail.com>
|
||||
|
||||
* config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
|
||||
|
|
17
gcc/varasm.c
17
gcc/varasm.c
|
@ -1,7 +1,7 @@
|
|||
/* Output variables, constants and external declarations, for GNU compiler.
|
||||
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
||||
2010, 2011 Free Software Foundation, Inc.
|
||||
2010, 2011, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
|
@ -315,11 +315,16 @@ get_section (const char *name, unsigned int flags, tree decl)
|
|||
if (decl == 0)
|
||||
decl = sect->named.decl;
|
||||
gcc_assert (decl);
|
||||
error ("%+D causes a section type conflict with %D",
|
||||
decl, sect->named.decl);
|
||||
if (decl != sect->named.decl)
|
||||
inform (DECL_SOURCE_LOCATION (sect->named.decl),
|
||||
"%qD was declared here", sect->named.decl);
|
||||
if (sect->named.decl == NULL)
|
||||
error ("%+D causes a section type conflict", decl);
|
||||
else
|
||||
{
|
||||
error ("%+D causes a section type conflict with %D",
|
||||
decl, sect->named.decl);
|
||||
if (decl != sect->named.decl)
|
||||
inform (DECL_SOURCE_LOCATION (sect->named.decl),
|
||||
"%qD was declared here", sect->named.decl);
|
||||
}
|
||||
/* Make sure we don't error about one section multiple times. */
|
||||
sect->common.flags |= SECTION_OVERRIDE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue