* parser.c (cp_parser_class_specifier): Prevent garbage collection.
[official-gcc.git] / gcc / cp / ChangeLog
blob2587cf30b017de6475d591e40b62b0995a1c9e27
1 2004-01-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3         * parser.c (cp_parser_class_specifier): Prevent garbage collection.
5 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
7         * Make-lang.in: Replace $(docdir) with doc.
8         (c++.info, c++.srcinfo): Dummy entry.
9         (c++.man, c++.srcman): New rules.
10         (c++.install-man): Revamp rule.
12 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14         * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME, 
15         CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
16         immediate $(shell) instead of deferred backquote.
18 2004-01-19  Mark Mitchell  <mark@codesourcery.com>
20         PR c++/13651
21         * parser.c (cp_parser_postfix_expression): When encountering
22         incomplete type on left-hand side of "->" or ".", treat the entire
23         expression as erroneous.
25         PR c++/13592
26         * call.c (build_field_call): Remove.
27         (n_build_method_call): Likewise.
28         (build_method_call): Likewise.
29         (build_new_method_call): Do not call build_field_call.
30         * class.c (n_build_method_call): Remove.
31         (print_class_statistics): Do not print it.
32         * cp-tree.h (build_method_call): Remove declaration.
33         (finish_object_call_expr): Likewise.
34         (build_new_1): Do not use build_method_call.
35         * parser.c (cp_parser_postfix_expression): Use finish_call_expr
36         when the function appearing on the right-hand-side of "." or "->"
37         is not actually a function.
38         * pt.c (tsubst_copy_and_build): Likewise.
39         * semantics.c (finish_object_call_expr): Remove.
41 2004-01-18  Mark Mitchell  <mark@codesourcery.com>
43         PR c++/13710
44         * pt.c (tsubst): Use finish_typeof.
46 2004-01-16  Jason Merrill  <jason@redhat.com>
48         PR c++/11725
49         * except.c (build_throw): In a template, set
50         current_function_returns_abnormally.
52 2004-01-17  Fred Fish  <fnf@intrinsity.com>
54         PR c++/11895
55         * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
56         except don't call array_type_nelts() with a VECTOR_TYPE.
58 2004-01-16  Jan Hubicka  <jh@suse.cz>
60         * mangle.c (write_mangled_name): Remove inline modifier.
62 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
64         PR c++/13574
65         * decl.c (compute_array_index_type): Fix grammar in comment.
66         * init.c (build_zero_init): Handle zero-sized arrays correctly.
68         PR c++/13178
69         * call.c (name_as_c_string): Print conversion operator names
70         correctly.
72         PR c++/13478
73         * call.c (initialize_reference): Pass -1 for inner parameter to
74         convert_like_real.
76 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
78         PR c++/13407
79         * parser.c (cp_parser_base_specifier): Check for an invalid
80         keyword `typename' and emit an user-friendly error message.
82 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
84         PR pch/13361
85         * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
86         (handle_pragma_implementation): Likewise.
88 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
90         PR c++/9259
91         * typeck.c (build_class_member_access_expr): Allow to access members
92         of the currently open class.
93         (finish_class_member_access_expr): Likewise.
95 2004-01-15  Alexandre Oliva  <aoliva@redhat.com>
97         PR c++/13659
98         * name-lookup.c (validate_nonmember_using_decl): Take scope and
99         name by value, instead of computing them.
100         (do_local_using_decl, do_toplevel_using_decl): Add scope and name
101         arguments.  Pass them to validate_nonmember_using_decl.
102         * name-lookup.h (do_local_using_decl): Adjust.
103         (do_toplevel_using_decl): Likewise.
104         * parser.c (cp_parser_using_declaration): Likewise.
105         * pt.c (tsubst_expr): Likewise.
107 2004-01-15  Alexandre Oliva  <aoliva@redhat.com>
109         PR c++/13594
110         PR c++/13658
111         * name-lookup.c (qualified_lookup_using_namespace): Search
112         strongly-associated namespaces first, and only then try other
113         namespaces.
115 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
117         * Make-lang.in (c++.srcextra): Dummy entry.
119 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
121         PR c++/8856
122         * parser.c (cp_parser_template_name): Don't try to parse a 
123         conversion-function-id, as it cannot be a template-name.
124         (cp_parser_simple_type_specifier): Check for invalid template-ids
125         even after a built-in type.
127 2004-01-14  Jan Hubicka  <jh@suse.cz>
129         PR c++/12850
130         * pt.c (instantiate_decl):  Do not increase function_depth.
132 2004-01-14  Danny Smith  <dannysmith@users,sourceforge.net>
134         PR c++/9021
135         PR c++/11005
136         * parser.c (cp_parser_elaborated_type_specifier): Warn about
137         attributes and discard.
138         * decl.c (xref_tag): Don't overwite existing attributes with
139         NULL_TREE.
141 2004-01-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
143         PR c++/12335
144         * parser.c (cp_parser_lookup_name): Return error_mark_node if there
145         is no destructor while looking up a BIT_NOT_EXPR.
147 2004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>
149         * cxxfilt.c: Remove unused file.
151 2004-01-14  Jan Hubicka  <jh@suse.cz>
153         Partial fix to PR c++/12850
154         * decl2.c (mark_used): Do not proactively instantiate templates
155         when compiling in unit-at-a-time or not optimizing.
156         * optimize.c (maybe_clone_body): Do not increase function depth.
158 2004-01-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
160         PR c++/13474
161         * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
163 2003-01-12  Steven Bosscher  <stevenb@suse.de>
165         PR c++/13558
166         * parser.c (cp_parser_member_declaration): Any non-type is also
167         not a class or a function.
169 2004-01-12  Jason Merrill  <jason@redhat.com>
171         PR c++/12815
172         * class.c (build_base_path): Do not mark vtable references as
173         TREE_CONSTANT.
174         (build_vtbl_ref_1): Likewise.
176 2004-01-12  Richard Henderson  <rth@redhat.com>
178         PR opt/10776
179         * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
180         (store_init_value): Use it.
181         * decl.c (check_initializer): Expect full initialization code
182         from store_init_value.
183         * init.c (expand_aggr_init_1): Likewise.
184         * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
186 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
188         * class.c (layout_class_type): For non-POD class types, also copy
189         the DECL_SIZE and DECL_MODE of fields to the base class type.
191 2004-01-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
193         PR c++/13289
194         * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
195         calling regenerate_decl_from_template.
197 2004-01-12  Scott Brumbaugh  <scottb.lists@verizon.net>
199         PR c++/4100
200         * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
201         decl-specifier occurring along with a class definition.
203 2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
205         * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
206         clauses to comments describing declares_class_or_enum.
207         (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
208         false.
210 2004-01-12  Jan Hubicka  <jh@suse.cz>
212         * pt.c (for_each_template_parm): Do not check for duplicates.
213         (for_each_template_parm): Use walk_tree duplicate checking code.
215 2004-01-11  Ian Lance Taylor  <ian@wasabisystems.com>
217         PR c++/3478
218         * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
219         is error_mark_node, don't add any more decl_specs.
220         (cp_parser_init_declarator): After committing to a declaration, if
221         the decl_specifiers start with error_mark_node, issue an error and
222         change the type to "int".
224 2004-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
226         PR bootstrap/7817
227         * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
229 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
231         DR 337
232         PR c++/9256
233         * pt.c (tsubst): Substitution must fail if we are attempting to 
234         create an array with element type that is an abstract class type.
235         * decl.c (cp_finish_decl): Strip pointers and array types recursively
236         before calling abstract_virtuals_error.
238 2004-01-09  Alexandre Oliva  <aoliva@redhat.com>
240         * name-lookup.c (qualified_lookup_using_namespace): Consider
241         strong using directives even if we've already found a binding.
243 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
245         * cp-tree.h (cxx_expand_expr): Change prototype.
246         * expr.c (cxx_expand_expr): Add alt_rtl parameter.
248 2004-01-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
250         PR c++/12573
251         * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
252         looking into them recursively. They can be there because of the
253         new __offsetof__ extension.
255 2004-01-07  Zack Weinberg  <zack@codesourcery.com>
257         * parser.c (cp_parser_save_member_function_body): Mark the
258         definition static.
260 2004-01-05  Mark Mitchell  <mark@codesourcery.com>
262         PR c++/13057
263         * class.c (build_clone): Copy type attributes from the original
264         function to the clone.
266         PR c++/12815
267         * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
268         references as constant.
270         PR c++/12132
271         * parser.c (cp_parser_explicit_instantiation): Improve error
272         recovery.
273         (cp_parser_require): Improve indication of the error location.
275         PR c++/13451
276         * parser.c (cp_parser_class_head): Reorder logic to check for
277         invalid qualification.
279 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
281         PR c++/13157
282         * name-lookup.c (lookup_using_namespace): Remove spacesp
283         parameter.
284         (unqualified_namespace_lookup): Likewise.
285         (lookup_qualified_name): Adjust accordingly.
286         (lookup_name_real): Likewise.
287         (lookup_arg_dependent): Do not eliminate the namespace of the
288         functions found by unqualified name lookup unless that is the
289         current namespace.
291 2004-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
293         * semantics.c (push_deferring_access_checks): Fix format.
294         (resume_deferring_access_checks): Likewise.
295         (stop_deferring_access_checks): Likewise.
296         (pop_deferring_access_checks): Likewise.
297         (get_deferred_access_checks): Likewise.
298         (pop_to_parent_deferring_access_checks): Likewise.
299         (perform_deferred_access_checks): Likewise.
300         (perform_or_defer_access_check): Likewise.
302 2004-01-04  Richard Henderson  <rth@redhat.com>
304         * call.c (build_over_call): Don't create a save_expr of an
305         aggregate, but rather its address.
307 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
309         PR c++/13529
310         * parser.c (cp_parser_postfix_expression): Allow "." to appear in
311         an offsetof expression.
313         * parser.c (cp_parser_parameter_declaration): Fix comment.
315         PR c++/12226
316         * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
317         (reference_binding): Set it when appropriate.
318         (build_temp): New function, split out from ...
319         (convert_like_real): ... here.  Honor CHECK_COPY_CONSTRUCTOR_P.
320         (initialize_reference): Likewise.
322         PR c++/13536
323         * parser.c (cp_parser): Add in_type_id_in_expr_p.
324         (cp_parser_new): Initialize it.
325         (cp_parser_postfix_expression): Set it.
326         (cp_parser_sizeof_operand): Likewise.
327         (cp_parser_parameteR_declaration): Do not commit early to tenative
328         parsers when in_type_id_in_expr_p is set.
330 2004-01-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
332         PR c++/13094
333         * parser.c (cp_parser_template_argument): Don't call
334         make_unbound_class_template directly.
335         (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
336         UNBOUND_CLASS_TEMPLATE tree node.
338 2004-01-02  Richard Sandiford  <rsandifo@redhat.com>
340         PR target/12729
341         * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
343 2004-01-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
345         PR c++/13520
346         * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
347         (DECL_FUNCTION_TEMPLATE_P): Use it.
348         (DECL_CLASS_TEMPLATE_P): Likewise.
349         * parser.c (cp_parser_lookup_name): Add is_template parameter.
350         (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
351         (cp_parser_template_name): Likewise.
352         (cp_parser_elaborated_type_specifier): Likewise.
353         (cp_parser_namespace_name): Likewise.
354         (cp_parser_class_name): Likewise.
355         (cp_parser_lookup_name_simple): Likewise.
357 See ChangeLog.3 for earlier changes.