re PR c/37645 (ICE with weakref attribute)
PR c/37645 * c-common.c (handle_weakref_attribute): Ignore the attribute unless the decl is a VAR_DECL or FUNCTION_DECL. * gcc.dg/pr37645.c: New test. From-SVN: r140680
This commit is contained in:
parent
83d48fad1f
commit
e7b012c044
|
@ -1,7 +1,12 @@
|
|||
2008-09-25 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/37645
|
||||
* c-common.c (handle_weakref_attribute): Ignore the attribute unless
|
||||
the decl is a VAR_DECL or FUNCTION_DECL.
|
||||
|
||||
2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR middle-end/37535
|
||||
|
||||
* ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
|
||||
(mark_ref_live, mark_ref_dead): Use them.
|
||||
(def_conflicts_with_inputs_p): Remove.
|
||||
|
@ -14,7 +19,6 @@
|
|||
2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR middle-end/37448
|
||||
|
||||
* ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
|
||||
(ira_compress_allocno_live_ranges): New prototype.
|
||||
|
||||
|
|
|
@ -6131,7 +6131,9 @@ handle_weakref_attribute (tree *node, tree ARG_UNUSED (name), tree args,
|
|||
/* We must ignore the attribute when it is associated with
|
||||
local-scoped decls, since attribute alias is ignored and many
|
||||
such symbols do not even have a DECL_WEAK field. */
|
||||
if (decl_function_context (*node) || current_function_decl)
|
||||
if (decl_function_context (*node)
|
||||
|| current_function_decl
|
||||
|| (TREE_CODE (*node) != VAR_DECL && TREE_CODE (*node) != FUNCTION_DECL))
|
||||
{
|
||||
warning (OPT_Wattributes, "%qE attribute ignored", name);
|
||||
*no_add_attrs = true;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2008-09-25 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/37645
|
||||
* gcc.dg/pr37645.c: New test.
|
||||
|
||||
2008-09-25 Steve Ellcey <sje@cup.hp.com>
|
||||
|
||||
* gcc.dg/vect/slp-7.c: Add alignment attribute, change target tests.
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
/* PR c/37645 */
|
||||
/* { dg-do compile } */
|
||||
|
||||
typedef int T __attribute__((__weakref__ ("U"))); /* { dg-warning "attribute ignored" } */
|
||||
void foo (int i __attribute__((__weakref__ ("j")))); /* { dg-warning "attribute ignored" } */
|
Loading…
Reference in New Issue