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

Reply via email to