[Bug c++/65046] [5 regression] -Wabi-tag doesn't warn about variables or function return types
jason at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Mar 19 20:01:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65046
--- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Thu Mar 19 19:31:48 2015
New Revision: 221521
URL: https://gcc.gnu.org/viewcvs?rev=221521&root=gcc&view=rev
Log:
PR c++/65046
Automatically propagate ABI tags to variables and functions
from their (return) type.
* class.c (check_tag): Handle variables and functions.
(mark_or_check_attr_tags): Split out from find_abi_tags_r.
(mark_or_check_tags): Likewise.
(mark_abi_tags): Use it. Rename from mark_type_abi_tags.
(check_abi_tags): Add single argument overload for decls.
Handle inheriting tags for decls.
* mangle.c (write_mangled_name): Call it.
(mangle_return_type_p): Split out from write_encoding.
(unmangled_name_p): Split out from write_mangled_name.
(write_mangled_name): Ignore abi_tag on namespace.
* cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
* parser.c (cp_parser_namespace_definition): Set it.
* name-lookup.c (handle_namespace_attrs): Use arguments. Warn
about abi_tag attribute on non-inline namespace.
* tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
(handle_abi_tag_attribute): Allow tags on variables.
Added:
trunk/gcc/testsuite/g++.dg/abi/abi-tag14.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/mangle.c
trunk/gcc/cp/name-lookup.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/tree.c
trunk/gcc/doc/extend.texi
trunk/gcc/doc/invoke.texi
trunk/gcc/testsuite/g++.dg/abi/abi-tag1.C
trunk/gcc/testsuite/g++.dg/abi/abi-tag4.C
trunk/gcc/testsuite/g++.dg/abi/abi-tag8.C
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/config/locale/gnu/messages_members.cc
trunk/libstdc++-v3/include/bits/c++config
trunk/libstdc++-v3/src/c++11/cxx11-shim_facets.cc
More information about the Gcc-bugs
mailing list