]> git.ipfire.org Git - thirdparty/gcc.git/commit - libiberty/cp-demangle.c
Add C++ attribute abi_tag and -Wabi-tag option.
authorJason Merrill <jason@redhat.com>
Fri, 9 Nov 2012 16:14:37 +0000 (11:14 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 9 Nov 2012 16:14:37 +0000 (11:14 -0500)
commit7dbb85a7932149aa5bac38fd77424b15c0248990
treeaf7983d092e390f212209b62a57e8d2eac7d8be6
parent52dccf7ac9926edabb9574d6440314938a33c143
Add C++ attribute abi_tag and -Wabi-tag option.

gcc/
* attribs.c (lookup_attribute_spec): Handle getting a TREE_LIST.
gcc/c-family/
* c.opt (Wabi-tag): New.
gcc/cp/
* tree.c (cxx_attribute_table): Add abi_tag attribute.
(check_abi_tag_redeclaration, handle_abi_tag_attribute): New.
* class.c (find_abi_tags_r, check_abi_tags): New.
(check_bases, check_field_decl): Call check_abi_tags.
* decl.c (redeclaration_error_message): Call
check_abi_tag_redeclaration.
* mangle.c (tree_string_cmp, write_abi_tags): New.
(write_unqualified_name): Call write_abi_tags.
include/
* demangle.h (enum demangle_component_type): Add
DEMANGLE_COMPONENT_TAGGED_NAME.
libiberty/
* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_TAGGED_NAME.
(d_make_comp, d_find_pack, d_print_comp): Likewise.
(d_abi_tags): New.
(d_name): Call it.

From-SVN: r193367
18 files changed:
gcc/ChangeLog
gcc/attribs.c
gcc/c-family/ChangeLog
gcc/c-family/c.opt
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/mangle.c
gcc/cp/tree.c
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/abi-tag1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/abi/abi-tag2.C [new file with mode: 0644]
include/ChangeLog
include/demangle.h
libiberty/ChangeLog
libiberty/cp-demangle.c