1 2004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4 * pt.c (instantiate_class_template): Add an error_mark_node
6 (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
8 2004-01-23 Andrew Pinski <pinskia@physics.uc.edu>
11 * decl.c (finish_function): Move the call to
12 finish_fname_decls below the call to
15 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
17 * optimize.c, typeck2.c: Update copyright.
19 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
21 * Make-lang.in, call.c, class.c, decl2.c, except.c, expr.c,
22 init.c, mangle.c, typeck.c: Update copyright.
24 2004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
26 * parser.c (cp_parser_class_specifier): Prevent garbage collection.
28 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
30 * Make-lang.in: Replace $(docdir) with doc.
31 (c++.info, c++.srcinfo): Dummy entry.
32 (c++.man, c++.srcman): New rules.
33 (c++.install-man): Revamp rule.
35 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
37 * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
38 CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
39 immediate $(shell) instead of deferred backquote.
41 2004-01-19 Mark Mitchell <mark@codesourcery.com>
44 * parser.c (cp_parser_postfix_expression): When encountering
45 incomplete type on left-hand side of "->" or ".", treat the entire
46 expression as erroneous.
49 * call.c (build_field_call): Remove.
50 (n_build_method_call): Likewise.
51 (build_method_call): Likewise.
52 (build_new_method_call): Do not call build_field_call.
53 * class.c (n_build_method_call): Remove.
54 (print_class_statistics): Do not print it.
55 * cp-tree.h (build_method_call): Remove declaration.
56 (finish_object_call_expr): Likewise.
57 (build_new_1): Do not use build_method_call.
58 * parser.c (cp_parser_postfix_expression): Use finish_call_expr
59 when the function appearing on the right-hand-side of "." or "->"
60 is not actually a function.
61 * pt.c (tsubst_copy_and_build): Likewise.
62 * semantics.c (finish_object_call_expr): Remove.
64 2004-01-18 Mark Mitchell <mark@codesourcery.com>
67 * pt.c (tsubst): Use finish_typeof.
69 2004-01-16 Jason Merrill <jason@redhat.com>
72 * except.c (build_throw): In a template, set
73 current_function_returns_abnormally.
75 2004-01-17 Fred Fish <fnf@intrinsity.com>
78 * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
79 except don't call array_type_nelts() with a VECTOR_TYPE.
81 2004-01-16 Jan Hubicka <jh@suse.cz>
83 * mangle.c (write_mangled_name): Remove inline modifier.
85 2004-01-16 Mark Mitchell <mark@codesourcery.com>
88 * decl.c (compute_array_index_type): Fix grammar in comment.
89 * init.c (build_zero_init): Handle zero-sized arrays correctly.
92 * call.c (name_as_c_string): Print conversion operator names
96 * call.c (initialize_reference): Pass -1 for inner parameter to
99 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
102 * parser.c (cp_parser_base_specifier): Check for an invalid
103 keyword `typename' and emit an user-friendly error message.
105 2004-01-15 Geoffrey Keating <geoffk@apple.com>
108 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
109 (handle_pragma_implementation): Likewise.
111 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
114 * typeck.c (build_class_member_access_expr): Allow to access members
115 of the currently open class.
116 (finish_class_member_access_expr): Likewise.
118 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
121 * name-lookup.c (validate_nonmember_using_decl): Take scope and
122 name by value, instead of computing them.
123 (do_local_using_decl, do_toplevel_using_decl): Add scope and name
124 arguments. Pass them to validate_nonmember_using_decl.
125 * name-lookup.h (do_local_using_decl): Adjust.
126 (do_toplevel_using_decl): Likewise.
127 * parser.c (cp_parser_using_declaration): Likewise.
128 * pt.c (tsubst_expr): Likewise.
130 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
134 * name-lookup.c (qualified_lookup_using_namespace): Search
135 strongly-associated namespaces first, and only then try other
138 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
140 * Make-lang.in (c++.srcextra): Dummy entry.
142 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
145 * parser.c (cp_parser_template_name): Don't try to parse a
146 conversion-function-id, as it cannot be a template-name.
147 (cp_parser_simple_type_specifier): Check for invalid template-ids
148 even after a built-in type.
150 2004-01-14 Jan Hubicka <jh@suse.cz>
153 * pt.c (instantiate_decl): Do not increase function_depth.
155 2004-01-14 Danny Smith <dannysmith@users,sourceforge.net>
159 * parser.c (cp_parser_elaborated_type_specifier): Warn about
160 attributes and discard.
161 * decl.c (xref_tag): Don't overwite existing attributes with
164 2004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
167 * parser.c (cp_parser_lookup_name): Return error_mark_node if there
168 is no destructor while looking up a BIT_NOT_EXPR.
170 2004-01-13 Ian Lance Taylor <ian@wasabisystems.com>
172 * cxxfilt.c: Remove unused file.
174 2004-01-14 Jan Hubicka <jh@suse.cz>
176 Partial fix to PR c++/12850
177 * decl2.c (mark_used): Do not proactively instantiate templates
178 when compiling in unit-at-a-time or not optimizing.
179 * optimize.c (maybe_clone_body): Do not increase function depth.
181 2004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
184 * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
186 2003-01-12 Steven Bosscher <stevenb@suse.de>
189 * parser.c (cp_parser_member_declaration): Any non-type is also
190 not a class or a function.
192 2004-01-12 Jason Merrill <jason@redhat.com>
195 * class.c (build_base_path): Do not mark vtable references as
197 (build_vtbl_ref_1): Likewise.
199 2004-01-12 Richard Henderson <rth@redhat.com>
202 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
203 (store_init_value): Use it.
204 * decl.c (check_initializer): Expect full initialization code
205 from store_init_value.
206 * init.c (expand_aggr_init_1): Likewise.
207 * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
209 2004-01-12 Mark Mitchell <mark@codesourcery.com>
211 * class.c (layout_class_type): For non-POD class types, also copy
212 the DECL_SIZE and DECL_MODE of fields to the base class type.
214 2004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
217 * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
218 calling regenerate_decl_from_template.
220 2004-01-12 Scott Brumbaugh <scottb.lists@verizon.net>
223 * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
224 decl-specifier occurring along with a class definition.
226 2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
228 * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
229 clauses to comments describing declares_class_or_enum.
230 (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
233 2004-01-12 Jan Hubicka <jh@suse.cz>
235 * pt.c (for_each_template_parm): Do not check for duplicates.
236 (for_each_template_parm): Use walk_tree duplicate checking code.
238 2004-01-11 Ian Lance Taylor <ian@wasabisystems.com>
241 * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
242 is error_mark_node, don't add any more decl_specs.
243 (cp_parser_init_declarator): After committing to a declaration, if
244 the decl_specifiers start with error_mark_node, issue an error and
245 change the type to "int".
247 2004-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
250 * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
252 2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
256 * pt.c (tsubst): Substitution must fail if we are attempting to
257 create an array with element type that is an abstract class type.
258 * decl.c (cp_finish_decl): Strip pointers and array types recursively
259 before calling abstract_virtuals_error.
261 2004-01-09 Alexandre Oliva <aoliva@redhat.com>
263 * name-lookup.c (qualified_lookup_using_namespace): Consider
264 strong using directives even if we've already found a binding.
266 2004-01-09 Mark Mitchell <mark@codesourcery.com>
268 * cp-tree.h (cxx_expand_expr): Change prototype.
269 * expr.c (cxx_expand_expr): Add alt_rtl parameter.
271 2004-01-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
274 * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
275 looking into them recursively. They can be there because of the
276 new __offsetof__ extension.
278 2004-01-07 Zack Weinberg <zack@codesourcery.com>
280 * parser.c (cp_parser_save_member_function_body): Mark the
283 2004-01-05 Mark Mitchell <mark@codesourcery.com>
286 * class.c (build_clone): Copy type attributes from the original
287 function to the clone.
290 * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
291 references as constant.
294 * parser.c (cp_parser_explicit_instantiation): Improve error
296 (cp_parser_require): Improve indication of the error location.
299 * parser.c (cp_parser_class_head): Reorder logic to check for
300 invalid qualification.
302 2004-01-04 Mark Mitchell <mark@codesourcery.com>
305 * name-lookup.c (lookup_using_namespace): Remove spacesp
307 (unqualified_namespace_lookup): Likewise.
308 (lookup_qualified_name): Adjust accordingly.
309 (lookup_name_real): Likewise.
310 (lookup_arg_dependent): Do not eliminate the namespace of the
311 functions found by unqualified name lookup unless that is the
314 2004-01-04 Andrew Pinski <pinskia@physics.uc.edu>
316 * semantics.c (push_deferring_access_checks): Fix format.
317 (resume_deferring_access_checks): Likewise.
318 (stop_deferring_access_checks): Likewise.
319 (pop_deferring_access_checks): Likewise.
320 (get_deferred_access_checks): Likewise.
321 (pop_to_parent_deferring_access_checks): Likewise.
322 (perform_deferred_access_checks): Likewise.
323 (perform_or_defer_access_check): Likewise.
325 2004-01-04 Richard Henderson <rth@redhat.com>
327 * call.c (build_over_call): Don't create a save_expr of an
328 aggregate, but rather its address.
330 2004-01-04 Mark Mitchell <mark@codesourcery.com>
333 * parser.c (cp_parser_postfix_expression): Allow "." to appear in
334 an offsetof expression.
336 * parser.c (cp_parser_parameter_declaration): Fix comment.
339 * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
340 (reference_binding): Set it when appropriate.
341 (build_temp): New function, split out from ...
342 (convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P.
343 (initialize_reference): Likewise.
346 * parser.c (cp_parser): Add in_type_id_in_expr_p.
347 (cp_parser_new): Initialize it.
348 (cp_parser_postfix_expression): Set it.
349 (cp_parser_sizeof_operand): Likewise.
350 (cp_parser_parameteR_declaration): Do not commit early to tenative
351 parsers when in_type_id_in_expr_p is set.
353 2004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
356 * parser.c (cp_parser_template_argument): Don't call
357 make_unbound_class_template directly.
358 (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
359 UNBOUND_CLASS_TEMPLATE tree node.
361 2004-01-02 Richard Sandiford <rsandifo@redhat.com>
364 * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
366 2004-01-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
369 * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
370 (DECL_FUNCTION_TEMPLATE_P): Use it.
371 (DECL_CLASS_TEMPLATE_P): Likewise.
372 * parser.c (cp_parser_lookup_name): Add is_template parameter.
373 (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
374 (cp_parser_template_name): Likewise.
375 (cp_parser_elaborated_type_specifier): Likewise.
376 (cp_parser_namespace_name): Likewise.
377 (cp_parser_class_name): Likewise.
378 (cp_parser_lookup_name_simple): Likewise.
380 See ChangeLog.3 for earlier changes.