From 9c467f1355d2f806a7ac06c22a18fd1d2e7e748f Mon Sep 17 00:00:00 2001 From: jsm28 Date: Thu, 28 Feb 2008 12:34:51 +0000 Subject: [PATCH] PR target/33963 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types other than structures and unions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132744 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/tree.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4d168e3..a0663ff 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-02-28 Joseph Myers + + PR target/33963 + * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types + other than structures and unions. + 2008-02-28 Richard Guenther Revert: diff --git a/gcc/tree.c b/gcc/tree.c index 85b0b1c..c39bccd 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -3971,6 +3971,16 @@ handle_dll_attribute (tree * pnode, tree name, tree args, int flags, return NULL_TREE; } + if (TREE_CODE (node) == TYPE_DECL + && TREE_CODE (TREE_TYPE (node)) != RECORD_TYPE + && TREE_CODE (TREE_TYPE (node)) != UNION_TYPE) + { + *no_add_attrs = true; + warning (OPT_Wattributes, "%qs attribute ignored", + IDENTIFIER_POINTER (name)); + return NULL_TREE; + } + /* Report error on dllimport ambiguities seen now before they cause any damage. */ else if (is_attribute_p ("dllimport", name)) -- 2.7.4