[Bug c++/22592] -fvisibility-inlines-hidden broken differently
--- Comment #8 from jason at gcc dot gnu dot org 2006-06-13 23:28 --- Either 20218 is a bug or this is. It seems to me that 20218 is the bug. If you declare a function to be hidden, you are asserting that it will be defined in the current DSO. From the GCC documentation: "Two declarations of an object with hidden linkage refer to the same object if they are in the same shared object." Calling this function directly is a correct optimization, the bug is that you fail to define it (by defining the key method) in the same DSO. If this class is imported from a library, it shouldn't have hidden linkage; the library's namespace should have explicit default linkage. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22592
[Bug libstdc++/21405] Can't give symbol versions to templates
--- Comment #19 from jason at gcc dot gnu dot org 2006-06-20 18:12 --- Changed the summary to clarify, and remove "visibility" -- jason at gcc dot gnu dot org changed: What|Removed |Added Summary|Template inlines have global|Can't give symbol versions |visibility |to templates http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21405
[Bug middle-end/23058] visibility attribute does not work for aliased symbols
--- Comment #1 from jason at gcc dot gnu dot org 2006-06-20 18:20 --- You're telling the compiler that "exported_var" has default visibility, then defining a variable called "my_exported_var" which happens to have the same symbol. The compiler doesn't unify multiple declarations with the same assembler name, and I don't think it should. You should define the same declaration that you used to declare the visibility. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23058
[Bug c++/22592] -fvisibility-inlines-hidden broken differently
--- Comment #9 from jason at gcc dot gnu dot org 2006-06-20 18:21 --- Not a bug; see my earlier comment. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22592
[Bug c++/19134] Class visibility of templated classes can't be overridden for function specializations
--- Comment #2 from jason at gcc dot gnu dot org 2006-06-20 18:27 --- This is clearly a bug, since the specialization is not inline and so should not be affected by -fvisibility-inlines-hidden. The broader issue here is the question of when #pragma visibility should override other specified visibilities; suppose the user gave A::foo an explicit visibility. Should that or the #pragma take precedence? After some thought I've concluded that the #pragma should win, that the template's visibility should only be used for implicit instantiations, or if the specialization/explicit instantiation has no explicit visibility. -- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2005-07-02 01:51:33 |2006-06-20 18:27:58 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19134
[Bug c++/27000] visibility push/pop and templates go crazy
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2006-04-03 16:16:02 |2006-06-22 21:16:22 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27000
[Bug middle-end/20297] #pragma GCC visibility isn't properly handled for builtin functions
--- Comment #19 from jason at gcc dot gnu dot org 2006-06-23 01:05 --- fixed a while back -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20297
[Bug c++/17470] Visibility attribute ignored for explicit template instantiation
--- Comment #8 from jason at gcc dot gnu dot org 2006-06-23 01:11 --- *** Bug 21243 has been marked as a duplicate of this bug. *** -- jason at gcc dot gnu dot org changed: What|Removed |Added CC||christoph dot pesch at ||siemens dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17470
[Bug c++/21243] typeinfo visibility of template class instantiation can not be changed with attribute
--- Comment #4 from jason at gcc dot gnu dot org 2006-06-23 01:11 --- *** This bug has been marked as a duplicate of 17470 *** -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21243
[Bug c++/26905] default-visibility class symbol improperly resolved as hidden-visibility
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2006-03-30 22:00:53 |2006-06-23 03:49:58 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26905
[Bug c++/26989] C++ front-end (and others parts of GCC) use the wrong check to see if hidden visibility is there
--- Comment #3 from jason at gcc dot gnu dot org 2006-06-23 03:51 --- So what is the right check, then? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26989
[Bug c/27012] visibility attribute should not be permitted on local variables
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2006-04-04 15:37:18 |2006-06-23 03:59:51 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27012
[Bug c++/21675] -fvisibility : misleading documentation and low QoI
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-06-23 04:01:06 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21675
[Bug middle-end/20218] Can't use __attribute__ ((visibility ("hidden"))) to hide a symbol
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-06-23 04:02:03 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20218
[Bug middle-end/20274] -fvisibility=hidden has no effect on calling undefined function
--- Comment #4 from jason at gcc dot gnu dot org 2006-06-23 05:25 --- This is the intended behavior of -fvisibility; see the discussion of PR 15000 for the rationale. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20274
[Bug c++/27369] [4.1/4.2 Regression] tree check ICE when attribute externally_visible used
--- Comment #10 from jason at gcc dot gnu dot org 2006-06-26 21:50 --- The bug is that handle_externally_visible adds the second decl to cgraph_nodes and then duplicate_decls discards it without removing it from cgraph_nodes. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27369
[Bug c++/27424] [4.0/4.1/4.2 regression] Valid template-template-parameter rejected
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2006-05-05 15:30:07 |2006-06-26 22:16:49 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27424
[Bug c++/27578] [4.2 Regression] ICE with attribute on a pointer in a function prototype
--- Comment #9 from jason at gcc dot gnu dot org 2006-06-26 22:21 --- Is this still broken? I can't reproduce it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27578
[Bug c++/27768] [4.1/4.2 regression] wrong-code with vectors
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2006-05-30 16:06:59 |2006-06-26 22:24:39 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27768
[Bug c++/27768] [4.1/4.2 regression] wrong-code with vectors
--- Comment #11 from jason at gcc dot gnu dot org 2006-06-28 19:12 --- Turns out to be a bug in alias grouping. Patch in testing. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27768
[Bug c++/27768] [4.1/4.2 regression] wrong-code with vectors
--- Comment #12 from jason at gcc dot gnu dot org 2006-06-29 01:12 --- Subject: Bug 27768 Author: jason Date: Thu Jun 29 01:12:20 2006 New Revision: 115062 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115062 Log: PR c++/27768 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add may_aliases already in the tag's annotations to the bitmap. Added: trunk/gcc/testsuite/g++.dg/opt/alias4.C Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-alias.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27768
[Bug c++/27424] [4.0/4.1/4.2 regression] Valid template-template-parameter rejected
--- Comment #2 from jason at gcc dot gnu dot org 2006-06-29 01:27 --- Subject: Bug 27424 Author: jason Date: Thu Jun 29 01:27:17 2006 New Revision: 115063 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115063 Log: PR c++/27424 * pt.c (convert_template_argument): Pass all template arguments on to coerce_template_template_parms. Added: trunk/gcc/testsuite/g++.dg/template/ttp20.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27424
[Bug c++/18698] [4.0/4.1/4.2 regression] Error message using "using" for code not using "using" ;-)
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2006-02-12 17:53:52 |2006-06-29 01:28:53 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18698
[Bug c++/26612] visibility and ODR
--- Comment #3 from jason at gcc dot gnu dot org 2006-06-30 01:16 --- Subject: Bug 26612 Author: jason Date: Fri Jun 30 01:15:56 2006 New Revision: 115086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115086 Log: 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. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/anon2.C trunk/gcc/testsuite/g++.dg/ext/visibility/class1.C trunk/gcc/testsuite/g++.dg/ext/visibility/prop1.C trunk/gcc/testsuite/g++.dg/ext/visibility/redecl1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template2.C trunk/gcc/testsuite/g++.dg/ext/visibility/template3.C trunk/gcc/testsuite/g++.dg/ext/visibility/template4.C trunk/gcc/testsuite/g++.dg/ext/visibility/typeinfo1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn2.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn3.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn4.C Modified: trunk/gcc/ChangeLog trunk/gcc/attribs.c trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/flags.h trunk/gcc/testsuite/g++.dg/ext/attrib14.C trunk/gcc/testsuite/g++.dg/ext/attrib9.C trunk/gcc/testsuite/g++.dg/ext/visibility/anon1.C trunk/gcc/testsuite/g++.dg/ext/visibility/assign1.C trunk/gcc/testsuite/g++.dg/ext/visibility/fvisibility-override2.C trunk/gcc/testsuite/g++.dg/ext/visibility/virtual.C trunk/gcc/testsuite/g++.old-deja/g++.pt/enum5.C trunk/gcc/tree.c trunk/gcc/tree.h trunk/gcc/varasm.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26612
[Bug c++/26905] default-visibility class symbol improperly resolved as hidden-visibility
--- Comment #3 from jason at gcc dot gnu dot org 2006-06-30 01:16 --- Subject: Bug 26905 Author: jason Date: Fri Jun 30 01:15:56 2006 New Revision: 115086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115086 Log: 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. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/anon2.C trunk/gcc/testsuite/g++.dg/ext/visibility/class1.C trunk/gcc/testsuite/g++.dg/ext/visibility/prop1.C trunk/gcc/testsuite/g++.dg/ext/visibility/redecl1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template2.C trunk/gcc/testsuite/g++.dg/ext/visibility/template3.C trunk/gcc/testsuite/g++.dg/ext/visibility/template4.C trunk/gcc/testsuite/g++.dg/ext/visibility/typeinfo1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn2.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn3.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn4.C Modified: trunk/gcc/ChangeLog trunk/gcc/attribs.c trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/flags.h trunk/gcc/testsuite/g++.dg/ext/attrib14.C trunk/gcc/testsuite/g++.dg/ext/attrib9.C trunk/gcc/testsuite/g++.dg/ext/visibility/anon1.C trunk/gcc/testsuite/g++.dg/ext/visibility/assign1.C trunk/gcc/testsuite/g++.dg/ext/visibility/fvisibility-override2.C trunk/gcc/testsuite/g++.dg/ext/visibility/virtual.C trunk/gcc/testsuite/g++.old-deja/g++.pt/enum5.C trunk/gcc/tree.c trunk/gcc/tree.h trunk/gcc/varasm.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26905
[Bug c++/21675] -fvisibility : misleading documentation and low QoI
--- Comment #1 from jason at gcc dot gnu dot org 2006-06-30 01:16 --- Subject: Bug 21675 Author: jason Date: Fri Jun 30 01:15:56 2006 New Revision: 115086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115086 Log: 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. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/anon2.C trunk/gcc/testsuite/g++.dg/ext/visibility/class1.C trunk/gcc/testsuite/g++.dg/ext/visibility/prop1.C trunk/gcc/testsuite/g++.dg/ext/visibility/redecl1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template2.C trunk/gcc/testsuite/g++.dg/ext/visibility/template3.C trunk/gcc/testsuite/g++.dg/ext/visibility/template4.C trunk/gcc/testsuite/g++.dg/ext/visibility/typeinfo1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn2.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn3.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn4.C Modified: trunk/gcc/ChangeLog trunk/gcc/attribs.c trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/flags.h trunk/gcc/testsuite/g++.dg/ext/attrib14.C trunk/gcc/testsuite/g++.dg/ext/attrib9.C trunk/gcc/testsuite/g++.dg/ext/visibility/anon1.C trunk/gcc/testsuite/g++.dg/ext/visibility/assign1.C trunk/gcc/testsuite/g++.dg/ext/visibility/fvisibility-override2.C trunk/gcc/testsuite/g++.dg/ext/visibility/virtual.C trunk/gcc/testsuite/g++.old-deja/g++.pt/enum5.C trunk/gcc/tree.c trunk/gcc/tree.h trunk/gcc/varasm.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21675
[Bug c++/19134] Class visibility of templated classes can't be overridden for function specializations
--- Comment #3 from jason at gcc dot gnu dot org 2006-06-30 01:16 --- Subject: Bug 19134 Author: jason Date: Fri Jun 30 01:15:56 2006 New Revision: 115086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115086 Log: 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. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/anon2.C trunk/gcc/testsuite/g++.dg/ext/visibility/class1.C trunk/gcc/testsuite/g++.dg/ext/visibility/prop1.C trunk/gcc/testsuite/g++.dg/ext/visibility/redecl1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template2.C trunk/gcc/testsuite/g++.dg/ext/visibility/template3.C trunk/gcc/testsuite/g++.dg/ext/visibility/template4.C trunk/gcc/testsuite/g++.dg/ext/visibility/typeinfo1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn2.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn3.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn4.C Modified: trunk/gcc/ChangeLog trunk/gcc/attribs.c trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/flags.h trunk/gcc/testsuite/g++.dg/ext/attrib14.C trunk/gcc/testsuite/g++.dg/ext/attrib9.C trunk/gcc/testsuite/g++.dg/ext/visibility/anon1.C trunk/gcc/testsuite/g++.dg/ext/visibility/assign1.C trunk/gcc/testsuite/g++.dg/ext/visibility/fvisibility-override2.C trunk/gcc/testsuite/g++.dg/ext/visibility/virtual.C trunk/gcc/testsuite/g++.old-deja/g++.pt/enum5.C trunk/gcc/tree.c trunk/gcc/tree.h trunk/gcc/varasm.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19134
[Bug c++/26984] link error with &(typeid(int)) in anonymous namespace
--- Comment #5 from jason at gcc dot gnu dot org 2006-06-30 01:16 --- Subject: Bug 26984 Author: jason Date: Fri Jun 30 01:15:56 2006 New Revision: 115086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115086 Log: 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. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/anon2.C trunk/gcc/testsuite/g++.dg/ext/visibility/class1.C trunk/gcc/testsuite/g++.dg/ext/visibility/prop1.C trunk/gcc/testsuite/g++.dg/ext/visibility/redecl1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template2.C trunk/gcc/testsuite/g++.dg/ext/visibility/template3.C trunk/gcc/testsuite/g++.dg/ext/visibility/template4.C trunk/gcc/testsuite/g++.dg/ext/visibility/typeinfo1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn2.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn3.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn4.C Modified: trunk/gcc/ChangeLog trunk/gcc/attribs.c trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/flags.h trunk/gcc/testsuite/g++.dg/ext/attrib14.C trunk/gcc/testsuite/g++.dg/ext/attrib9.C trunk/gcc/testsuite/g++.dg/ext/visibility/anon1.C trunk/gcc/testsuite/g++.dg/ext/visibility/assign1.C trunk/gcc/testsuite/g++.dg/ext/visibility/fvisibility-override2.C trunk/gcc/testsuite/g++.dg/ext/visibility/virtual.C trunk/gcc/testsuite/g++.old-deja/g++.pt/enum5.C trunk/gcc/tree.c trunk/gcc/tree.h trunk/gcc/varasm.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26984
[Bug c++/27000] visibility push/pop and templates go crazy
--- Comment #9 from jason at gcc dot gnu dot org 2006-06-30 01:16 --- Subject: Bug 27000 Author: jason Date: Fri Jun 30 01:15:56 2006 New Revision: 115086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115086 Log: 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. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/anon2.C trunk/gcc/testsuite/g++.dg/ext/visibility/class1.C trunk/gcc/testsuite/g++.dg/ext/visibility/prop1.C trunk/gcc/testsuite/g++.dg/ext/visibility/redecl1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template2.C trunk/gcc/testsuite/g++.dg/ext/visibility/template3.C trunk/gcc/testsuite/g++.dg/ext/visibility/template4.C trunk/gcc/testsuite/g++.dg/ext/visibility/typeinfo1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn2.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn3.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn4.C Modified: trunk/gcc/ChangeLog trunk/gcc/attribs.c trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/flags.h trunk/gcc/testsuite/g++.dg/ext/attrib14.C trunk/gcc/testsuite/g++.dg/ext/attrib9.C trunk/gcc/testsuite/g++.dg/ext/visibility/anon1.C trunk/gcc/testsuite/g++.dg/ext/visibility/assign1.C trunk/gcc/testsuite/g++.dg/ext/visibility/fvisibility-override2.C trunk/gcc/testsuite/g++.dg/ext/visibility/virtual.C trunk/gcc/testsuite/g++.old-deja/g++.pt/enum5.C trunk/gcc/tree.c trunk/gcc/tree.h trunk/gcc/varasm.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27000
[Bug c++/17470] Visibility attribute ignored for explicit template instantiation
--- Comment #9 from jason at gcc dot gnu dot org 2006-06-30 01:16 --- Subject: Bug 17470 Author: jason Date: Fri Jun 30 01:15:56 2006 New Revision: 115086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115086 Log: 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. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/anon2.C trunk/gcc/testsuite/g++.dg/ext/visibility/class1.C trunk/gcc/testsuite/g++.dg/ext/visibility/prop1.C trunk/gcc/testsuite/g++.dg/ext/visibility/redecl1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template2.C trunk/gcc/testsuite/g++.dg/ext/visibility/template3.C trunk/gcc/testsuite/g++.dg/ext/visibility/template4.C trunk/gcc/testsuite/g++.dg/ext/visibility/typeinfo1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn2.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn3.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn4.C Modified: trunk/gcc/ChangeLog trunk/gcc/attribs.c trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/flags.h trunk/gcc/testsuite/g++.dg/ext/attrib14.C trunk/gcc/testsuite/g++.dg/ext/attrib9.C trunk/gcc/testsuite/g++.dg/ext/visibility/anon1.C trunk/gcc/testsuite/g++.dg/ext/visibility/assign1.C trunk/gcc/testsuite/g++.dg/ext/visibility/fvisibility-override2.C trunk/gcc/testsuite/g++.dg/ext/visibility/virtual.C trunk/gcc/testsuite/g++.old-deja/g++.pt/enum5.C trunk/gcc/tree.c trunk/gcc/tree.h trunk/gcc/varasm.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17470
[Bug c++/21581] (optimisation) Functions in anonymous namespaces should default to "hidden" visibility
--- Comment #17 from jason at gcc dot gnu dot org 2006-06-30 01:16 --- Subject: Bug 21581 Author: jason Date: Fri Jun 30 01:15:56 2006 New Revision: 115086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115086 Log: 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. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/anon2.C trunk/gcc/testsuite/g++.dg/ext/visibility/class1.C trunk/gcc/testsuite/g++.dg/ext/visibility/prop1.C trunk/gcc/testsuite/g++.dg/ext/visibility/redecl1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template2.C trunk/gcc/testsuite/g++.dg/ext/visibility/template3.C trunk/gcc/testsuite/g++.dg/ext/visibility/template4.C trunk/gcc/testsuite/g++.dg/ext/visibility/typeinfo1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn2.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn3.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn4.C Modified: trunk/gcc/ChangeLog trunk/gcc/attribs.c trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/flags.h trunk/gcc/testsuite/g++.dg/ext/attrib14.C trunk/gcc/testsuite/g++.dg/ext/attrib9.C trunk/gcc/testsuite/g++.dg/ext/visibility/anon1.C trunk/gcc/testsuite/g++.dg/ext/visibility/assign1.C trunk/gcc/testsuite/g++.dg/ext/visibility/fvisibility-override2.C trunk/gcc/testsuite/g++.dg/ext/visibility/virtual.C trunk/gcc/testsuite/g++.old-deja/g++.pt/enum5.C trunk/gcc/tree.c trunk/gcc/tree.h trunk/gcc/varasm.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21581
[Bug c++/25915] use ODR rules to make C++ objects not be TREE_PUBLIC
--- Comment #11 from jason at gcc dot gnu dot org 2006-06-30 01:16 --- Subject: Bug 25915 Author: jason Date: Fri Jun 30 01:15:56 2006 New Revision: 115086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115086 Log: 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. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/anon2.C trunk/gcc/testsuite/g++.dg/ext/visibility/class1.C trunk/gcc/testsuite/g++.dg/ext/visibility/prop1.C trunk/gcc/testsuite/g++.dg/ext/visibility/redecl1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template1.C trunk/gcc/testsuite/g++.dg/ext/visibility/template2.C trunk/gcc/testsuite/g++.dg/ext/visibility/template3.C trunk/gcc/testsuite/g++.dg/ext/visibility/template4.C trunk/gcc/testsuite/g++.dg/ext/visibility/typeinfo1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn1.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn2.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn3.C trunk/gcc/testsuite/g++.dg/ext/visibility/warn4.C Modified: trunk/gcc/ChangeLog trunk/gcc/attribs.c trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/flags.h trunk/gcc/testsuite/g++.dg/ext/attrib14.C trunk/gcc/testsuite/g++.dg/ext/attrib9.C trunk/gcc/testsuite/g++.dg/ext/visibility/anon1.C trunk/gcc/testsuite/g++.dg/ext/visibility/assign1.C trunk/gcc/testsuite/g++.dg/ext/visibility/fvisibility-override2.C trunk/gcc/testsuite/g++.dg/ext/visibility/virtual.C trunk/gcc/testsuite/g++.old-deja/g++.pt/enum5.C trunk/gcc/tree.c trunk/gcc/tree.h trunk/gcc/varasm.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25915
[Bug c++/27424] [4.0/4.1 regression] Valid template-template-parameter rejected
--- Comment #3 from jason at gcc dot gnu dot org 2006-06-30 14:26 --- Subject: Bug 27424 Author: jason Date: Fri Jun 30 14:26:01 2006 New Revision: 115088 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115088 Log: PR c++/27424 * pt.c (convert_template_argument): Pass all template arguments on to coerce_template_template_parms. Added: branches/gcc-4_1-branch/gcc/testsuite/g++.dg/template/ttp20.C - copied unchanged from r115063, trunk/gcc/testsuite/g++.dg/template/ttp20.C Modified: branches/gcc-4_1-branch/gcc/cp/ChangeLog branches/gcc-4_1-branch/gcc/cp/pt.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27424
[Bug c++/27768] [4.1 regression] wrong-code with vectors
--- Comment #14 from jason at gcc dot gnu dot org 2006-06-30 15:19 --- Subject: Bug 27768 Author: jason Date: Fri Jun 30 15:19:50 2006 New Revision: 115090 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115090 Log: PR c++/27768 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add may_aliases already in the tag's annotations to the bitmap. Added: branches/gcc-4_1-branch/gcc/testsuite/g++.dg/opt/alias4.C - copied unchanged from r115062, trunk/gcc/testsuite/g++.dg/opt/alias4.C Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/tree-ssa-alias.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27768
[Bug c++/18698] [4.0/4.1/4.2 regression] Error message using "using" for code not using "using" ;-)
--- Comment #10 from jason at gcc dot gnu dot org 2006-06-30 18:27 --- Subject: Bug 18698 Author: jason Date: Fri Jun 30 18:27:18 2006 New Revision: 115095 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115095 Log: PR c++/18698 * decl2.c (grokfield): Only try to treat the decl as an access declaration if the scope is a class. Added: trunk/gcc/testsuite/g++.dg/parse/access10.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl2.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18698
[Bug c++/27424] [4.0 regression] Valid template-template-parameter rejected
--- Comment #5 from jason at gcc dot gnu dot org 2006-06-30 18:30 --- Subject: Bug 27424 Author: jason Date: Fri Jun 30 18:30:28 2006 New Revision: 115096 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115096 Log: PR c++/27424 * pt.c (convert_template_argument): Pass all template arguments on to coerce_template_template_parms. Added: branches/gcc-4_0-branch/gcc/testsuite/g++.dg/template/ttp20.C - copied unchanged from r115063, trunk/gcc/testsuite/g++.dg/template/ttp20.C Modified: branches/gcc-4_0-branch/gcc/cp/ChangeLog branches/gcc-4_0-branch/gcc/cp/pt.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27424
[Bug middle-end/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2006-03-06 08:06:57 |2006-06-30 19:29:43 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
[Bug c++/18698] [4.0/4.1/4.2 regression] Error message using "using" for code not using "using" ;-)
--- Comment #11 from jason at gcc dot gnu dot org 2006-06-30 19:46 --- Subject: Bug 18698 Author: jason Date: Fri Jun 30 19:45:54 2006 New Revision: 115102 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115102 Log: PR c++/18698 * decl2.c (grokfield): Only try to treat the decl as an access declaration if the scope is a class. Added: branches/gcc-4_0-branch/gcc/testsuite/g++.dg/parse/access10.C - copied unchanged from r115095, trunk/gcc/testsuite/g++.dg/parse/access10.C Modified: branches/gcc-4_0-branch/gcc/cp/ChangeLog branches/gcc-4_0-branch/gcc/cp/decl2.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18698
[Bug c++/18698] [4.0/4.1/4.2 regression] Error message using "using" for code not using "using" ;-)
--- Comment #12 from jason at gcc dot gnu dot org 2006-06-30 19:47 --- Subject: Bug 18698 Author: jason Date: Fri Jun 30 19:47:09 2006 New Revision: 115103 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115103 Log: PR c++/18698 * decl2.c (grokfield): Only try to treat the decl as an access declaration if the scope is a class. Added: branches/gcc-4_1-branch/gcc/testsuite/g++.dg/parse/access10.C - copied unchanged from r115095, trunk/gcc/testsuite/g++.dg/parse/access10.C Modified: branches/gcc-4_1-branch/gcc/cp/ChangeLog branches/gcc-4_1-branch/gcc/cp/decl2.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18698
[Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
--- Comment #9 from jason at gcc dot gnu dot org 2006-06-30 19:49 --- Actually, this is a frontend issue: we shouldn't be asking for the access in the first place. Patch soon. -- jason at gcc dot gnu dot org changed: What|Removed |Added Component|middle-end |c++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
[Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
--- Comment #10 from jason at gcc dot gnu dot org 2006-06-30 20:48 --- Subject: Bug 26577 Author: jason Date: Fri Jun 30 20:48:42 2006 New Revision: 115105 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115105 Log: PR c++/26577 * call.c (build_new_method_call): Force evaluation of the instance pointer, not the object. Added: trunk/gcc/testsuite/g++.dg/init/volatile1.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
[Bug c++/18681] [4.0/4.1/4.2 Regression] template friend declaration not recognized
--- Comment #25 from jason at gcc dot gnu dot org 2006-06-30 21:13 --- Fixing this is simplified by DR 45: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#45 Under DR 45, S1 now has all the access of its enclosing class. We should be able to just implement that DR and this problem will go away. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18681
[Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
--- Comment #11 from jason at gcc dot gnu dot org 2006-06-30 21:23 --- Subject: Bug 26577 Author: jason Date: Fri Jun 30 21:23:45 2006 New Revision: 115106 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115106 Log: PR c++/26577 * call.c (build_new_method_call): Force evaluation of the instance pointer, not the object. Added: branches/gcc-4_1-branch/gcc/testsuite/g++.dg/init/volatile1.C - copied unchanged from r115105, trunk/gcc/testsuite/g++.dg/init/volatile1.C Modified: branches/gcc-4_1-branch/gcc/cp/ChangeLog branches/gcc-4_1-branch/gcc/cp/call.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
[Bug c++/18681] [4.0/4.1/4.2 Regression] template friend declaration not recognized
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2005-10-22 03:39:17 |2006-06-30 21:24:25 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18681
[Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
--- Comment #12 from jason at gcc dot gnu dot org 2006-06-30 21:25 --- Subject: Bug 26577 Author: jason Date: Fri Jun 30 21:25:21 2006 New Revision: 115107 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115107 Log: PR c++/26577 * call.c (build_new_method_call): Force evaluation of the instance pointer, not the object. Added: branches/gcc-4_0-branch/gcc/testsuite/g++.dg/init/volatile1.C - copied unchanged from r115105, trunk/gcc/testsuite/g++.dg/init/volatile1.C Modified: branches/gcc-4_0-branch/gcc/cp/ChangeLog branches/gcc-4_0-branch/gcc/cp/call.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
[Bug c++/10591] PCH breaks anonymous namespaces
--- Comment #24 from jason at gcc dot gnu dot org 2006-06-30 21:30 --- Did my recent visibility patch fix this? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10591
[Bug c++/28215] [4.2 regression] Bootstrap failure on arm-eabi
--- Comment #2 from jason at gcc dot gnu dot org 2006-07-01 22:01 --- Subject: Bug 28215 Author: jason Date: Sat Jul 1 22:01:18 2006 New Revision: 115118 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115118 Log: PR c++/28215 * method.c (make_thunk): Unset DECL_USE_TEMPLATE and DECL_TEMPLATE_INFO. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/method.c trunk/gcc/cp/search.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28215
[Bug middle-end/20218] Can't use __attribute__ ((visibility ("hidden"))) to hide a symbol
--- Comment #23 from jason at gcc dot gnu dot org 2006-07-02 04:30 --- (In reply to comment #22) > I still say if the definition was not marked as having a visibility, then the > code is wrong as someone could mark stuff weirdly. Yes, if someone's code marks a function as hidden in a translation unit where it is only called, and not in the TU where it is defined, sounds to me like their code is doing strange and probably broken things. But that seems to be what the ELF standard requires, and this bug report indicates that several people seem to want the feature. > Now does the other question (since I cannot remember when looking at the elf > standard) is that the section about visibility being combined is that about > linking or just creating a module. The quotes in other comments make it pretty clear that it's about linking. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20218
[Bug c++/26577] [4.0/4.1/4.2 regression] ICE in cp_expr_size with volatile and call to static
--- Comment #15 from jason at gcc dot gnu dot org 2006-07-05 00:46 --- (In reply to comment #14) > Marks's testcase from comment #6 still ICEs. True, but it's a contrived testcase; I doubt anyone deliberately tries to force a load of a non-POD object for its own sake. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577
[Bug c++/24605] [4.0/4.1 Regression] internal compiler error: Segmentation fault while compiling c++ file
--- Comment #18 from jason at gcc dot gnu dot org 2006-07-05 18:03 --- Removing the 4.2 regression tag, since apparently it's fixed there. I'm not sure how this qualifies as a regression at all, since the bug was reported against 3.4 and there's no report of it working better with a previous release. -- jason at gcc dot gnu dot org changed: What|Removed |Added Summary|[4.0/4.1/4.2 Regression]|[4.0/4.1 Regression] |internal compiler error:|internal compiler error: |Segmentation fault while|Segmentation fault while |compiling c++ file |compiling c++ file http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24605
[Bug c++/26671] [4.0/4.1/4.2 Regression] Missing "warning: reference to local variable returned"
--- Comment #3 from jason at gcc dot gnu dot org 2006-07-05 18:19 --- added known to work in 3.3.6 -- jason at gcc dot gnu dot org changed: What|Removed |Added Known to work||3.3.6 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26671
[Bug c++/27397] [4.2 regression] ICE on invalid template argument
--- Comment #3 from jason at gcc dot gnu dot org 2006-07-05 18:29 --- Perhaps it doesn't ICE on the 4.1 branch only because release branches don't have checking enabled? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27397
[Bug c++/18681] [4.0/4.1/4.2 Regression] [DR 45] template friend declaration not recognized
--- Comment #26 from jason at gcc dot gnu dot org 2006-07-05 19:44 --- Subject: Bug 18681 Author: jason Date: Wed Jul 5 19:44:28 2006 New Revision: 115208 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115208 Log: PR c++/18681 * friend.c (is_friend): Fix DR 45 implementation. Added: trunk/gcc/testsuite/g++.dg/lookup/friend10.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/friend.c trunk/gcc/cp/search.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18681
[Bug c++/26670] attribute((packed)) sometimes not ignored for non-PODs
--- Comment #5 from jason at gcc dot gnu dot org 2006-07-05 20:38 --- This is intended behavior: a non-POD type which has been marked as packed can be used as a packed field. 13983 and 17519 are bugs in that feature. In this case, nonpod_pack::n is not packed, so it is safe to pack fields of nonpod_pack type. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26670
[Bug c++/18681] [4.0/4.1/4.2 Regression] [DR 45] template friend declaration not recognized
--- Comment #27 from jason at gcc dot gnu dot org 2006-07-05 20:40 --- Subject: Bug 18681 Author: jason Date: Wed Jul 5 20:40:06 2006 New Revision: 115209 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115209 Log: PR c++/18681 * friend.c (is_friend): Fix DR 45 implementation. Added: branches/gcc-4_0-branch/gcc/testsuite/g++.dg/lookup/friend10.C - copied unchanged from r115208, trunk/gcc/testsuite/g++.dg/lookup/friend10.C Modified: branches/gcc-4_0-branch/gcc/cp/ChangeLog branches/gcc-4_0-branch/gcc/cp/friend.c branches/gcc-4_0-branch/gcc/cp/search.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18681
[Bug c++/18681] [4.0/4.1/4.2 Regression] [DR 45] template friend declaration not recognized
--- Comment #28 from jason at gcc dot gnu dot org 2006-07-05 20:40 --- Subject: Bug 18681 Author: jason Date: Wed Jul 5 20:40:49 2006 New Revision: 115210 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115210 Log: PR c++/18681 * friend.c (is_friend): Fix DR 45 implementation. Added: branches/gcc-4_1-branch/gcc/testsuite/g++.dg/lookup/friend10.C - copied unchanged from r115208, trunk/gcc/testsuite/g++.dg/lookup/friend10.C Modified: branches/gcc-4_1-branch/gcc/cp/ChangeLog branches/gcc-4_1-branch/gcc/cp/friend.c branches/gcc-4_1-branch/gcc/cp/search.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18681
[Bug c++/13983] no warning on some non-POD struct with packed attribute
--- Comment #9 from jason at gcc dot gnu dot org 2006-07-06 02:09 --- Subject: Bug 13983 Author: jason Date: Thu Jul 6 02:09:02 2006 New Revision: 115217 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115217 Log: PR c++/13983 PR c++/17519 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants. * c-common.c (handle_packed_attribute): So don't copy it here. * c-decl.c (finish_struct): Don't copy TYPE_ALIGN. * cp/class.c (check_field_decls): Check TYPE_PACKED after stripping array types. (finish_struct_bits): Don't copy TYPE_SIZE here. Added: trunk/gcc/testsuite/g++.dg/ext/packed10.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/stor-layout.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13983
[Bug c++/17519] [4.0/4.1/4.2 Regression] Warning for array of packed non-POD in packed struct
--- Comment #15 from jason at gcc dot gnu dot org 2006-07-06 02:09 --- Subject: Bug 17519 Author: jason Date: Thu Jul 6 02:09:02 2006 New Revision: 115217 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115217 Log: PR c++/13983 PR c++/17519 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants. * c-common.c (handle_packed_attribute): So don't copy it here. * c-decl.c (finish_struct): Don't copy TYPE_ALIGN. * cp/class.c (check_field_decls): Check TYPE_PACKED after stripping array types. (finish_struct_bits): Don't copy TYPE_SIZE here. Added: trunk/gcc/testsuite/g++.dg/ext/packed10.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/c-decl.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/stor-layout.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17519
[Bug c++/18681] [4.0/4.1/4.2 Regression] [DR 45] template friend declaration not recognized
--- Comment #29 from jason at gcc dot gnu dot org 2006-07-06 02:15 --- feexd -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18681
[Bug c++/13983] no warning on some non-POD struct with packed attribute
--- Comment #10 from jason at gcc dot gnu dot org 2006-07-06 02:21 --- Subject: Bug 13983 Author: jason Date: Thu Jul 6 02:21:17 2006 New Revision: 115219 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115219 Log: PR c++/13983 PR c++/17519 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants. * cp/class.c (check_field_decls): Check TYPE_PACKED after stripping array types. Added: branches/gcc-4_1-branch/gcc/testsuite/g++.dg/ext/packed10.C - copied unchanged from r115217, trunk/gcc/testsuite/g++.dg/ext/packed10.C Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/cp/ChangeLog branches/gcc-4_1-branch/gcc/cp/class.c branches/gcc-4_1-branch/gcc/stor-layout.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13983
[Bug c++/17519] [4.0/4.1/4.2 Regression] Warning for array of packed non-POD in packed struct
--- Comment #16 from jason at gcc dot gnu dot org 2006-07-06 02:21 --- Subject: Bug 17519 Author: jason Date: Thu Jul 6 02:21:17 2006 New Revision: 115219 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115219 Log: PR c++/13983 PR c++/17519 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants. * cp/class.c (check_field_decls): Check TYPE_PACKED after stripping array types. Added: branches/gcc-4_1-branch/gcc/testsuite/g++.dg/ext/packed10.C - copied unchanged from r115217, trunk/gcc/testsuite/g++.dg/ext/packed10.C Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/cp/ChangeLog branches/gcc-4_1-branch/gcc/cp/class.c branches/gcc-4_1-branch/gcc/stor-layout.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17519
[Bug c++/17519] [4.0/4.1/4.2 Regression] Warning for array of packed non-POD in packed struct
--- Comment #17 from jason at gcc dot gnu dot org 2006-07-06 03:33 --- Subject: Bug 17519 Author: jason Date: Thu Jul 6 03:33:20 2006 New Revision: 115220 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115220 Log: PR c++/13983 PR c++/17519 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants. * cp/class.c (check_field_decls): Check TYPE_PACKED after stripping array types. Added: branches/gcc-4_0-branch/gcc/testsuite/g++.dg/ext/packed10.C - copied unchanged from r115219, branches/gcc-4_1-branch/gcc/testsuite/g++.dg/ext/packed10.C Modified: branches/gcc-4_0-branch/gcc/ChangeLog branches/gcc-4_0-branch/gcc/cp/ChangeLog branches/gcc-4_0-branch/gcc/cp/class.c branches/gcc-4_0-branch/gcc/stor-layout.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17519
[Bug c++/13983] no warning on some non-POD struct with packed attribute
--- Comment #11 from jason at gcc dot gnu dot org 2006-07-06 03:33 --- Subject: Bug 13983 Author: jason Date: Thu Jul 6 03:33:20 2006 New Revision: 115220 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115220 Log: PR c++/13983 PR c++/17519 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants. * cp/class.c (check_field_decls): Check TYPE_PACKED after stripping array types. Added: branches/gcc-4_0-branch/gcc/testsuite/g++.dg/ext/packed10.C - copied unchanged from r115219, branches/gcc-4_1-branch/gcc/testsuite/g++.dg/ext/packed10.C Modified: branches/gcc-4_0-branch/gcc/ChangeLog branches/gcc-4_0-branch/gcc/cp/ChangeLog branches/gcc-4_0-branch/gcc/cp/class.c branches/gcc-4_0-branch/gcc/stor-layout.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13983
[Bug c++/13983] no warning on some non-POD struct with packed attribute
--- Comment #12 from jason at gcc dot gnu dot org 2006-07-06 03:44 --- feexd -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13983
[Bug c++/17519] [4.0/4.1/4.2 Regression] Warning for array of packed non-POD in packed struct
--- Comment #18 from jason at gcc dot gnu dot org 2006-07-06 03:45 --- f1x0r'd -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17519
[Bug c++/26670] attribute((packed)) sometimes not ignored for non-PODs
--- Comment #6 from jason at gcc dot gnu dot org 2006-07-06 03:48 --- Hmm, actually comment #2 does seem like a bug, both foos should compile cleanly. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|RESOLVED|UNCONFIRMED Resolution|INVALID | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26670
[Bug c++/26670] attribute((packed)) sometimes not ignored for non-PODs
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-07-06 03:52:12 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26670
[Bug c++/26905] default-visibility class symbol improperly resolved as hidden-visibility
--- Comment #6 from jason at gcc dot gnu dot org 2006-07-06 15:21 --- I'm afraid it's too large a patch to go into the FSF 4.0/1 branches, though Red Hat will apply include it in our 4.1 branch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26905
[Bug c++/28279] [4.2 Regression] ICE in finish_static_data_member_decl, at cp/decl2.c:716
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-07-06 15:22:44 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28279
[Bug c++/28279] [4.2 Regression] ICE in finish_static_data_member_decl, at cp/decl2.c:716
--- Comment #2 from jason at gcc dot gnu dot org 2006-07-06 18:39 --- Subject: Bug 28279 Author: jason Date: Thu Jul 6 18:39:39 2006 New Revision: 115228 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115228 Log: PR c++/28279 * decl2.c (finish_static_data_member_decl): Don't assert TREE_PUBLIC. Added: trunk/gcc/testsuite/g++.dg/template/anon2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl2.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28279
[Bug c++/28217] [4.0/4.1/4.2 regression] ICE in tree_int_cst_sgn
--- Comment #14 from jason at gcc dot gnu dot org 2006-07-12 21:58 --- Subject: Bug 28217 Author: jason Date: Wed Jul 12 21:57:58 2006 New Revision: 115399 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115399 Log: PR c++/28217 * semantics.c (note_decl_for_pch): Don't premangle templates. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/semantics.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28217
[Bug c++/38007] [4.2/4.3/4.4 Regression] g++ instantiate same operator twice due to bitfield in -O0 mode, causing symbol already defined assembler error
--- Comment #4 from jason at gcc dot gnu dot org 2008-11-12 20:52 --- Subject: Bug 38007 Author: jason Date: Wed Nov 12 20:50:45 2008 New Revision: 141800 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141800 Log: PR c++/38007 gcc/cp/ * typeck.c (cp_build_modify_expr): Update bitfield handling. gcc/ * c-common.c (c_common_signed_or_unsigned_type): Remove C++ special casing. gcc/testsuite/ * g++.dg/conversion/bitfield10.C: New test. * g++.dg/warn/pr35635.C (func1): Accept additional warning. * g++.old-deja/g++.mike/enum1.C: Expect warn about assignment. * g++.dg/expr/bitfield9.C: Pass -Wno-overflow. Added: trunk/gcc/testsuite/g++.dg/conversion/bitfield10.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/expr/bitfield9.C trunk/gcc/testsuite/g++.dg/warn/pr35635.C trunk/gcc/testsuite/g++.old-deja/g++.mike/enum1.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38007
[Bug c++/38007] [4.2/4.3 Regression] g++ instantiate same operator twice due to bitfield in -O0 mode, causing symbol already defined assembler error
--- Comment #5 from jason at gcc dot gnu dot org 2008-11-12 22:09 --- Subject: Bug 38007 Author: jason Date: Wed Nov 12 22:08:01 2008 New Revision: 141808 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141808 Log: PR c++/38007 gcc/cp/ * typeck.c (cp_build_modify_expr): Update bitfield handling. gcc/ * c-common.c (c_common_signed_or_unsigned_type): Remove C++ special casing. gcc/testsuite/ * g++.dg/conversion/bitfield10.C: New test. * g++.dg/warn/pr35635.C (func1): Accept additional warning. * g++.old-deja/g++.mike/enum1.C: Expect warn about assignment. * g++.dg/expr/bitfield9.C: Pass -Wno-overflow. Added: branches/gcc-4_3-branch/gcc/testsuite/g++.dg/conversion/bitfield10.C - copied unchanged from r141800, trunk/gcc/testsuite/g++.dg/conversion/bitfield10.C Modified: branches/gcc-4_3-branch/gcc/ChangeLog branches/gcc-4_3-branch/gcc/c-common.c branches/gcc-4_3-branch/gcc/cp/ChangeLog branches/gcc-4_3-branch/gcc/cp/typeck.c branches/gcc-4_3-branch/gcc/testsuite/ChangeLog branches/gcc-4_3-branch/gcc/testsuite/g++.dg/expr/bitfield9.C branches/gcc-4_3-branch/gcc/testsuite/g++.old-deja/g++.mike/enum1.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38007
[Bug c++/38007] [4.2/4.3 Regression] g++ instantiate same operator twice due to bitfield in -O0 mode, causing symbol already defined assembler error
--- Comment #6 from jason at gcc dot gnu dot org 2008-11-12 22:14 --- Subject: Bug 38007 Author: jason Date: Wed Nov 12 22:13:26 2008 New Revision: 141809 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141809 Log: PR c++/38007 gcc/cp/ * typeck.c (cp_build_modify_expr): Update bitfield handling. gcc/ * c-common.c (c_common_signed_or_unsigned_type): Remove C++ special casing. gcc/testsuite/ * g++.dg/conversion/bitfield10.C: New test. * g++.dg/warn/pr35635.C (func1): Accept additional warning. * g++.old-deja/g++.mike/enum1.C: Expect warn about assignment. * g++.dg/expr/bitfield9.C: Pass -Wno-overflow. Added: branches/gcc-4_2-branch/gcc/testsuite/g++.dg/conversion/bitfield10.C - copied unchanged from r141800, trunk/gcc/testsuite/g++.dg/conversion/bitfield10.C Modified: branches/gcc-4_2-branch/gcc/ChangeLog branches/gcc-4_2-branch/gcc/c-common.c branches/gcc-4_2-branch/gcc/cp/ChangeLog branches/gcc-4_2-branch/gcc/cp/typeck.c branches/gcc-4_2-branch/gcc/testsuite/ChangeLog branches/gcc-4_2-branch/gcc/testsuite/g++.dg/expr/bitfield9.C branches/gcc-4_2-branch/gcc/testsuite/g++.old-deja/g++.mike/enum1.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38007
[Bug c++/38007] [4.2/4.3 Regression] g++ instantiate same operator twice due to bitfield in -O0 mode, causing symbol already defined assembler error
--- Comment #7 from jason at gcc dot gnu dot org 2008-11-12 22:15 --- Fixed on all open branches. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38007
[Bug c++/37962] [4.4 regression] ICE with (auto*) casts
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2008-10-30 20:58:30 |2008-11-12 22:18:10 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37962
[Bug c++/37932] narrowing conversion with -std=c++0x
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-11-12 22:53:34 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37932
[Bug c++/32687] Invalid code generation for reading signed negative bitfield value (g++ optimization)
--- Comment #3 from jason at gcc dot gnu dot org 2008-11-14 00:21 --- The 4.1 series is closed, so this is now fixed in all current release series. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32687
[Bug c++/37932] narrowing conversion with -std=c++0x
--- Comment #4 from jason at gcc dot gnu dot org 2008-11-14 00:39 --- Subject: Bug 37932 Author: jason Date: Fri Nov 14 00:38:20 2008 New Revision: 141843 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141843 Log: PR c++/37932 * typeck2.c (process_init_constructor_record): Update bitfield handling. (check_narrowing): Update bitfield handling, print source type. Added: trunk/gcc/testsuite/g++.dg/conversion/bitfield11.C trunk/gcc/testsuite/g++.dg/cpp0x/initlist7.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/typeck2.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37932
[Bug c++/37932] narrowing conversion with -std=c++0x
--- Comment #5 from jason at gcc dot gnu dot org 2008-11-14 04:17 --- Subject: Bug 37932 Author: jason Date: Fri Nov 14 04:16:07 2008 New Revision: 141844 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141844 Log: PR c++/37932 * typeck2.c (process_init_constructor_record): Update bitfield handling. (check_narrowing): Update bitfield handling, print source type. Added: branches/gcc-4_3-branch/gcc/testsuite/g++.dg/conversion/bitfield11.C - copied unchanged from r141843, trunk/gcc/testsuite/g++.dg/conversion/bitfield11.C Modified: branches/gcc-4_3-branch/gcc/cp/ChangeLog branches/gcc-4_3-branch/gcc/cp/typeck2.c branches/gcc-4_3-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37932
[Bug c++/37932] narrowing conversion with -std=c++0x
--- Comment #6 from jason at gcc dot gnu dot org 2008-11-14 05:26 --- Subject: Bug 37932 Author: jason Date: Fri Nov 14 05:24:59 2008 New Revision: 141846 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141846 Log: PR c++/37932 * typeck2.c (process_init_constructor_record): Update bitfield handling. Added: branches/gcc-4_2-branch/gcc/testsuite/g++.dg/conversion/bitfield11.C - copied unchanged from r141845, branches/gcc-4_3-branch/gcc/testsuite/g++.dg/conversion/bitfield11.C Modified: branches/gcc-4_2-branch/gcc/cp/ChangeLog branches/gcc-4_2-branch/gcc/cp/typeck2.c branches/gcc-4_2-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37932
[Bug c++/37932] narrowing conversion with -std=c++0x
--- Comment #7 from jason at gcc dot gnu dot org 2008-11-14 16:11 --- The initialization of arr is ill-formed in C++0x because of narrowing from int to char. The initialization of s is well-formed; that bug has been fixed for 4.4. The initialization of t is ill-formed in C++98 because of conversion from int to enum; that bug has been fixed for 4.2, 4.3 and 4.4. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37932
[Bug c++/37740] [C++0x] "foo f{...}" form compiles, but "new foo{...}" one doesn't
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-11-14 16:23:44 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37740
[Bug c++/35758] vector_size attribute lost in function arguments for templates
--- Comment #22 from jason at gcc dot gnu dot org 2008-11-14 16:38 --- Downgrading priority/severity since this is no longer a regression. -- jason at gcc dot gnu dot org changed: What|Removed |Added Severity|blocker |normal Priority|P1 |P3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35758
[Bug c++/38030] [4.2/4.3/4.4 Regression] name-lookup for non-dependent name in template function is wrong
--- Comment #5 from jason at gcc dot gnu dot org 2008-11-14 18:29 --- G++ has never done two-phase name binding; that's an area that needs work for standards conformance. This testcase worked properly by accident in 3.4 and 4.0, because of an optimization which was disallowed under DR 164. -- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2008-11-06 11:51:12 |2008-11-14 18:29:59 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38030
[Bug c++/37740] [C++0x] "foo f{...}" form compiles, but "new foo{...}" one doesn't
--- Comment #2 from jason at gcc dot gnu dot org 2008-11-14 20:52 --- Subject: Bug 37740 Author: jason Date: Fri Nov 14 20:50:59 2008 New Revision: 141865 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141865 Log: PR c++/37740 * call.c (build_aggr_conv): Increment i. Added: trunk/gcc/testsuite/g++.dg/cpp0x/initlist8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37740
[Bug c++/38030] [4.2/4.3/4.4 Regression] name-lookup for non-dependent name in template function is wrong
--- Comment #6 from jason at gcc dot gnu dot org 2008-11-14 21:59 --- Subject: Bug 38030 Author: jason Date: Fri Nov 14 21:57:34 2008 New Revision: 141866 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141866 Log: PR c++/38030 * semantics.c (finish_call_expr): Remember the result of non-dependent overload resolution. Added: trunk/gcc/testsuite/g++.dg/template/lookup8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/semantics.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38030
[Bug c++/38030] [4.2/4.3 Regression] name-lookup for non-dependent name in template function is wrong
--- Comment #7 from jason at gcc dot gnu dot org 2008-11-14 22:02 --- Subject: Bug 38030 Author: jason Date: Fri Nov 14 22:01:12 2008 New Revision: 141868 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141868 Log: PR c++/38030 * semantics.c (finish_call_expr): Don't repeat arg-dep lookup for a non-dependent call. Added: branches/gcc-4_3-branch/gcc/testsuite/g++.dg/template/lookup8.C - copied unchanged from r141866, trunk/gcc/testsuite/g++.dg/template/lookup8.C Modified: branches/gcc-4_3-branch/gcc/cp/ChangeLog branches/gcc-4_3-branch/gcc/cp/semantics.c branches/gcc-4_3-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38030
[Bug c++/37740] [C++0x] "foo f{...}" form compiles, but "new foo{...}" one doesn't
--- Comment #3 from jason at gcc dot gnu dot org 2008-11-14 22:22 --- Fixed. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37740
[Bug c++/38030] [4.2/4.3 Regression] name-lookup for non-dependent name in template function is wrong
--- Comment #8 from jason at gcc dot gnu dot org 2008-11-14 23:07 --- Subject: Bug 38030 Author: jason Date: Fri Nov 14 23:06:11 2008 New Revision: 141872 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141872 Log: PR c++/38030 * semantics.c (finish_call_expr): Don't repeat arg-dep lookup for a non-dependent call. Added: branches/gcc-4_2-branch/gcc/testsuite/g++.dg/template/lookup8.C - copied unchanged from r141866, trunk/gcc/testsuite/g++.dg/template/lookup8.C Modified: branches/gcc-4_2-branch/gcc/cp/ChangeLog branches/gcc-4_2-branch/gcc/cp/semantics.c branches/gcc-4_2-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38030
[Bug c++/38030] [4.2/4.3 Regression] name-lookup for non-dependent name in template function is wrong
--- Comment #9 from jason at gcc dot gnu dot org 2008-11-14 23:16 --- Fixed. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38030
[Bug libstdc++/37718] Demangling of variadic functions
--- Comment #4 from jason at gcc dot gnu dot org 2008-11-14 23:18 --- Fixed. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37718
[Bug c++/37962] [4.4 regression] ICE with (auto*) casts
--- Comment #8 from jason at gcc dot gnu dot org 2008-11-18 18:12 --- Subject: Bug 37962 Author: jason Date: Tue Nov 18 18:11:32 2008 New Revision: 141970 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141970 Log: PR c++/37962 cp/ * parser.c (cp_parser_type_id): Complain about auto. * decl.c (grokdeclarator): Complain about parameters and conversion functions declared with auto. * call.c (standard_conversion): Use CLASS_TYPE_P instead of MAYBE_CLASS_TYPE_P. * cp-tree.h (TYPE_NON_AGGREGATE_CLASS): Likewise. testsuite/ * g++.dg/cpp0x/auto[38].C: Adjust expected errors. * g++.dg/cpp0x/auto9.C: New test. * g++.dg/cpp0x/auto10.C: New test. Added: trunk/gcc/testsuite/g++.dg/cpp0x/auto10.C trunk/gcc/testsuite/g++.dg/cpp0x/auto9.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/parser.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/auto3.C trunk/gcc/testsuite/g++.dg/cpp0x/auto8.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37962
[Bug c++/37962] [4.4 regression] ICE with (auto*) casts
--- Comment #9 from jason at gcc dot gnu dot org 2008-11-18 18:14 --- Fixed. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37962
[Bug libstdc++/25191] exception_defines.h #defines try/catch
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2008-06-02 11:48:51 |2008-11-18 18:45:35 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25191
[Bug c++/15745] exception specification incorrectly changes the type of the exception thrown
--- Comment #6 from jason at gcc dot gnu dot org 2008-11-18 18:50 --- Fixed. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15745
[Bug c++/37256] [4.4 Regression] extern template / explicit instantiation broken in 4.4.0-pre
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2008-08-27 19:36:05 |2008-11-19 00:10:15 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37256
[Bug c++/37563] [4.3/4.4 regression] Trouble calling qualified member function
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2008-09-20 14:51:40 |2008-11-19 00:21:37 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37563
[Bug c++/36410] [4.2/4.3/4.4 Regression] ICE with transparent union
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|WAITING |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-11-19 00:24:27 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36410
[Bug c++/37256] [4.4 Regression] extern template / explicit instantiation broken in 4.4.0-pre
--- Comment #8 from jason at gcc dot gnu dot org 2008-11-19 19:29 --- Subject: Bug 37256 Author: jason Date: Wed Nov 19 19:27:29 2008 New Revision: 142014 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142014 Log: PR c++/37256 * pt.c (instantiate_decl): Don't require a definition of a template that is explicitly instantiated 'extern'. Added: trunk/gcc/testsuite/g++.dg/cpp0x/extern_template-3.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37256