aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.cc
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2022-06-15 19:44:36 +0200
committerIain Buclaw <ibuclaw@gdcproject.org>2022-06-15 20:11:04 +0200
commit636b01ab4910da0b96d844301fea1a2b56c5344d (patch)
tree480d97c9a670995fe519be3a7f8b86c5e97e50cb /gcc/builtins.cc
parent49d14a841fd9a798fe6d68ae49c6fbb753d21032 (diff)
downloadgcc-636b01ab4910da0b96d844301fea1a2b56c5344d.zip
gcc-636b01ab4910da0b96d844301fea1a2b56c5344d.tar.gz
gcc-636b01ab4910da0b96d844301fea1a2b56c5344d.tar.bz2
d: Add `@visibility' and `@hidden' attributes.
The `@visibility' attribute is functionality the same as `__attribute__((visibility))', and `@hidden' is a convenience alias to `@visibility("hidden")' defined in the `gcc.attributes' module. As the visibility of a symbol is also indirectly controlled by the `export' keyword, the handling of this in the code generation pass has been improved so that conflicts will be appropriately diagnosed. gcc/d/ChangeLog: * d-attribs.cc (d_langhook_attribute_table): Add visibility. (insert_type_attribute): Use decl_attributes instead of merge_attributes. (insert_decl_attribute): Likewise. (apply_user_attributes): Do nothing when no UDAs applied. (d_handle_visibility_attribute): New function. * d-gimplify.cc (d_gimplify_binary_expr): Adjust. * d-tree.h (set_visibility_for_decl): Declare. * decl.cc (get_symbol_decl): Move setting of visibility flags to... (set_visibility_for_decl): ... here. New function. * types.cc (TypeVisitor::visit (TypeStruct *)): Call set_visibility_for_decl(). (TypeVisitor::visit (TypeClass *)): Likewise. gcc/testsuite/ChangeLog: * gdc.dg/attr_visibility1.d: New test. * gdc.dg/attr_visibility2.d: New test. * gdc.dg/attr_visibility3.d: New test. libphobos/ChangeLog: * libdruntime/gcc/attributes.d (visibility): Define. (hidden): Define.
Diffstat (limited to 'gcc/builtins.cc')
0 files changed, 0 insertions, 0 deletions