-
- Downloads
re PR c++/26905 (default-visibility class symbol improperly resolved as hidden-visibility)
PR c++/26905 PR c++/26612 PR c++/27000 PR c++/26984 PR c++/19134 * tree.c (build_decl_stat): Don't hande #pragma visibility here. * c-common.c (c_determine_visibility): Handle it here. * c-decl.c (finish_decl): Call c_determine_visibility for functions, too. * flags.h (enum symbol_visibility): Sort from most to least visibility. * tree.h: Likewise. * varasm.c (default_assemble_visibility): Likewise. * c-common.c (handle_visibility_attribute): Complain about trying to give visibility to an already defined class, or trying to change declared visibility. Always attach the attribute. * cp/decl2.c (determine_visibility): Overhaul. (determine_visibility_from_class): Likewise. (min_vis_r, type_visibility, constrain_visibility): New fns. (constrain_visibility_for_template): Likewise. (constrain_class_visibility): Likewise. * cp/decl.c (cp_finish_decl): Call determine_visibility for function decls, too. * cp/name-lookup.c (pushtag): Call determine_visibility. * cp/decl.c (duplicate_decls): Don't copy visibility from template to specialization. * cp/pt.c (check_explicit_specialization): Likewise. (lookup_template_class, tsubst_decl): Call determine_visibility. * cp/class.c (finish_struct_1): Call constrain_class_visibility. PR c++/26905 PR c++/21675 PR c++/17470 * cp/parser.c (cp_parser_explicit_instantiation): Pass the attributes to grokdeclarator. (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'. (cp_parser_enum_specifier): Likewise. (cp_parser_elaborated_type_specifier): Apply attributes if this declares only the class. (cp_parser_class_specifier): Apply leading attributes immediately. * cp/semantics.c (begin_class_definition): Add attributes parameter, apply them to the type. * attribs.c (decl_attributes): Ignore type-in-place attributes once the type has been defined. PR c++/21581 PR c++/25915 * cp/tree.c (decl_anon_ns_mem_p): New function. * cp/cp-tree.h: Declare it. * cp/decl2.c (determine_visibility): Make anonymous namespace members static. (min_vis_r, constrain_visibility): Likewise. * cp/rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on pseudo-types. * cp/decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on global_namespace. * cp/name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC on anonymous namespaces. From-SVN: r115086
Showing
- gcc/ChangeLog 24 additions, 0 deletionsgcc/ChangeLog
- gcc/attribs.c 8 additions, 0 deletionsgcc/attribs.c
- gcc/c-common.c 44 additions, 20 deletionsgcc/c-common.c
- gcc/c-decl.c 4 additions, 6 deletionsgcc/c-decl.c
- gcc/cp/ChangeLog 48 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/class.c 3 additions, 0 deletionsgcc/cp/class.c
- gcc/cp/cp-tree.h 4 additions, 1 deletiongcc/cp/cp-tree.h
- gcc/cp/decl.c 9 additions, 4 deletionsgcc/cp/decl.c
- gcc/cp/decl2.c 257 additions, 63 deletionsgcc/cp/decl2.c
- gcc/cp/name-lookup.c 10 additions, 10 deletionsgcc/cp/name-lookup.c
- gcc/cp/parser.c 47 additions, 29 deletionsgcc/cp/parser.c
- gcc/cp/pt.c 20 additions, 10 deletionsgcc/cp/pt.c
- gcc/cp/rtti.c 4 additions, 0 deletionsgcc/cp/rtti.c
- gcc/cp/semantics.c 4 additions, 1 deletiongcc/cp/semantics.c
- gcc/cp/tree.c 26 additions, 1 deletiongcc/cp/tree.c
- gcc/doc/extend.texi 58 additions, 22 deletionsgcc/doc/extend.texi
- gcc/doc/invoke.texi 16 additions, 8 deletionsgcc/doc/invoke.texi
- gcc/flags.h 4 additions, 3 deletionsgcc/flags.h
- gcc/testsuite/g++.dg/ext/attrib14.C 2 additions, 2 deletionsgcc/testsuite/g++.dg/ext/attrib14.C
- gcc/testsuite/g++.dg/ext/attrib9.C 9 additions, 4 deletionsgcc/testsuite/g++.dg/ext/attrib9.C
Loading
Please register or sign in to comment