diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-30 18:04:34 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-30 18:04:34 +0000 |
commit | ae0c39844cc04a622730c9c5c513193d9d668439 (patch) | |
tree | dff73a706673434faab62ca52bcda06d693674b2 /gcc/c-family/c-common.c | |
parent | 852761150d1125af488a9d1f33cb9752309b8981 (diff) | |
download | gcc-ae0c39844cc04a622730c9c5c513193d9d668439.tar.gz |
PR c++/55742
* config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
invalid args instead of ICEing on it.
(ix86_valid_target_attribute_tree): Return error_mark_node if
ix86_valid_target_attribute_inner_p failed.
(ix86_valid_target_attribute_p): Return false only if
ix86_valid_target_attribute_tree returned error_mark_node. Allow
target("default") attribute.
(sorted_attr_string): Change argument from const char * to tree,
merge in all target attribute arguments rather than just one.
Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
instead of free. Avoid using strcat.
(ix86_mangle_function_version_assembler_name): Mangle
target("default") as if no target attribute is present. Adjust
sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
instead of xmalloc and XDELETEVEC instead of free.
(ix86_function_versions): Don't return true if one of the decls
doesn't have target attribute. If they don't and one of the decls
is DECL_FUNCTION_VERSIONED, report an error. Adjust
sorted_attr_string caller. Use XDELETEVEC instead of free.
(ix86_supports_function_versions): Remove.
(make_name): Fix up formatting.
(make_dispatcher_decl): Remove resolver_name and its initialization.
Avoid leaking memory.
(is_function_default_version): Return true if there is
target("default") attribute rather than no target attribute at all.
(make_resolver_func): Avoid leaking memory.
(ix86_generate_version_dispatcher_body): Likewise.
(TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
* target.def (supports_function_versions): Remove.
* doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
* doc/tm.texi: Regenerated.
* c-common.c (handle_target_attribute): Revert 2012-12-26 change.
* g++.dg/mv1.C: Moved to...
* g++.dg/ext/mv1.C: ... here. Adjust test.
* g++.dg/mv2.C: Moved to...
* g++.dg/ext/mv2.C: ... here. Adjust test.
* g++.dg/mv3.C: Moved to...
* g++.dg/ext/mv3.C: ... here.
* g++.dg/mv4.C: Moved to...
* g++.dg/ext/mv4.C: ... here.
* g++.dg/mv5.C: Moved to...
* g++.dg/ext/mv5.C: ... here. Adjust test.
* g++.dg/mv6.C: Moved to...
* g++.dg/ext/mv6.C: ... here. Adjust test.
* g++.dg/ext/mv7.C: New test.
* g++.dg/ext/mv8.C: New test.
* g++.dg/ext/mv9.C: New test.
* g++.dg/ext/mv10.C: New test.
* g++.dg/ext/mv11.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195584 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-family/c-common.c')
-rw-r--r-- | gcc/c-family/c-common.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index a50aae1e57a..b3699dc086b 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -8759,12 +8759,8 @@ handle_target_attribute (tree *node, tree name, tree args, int flags, warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } - /* Do not strip invalid target attributes for targets which support function - multiversioning as the target string is used to determine versioned - functions. */ else if (! targetm.target_option.valid_attribute_p (*node, name, args, - flags) - && ! targetm.target_option.supports_function_versions ()) + flags)) *no_add_attrs = true; return NULL_TREE; |