PR c++/3478
[official-gcc.git] / gcc / cp / ChangeLog
blob2d100c8cab2a399b9b9baec4f82965213b9c0b66
1 2004-01-11  Ian Lance Taylor  <ian@wasabisystems.com>
3         PR c++/3478
4         * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
5         is error_mark_node, don't add any more decl_specs.
6         (cp_parser_init_declarator): After committing to a declaration, if
7         the decl_specifiers start with error_mark_node, issue an error and
8         change the type to "int".
10 2004-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
12         PR bootstrap/7817
13         * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
15 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
17         DR 337
18         PR c++/9256
19         * pt.c (tsubst): Substitution must fail if we are attempting to 
20         create an array with element type that is an abstract class type.
21         * decl.c (cp_finish_decl): Strip pointers and array types recursively
22         before calling abstract_virtuals_error.
24 2004-01-09  Alexandre Oliva  <aoliva@redhat.com>
26         * name-lookup.c (qualified_lookup_using_namespace): Consider
27         strong using directives even if we've already found a binding.
29 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
31         * cp-tree.h (cxx_expand_expr): Change prototype.
32         * expr.c (cxx_expand_expr): Add alt_rtl parameter.
34 2004-01-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
36         PR c++/12573
37         * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
38         looking into them recursively. They can be there because of the
39         new __offsetof__ extension.
41 2004-01-07  Zack Weinberg  <zack@codesourcery.com>
43         * parser.c (cp_parser_save_member_function_body): Mark the
44         definition static.
46 2004-01-05  Mark Mitchell  <mark@codesourcery.com>
48         PR c++/13057
49         * class.c (build_clone): Copy type attributes from the original
50         function to the clone.
52         PR c++/12815
53         * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
54         references as constant.
56         PR c++/12132
57         * parser.c (cp_parser_explicit_instantiation): Improve error
58         recovery.
59         (cp_parser_require): Improve indication of the error location.
61         PR c++/13451
62         * parser.c (cp_parser_class_head): Reorder logic to check for
63         invalid qualification.
65 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
67         PR c++/13157
68         * name-lookup.c (lookup_using_namespace): Remove spacesp
69         parameter.
70         (unqualified_namespace_lookup): Likewise.
71         (lookup_qualified_name): Adjust accordingly.
72         (lookup_name_real): Likewise.
73         (lookup_arg_dependent): Do not eliminate the namespace of the
74         functions found by unqualified name lookup unless that is the
75         current namespace.
77 2004-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
79         * semantics.c (push_deferring_access_checks): Fix format.
80         (resume_deferring_access_checks): Likewise.
81         (stop_deferring_access_checks): Likewise.
82         (pop_deferring_access_checks): Likewise.
83         (get_deferred_access_checks): Likewise.
84         (pop_to_parent_deferring_access_checks): Likewise.
85         (perform_deferred_access_checks): Likewise.
86         (perform_or_defer_access_check): Likewise.
88 2004-01-04  Richard Henderson  <rth@redhat.com>
90         * call.c (build_over_call): Don't create a save_expr of an
91         aggregate, but rather its address.
93 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
95         PR c++/13529
96         * parser.c (cp_parser_postfix_expression): Allow "." to appear in
97         an offsetof expression.
99         * parser.c (cp_parser_parameter_declaration): Fix comment.
101         PR c++/12226
102         * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
103         (reference_binding): Set it when appropriate.
104         (build_temp): New function, split out from ...
105         (convert_like_real): ... here.  Honor CHECK_COPY_CONSTRUCTOR_P.
106         (initialize_reference): Likewise.
108         PR c++/13536
109         * parser.c (cp_parser): Add in_type_id_in_expr_p.
110         (cp_parser_new): Initialize it.
111         (cp_parser_postfix_expression): Set it.
112         (cp_parser_sizeof_operand): Likewise.
113         (cp_parser_parameteR_declaration): Do not commit early to tenative
114         parsers when in_type_id_in_expr_p is set.
116 2004-01-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
118         PR c++/13094
119         * parser.c (cp_parser_template_argument): Don't call
120         make_unbound_class_template directly.
121         (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
122         UNBOUND_CLASS_TEMPLATE tree node.
124 2004-01-02  Richard Sandiford  <rsandifo@redhat.com>
126         PR target/12729
127         * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
129 2004-01-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
131         PR c++/13520
132         * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
133         (DECL_FUNCTION_TEMPLATE_P): Use it.
134         (DECL_CLASS_TEMPLATE_P): Likewise.
135         * parser.c (cp_parser_lookup_name): Add is_template parameter.
136         (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
137         (cp_parser_template_name): Likewise.
138         (cp_parser_elaborated_type_specifier): Likewise.
139         (cp_parser_namespace_name): Likewise.
140         (cp_parser_class_name): Likewise.
141         (cp_parser_lookup_name_simple): Likewise.
143 See ChangeLog.3 for earlier changes.