]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
* lex.c (java_lex): Check for `e' or `E' after 0.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
0e902d98
KL
12002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2
3 PR c++/7347, c++/7348
4 * cp-tree.h (tsubst_flags_t): Add tf_parsing.
5 * decl.c (make_typename_type): Use it.
6 (make_unbound_class_template): Likewise.
7 (lookup_name_real): Don't call type_access_control if scope is
8 template parameter dependent.
9 * parse.y (template_arg): Call make_unbound_class_template with
10 tf_parsing set.
11 (nest_name_specifier): Call make_typename_type with tf_parsing set.
12 (typename_sub0): Likewise.
13 (typename_sub1): Likewise.
14 (instantiate_decl): Push class scope.
15 * pt.c (regenerate_decl_from_template): Call pushclass and popclass
16 for both static variable and member function template.
17 (instantiate_decl) Call pushclass and popclass when tsubst'ing type
18 and arguments.
19 * search.c (type_access_control): Do type access for TEMPLATE_DECL
20 too.
21
b886c620
RS
222002-07-20 Roger Sayle <roger@eyesopen.com>
23
24 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions
25 test by using positive_option. Make whitespace consistent.
26
7a561142
GDR
272002-07-20 Gabriel Dos Reis <gdr@nerim.net>
28
29 * spew.c (struct uinparsed_test): Replace 'filename' and 'lineno'
30 members with 'locus'. Adjust use throughout.
31 (struct feed): Likewise.
32 (alloc_unparsed_test): Change prototype, take a 'const location_t *'.
33 Adjust use.
34 (snarf_defarg): Use error(), not error_with_file_and_line().
35
059ba716
CD
362002-07-19 Chris Demetriou <cgd@broadcom.com>
37
38 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever
39 cpp_options is included.
40
d955f6ea
KL
412002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
42
43 PR c++/2862, c++/2863
44 * pt.c (determine_specialization): Compare the length of
45 TYPE_ARG_TYPES. Tidy.
46
d03d18e8
KL
472002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
48
49 PR c++/3797
50 * decl.c (duplicate_decls): Don't propagate inlining parameters from
51 olddecl to newdecl when newdecl is a specialization of the
52 instantiation olddecl.
53
ba59df78
KL
542002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
55
56 PR c++/4802, c++/5387
57 * decl.c (make_typename_type): Use enforce_access.
58
58f05188
SS
592002-07-17 Scott Snyder <snyder@fnal.gov>
60
61 PR c++/7320
62 * rtti.c (get_tinfo_decl): Set DECL_COMDAT.
63
04ec0065
MM
642002-07-12 Mark Mitchell <mark@codesourcery.com>
65
66 * class.c (add_method): Correct handling of conversion operators.
67
f0ab6bf2
MM
682002-07-11 Mark Mitchell <mark@codesourcery.com>
69
70 PR c++/7224
71 * class.c (add_method): Simplify.
72
34902e16
JM
732002-07-11 Jason Merrill <jason@redhat.com>
74
75 PR c++/7279
76 * tree.c (cp_copy_res_decl_for_inlining): Also copy
77 TREE_ADDRESSABLE.
78
6e04241f
GS
792002-07-10 Graham Stott <graham.stott@btinternet.com>
80
81 * pt.c (template_parm_this_level_p, push_template_decl_real):
82 Pass depth as int pointer.
83
8ac9d31f
TJ
842002-07-11 Tim Josling <tej@melbpc.org.au>
85
86 Remove front end hard coding from gengtype.c.
87
88 * config-lang.in (gtfiles): Add files needed for this front end.
89
15c7fb9c
MM
902002-07-10 Mark Mitchell <mark@codesourcery.com>
91
92 * cp-tree.h (unqualified_name_lookup_error): Declare it.
93 (begin_function_definition): Adjust prototype.
94 * lex.c (unqualified_name_lookup_error): New function, split out
95 from ...
96 (do_identifier): ... here.
97 * parse.y (parse_begin_function_definition): New function.
98 (fn.def1): Use it.
99 * semantics.c (begin_function_definition): Accept decl-specifiers
100 and attributes as separate parameters.
101
abf92e26
JM
1022002-07-10 Jason Merrill <jason@redhat.com>
103
104 PR c++/6255
105 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
106 modifying the old one.
107
8ba658ee
MM
1082002-07-09 Mark Mitchell <mark@codesourcery.com>
109
110 * cp-tree.h (constructor_name_p): Declare it.
111 (check_template_template_default_arg): Likewise.
112 * class.c (handle_using_decl): Use constructor_name_p.
113 * decl.c (grokdeclarator): Likewise.
114 * decl2.c (constructor_name_p): Define it.
115 * init.c (build_member_call): Use constructor_name_p.
116 * parse.y (template_parm): Use check_template_template_default_arg.
117 * pt.c (check_explicit_specialization): Use constructor_name_p.
118 * semantics.c (check_template_template_default_arg): New function.
119
d5372501
KL
1202002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
121
122 * pt.c (can_complete_type_without_circularity): Add static to
123 function definition.
124
594bb0e7
MM
1252002-07-08 Mark Mitchell <mark@codesourcery.com>
126
127 * cp-tree.h (have_extern_spec): Declare it
128 * decl.c (have_extern_spec): Define it.
129 (start_decl): Eliminate use of used_extern_spec.
130 (start_function): Likewise.
131 * parse.y (have_extern_spec): Remove declaration.
132 (used_extern_spec): Likewise.
133 (frob_specs): Eliminate use of used_extern_spec.
134 (.hush_warning): Likewise.
135
eb8845be
MM
1362002-07-07 Mark Mitchell <mark@codesourcery.com>
137
138 * Make-lang.in (cp/parse.o): Depend on decl.h.
139 * cp-tree.h (do_decl_instantiation): Change prototype.
140 * parse.y: Include decl.h.
141 (parse_decl_instantiation): New function.
142 (explicit_instantiation): Use it.
143 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
144 and DECLSPECS.
145
78abea27
RS
1462002-07-07 Roger Sayle <roger@eyesopen.com>
147
148 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
149 constructor and destructor tests when passed a TEMPLATE_DECL.
150
98c07d7b
JM
1512002-07-05 Jason Merrill <jason@redhat.com>
152
212e17fd
JM
153 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null
154 pointers.
155
98c07d7b
JM
156 PR optimization/7145
157 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
158
c6f553d1
NS
1592002-07-05 Nathan Sidwell <nathan@codesourcery.com>
160
161 Repair damage on weak-impared targets caused by my previous patch.
162 * cp-tree.h (import_export_tinfo): Add parameter.
163 * decl2.c (import_export_tinfo): Add parameter, post adjust
164 DECL_COMDAT.
165 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
166 import_export_tinfo.
167
b2153b98
KL
1682002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
169
170 PR c++/6944
171 * init.c (build_aggr_init): Remove qualifiers of init before calling
172 build_vec_init.
173 (build_vec_init): Flatten multi-dimensional array during cleanup.
174 (build_vec_delete_1): Abort if the type of each element is array.
175
492ff760
GS
1762002-07-03 Graham Stott <graham.stott@btinternet.com>
177
178 * pt.c (instantiate_class_template): Fix typo.
179
04c4491d
KL
1802002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
181
06728f70
KL
182 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
183 by CVS conflict in my last patch.
04c4491d 184
17f29637
KL
1852002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
186
187 PR c++/6716
188 * pt.c (can_complete_type_without_circularity): New function.
189 (instantiate_class_template): Use it.
06728f70
KL
190 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error
191 message due to incomplete fields.
17f29637 192
5d69ba1f
MM
1932002-07-01 Mark Mitchell <mark@codesourcery.com>
194
195 PR c++/7112
196 * mangle.c (write_expression): Add mangling for sizeof when
197 applied to a type.
198 * operators.def: Remove stale comment.
199
d689a8f1
NS
2002002-06-30 Nathan Sidwell <nathan@codesourcery.com>
201
202 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
203 (CPTI_TYPE_INFO_PTR_TYPE): ... this.
204 (tinfo_decl_type): Replace with ...
205 (type_info_ptr_type): ... this.
206 (import_export_tinfo): Declare.
207 (tinfo_decl_p): Rename to ...
208 (unemitted_tinfo_decl_p): ... this.
209 * decl2.c (import_export_decl): Break out tinfo handling into ...
210 (import_export_tinfo): ... here. New function.
211 (finish_file): Adjust.
212 * rtti.c (TINFO_REAL_NAME): New macro.
213 (init_rtti_processing): Create the tinfo types.
214 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
215 (get_tinfo_decl): Adjust.
216 (get_tinfo_ptr): New function.
217 (get_type_id): Use it.
218 (tinfo_base_init): Create vtable decl here, if it doesn't exist.
219 (ptr_initializer): Use get_tinfo_ptr.
220 (ptm_initializer): Likewise.
221 (synthesize_tinfo_var): Break into ...
222 (get_pseudo_ti_init): ... this. Just create the initializer.
223 (get_pseudo_ti_desc): .. and this.
224 (create_real_tinfo_var): Remove.
225 (create_pseudo_type_info): Don't create the vtable decl here.
226 (get_vmi_pseudo_type_info): Remove.
227 (create_tinfo_types): Adjust.
228 (tinfo_decl_p): Rename to ...
229 (unemitted_tinfo_decl_p): ... here. Adjust.
230 (emit_tinfo_decl): Adjust. Create the initializer.
231
5ce49b4b
MM
2322002-06-27 Mark Mitchell <mark@codesourcery.com>
233
234 PR c++/6695
235 * pt.c (tsubst_friend_class): Substitute into the context of the
236 friend before using it.
237
88e5899c
MM
2382002-06-26 Mark Mitchell <mark@codesourcery.com>
239
240 * cp-tree.h (xref_tag): Change prototype.
241 (handle_class_head): Likewise.
242 (build_x_component_ref): Likewise.
243 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
244 (xref_tag): Take attributes as a separate parameter.
245 (xref_tag_from_type): Adjust call to xref_tag.
246 * decl2.c (build_expr_from_tree): Adjust call to
247 build_x_component_ref.
248 (handle_class_head): Take attributes as a separate parameter.
249 * parse.y (parse_xref_tag): New function.
250 (parse_handle_class_head): Likewise.
251 (primary): Use parse_xref_tag.
252 (class_head_decl): Use parse_handle_class_head.
253 (class_head_defn): Likewise.
254 * rtti.c (init_rtti_processing): Adjust call to xref_tag.
255 (build_dynamic_cast_1): Likewise.
256 (create_pseudo_type_info): Likewise.
257 (emit_support_tinfos): Likewise.
258 * typeck.c (build_object_ref): Adjust call to
259 build_x_component_ref.
260 (build_x_component_ref): Remove protect parameter.
261
da15dae6
MM
2622002-06-25 Mark Mitchell <mark@codesourcery.com>
263
264 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
265 * class.c (handle_using_decl): Likewise.
266 (instantiate_type): Likewise.
267 * cp-tree.h (BASELINK_FUNCTIONS): New macro.
268 (xref_basetypes): Change prototype.
269 (begin_mem_initializers): New function.
270 (get_overloaded_fn): Likewise.
271 * decl.c (xref_basetypes): Simplify.
272 * error.c (dump_expr): Use BASELINK_FUNCTIONS.
273 * init.c (build_offset_ref): Likewise.
274 * parse.y (base_init): Use begin_mem_initializers().
275 (structsp): Adjust call to xref_basetypes.
276 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
277 (instantiate_class_template): Adjust call to xref_basetypes.
278 * semantics.c (begin_mem_initializers): New function.
279 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
280 (really_overlaoded_fn): Likewise.
281 (get_overloaded_fn): New function.'
282 (get_first_fn): USe BASELINK_FUNCTIONS.
283
5f261ba9
MM
2842002-06-24 Mark Mitchell <mark@codesourcery.com>
285
286 * cp-tree.h (SCALAR_TYPE_P): New macro.
287 (check_for_out_of_scope_variable): New function.
288 (at_class_scope_p): Likewise.
289 (finish_fname): Likewise.
290 * class.c (finish_struct): Use at_function_scope_p.
291 * decl.c (check_for_out_of_scope_variable): New function, split
292 out from do_identifier.
293 (finish_enum): Use at_function_scope_p.
294 * lex.c (do_identifier): Use check_for_out_of_scope_variable.
295 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname.
296 (primary): Use at_function_scope_p.
297 * search.c (at_class_scope_p): New function.
298 * semantics.c (finish_fname): Likewise.
299 (check_multiple_declarators): Use at_function_scope_p.
300
80b1331c
MM
3012002-06-23 Mark Mitchell <mark@codesourcery.com>
302
303 * parse.y (parse_scoped_id): New function.
304 (primary): Use it.
305 * cp-tree.h (do_scoped_id): Adjust declaration.
306 * lex.c (do_scoped_id): Remove call to yylex.
307 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
308 * typeck2.c (add_exception_specifier): Use tree_cons, rather than
309 expanding it inline.
310
08c7ae5a
MT
3112002-06-23 Matt Thomas <matt@3am-software.com>
312
313 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to
314 "#if VMS_TARGET".
315
eb6b51b9
KG
3162002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
317
318 * mangle.c (integer_type_codes): Const-ify.
319
aa8dea09
RH
3202002-06-20 Richard Henderson <rth@redhat.com>
321
322 PR c++/6747
323 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
324 Call put_var_into_stack.
325
62c71f4b
KG
3262002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
327
328 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
329 array size calculation.
330
aa16c0fa
KL
3312002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
332
333 PR c++/6892
334 * pt.c (tsubst_expr): Handle FILE_STMT.
335
342cea95
KL
3362002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
337
338 PR c++/6723
339 * pt.c (lookup_template_class): Don't build complete argument of
340 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
341 argument.
342
84d901be
AD
3432002-06-19 Akim Demaille <akim@epita.fr>
344
345 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
346 decl.h's TYPENAME.
347 * spew.c, lex.c: Adjust.
348 * parse.y (explicit_instantiation): Add empty action to override
349 the default $$ = $1 where it introduces a type clash.
350
83b14b88
JM
3512002-06-14 Jason Merrill <jason@redhat.com>
352
18ba380b
JM
353 * semantics.c (begin_for_stmt): Push the 'for' scope before
354 adding the FOR_STMT.
355
83b14b88
JM
356 C++ ABI changes.
357 * class.c (build_base_field): Set DECL_PACKED.
358 (layout_class_type): Don't use tail padding of PODs.
359 * mangle.c (write_unqualified_name): Fix template conversion op
360 mangling.
361
fd852454
RH
3622002-06-16 Richard Henderson <rth@redhat.com>
363
364 PR opt/6793
365 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
366 after template instantiation.
367
750491fc
RH
3682002-06-16 Richard Henderson <rth@redhat.com>
369
370 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
371
f7d3c5f0
GDR
3722002-06-15 Gabriel Dos Reis <gdr@codesourcery.com>
373
374 * cp-tree.h (compiler_error): Remove declaration.
375 * lex.c (compiler_error): Remove definition.
376
893a047c
SE
3772002-06-14 Steve Ellcey <sje@cup.hp.com>
378
379 * g++spec.c (LIBUNWIND): New.
380 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
381
a6f5e048
RH
3822002-06-13 Jessica Han <jessica@cup.hp.com>
383
384 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
385 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
386 (build_vbase_offset_vtbl_entries): Likewise.
387 * rtti.c (build_headof): Likewise.
388 (get_tinfo_decl_dynamic): Likewise.
389 (create_pseudo_type_info): Likewise.
390
e4dadd2a
SS
3912002-06-12 Stan Shebs <shebs@apple.com>
392
393 * mpw-config.in: Remove file, no longer used.
394 * mpw-make.sed: Ditto.
395
09e77dee
ZW
3962002-06-07 Zack Weinberg <zack@codesourcery.com>
397
398 * decl2.c: Update call to cpp_handle_option.
399
4bafaa6f
L
4002002-06-07 H.J. Lu (hjl@gnu.org)
401
402 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
403
3cb8660c
GDR
4042002-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
405
406 * error.c (cp_error_at): Fix typo.
407
47b69537
GDR
4082002-06-04 Gabriel Dos Reis <gdr@codesourcery.com>
409
410 * error.c (cp_diagnostic_starter): Adjust call.
411 (maybe_print_instantiation_context): Change prototype to take a
412 'diagnostic_info *'.
413 (print_instantiation_full_context): Likewise.
414 (print_instantiation_partial_context): Likewise.
415 (cp_diagnostic_starter): Likewise.
416 (cp_diagnostic_finalizer): Likewise.
417 (cp_print_error_function): Likewise.
418 (cp_printer): Take a secondary parameter as a 'text_info *'.
419 Remove output_state savings. Adjust calls.
420
e2500fed
GK
4212002-06-03 Geoffrey Keating <geoffk@redhat.com>
422
423 * pt.c (inline_parm_levels): Mark for GC.
424
425 * mangle.c (start_mangling): Allocate G.substitutions here...
426 (init_mangle): ... rather than here.
427 (finish_mangling): Clear the varray pointer when done with it.
84d901be
AD
428 * spew.c (yylexstring): Don't use VARRAY_FREE.
429 * search.c (bfs_walk): Don't use VARRAY_FREE.
e2500fed
GK
430 * decl2.c (pending_statics): Use gengtype to mark.
431 (deferred_fns): Likewise.
432 (ssdf_decls): Likewise.
433 (init_decl2): Delete.
434 * decl.c (pop_from_top_level): Don't use VARRAY_FREE.
435 (cxx_init_decl_processing): Don't call init_decl2.
436 (cxx_pop_function_context): Don't use VARRAY_FREE.
437 * cp-tree.h (struct saved_scope): No need for special marking
438 of varrays.
439 (struct language_function): Likewise.
440 (local_classes): Use gengtype to mark.
441 (init_decl2): Delete prototype.
442 * class.c (init_class_processing): Don't use
443 ggc_add_tree_varray_root.
444 (build_vtbl_initializer): Don't use VARRAY_FREE.
445
446 * decl.c (typename_compare): Don't use same_type_p.
447
448 * decl.c: Include hashtab.h instead of hash.h.
449 (typename_hash): Update to use htab_h.
450 (typename_compare): Likewise.
451 (typename_htab): Use gengtype to mark.
452 (build_typename_type): Update to use htab_h.
453 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
454
455 * Make-lang.in (gt-cp-tree.h): New rule.
456 (cp/tree.o): Depend on gt-cp-tree.h.
457 * config-lang.in (gtfiles): Add cp/tree.c.
458 * tree.c: Include gt-cp-tree.h.
459 (list_hash_table): Use gengtype to mark.
460 (init_tree): Use gengtype to mark trees.
461
462 * Make-lang.in (cp/decl.o): Add debug.h dependency.
463 * call.c (struct z_candidate): Use gengtype.
464 (USER_CONV_CAND): Use WRAPPER_ZC.
465 (convert_class_to_reference): Use build_zc_wrapper.
466 (build_type_conversion_1): Likewise.
467 (build_over_call): Use WRAPPER_ZC.
468 (add_warning): Use build_zc_wrapper.
469 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
470 * cp-tree.h (struct lang_identifier): Use gengtype.
471 (struct template_parm_index_s): Likewise.
472 (struct ptrmem_cst): Likewise.
473 (struct tree_binding): Likewise.
474 (struct tree_overload): Likewise.
475 (struct tree_srcloc): Likewise.
476 (struct tree_wrapper): Likewise. Also modify to have a pointer
477 to struct z_candidate rather than void.
478 (enum cp_tree_node_structure_enum): New.
479 (union lang_tree_node): New.
480 (cxx_mark_tree): Delete prototype.
481 (cp_tree_node_structure): New prototype.
482 (build_ptr_wrapper): Delete prototype.
483 (build_int_wrapper): Delete prototype.
484 (build_zc_wrapper): New prototype.
485 * decl.c: Include debug.h
486 (cxx_mark_tree): Delete.
487 (cp_tree_node_structure): New.
488 * tree.c (build_ptr_wrapper): Delete.
489 (build_int_wrapper): Delete.
490 (build_zc_wrapper): New.
491
492 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
493 Correct typo. Patch from k_fukui@highway.ne.jp.
494
495 * semantics.c (current_stmt_tree): Update for change to
496 struct language_function.
497 (finish_mem_initializers): Likewise.
498 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
499 * cp-tree.h (struct language_function): Rename from
500 cp_language_function. Change all uses.
501 (cp_function_chain): Don't need to cast.
502
503 * class.c (duplicate_tag_error): Reset discriminator.
504 (check_bases_and_members): Update for data structure changes.
505 * cp-tree.h (struct lang_id2): Use gengtype.
506 (flagged_type_tree): Likewise.
507 (SET_LANG_ID): Use GGC on struct lang_id2.
508 (struct cp_language_function): Use gengtype. Remove field
509 'x_vcalls_possible_p'.
510 (current_vcalls_possible_p): Delete.
511 (struct lang_type_header): New.
512 (struct lang_type_class): Rename from struct lang_type. Include
513 struct lang_type_header.
514 (struct lang_type_ptrmem): New.
515 (struct lang_type): New.
516 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros.
517 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros.
518 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
519 (struct lang_decl_flags): Use gengtype. Add discriminators.
520 (struct lang_decl): Use gengtype. Add and use discriminators.
521 Update the macros that reference moved fields.
522 (LANG_DECL_U2_CHECK): New function. Use it when appropriate.
523 (SET_DECL_THUNK_P): Set discriminator too.
524 (clear_inline_text_obstack): Delete prototype.
525 (finish_inline_definitions): Delete prototype.
526 (mark_pending_inlines): Delete prototype.
527 (lang_check_failed): New prototype.
528 * decl.c (struct named_label_use_list): Use gengtype.
529 (struct named_label_list): Likewise.
530 (mark_binding_level): Delete.
531 (mark_named_label_lists): Delete.
532 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
533 (cxx_init_decl_processing): Use generated marker routine.
534 (begin_destructor_body): Delete dead set to
535 current_vcalls_possible_p.
536 (mark_lang_function): Delete.
537 (mark_cp_function_context): Delete.
538 (lang_mark_tree): Use generated marker routines.
539 * decl2.c (start_objects): Set discriminator when setting
540 GLOBAL_INIT_PRIORITY.
541 * lex.c (retrofit_lang_decl): Set discriminators.
542 (copy_lang_type): Update for changes to lang_type structure.
543 (cp_make_lang_type): Set discriminator.
544 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers.
545 * search.c: Include ggc.h.
546 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
547 (finish_inline_definitions): Delete.
548 * spew.c (struct token): Use gengtype.
549 (struct token_chunk): New.
550 (struct unparsed_text): Use gengtype. Store tokens in chunks.
551 (struct feed): Use gengtype.
552 (feed_obstack): Delete.
553 (feed): Mark as GC root.
554 (pending_inlines): Mark as GC root.
555 (pending_inlines_tail): Likewise.
556 (processing_these_inlines): Likewise.
557 (token_obstack): Make static.
558 (first_token): Likewise.
559 (init_spew): Don't initialise deleted things; use gengtype for roots.
560 (clear_inline_text_obstack): Delete.
561 (feed_input): Use GC for struct feed. Update for changes to
562 struct unparsed_text.
563 (mark_pending_inlines): Delete.
564 (next_token): Rename from add_token. Change all callers. Update
565 for changes to struct unparsed_text.
566 (space_for_token): New.
567 (remove_last_token): New.
568 (alloc_unparsed_text): New.
569 (snarf_block): Take an unparsed_text. Update for changes to struct
570 unparsed_text.
571 (snarf_method): Update for changes to struct unparsed_text.
572 (snarf_defarg): Update for changes to struct unparsed_text.
573 * tree.c (lang_check_failed): New.
574
575 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
576 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
577 (cp/spew.o): Add dependency on gt-<filename>.h.
578 (cp/decl2.o): Add dependency on gt-<filename>.h.
579 (cp/call.o): Add dependency on gt-<filename>.h.
580 (cp/pt.o): Add dependency on gt-<filename>.h.
581 (cp/repo.o): Add dependency on gt-<filename>.h.
582 (cp/parse.o): Add dependency on gt-<filename>.h.
583 * call.c: Use gengtype for roots.
584 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
585 decl2.c parse.y pt.c repo.c spew.c.
586 * cp-tree.h: Use gengtype for roots.
587 (struct saved_scope): Use GGC, gengtype.
588 (cp_parse_init): Delete prototype.
589 (init_pt): Delete prototype.
590 * decl.c: Use gengtype for roots.
591 (mark_saved_scope): Delete.
592 (cxx_init_decl_processing): Don't call deleted initilisation
593 routines.
594 (signed_size_zero_node): Delete, unused.
595 * decl.h: Use gengtype for roots.
596 * decl2.c: Use gengtype for roots.
597 * lex.h: Use gengtype for roots.
598 * parse.y: Use gengtype for roots.
599 (cp_parse_init): Delete.
600 * pt.c: Use gengtype for roots.
601 (init_pt): Delete.
602 * repo.c: Use gengtype for roots.
603 * spew.c: Use gengtype for roots.
604
605 * Make-lang.in: Allow for filename changes. Add gtype-cp.h.
606 (cp/decl.o): Add dependency on gtype-cp.h.
607 * decl.c: Remove use of add_deletable_root, use GTY marker instead.
608 Include gtype-cp.h. Allow for filename changes.
609
610 * Make-lang.in (cp/gt-decl.h): Generate using gengtype.
611 (cp/decl.o): Add cp/gt-decl.h dependency.
612 * config-lang.in (gtfiles): New.
613 * tree.h: Rename struct binding_level to struct cp_binding_level.
614 * decl.c: Rename struct binding_level to struct cp_binding_level.
615 Include cp/gt-decl.h.
616 (struct cp_binding_level): Use gengtype.
617 (make_binding_level): Use GGC on struct cp_binding_level.
618 (mark_binding_level): Use gt_ggc_m_cp_binding_level.
619 (cxx_init_decl_processing): Mark free_binding_level as
620 deletable.
621
622 * decl.c (mark_cp_function_context): Update calling sequence.
623
624 * decl.c (start_function): Don't free 'struct
625 cp_language_function'.
626 (pop_cp_function_context): Likewise.
627 (save_function_data): Allocate it using GC.
628 * semantics.c (genrtl_start_function): Don't free 'struct
629 cp_language_function'.
630
8b968bd1
MW
6312002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
632
633 * lang-specs.h: Use cpp_debug_options.
634
11ad4784
ZW
6352002-05-28 Zack Weinberg <zack@codesourcery.com>
636
637 * mangle.c, tree.c: Include real.h.
638 * Make-lang.in: Update dependency lists.
639
81a75f0f
NB
6402002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
641
642 * lex.c: Don't include c-lex.h.
643 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
644
a97d1398
NB
6452002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
646
647 * spew.c (yyungetc, snarf_block): Remove indent_level handling.
648
6f001fdf
RH
6492002-05-22 Richard Henderson <rth@redhat.com>
650
651 * decl.c (obscure_complex_init): Check for VAR_DECL
652 before using DECL_THREAD_LOCAL.
653
7a1f3f5f
RH
6542002-05-22 Richard Henderson <rth@redhat.com>
655
656 * decl.c (check_tag_decl): Handle RID_THREAD.
657 (obscure_complex_init): Reject run-time init of tls.
658 (grokvardecl, grokdeclarator): Handle RID_THREAD.
659 * lex.c (reswords): Add __thread.
660 (rid_to_yy): Map RID_THREAD to SCSPEC.
661
e5f3b786
NB
6622002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
663
664 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
665 * cp-tree.h (cxx_post_options): Kill.
666 * cp-lex.c (cxx_post_options): Kill.
667
3d78f2e9
RH
6682002-05-21 Richard Henderson <rth@redhat.com>
669
670 * lex.c (rid_to_yy): Add RID_THREAD.
671
c8a3d889
AO
6722002-05-21 Alexandre Oliva <aoliva@redhat.com>
673
674 * init.c (build_vec_init): Test for trivial copy-assignment when
675 copy-assigning arrays.
676
500abaa8
AJ
6772002-05-20 Andreas Jaeger <aj@suse.de>
678
679 * init.c (build_default_init): Remove unused variable.
680
ecc42c14
AO
6812002-05-20 Alexandre Oliva <aoliva@redhat.com>
682
683 * call.c (any_strictly_viable): New.
684 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
685
4e664ef1
KL
6862002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
687
688 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
689
07782718
KL
6902002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
691
692 PR c++/186, DR 259
693 * pt.c (do_decl_instantiation): Don't complain explicit
694 instantiation after explicit specialization.
695 (do_type_instantiation): Likewise.
696
23b4deba
AO
6972002-05-19 Alexandre Oliva <aoliva@redhat.com>
698
699 * cp-tree.h (complete_type_or_diagnostic): Changed prototype,
700 renamed from...
701 (complete_type_or_else): ... this. Redefined as macro.
702 (cxx_incomplete_type_diagnostic): Declare.
703 (cxx_incomplete_type_error): Define as macro.
704 * init.c (build_delete): Warn about incomplete types other than
705 void, and use the built-in operator delete for them.
706 * typeck.c (complete_type_or_diagnostic): Renamed from
707 complete_type_or_else. Added warn_only argument, passed to...
708 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print
709 warnings or errors depending on new warn_only argument. Renamed
710 from...
711 (cxx_incomplete_type_error): ... this. New implementation in
712 terms of cxx_incomplete_type_diagnostic.
713
b41d214e
JM
7142002-05-18 Jason Merrill <jason@redhat.com>
715
98c07d7b 716 PR c++/6611
b41d214e
JM
717 * decl2.c (import_export_decl): If we clear
718 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
719
e2005c8d
KL
7202002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
721
722 PR c++/6620
723 * pt.c (verify_class_unification): Don't check if PARM is template
724 parameter dependent. Simplify.
725 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
726 parameter dependent expression.
727
ff48be5c
JM
7282002-05-14 Jason Merrill <jason@redhat.com>
729
730 * rtti.c (get_tinfo_decl): Don't call comdat_linkage.
731 Do set DECL_COMDAT.
732 (synthesize_tinfo_var): Take the public decl.
733 (create_real_tinfo_var): Likewise. Check DECL_COMDAT.
734 (emit_tinfo_decl): Adjust. Call import_export_decl.
735 * decl2.c (import_export_decl): Simplify tinfo decl handling.
736
94e6e4c4
AO
7372002-05-14 Alexandre Oliva <aoliva@redhat.com>
738
739 * cp-tree.h (struct lang_type): Added non_zero_init.
0fe1cd70 740 (CLASSTYPE_NON_ZERO_INIT_P): New macro.
94e6e4c4
AO
741 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
742 * class.c (check_field_decls): Test non_zero_init.
743 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
744 zero-to-NULL conversions.
745 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
746 type that needs zero-initialization without zeros.
747 (check_initializer_decl): Compute zero-initializer for types
748 that require a non-trivial one.
749 * init.c (build_forced_zero_init): New function.
750 (build_default_init): Use it.
751 * tree.c (zero_init_p): New function.
752 * typeck2.c (force_store_init_value): New function.
753 (process_init_constructor): Create non-trivial zero-initializers
754 for array members and class fields.
755
e5f5feea
NB
7562002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
757
758 * lang-specs.h: Remove redundant -lang-c++.
759
f63ab951
JM
7602002-05-13 Jason Merrill <jason@redhat.com>
761
762 * class.c (build_vtbl_ref_1): Use fixed_type_or_null.
763 (fixed_type_or_null): See through reference vars.
764 (build_base_path): Vtable contents are constant.
765 * typeck.c (get_member_function_from_ptrfunc): Likewise.
766
0d08ea48
JM
7672002-05-12 Jason Merrill <jason@redhat.com>
768
769 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
770 structs are safe.
771
3df89291
NB
7722002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
773
774 * cp-tree.h (flag_ansi): Remove.
775 * decl2.c (flag_ansi): Remove.
776 (cxx_decode_option): Set flag_iso and flag_undef.
777
c87978aa
JM
7782002-05-09 Jason Merrill <jason@redhat.com>
779
780 * typeck.c (get_member_function_from_ptrfunc): Reorganize.
781 Use subtraction rather than a bitmask to get the index.
782 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
783
784 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
785
a5a49440
NB
7862002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
787
788 * Make-lang.in (decl2.o): Update.
789 * cp-tree.h (warn_multichar): Remove.
790 * decl2.c: Include c-common.h.
791 (warn_multichar): Remove.
792
609688f3
JM
7932002-05-03 Jason Merrill <jason@redhat.com>
794
0abc082a
JM
795 * tree.c (build_cplus_array_type): Only const and volatile get
796 special handling.
797
609688f3
JM
798 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
799
8b16faa2
MM
8002002-04-30 Mark Mitchell <mark@codesourcery.com>
801
394ab947 802 ABI change, returning simple classes from functions.
8b16faa2
MM
803 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
804 TYPE_HAS_TRIVIAL_INIT_REF is false or
805 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
806
ac905924
JM
8072002-04-30 Jason Merrill <jason@redhat.com>
808
2cb008af 809 PR debug/6436
ac905924
JM
810 * decl.c (grokdeclarator): Don't override TYPE_NAME of an
811 anonymous class with a typedef if there are attributes.
812
e6e81f1c 8132002-04-29 Paul Eggert <eggert@twinsun.com>
b819d9e0 814
e6e81f1c 815 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
b819d9e0 816
3a73bffb
JJ
8172002-04-29 Jakub Jelinek <jakub@redhat.com>
818
819 PR c++/6477
820 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
821 non-NULL first.
822
33dd07ee
MM
8232002-04-29 Mark Mitchell <mark@codesourcery.com>
824
825 PR c++/6492
826 * pt.c (tsubst_friend_class): If the friend has an explicit scope,
827 enter that scope before name lookup.
828
829 PR c++/6486
830 * method.c (do_build_copy_constructor): Avoid building
831 cv-qualified reference types.
500abaa8 832
4bd7c270
NS
8332002-04-29 Nathan Sidwell <nathan@codesourcery.com>
834
835 PR c++/5719
500abaa8 836 * decl.c (grok_op_properties): Assignment ops don't have to return
4bd7c270
NS
837 by value. operator% should.
838
45806a3f
FS
8392002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
840
841 PR c/6343
842 * decl.c (duplicate_decls): Call merge_weak.
843
94a50397
RH
8442002-04-26 Richard Henderson <rth@redhat.com>
845
846 * parse.y (malloced_yyss, malloced_yyvs): New.
847 (yyoverflow): Re-add. Set them.
848 (free_parser_stacks): New.
849
7d793e9b
MM
8502002-04-26 Mark Mitchell <mark@codesourcery.com>
851
852 PR c++/6497
853 * method.c (do_build_assign_ref): Pass a derivation to
854 build_method_call when calling base class assignment operators.
855
bde3c0c0
RH
8562002-04-26 Richard Henderson <rth@redhat.com>
857
858 * parse.y (yyoverflow): Revert.
859
b84a3874
RH
8602002-04-26 Richard Henderson <rth@redhat.com>
861
862 PR c/3581
863 * parse.y (string): Remove. Update all uses to use STRING
864 instead, and not call combine_strings.
865 * rtti.c (tinfo_name): Use fix_string_type.
866 * semantics.c (finish_asm_stmt): Don't call combine_strings.
867 * spew.c (yylexstring): New.
868 (read_token): Use it.
869
6052bef0
RH
8702002-04-25 Richard Henderson <rth@redhat.com>
871
872 PR c/2161
873 * parse.y (yyoverflow): New.
874
8d1f0f67
JM
8752002-04-25 Jason Merrill <jason@redhat.com>
876
877 PR c++/5607
878 * search.c (check_final_overrider): No longer static.
879 * class.c (update_vtable_entry_for_fn): Call it.
880 * cp-tree.h: Adjust.
881
ff45c01e
NB
8822002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
883
884 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
885 * cp-tree.h (cxx_set_yydebug): Die.
886 * lex.c (YYDEBUG): Get from c-lex.h.
887 (cxx_set_yydebug): Remove.
888 * parse.y: Include c-lex.h.
889 (YYDEBUG): Get from c-lex.h.
890
a62d375f
MM
8912002-04-24 Mark Mitchell <mark@codesourcery.com>
892
893 PR c++/6438.
894 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
895 void.
896
349ae713
NB
8972002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
898
899 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
900 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
901 Redefine.
902 * cp-tree.h (cp_attribute_table): Rename.
903 * decl.c (lang_attribute_table): Remove declaration.
904 (cxx_init_decl_processing): Don't set it.
905 * tree.c (cp_attribute_table): Rename.
906
b602511f
JM
9072002-04-24 Jason Merrill <jason@redhat.com>
908
985723ce
JM
909 PR c++/6331
910 * method.c (do_build_copy_constructor): Use cp_build_qualified_type.
911 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
a49cfba8
JM
912 The pedwarn for array assignment is now unconditional.
913 * tree.c (build_cplus_array_type_1): Still process simple array types
914 normally in templates.
985723ce 915
b602511f
JM
916 PR c++/6395
917 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
918 stuff for comdats.
919
29cece2e
JJ
9202002-04-23 Jakub Jelinek <jakub@redhat.com>
921
922 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class
923 node with attributes.
924
515387dc
DB
9252002-2-23 David O'Brien <obrien@FreeBSD.org>
926
927 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
928 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
929
77adef84
MM
9302002-04-23 Mark Mitchell <mark@codesourcery.com>
931
932 PR c++/6256:
933 * pt.c (tsubst_friend_class): Handle templates with explicit
934 nested names.
935
936 PR c++/6331:
937 * typeck.c (merge_types): Remember the cv-qualification of pointer
938 types when merging them.
939
b03e38e1
NB
9402002-04-20 Neil Booth <neil@daikokuya.demon.co.uk>
941
942 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
943 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
944 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
945 cxx_mark_function_context): New.
946 * decl.c (push_cp_function_context, pop_cp_function_context,
947 mark_cp_function_context): Rename for consistency.
948 (cxx_init_decl_processing): Don't set old hooks.
949
ab393bf1
NB
9502002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
951
952 * call.c (convert_type_from_ellipsis): Rename, update.
953 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
954 * cp-tree.h (convert_type_from_ellipsis): Rename.
955 * decl.c (cxx_init_decl_processing): Don't set hook.
956
7a228918
NB
9572002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
958
959 * call.c (build_new_method_call): Update.
960 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
961 * cp-tree.h (cxx_incomplete_type_error): New.
962 * decl.c (grokdeclarator, grokparms): Update.
963 * decl2.c (check_classfn): Update.
964 * pt.c (tsubst): Update.
965 * typeck.c (complete_type_or_else, expr_sizeof,
966 decay_conversion): Update.
967 * typeck2.c (incomplete_type_error): Rename.
968 (add_exception_specifier): Update.
969
8152c320
JM
9702002-04-18 Jason Merrill <jason@redhat.com>
971
972 PR c++/5658
973 * search.c (setup_class_bindings): A class template qualifies as a
974 type binding.
975
32121b96
JJ
9762002-04-17 Jakub Jelinek <jakub@redhat.com>
977
978 PR c++/6316
979 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
980 before expanding.
981
b2123dc0
MM
9822002-04-16 Mark Mitchell <mark@codesourcery.com>
983
984 * init.c (begin_init_stmts): Remove commented out code.
985 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
986 * semantics.c (begin_gobal_stmt_expr): Adjust call to
987 expand_start_stmt_expr.
500abaa8 988
0f268005
MM
9892002-04-15 Mark Mitchell <mark@codesourcery.com>
990
991 * decl.c (register_dtor_fn): Pass the address of dso_handle, not
992 dso_handle itself, to __cxa_atexit.
993
bd6bec6b
GDR
9942002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
995
996 * error.c (cxx_print_error_function): Adjust call to macros.
997
0f490a2b
JJ
9982002-04-14 Jakub Jelinek <jakub@redhat.com>
999
1000 * class.c (layout_virtual_bases): Do all dsize computation on trees.
1001
85b7def6
JM
10022002-04-14 Jason Merrill <jason@redhat.com>
1003
1004 * typeck.c (get_member_function_from_ptrfunc): Don't do
1005 gratuitious division and multiplication on
1006 ptrmemfunc_vbit_in_delta targets.
1007
0481bc21
MM
10082002-04-12 Mark Mitchell <mark@codesourcery.com>
1009
1010 PR c++/5373.
1011 * semantics.c (finish_expr_stmt): Remember the type of the
1012 expression before any conversions are performed.
1013
9928a3d5
MM
10142002-04-12 Mark Mitchell <mark@codesourcery.com>
1015
1016 PR c++/5189.
1017 * call.c (add_template_candidate_real): Do not treat member
1018 templates as copy constructors.
1019
c740732f
MM
10202002-04-12 Mark Mitchell <mark@codesourcery.com>
1021
1022 * decl.c (duplicate_decls): Do not copy the RTL for a variable
1023 declaration if the old variable had an incomplete type and the new
1024 variable does not.
1025 (complete_vars): Do not call layout_decl for completed variables.
1026
4782bd5b
RS
10272002-04-12 Richard Sandiford <rsandifo@redhat.com>
1028
1029 * decl.c (duplicate_decls): Don't try to unify an implicit typedef
1030 with an explicit one.
1031 (follow_tag_typedef): New.
1032 (lookup_tag): Use it to extract the tag of an explicit typedef.
1033 (xref_tag): Likewise.
1034
2f4d058f
AH
10352002-04-11 Andrew Haley <aph@redhat.com>
1036
1037 * typeck.c (type_after_usual_arithmetic_conversions):
1038 If two types have the same variant, return immediately.
500abaa8 1039 When two floating-point operands are the same precision:
2f4d058f
AH
1040 convert to float if one of the operands is float;
1041 if neither operand is one of the standard types, return the type
1042 of the first operand.
500abaa8 1043
ba3307c0
NS
10442002-04-10 Nathan Sidwell <nathan@codesourcery.com>
1045
1046 PR c++/5507
1047 * decl.c (make_typename_type): Remove implicit typenameness.
1048
cd6af0c1
JM
10492002-04-09 Jason Merrill <jason@redhat.com>
1050
edf5cd1d
JM
1051 PR optimization/6189
1052 * semantics.c (genrtl_start_function): Don't free
1053 DECL_SAVED_FUNCTION_DATA for inline functions.
1054
cd6af0c1
JM
1055 * init.c (build_member_call): For now, don't convert to
1056 intermediate base if it would cause an error.
1057
224e6091
PC
10582002-04-08 Paolo Carlini <pcarlini@unitus.it>
1059
1060 * parse.y (namespace_qualifier, maybe_identifier,
1061 begin_explicit_instantiation, end_explicit_instantiation,
1062 apparent_template_type, .finish_template_type,
1063 do_id, maybe_init, defarg_again, component_decl_1):
1064 Add ending ';', in accordance with POSIX.
1065
0154eaa8
MM
10662002-04-06 Mark Mitchell <mark@codesourcery.com>
1067
1068 PR c++/5571
1069 * class.c (layout_class_type): Remember incomplete static
1070 variables.
1071 (finish_struct_1): Call complete_vars, not
1072 hack_incomplete_structures.
1073 * cp-tree.h (hack_incomplete_structures): Rename to ...
1074 (complete_vars): ... this.
1075 (struct saved_scope): Remove incomplete.
1076 (namespace_scope_incomplete): Remove.
1077 * decl.c (struct binding_level): Remove incomplete.
1078 (incomplete_vars): New variable.
1079 (mark_binding_level): Don't mark incomplete.
1080 (print_binding_level): Don't print it.
1081 (mark_saved_scope): Don't mark incomplete.
1082 (pushdecl): Use maybe_register_incopmlete_var.
1083 (cxx_init_decl_processing): Register incomplete_vars for GC.
1084 (start_decl_1): Clarify error message.
1085 (hack_incomplete_vars): Remove.
1086 (maybe_register_incomplete_var): New function.
1087 (complete_vars): Likewise.
1088
f62ea157
JM
10892002-04-06 Jason Merrill <jason@redhat.com>
1090
03da5286
JM
1091 PR c++/4934
1092 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
1093 set before checking it.
1094
a29e1034
JM
1095 PR c++/525
1096 * init.c (build_member_call): Use build_scoped_ref.
1097 (resolve_offset_ref): Likewise.
1098 * call.c (build_scoped_method_call): Likewise.
500abaa8 1099 * tree.c (maybe_dummy_object): Kludge around current_class_type being
a29e1034
JM
1100 wrong.
1101 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
1102 * cp-tree.h: Adjust.
500abaa8 1103
a29e1034
JM
1104 * init.c (push_base_cleanups): Just use build_scoped_method_call.
1105
f62ea157 1106 PR c++/6179
500abaa8 1107 * method.c (implicitly_declare_fn): Pass unqualified type to
f62ea157
JM
1108 synthesize_exception_spec.
1109
78ef5b89
NB
11102002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
1111
1112 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1113 * cvt.c: Update comment.
1114 * init.c (expand_cleanup_for_base): Update.
1115 * semantics.c (finish_parenthesized_expr): Update.
1116 * typeck.c (cp_truthvalue_conversion): Update.
1117
dffa4176
JM
11182002-04-04 Jason Merrill <jason@redhat.com>
1119
659e5a7a
JM
1120 * semantics.c (finish_eh_cleanup): New fn.
1121 * cp-tree.h: Add prototype.
500abaa8 1122 * init.c (perform_member_init, expand_cleanup_for_base): Use
659e5a7a
JM
1123 finish_eh_cleanup.
1124 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
1125 * cp-tree.h: Remove references.
1126 * decl.c (begin_constructor_body, end_constructor_body): Likewise.
1127 * dump.c (cp_dump_tree): Likewise.
1128 * pt.c (tsubst_expr): Likewise.
1129 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
1130 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
1131 * tree.c (cp_statement_code_p): Likewise.
1132
1133 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
1134
1135 PR c++/5636
1136 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
1137 cleanup for nrv.
1138
dffa4176
JM
1139 PR c++/5104
1140 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
1141 specifiers.
1142 [METHOD_TYPE]: Use same code as FUNCTION_TYPE.
1143
ef4f94ac
RH
11442002-04-03 Richard Henderson <rth@redhat.com>
1145
1146 * cp-lang.c (cxx_warn_unused_global_decl): New.
1147 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1148
599bba86
NB
11492002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
1150
1151 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
1152 * tree.c (init_tree): Don't set hook.
1153
cba2004a
RS
11542002-04-03 Roger Sayle <roger@eyesopen.com>
1155
1156 PR c++/5998:
1157 * decl.c (duplicate_decls): Don't mess with assembler names when
1158 redeclaring builtin functions as static.
1159
dffd7eb6
NB
11602002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1161
1162 * call.c (build_addr_func): Update.
1163 * class.c (resolve_address_of_overloaded_function): Update.
1164 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1165 * cp-tree.h (cxx_mark_addressable): New.
1166 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
1167 * decl2.c (build_cleanup): Update.
1168 * except.c (build_throw): Update.
1169 * init.c (resolve_offset_ref): Update.
1170 * pt.c (convert_nontype_argument): Update.
1171 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
1172 * typeck.c (decay_conversion, build_array_ref, build_unary_op,
1173 unary_complex_lvalue): Update.
1174 (mark_addressable): Rename.
1175
04a9d080
RS
11762002-04-01 Roger Sayle <roger@eyesopen.com>
1177
1178 PR c++/5998:
1179 * decl.c (duplicate_decls): Overwrite the RTL when (and only
1180 when) overwriting a built-in function. Don't use COPY_DECL_RTL,
1181 but follow the SET_DECL_RTL idiom used elsewhere in the function.
1182
ceef8ce4
NB
11832002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1184
1185 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1186 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1187 * decl.c (grokdeclarator): Update.
1188 * mangle.c (write_integer_cst): Update.
1189 * typeck.c (build_binary_op): Update.
1190
48a7a235
NB
11912002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
1192
1193 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1194 * lex.c (cxx_init): Don't set hook.
1195
7cb32822
NB
11962002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
1197
1198 * Make-lang.in (error.o): Update.
1199 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
1200 * cp-tree.h (struct diagnostic_context): Predeclare.
1201 (cxx_print_error_function): New.
1202 * error.c: Include langhooks-def.h.
1203 (lang_print_error_function): Rename. Update.
1204 (init_error): Don't set hook.
1205
b0c48229
NB
12062002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1207
1208 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1209 Redefine.
1210 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
1211 * decl.c (finish_enum): Similarly.
1212 * error.c (dump_type): Similarly.
1213 * lex.c (cxx_init): Similarly.
1214 * mangle.c (write_builtin_type): Similarly.
1215 * typeck.c (comptypes): Similarly.
1216
d52e4867
RS
12172002-03-28 Roger Sayle <roger@eyesopen.com>
1218
1219 PR c++/5998:
1220 * decl.c (cxx_init_decl_processing): Re-enable built-in functions
1221 in the g++ front-end.
1222 (duplicate_decl): Allow redefinition of anticipated built-ins.
1223 Fix inlining problem by over-writing the old DECL_RTL.
1224 (lookup_namespace_name): Fail to find an identifier in the
1225 specified namespace if its still anticipated.
1226 (builtin_function_1): New function split out from builtin_function
1227 to create a builtin in the current namespace with given context.
1228 (builtin_function): Call builtin_function_1 to define the
1229 appropriate builtins in both the std and global namespaces.
1230 (select_decl): Don't test for anticipated decls here.
1231 (unqualified_namespace_lookup): Instead ignore them whilst
1232 searching through scopes and namespaces.
1233 * decl2.c (do_nonmember_using_decl): If a using declaration
1234 specifies an anticipated built-in function, mark it as no longer
1235 anticipated in that scope.
1236 (ambiguous_decl): Avoid resolving to an anticipated decl.
1237 * lex.c (do_scoped_id): Fail to find an identifier in the global
1238 namespace if its still anticipated.
1239
f1e639b1
NB
12402002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1241
1242 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
1243 * cp-tree.h (cp_make_lang_type): Rename.
1244 * lex.c (cp_make_lang_type): Rename.
1245 (make_aggr_type): Update.
1246 * tree.c (init_tree): Don't set make_lang_type_fn.
1247
c7f4981a
JJ
12482002-03-29 Jakub Jelinek <jakub@redhat.com>
1249
1250 PR c++/6073
1251 * class.c (finish_struct_1): Update static field's DECL_MODE even
1252 if its type is a variant of t.
1253
7ffb4fd2
NB
12542002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1255
1256 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
1257 * cp-tree.h (cxx_insert_default_attributes): New.
1258 * decl.c (insert_default_attributes): Rename.
1259
cd4e8331
MM
12602002-03-27 Mark Mitchell <mark@codesourcery.com>
1261
1262 PR c++/4884
1263 * call.c (build_op_delete_call): Allow for the fact the placement
1264 may be a COMPOUND_EXPR.
500abaa8 1265
c9d892a8
NB
12662002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1267
1268 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1269 * cp-tree.h (init_cplus_expand): Remove.
1270 (cxx_expand_expr): New.
1271 * expr.c (cplus_expand_expr): Rename cxx_expand_expr,
1272 fix prototype.
1273 (init_cplus_expand): Remove.
1274 * lex.c (cxx_init): Don't call init_cplus_expand.
1275
46ff5047
MM
12762002-03-26 Mark Mitchell <mark@codesourcery.com>
1277
1278 PR c++/4884.
1279 * init.c (build_new_1): Allow for the fact the result of
1280 build_function_call may be a COMPOUND_EXPR.
1281
6d4c57a0
NS
12822002-03-26 Nathan Sidwell <nathan@codesourcery.com>
1283
1284 PR c++/5682
1285 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
1286 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
1287 (dfs_skip_nonprimary_vbases_markedp): Remove.
1288 * search.c (get_shared_vbase_if_not_primary): Remove.
1289 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
1290 (dfs_skip_nonprimary_vbases_markedp): Remove.
1291 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
1292 (dfs_marked_real_bases_queue_p): Likewise.
1293
4f0ade92
NB
12942002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
1295
1296 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1297 * cp-tree.h (cxx_mark_tree): New.
1298 * decl.c (lang_mark_tree): Rename cxx_mark_tree.
1299
c88770e9
NB
13002002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
1301
1302 * cp-tree.h (cxx_maybe_build_cleanup): New.
1303 * decl.c (destroy_local_var, hack_incomplete_structures): Update.
1304 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
1305 * tree.c (build_target_expr): Update.
7b3e5198 1306 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
c88770e9 1307
aaf93206
NB
13082002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
1309
1310 * decl2.c (cxx_decode_option): Handle -E.
1311 * lang-specs.h (default_compilers): Preprocess with cc1plus.
1312 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
1313
e756a7da
JJ
13142002-03-23 Jakub Jelinek <jakub@redhat.com>
1315
1316 PR c++/6037
1317 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
1318
ea9264e9
GDR
13192002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
1320
1321 * error.c (dump_type): Be careful about implicit typenames.
1322
acb044ee
GDR
13232002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
1324
1325 PR C++/3656
1326 * semantics.c (finish_base_specifier): Handle erronous base
500abaa8 1327 classes.
acb044ee 1328
b216cd4a
ZW
13292002-03-22 Zack Weinberg <zack@codesourcery.com>
1330
1331 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
1332 REAL_IS_NOT_DOUBLE.
1333
9181f8db
JK
13342002-03-22 Jeff Knaggs <jknaggs@redhat.com>
1335
cd6af0c1
JM
1336 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to
1337 an index into the vtable_entry array regardless of
9181f8db
JK
1338 TARGET_PTRMEMFUNC_VBIT_LOCATION.
1339
e019cf95
AH
13402002-03-21 Aldy Hernandez <aldyh@redhat.com>
1341
84d901be 1342 * tree.c (cp_cannot_inline_tree_fn): Same.
e019cf95 1343
43577e6b
NB
13442002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
1345
1346 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
1347 insert_block, getdecls, global_bindings_p): New.
1348
8c152bad
NS
13492002-03-20 Nathan Sidwell <nathan@codesourcery.com>
1350
1351 PR c++/4361
1352 * mangle.c (struct globals) Add internal_mangling_p member.
1353 (write_template_param): Do internal mangling, if needed.
1354 (mangle_conv_op_name_for_type): Request internal mangling.
1355
e3fe84e5
JM
13562002-03-20 Jason Merrill <jason@redhat.com>
1357
1358 PR c++/2136
1359 * init.c (build_delete): Check access for a member op delete here.
1360 * decl2.c (delete_sanity): Not here.
1361
ea122333
JM
13622002-03-19 Jason Merrill <jason@redhat.com>
1363
1364 PR c++/5118
1365 * class.c (get_vfield_name): Use the constructor_name.
1366
7afff7cf
NB
13672002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
1368
1369 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
1370 * cp-tree.h (lang_printable_name): Rename.
1371 * error.c (lang_decl_name): Use new hook.
1372 * lex.c (cxx_init): Remove old hook.
1373 * pt.c (tsubst_decl): Use new hook.
1374 * tree.c (lang_printable_name): Rename.
1375
ff77ac85
EB
13762002-03-18 Eric Botcazou <ebotcazou@multimania.com>
1377
1378 PR c++/3882
1379 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
1380 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
1381 only after recording the declaration.
1382
ffd696af
JM
13832002-03-18 Jason Merrill <jason@redhat.com>
1384
097955f2
JM
1385 PR c++/2039
1386 * init.c (resolve_offset_ref): Hand off to build_component_ref.
1387
b663bcf3
JM
1388 PR c++/4222, c++/5995
1389 * call.c (build_over_call): Fix empty class logic.
1390
0f4237c2
JM
1391 PR c++/3870
1392 * cp-tree.h (struct saved_scope): Add last_parms field.
1393 * decl.c (maybe_push_to_top_level): Save last_function_parms.
1394 (pop_from_top_level): Restore it.
1395
001ad76c
JM
1396 PR c++/4377
1397 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip
1398 NON_LVALUE_EXPRs.
1399
1400 PR c++/4003
ed2fa432
JM
1401 * pt.c (tsubst_friend_function): Use decl_namespace_context.
1402
ffd696af
JM
1403 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
1404 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
1405 type with a nontrivial destructor.
1406
f2606a97
JM
14072002-03-17 Jason Merrill <jason@redhat.com>
1408
1409 PR c++/4460
1410 * class.c (build_base_path): Virtual base layout is fixed in
1411 in-charge [cd]tors.
1412
52dabb6c
NB
14132002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
1414
1415 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
1416 * parse.y (yyparse): Remove macro.
1417
beb9c8a2
JM
14182002-03-17 Jason Merrill <jason@redhat.com>
1419
1420 PR c++/5757
1421 * init.c (build_new_1): Pass the right pointer to op delete.
1422
5dd236e2
NS
14232002-03-16 Nathan Sidwell <nathan@codesourcery.com>
1424
1425 PR c++/4361
1426 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
1427 conversion operators go.
1428 (struct lang_decl_flags): Add template_conv_p and unused
1429 bitfields.
1430 (DECL_TEMPLATE_CONV_FN_P): New macro.
1431 * call.c (build_user_type_conversion_1): Don't check second type
1432 conversion of overload set first.
1433 * class.c (add_method): Make sure templated conversion operators
1434 all end up on slot 2.
1435 * lex.c (do_identifier): A conversion operator token might be
1436 satisfied by a templated conversion operator.
5dd236e2
NS
1437 * pt.c (check_explicit_specialization): Use
1438 CLASSTYPE_FIRST_CONVERSION_SLOT.
1439 (template_parm_this_level_p): New function.
1440 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
8c152bad 1441 * search.c (lookup_fnfields_1): Template conversions will be on
5dd236e2
NS
1442 the first slot.
1443 * typeck.c (build_component_ref): Preserve the type of an
1444 conversion operator name on the overload type.
1445 (build_x_function_call): Retrieve the conversion operator name.
1446
0ba20759
RH
14472002-03-15 Richard Henderson <rth@redhat.com>
1448
1449 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
1450
6e4ae815
MM
14512002-03-15 Mark Mitchell <mark@codesourcery.com>
1452
1453 * cp-tree.h (CLEANUP_DECL): Remove.
1454 (CLEANUP_EXPR): Likewise.
1455 * decl.c (destroy_local_var): Simplify.
1456 (maybe_build_cleanup): Tidy.
1457 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
1458 * semantics.c (cp_expand_stmt): Likewise.
1459 * cp/tree.c (cp_statement_code_p): Likewise.
1460
5cc90635
JM
14612002-03-15 Jason Merrill <jason@redhat.com>
1462
6da794e8
JM
1463 PR c++/5857
1464 * decl.c (duplicate_decls): Use merge_types instead of common_type.
1465 * typeck.c (common_type): Just hand off to
1466 type_after_usual_arithmetic_conversions and
1467 composite_pointer_type.
1468 (merge_types): New fn.
1469 (commonparms): Use it instead of common_type.
1470 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
1471 (composite_pointer_type): Also handle attributes.
1472 * cp-tree.h: Declare merge_types.
1473
5cc90635
JM
1474 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
1475 variables.
1476 * decl2.c (maybe_make_one_only): Also mark the decl as needed.
1477
ecb0eece
RH
14782002-03-14 Richard Henderson <rth@redhat.com>
1479
1480 * decl.c: Include c-pragma.h.
1481 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
1482 * Make-lang.in: Update dependencies.
1483
d3f129b3
JJ
14842002-03-14 Jakub Jelinek <jakub@redhat.com>
1485
f6562b37 1486 PR c++/5908
d3f129b3
JJ
1487 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
1488 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
1489
049e6879
RS
14902002-03-12 Richard Sandiford <rsandifo@redhat.com>
1491
1492 * mangle.c (write_builtin_type): Handle 128-bit integers even if
1493 they are not a standard integer type.
1494
872c9284
RS
14952002-03-12 Richard Sandiford <rsandifo@redhat.com>
1496
1497 * cp-tree.h (init_init_processing): Remove declaration.
1498 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
1499 * decl.c (cxx_init_decl_processing): Don't call init_init_processing.
1500
2f9834e8
KG
15012002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1502
1503 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
1504 Define.
1505 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
1506 tree_code_length.
1507 * lex.c (cplus_tree_code_type, cplus_tree_code_length,
1508 cplus_tree_code_name): Delete.
1509 (cxx_init): Don't call add_c_tree_codes, instead set
1510 lang_unsafe_for_reeval. Don't try to copy into the various
1511 tree_code arrays.
1512
df867456
NS
15132002-03-12 Nathan Sidwell <nathan@codesourcery.com>
1514
1515 PR c++/5659
1516 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
1517 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
1518 definitions.
1519
ab04e34b
NS
15202002-03-11 Nathan Sidwell <nathan@codesourcery.com>
1521
1522 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>,
1523 DR209 is now not a defect.
1524 * cp-tree.h (skip_type_access_control): Remove.
1525 * decl.c (grokdeclarator): Do type access control for friend
1526 declarations.
1527 * semantics.c (decl_type_access_control): Don't reset
1528 current_type_lookups.
1529 (save_type_access_control): Always save the lookups.
1530 (skip_type_access_control): Remove.
1531 (finish_class_definition): Don't change type_lookups.
1532
999cc24c
NS
15332002-03-11 Nathan Sidwell <nathan@codesourcery.com>
1534
1535 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>,
1536 It is incorrect.
1537 * typeck.c (build_static_cast): Compare non-qualified types
1538 with pointer to member conversions.
1539
61eece67
DN
15402002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
1541 Daniel Berlin <dan@dberlin.org>
1542
1543 * cp-lang.c (ok_to_generate_alias_set_for_type): New function.
1544 (cxx_get_alias_set): Use it.
1545
644d28d4
KG
15462002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1547
1548 * cp-tree.h (stabilize_expr): Prototype.
1549
7e326356
CR
15502002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
1551
1552 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
1553 conditional return void.
1554
24965e7a
NB
15552002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
1556
1557 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
1558 * cp-tree.h (cxx_unsave): New.
1559 * tree.c (cp_unsave): Rename cxx_unsave, update prototype.
1560 (init_tree): Update.
1561
ca7558fc
KG
15622002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1563
1564 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
1565 explicit sizeof/sizeof.
1566 * decl2.c (cxx_decode_option): Likewise.
1567 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
1568
fd87b7a7
NS
15692002-03-02 Nathan Sidwell <nathan@codesourcery.com>
1570
1571 PR c++/775
1572 * decl.c (lookup_tag): Only reject enum/class mismatch, not
1573 class/union mismatch.
1574 * parse.y (check_class_key): New function.
1575 (structsp): Call it.
1576
bfba94bd
MM
15772002-03-01 Michael Matz <matz@suse.de>
1578
1579 * typeck.c (cp_pointer_int_sum): Complete inner type which is
1580 used later by size_in_bytes().
1581
fdc9bf29
PE
15822002-03-01 Phil Edwards <pme@gcc.gnu.org>
1583
1584 * cp-tree.h: Require __GNUC__ to be #defined.
1585 (build_init): Add missing prototype.
1586
6f30f1f1
JM
15872002-03-01 Jason Merrill <jason@redhat.com>
1588
1589 * except.c: Don't include decl.h or obstack.h. Do include
1590 tree-inline.h.
1591 (build_throw): Destroy temporaries from the thrown
500abaa8 1592 expression before calling __cxa_throw. Construct a thrown
6f30f1f1
JM
1593 temporary directly into the exception object.
1594 (stabilize_throw_expr): New function.
1595 (wrap_cleanups_r): New function.
1596 * tree.c (stabilize_expr): New function.
1597 * init.c (build_init): New function.
1598 * Make-lang.in (cp/except.o): Adjust .h deps.
1599
46cfb101
JM
16002002-02-28 Jason Merrill <jason@redhat.com>
1601
07f521fc
JM
1602 * search.c (lookup_base_r): Don't clear is_non_public just because
1603 we found a friendly scope.
1604
46cfb101
JM
1605 * decl.c (finish_function): Only warn about missing return
1606 statement with -Wreturn-type.
1607
63e1b1c4
NB
16082002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
1609
1610 * class.c (build_clone): Update.
1611 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
1612 * cp-tree.h (cxx_dup_lang_specific_decl): New.
1613 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
1614 (copy_decl): Update.
1615 * method.c (make_thunk): Update.
1616
f458d1d5
ZW
16172002-02-27 Zack Weinberg <zack@codesourcery.com>
1618
1619 * decl2.c: Delete traditional-mode-related code copied from
1620 the C front end but not used, or used only to permit the
1621 compiler to link.
1622
500abaa8 16232002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org>
3387d36e
CR
1624
1625 PR c++/4093
1626 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
1627 to void.
1628
25c8b645
JJ
16292002-02-22 Jakub Jelinek <jakub@redhat.com>
1630
1631 PR other/5746
1632 * semantics.c (finish_switch_cond): Don't call get_unwidened
1633 if error_mark_node.
1634
4f2b0fb2
NS
16352002-02-22 Nathan Sidwell <nathan@codesourcery.com>
1636
1637 PR c++/2645, DR 295
1638 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
1639 tf_keep_type_decl.
1640 (make_typename_type): Use tsubst_flags_t.
1641 * decl.c (make_typename_type): Adjust. Return non-artificial
1642 TYPE_DECLs, if required.
1643 (grokdeclarator): Simplify CVR qualification handling. Allow bad
1644 qualifiers on typedef types.
1645 * decl2.c (handle_class_head): Adjust make_typename_type call.
1646 * parse.y (nested_name_specifier): Likewise.
1647 (typename_sub0): Likewise.
1648 (typename_sub1): Likewise.
1649 * pt.c (convert_template_argument): Adjust make_typename_type
1650 return value.
1651 (tsubst): Adjust cp_build_qualified_type_real calls.
1652 (check_cv_quals_for_unify): Cope with alowing bad qualifications
1653 on template type parms.
1654 (instantiate_decl): Recheck substitutions to give warnings on bad
1655 qualifications.
1656 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
1657
8fc2ba41
AH
16582002-02-21 Aldy Hernandez <aldyh@redhat.com>
1659
84d901be 1660 * cp/decl.c (duplicate_decls): Merge always_inline attribute.
8fc2ba41 1661
84d901be
AD
1662 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
1663 unless DECL_ALWAYS_INLINE.
8fc2ba41 1664
7552da58
JJ
16652002-02-20 Jakub Jelinek <jakub@redhat.com>
1666
1667 * typeck.c (cp_pointer_int_sum): Renamed from
1668 pointer_int_sum, call pointer_int_sum.
1669
00fae85d
JJ
16702002-02-20 Jakub Jelinek <jakub@redhat.com>
1671
1672 * decl.c (duplicate_decls): Return 0 if issued error about
1673 redeclaration.
1674
6ea868b7
JM
16752002-02-19 Jason Merrill <jason@redhat.com>
1676
500abaa8 1677 ABI change: Mangle `void (A::*)() const' as
6ea868b7
JM
1678 M1AKFvvE, not MK1AFvvE.
1679 * mangle.c (write_function_type): Write cv-quals for member
1680 function type here.
1681 (write_pointer_to_member_type): Not here.
1682
c02f5e29
JM
16832002-02-18 Jason Merrill <jason@redhat.com>
1684
1685 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
1686 (do_decl_instantiation): Likewise.
1687
624a5800
CR
16882002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org>
1689
1690 PR c++/5685
1691 * decl.c (duplicate_decls): Make warning unconditional
1692 if duplicate default argument declarations are present.
1693
f6f8ada3
JJ
16942002-02-17 Jakub Jelinek <jakub@redhat.com>
1695
1696 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
1697 shortening.
1698
8d6e459d
NS
16992002-02-15 Nathan Sidwell <nathan@codesourcery.com>
1700
1701 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
1702 remove incorrect comment. Move #if 0'd code to common path. Use
1703 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
1704
ca4feb54
JM
17052002-02-13 Jason Merrill <jason@redhat.com>
1706
57d5032b
JM
1707 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
1708 (finish_function): Don't warn if current_function_returns_null.
1709
bb26522d
JM
1710 * typeck2.c (digest_init): Do handle values of vector type.
1711
ca4feb54
JM
1712 * typeck2.c (digest_init, process_init_constructor): Treat vectors
1713 like arrays.
1714
e6b9638b
JM
17152002-02-11 Jason Merrill <jason@redhat.com>
1716
1717 * parse.y (reserved_declspecs): Don't handle attributes.
1718 (reserved_typespecquals): Handle them here.
1719 * Make-lang.in (parse.c): Adjust expected conflicts.
1720
1cf537c5
JJ
17212002-02-08 Jakub Jelinek <jakub@redhat.com>
1722
1723 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
1724 instead of compstmt.
1725 (compstmt_or_stmtexpr): Renamed from compstmt.
1726 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
1727
c2ea3a40
NS
17282002-02-07 Nathan Sidwell <nathan@codesourcery.com>
1729
1730 Rename instantiate_type_flags to tsubst_flags_t & expand use.
1731 * cp-tree.h (instantiate_type_flags): Rename to ...
1732 (tsubst_flags_t): ... here. Rename itf_complain to tf_error,
1733 add tf_warning flag.
1734 (instantiate_type): Adjust prototype.
1735 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
1736 do_type_instantiation, cp_build_qualified_type_real): Likewise.
1737 cp_build_qualified_type: Adjust.
1738 * class.c (instantiate_type): Adjust parameter. Rename itf_* to
1739 tf_*.
1740 * call.c (standard_conversion): Rename itf_* to tf_*.
1741 (reference_binding): Likewise.
1742 (convert_like_real): Likewise.
1743 * cvt.c (cp_convert_to_pointer): Likewise.
1744 (convert_to_reference): Likewise.
1745 * decl.c (lookup_namespace_name): Use tf_* flags.
1746 (make_typename_type): Likewise.
1747 (grokdeclarator): Likewise.
1748 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
1749 (coerce_template_template_parms, convert_template_argument,
1750 coerce_template_parms, maybe_get_template_decl_from_type_decl,
1751 lookup_template_class, tsubst_friend_function, tsubst_friend_class,
500abaa8
AJ
1752 instantiate_class_template, tsubst_template_arg_vector,
1753 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
c2ea3a40 1754 tsubst_decl, tsubst_arg_types, tsubst_function_type,
500abaa8 1755 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
c2ea3a40 1756 instantiate_template, fn_type_unification,
500abaa8
AJ
1757 resolve_overloaded_unification, verify_class_unification,
1758 unify, get_bindings_real, do_type_instantiation,
1759 regenerate_decl_from_template, instantiate_decl,
c2ea3a40
NS
1760 tsubst_initializer_list, tsubst_enum,
1761 get_mostly_instantiated_function_type,
1762 invalid_nontype_parm_type_p): Likewise.
1763 * tree.c (cp_build_qualified_type_real): Likewise.
1764 * typeck.c (build_binary_op): Rename itf_* to tf_*.
1765 (build_ptrmemfunc): Likewise.
1766 (convert_for_assignment): Likewise.
1767
d5614afb
NS
17682002-02-07 Nathan Sidwell <nathan@codesourcery.com>
1769
1770 PR c++/109
1771 * decl.c (grokdeclarator): Allow friend declarations from
8d6e459d 1772 dependent types.
d5614afb
NS
1773 * decl2.c (handle_class_head): Don't push into template parm contexts.
1774 * pt.c (push_template_decl_real): Template parm contexts are never
1775 being defined.
1776
1af6141b
AO
17772002-02-05 Alexandre Oliva <aoliva@redhat.com>
1778
1779 * class.c: Include target.h.
1780 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
1781 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
1782 bit-field layout.
1783 * Make-lang.in: Adjust deps.
1784
d8a6f584
JM
17852002-02-05 Jason Merrill <jason@redhat.com>
1786
1787 * error.c (dump_type): Be more helpful about VECTOR_TYPE.
1788
6f9fdf4d
JJ
17892002-02-04 Jakub Jelinek <jakub@redhat.com>
1790
1791 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
1792 (finish_switch_cond): Set SWITCH_TYPE.
1793
14691f8d
RH
17942002-02-04 Richard Henderson <rth@redhat.com>
1795
1796 * method.c (use_thunk): Always initialize the block tree. Reindent.
1797 * semantics.c (expand_body): Emit thunks after function, not before.
1798
e89a6075
JM
17992002-02-04 Jason Merrill <jason@redhat.com>
1800
1801 * decl.c (start_function): Call cplus_decl_attributes immediately
1802 after grokdeclarator.
1803
1804 * decl.c (start_function): Combine DECL_RESULT handling code.
1805
9780c24f
JM
18062002-02-03 Jason Merrill <jason@redhat.com>
1807
1808 * xref.c: Remove.
1809 * Make-lang.in (CXX_OBJS): Remove cp/xref.o
1810 (cp/xref.o): Remove dependencies.
1811 * class.c (finish_struct_1, check_methods): Don't call xref fns.
1812 (finish_struct_1): Likewise.
1813 * friend.c (make_friend_class): Likewise.
1814 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
1815 * spew.c (read_process_identifier): Likewise.
1816
65f36ac8
JM
18172002-02-01 Jason Merrill <jason@redhat.com>
1818
efe49da0 1819 PR c++/4872
500abaa8 1820 * decl.c (finish_function): Warn about a non-void function with
efe49da0
JM
1821 no return statement and no abnormal exit.
1822 * cp-tree.h (struct cp_language_function): Add returns_abnormally.
1823 (current_function_returns_abnormally): New macro.
1824 * call.c (build_call): Set it.
1825
f2d9afec
JM
1826 * typeck.c (build_component_ref): Always complain about offsetof
1827 constructs on non-PODs. Only make it an error for members of
1828 virtual bases.
1829
65f36ac8
JM
1830 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
1831 (dump_function_decl): Always dump parms.
1832
1833 * decl2.c (finish_static_data_member_decl): Complain about a local
1834 class with a static data member.
1835
1836 PR c++/4286
1837 * search.c (lookup_field_1): Don't xref a static data member
1838 just because we looked it up.
1839
98884b26
JM
18402002-01-31 Jason Merrill <jason@redhat.com>
1841
b88c0704
JM
1842 * Make-lang.in (parse.c): Handle .output file.
1843
a588fe25
JM
1844 PR c++/3395
1845 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
1846 not TREE_TYPE.
1847 * semantics.c (finish_class_definition): Adjust.
1848
98884b26
JM
1849 Allow attributes in parms and casts.
1850 * parse.y (named_parm): Don't strip attrs.
1851 (declmods): Remove 'attributes' production.
1852 (nonempty_cv_qualifiers): Accept attributes.
1853 (ATTRIBUTE): Give precedence.
1854 * decl.c (groktypename): Handle attributes.
1855 (grokparms): Likewise.
1856
ffdeea47
JJ
18572002-01-29 Jakub Jelinek <jakub@redhat.com>
1858
1859 * decl2.c (cxx_decode_option): Pass 0 as last argument to
1860 cpp_handle_option.
1861 * lang-specs.h: Use cpp_unique_options instead of cpp_options
1862 when used together with cc1_options.
1863
b8b98c66
NS
18642002-01-29 Nathan Sidwell <nathan@codesourcery.com>
1865
1866 PR c++/5132
1867 * typeck2.c (digest_init): Make sure non-array core type is
1868 instantiated.
1869 * decl2.c (reparse_absdcl_as_casts): Just store the type in the
1870 constructor, rather than build a new one.
1871 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the
1872 PURPOSE of constructor elts.
1873
7437519c
ZW
18742002-01-23 Zack Weinberg <zack@codesourcery.com>
1875
1876 * Make-lang.in (parse.c): Adjust expected number of
1877 shift-reduce conflicts.
1878 (decl.o): Depend on diagnostic.h.
1879 * decl.c: Include diagnostic.h.
1880 (grokdeclarator): Check for null pointer.
1881 (finish_function): Don't abort when
1882 current_binding_level->parm_flag != 1, if errors have
1883 occurred; throw away the statement tree and extra binding
1884 levels, and continue.
1885 * lex.c (note_list_got_semicolon): Check for null pointer.
1886 * method.c (hack_identifier): Just return error_mark_node if
1887 value is error_mark_node.
1888 * parse.y (primary: TYPEID(type_id)): No need to use
1889 TYPE_MAIN_VARIANT here.
1890 (handler_seq): Accept an empty list of catch clauses and
1891 generate a fake handler block to avoid later crashes.
1892 (ansi_raise_identifier): Accept the error token too.
1893 * semantics.c (begin_class_definition,
1894 finish_class_definition): Check for error_mark_node.
1895
c588e52b
ZW
18962002-01-23 Zack Weinberg <zack@codesourcery.com>
1897
1898 * typeck2.c (friendly_abort): Delete definition.
1899 * cp-tree.h (friendly_abort): Don't prototype.
1900 (my_friendly_assert): Use fancy_abort.
1901
d55ecaa4
CR
19022002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
1903
1904 * cp-tree.h (my_friendly_abort): Remove.
1905
0a01c261
JJ
19062002-01-23 Jakub Jelinek <jakub@redhat.com>
1907
1908 * spew.c (pending_inlines, pending_inlines_tail,
1909 processing_these_inlines): Make static.
1910 (mark_pending_inlines): Remove static.
1911 (begin_parsing_inclass_inline): If in function, save pi
1912 for GC to cp_function_chain->unparsed_inlines instead.
1913 (process_next_inline): Likewise.
1914 * cp-tree.h (struct cp_language_function): Add unparsed_inlines.
1915 (mark_pending_inlines): Add prototype.
1916 * decl.c (spew_debug): Remove unused extern.
1917 (mark_lang_function): Call mark_pending_inlines.
1918
a98facb0
CR
19192002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
1920
c588e52b
ZW
1921 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
1922 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
1923 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
a98facb0
CR
1924 Change my_fancy_abort() to abort().
1925
f893c16e
JM
19262002-01-23 Jason Merrill <jason@redhat.com>
1927
608afcc5
JM
1928 PR c++/5453
1929 * class.c (fixed_type_or_null): Fix thinko.
1930
f893c16e
JM
1931 PR c++/3331
1932 * init.c (resolve_offset_ref): Use build_indirect_ref.
6bc34b14 1933
b2115575
JM
1934 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
1935
f893c16e
JM
19362002-01-22 Jason Merrill <jason@redhat.com>
1937
b5856475
JM
1938 * parse.y (function_body): Suppress the block for the outermost
1939 curly braces.
1940 * decl.c (pushdecl): Don't try to skip it.
1941 (begin_function_body): Keep the block we create, not the next one.
1942 * init.c (emit_base_init): Don't mess with keep_next_level.
1943
6bc34b14
JM
1944 * class.c (build_base_path): Tweak formatting.
1945
3807621a
NS
19462002-01-19 Nathan Sidwell <nathan@codesourcery.com>
1947
1948 Fix regression introduced with patch for c++/775
1949 * parse.y (class_head_defn): Check for template specializations
1950 with a different class-key.
1951
cdd2559c
JM
19522002-01-17 Jason Merrill <jason@redhat.com>
1953
1954 * decl.c (begin_constructor_body, begin_destructor_body): New fns.
1955 (begin_function_body): Call them and keep_next_level.
1956 * init.c (emit_base_init): Call keep_next_level.
1957 * semantics.c (setup_vtbl_ptr): Lose.
1958 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
1959 (vtbls_set_up_p): Lose.
1960 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
1961 * method.c (do_build_copy_constructor): Likewise.
1962 (synthesize_method): Call finish_mem_initializers.
1963 * parse.y (nodecls): Likewise.
ad6b1795
JM
1964
1965 * error.c (dump_type_suffix): Print the exception specs before
1966 recursing.
1967 (dump_function_decl): Here, too.
1968
1969 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
1970
195a5def
IR
19712002-01-10 Ira Ruben <ira@apple.com>
1972
6bc34b14 1973 PR c++/907
195a5def
IR
1974 * decl.c (start_method): Handle attrlist.
1975
f21ee879
JJ
19762002-01-10 Jakub Jelinek <jakub@redhat.com>
1977
1978 * decl2.c (max_tinst_depth): Increase default limit to 500.
1979
19802002-01-10 Graham Stott <grahams@redhat.com>
8fabd4e2
GS
1981
1982 * spew.c (YYCHAR): Uppercase macro parameter and add
1983 parenthesis.
1984 (YYCODE): Likewise.
1985 (NAME): Uppercase macro parameter.
1986
c3af729a
GS
19872002-01-09 Graham Stott <grahams@redhat.com>
1988
6bc34b14 1989 * decl.h (grokdeclarator): Wrap long line.
5d8b4235 1990
c3af729a
GS
1991 * semantics.c (FINISH_COND): Uppercase macro paramaters and
1992 add parenthesis.
1993
91800747
GS
19942002-01-08 Graham Stott <grahams@redhat.com>
1995
1996 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
1997 (PALLOC): Uppercase macro parameter and whitespace.
1998 (SALLOC): Uppercase macro parameter.
1999 (SFREE): Uppercase macros parameter, add parenthese and
2000 whitespace.
2001 (STREQL): Uppercase macro parameter and whitespace.
2002 (STRNEQ): Likewise.
2003 (STRLSS): Likewise.
2004 (STRLEQ): Likewise.
2005 (STRGTR): Likewise.
2006 (STRGEQ): Likewise.
2007
2008 * call.c (convert_like): Add parenthesis and wrap.
2009 (convert_like_with_context): Likewise.
2010 (ICS_RANK): Whitespace.
2011 (NEED_TEMPORARY_P): Remove parenthesis.
2012
2013 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
2014 whitespace.
2015 (VTT_MARKED_BINFO_P): Likewise.
2016
2017 * decl.c (BINDING_LEVEL): Add parenthesis.
2018 (DEF_OPERATOR): Likewise.
2019
91800747
GS
2020 * mangle.c (MANGLE_TRACE): Add parenthesis.
2021 (MANGLE_TRACE_TREE): Likewise.
2022 (write_signed_number): Likewise.
2023 (write_unsigned_number): Likewise.
2024
2025 * pt.c (ccat): Uppercase macro parameter.
2026 (cat): Likewise
2027
2028 * search.c (SET_BINFO_ACCESS): Add parenthesis.
2029
15eb1e43
JM
20302002-01-07 Jason Merrill <jason@redhat.com>
2031
2032 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
2033 to pedwarn.
2034
6bc34b14 2035 PR c++/3536
15eb1e43
JM
2036 * method.c (make_thunk): If !flag_weak, give the thunk the
2037 function's linkage.
2038 (use_thunk): Here, too.
2039
b34c06e3
GS
20402002-01-07 Graham Stott <grahams@redhat.com>
2041
6bc34b14
JM
2042 * error.c: Update copyright date.
2043 (print_scope_operator): Add parenthesis.
2044 (print_left_paren): Likewise.
2045 (print_right_paren): Likewise.
2046 (print_left_bracket): Likewise.
2047 (print_right_bracket): Likewise.
2048 (print_template_argument_list_start): Likewise.
2049 (print_template_argument_list_end): Likewise.
2050 (print_non_consecutive_character): Likewise.
2051 (print_tree_identifier): Likewise.
2052 (print_identifier): Likewise.
2053 (NEXT_CODE): Uppercase macro parameter.
2054 (ident_fndecl): Delete unused.
2055 (GLOBAL_THING): Likewise.
b34c06e3 2056
98e40e83
GS
20572002-01-06 Graham Stott <grahams@redhat.com>
2058
2059 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
2060 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
2061 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
2062 (RECORD_OR_UNION_TYPE_CHECK): Likewise.
2063 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
2064 (C_IS_RESERVED_WORD): Uppercase macro parameter.
2065 (C_RID_YYCODE) Likewise.
2066 (ptrmem_cst): Use rtx.
2067 (LOCAL_BINDING_P): Add whitespace.
2068 (INHERITED_VALUE_BINDING_P): Likewise.
2069 (BINDING_SCOPE): Wrap long line.
2070 (BINDING_HAS_LEVEL_P): Remove parenthesis.
2071 (BINDING_VALUE): Wrap long line.
2072 (BINDING_TYPE): Whitespace.
2073 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
2074 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
c588e52b 2075 (IDENTIFIER_NAMESPACE_VALUE): Likewise.
98e40e83
GS
2076 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
2077 (same_type_p): Uppercase macro parameters.
2078 (same_type_ignoring_top_level_qualifiers_p): Likewise.
2079 (OVL_FUNCTION): Wrap long line.
2080 (OVL_CHAIN): Whitespace.
b34c06e3 2081 (OVL_CURRENT): Add parenthesis and whitespace.
98e40e83
GS
2082 (OVL_NEXT): Whitespace.
2083 (OVL_USED): Likewise.
2084 (IDENTIFIER_TYPE_VALUE): Likewise.
2085 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
2086 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
2087 (LANG_ID_FIELD): Whitespace.
2088 (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
2089 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
2090 (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
2091 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
2092 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
2093 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
2094 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
2095 (IDENTIFIER_VIRTUAL_P): Likewise.
2096 (IDENTIFIER_OPNAME_P): Likewise.
2097 (IDENTIFIER_TYPENAME_P): Remove parenthesis.
2098 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
2099 (C_SET_EXP_ORIGINAL_CODE): Likewise.
2100 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
2101 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
2102 (IS_AGGR_TYPE): Uppercase macro parameter.
2103 (CLASS_TYPE_P): Likewise.
2104 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
2105 (IS_AGGR_TYPE_2): Whitespace.
2106 (TAGGED_TYPE_P): Uppercase macro parameter.
2107 (TYPE_BUILT_IN): Whitespace.
2108 (TYPE_FOR_JAVA): Likewise.
2109 (FUNCTION_ARG_CHAIN): Remove parenthesis.
2110 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
2111 (FUNCTION_FIRST_USER_PARAM): Likewise.
2112 (PROMOTES_TO_AGGR_TYPE): Whitespace.
2113 (DERIVED_FROM_P): Add parenthesis and wrap.
2114 (UNIQUELY_DERIVED_FROM_P): Likewise.
2115 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
2116 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
2117 (CLASSTYPE_USE_TEMPLATE): Whitespace.
2118 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
2119 (TYPE_GETS_DELETE): Add parenthesis.
2120 (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
2121 (TYPE_HAS_ASSIGN_REF): Likewise,
2122 (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
2123 (TYPE_HAS_INIT_REF): Likewise.
2124 (TYPE_HAS_CONST_INIT_REF): Likewise.
2125 (TYPE_BEING_DEFINED): Likewise.
2126 (TYPE_LANG_SPECIFIC): Likewise.
2127 (CLASSTYPE_RTTI): Likewise.
2128 (TYPE_OVERLOADS_CALL_EXPR): Likewise.
2129 (TYPE_OVERLOADS_ARRAY_REF): Likewise.
2130 (TYPE_OVERLOADS_ARROW): Likewise.
2131 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
2132 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
2133 (CLASSTYPE_METHOD_VEC): Likewise.
2134 (CLASSTYPE_MARKED_N): Likewise.
2135 (CLASSTYPE_MARKED): Likewise.
2136 (CLASSTYPE_MARKED2): Likewise.
2137 (CLASSTYPE_MARKED3): Likewise.
2138 (CLASSTYPE_MARKED4): Likewise.
2139 (CLASSTYPE_MARKED5): Likewise.
2140 (CLASSTYPE_MARKED6): Likewise.
2141 (SET_CLASSTYPE_MARKED): Whitespace.
2142 (CLEAR_CLASSTYPE_MARKED): Likewise.
2143 (SET_CLASSTYPE_MARKED2): Likewise.
2144 (CLEAR_CLASSTYPE_MARKED2): Likewise.
2145 (SET_CLASSTYPE_MARKED3): Likewise.
2146 (CLEAR_CLASSTYPE_MARKED3): Likewise.
2147 (SET_CLASSTYPE_MARKED4): Likewise.
2148 (CLEAR_CLASSTYPE_MARKED4): Likewise.
2149 (SET_CLASSTYPE_MARKED5): Likewise.
2150 (CLEAR_CLASSTYPE_MARKED5): Likewise.
2151 (SET_CLASSTYPE_MARKED6): Likewise.
2152 (CLEAR_CLASSTYPE_MARKED6): Likewise.
2153 (CLASSTYPE_TAGS): Likewise.
2154 (CLASSTYPE_VSIZE): Likewise.
2155 (CLASSTYPE_VBASECLASSES): Likewise.
2156 (CANONICAL_BINFO): Add parenthesis.
2157 (CLASSTYPE_SIZE(NODE): Likewise.
2158 (CLASSTYPE_SIZE_UNIT): Likewise.
2159 (CLASSTYPE_ALIGN(NODE): Likewise.
2160 (CLASSTYPE_USER_ALIGN): Likewise.
2161 (TYPE_JAVA_INTERFACE): Likewise.
2162 (CLASSTYPE_PURE_VIRTUALS): Likewise.
2163 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
2164 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
2165 (CLASSTYPE_HAS_MUTABLE): Likewise.
2166 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
2167 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
2168 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
2169 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
2170 (CLASSTYPE_INTERFACE_ONLY): Likewise.
2171 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
2172 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
2173 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
2174 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
2175 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
2176 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
2177 (BINFO_UNSHARED_MARKED): Whitespace.
2178 (BINFO_MARKED): Whitespace and wrap.
2179 (SET_BINFO_MARKED): Likewise.
2180 (CLEAR_BINFO_MARKED): Likewise.
2181 (BINFO_VTABLE_PATH_MARKED): Likewise.
2182 (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
2183 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
2184 (BINFO_SUBVTT_INDEX): Remove parenthesis.
2185 (BINFO_VPTR_INDEX): Likewise.
2186 (BINFO_PRIMARY_BASE_OF): Likewise,
2187 (CLASSTYPE_VFIELDS): Whitespace.
2188 (VF_DERIVED_VALUE): Wrap long line.
2189 (NAMESPACE_LEVEL): Whitespace.
6bc34b14
JM
2190 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
2191 (DEFARG_POINTER): Whitespace.
2192 (DECL_NEEDED_P): Remove parenthesis.
2193 (DECL_LANGUAGE): Whitespace.
2194 (SET_DECL_LANGUAGE): Add parenthesis.
2195 (DECL_CONSTRUCTOR_P): Whitespace and wrap.
2196 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
2197 (DECL_IN_AGGR_P): Whitespace.
2198 (DECL_FRIEND_P): Likewise.
2199 (DECL_BEFRIENDING_CLASSES): Likewise.
2200 (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
2201 (DECL_NONCONVERTING_P): Whitespace.
2202 (DECL_PURE_VIRTUAL_P): Likewise.
2203 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
2204 (DECL_PENDING_INLINE_INFO): Whitespace.
2205 (DECL_SORTED_FIELDS): Likewise.
2206 (DECL_DEFERRED_FN): Likewise.
2207 (DECL_TEMPLATE_INFO): Likewise.
2208 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
2209 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
2210 (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
2211 (TMPL_ARGS_LEVEL): Likewise.
2212 (SET_TMPL_ARGS_LEVEL): Likewise.
2213 (INNERMOST_TEMPLATE_PARMS): Whitespace.
2214 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
2215 (INTEGRAL_CODE_P(CODE): Add parenthesis.
2216 (CP_INTEGRAL_TYPE_P): Remove parenthesis.
2217 (TYPE_HAS_CONSTRUCTOR): Whitespace.
2218 (TREE_HAS_CONSTRUCTOR): Likewise.
2219 (TYPE_HAS_DESTRUCTOR): Likewise.
2220 (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
2221 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
2222 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
2223 (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
2224 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
2225 (TYPE_PTRMEMFUNC_P): Likewise.
2226 (TYPE_PTRMEMFUNC_FLAG): Likewise.
2227 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
2228 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
2229 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
2230 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
2231 (DECL_ACCESS): Whitespace.
2232 (DECL_GLOBAL_CTOR_P): Remove parenthesis.
2233 (DECL_GLOBAL_DTOR_P): Likewise.
2234 (GLOBAL_INIT_PRIORITY): Likewise.
98e40e83 2235 (DECL_TEMPLATE_PARMS): Likewise.
6bc34b14
JM
2236 (DECL_TEMPLATE_RESULT): Likewise.
2237 (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
2238 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
2239 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
2240 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
2241 (PRIMARY_TEMPLATE_P): Add parenthesis.
2242 (DECL_USE_TEMPLATE): Whitespace.
2243 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
2244 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
2245 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
2246 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
2247 (CALL_DECLARATOR_PARMS): Remove parenthesis.
2248 (CALL_DECLARATOR_QUALS): Likewise.
2249 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
2250 (TEMP_NAME_P): Wrap.
2251 (VFIELD_NAME_P): Likewise.
2252 (B_SET): Uppercase macro parameters and add parenthesis.
2253 (B_CLR): Likewise.
2254 (B_TST): Likewise.
2255 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
2256 (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
2257 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
2258 (same_or_base_type_p): Likewise.
2259 (cp_deprecated): Likewise.
98e40e83 2260
c28abdf0
RH
22612002-01-05 Richard Henderson <rth@redhat.com>
2262
15eb1e43 2263 * semantics.c (expand_body): Revert last change.
c28abdf0 2264
f11ee281
JM
22652002-01-04 Jason Merrill <jason@redhat.com>
2266
195a5def 2267 PR c++/4122
f11ee281
JM
2268 * class.c (update_vtable_entry_for_fn): Set delta to zero for a
2269 lost primary.
2270
2271 * class.c (build_vtbl_initializer): Check for a lost primary
2272 before calculating the vtable entry to throw away.
2273
a4200657
JM
22742002-01-02 Jason Merrill <jason@redhat.com>
2275
2276 * semantics.c (expand_body): Call outlining_inline_function when
2277 emitting an inline function out of line.
2278
40e593d7
NS
22792002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2280
2281 PR c++/5116, c++/764 reversion
2282 * call.c (build_new_op): Revert the instantiations. They are
2283 incorrect.
c588e52b 2284
323728aa
NS
22852002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2286
2287 PR c++/5089
2288 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
2289
46c895ac
NS
22902002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2291
2292 PR c++/3716
2293 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
2294 (tsubst, case POINTER_TYPE): Handle pmfs here.
2295 (tsubst, case OFFSET_TYPE): Check it is not an offset to
2296 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
2297
833aa4c4
NS
22982002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2299
2300 PR c++/35
2301 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
2302 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
2303 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
2304 PARM_DECL.
2305 (tsubst_template_parms): Break up loop statements.
2306 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
2307 parm PARM_DECLs don't get promoted.
2308
18976b21
NS
23092002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2310
2311 PR c++/5123
2312 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
2313 (build_x_function_call): Cope with a COMPONENT_REF containing a
2314 TEMPLATE_ID_EXPR.
2315
303d1c55
NS
23162002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2317
2318 PR c++/5213
2319 * pt.c (convert_template_argument): Be more careful determining
2320 when RECORD_TYPE templates are or are not templates.
2321
d46a33b3
NS
23222002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2323
2324 PR c++/775
2325 * cp-tree.h (handle_class_head): Adjust prototype.
2326 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
2327 parameters. Use for all class heads.
2328 * parse.y (named_class_head_sans_basetype, named_class_head,
2329 named_complex_class_head_sans_basetype,
2330 named_class_head_sans_basetype_defn,
2331 unnamed_class_head): Remove.
2332 (class_head, class_head_apparent_template): Recognize class heads
2333 (class_head_decl, class_head_defn): New reductions. Process class
2334 heads.
2335 (structsp): Adjust class definition and class declaration
2336 reductions.
2337 (maybe_base_class_list): Give diagnostic on empty list.
2338
4542128e
NS
23392002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2340
2341 PR c++/4379
2342 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
2343 single non-static member.
2344 (unary_complex_lvalue): If it cannot be a pointer to member, don't
2345 make it so. Check it is not pointer to reference.
2346
903c6234
NS
23472002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2348
2349 PR c++/5132
2350 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
2351 are processing a template decl.
2352
477558bf
NS
23532002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2354
2355 PR c++/5116, c++/764
2356 * call.c (build_new_op): Make sure template class operands are
2357 instantiated. Simplify arglist construction.
2358
41f5d4b1
NS
23592001-12-29 Nathan Sidwell <nathan@codesourcery.com>
2360
2361 * call.c (build_user_type_conversion_1): Use my_friendly_assert
2362 rather than if ... abort.
2363 * cvt.c (convert_to_reference): Likewise.
2364 * semantics.c (setup_vtbl_ptr): Likewise.
2365 * pt.c (lookup_template_class): Comment typo.
c588e52b 2366
f3368a90
NS
23672001-12-29 Nathan Sidwell <nathan@codesourcery.com>
2368
2369 PR c++/5125
2370 * pt.c (push_template_decl_real): Make sure DECL has
2371 DECL_LANG_SPECIFIC.
2372
03c9c274
NS
23732001-12-29 Nathan Sidwell <nathan@codesourcery.com>
2374
2375 PR c++/335
2376 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
2377 for non-reference fields.
2378 * typeck.c (require_complete_type): Use resolve_offset_ref).
2379
7d8e8369
NS
23802001-12-26 Nathan Sidwell <nathan@codesourcery.com>
2381
2382 PR c++/196
03c9c274 2383 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
7d8e8369 2384
a56ca899
NS
23852001-12-24 Nathan Sidwell <nathan@codesourcery.com>
2386
2387 PR c++/160
2388 * typeck.c (build_modify_expr): Remove old unreachable code & tidy
2389 up. Don't stabilize_references when initializing a reference.
2390
0b5826ac
KG
23912001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2392
2393 * decl2.c (lang_f_options): Const-ify.
2394
38be19f6
JM
23952001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
2396
2397 * config-lang.in (diff_excludes): Remove.
2398
2e4cf9dc
NS
23992001-12-19 Nathan Sidwell <nathan@codesourcery.com>
2400
2401 PR c++/90
2402 * typeck.c (build_function_call_real): Use original function
2403 expression for errors.
2404
00e4119c
JM
24052001-12-18 Jason Merrill <jason@redhat.com>
2406
195a5def 2407 PR c++/3242
00e4119c
JM
2408 * class.c (add_method): Do compare 'this' quals when trying to match a
2409 used function. Don't defer to another used function.
2410
3ad97789
NS
24112001-12-18 Nathan Sidwell <nathan@codesourcery.com>
2412
2413 * pt.c (instantiate_clone): Remove, fold into ...
2414 (instantiate_template): ... here. Simplify by removing mutual
2415 recursion.
2416 * typeck2.c (build_m_component_ref): Don't cv qualify the function
2417 pointed to by a pointer to function.
2418 * class.c (delete_duplicate_fields_1): Typo.
2419
f21add07
JM
24202001-12-18 Jason Merrill <jason@redhat.com>
2421
2422 C++ ABI change: destroy value arguments in caller.
2423 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
2424 create an extra binding level for the parameters.
2425 * decl.c (store_parm_decls): Don't do parameter cleanups.
2426
ea50ad82
NS
24272001-12-18 Nathan Sidwell <nathan@codesourcery.com>
2428
2429 * call.c (build_new_method_call): Use '%#V'.
2430 * error.c (cv_to_string): Use V parameter to determine padding.
2431
3855d0d1
JM
24322001-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
2433
2434 * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
2435 spellings in messages.
2436
33bd39a2
ZW
24372001-12-17 Zack Weinberg <zack@codesourcery.com>
2438
2439 * cp-tree.h: Delete #defines for cp_error, cp_warning,
2440 cp_pedwarn, and cp_compiler_error.
2441 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
2442 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
2443 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
2444 typeck2.c: Change calls to the above macros to use their
2445 language-independent equivalents: error, warning, pedwarn, and
2446 internal_error respectively.
2447
317c26c3
NB
24482001-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
2449
2450 * decl2.c (finish_file): Remove back_end_hook.
2451
aba649ba
JM
24522001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
2453
2454 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
2455 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
2456 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
2457
1737c953
JM
24582001-12-15 Joseph S. Myers <jsm28@cam.ac.uk>
2459
2460 * lang-options.h: Use American spelling in messages.
2461
4a90862e
JM
24622001-12-13 Jason Merrill <jason@redhat.com>
2463
ade3dc07
JM
2464 * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
2465
2466 Use cleanups to run base and member destructors.
2467 * init.c (push_base_cleanups): New function, split out from...
2468 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code.
2469 * decl.c (finish_destructor_body): Move vbase destruction code to
2470 push_base_cleanups.
2471 (begin_function_body, finish_function_body): New fns.
2472 (finish_function): Move [cd]tor handling and call_poplevel to
2473 finish_function_body.
2474 (pushdecl): Skip the new level.
2475 * semantics.c (genrtl_try_block): Don't call end_protect_partials.
2476 (setup_vtbl_ptr): Call push_base_cleanups.
2477 * method.c (synthesize_method): Call {begin,end}_function_body.
2478 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
2479 * cp-tree.h: Declare new fns.
2480 * parse.y (function_body, .begin_function_body): New nonterminals.
2481 (fndef, pending_inline, function_try_block): Use function_body.
2482 (ctor_initializer_opt, function_try_block): No longer has a value.
2483 (base_init): Remove .set_base_init token.
2484 (.set_base_init, compstmt_or_error): Remove.
2485 * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
2486
4a90862e
JM
2487 * optimize.c (maybe_clone_body): Fix parameter updating.
2488
a0de9d20
JM
24892001-12-12 Jason Merrill <jason@redhat.com>
2490
2491 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
2492 * semantics.c (genrtl_start_function): Don't pass
2493 parms_have_cleanups or push an extra binding level.
2494 (genrtl_finish_function): Lose cleanup_label cruft.
2495
2496 * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
2497 (ctor_label): Remove.
2498 * semantics.c (finish_return_stmt): Lose ctor_label support.
2499 * decl.c (finish_constructor_body, mark_lang_function): Likewise.
33bd39a2 2500 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
a0de9d20
JM
2501 dtor_label.
2502
2503 * call.c (build_new_method_call): Let resolves_to_fixed_type_p
2504 check for [cd]tors.
2505 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
2506
2507 * decl.c (finish_function): Check VMS_TARGET, not VMS.
2508
2509 * decl.c (start_cleanup_fn): Remove redundant pushlevel.
2510 (end_cleanup_fn): And poplevel.
2511
2512 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
2513 if we're in a template.
2514
dc5c569a
JJ
25152001-12-12 Jakub Jelinek <jakub@redhat.com>
2516
2517 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
2518 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
2519 THIS_NAME_P): Delete.
2520 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
2521 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
2522 with internal naming scheme.
2523 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
2524
ad1a6d45
NS
25252001-12-12 Nathan Sidwell <nathan@codesourcery.com>
2526
2527 * decl.c (grokdeclarator): Deprecated implicit typename use.
2528
270d8c65
NS
25292001-12-11 Nathan Sidwell <nathan@codesourcery.com>
2530
2531 PR g++/51
2532 * parse.y (frob_specs): Indicate it is a language linkage which
2533 contained the extern.
2534 * decl.c (grokdeclarator): Allow extern language linkage with
2535 other specifiers.
2536
9aaceb4b
NS
25372001-12-10 Nathan Sidwell <nathan@codesourcery.com>
2538
2539 PR g++/72
2540 * decl.c (add_binding): Don't reject duplicate typedefs involving
2541 template parameters.
2542
a23c9413
NB
25432001-12-10 Neil Booth <neil@daikokuya.demon.co.uk>
2544
2545 * parse.y, semantics.c: Similarly.
2546
9aaceb4b 25472001-12-09 Nathan Sidwell <nathan@codesourcery.com>
271e6f02
NS
2548
2549 PR g++/87
2550 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
2551 (copy_args_p): Rename to ...
2552 (copy_fn_p): ... here.
2553 (grok_special_member_properties): New function.
2554 (grok_op_properties): Lose VIRTUALP parameter.
2555 (copy_assignment_arg_p): Remove.
2556 * call.c (build_over_call): Use copy_fn_p.
2557 * decl.c (grokfndecl): Reformat. Adjust call to
2558 grok_op_properties.
2559 (copy_args_p): Rename to ...
2560 (copy_fn_p): ... here. Reject template functions. Check for pass
2561 by value.
2562 (grok_special_member_properties): Remember special functions.
2563 (grok_ctor_properties): Don't remember them here, just check.
2564 (grok_op_properties): Likewise.
2565 (start_method): Call grok_special_member_properties.
2566 * decl2.c (grokfield): Likewise.
2567 (copy_assignment_arg_p): Remove.
2568 (grok_function_init): Don't remember abstract assignment here.
2569 * pt.c (instantiate_class_template): Call
2570 grok_special_member_properties.
2571 (tsubst_decl): Adjust grok_op_properties call.
2572
bdd8737f
AH
25732001-12-08 Aldy Hernandez <aldyh@redhat.com>
2574
33bd39a2
ZW
2575 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
2576 RID_TYPES_COMPATIBLE_P.
bdd8737f 2577
46af705a
JDA
25782001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
2579
2580 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
2581 call to build_aggr_init.
2582 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
2583
cb97d97d
NB
25842001-12-08 Neil Booth <neil@daikokuya.demon.co.uk>
2585
2586 * parse.y: Replace uses of the string non-terminal with STRING.
2587 Don't perform string concatentaion here.
2588 (string): Remove non-terminal.
2589 * semantics.c (finish_asm_stmt): Don't concatenate strings here.
2590
742a37d5
JM
25912001-12-05 Jason Merrill <jason@redhat.com>
2592
2593 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
2594 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
2595 * tree.c (cp_start_inlining, cp_end_inlining): New fns.
2596 * pt.c (push_tinst_level): No longer static.
2597 * cp-tree.h: Declare them.
2598
2599 * init.c (resolve_offset_ref): Don't check access for the base
2600 conversion to access a FIELD_DECL.
2601
2602 * cp-tree.h (TYPE_REFFN_P): New macro.
2603 * decl.c (bad_specifiers): Check it, too.
2604
2605 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
2606 on the __*_type_info type if we haven't seen a definition.
2607
26f943fd
NB
26082001-12-05 Neil Booth <neil@daikokuya.demon.co.uk>
2609
2610 * decl.c: Include c-common.h.
2611 (shadow_warning): Move to c-common.c.
2612
37a08a29
RK
2613Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2614
2615 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
2616
9471d3e2
NS
26172001-12-04 Nathan Sidwell <nathan@codesourcery.com>
2618
2619 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
2620
713ccd0c
NS
26212001-12-04 Nathan Sidwell <nathan@codesourcery.com>
2622
2623 PR g++/164
2624 * init.c (sort_base_init): Allow binfos to be directly specified.
2625 * method.c (do_build_copy_constructor): Explicitly convert to the
2626 base instance.
2627 (do_build_assign_ref): Likewise.
2628
591382c4
HPN
26292001-12-03 Hans-Peter Nilsson <hp@bitrange.com>
2630
2631 * decl.c (xref_basetypes): Don't use C99 construct in tag_code
2632 declaration and initialization.
2633
c725bd79
NB
26342001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
2635
2636 * typeck2.c: Remove leading capital from diagnostic messages, as
2637 per GNU coding standards.
2638
a5d7c4a3
MK
26392001-12-03 Mumit Khan <khan@nanotech.wisc.edu>
2640
2641 PR c++/3394
9fe038e8
HPN
2642 * decl.c (xref_basetypes): Handle attributes between
2643 'class' and name.
a5d7c4a3 2644
f1880e13
NS
26452001-12-03 Nathan Sidwell <nathan@codesourcery.com>
2646
2647 PR g++/3381
2648 * parse.y (named_complex_class_head_sans_basetype): Add new
2649 reduction.
2650 * Make-lang.in (parse.c): Adjust expected conflict count.
2651
ff668506
JM
26522001-12-03 Jason Merrill <jason@redhat.com>
2653
2654 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
2655 immediate binfos for our virtual bases.
2656
1f978f5f
NB
26572001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
2658
2659 * call.c (build_java_interface_fn_ref): Similarly.
2660 * except.c (is_admissible_throw_operand): Similarly.
2661 * init.c (build_java_class_ref): Similarly.
2662 * xref.c (open_xref_file): Similarly.
2663
357351e5
NB
26642001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
2665
2666 * class.c (finish_struct): Remove trailing periods from messages.
2667 * decl.c (check_tag_decl): Similarly.
2668 * lex.c (cxx_set_yydebug): Similarly.
2669 * typeck2.c (friendly_abort): Similarly.
2670
998979e6
MM
26712001-11-29 Mark Mitchell <mark@codesourcery.com>
2672
2673 PR c++/3048
2674 * cp-tree.h (ovl_member): Remove.
33bd39a2 2675 * decl2.c (merge_functions): Handle extern "C" functions
998979e6
MM
2676 specially.
2677 * tree.c (ovl_member): Remove.
2678
7d5b8b11
MM
26792001-11-29 Mark Mitchell <mark@codesourcery.com>
2680
2681 PR c++/4842
2682 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
2683 FUNCTION_DECL, as input.
2684 (mark_overriders): Remove.
2685 (warn_hidden): Rework for the new ABI.
2686
b67db529
MM
26872001-11-29 Mark Mitchell <mark@codesourcery.com>
2688
2689 PR c++/3471
2690 * call.c (convert_like_real): Do not build additional temporaries
2691 for rvalues of class type.
2692
2db1ab2d
NS
26932001-11-28 Nathan Sidwell <nathan@codesourcery.com>
2694
2695 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
2696 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
2697 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
2698 (DERIVED_FROM_P): Likewise.
2699 (enum base_access): Renumber, add ba_quiet bit mask.
2700 (get_binfo): Remove.
2701 (get_base_distance): Remove.
2702 (binfo_value): Remove.
2703 (ACCESSIBLY_DERIVED_FROM_P): Remove.
2704 * call.c (standard_conversion): Use lookup_base.
2705 * class.c (strictly_overrides): Likewise.
2706 (layout_virtual_bases): Likewise.
2707 (warn_about_ambiguous_direct_bases): Likewise.
2708 (is_base_of_enclosing_class): Likewise.
2709 (add_vcall_offset_vtbl_entries_1): Likewise.
2710 * cvt.c (build_up_reference): Adjust comment.
2711 * init.c (build_member_call): Reformat.
2712 * search.c (get_binfo): Remove.
2713 (get_base_distance_recursive): Remove.
2714 (get_base_distance): Remove.
2715 (lookup_base_r): Tweak.
2716 (lookup_base): Add ba_quiet control. Complete the types here.
2717 (covariant_return_p): Use lookup_base.
2718 * tree.c (binfo_value): Remove.
2719 (maybe_dummy_object): Use lookup_base.
2720 * typeck.c (build_static_cast): Use lookup_base.
2721 (get_delta_difference): Likewise.
2722 * typeck2.c (binfo_or_else): Use lookup_base.
2723 (build_scoped_ref): Add back error_mark_check.
2724 (build_m_component_ref): Use lookup_base.
2725
d3945f0a
JM
27262001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
2727
2728 * Make-lang.in (c++.generated-manpages): New dummy target.
2729
ac79cd5a
RK
2730Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2731
2732 * Make-lang.in (cp-lang.o): Depends on c-common.h.
2733 * cp-lang.c (c-common.h): Include.
2734 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
2735 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
2736 * expr.c (init_cplus_expand): Don't set lang_expand_constant.
2737
4d6baafa
NB
27382001-11-26 Neil Booth <neil@daikokuya.demon.co.uk>
2739
2740 * decl2.c (c_language): Move to c-common.c.
2741 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
2742 functions.
2743 (cxx_init): Update.
2744
5b0c5896
JM
27452001-11-26 Jason Merrill <jason@redhat.com>
2746
2747 * call.c (joust): Remove COND_EXPR hack.
2748
4bdd26e6
AH
27492001-11-25 Aldy Hernandez <aldyh@redhat.com>
2750
195a5def 2751 * search.c (lookup_base_r): Declare bk in variable declaration
4bdd26e6 2752 space.
33bd39a2 2753
338d90b8
NS
27542001-11-25 Nathan Sidwell <nathan@codesourcery.com>
2755
2756 PR g++/3145
2757 * class.c (build_vbase_pointer): Remove.
2758 (build_vbase_path): Remove.
2759 (build_base_path): New function.
2760 * cp-tree.h (base_access, base_kind): New enumerations.
2761 (build_base_path): Declare.
2762 (convert_pointer_to_real): Remove.
2763 (convert_pointer_to): Remove.
2764 (lookup_base): Declare.
2765 (convert_pointer_to_vbase): Remove.
2766 * call.c (build_scoped_method_call): Use lookup_base &
2767 build_base_path instead of convert_pointer_to_real,
2768 get_base_distance & get_binfo.
2769 (build_over_call): Likewise.
2770 * cvt.c (cp_convert_to_pointer): Likewise.
2771 (convert_to_pointer_force): Likewise.
2772 (build_up_reference): Likewise.
2773 (convert_pointer_to_real): Remove.
2774 (convert_pointer_to): Remove.
2775 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
2776 instead of convert_pointer_to_vbase & build_vbase_path.
2777 (emit_base_init): Use build_base_path instead of
2778 convert_pointer_to_real.
2779 (expand_virtual_init): Lose unrequired conversions.
2780 (resolve_offset_ref): Use lookup_base and build_base_path
2781 instead of convert_pointer_to.
2782 * rtti.c (build_dynamic_cast_1): Use lookup_base &
2783 build_base_path instead of get_base_distance & build_vbase_path.
2784 * search.c (get_vbase_1): Remove.
2785 (get_vbase): Remove.
2786 (convert_pointer_to_vbase): Remove.
07f521fc 2787 (lookup_base_r): New function.
338d90b8
NS
2788 (lookup_base): New function.
2789 * typeck.c (require_complete_type): Use lookup_base &
2790 build_base_path instead of convert_pointer_to.
2791 (build_component_ref): Likewise.
2792 (build_x_function_call): Likewise.
2793 (get_member_function_from_ptrfunc): Likewise.
2794 (build_component_addr): Likewise.
2795 * typeck2.c (build_scoped_ref): Likewise.
2796
89d684bb
BM
27972001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2798
2799 * cp-tree.h (CP_TYPE_QUALS): Removed.
2800 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
33bd39a2 2801 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
89d684bb 2802 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
33bd39a2 2803 * dump.c (cp_dump_tree): Use void* dump_info argument to match
89d684bb
BM
2804 lang-hooks prototype.
2805 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
2806 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
2807 CP_TYPE_QUALS changed to cp_type_quals.
2808 * Make-lang.in: References to c-dump.h changed to tree-dump.h.
2809 (CXX_C_OBJS): Remove c-dump.o.
2810
12eb9f93 28112001-11-21 Mark Mitchell <mark@codesourcery.com>
2d2e8123
MM
2812
2813 PR c++/3637
12eb9f93
MM
2814 * pt.c (lookup_template_class): Ensure that all specializations
2815 are registered on the list corresponding to the most general
2816 template.
2817
28182001-11-20 Mark Mitchell <mark@codesourcery.com>
2819
2d2e8123 2820 * call.c (non_reference): Add documentation.
33bd39a2 2821 (convert_class_to_reference): Do not strip reference types
2d2e8123
MM
2822 from conversion operators.
2823 (maybe_handle_ref_bind): Simplify.
2824 (compare_ics): Correct handling of references.
2825
78a40378
MM
28262001-11-19 John Wilkinson <johnw@research.att.com>
2827
2828 * dump.c (dump_op): New function.
2829 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use
2830 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
2831 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
33bd39a2 2832
78a40378
MM
28332001-11-19 Mark Mitchell <mark@codesourcery.com>
2834
2835 PR4629
2836 * semantics.c (finish_sizeof): Make sure that expression created
2837 while processing a template do not have a type.
2838 (finish_alignof): Likewise.
2839 * typeck.c (c_sizeof): Likewise.
2840 (expr_sizeof): Likewise.
2841
22703ccc
NB
28422001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
2843
2844 * lex.c (cxx_finish): Call c_common_finish.
2845 (finish_parse): Remove.
2846
b3faacfd
KL
28472001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2848
2849 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
2850 when displaying error message about missing array bounds.
2851
873ff987
KL
28522001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2853
2854 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
2855 CONST_CAST_EXPR.
2856 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
2857
08f3a861
NB
28582001-11-16 Neil Booth <neil@daikokuya.demon.co.uk>
2859
2860 * cp-tree.h (print_class_statistics): Restore.
2861
8a2b77e7
JM
28622001-11-15 Jason Merrill <jason@redhat.com>
2863
3b1a4132
JM
2864 * method.c (use_thunk): Don't emit debugging information for thunks.
2865
8a2b77e7
JM
2866 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
2867 * decl.c (make_typename_type): Handle getting a class template.
2868 * search.c (lookup_field_r): A class template is good enough for
2869 want_type.
2870
2871 * call.c (convert_like_real): Only use cp_convert for the bad part.
2872 (standard_conversion): Also allow bad int->enum.
2873 * typeck.c (ptr_reasonably_similar): Also allow functions to
2874 interconvert. Pointers to same-size integers are reasonably
2875 similar.
2876
2877 * cvt.c (convert_to_void): If we build a new COND_EXPR, always
2878 give it void type.
2879
36a68fe7
NS
28802001-11-15 Nathan Sidwell <nathan@codesourcery.com>
2881
2882 PR g++/3154
2883 * init.c (sort_base_init): Remove unreachable code.
2884 (expand_member_init): Adjust comment to reflect reality. Simplify
2885 and remove unreachable code.
2886
f5e99456
NB
28872001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
2888
2889 * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
2890 (cxx_init): Update prototype.
2891 * decl.c (init_decl_processing): Rename. Move null node init
2892 to its creation time.
2893 * lex.c (cxx_init_options): Update.
2894 (cxx_init): Combine with old init_parse; also call
2895 cxx_init_decl_processing.
2896
fe5b6c1c
RS
28972001-11-14 Richard Sandiford <rsandifo@redhat.com>
2898
8a2b77e7
JM
2899 * decl.c (check_initializer): Try to complete the type of an
2900 array element before checking whether it's complete. Don't
2901 complain about arrays with complete element types but an
2902 unknown size.
2903 (cp_finish_decl): Build the hierarchical constructor before
2904 calling maybe_deduce_size_from_array_init.
fe5b6c1c 2905
77bd67cb
JM
29062001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
2907
2908 * Make-lang.in: Change all uses of $(manext) to $(man1ext).
2909
b02922a4
NS
29102001-11-13 Nathan Sidwell <nathan@codesourcery.com>
2911
2912 PR g++/4206
2913 * parse.y (already_scoped_stmt): Remove.
2914 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
2915
abfc1ef6
L
29162001-11-12 H.J. Lu <hjl@gnu.org>
2917
195a5def 2918 * cvt.c (ocp_convert): Don't warn the address of a weak
abfc1ef6
L
2919 function is always `true'.
2920
5d69f816
NB
29212001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
2922
2923 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
2924 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
2925 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
2926 * cp-tree.h (print_class_statistics): Remove.
2927 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
2928 cxx_print_identifier, cxx_set_yydebug): New.
2929 * lex.c (set_yydebug): Rename c_set_yydebug.
2930 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
2931 lang_print_xnode): Rename.
2932 * tree.c (print_lang_statistics): Rename.
2933
4fdc14ca
KG
29342001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2935
2936 * class.c (dump_array): Fix format specifier warning.
2937
3ac88239
NB
29382001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
2939
2940 * cp-lang.c (LANG_HOOKS_NAME): Override.
2941 (struct lang_hooks): Constify.
2942 * lex.c (cxx_init_options): Update.
2943 (lang_identify): Remove.
33bd39a2 2944 * parse.y (language_string): Remove.
3ac88239 2945
b21d216c
AF
29462001-11-08 Andreas Franck <afranck@gmx.de>
2947
2948 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
2949 DEMANGLER_CROSS_NAME): Handle program_transform_name the way
2950 suggested by autoconf.
2951 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
2952 (c++.install-common): Use the transformed target alias names.
2953
d23c55c2
NB
29542001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
2955
2956 * Make-lang.in: Update.
2957 * cp-lang.c: Include langhooks-def.h.
2958
2a2b1d56
KL
29592001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2960
2961 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
2962
76648a8b
KG
29632001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2964
2965 * lex.c (copy_lang_type): Add static prototype.
2966
fccef71e
KL
29672001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2968
2969 * pt.c (unify): Handle SCOPE_REF.
2970
19989812
JJ
29712001-11-01 Jakub Jelinek <jakub@redhat.com>
2972
2973 * tree.c (cp_copy_res_decl_for_inlining): Adjust
2974 DECL_ABSTRACT_ORIGIN for the return variable.
2975
5b7874aa
ZW
29762001-10-31 Zack Weinberg <zack@codesourcery.com>
2977
2978 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
2979
306ef644
JM
29802001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
2981
2982 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
2983 semantics.c, spew.c: Fix spelling errors.
2984
76543000
KL
29852001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2986
2987 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
2988
37207ee7
ZW
29892001-10-25 Zack Weinberg <zack@codesourcery.com>
2990
2991 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
2992 pop_everything.
2993
8ac61af7
RK
2994Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2995
2996 * cp-lang.c (cxx_get_alias_set): New function.
2997 Point LANG_HOOKS_GET_ALIAS_SET to it.
2998
f1e09fa2 29992001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
b8c6534b
KL
3000
3001 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
3002 * cp-tree.h (make_unbound_class_template): Prototype new function.
3003 * decl.c (make_unbound_class_template): New function.
3004 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
3005 * error.c (dump_type): Likewise.
3006 * mangle.c (write_type): Likewise.
3007 * parse.y (template_parm): Likewise.
3008 (template_argument): Use make_unbound_class_template.
3009 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
3010 (tsubst): Likewise.
3011 (tsubst_copy): Likewise.
3012 (unify): Likewise.
3013 * tree.c (walk_tree): Likewise.
3014 * typeck.c (comptypes): Likewise.
3015
0df6c2c7
KG
30162001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3017
3018 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
3019 extra calls into fewer ones.
3020
97055d5c
AO
30212001-10-18 Alexandre Oliva <aoliva@redhat.com>
3022
3023 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
3024 Warn when merging inline with attribute noinline.
3025 (start_decl, start_function): Warn if inline and attribute
3026 noinline appear in the same declaration.
3027
b5823a44
L
30282001-10-16 H.J. Lu <hjl@gnu.org>
3029
3030 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
3031 for tree checking disabled.
3032
dc8ad298
HPN
30332001-10-16 Hans-Peter Nilsson <hp@axis.com>
3034
3035 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
3036 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
3037
d9f818d9
RS
30382001-10-15 Richard Sandiford <rsandifo@redhat.com>
3039
3040 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
3041 (unify): Only handle MINUS_EXPR specially if the above flag is set
3042 and the subtracted constant is 1. Clear the flag on recursive calls.
3043 Set it when unifying the maximum value in an INTEGER_TYPE's range.
3044
e1be26f4
RS
30452001-10-15 Richard Sandiford <rsandifo@redhat.com>
3046
3047 * decl.c (bad_specifiers): Don't allow exception specifications
3048 on any typedefs.
3049
a5da89c6
NB
30502001-10-14 Neil Booth <neil@daikokuya.demon.co.uk>
3051
3052 * cp/lex.c (init_cp_pragma): Similarly.
3053
4f96ff63
KL
30542001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3055
3056 * pt.c (lookup_template_class): Build complete template arguments
3057 for BOUND_TEMPLATE_TEMPLATE_PARM.
3058
11e74ea6
KL
30592001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3060
3061 * cp-tree.h (TYPE_BINFO): Update comment.
3062 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
3063 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
3064 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
3065 (copy_type): Prototype new function.
3066 * lex.c (copy_lang_decl): Gather tree node statistics.
3067 (copy_lang_type): New function.
3068 (copy_type): Likewise.
3069 (cp_make_lang_type): Create lang_type for
3070 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE
3071 and BOUND_TEMPLATE_TEMPLATE_PARM.
3072 * pt.c (tsubst): Use copy_type instead of copy_node.
3073 * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
3074
f5d47abd
KL
30752001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3076
3077 * pt.c (determine_specialization): Ignore functions without
3078 DECL_TEMPLATE_INFO.
3079
e60505a5
NS
30802001-10-12 Nathan Sidwell <nathan@codesourcery.com>
3081
3082 PR g++/4476
3083 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
3084
6f32162a
JM
30852001-10-11 Jason Merrill <jason_merrill@redhat.com>
3086
3087 * typeck2.c (store_init_value): Don't re-digest a bracketed
3088 initializer.
3089
3090 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
3091 ANON_AGGR_TYPE_P.
3092
4a8d0c9c
RH
30932001-10-11 Richard Henderson <rth@redhat.com>
3094
3095 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
3096 of an asm statement.
3097 (build_vtbl_ref_1): Split out from build_vtbl_ref.
3098 (build_vfn_ref): Use it to handle vtable descriptors before
3099 calling build_vtable_entry_ref.
3100 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
3101
84b72302
RH
31022001-10-10 Richard Henderson <rth@redhat.com>
3103
37207ee7 3104 * parse.y (asm_operand): Allow named operands.
84b72302
RH
3105 * semantics.c (finish_asm_stmt): Tweek for changed location
3106 of the operand constrant.
3107
48c8b0be 31082001-10-09 Jason Merrill <jason_merrill@redhat.com>
72a08131
JM
3109
3110 * call.c (standard_conversion): Add bad conversion between
3111 integers and pointers.
3112 (convert_like_real): Don't use convert_for_initialization for bad
3113 conversions; complain here and use cp_convert.
3114 (build_over_call): Don't handle bad conversions specially.
3115 (perform_implicit_conversion): Allow bad conversions.
3116 (can_convert_arg_bad): New fn.
3117 * cp-tree.h: Declare it.
3118 * typeck.c (convert_for_assignment): Use it.
3119 (ptr_reasonably_similar): Any target type is similar to void.
3120
19551f29
AO
31212001-10-08 Alexandre Oliva <aoliva@redhat.com>
3122
3123 * Make-lang.in (CXX_OBJS): Added cp-lang.o.
3124 (cp/cp-lang.o): New rule.
3125 * cp-tree.h: Declare hooks.
3126 * tree.c: Make hooks non-static.
3127 (init_tree): Don't initialize hooks here.
3128 * lex.c: Likewise. Move definition of lang_hooks to...
3129 * cp-lang.c: ... new file.
3130
31ed8fea
RH
31312001-10-08 Richard Henderson <rth@redhat.com>
3132
3133 * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
3134 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
3135
8b60264b
KG
31362001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3137
3138 * class.c (build_vtable_entry_ref): Const-ify.
3139 * decl.c (predefined_identifier,
37207ee7 3140 initialize_predefined_identifiers): Likewise.
8b60264b
KG
3141 * init.c (build_new_1): Likewise.
3142 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
3143 Likewise.
3144
bc4c7159
AO
31452001-10-05 Alexandre Oliva <aoliva@redhat.com>
3146
3147 * optimize.c (struct inline_data): Moved to ../tree-inline.c.
3148 (INSNS_PER_STMT): Likewise.
3149 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
3150 (copy_body, initialize_inlined_parameters): Likewise.
3151 (declare_return_variable, inlinable_function_p): Likewise.
3152 (expand_call_inline, expand_calls_inline): Likewise.
3153 (optimize_inline_calls, clone_body): Likewise.
3154 * tree.c (walk_tree): Moved to ../tree-inline.c.
3155 (walk_tree_without_duplicates): Likewise.
3156 (copy_tree_r, remap_save_expr): Likewise.
3157
25af8512
AO
31582001-10-04 Alexandre Oliva <aoliva@redhat.com>
3159
3160 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
3161 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
3162 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
3163 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
3164 (flag_inline_trees): Moved declaration to ../tree-inline.h.
3165 (walk_tree): Moved declaration to ../tree-inline.h.
3166 (walk_tree_without_duplicates, copy_tree_r): Likewise.
3167 (remap_save_expr): Likewise.
3168 * decl.c: Include tree-inline.h.
3169 (lang_mark_tree): Don't mark inlined_fns.
3170 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
3171 * optimize.c: Include tree-inline.h.
3172 (optimize_inline_calls): Move declaration to ../tree.h, as
3173 non-static.
3174 (remap_decl): Use language-independent constructs and hooks.
3175 (remap_block, copy_body_r, declare_return_variable): Likewise.
3176 (inlinable_function_p): Likewise. Don't test for
3177 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
3178 no longer language-specific.
3179 (optimize_inline_calls): Likewise. Make it non-static. Moved
3180 call of dump_function to...
3181 (optimize_function): Here...
3182 (clone_body): New function, extracted from...
3183 (maybe_clone_body): ... here. Build decl_map locally and pass
3184 it on to clone_body.
3185 * pt.c, semantics.c: Include tree-inline.h.
3186 * tree.c: Likewise.
3187 (cp_walk_subtrees): New language-specific hook for tree inlining.
3188 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
3189 cp_is_overload_p, cp_auto_var_in_fn_p,
3190 cp_copy_res_decl_for_inlining): Likewise.
3191 (walk_tree): Move language-specific constructs into...
3192 (cp_walk_subtrees): this new function.
3193 (copy_tree_r): Use language-independent constructs and hooks.
3194 (init_tree): Initialize tree inlining hooks.
3195 (remap_save_expr): Adjust prototype so that the declaration
3196 does not require the definition of splay_tree.
3197
6a4af81f
JDA
31982001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
3199
3200 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
3201 to build the declaration instead of the declaration itself.
3202
0caee1c6
JM
32032001-10-02 Jason Merrill <jason_merrill@redhat.com>
3204
48c8b0be
JM
3205 * decl2.c (cxx_decode_option): Add 'else'.
3206
0caee1c6
JM
3207 * spew.c (end_input): No longer static.
3208 * cp-tree.h: Declare it.
3209 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
3210
80a497e4
JM
32112001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
3212
3213 * call.c (build_over_call), typeck.c (build_function_call_real):
3214 Pass type attributes to check_function_format rather than name or
3215 assembler name. Don't require there to be a name or assembler
3216 name to check formats.
3217
6431177a
JM
32182001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
3219
3220 * decl.c (init_decl_processing): Don't call
3221 init_function_format_info. Initialize lang_attribute_table
3222 earlier.
3223 (builtin_function): Call decl_attributes.
3224 (insert_default_attributes): New.
3225
55b3d665
JM
32262001-10-01 Jason Merrill <jason_merrill@redhat.com>
3227
3228 * decl.c (grokdeclarator): Copy array typedef handling from C
3229 frontend.
3230
3231 * decl.c (grokdeclarator): Copy too-large array handling from C
3232 frontend.
3233
9f57ca19
AO
32342001-09-29 Alexandre Oliva <aoliva@redhat.com>
3235
3236 * config-lang.in (target_libs): Added target-gperf, so that we
3237 don't try to build it if C++ is disabled.
3238
749ced52
ZW
32392001-09-23 Zack Weinberg <zack@codesourcery.com>
3240
3241 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
3242 (cp/errfn.o): Delete rule.
3243 (cp/error.o): Depend on flags.h.
3244 * errfn.c: Delete file.
3245 * cp-tree.h: Declare warn_deprecated. Remove definitions of
3246 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
3247 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
3248 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
3249 internal_error respectively. Make cp_deprecated into a macro.
3250 Don't define cp_printer typedef or declare cp_printers.
3251 * error.c: Include flags.h.
3252 Delete: struct tree_formatting_info, print_function_argument_list,
3253 print_declaration, print_expression, print_function_declaration,
3254 print_function_parameter, print_type_id, print_cv_qualifier_seq,
3255 print_type_specifier_seq, print_simple_type_specifier,
3256 print_elaborated_type_specifier, print_rest_of_abstract_declarator,
3257 print_parameter_declaration_clause, print_exception_specification,
3258 print_nested_name_specifier, and definition of cp_printers.
3259 (locate_error): New function.
3260 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
3261 rewritten in terms of locate_error and diagnostic.c.
3262 (cp_tree_printer): Rename cp_printer; wire up to *_to_string
3263 instead of deleted print_* routines. Handle %C, %L, %O, %Q also.
3264 (init_error): Adjust to match.
3265
bb9f8221
RK
3266Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3267
3268 * Make-lang.in (CXX_C_OBJS): Add attribs.o.
3269
67231816
RH
32702001-09-21 Richard Henderson <rth@redhat.com>
3271
3272 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
3273 (build_vtbl_initializer): Likewise.
3274 (build_vfn_ref): New.
3275 * cp-tree.h: Declare it.
3276 * call.c (build_over_call): Use it.
3277 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
3278 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
3279
c9574c9f
R
3280Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com>
3281
3282 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
3283
91d231cb
JM
32842001-09-21 Joseph S. Myers <jsm28@cam.ac.uk>
3285
3286 Table-driven attributes.
3287 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
3288 * decl2.c (cplus_decl_attributes): Only take one attributes
3289 parameter.
3290 * cp-tree.c (cplus_decl_attributes): Update prototype.
3291 * class.c (finish_struct), decl.c (start_decl, start_function),
3292 decl2.c (grokfield), friend.c (do_friend), parse.y
3293 (parse_bitfield): Update calls to cplus_decl_attributes.
3294 * decl.c (grokdeclarator): Take a pointer to a single ordinary
3295 attribute list.
3296 * decl.h (grokdeclarator): Update prototype.
3297 * decl2.c (grokfield): Take a single ordinary attribute list.
3298 * friend.c (do_friend): Likewise.
3299 * decl.c (shadow_tag, groktypename, start_decl,
3300 start_handler_parms, grokdeclarator, grokparms, start_function,
3301 start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
3302 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
3303 (process_template_parm, do_decl_instantiation): Pass single
3304 ordinary attribute lists around.
3305 * decl.c (grokdeclarator): Correct handling of nested attributes.
3306 Revert the patch
3307 1998-10-18 Jason Merrill <jason@yorick.cygnus.com>
3308 * decl.c (grokdeclarator): Embedded attrs bind to the right,
3309 not the left.
3310 .
3311 * cp-tree.h (cp_valid_lang_attribute): Remove declaration
3312 (cp_attribute_table): Declare.
3313 * decl.c (valid_lang_attribute): Don't define.
3314 (lang_attribute_table): Define.
3315 (init_decl_processing): Initialize lang_attribute_table instead of
3316 valid_lang_attribute.
3317 * tree.c (cp_valid_lang_attribute): Remove.
3318 (handle_java_interface_attribute, handle_com_interface_attribute,
3319 handle_init_priority_attribute): New functions.
3320 (cp_attribute_table): New array.
3321 * decl2.c (import_export_class): Don't use
3322 targetm.valid_type_attribute.
3323
a1bda5f1
GDR
33242001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3325
e6b9638b
JM
3326 * Make-lang.in (cp/error.o): Depend on real.h
3327 * error.c: #include "real.h"
a1bda5f1 3328
cb6edbcb
KG
33292001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3330
3331 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
3332 xmalloc/strcpy/strcat.
3333
83182544
KG
33342001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3335
3336 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
3337 Const-ification.
3338 * pt.c (tsubst_decl): Likewise.
3339
40008eda
KG
33402001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3341
3342 * decl2.c (lang_f_options): Const-ification.
3343 * lex.c (cplus_tree_code_name): Likewise.
3344 * spew.c (yyerror): Likewise.
3345
39e78d8b
NS
33462001-09-06 Nathan Sidwell <nathan@codesourcery.com>
3347
3348 PR c++/3986
3349 * class.c (force_canonical_binfo_r): Check & move an indirect
3350 primary base first.
3351 (force_canonical_binfo): Check that it's not already
3352 canonical.
3353 (mark_primary_virtual_base): Remove BINFO parameter.
3354 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
3355
6d0a3f67
NS
33562001-09-06 Nathan Sidwell <nathan@codesourcery.com>
3357
3358 Remove TYPE_NONCOPIED_PARTS.
3359 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
3360 CLASSTYPE_PURE_VIRTUALS.
3361 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
3362 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
72a08131 3363 (layout_class_type): Don't call fixup_inline_methods here ...
6d0a3f67
NS
3364 (finish_struct_1): ... call it here.
3365
4f8e1232
MM
33662001-09-04 Mark Mitchell <mark@codesourcery.com>
3367
3368 * decl.c (duplicate_decls): Remove code deadling with
3369 DECL_SAVED_INSNS.
3370 * decl2.c (finish_file): Likewise.
3371 * pt.c (instantiate_decl): Likewise.
3372 * semantics.c (expand_body): Don't defer local functions if
3373 they wouldn't be deferred for some other reason. Don't
3374 generate RTL for functions that will not be emitted.
3375 (genrtl_start_function): Remove code deadling with
3376 DECL_SAVED_INSNS.
3377 (genrtl_finish_function): Likewise.
3378
da86f08f
NS
33792001-09-04 Nathan Sidwell <nathan@codesourcery.com>
3380
3381 PR c++/4203
3382 * call.c (build_over_call): Do not optimize any empty base
3383 construction.
3384
38066e83
KL
33852001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3386
3387 * error.c (dump_template_decl): Output template parameters
3388 together with their specifiers.
3389 Output `class' prefix for template template parameter.
3390 (dump_decl): Fix formatting.
3391
598e9ba5 33922001-08-30 Kurt Garloff <garloff@suse.de>
749ced52 3393
598e9ba5
KG
3394 * optimize.c (inlinable_function_p): Allow only smaller single
3395 functions. Halve inline limit after reaching recursive limit.
749ced52 3396
f232e4a5
JR
33972001-08-30 Joern Rennecke <amylaar@redhat.com>
3398 Jason Merrill <jason_merrill@redhat.com>
3399
3400 * class.c (build_vtable_entry_ref): Subtract in char*, not
3401 ptrdiff_t.
3402
0213a355
JM
34032001-08-23 Jason Merrill <jason_merrill@redhat.com>
3404
3405 * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
3406 (build_cplus_array_type): Use cp_build_qualified_type, not
3407 TYPE_MAIN_VARIANT, to get an unqualified version.
3408
3409 * decl2.c (grok_alignof): Lose.
3410 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
3411 * typeck.c (c_alignof): Lose.
3412 * semantics.c (finish_sizeof, finish_alignof): New.
3413 * parse.y: Use them.
3414 * cp-tree.h: Declare them.
3415
fd10dd09
JM
34162001-08-22 Jason Merrill <jason_merrill@redhat.com>
3417
3418 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
3419 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
3420 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
3421
baeb4732
JJ
34222001-08-19 Jakub Jelinek <jakub@redhat.com>
3423
3424 * typeck2.c (add_exception_specifier): Only require complete type if
3425 not in processing template declaration.
3426
1c0cc57e
KG
34272001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3428
3429 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
3430 GNU_xref_start_scope and GNU_xref_end_scope.
3431
3432 * tree.c (TYPE_HASH): Moved to ../tree.h.
3433
9a52d09b
MM
34342001-08-16 Mark Mitchell <mark@codesourcery.com>
3435
3436 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
3437 on COMPOUND_EXPRs.
3438
b5d1cbd2
RH
34392001-08-14 Richard Henderson <rth@redhat.com>
3440
3441 * class.c, cp-tree.h (build_vfn_ref): Remove.
3442 * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
3443
63d6f87a
MM
34442001-08-13 Mark Mitchell <mark@codesourcery.com>
3445
3446 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
3447 empty class assignment as having side-effects to avoid
3448 spurious warnings.
3449
e78d8e51
ZW
34502001-08-13 Zack Weinberg <zackw@panix.com>
3451
3452 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
3453 * except.c: Include libfuncs.h.
3454
a60af04a
GDR
34552001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3456
3457 * decl.c (grokdeclarator): Clarify diagnostic message.
3458
3605b283
KL
34592001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3460
3461 * decl2.c (do_nonmember_using_decl): Replace using directive
3462 with using declaration in the error message.
3463
4d5f3fbd
KL
34642001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3465
3466 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
3467 criterion to avoid rebuilding expression tree instead of
3468 processing_template_decl.
3469
07b2f2fd
JM
34702001-08-07 Jason Merrill <jason_merrill@redhat.com>
3471
3472 Support named return value optimization for inlines, too.
3473 * decl.c (finish_function): Nullify returns here.
3474 * semantics.c (genrtl_start_function): Not here.
3475 (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
3476 (nullify_returns_r): No longer static. Just clear RETURN_EXPR.
3477 Also nullify the CLEANUP_STMT for the nrv.
3478 * cp-tree.h: Declare it.
3479 * optimize.c (declare_return_variable): Replace the nrv with the
3480 return variable.
3481 * typeck.c (check_return_expr): Be more flexible on alignment check.
3482 Ignore cv-quals when checking for a matching type.
3483
2cc07db4
RH
34842001-08-09 Richard Henderson <rth@redhat.com>
3485
3486 * decl2.c (finish_objects): Use target hooks instead of
3487 assemble_constructor and assemble_destructor.
3488
0ca179b2
JDA
34892001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
3490
3491 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
3492
0830ae44
NS
34932001-08-07 Nathan Sidwell <nathan@codesourcery.com>
3494
3495 PR c++/3820
3496 Stop using TYPE_NONCOPIED_PARTS.
3497 * call.c (build_over_call): Be careful when copy constructing
3498 or assigning to an empty class.
3499 * class.c (check_bases_and_members): It has a
3500 COMPLEX_ASSIGN_REF if it has a vptr.
3501 (layout_class_type): Don't add empty class padding to
3502 TYPE_NONCOPIED_PARTS.
3503 (finish_struct_1): Don't add the VFIELD either.
3504 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
3505 initialization.
3506
59a13e0f
JM
35072001-08-07 Jason Merrill <jason_merrill@redhat.com>
3508
3509 * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
3510
47907859
RH
35112001-08-06 Richard Henderson <rth@redhat.com>
3512
3513 * decl2.c (finish_objects): Pass a symbol_ref and priority to
3514 assemble_{constructor,destructor}. Remove priority handling.
3515
eac69b8a
GDR
35162001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3517
3518 Don't allow template-id in using-declaration.
3519 * decl2.c (validate_nonmember_using_decl): Handle template-ids.
3520 (do_class_using_decl): Likewise.
3521
ef6e958a
NB
35222001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk>
3523
3524 * cp/spew.c (read_token): No need to pop buffers.
3525
dff94ad7
SS
35262001-08-02 Stan Shebs <shebs@apple.com>
3527
3528 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
3529 (fnaddr_from_vtable_entry): Remove decl.
3530 * method.c (use_thunk): Update comment.
3531
026c3f13
AC
35322001-08-01 Andrew Cagney <ac131313@redhat.com>
3533
3534 * repo.c (get_base_filename): Change return value to const char
3535 pointer.
3536
1dbb6023
NS
35372001-08-02 Nathan Sidwell <nathan@codesourcery.com>
3538
3539 Kill -fhonor-std.
3540 * NEWS: Document.
3541 * cp-tree.h (flag_honor_std): Remove.
3542 (CPTI_FAKE_STD): Remove.
3543 (std_node): Remove comment about it being NULL.
3544 (fake_std_node): Remove.
3545 * decl.c (in_fake_std): Remove.
3546 (walk_namespaces_r): Remove fake_std_node check.
3547 (push_namespace): Remove in_fake_std code.
3548 (pop_namespace): Likewise.
3549 (lookup_name_real): Remove fake_std_node check.
3550 (init_decl_processing): Always create std_node. Always add
3551 std:: things there.
3552 (builtin_function): Always put non '_' fns in std.
3553 * decl2.c (flag_honor_std): Remove.
3554 (lang_f_options): Remove honor-std.
3555 (unsupported_options): Add honor-std.
3556 (set_decl_namespace): Remove fake_std_node check.
3557 (validate_nonmember_using_decl): Likewise.
3558 (do_using_directive): Likewise.
3559 (handle_class_head): Likewise.
3560 * dump.c (cp_dump_tree): Likewise.
3561 * except.c (init_exception_processing): Adjust.
3562 * init.c (build_member_call): Remove fake_std_node check.
3563 (build_offset_ref): Likewise.
3564 * lang-options.h: Remove -fhonor-std, -fno-honor-std.
3565 * rtti.c (init_rtti_processing): Adjust.
3566
6ad7895a
APB
35672001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
3568
3569 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
3570 operand while calling cp_tree_equal.
3571
befe7c61
NS
35722001-07-31 Nathan Sidwell <nathan@codesourcery.com>
3573
3574 The 3.0 ABI no longer has vbase pointer fields.
3575 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
3576 FORMAT_VBASE_NAME): Remove.
3577 * method.c (do_build_copy_constructor): Adjust.
3578 (do_build_assign_ref): Adjust.
3579 * search.c (lookup_field_r): Adjust.
3580 * typeck.c (build_component_ref): Adjust.
3581
3582 The 3.0 ABI always has a vtable pointer at the start of every
3583 polymorphic class.
3584 * rtti.c (build_headof_sub): Remove.
3585 (build_headof): Adjust.
3586 (get_tinfo_decl_dynamic): No need to check flag_rtti
3587 here. Adjust.
3588 (create_real_tinfo_var): Explain why we need a hidden name.
3589
20dde49d
NS
35902001-07-31 Nathan Sidwell <nathan@codesourcery.com>
3591
3592 PR c++/3631
3593 * class.c (update_vtable_entry_for_fn): The fixed adjustment
3594 of a virtual thunk should be from declaring base.
3595
b7ad2f8b
NS
35962001-07-31 Nathan Sidwell <nathan@codesourcery.com>
3597
3598 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
3599 the shared virtual base, so preserving inheritance graph order.
3600
57cb6d52
AJ
36012001-07-30 Andreas Jaeger <aj@suse.de>
3602
749ced52 3603 * decl2.c: Remove unused var global_temp_name_counter.
57cb6d52 3604
594280a3
RH
36052001-07-28 Richard Henderson <rth@redhat.com>
3606
3607 * method.c (pending_inlines): Remove.
3608
0ab142b0
NS
36092001-07-27 Nathan Sidwell <nathan@codesourcery.com>
3610
3611 * class.c (mark_primary_virtual_base): Don't adjust base
3612 offsets here.
3613 (dfs_unshared_virtual_bases): Adjust them here.
3614 (mark_primary_bases): Explain why we adjust at the end.
3615
d60d223b
NS
36162001-07-27 Nathan Sidwell <nathan@codesourcery.com>
3617
3618 * class.c (finish_struct_1): When copying the primary base's
3619 VFIELD, make sure we find it is at offset zero.
3620
db3ef87b
KL
36212001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3622
3623 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
3624 tsubst_expr for default template arguments.
3625
312b7c9d
NS
36262001-07-26 Nathan Sidwell <nathan@codesourcery.com>
3627
d60d223b 3628 PR c++/3621
312b7c9d
NS
3629 * spew.c (yylex): Only copy the token's lineno, if it is
3630 non-zero.
3631
648c2206
NS
36322001-07-26 Nathan Sidwell <nathan@codesourcery.com>
3633
3634 PR c++/3624
3635 * call.c (resolve_args): Simplify, call
3636 convert_from_reference.
3637 (build_new_op): Resolve and convert from reference ARG1
3638 earlier. Adjust ARG2 & ARG3 resolve and conversion.
3639
969fd501
NS
36402001-07-26 Nathan Sidwell <nathan@codesourcery.com>
3641
3642 * decl.c (last_function_parm_tags): Remove.
3643 (current_function_parm_tags): Remove.
3644 (init_decl_processing): Adjust.
3645 (start_function): Adjust.
3646 (store_parm_decls): Adjust.
3647
3648 PR c++/3152
3649 * decl.c (grokdeclarator): Detect when a function typedef is
3650 declaring a function, and create last_function_parms correctly.
3651
08ac397c 36522001-07-25 Jason Merrill <jason_merrill@redhat.com>
749ced52 3653
08ac397c
JM
3654 * call.c (joust): Only prefer a non-builtin candidate to a builtin
3655 one if they have the same signature.
3656
3657 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on
3658 it rather than toplevel_bindings_p. Give it a mangled name if static.
3659 (convert_to_reference): Adjust.
3660 * decl2.c (get_temp_name): Lose.
3661 * mangle.c (mangle_ref_init_variable): New fn.
3662 (mangle_guard_variable): Strip the ref-init header.
3663 * cp-tree.h: Adjust.
3664 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
3665 initializer.
3666 (grok_reference_init): Always use DECL_INITIAL.
3667
40260429
NS
36682001-07-25 Nathan Sidwell <nathan@codesourcery.com>
3669
3670 PR c++/3416
3671 * call.c (build_conditional_expr): Recheck args after
3672 conversions.
3673 * cp-tree.h (build_conditional_expr): Move to correct file.
3674 * typeck.c (decay_conversion): Diagnose any unknown types
3675 reaching here.
3676 (build_binary_op): Don't do initial decay or default
3677 conversions on overloaded functions.
3678 (build_static_cast): Don't do a decay conversion here.
3679
ab085207
NS
36802001-07-25 Nathan Sidwell <nathan@codesourcery.com>
3681
3682 PR c++/3543
3683 * typeck.c (condition_conversion): Resolve an OFFSET_REF.
3684 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
3685
0abe00c5
NS
36862001-07-25 Nathan Sidwell <nathan@codesourcery.com>
3687
3688 * class.c (build_vtbl_or_vbase_field): Remove, move into ...
3689 (create_vtbl_ptr): ... here.
3690
90b1ca2f
NS
36912001-07-25 Nathan Sidwell <nathan@codesourcery.com>
3692
3693 * class.c (build_vbase_offset_vbtl_entries): Look for
3694 non-primary base of which we are a sub vtable.
3695
cfe5dc31
PE
36962001-07-24 Phil Edwards <pme@sources.redhat.com>
3697
3698 * semantics.c (finish_this_expr): Remove unused code.
3699
7f54a851
NS
37002001-07-24 Nathan Sidwell <nathan@codesourcery.com>
3701
3702 Simplify rtti, now we've only one ABI.
3703 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
3704 CPTI_TINFO_VAR_ID.
3705 (tinfo_decl_id, tinfo_var_id): Remove.
3706 (get_typeid_1): Remove.
3707 * rtti.c
3708 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
3709 (typeid_ok_p): New function.
3710 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
3711 (get_tinfo_decl): Remove old abi documentation.
3712 (tinfo_from_decl): Remove.
3713 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
3714 (get_typeid_1): Remove.
3715 (get_base_offset): Remove.
3716 (synthesize_tinfo_var): Absorb get_base_offset.
3717 (create_real_tinfo_var): Don't use tinfo_decl_id.
3718
18fee3ee
GS
37192001-07-23 Graham Stott <grahams@redhat.com>
3720
3721 * cp/class.c (type_requires_array_cookie): Fix use of uninitialised
3722 variable has_two_argument_delete_p.
3723
c4372ef4
NS
37242001-07-21 Nathan Sidwell <nathan@codesourcery.com>
3725
3726 Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
3727 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
3728 (CPTI_INDEX_IDENTIFIER): Remove.
3729 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
3730 (delta2_identifier): Remove.
3731 (index_identifier): Remove.
3732 (pfn_or_delta2_identifier): Remove.
3733 (flag_vtable_thunks): Remove.
3734 (VTABLE_DELTA2_NAME): Remove.
3735 (VTABLE_INDEX_NAME): Remove.
3736 (FNADDR_FROM_VTABLE_ENTRY): Adjust.
3737 (vfunc_ptr_type_node): Adjust.
3738 (VTABLE_NAME_PREFIX): Adjust.
3739 (build_vfn_ref): Lose first parameter.
3740 (fixup_all_virtual_upcast_offsets): Remove.
3741 * decl.c (initialize_predefined_identifiers): Remove
3742 delta2_identifier, index_identifier, pfn_or_delta2_identifier.
3743 (init_decl_processing): Remove no-vtable-thunk code.
3744 * decl2.c (flag_vtable_thunks): Remove.
3745 (mark_vtable_entries): Remove no-vtable-thunk code.
3746 * error.c (dump_decl): Remove no-vtable-thunk code.
3747 (dump_expr): Adjust ptr to member function code.
3748 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
3749 code.
3750 * rtti.c (build_headof): Remove no-vtable-thunk code.
3751 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
3752 * search.c (get_base_distance): Remove expand_upcast_fixups case.
3753 (virtual_context) Remove.
3754 (expand_upcast_fixups): Remove.
3755 (fixup_virtual_upcast_offsets): Remove.
3756 (fixup_all_virtual_upcast_offsets): Remove.
3757 * typeck.c (get_member_function_from_ptrfunc): Remove
3758 no-vtable-thunk code.
3759 * call.c (build_over_call): Adjust call to build_vfn_ref.
3760 * class.c (build_vfn_ref): Lose first parameter. Remove
3761 no-vtable-thunk code.
3762 (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
3763 (build_vtable_entry): Remove no-vtable-thunk code.
3764
3461fba7
NS
37652001-07-20 Nathan Sidwell <nathan@codesourcery.com>
3766
3767 Remove old-abi remnants. Remove comments about old abi
aba649ba 3768 behaviour. Remove references to 'new-abi' in comments.
3461fba7
NS
3769 * cp-tree.h: Adjust comments.
3770 (vbase_offsets_in_vtable_p): Delete.
3771 (vcall_offsets_in_vtable_p): Delete.
3772 (vptrs_present_everywhere_p): Delete.
3773 (all_overridden_vfuns_in_vtables_p): Delete.
3774 (merge_primary_and_secondary_vtables_p): Delete.
3775 (TYPE_CONTAINS_VPTR_P): Adjust.
3776 (VTT_NAME_PREFIX): Remove.
3777 (CTOR_VTBL_NAME_PREFIX): Remove.
3778 (init_vbase_pointers): Remove.
3779 * class.c: Adjust coments.
3780 (build_vbase_pointer_fields): Delete.
3781 (build_vbase_pointer): Remove old-abi code.
3782 (build_secondary_vtable): Likewise.
3783 (modify_all_vtables): Likewise.
3784 (create_vtable_ptr): Likewise.
3785 (layout_class_type): Likewise.
3786 (finish_struct_1): Likewise.
3787 (finish_vtbls): Likewise.
3788 (dfs_finish_vtbls): Delete.
3789 (build_vbase_offset_vtbl_entries): Remove old-abi code.
3790 * cvt.c: Adjust comments.
3791 * decl.c: Adjust comments.
3792 * decl2.c: Adjust comments.
3793 * init.c: Adjust comments.
3794 (construct_virtual_bases): Remove old-abi code.
3795 * lang-specs.h: Remove -fno-new-abi.
3796 * mangle.c: Adjust comments.
3797 * rtti.c: Adjust comments.
3798 (get_base_offset): Remove old-abi-code.
3799 * search.c: Adjust comments.
3800 (dfs_init_vbase_pointers): Remove.
3801 (dfs_vtable_path_unmark): Remove.
3802 (init_vbase_pointers): Remove.
3803 * semantics.c: Adjust comments.
3804 (emit_associated_thunks): Remove old-abi code.
3805 * typeck.c: Adjust comments.
3806
1c432a87
DB
38072001-07-20 Daniel Berlin <dan@cgsoftware.com>
3808
3809 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
3810 params.h.
3811
b7076960
MM
38122001-07-19 Mark Mitchell <mark@codesourcery.com>
3813
3814 * class.c (finish_struct_anon): Forbid nested classes.
3815
2b85879e
NB
38162001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
3817
3818 * decl2.c: Don't include dwarfout.h and dwarf2out.h.
3819 * optimize.c: Include debug.h.
3820 (maybe_clone_body): Use debug hook.
3821 * semantics.c: Include debug.h.
3822 (expand_body): Use debug hook.
3823
c60e94a7
NB
38242001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
3825
3826 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
3827
dbc957f1
MM
38282001-07-18 Mark Mitchell <mark@codesourcery.com>
3829
3830 * class.c (type_requires_array_cookie): New function.
3831 (check_methods): Don't try to figure out whether the type needs a
3832 cookie here.
3833 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
3834 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
3835 (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
3836 * pt.c (instantiate_class_template): Don't set
3837 TYPE_VEC_DELETE_TAKES_SIZE.
3838 * NEWS: Document ABI changes from GCC 3.0.
57cb6d52 3839
7ba0b0f7 38402001-07-18 Xavier Delacour <xavier@fmaudio.net>,
749ced52 3841 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7ba0b0f7
XD
3842
3843 * NEWS (Changes in GCC 3.0): Fix typo.
3844
59387d2e
JM
38452001-07-13 Joseph S. Myers <jsm28@cam.ac.uk>
3846
3847 * decl2.c (cplus_decl_attributes): Take a pointer to the node to
3848 which attributes are to be attached, and a flags argument. Update
3849 call to decl_attributes.
3850 (grokfield): Update call to decl_attributes.
3851 * class.c (finish_struct): Update call to cplus_decl_attributes.
3852 * cp-tree.h (cplus_decl_attributes): Update prototype.
3853 * decl.c (start_decl, grokdeclarator, start_function): Update
3854 calls to decl_attributes and cplus_decl_attributes.
3855 * friend.c (do_friend): Update call to cplus_decl_attributes.
3856 * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
3857
7ed47c04
MM
38582001-07-12 Mark Mitchell <mark@codesourcery.com>
3859
3860 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
3861 for `register' variables with an asm-specification.
3862
40b18c0a
MM
38632001-07-11 Mark Mitchell <mark@codesourcery.com>
3864
3865 * semantics.c (finish_asm_stmt): Mark the output operands
3866 to an asm addressable, if necessary.
3867
517c3b80
BE
38682001-07-11 Ben Elliston <bje@redhat.com>
3869
219670f1
BE
3870 * Revert this change -- there is a subtle bug.
3871
517c3b80
BE
3872 PR c++/80
3873 * decl.c (finish_enum): New "attributes" argument; pass it to
3874 cplus_decl_attributes. Use a narrower type if the enum is packed.
3875 * cp-tree.h (finish_enum): Adjust prototype.
3876 * parse.y (enum_head): New non-terminal.
3877 (structsp): Use it. Enums now may be preceded or followed by
3878 optional attributes -- pass their chained tree to finish_enum().
3879 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
3880
2ba9c47e
MM
38812001-07-10 Mark Mitchell <mark@codesourcery.com>
3882
3883 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
3884 variables.
3885
35241192
JM
38862001-07-10 Jason Merrill <jason_merrill@redhat.com>
3887
3888 * semantics.c (cp_expand_stmt): Fix for null
3889 current_function_return_value.
3890
07167a18
JM
38912001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl>
3892
3893 * call.c (build_op_delete_call): Initialize fn.
3894 (convert_like_real): Delete conditional.
3895 (joust): Initialize *w and *l.
3896 * class.c: Add prototype for binfo_ctor_vtable.
3897 (get_primary_binfo): Initialize result.
3898 * init.c (build_java_class_ref): Initialize name.
ae818d3b 3899
35241192
JM
39002001-07-09 Erik Rozendaal <dlr@acm.org>
3901
ae818d3b
ER
3902 * typeck.c (unary_complex_lvalue): Do not duplicate the
3903 argument to modify, pre-, or post-increment when used as an
3904 lvalue and when the argument has side-effects.
3905
12a68f1f
JM
39062001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
3907
3908 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
3909 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call
3910 cplus_decl_attributes even if attrs is NULL.
3911 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
3912
f7a4cec0
JM
39132001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
3914
3915 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
3916 calls to decl_attributes.
3917
c80106a4
IR
39182001-07-06 Ira Ruben <ira@apple.com>
3919
ae818d3b 3920 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
c80106a4
IR
3921 be DECL_TEMPLATE_RESULT.
3922
dac65501
KL
39232001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3924
3925 * cp-tree.h (copy_template_template_parm): Rename to ...
3926 (bind_template_template_parm): ... here.
3927 * tree.c (copy_template_template_parm): Rename to ...
3928 (bind_template_template_parm): ... here. Remove the case when
3929 NEWARGS is NULL_TREE.
3930 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
3931 BOUND_TEMPLATE_TEMPLATE_PARM.
3932 * pt.c (lookup_template_class): Adjust.
3933
01f9e964
JM
39342001-07-05 Jason Merrill <jason_merrill@redhat.com>
3935
3936 * cvt.c (convert_lvalue): New fn.
3937 * cp-tree.h: Declare it.
3938 * method.c (do_build_assign_ref): Use it.
3939 (do_build_copy_constructor): Convert parm to base types
3940 before calling base constructors.
3941
3942 * typeck.c (check_return_expr): Check DECL_ALIGN instead of
3943 DECL_USER_ALIGN. Check flag_elide_constructors instead of
3944 optimize.
3945 * semantics.c (cp_expand_stmt): Don't destroy the named return value.
3946
6be77748
NS
39472001-07-02 Nathan Sidwell <nathan@codesourcery.com>
3948
3949 * optimize.c (optimize_inline_calls): New function, broken out
3950 of ...
3951 (optimize_function): ... here. Call it. Don't inline if it is
3952 a thunk.
3953 (dump_function): Print name of dump flag causing this dump.
3954 * semantics.c (expand_body): Move thunk inline check to
3955 optimize_function.
3956
8d8e52be
JM
39572001-06-29 Joseph S. Myers <jsm28@cam.ac.uk>
3958
3959 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
3960 (comptypes): Use target.comp_type_attributes.
3961
5a0db193
NS
39622001-06-29 Nathan Sidwell <nathan@codesourcery.com>
3963
3964 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
3965
46f018e1
GDR
39662001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3967
3968 * error.c (lang_print_error_function): Add a `diagnostic_context *'
3969 parameter. Tweak.
3970
501990bb
NB
39712001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk>
3972
3973 * decl2.c (import_export_class): Update.
3974
f68fc4db
GDR
39752001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
3976
3977 * error.c (init_error): Adjust settings.
3978
9596ddd6
GDR
39792001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
3980
3981 * error.c (init_error): Adjust settings.
3982
c93586fa
RS
39832001-06-19 Richard Sandiford <rsandifo@redhat.com>
3984
3985 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
3986 return pointers to data members by reference rather than by value.
3987
0d97bf4c
JM
39882001-06-18 Jason Merrill <jason_merrill@redhat.com>
3989
3990 Implement the Named Return Value optimization.
3991 * cp-tree.h (struct cp_language_function): Add x_return_value.
3992 (current_function_return_value): Now a macro.
3993 * decl.c: Don't define it.
3994 (define_label, finish_case_label): Don't clear it.
3995 (init_decl_processing): Don't register it with GC.
3996 * semantics.c (genrtl_finish_function): Don't check it for
3997 no_return_label. Copy the RTL from the return value to
3998 current_function_return_value and walk, calling...
3999 (nullify_returns_r): ...this new fn.
4000 * typeck.c (check_return_expr): Set current_function_return_value.
4001
13de7ec4
JM
40022001-06-15 Jason Merrill <jason_merrill@redhat.com>
4003
4004 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
4005 sharing a ctor vtable with. Merge code for cases 1 and 2.
4006 (binfo_ctor_vtable): New fn.
4007 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
4008
3ea099f1
JM
40092001-06-14 Jason Merrill <jason_merrill@redhat.com>
4010
4011 * class.c (dfs_find_final_overrider): Fix logic.
4012
4013 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
4014 virtual thunk instead of non-virtual.
4015 (get_matching_virtual): Uncomment.
4016
4017 * pt.c (unify): Don't recurse between the POINTER_TYPE and the
4018 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on
4019 PARM, not ARG.
4020
87326ba8
NS
40212001-06-14 Nathan Sidwell <nathan@codesourcery.com>
4022
4023 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
4024 we've not emerged from the hierarchy of RTTI_BINFO on reaching
4025 a non-virtual base.
4026
e065a36e
MM
40272001-06-13 Mark Mitchell <mark@codesourcery.com>
4028
4029 * NEWS: Update release number.
4030
623fe76a
NS
40312001-06-12 Nathan Sidwell <nathan@codesourcery.com>
4032
4033 PR c++/3130, c++/3131, c++/3132
4034 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
4035 * class.c (force_canonical_binfo_r): Move
4036 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
4037 virtual bases unless they're primary and what they're primary
4038 too has been moved.
4039 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
4040 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
4041 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
4042 derived binfo.
4043 (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
4044 (layout_nonempty_base_or_field): Add most derived type
4045 parameter. Adjust.
4046 (layout_empty_base): Likewise.
4047 (build_base_field): Likewise.
4048 (build_base_fields): Likewise.
4049 (propagate_binfo_offsets): Add most derived type
4050 parameter. Skip non canonical virtual bases too.
4051 (dfs_set_offset_for_unshared_vbases): Don't skip primary
4052 bases. Do skip canonical bases.
4053 (layout_virtual_bases): Adjust.
4054 (layout_class_type): Adjust.
4055 (dfs_get_primary_binfo): Build list of virtual primary base
4056 candidates.
4057 (get_primary_binfo): Check that the shared virtual primary
4058 base candidate was found first.
4059 (accumulate_vtbl_inits): Don't do anything for non-vptr
4060 containing binfos. For case 1 primary virtual bases, keep
4061 checking that we've not emerged from the hierarchy of RTTI_BINFO.
4062
7bdcf888
NS
40632001-06-12 Nathan Sidwell <nathan@codesourcery.com>
4064
4065 PR c++/3089
4066 * class.c (dfs_accumulate_vtbl_inits): Always walk down the
4067 hierarchy looking for primary bases for a ctor
4068 vtable. Recursively call oneself, if we meet our primary via
4069 this route and haven't met it yet via inheritance graph order.
4070
25b5b465
MM
40712001-06-11 Mark Mitchell <mark@codesourcery.com>
4072
4073 * lang-options.h: Emit documentation for -fno-honor-std, not
4074 -fhonor-std.
4075
eb2d0614
AO
40762001-06-10 Alexandre Oliva <aoliva@redhat.com>
4077
4078 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
4079 Don't clobber delta.
4080 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
4081
2a2b2d43
GDR
40822001-06-10 Mark Mitchell <mark@codesourcery.com>
4083 Gabriel Dos Reis <gdr@codesourcery.com>
4084
4085 * Make-lang.in (cp/call.o): Depend on diagnostic.h
4086 (cp/typeck.o): Depend on diagnostic.h
4087 (cp/typeck2.o): Depend on diagnostic.h
07167a18 4088 (cp/repo.o): Depend on dignostic.h
2a2b2d43
GDR
4089 * typeck.c: #include diagnostic.h
4090 (convert_for_initialization): Remove extern declaration for
4091 warningcount and errorcount.
4092
4093 * call.c: #include diagnostic.h
4094 (convert_like_real): Remove extern declaration for warnincount and
07167a18 4095 errorcount.
2a2b2d43
GDR
4096
4097 * repo.c: #include diagnostic.h
4098 * typeck2.c: #include diagnostic.h
4099
06d5e633
NS
41002001-06-08 Nathan Sidwell <nathan@codesourcery.com>
4101
4102 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
4103 in previous change.
4104
9ac1bd2e
NS
41052001-06-08 Nathan Sidwell <nathan@codesourcery.com>
4106
4107 PR c++/2929
4108 * friend.c (do_friend): Use push_decl_namespace for classes at
4109 namespace scope.
4110
85a9a0a2
NS
41112001-06-08 Nathan Sidwell <nathan@codesourcery.com>
4112 Jason Merrill <jason_merrill@redhat.com>
4113
4114 PR c++/3061
4115 * class.c (build_secondary_vtable): Use assert, rather than an error
4116 message.
4117 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
4118 (dfs_accumulate_vtbl_inits): A lost primary virtual base may
4119 be between ORIG_BINFO and RTTI_BINFO, but neither of them.
4120 Don't set BINFO_VTABLE for a primary virtual base.
4121
daa8df65
MM
41222001-06-07 Mark Mitchell <mark@codesourcery.com>
4123
4124 * decl.c (duplicate_decls): Update source position information
4125 when a template function is defined.
4126
37344b9b
PE
41272001-06-07 Phil Edwards <pme@sources.redhat.com>
4128
4129 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h.
4130
fcebb2dd
NS
41312001-06-07 Nathan Sidwell <nathan@codesourcery.com>
4132
4133 PR c++/2914
4134 * decl.c (pushtag): Don't push into a complete type's scope.
4135
d0cd8b44
JM
41362001-06-06 Jason Merrill <jason_merrill@redhat.com>
4137
4138 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
4139 (struct lang_decl_flags): Lose generate_with_vtable_p.
4140 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
4141 * class.c (copy_virtuals): Adjust.
4142 * decl2.c (mark_vtable_entries): Adjust.
4143 * method.c (make_thunk, build_vtable_entry): Adjust.
4144 * class.c (update_vtable_entry_for_fn): Only look as far as the
4145 first defining class.
07167a18 4146 (build_vtbl_initializer): Put nothing in the slot for a function only
d0cd8b44 4147 defined in a lost primary virtual base.
07167a18 4148 (add_vcall_offset_vtbl_entries_1): Use the same code for
d0cd8b44
JM
4149 the lost primary case and the normal case.
4150 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
4151 (get_vfield_offset, get_derived_offset): Lose.
4152 (dfs_find_final_overrider): Use look_for_overrides_here.
4153 (get_matching_virtual): New fn.
4154 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
4155 not BV_VCALL_INDEX.
4156 * search.c (look_for_overrides_here): Split out from...
4157 (look_for_overrides_r): Here.
4158
4159 * class.c (find_final_overrider): Return error_mark_node on error.
4160
4161 * decl2.c (key_method): #if 0 accidental change.
4162
acf97e0b
JDA
41632001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
4164
4165 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
4166 (build_over_call): Likewise.
4167 * decl.c (grokparms): Likewise.
4168 * pt.c (tsubst_decl): Likewise.
4169 * typeck.c (convert_arguments): Likewise.
4170
7e9abee9
MM
41712001-06-05 Mark Mitchell <mark@codesourcery.com>
4172
47ee8904
MM
4173 * semantics.c (begin_class_definition): Robustify.
4174
7e9abee9
MM
4175 * pt.c (instantiate_decl): Tell the repository code about the
4176 clones, not the cloned functions.
4177 * repo.c (repo_template_used): Explicitly instantiate the cloned
4178 function, not the clones.
4179
bea09693
NS
41802001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4181
4182 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
4183 ICS_BAD_FLAG on created conversion.
4184 (compare_ics): Break out rank.
4185
8f7550ca
NS
41862001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4187
4188 * decl.c (xref_tag): Remove extraneous %s on dependent name
4189 lookup warning.
4190
442e01b6
NS
41912001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4192
4193 * class.c (layout_vtable_decl): Fix off by one error on
4194 build_index_type.
4195 (build_vtt): Likewise.
4196 (build_ctor_vtbl_group): Likewise.
4197
b7442fb5
NS
41982001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4199
4200 * class.c (maybe_indent_hierarchy): New function.
4201 (dump_class_hierarchy_r): Add flags. Dump extra binfo
4202 information, if enabled. Use maybe_indent_hierarchy. Adjust
4203 output format.
4204 (dump_class_hierarchy): Adjust prototype. Adjust output format.
4205 (dump_array, dump_vtable, dump_vtt): New functions.
4206 (finish_struct_1): Adjust hierarchy dumping.
4207 (initialize_vtable): Call dump_vtable.
4208 (build_vtt): Call dump_vtt.
4209 (build_ctor_vtbl_group): Call dump_vtable.
4210 * decl2.c (flag_dump_class_layout): Remove.
4211 (cxx_decode_option): Remove dump translation unit
4212 and dump class hierarchy check. Call dump_switch_p.
4213 (finish_file): Adjust dumping.
4214 (dump.c): Only dump base classes if not TDF_SLIM.
4215 Only dump namespace members if not TDF_SLIM.
4216 * optimize.c (dump_function): New function.
4217 (optimize_function): Call dump_function.
4218 * semantics.c (expand_body): Use dump_enabled_p.
4219
e5410b32
NS
42202001-06-01 Nathan Sidwell <nathan@codesourcery.com>
4221
4222 PR g++/2936
4223 Part missed from first commit
4224 * decl2.c (finish_anon_union): Copy context.
4225
e97c9488
NS
42262001-05-30 Nathan Sidwell <nathan@codesourcery.com>
4227
4228 PR g++/2936
e97c9488
NS
4229 * optimize.c (remap_decl): Remap anonymous aggregate members too.
4230
87d9ac49
NS
42312001-05-26 Nathan Sidwell <nathan@codesourcery.com>
4232
4233 PR g++/2823
4234 * semantics.c (expand_body): Don't optimize thunks.
4235
88657302
RH
42362001-05-25 Sam TH <sam@uchicago.edu>
4237
4238 * cp-tree.h lex.h: Fix header include guards.
4239
42402001-05-25 Mark Mitchell <mark@codesourcery.com>
10841285
MM
4241
4242 * decl.c (init_decl_processing): Tweak.
4243
0b1161fc
MM
42442001-05-24 Mark Mitchell <mark@codesourcery.com>
4245
4246 * decl.c (duplicate_decls): Tidy.
4247 (init_decl_processing): Always set flag_no_builtin.
4248
6f56d925
NS
42492001-05-24 Nathan Sidwell <nathan@codesourcery.com>
4250
4251 PR c++/2184
4252 * decl2.c (do_local_using_decl): Push the decls, even in a
4253 template.
4254
39e0656d
MM
42552001-05-22 Mark Mitchell <mark@codesourcery.com>
4256
4257 * optimize.c (initialize_inlined_parameters): Don't set
4258 TREE_READONLY for a VAR_DECL taking the place of an inlined
4259 PARM_DECL.
4260
0401d499
JM
42612001-05-22 Jason Merrill <jason_merrill@redhat.com>
4262
4263 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
4264 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
4265 attribute.
4266
14fc3426
JM
42672001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
4268
4269 * parse.y: Refer to compound literals as such, not as
4270 constructor-expressions.
4271
3f41ffd8
MM
42722001-05-21 Mark Mitchell <mark@codesourcery.com>
4273
4274 * call.c (build_op_delete_call): Ignore exception-specifications
4275 when looking for matching delete operators.
4276 * init.c (build_new_1): Compute whether or not the allocation
4277 function used is a placement allocation function or not, and
4278 communicate this information to build_op_delete_call.
4279
1a6025b4
JM
42802001-05-21 Jason Merrill <jason_merrill@redhat.com>
4281
90ecce3e
JM
4282 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi.
4283 (build_vtbl_ref): Adjust.
4284 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
4285 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
4286 Re-add vtable-gc.
4287 (unsupported_options): Correspondingly.
4288
4289 * decl2.c (maybe_make_one_only): Check flag_weak, not
4290 supports_one_only().
4291
1a6025b4
JM
4292 * cp-tree.def (START_CATCH_STMT): Lose.
4293 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS.
4294 * tree.c (cp_statement_code_p): Don't case it.
4295 * semantics.c (cp_expand_stmt): Likewise.
4296 * cp-tree.h (START_CATCH_TYPE): Lose.
4297 (HANDLER_TYPE): New.
4298 * except.c (expand_start_catch_block): Don't start any blocks.
4299 Return the type.
4300 (expand_end_catch_block): Don't end any blocks.
4301 * parse.y (handler): Don't pass anything from finish_handler_parms
4302 to finish_handler.
4303 * pt.c (tsubst_expr): Likewise.
4304 * semantics.c (begin_handler): Call note_level_for_catch here.
4305 (finish_handler_parms): Don't return anything.
4306 (genrtl_catch_block, begin_catch_block): Lose.
4307 (genrtl_handler): Call expand_start_catch here.
4308
43092001-05-18 Jason Merrill <jason_merrill@redhat.com>
4310
4311 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
4312 (get_vtable_decl, build_vtt): Not here.
4313
d30a825a
NS
43142001-05-20 Nathan Sidwell <nathan@codesourcery.com>
4315
4316 PR c++/2781
4317 * optimize.c (update_cloned_parm): Copy addressability and other
4318 flags.
4319
3b82c249
KL
43202001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4321
4322 * pt.c (determine_specialization): Ignore artificial functions.
4323
2a967f3d
NB
43242001-05-20 Neil Booth <neil@daikokuya.demon.co.uk>
4325
4326 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
4327 (C_RID_CODE): Remove.
4328 * lex.c (cxx_init_options): Call set_identifier_size. Update.
4329 (init_parse): Don't do it here.
4330
f99df08e
DN
43312001-05-18 Diego Novillo <dnovillo@redhat.com>
4332
4333 * decl2.c (finish_objects): Use the original SYMBOL_REF from the
4334 function declaration to avoid stripping the symbol's attributes.
4335
2b0cbc5d
NS
43362001-05-18 Nathan Sidwell <nathan@codesourcery.com>
4337
4338 * decl.c (pushdecl): Adjust error string.
4339 (xref_tag): Adjust friend class injection warning. Remove the
4340 inherited name from the class shadowed scope.
4341
e6855a2d
MM
43422001-05-17 Mark Mitchell <mark@codesourcery.com>
4343
4344 * except.c (cp_protect_cleanup_actions): New function.
07167a18 4345 (init_exception_processing): Don't set protect_cleanup_actions
e6855a2d
MM
4346 here. Do set lang_protect_cleanup_actions.
4347
cc469ee9
NS
43482001-05-16 Nathan Sidwell <nathan@codesourcery.com>
4349
4350 * spew.c (read_token): Call yyerror on all unexpected tokens.
4351
3f0a9b35
NS
43522001-05-16 Nathan Sidwell <nathan@codesourcery.com>
4353
4354 * init.c (member_init_ok_or_else): Take a tree rather than
4355 string for name.
4356 (expand_member_init): Adjust.
4357
8d0cb60d
NC
43582001-05-14 Nick Clifton <nickc@cambridge.redhat.com>
4359
4360 * decl.c (duplicate_decls): Suppress warning about duplicate
749ced52 4361 decls if the first decl is a friend.
8d0cb60d 4362
1f730ff7
ZW
43632001-05-12 Zack Weinberg <zackw@stanford.edu>
4364
4365 * except.c (choose_personality_routine): Export. Add
4366 explanatory comment. Take an enum languages, not a boolean.
4367 (initialize_handler_parm): Adjust to match.
4368 * cp-tree.h: Prototype choose_personality_routine.
4369 * lex.c (handle_pragma_java_exceptions): New function.
4370 (init_cp_pragma): Register #pragma GCC java_exceptions.
4371
90e0c410
NB
43722001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
4373
4374 * method.c (build_mangled_C99_name): Remove unused prototype.
4375
cb7fdde2
AO
43762001-05-12 Alexandre Oliva <aoliva@redhat.com>
4377
4378 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
4379 * typeck.c (get_member_function_from_ptrfunc,
4380 build_ptrmemfunc, expand_ptrmemfunc_cst): Take
4381 TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
18ae7f63
AO
4382
4383 Reverted Geoff Keating's 2001-05-03's patch.
4384
401deb20
IR
43852001-05-11 Ira Ruben <ira@apple.com>
4386
4387 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
4388
8e93d446
NB
43892001-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
4390
4391 * cp-tree.h (finish_label_expr, lookup_label): Delete.
4392 * parse.y: Update for '&&'; don't issue warning here.
4393 * semantics.c (finish_label_expr): Delete.
4394
5cdba4ff
MM
43952001-05-07 Mark Mitchell <mark@codesourcery.com>
4396
4397 * splay-tree.h (splay_tree_max): New function.
4398 (splay_tree_min): Likewise.
4399
8e9eff6b
GK
44002001-05-03 Geoffrey Keating <geoffk@redhat.com>
4401
4402 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
4403 (pfn_vflag_identifier): Define.
4404 Update comment about layout of pointer functions.
4405 (build_ptrmemfunc1): Update prototype.
4406 (expand_ptrmemfunc_cst): Update prototype.
4407 * decl.c (initialize_predefined_identifiers): Initialize
4408 pfn_vflag_identifier.
4409 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
4410 an extra field to the type.
07167a18 4411 * expr.c (cplus_expand_constant): Pass 'flag' between
8e9eff6b
GK
4412 expand_ptrmemfunc_cst and build_ptrmemfunc1.
4413 * typeck.c (get_member_function_from_ptrfunc): When
4414 FUNCTION_BOUNDARY < 16, look at additional field to determine
4415 if a pointer-to-member is a real pointer or a vtable offset.
4416 (build_ptrmemfunc1): Add new parameter to contain extra field.
4417 (build_ptrmemfunc): Pass the extra field around.
4418 (expand_ptrmemfunc_cst): Add new parameter to return extra field.
4419 (pfn_from_ptrmemfunc): Ignore the extra field.
4420
acc72c37
MM
44212001-05-03 Mark Mitchell <mark@codesourcery.com>
4422
4423 * cp-tree.h (flag_inline_trees): Update documentation.
4424 * decl.c (init_decl_processing): Adjust handling of
4425 flag_inline_functions and flag_inline_trees to support -O3.
4426 (grokfndecl): Set DECL_INLINE on all functions if that's what
4427 the user requested.
4428 (save_function_data): Clear DECL_INLINE in
4429 current_function_cannot_inline is non-NULL.
4430 * decl2.c (flag_inline_trees): Update documentation.
4431
5158d7ee
NS
44322001-05-03 Nathan Sidwell <nathan@codesourcery.com>
4433
4434 * dump.c (cp_dump_tree, USING_STMT case): New case.
4435 * tree.c (cp_statement_code_p): Add USING_STMT.
4436 * decl2.c (do_using_directive): Add the using directive statement.
4437
4438 * tree.c (walk_tree): Reformat an if block.
4439
80f5bb34
MM
44402001-05-02 Mark Mitchell <mark@codesourcery.com>
4441
4442 * decl.c (compute_array_index_type): Don't try to do anything with
4443 the indices when processing a template.
4444
3e411c3f
KG
44452001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4446
4447 * call.c: NULL_PTR -> NULL.
4448 * class.c: Likewise.
4449 * cvt.c: Likewise.
4450 * decl.c: Likewise.
4451 * decl2.c: Likewise.
4452 * except.c: Likewise.
4453 * init.c: Likewise.
4454 * rtti.c: Likewise.
4455 * search.c: Likewise.
4456 * tree.c: Likewise.
4457 * typeck.c: Likewise.
4458 * typeck2.c: Likewise.
4459
46188dca
MM
44602001-05-02 Mark Mitchell <mark@codesourcery.com>
4461
4462 * decl2.c (do_using_directive): Revert previous patch.
4463
9da99f7d
NS
44642001-05-01 Nathan Sidwell <nathan@codesourcery.com>
4465
4466 * cp-tree.def (USING_STMT): New statement node.
4467 * cp-tree.h (USING_STMT_NAMESPACE): New macro.
4468 * decl2.c (do_using_directive): Add USING_STMT to statement
4469 tree. Don't emit errors when processing template decl.
4470 * pt.c (tsubst_expr, USING_STMT case): New case.
4471 * semantics.c (cp_expand_stmt, USING_STMT case): New case.
4472
4b48a93e
NS
44732001-05-01 Nathan Sidwell <nathan@codesourcery.com>
4474
4475 * call.c (build_new_op): Convert args from reference here.
4476 (build_conditional_expr): Don't convert here.
4477
1bcea8d7
NS
44782001-05-01 Nathan Sidwell <nathan@codesourcery.com>
4479
4480 * spew.c (last_token_id): New static variable.
4481 (read_token): Set it here.
4482 (yyerror): Use it here.
4483
d72040f5
RH
44842001-04-30 Richard Henderson <rth@redhat.com>
4485
749ced52 4486 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
d72040f5
RH
4487 * decl.c: Likewise.
4488
c3aac512
MM
44892001-04-30 Mark Mitchell <mark@codesourcery.com>
4490
4491 * gxxint.texi: Remove.
4492 * Make-lang.in: Remove all traces of gxxint.texi.
4493
5fd893d5
MM
4494Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com>
4495
4496 * decl2.c (start_static_initialization_or_destruction): Correct
4497 logic to handle the -fno-use-cxa-atexit case.
4498
d60e5448
MM
44992001-04-30 Mark Mitchell <mark@codesourcery.com>
4500
4501 * optimize.c (update_cloned_parm): New function.
4502 (maybe_clone_body): Use it. Update the `this' parameter too.
4503
7200764f
JM
45042001-04-29 Joseph S. Myers <jsm28@cam.ac.uk>
4505
4506 * decl2.c (unsupported_options): Add new-abi.
4507 * lang-options.h: Remove no longer supported options.
4508
2d46ec83
NS
45092001-04-27 Nathan Sidwell <nathan@codesourcery.com>
4510
4511 * except.c (can_convert_eh): Don't check template parms,
4512 typename types etc.
4513
02a1a68c
NS
45142001-04-27 Nathan Sidwell <nathan@codesourcery.com>
4515
4516 * optimize.c (maybe_clone_body): Copy parameter names and locations.
4517
5f6eeeb3
NS
45182001-04-27 Nathan Sidwell <nathan@codesourcery.com>
4519
4520 * cp-tree.h (adjust_clone_args): Prototype new function.
4521 * class.c (adjust_clone_args): New function.
4522 * decl.c (start_function): Call it for in charge ctors.
4523
1b28d441
MM
45242001-04-26 Mark Mitchell <mark@codesourcery.com>
4525
4526 * method.c (use_thunk): Make sure that thunks really are emitted
4527 when requested.
4528
0576ec13
NS
45292001-04-26 Nathan Sidwell <nathan@codesourcery.com>
4530
4531 * mangle.c (write_chars): New macro.
4532 (hwint_to_ascii): New function
4533 (write_number): Use it.
4534 (write_integer_cst): Deal with really big numbers.
4535
b96ada87
MM
45362001-04-25 Mark Mitchell <mark@codesourcery.com>
4537
4538 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
4539 the clone.
4540
6bda7a5e
NS
45412001-04-25 Nathan Sidwell <nathan@codesourcery.com>
4542
4543 * decl.c (grokdeclarator): Set context of namespace scope
4544 TYPE_DECLS.
4545
11fe225a
ZW
45462001-04-24 Zack Weinberg <zackw@stanford.edu>
4547
4548 * cp/optimize.c: Include hashtab.h.
4549 (struct inline_data): Add tree_pruner.
4550 (expand_call_inline, expand_calls_inline): Use it when calling
4551 walk_tree.
4552 (optimize_function): Initialize and free tree_pruner.
4553
0ba8a114
NS
45542001-04-24 Nathan Sidwell <nathan@codesourcery.com>
4555
4556 Lazy __FUNCTION__ generation.
4557 * cp-tree.def (FUNCTION_NAME): Remove.
4558 * cp-tree.h (function_name_declared_p): Remove.
4559 (cp_fname_init): Prototype.
4560 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
4561 don't call declare_function_name. Call start_fname_decls.
4562 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
4563 clobber the line number.
4564 (cp_fname_init): New function.
4565 (start_function): Call start_fname_decls.
4566 (finish_function): Call finish_fname_decls.
4567 * lex.c (reswords): Add slots for __FUNCTION__ et al.
4568 (rid_to_yy): Add mappings for __FUNCTION__ et al.
4569 * optimize.c (maybe_clone_body): Remove function_name_declared_p.
4570 * parse.y (VAR_FUNC_NAME): New token.
4571 (primary): Add VAR_FUNC_NAME.
4572 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
4573 generation.
4574 (tsubst, FUNCTION_NAME case): Remove.
4575 (tsubst_copy, FUNCTION_NAME case): Remove.
4576 (tsubst_expr, DECL_STMT case): Be careful with a
4577 DECL_PRETTY_FUNCTION_P.
4578 (instantiate_decl): Remove function_name_declared_p.
4579 * semantics.c (begin_compound_statement): Don't call
4580 declare_function_name here.
4581 (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
4582 (finish_translation_unit): Call finish_fname_decls.
4583 (expand_body): Remove function_name_declared_p.
4584 * typeck2.c (digest_init): Allow any ERROR_MARK.
4585
dfbb4f34
NS
45862001-04-24 Nathan Sidwell <nathan@codesourcery.com>
4587
4588 * pt.c (tsubst_decl): Use VOID_TYPE_P.
4589 * semantics.c: Fix some typos.
4590
e2584c52
PE
45912001-04-23 Phil Edwards <pme@sources.redhat.com>
4592
4593 * cp/decl2.c (flag_honor_std): Always initialize to 1.
4594
d4c3ec27
KG
45952001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4596
4597 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
4598
2ac8a0f9
JM
45992001-04-23 Jason Merrill <jason_merrill@redhat.com>
4600
4601 * except.c (build_throw): Wrap the initialization of the exception
4602 object in a MUST_NOT_THROW_EXPR.
4603 (do_free_exception): #if 0.
4604
968b956a
MM
46052001-04-20 Mark Mitchell <mark@codesourcery.com>
4606
4607 * cp-tree.h (finish_enum): Change prototype.
4608 * decl.c (finish_enum): Reorganize.
4609 * parse.y (structsp): Adjust calls to finish_enum.
11fe225a 4610
aa1826e2
NS
46112001-04-20 Nathan Sidwell <nathan@codesourcery.com>
4612
4613 * tree.c (cp_tree_equal): Adjust final switch formatting. Add
4614 't' case.
4615
06d9f09f
NS
46162001-04-20 Nathan Sidwell <nathan@codesourcery.com>
4617
4618 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
4619 (layout_empty_base): Return at end flag.
4620 (build_base_field): Likewise.
4621 (build_base_fields): Likewise.
4622 (layout_virtual_bases): Don't add 1 to eoc value.
4623 (end_of_class): Use full size for empty bases.
4624 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
4625 empty bases. Don't add 1 to eoc value. Only add trailing padding
4626 if we're an empty class with no empty bases.
4627 (dump_class_hierarchy): Dump size and alignment.
4628
351a0f00
JJ
46292001-04-20 Jakub Jelinek <jakub@redhat.com>
4630
4631 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
4632 ICS_BAD_FLAG.
4633
881cae05
JJ
46342001-04-20 Jakub Jelinek <jakub@redhat.com>
4635
4636 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
4637 is found, look first if name does not match the structure name.
4638
5d2ed28c
MM
46392001-04-19 Mark Mitchell <mark@codesourcery.com>
4640
4641 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
4642 set.
4643 (SET_DECL_LANGUAGE): New macro.
4644 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
4645 (pushdecl): Likewise.
4646 (build_library_fn_1): Likewise.
4647 (build_cp_library_fn): Likewise.
4648 (grokfndecl): Likewise.
4649 (grokvardecl): Mark `extern "C"' variables as having C linkage.
4650 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
4651 * lex.c (retrofit_lang_decl): Likewise.
4652 * mangle.c (mangle_decl_string): Don't mangle the names of
4653 variables declared with C language linkage.
4654 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
11fe225a 4655
41251458
JDA
46562001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca>
4657
4658 * semantics.c (simplify_aggr_init_exprs_r): Don't restore
4659 flag_access_control from uninitialized storage.
4660
1b4a93f7
MM
46612001-04-15 Mark Mitchell <mark@codesourcery.com>
4662
24272dc0
MM
4663 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
4664 * mangle.c (write_pointer_to_member_type): Fix mangling of
4665 pointers to cv-qualified member function types.
4666
1b4a93f7
MM
4667 * init.c (build_delete): Create a SAVE_EXPR for the address if
4668 we're going to use it more than once.
4669
530ec96d
MM
46702001-04-13 Mark Mitchell <mark@codesourcery.com>
4671
4672 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
4673 (expand_ptremfunc_cst): Change prototype.
4674 (delta2_from_ptrmemfunc): Remove.
4675 * expr.c (cplus_expand_constant): Adjust call to
4676 expand_ptrmemfunc_cst.
4677 * typeck.c (build_ptrmemfunc1): Simplify.
4678 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
4679 results in a constant.
4680 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
4681 (delta2_from_ptrmemfunc): Remove.
4682 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
11fe225a 4683
ee8fc32b
JM
46842001-04-12 Jason Merrill <jason_merrill@redhat.com>
4685
4686 * cp-tree.h (decl_namespace_list): New macro.
4687 (struct saved_scope): Add decl_ns_list.
4688 * decl.c (mark_saved_scope): Mark it.
4689 * decl2.c: Lose static decl_namespace_list.
4690 (init_decl2): Don't save it.
4691
48857160
KG
46922001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4693
4694 * cp-tree.h (warn_return_type, yylex): Delete redundant
4695 declarations.
11fe225a 4696
48857160
KG
4697 * decl.c (current_class_depth, global_namespace): Likewise.
4698
4699 * decl2.c (current_class_depth, flag_gnu_xref): Likewise
4700
4701 * repo.c (flag_use_repository): Likewise.
4702
845e14ed
KG
47032001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4704
4705 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
4706 set_block, pushdecl, getdecls, gettags, init_decl_processing,
4707 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
4708 lvalue_or_else, print_lang_statistics, comp_target_types,
4709 unsigned_type, signed_type, signed_or_unsigned_type,
4710 build_function_call, mark_addressable, incomplete_type_error):
4711 Delete redundant declarations.
4712
1951a1b6
JM
47132001-04-11 Jason Merrill <jason_merrill@redhat.com>
4714
4715 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
4716 (TYPE_ANONYMOUS_P): New macro.
4717 (TAGGED_TYPE_P): New macro.
4718 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
4719 (grokfndecl, grokvardecl, grokdeclarator): Likewise.
4720 * tree.c (no_linkage_helper): Likewise.
4721 * semantics.c (begin_class_definition): Likewise.
4722 * pt.c (convert_template_argument): Likewise.
4723 * lex.c (check_for_missing_semicolon): Likewise.
4724
0fb3018c
NS
47252001-04-12 Nathan Sidwell <nathan@codesourcery.com>
4726
4727 * class.c (dfs_unshared_virtual_bases): New function.
4728 (mark_primary_bases): Call it.
4729 (check_bases): Ignore virtual bases when determining
4730 nearly-emptiness.
4731
bbb53468
NS
47322001-04-12 Nathan Sidwell <nathan@codesourcery.com>
4733
4734 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
4735
9b7949d5
MM
47362001-04-11 Mark Mitchell <mark@codesourcery.com>
4737
4738 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
4739 cloned function to the clone.
4740
d6684bc8
KG
47412001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4742
4743 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
4744
4745 * semantics.c: Include expr.h.
4746
a2095778
NS
47472001-04-11 Nathan Sidwell <nathan@codesourcery.com>
4748
4749 * method.c (implicitly_declare_fn): Commonize code for copy ctor
4750 and assignment op. Set TREE_USED for parameter.
4751
78b45a24
MM
47522001-04-10 Mark Mitchell <mark@codesourcery.com>
4753
4754 * class.c (find_final_overrider_data): Add `candidates'.
4755 (dfs_find_final_overrider): Don't issue error messages
4756 prematurely.
4757 (find_final_overrider): Issue error messages here.
4758 (build_base_field): Don't warn about amgibuous direct bases here.
4759 (warn_about_ambiguous_direct_bases): New function.
4760 (layout_class_type): Use it.
4761
0450d74d
RH
47622001-04-10 Richard Henderson <rth@redhat.com>
4763
4764 * typeck.c (build_array_ref): Push the array reference inside
4765 COMPOUND_EXPR and COND_EXPR.
4766
79065db2
MM
47672001-04-05 Mark Mitchell <mark@codesourcery.com>
4768
4769 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
4770 * decl.c (duplicate_decls): Adjust accordingly.
4771 (maybe_commonize_var): Likewise.
4772 (grokfndecl): Likewise.
4773 (start_function): Likewise.
4774 (start_method): Likewise.
4775 * decl2.c (key_method): Likewise.
4776 (import_export_decl): Likewise.
4777 * method.c (implicitly_declare_fn): Likewise.
4778 * optimize.c (maybe_clone_body): Likewise.
11fe225a 4779
fdecbf8a
BK
47802001-04-05 Benjamin Kosnik <bkoz@redhat.com>
4781
b03eced6 4782 * lang-specs.h: Add __DEPRECATED.
fdecbf8a 4783
0b4c1646
R
4784Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com>
4785
4786 * search.c (get_dynamic_cast_base_type): When building a new
4787 constant, set its type to ssizetype.
4788
e59d6709
JJ
47892001-04-04 Jakub Jelinek <jakub@redhat.com>
4790
4791 * optimize.c (expand_call_inline): Only add newly inlined statements
4792 into inlined_stmts.
4793
0c918ce5
MM
47942001-04-03 Mark Mitchell <mark@codesourcery.com>
4795
4796 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
4797 (OPERATOR_FORMAT): Likewise.
4798 (OPERATOR_TYPENAME_FORMAT): Likewise.
4799 * operators.def: Remove old name-mangling information.
4800 * decl.c (grok_op_properties): Adjust accordingly.
4801 * lex.c (init_operators): Likewise.
4802 * rtti.c (get_tinfo_decl): Issue error messages about types that
4803 have variable size.
4804
92788413
MM
48052001-04-03 Mark Mitchell <mark@codesourcery.com>
4806
11fe225a 4807 * decl2.c (import_export_decl): Don't call import_export_class
92788413
MM
4808 when processing an inline member function.
4809 * semantics.c (expand_body): Call import_export_decl before
4810 emitting inline functions.
4811
52a11cbf
RH
48122001-03-28 Richard Henderson <rth@redhat.com>
4813
4814 IA-64 ABI Exception Handling:
4815 * cp-tree.def (EH_SPEC_BLOCK): New.
4816 (MUST_NOT_THROW_EXPR): New.
4817 * cp-tree.h: Update changed function declarations.
4818 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
4819 (CPTI_CALL_UNEXPECTED): New.
4820 (struct cp_language_function): Rename x_eh_spec_try_block
4821 to x_eh_spec_block.
4822 (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
11fe225a 4823 * decl.c (current_binding_level): If no current function
52a11cbf
RH
4824 bindings, revert to scope_chain.
4825 (initialize_predefined_identifiers): Remove __cp_push_exception.
4826 (store_parm_decls): Use begin_eh_spec_block.
4827 (finish_function): Use finish_eh_spec_block.
4828 (mark_lang_function): Update for name changes.
4829 * decl2.c (finish_file): No mark_all_runtime_matches.
4830 * dump.c (cp_dump_tree): Handle new tree codes.
4831 * error.c (dump_expr) [BIND_EXPR]: Fix typo.
4832 * except.c (catch_language_init, catch_language): Remove.
4833 (init_exception_processing): Don't set language code.
4834 Initialize call_unexpected_node, protect_cleanup_actions,
4835 eh_personality_libfunc, lang_eh_runtime_type.
4836 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
4837 (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
4838 (prepare_eh_type): Split out type canonicalizations ...
4839 (build_eh_type_type): ... from here.
4840 (build_eh_type_type_ref): Remove.
4841 (mark_all_runtime_matches): Remove.
4842 (build_exc_ptr): New.
4843 (do_begin_catch, do_end_catch): New.
4844 (do_pop_exception): Remove.
4845 (build_terminate_handler): Remove.
4846 (choose_personality_routine): Split out language choice from ...
4847 (initialize_handler_parm): ... here.
4848 Use MUST_NOT_THROW_EXPR.
4849 (expand_start_catch_block): Use do_begin_catch. Simplify Java
4850 exception object handling.
4851 (expand_start_eh_spec, expand_end_eh_spec): Remove.
4852 (expand_exception_blocks, alloc_eh_object): Remove.
4853 (begin_eh_spec_block, finish_eh_spec_block): New.
4854 (do_allocate_exception, do_free_exception): New.
4855 (expand_throw): Merge into ...
4856 (build_throw): ... here. Update for abi.
4857 * expr.c (cplus_expand_expr): No expand_internal_throw.
4858 Handle MUST_NOT_THROW_EXPR.
4859 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
4860 * semantics.c (*) Update for except.h name changes.
4861 (genrtl_try_block): No protect_with_terminate.
4862 (genrtl_eh_spec_block): New.
4863 (genrtl_handler): Don't emit the goto here.
4864 (cp_expand_stmt): Handle EH_SPEC_BLOCK.
4865 (genrtl_finish_function): Don't expand_exception_blocks.
4866 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
4867
826840d9
RH
48682001-03-28 Richard Henderson <rth@redhat.com>
4869
4870 * decl.c (struct named_label_list): Rename eh_region to
4871 in_try_scope, add in_catch_scope.
4872 (struct binding_level): Rename eh_region to is_try_scope,
4873 add is_catch_scope.
4874 (note_level_for_try): Rename from note_level_for_eh.
4875 (note_level_for_catch): New.
4876 (poplevel): Copy both is_try_scope and is_catch_scope to
4877 the named_label_list struct.
4878 (check_previous_goto_1): Don't check for catch block via
4879 DECL_ARTIFICIAL; use in_try_scope instead.
4880 (check_goto): Likewise.
4881 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
4882 * except.c (expand_start_catch_block): Call note_level_for_catch.
4883 * semantics.c (begin_compound_stmt): Update for note_level_for_try.
4884
531073e7
RH
48852001-03-27 Richard Henderson <rth@redhat.com>
4886
4887 * except.c: Use USING_SJLJ_EXCEPTIONS instead of
4888 exceptions_via_longjmp.
4889
8653a2c3
PE
48902001-03-27 Phil Edwards <pme@sources.redhat.com>
4891
4892 * pt.c (check_default_tmpl_args): Make error messages clearer.
4893
48942001-03-26 Phil Edwards <pme@sources.redhat.com>
4895
4896 * error.c: Also undefine 'A' macro used for cp_printers definition.
4897
911e6107
KG
48982001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4899
4900 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
4901
005a5cb0
MY
49022001-03-26 Mike Yang <yang@research.att.com>
4903 Mark Mitchell <mark@codesourcery.com>
4904
4905 * dump.c (dump_access): New function.
4906 (cp_dump_tree): Use it. Dump basetype information for class
4907 types.
4908
b850de4f
MM
49092001-03-26 Mark Mitchell <mark@codesourcery.com>
4910
4911 * Makefile.in (optimize.o): Depend on params.h.
4912 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
4913 (init_decl_processing): Set flag_no_inline when doing
4914 inlining-on-trees.
4915 * optimize.c: Include params.h.
4916 (struct inline_data): Improve documentation of FNS. Add
4917 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
4918 (INSNS_PER_STMT): New macro.
4919 (remap_block): Use CLONING_P.
4920 (inlinable_function_p): Don't inline big functions.
4921 (expand_call_inline): Keep track of how much inlining we've done.
4922 (optimize_function): Set FIRST_INLINED_FN.
4923 (maybe_clone_body): Set CLONING_P.
4924 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
4925 tree nodes.
4926 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
4927 rest_of_compilation. Clear DECL_RTL for local variables
4928 afterwards.
4929 (clear_decl_rtl): New function.
11fe225a 4930
788bf0e3
NS
49312001-03-26 Nathan Sidwell <nathan@codesourcery.com>
4932
4933 Implement DR 209
4934 * cp-tree.h (skip_type_access_control,
4935 reset_type_access_control): Prototype.
4936 * decl.c (grokdeclarator): Access of friends is not checked.
4937 * parse.y (component_decl_list): Reset type access control.
4938 * semantics.c (decl_type_access_control): Clear
4939 current_type_lookups.
4940 (save_type_access_control): Don't save if not deferring.
4941 (skip_type_access_control, reset_type_access_control): New
4942 functions.
4943 (begin_class_definition): Do type access control for basetypes.
4944 Start deferred access control.
4945 (finish_class_definition): Resume immediate access control if
4946 this is a local class.
4947
730e1556
KG
49482001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4949
4950 * class.c (add_method): Use memcpy/memmove, not bcopy.
4951
4952 * decl.c (duplicate_decls): Likewise.
4953
f1a0345c
JJ
49542001-03-23 Jakub Jelinek <jakub@redhat.com>
4955
4956 * mangle.c (write_discriminator): Use `_0' for discriminator 1,
4957 not `_'.
4958
8e4ce833
JJ
49592001-03-23 Jakub Jelinek <jakub@redhat.com>
4960
4961 * decl.c (local_names): Define.
4962 (push_local_name): New.
4963 (grok_reference_init): Return init if initializing static reference
4964 variable with non-constant instead of emitting it.
4965 Move expand_static_init call to cp_finish_decl.
4966 (layout_var_decl): Call push_local_name.
4967 (maybe_commonize_var): Allow inlining functions even if they have
4968 static local variables, use comdat_linkage for them if flag_weak.
4969 (check_initializer): Call obscure_complex_init if
4970 grok_reference_init returned non-zero.
4971 (save_function_data): Clear x_local_names.
4972 (pop_cp_function_context): Free x_local_names.
4973 (mark_inlined_fns): Remove.
4974 (mark_lang_function): Mark x_local_names.
4975 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
4976 Mark inlined_fns as tree, remove call to mark_inlined_fns.
4977 * class.c (alter_access): Ensure DECL_ACCESS is never set if
4978 DECL_DISCRIMINATOR_P.
4979 * cp-tree.h (cp_language_function): Add x_local_names.
4980 (lang_decl_flags): Add discriminator into u2.
4981 (lang_decl_inlined_fns): Remove.
4982 (lang_decl): inlined_fns is now a TREE_VEC.
4983 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
4984 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
4985 TREE_VEC, not a custom structure.
4986 (optimize_function): Likewise.
4987 * mangle.c (discriminator_for_local_entity): Discriminate among
4988 VAR_DECL local entities.
4989 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
4990 is not valid.
4991
60c87482
BM
49922001-03-22 Bryce McKinlay <bryce@albatross.co.nz>
4993
4994 Add support for Java interface method calls.
4995 * cp-tree.h (struct lang_type): Add java_interface flag.
4996 (TYPE_JAVA_INTERFACE): New macro.
4997 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
4998 by setting TYPE_JAVA_INTERFACE.
4999 * call.c (java_iface_lookup_fn): New static.
11fe225a 5000 (build_over_call): If calling a method declared in a
60c87482
BM
5001 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
5002 expression which resolves the function address.
5003 (build_java_interface_fn_ref): New function.
5004
94c7f30b
RH
50052001-03-22 Richard Henderson <rth@redhat.com>
5006
5007 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
5008 * except.c: Don't include it.
5009
fd8b7a0e 50102001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
826840d9 5011 based on an idea from Joe Buck <jbuck@synopsys.com>
fd8b7a0e
GP
5012
5013 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
5014 New nonterminals.
5015 (data_def, component_decl): Add reductions to bad_decl.
5016
a1c2b86d
JJ
50172001-03-22 Jakub Jelinek <jakub@redhat.com>
5018
5019 * method.c (do_build_assign_ref): Don't use build_modify_expr for
5020 anonymous aggregates, since they don't have assignment operator
5021 method.
5022 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
5023 assignment operators for anonymous structure fields.
5024
46ccf50a
JM
50252001-03-21 Jason Merrill <jason@redhat.com>
5026
5027 * pt.c (instantiate_decl): Abort if we see a member constant
5028 instantiation that doesn't already have its initializer.
5029 Downgrade explicit instantiation without definition to pedwarn.
5030
5031 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
5032 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
5033 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
5034
5035 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
5036 (pending_vtables): Remove.
5037 * decl2.c (pending_vtables): Remove.
5038 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
5039 CLASSTYPE_VTABLE_NEEDS_WRITING.
5040 (import_export_class): Likewise.
5041 (init_decl2): Don't mark pending_vtables.
5042 * lex.c (handle_pragma_vtable): Just sorry.
5043 * pt.c (instantiate_class_template): Don't mess with
5044 CLASSTYPE_VTABLE_NEEDS_WRITING.
5045 (mark_class_instantiated): Likewise.
5046 * ptree.c (print_lang_type): Don't print it.
5047 * semantics.c (begin_class_definition): Don't set it.
5048
5049 * pt.c (template_tail): Replace with last_pending_template.
5050 (maybe_templates, maybe_template_tail): Remove.
5051 (add_pending_template): Adjust.
5052 (instantiate_pending_templates): Adjust.
5053
5054 * cp-tree.h (struct saved_scope): Remove lang_stack field.
5055 (current_lang_stack): Remove.
5056 * decl.c (maybe_push_to_top_level): Don't initialize it.
5057 (duplicate_decls): Use current_lang_depth.
5058 (xref_basetypes): Likewise.
5059 * class.c (current_lang_depth): New fn.
5060 (push_lang_context): Use more varray functionality.
5061 (pop_lang_context): Likewise.
64d9c3fe
JM
5062
5063 * error.c (GLOBAL_THING): Always use '__'.
5064
1c06710a
MM
50652001-03-21 Mark Mitchell <mark@codesourcery.com>
5066
71cb9286
MM
5067 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
5068
1c06710a
MM
5069 * mangle.c (mangle_decl_string): Mangle the names of overloaded
5070 operators, even when they have `extern "C"' linkage.
5071
92643fea
MM
50722001-03-19 Mark Mitchell <mark@codesourcery.com>
5073
5074 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
5075 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5076 where it's not necessary.
5077 (add_method): Remove optimization involving comparison of
5078 DECL_ASSEMBLER_NAME.
5079 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
5080 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5081 where it's not necessary.
5082 (check_methods): Likewise.
5083 (build_clone): Likewise.
5084 (built_vtt): Likewise.
5085 * cp-tree.h (DECL_NEEDED_P): Likewise.
5086 * decl.c (pushtag): Likewise.
5087 (duplicate_decls): Likewise.
5088 (pushdecl): Likewise.
5089 (builtin_function): Likewise.
5090 (build_library_fn_1): Set DECL_LANGUAGE for library functions.
5091 (build_cp_library_fn): Likewise.
5092 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
5093 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5094 where it's not necessary.
5095 (make_rtl_for_nonlocal_decl): Likewise.
5096 (cp_finish_decl): Likewise.
5097 (grokfndecl): Likewise.
5098 (grokvardecl): Likewise.
5099 (grokdeclarator): Likewise.
5100 (start_function): Likewise.
5101 (cp_missing_return_ok_p): Likewise.
5102 * decl2.c (grokclassfn): Likewise.
5103 (check_classfn): Likewise.
5104 (finish_static_data_member_decl): Likewise.
5105 (grokfield): Likewise.
5106 * error.c (GLOBAL_IORD_P): Remove.
5107 (dump_global_iord): Improve output.
5108 (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
5109 * except.c (nothrow_libfn_p): Summarily reject any function not in
5110 namespace-scope.
5111 * init.c (build_java_class_ref): Don't explicitly set
5112 DECL_ASSEMBLER_NAME after calling mangle_decl.
5113 * mangle.c (mangle_decl_string): Handle extern "C" functions.
5114 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
5115 * method.c (set_mangled_name_for_decl): Don't explicitly set
5116 DECL_ASSEMBLER_NAME after calling mangle_decl.
5117 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
5118 IDENTIFIER_GLOBAL_VALUE for the thunk.
5119 * pt.c (set_mangled_name_for_template_decl): Remove.
5120 (check_explicit_specialization): Don't use it.
5121 (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
5122 (tsubst_friend_function): Likewise.
5123 (tsubst_decl): Likewise.
5124 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
5125 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
5126 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5127 where it's not necessary.
5128 (tinfo_base_init): Likewise.
5129 (create_real_tinfo_var): Likewise.
5130 * search.c (looup_field_1): Likewise.
5131 * semantics.c (finish_named_return_value): Likewise.
5132 * tree.c (init_tree): Set lang_set_decl_assembler_name.
11fe225a 5133
d064d75a
GDR
51342001-03-15 Gabriel Dos Reis <gdr@codesourcery.com>
5135
5136 Correct semantics restrictions checking in throw-expression.
5137 * except.c (is_admissible_throw_operand): New function.
5138 (build_throw): Use it.
5139
a3eab619
MM
51402001-03-14 Mark Mitchell <mark@codesourcery.com>
5141
5142 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
5143 and its ilk.
5144
19e7881c
MM
51452001-03-14 Mark Mitchell <mark@codesourcery.com>
5146
5147 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
5148 * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
5149 * decl.c (duplicate_decls): Likewise.
5150 (builtin_function): Likewise.
5151 (build_library_fn): Likewise.
5152 (build_cp_library_fn): Likewise.
5153 (check_initializer): Likewise.
5154 (cp_finish_decl): Likewise.
5155 * decl2.c (grokfield): Likewise.
5156 (grok_function_init): Remove #if 0'd code.
5157 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
5158 * friend.c (do_friend): Likewise.
5159 * init.c (get_temp_regvar): Likewise.
5160 * method.c (make_thunk): Likewise.
5161 * pt.c (tsubst_friend_function): Likewise.
5162 (tsubst_decl): Likewise.
5163 (regenerate_decl_from_template): Likewise.
5164 * semantics.c (genrtl_named_return_value): Likewise.
5165 (expand_body): Likewise.
5166 (genrtl_finish_function): Likewise.
5167 * tree.c (cp_tree_equal): Likewise.
11fe225a 5168
78fe06c2
NS
51692001-03-12 Nathan Sidwell <nathan@codesourcery.com>
5170
5171 * call.c (convert_like_real): Add extra semantics to INNER
5172 parameter. Don't convert to temporary if a user conversion
5173 gives us an lvalue that we're about to bind to a reference.
5174 Set INNER to indicate pending reference binding on recursive
5175 calls.
5176
b3e68a79
NB
51772001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
5178
5179 * cp/lex.c: Delete duplicate pending_lang_change.
5180
51812001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
5182
5183 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
5184 Similarly.
5185 * cp/repo.c (get_base_filename, open_repo_file): Similarly.
5186 * cp/cp-tree.h: Remove file_name_nondirectory prototype.
5187
11642c3a
ZW
51882001-03-09 Zack Weinberg <zackw@stanford.edu>
5189
5190 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
5191
bb6852eb 51922001-03-08 Stan Shebs <shebs@apple.com>
f7687817
SS
5193
5194 * cp-tree.h (set_identifier_local_value): Remove unused decl.
5195
cc937581
ZW
51962001-03-06 Zack Weinberg <zackw@stanford.edu>
5197
5198 * spew.c: Remove references to CPP_OSTRING.
5199
d1188d91
AH
52002001-03-06 Andrew Haley <aph@redhat.com>
5201
5202 * typeck.c (convert_arguments): Check that we have an fndecl.
5203
4eaf1d5b
AH
52042001-03-05 Andrew Haley <aph@redhat.com>
5205
5206 * typeck.c (convert_arguments): Don't do ellipsis conversion for
5207 __built_in_constant_p.
5208
7eeb553c
NS
52092001-03-02 Nathan Sidwell <nathan@codesourcery.com>
5210
5211 * typeck.c (build_static_cast): Allow enum to enum conversions
5212 as per DR 128.
5213
d282fcb2
NS
52142001-03-02 Nathan Sidwell <nathan@codesourcery.com>
5215
5216 * class.c (check_field_decls): Pointers to member do not a
5217 non-pod struct make, as per DR 148.
5218
f86fdf68
NS
52192001-03-02 Nathan Sidwell <nathan@codesourcery.com>
5220
5221 * call.c (joust): cp_pedwarn when using gnu extension concerning
5222 worst conversion sequences.
5223
d6edb99e
ZW
52242001-03-01 Zack Weinberg <zackw@stanford.edu>
5225
5226 * decl.c: Replace all uses of 'boolean' with 'bool'.
5227
f7143427
ZW
52282001-03-01 Zack Weinberg <zackw@stanford.edu>
5229
5230 * lang-specs.h: Add zero initializer for cpp_spec field to
5231 all array elements that need one. Don't put an #ifdef inside
5232 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
5233 use it.
5234
fbfe8c9e
NS
52352001-03-01 Nathan Sidwell <nathan@codesourcery.com>
5236
5237 Implement using decls inside template functions.
5238 * decl2.c (validate_nonmember_using_decl): Don't special case
5239 fake_std_node in the global namespace. Don't reject early when
5240 processing a template.
5241 (do_local_using_decl): Add to statement tree. Don't do further
5242 processing when building a template.
5243 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
5244
4d24a889
NS
52452001-03-01 Nathan Sidwell <nathan@codesourcery.com>
5246
5247 * decl2.c (do_nonmember_using_decl): Don't complain if we find
5248 same function. Do complain about ambiguating extern "C"
5249 declarations.
5250
e5844e6d
NS
52512001-02-28 Nathan Sidwell <nathan@codesourcery.com>
5252
5253 Remove floating point and complex type template constant parms.
5254 * pt.c (convert_nontype_argument): Remove REAL_TYPE and
5255 COMPLEX_TYPE extensions.
5256 (invalid_nontype_parm_type_p): Likewise.
5257
788f238c
JO
52582001-02-27 Jeffrey Oldham <oldham@codesourcery.com>
5259
5260 * except.c (call_eh_info): Revert "match_function"'s type.
5261
73ea87d7
NS
52622001-02-27 Nathan Sidwell <nathan@codesourcery.com>
5263
5264 Fix ctor vtable vcall offsets.
5265 * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
5266 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
5267 (get_matching_base): Remove.
5268 (get_original_base): New function.
11fe225a 5269 (build_vtbl_initializer): Initialize vid.rtti_binfo.
73ea87d7
NS
5270 Use a virtual thunk for a ctor vtable with an index
5271 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
5272 primary base within a constructor vtable. Only set
5273 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
5274 when primary base has been lost.
5275 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
5276
fe730161
JO
52772001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
5278
5279 * call.c (joust): Ensure more_specialized()'s argument length
5280 parameter has correct value for constructors.
5281
e5dd4aad
NS
52822001-02-26 Nathan Sidwell <nathan@codesourcery.com>
5283
5284 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
11fe225a 5285
e5dd4aad
NS
5286 * decl.c (mark_inlined_fns): Prototype.
5287
25200ab2
MM
52882001-02-22 Mark Mitchell <mark@codesourcery.com>
5289
5290 * spew.c (yylex): Correct handling of friends.
5291
f58c04ac
MM
52922001-02-22 Mark Mitchell <mark@codesourcery.com>
5293
5294 * mangle.c (write_encoding): Pass write_function_type the
5295 FUNCTION_DECL for the function being encoded.
5296 (write_function_type): Pass it along to write_bare_function_type.
5297 (write_bare_function_type): Pass it along to write_method_parms.
5298 (write_method_parms): Don't mangle the compiler-generated
5299 parameters to a constructor or destructor.
5300
9c96f3f8
AJ
53012001-02-22 Andreas Jaeger <aj@suse.de>
5302
5303 * optimize.c: Include toplev.h for
5304 note_deferral_of_defined_inline_function prototype.
5305
b3bae5e2
JJ
53062001-02-22 Jakub Jelinek <jakub@redhat.com>
5307
5308 * cp-tree.h (struct lang_decl_inlined_fns): New.
5309 (struct lang_decls): Add inlined_fns.
5310 (DECL_INLINED_FNS): New macro.
5311 * optimize.c (struct inline_data): Add inlined_fns.
5312 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
5313 (inlinable_function_p): Likewise, fix typo in comment,
5314 function is not inlinable if it already inlined function currently
5315 being optimized.
306ef644 5316 (expand_call_inline): Add fn to inlined_fns if necessary.
b3bae5e2
JJ
5317 (optimize_function): Initialize inlined_fns.
5318 Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
5319 * decl.c (mark_inlined_fns): New function.
5320 (lang_mark_tree): Call it.
5321
5daf7c0a
JM
53222001-02-21 Jason Merrill <jason@redhat.com>
5323
5324 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
5325 (DECL_UNINLINABLE): Move to middle-end.
5326
5327 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
5328 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
5329 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
5330 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
5331 parms and outer BLOCK. note_deferral_of_defined_inline_function.
5332
5333 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
5334 second parm of op=.
5335
2c0fc02d
MM
53362001-02-19 Mark Mitchell <mark@codesourcery.com>
5337
5338 * decl2.c (set_decl_namespace): Allow explicit instantiations in
5339 any namespace.
5340
612164eb
KL
53412001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5342
5343 * optimize.c (expand_call_inline): Don't walk subtrees of type
5344 nodes.
5345
69a59a49
MM
53462001-02-18 Mark Mitchell <mark@codesourcery.com>
5347
5348 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
5349 for a destructor.
5350
e0fff4b3
JM
53512001-02-18 Jason Merrill <jason@redhat.com>
5352
5353 Do put the VTT parameter in DECL_ARGUMENTS.
5354 * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
5355 (current_vtt_parm): New macro.
5356 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
5357 (DECL_HAS_VTT_PARM_P): New macro.
5358 (DECL_VTT_PARM): Remove.
5359 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
5360 * decl.c (duplicate_decls): Only copy the operator code if
5361 appropriate.
5362 (start_function): Set current_vtt_parm.
5363 (lang_mark_tree): Don't mark vtt_parm.
9c96f3f8 5364 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
e0fff4b3
JM
5365 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
5366 * class.c (build_clone): Maybe remove the VTT parm.
5367 * optimize.c (maybe_clone_body): Set up the VTT parm.
5368 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
5369 * call.c (build_over_call): Just allow the VTT arg.
5370 * method.c (make_thunk): Don't set DECL_VTT_PARM.
5371 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
5372 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
5373 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
5374 * error.c (dump_function_decl): Likewise.
5375 * call.c (build_user_type_conversion_1, convert_like_real): Abort
5376 if we try to call a constructor with in-charge or VTT parms.
5377 * method.c (skip_artificial_parms_for): New fn.
5378 * call.c (add_function_candidate, build_over_call): Call it.
5379 * call.c (build_new_method_call): Use current_vtt_parm.
5380 * init.c (expand_virtual_init): Likewise.
5381 * class.c (same_signature_p): No longer static.
5382 * cp-tree.h: Declare it.
5383 * search.c (look_for_overrides_r): Use it.
5384
c750255c
MM
53852001-02-17 Mark Mitchell <mark@codesourcery.com>
5386
8fa33dfa
MM
5387 * cp-tree.h (new_abi_rtti_p): Remove.
5388 (name_mangling_version): Likewise.
5389 (flag_do_squangling): Likewise.
5390 * class.c (build_rtti_vtbl_entries): Remove old ABI support.
5391 * decl.c (grokfndecl): Likewise.
5392 * decl2.c (name_mangling_version): Remove.
5393 (flag_do_squangling): Likewise.
5394 (lang_f_options): Remove `squangle'.
5395 (unsupported_options): Add `squangle'.
5396 (cxx_decode_option): Issue a warning about uses of
5397 -fname-mangling-version.
5398 (finish_file): Remove old ABI support.
5399 * pt.c (check_explicit_specialization): Likewise.
5400 (tsubst_decl): Likewise.
5401 * rtti.c (init_rtti_processing): Likewise.
5402 (build_headof): Likewise.
5403 (get_tinfo_decl_dynamic): Likewise.
5404 (tinfo_from_decl): Likewise.
5405 (build_dynamic_cast_1): Likewise.
5406 (synthesize_tinfo_var): Likewise.
12fa82db
MM
5407 * init.c (build_new): Allow enumeration types for the array-bounds
5408 in a direct-new-declarator.
5409
5410 * semantics.c (finish_typeof): Resolve OFFSET_REFs.
5411
c750255c
MM
5412 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
5413 TREE_PROTECTED from the template being specialized.
5414
a714e5c5
JM
54152001-02-17 Jason Merrill <jason@redhat.com>
5416
5417 * decl2.c (build_artificial_parm): Set TREE_READONLY.
5418
9c96f3f8 5419 * decl.c (bad_specifiers): Allow throw specs on things with
a714e5c5
JM
5420 pointer-to-function or -member-function type.
5421 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
5422 a pmf.
5423
8084b91e
MM
54242001-02-17 Mark Mitchell <mark@codesourcery.com>
5425
5426 * call.c (check_dtor_name): Handle template names correctly.
5427
48f22ed2
JM
54282001-02-16 Jason Merrill <jason@redhat.com>
5429
5430 * cp-tree.h (DECL_USE_VTT_PARM): Remove.
5431 * decl2.c (maybe_retrofit_in_chrg): Don't create it.
5432 * optimize.c (maybe_clone_body): Don't substitute it.
5433 * call.c (build_new_method_call): Check in_chrg instead.
5434 * init.c (expand_virtual_init): Likewise.
5435
e8186ecf
GDR
54362001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
5437
5438 * decl.c (check_tag_decl): Make sure a typedef for an anonymous
5439 class-type introduces at least a type-name.
5440
2c1be322
JJ
54412001-02-16 Jakub Jelinek <jakub@redhat.com>
5442
5443 * call.c (convert_like_real): Create a temporary for non-lvalue.
5444
aab8454a
JO
54452001-02-16 Jeffrey Oldham <oldham@codesourcery.com>
5446
5447 * cp-tree.h: Fix typos in comments.
5448
a901fa64
JM
54492001-02-16 Jason Merrill <jason@redhat.com>
5450
5451 * optimize.c (remap_block): If we're compiling a clone, pass the
5452 new block to insert_block.
5453
8853373c
MM
54542001-02-16 Mark Mitchell <mark@codesourcery.com>
5455
5456 * semantics.c (finish_asm_stmt): Robustify.
5457
b60ecc04
MM
54582001-02-15 Mark Mitchell <mark@codesourcery.com>
5459
5460 * pt.c (push_template_decl_real): Don't remangle the name of a
5461 class template.
5462
e658449e
JM
54632001-02-15 Jim Meyering <meyering@lucent.com>
5464
fd48c9b5
DD
5465 * Make-lang.in (c++.install-common): Depend on installdirs.
5466 (c++.install-info): Likewise.
5467 (c++.install-man): Likewise.
e658449e 5468
f1a3f197
MM
54692001-02-15 Mark Mitchell <mark@codesourcery.com>
5470
5471 * typeck2.c (build_m_component_ref): Robustify.
5472
8826b15b
AO
54732001-02-15 Alexandre Oliva <aoliva@redhat.com>
5474
5475 * friend.c (do_friend): Don't take the nested [template] class
5476 into account when deciding whether to warn about the friend
5477 function not referring to a template function.
5478
7161c1a5
JJ
54792001-02-14 Jakub Jelinek <jakub@redhat.com>
5480
5481 * typeck.c (build_unary_op): Clarify error message.
5482
4806765e
AH
54832001-02-08 Aldy Hernandez <aldyh@redhat.com>
5484
a901fa64
JM
5485 * parse.y (component_constructor_declarator): allow optional
5486 parentheses around constructor class name.
4806765e 5487
bfc8e1e2
NS
54882001-02-14 Nathan Sidwell <nathan@codesourcery.com>
5489
5490 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
5491 section.
5492 * init.c (emit_base_init): Remove incorrect comment about
5493 virtual bases.
5494 * method.c (make_thunk): Fix comment alignment.
5495
394fd776
NS
54962001-02-14 Nathan Sidwell <nathan@codesourcery.com>
5497
5498 Kill remnants of this is variable.
5499 * cp-tree.h (flag_this_is_variable): Remove.
5500 * decl2.c (flag_this_is_variable): Remove.
5501 * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
5502 (build_vbase_path): The path is non-static, even in a cdtor.
5503 (resolves_to_fixed_type_p): Add additional return value.
5504 * search.c (init_vbase_pointers): Adjust.
5505 * tree.c (lvalue_p_1): Adjust.
5506 * typeck.c (mark_addressable): Adjust.
5507
d0ab7624
NS
55082001-02-14 Nathan Sidwell <nathan@codesourcery.com>
5509
5510 * pt.c (unify): Don't check cv quals of array types.
5511
7773899b
NS
55122001-02-14 Nathan Sidwell <nathan@codesourcery.com>
5513
5514 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
5515 check whether we already have the type.
5516
52682a1b
MM
55172001-02-13 Mark Mitchell <mark@codesourcery.com>
5518
5519 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
5520 * call.c (build_op_delete_call): Simplify to remove duplicate
5521 code.
5522 * class.c (clone_function_decl): Don't build the deleting variant
5523 of a non-virtual destructor.
5524 * decl.c (finish_destructor_body): Don't call delete if this is a
5525 non-virtual destructor.
5526 * init.c (build_delete): Explicitly call `operator delete' when
5527 deleting an object with a non-virtual destructor.
9c96f3f8 5528
3b6bd115
JM
55292001-02-13 Jason Merrill <jason@redhat.com>
5530
5531 * lang-specs.h: Add more __EXCEPTIONS.
5532
45abaea8
NS
55332001-02-12 Nathan Sidwell <nathan@codesourcery.com>
5534
5535 * typeck2.c (process_init_constructor): Check
5536 TREE_HAS_CONSTRUCTOR before issuing missing init warning.
5537
996065b4
NS
55382001-02-12 Nathan Sidwell <nathan@codesourcery.com>
5539
5540 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
5541 Remove spurious information in comment. Allow further
5542 adjustments of REFERENCE_TYPE args.
5543
82c18d5c
NS
55442001-02-12 Nathan Sidwell <nathan@codesourcery.com>
5545
5546 * errfn.c (cp_deprecated): Tweak diagnostic text.
5547 * parse.y (new_initializer): Deprecate initializer lists
5548 extension.
5549
1f84ec23
MM
55502001-02-12 Mark Mitchell <mark@codesourcery.com>
5551
5552 Remove old ABI support.
5553
8c310e3f
MM
55542001-02-11 Mark Mitchell <mark@codesourcery.com>
5555
b1012f1b
MM
5556 * decl2.c (flag_vtable_thunks): Always set it to 1.
5557 (flag_new_abi): Likewise.
5558 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9c96f3f8 5559
8c310e3f
MM
5560 * Makefile.in (g++spec.o): Fix typo.
5561
3b635dfc
JM
55622001-02-09 Jason Merrill <jason@redhat.com>
5563
5564 * lang-specs.h: Restore definition of __EXCEPTIONS.
5565
bd0d5d4a
JM
55662001-02-08 Jason Merrill <jason@redhat.com>
5567
5568 * search.c (shared_member_p): New function.
5569 (lookup_field_r): Use it.
5570 * cp-tree.h (SHARED_MEMBER_P): Remove.
5571
5572 * method.c (process_overload_item): Handle template-dependent array
5573 bounds.
5574 * pt.c (type_unification_real): If we end up with undeduced nontype
5575 parms, try again.
5576
5577 * decl.c (lookup_name_real): Tweak warning to refer to decls, not
5578 types.
5579
5580 * typeck2.c (friendly_abort): Don't say anything if we have
5581 earlier errors or sorries.
5582
9c96f3f8 5583 * decl.c (check_tag_decl): Notice attempts to redefine bool and
bd0d5d4a
JM
5584 wchar_t. Ignore if in_system_header.
5585
5586 * decl.c (maybe_push_cleanup_level): New fn...
5587 (start_decl_1): ...split out from here.
5588 * cvt.c (build_up_reference): Use it.
5589 * cp-tree.h: Declare it.
5590
a9374841
MM
55912001-02-07 Mark Mitchell <mark@codesourcery.com>
5592
9c96f3f8 5593 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
a9374841
MM
5594 spec.
5595
a87b4257
NS
55962001-02-06 Nathan Sidwell <nathan@codesourcery.com>
5597
5598 * pt.c (lookup_template_class): Make sure it's a primary
5599 template or template_template_parm when called from the parser.
5600 (instantiate_template_class): Add assertion.
5601
518fed76
AO
56022001-02-05 Alexandre Oliva <aoliva@redhat.com>
5603
5604 * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
5605 from error_mark_node.
5606
9965d119
NS
56072001-02-05 Nathan Sidwell <nathan@codesourcery.com>
5608
5609 Fix specification and implementation bugs in V3 ABI
5610 construction vtables.
5611 * cp-tree.h (flag_dump_class_layout): New flag.
5612 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
5613 (BINFO_LOST_PRIMARY_P): New flag.
5614 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
5615 (BINFO_PRIMARY_MARKED_P): Rename to ...
5616 (BINFO_PRIMARY_P): ... here.
5617 (binfo_via_virtual): New prototype.
5618 * decl2.c (flag_dump_class_layout): New flag.
5619 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
5620 use `=' as a file name separator.
5621 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
5622 bases.
5623 (build_vtbl_address): If this is a virtual primary base, then
5624 get the vtbl of what it is ultimately primary for.
5625 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
5626 for BINFO_PRIMARY_P.
5627 (dfs_skip_nonprimary_vbases_markedp): Likewise.
5628 (get_shared_vbase_if_not_primary): Likewise.
5629 (dfs_get_pure_virtuals): Likewise.
5630 (expand_upcast_fixups): Likewise.
5631 (fixup_virtual_upcast_offsets): Likewise.
5632 (dfs_find_vbase_instance): Likewise.
5633 (find_vbase_instance): Likewise.
5634 (binfo_from_vbase): Adjust comment to reflect reality.
5635 (binfo_via_virtual): New function.
5636 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
5637 for binfo walking during VTT construction.
5638 (dfs_mark_primary_bases): Remove.
5639 (force_canonical_binfo_r): New function.
5640 (force_canonical_binfo): New function.
5641 (mark_primary_virtual_base): New function.
5642 (mark_primary_bases): Walk in inheritance graph order, use
5643 mark_primary_virtual_base.
5644 (determine_primary_base): Use some more intermediate variables.
5645 (dfs_find_final_overrider): Don't check for overriding along a
5646 virtual path.
5647 (dfs_modify_vtables): Walk into primary virtual bases too.
5648 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
5649 (build_base_fields): Likewise.
5650 (dfs_set_offset_for_unshared_vbases): Likewise.
5651 (layout_virtual_bases): Likewise.
5652 (end_of_class): Likewise.
5653 (finish_struct_1): Call dump_class_hierarchy, if requested.
5654 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
5655 (dump_class_hierarchy_r): Add stream parameter. Emit more information.
5656 (dump_class_hierarchy): Add file parameter. Append to file, if
5657 required.
5658 (finish_vtbls): Adjust accumulate_vtbl_inits call.
5659 Use canonical base for virtual bases.
5660 (build_vtt): Add more comments. Adjust build_vtt_inits call.
5661 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
5662 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
5663 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
5664 virtual VTTs.
5665 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
5666 from DATA. We want virtual primary bases and all bases via virtual.
5667 Only set BINFO_VPTR_INDEX for top level. Look up from a primary
5668 virtual base when not a construction vtable.
5669 (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
5670 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
5671 Use canonical bases when processing virtual bases.
5672 (accumulate_vtbl_inits): We're interested in any base via a
5673 virtual path.
5674 (dfs_accumulate_vtbl_inits): If this is a primary virtual base
5675 within a construction vtable, determine what is being overridden.
5676 (build_vtbl_initializer): Add more comments
5677 (add_vcall_offset_vtbl_entries_1): Adjust comment.
5678 (build_rtti_vtbl_entries): Check if the base has lost its
5679 primary.
5680
39d6f2e8
MM
56812001-02-05 Mark Mitchell <mark@codesourcery.com>
5682
5683 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
5684
400500c4
RK
5685Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5686
5687 * decl.c (pushdecl): Call abort instead of fatal.
5688 * except.c (decl_is_java_type): Call fatal_error instead of fatal.
5689 * init.c (build_new_1): Likewise.
5690 (build_java_class_ref): Call internal_error and fatal_error, not fatal.
5691 * decl.c (build_typename_type): hash_table_init now returns void.
5692 decl.c (init_decl_processing): Make an error non-fatal.
5693
97458258
MM
56942001-02-04 Mark Mitchell <mark@codesourcery.com>
5695
5696 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
5697 Document.
5698 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
5699 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
5700 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
5701 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
5702 * decl.c (maybe_commonize_var): Use the new name-mangling where
5703 appropriate.
5704 * decl2.c (comdat_linkage): Enhance comments. Make all
5705 compiler-generated things static, if COMDAT is not available.
5706 (get_tinfo_decl): Do not make typeinfo objects that belong in the
5707 library COMDAT.
5708 (tinfo_base_init): Use the correct mangled name for typeinfo
5709 strings, and push them into the global scope.
5710 (typeinfo_in_lib_p): New function.
5711 (synthesize_tinfo_var): Use it.
5712 (create_real_tinfo_var): Likewise.
9c96f3f8 5713
55de1b66
JJ
57142001-02-03 Jakub Jelinek <jakub@redhat.com>
5715
5716 * decl.c (push_class_binding): Use context_for_name_lookup instead
5717 of CP_DECL_CONTEXT.
5718 * search.c (context_for_name_lookup): Remove static. Check for NULL
5719 context in the loop.
5720 * cp-tree.h (context_for_name_lookup): Add prototype.
5721
e92730aa
JJ
57222001-02-02 Jakub Jelinek <jakub@redhat.com>
5723
5724 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
5725 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
5726 Remove.
5727 * call.c (convert_class_to_reference, build_user_type_conversion_1,
5728 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
5729
049f6ec9
MM
57302001-02-02 Mark Mitchell <mark@codesourcery.com>
5731
5732 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
5733 of macros used when compiling g++spec.c.
5734 * g++spec.c (lang_specific_driver): Link with the shared
5735 libgcc by default.
5736
718b8ea5
JM
57372001-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
5738
5739 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
5740 make_reference_declarator, make_call_declarator), method.c
5741 (implicitly_declare_fn), parse.y (namespace_using_decl,
5742 notype_unqualified_id, expr_or_declarator, new_type_id,
5743 after_type_declarator, direct_after_type_declarator,
5744 notype_declarator, complex_notype_declarator,
5745 complex_direct_notype_declarator, qualified_id,
5746 notype_qualified_id, overqualified_id, direct_new_declarator,
5747 absdcl, direct_abstract_declarator, conversion_declarator), pt.c
5748 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
5749 instead of build_parse_node.
5750
f2d1f0ba
KG
57512001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5752
5753 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
5754 (minus_one_node): Moved to top level gcc directory. Renamed
5755 to integer_minus_one_node.
5756
5757 * init.c (init_init_processing): Don't set minus_one_node.
5758 (build_vec_init): Use integer_minus_one_node.
5759
5760 * rtti.c (get_tinfo_decl_dynamic): Likewise.
5761
6001735e
JJ
57622001-01-28 Jakub Jelinek <jakub@redhat.com>
5763
5764 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
5765 identical and they would be replaced with constant, remove
5766 MODIFY_EXPR from the tree.
5767
c913b6f1
KG
57682001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5769
5770 * Make-lang.in: Remove all dependencies on defaults.h.
5771 * call.c: Don't include defaults.h.
5772 * decl.c: Likewise.
5773 * decl2.c: Likewise.
5774 * except.c: Likewise.
5775 * pt.c: Likewise.
5776 * rtti.c: Likewise.
5777 * tree.c: Likewise.
5778 * typeck.c: Likewise.
5779
324ffb8c
JJ
57802001-01-25 Jakub Jelinek <jakub@redhat.com>
5781
5782 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
5783 operators even in "C" linkage.
5784 * method.c (set_mangled_name_for_decl): Likewise.
5785 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
5786 overloaded operators in "C" linkage.
5787
4b2811e9
NS
57882001-01-24 Nathan Sidwell <nathan@codesourcery.com>
5789
5790 * pt.c (tsubst_decl): Remove IN_DECL parameter.
5791 (tsubst_arg_types): Check parameter is not void.
5792 (tsubst): Adjust tsubst_decl call.
5793
d8caf48e
NS
57942001-01-24 Nathan Sidwell <nathan@codesourcery.com>
5795
5796 * call.c (add_builtin_candidate): Quote std properly, from
5797 previous change.
5798
08511114
KL
57992001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5800
5801 * pt.c (check_explicit_specialization): Clone constructors and
5802 destructors.
5803
92ecdfb7
NS
58042001-01-23 Nathan Sidwell <nathan@codesourcery.com>
5805
5806 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
5807 indicates anything special about template depth. Make sure we
5808 only count the user visible template classes.
5809
4cff6abe
NS
58102001-01-23 Nathan Sidwell <nathan@codesourcery.com>
5811
5812 * call.c (build_conv): Typo in comment.
5813 (add_builtin_candidate): Add more explanation.
5814 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
5815 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
5816 when we have enumeral types.
5817 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
5818 candidates for relops and eqops.
5819 (joust): Simplify control flow. Allow a non-template user
5820 function to hide a builtin.
5821
62e4a758
NS
58222001-01-22 Nathan Sidwell <nathan@codesourcery.com>
5823
5824 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
5825 (more_specialized): Add deduction parameter.
5826 * call.c (joust): Adjust more_specialized call.
5827 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
5828 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
5829 (get_bindings_order): Remove.
5830 (get_bindings_real): Add DEDUCE parameter.
5831 (maybe_adjust_types_for_deduction): Return extra unify flags. Do
5832 REFERENCE_TYPE jig for DEDUCE_ORDER.
5833 (type_unification_real): Deal with DEDUCE_ORDER. Use result of
5834 maybe_adjust_types_for_deduction.
5835 (more_specialized): Add DEDUCE parameter. Call get_bindings_real
5836 directly.
5837 (try_one_overload): Use result of maybe_adjust_types_for_deduction.
5838 (check_cv_quals_for_unify): Use new unify qualifier flags.
5839 (unify): Clear new unify qualifier flags.
5840 (get_bindings_real): Add DEDUCE parameter.
5841 (get_bindings): Adjust call to get_bindings_real.
5842 (get_bindings_overload): Likewise.
5843 (most_specialized_instantiation): Adjust call to
5844 more_specialized.
5845
2a2a9e5a
JM
58462001-01-19 Jason Merrill <jason@redhat.com>
5847
5848 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
5849
5850 * decl.c (init_decl_processing): Just force -fvtable-thunks on if
5851 -fnew-abi.
5852
60696c53
JM
58532001-01-19 Ute Pelkmann <scope.muc@t-online.de>
5854
5855 * decl2.c (arg_assoc_class): Fix double iteration logic.
5856
58572001-01-19 Jason Merrill <jason@redhat.com>
5858
5859 * init.c (build_delete): Always call convert_force to strip cv-quals.
5860
5861 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
5862 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
5863 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
5864
1e00f18c
NS
58652001-01-19 Nathan Sidwell <nathan@codesourcery.com>
5866
5867 * search.c (get_vbase_1): Count only virtual bases.
5868
e13bced2
NS
58692001-01-19 Nathan Sidwell <nathan@codesourcery.com>
5870
5871 * class.c (duplicate_tag_error): Robustify flag clearing.
5872
f9c244b8
NS
58732001-01-19 Nathan Sidwell <nathan@codesourcery.com>
5874
5875 * cp-tree.h (lookup_template_class): Add complain parm.
5876 * decl.c (lookup_namespace_name): Adjust call to
5877 lookup_template_class.
5878 (make_typename_type): Likewise.
5879 * semantics.c (finish_template_type): Likewise.
5880 * pt.c (lookup_template_class): Add complain parm. Adjust.
5881 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
5882 (tsubst): Likewise.
5883
08c2df0f
NS
58842001-01-19 Nathan Sidwell <nathan@codesourcery.com>
5885
5886 * pt.c (copy_default_args_to_explicit_spec): Preserve
5887 object's CV quals. Reorganize.
5888
f5ceeec8
NS
58892001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5890
5891 * typeck.c (build_modify_expr): Say `initialization' for
5892 INIT_EXPRs.
5893 * init.c (build_default_init): Convert to enumeral type, if
5894 needed.
5895
a1cfa434
JJ
58962001-01-18 Jakub Jelinek <jakub@redhat.com>
5897
5898 * parse.y (nomods_initdcl0): Properly set things up for
5899 initdcl0_innards.
5900
028d1f20
NS
59012001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5902
5903 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
5904 (type_unification_real): Set it.
5905 (unify): Use it.
5906
9f724b6a
NS
59072001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5908
5909 * decl.c (finish_destructor_body): Convert to vbase pointer here.
5910
522d6614
NS
59112001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5912
5913 * semantics.c (begin_class_definition): Check we're not inside a
5914 template parm list.
5915
7f805b8f
NS
59162001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5917
5918 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
5919 BASELINK_P.
5920
dc3799c1
KL
59212001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5922
5923 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
5924 * call.c (build_over_call): Add comment.
5925
bb37c4a5
DB
59262001-01-16 Daniel Berlin <dberlin@redhat.com>
5927
826840d9
RH
5928 * cvt.c (ocp_convert): Handle vector type conversion
5929 * typeck2.c (digest_init): Handle vector type initializations
9c96f3f8 5930
a26e7fb5
PE
59312001-01-16 Phil Edwards <pme@sources.redhat.com>
5932
5933 * g++spec.c: Don't add libraries needlessly if -fsyntax-only
5934 was given.
5935
11b810f1
NS
59362001-01-15 Nathan Sidwell <nathan@codesourcery.com>
5937
5938 * pt.c (check_nontype_parm): Rename to ...
5939 (invalid_nontype_parm_type_p): ... here.
5940 (process_template_parm): Adjust.
5941 (convert_template_argument): Adjust.
5942
db3f4e4e
NS
59432001-01-15 Nathan Sidwell <nathan@codesourcery.com>
5944
5945 * pt.c (check_nontype_parm): New function.
5946 (process_template_parm): Use it.
5947 (convert_template_argument): Use it.
5948 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
5949 member.
5950
ea4f1fce
JO
59512001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
5952
5953 * tree.c: Add defaults.h
5954 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
5955 * Make-lang.in (cp/tree.o): Add defaults.h.
5956
1312c143
JM
59572001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
5958
5959 * Make-lang.in (CXX_C_OBJS): Add c-format.o.
5960
4bc1997b
JM
59612001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
5962
5963 * g++.1: Change to be ".so man1/gcc.1".
5964
23de1fbf
JM
59652001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
5966
5967 * Make-lang.in (c++.info, c++.install-info): Build and install g++
5968 internals info.
5969 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
5970 ($(srcdir)/cp/g++int.info): New target.
5971 * gxxint.texi: Add info directory entry. Use @@ in email address.
5972 * .cvsignore: Update.
5973
0949f723
NS
59742001-01-12 Nathan Sidwell <nathan@codesourcery.com>
5975
5976 * typeck.c (build_c_cast): Do template processing earlier.
5977 Always pedwarn on array casts.
5978
a8641661
NS
59792001-01-12 Nathan Sidwell <nathan@codesourcery.com>
5980
5981 * friend.c (make_friend_class): Make sure a templated class is
5982 actually a template.
5983
844511c8
NS
59842001-01-11 Nathan Sidwell <nathan@codesourcery.com>
5985
5986 * decl2.c (get_guard): Set linkage from guarded decl.
5987
96a1e32d
NS
59882001-01-11 Nathan Sidwell <nathan@codesourcery.com>
5989
5990 * call.c (convert_default_arg): Check for unprocessed
5991 DEFAULT_ARG.
5992 * cp-tree.h (replace_defarg): Move to spew.c.
5993 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
5994 spew.c, which is where they really are.
5995 (done_pending_defargs): Declare.
5996 (unprocessed_defarg_fn): Declare.
5997 * decl.c (replace_defarg): Move to spew.c
5998 * parse.y (structsp): Call done_pending_defargs.
5999 * spew.c (defarg_fns): Rearrange list structure.
6000 (defarg_fnsdone): New static variable.
6001 (defarg_depfns): New static variable.
6002 (init_spew): Adjust.
6003 (add_defarg_fn): Store the type in TREE_TYPE.
6004 (do_pending_defargs): Detect and deal with ordering constraints
6005 and circularity.
6006 (done_pending_defargs): New function.
6007 (unprocessed_defarg_fn): New function.
6008 (replace_defarg): Moved from decl.c. Robustify. Don't save
6009 if circularity detected.
6010
34e225a3
NS
60112001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6012
6013 * pt.c (unify): Check array has a domain, before checking
6014 whether it is variable sized.
6015
98979fe0
NS
60162001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6017
6018 * decl.c (grokparms): Unobfuscate and get correct diagnostic for
6019 parameters with pointers to arrays of unknown bound.
6020
b37bf5bd
NS
60212001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6022
6023 * parse.y (template_parm_header, template_spec_header): New
6024 reductions. Split out from ...
6025 (template_header): ... here. Use them.
6026 (template_template_parm): Use template_parm_header.
6027 * semantics.c (finish_template_template_parm): Add assert.
6028
6c418184
MM
60292001-01-10 Mark Mitchell <mark@codesourcery.com>
6030
792508b5
MM
6031 * mangle.c (write_builtin_type): Fix thinko.
6032
8afa707f
MM
6033 * pt.c (copy_default_args_to_explicit_spec_1): New function.
6034 (copy_default_args_to_explicit_spec): Likewise.
6035 (check_explicit_specialization): Use it.
6036
6c418184
MM
6037 * class.c (finish_struct_1): Remove last argument in call to
6038 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
6039 * decl.c (builtin_function): Likewise.
6040 (build_cp_library_fn): Likewise.
6041 (check_initializer): Likewise.
6042 (make_rtl_for_nonlocal_decl): Likewise.
6043 (cp_finish_decl): Likewise.
6044 (start_function): Likewise.
6045 * decl2.c (finish_anon_union): Likewise.
6046 * friend.c (do_friend): Likewise.
6047 * init.c (build_java_class_ref): Likewise.
6048 * method.c (make_thunk): Likewise.
6049 * pt.c (tsubst_friend_function): Likewise.
6050 * semantics.c (expand_body): Likewise.
6051
31d95fc6
MM
60522001-01-10 Mark Mitchell <mark@codesourcery.com>
6053
6054 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
6055 looking at DECL_CLONED_FUNCTION for non-functions.
6056
31bb3027
NS
60572001-01-10 Nathan Sidwell <nathan@codesourcery.com>
6058
6059 * error.c (dump_template_parameter): Use parm to determine how
6060 to print default value.
6061
fd3f43e7
NS
60622001-01-10 Nathan Sidwell <nathan@codesourcery.com>
6063
6064 * class.c (duplicate_tag_error): Clear more flags.
6065
042b4c4e
NS
60662001-01-10 Nathan Sidwell <nathan@codesourcery.com>
6067
6068 * call.c (build_new_method_call): Use binfo_for_vbase.
6069
a7537031
JM
60702001-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
6071
6072 * cp-tree.h (flag_cond_mismatch): Don't declare.
6073 * decl2.c (flag_cond_mismatch): Don't define.
6074 (lang_f_options): Remove cond-mismatch.
6075 (unsupported_options): Add cond-mismatch.
6076
186c0fbe
NS
60772001-01-09 Nathan Sidwell <nathan@codesourcery.com>
6078
6079 * class.c (handle_using_decl): Reject using of constructor name
6080 of sourcing class. Allow injecting of a method with same name as
6081 nested class. Fixup error messages.
6082
28ec8d6b
JM
60832001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
6084
6085 * decl2.c (lang_decode_option): Handle -Wformat=2.
6086
3febd123
NS
60872001-01-08 Nathan Sidwell <nathan@codesourcery.com>
6088
6089 * cp-tree.h (lang_decl_flags): Rename defined_in_class to
6090 initialized_in_class.
6091 (DECL_DEFINED_IN_CLASS_P): Rename to ...
6092 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
6093 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
6094 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
6095 * pt.c (check_default_tmpl_args): Adjust for
6096 DECL_INITIALIZED_IN_CLASS_P.
6097 (instantiate_class_template): Likewise.
6098 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9c96f3f8 6099
3febd123
NS
6100 * class.c (finish_struct): Constify saved_filename.
6101
1f0d71c5
NS
61022001-01-08 Nathan Sidwell <nathan@codesourcery.com>
6103
6104 * class.c (duplicate_tag_error): Adjust diagnostic.
6105 (finish_struct): Locally set location to start of struct.
6106 * decl.c (fixup_anonymous_aggr): Use cp_error_at.
6107
5bf15e84 61082001-01-08 Nathan Sidwell <nathan@codesourcery.com>
76191fdd
NS
6109
6110 * decl.c (struct binding_level): Adjust class_shadowed comments
6111 to reflect reality.
aba649ba 6112 (push_class_level_binding): Adjust comments to reflect reality.
76191fdd
NS
6113 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
6114 Don't set TREE_VALUE on the class_shadowed list.
6115
23d4e4cc 61162001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9c96f3f8
AJ
6117
6118 * decl2.c (acceptable_java_type): Allow references too.
23d4e4cc
APB
6119 * init.c (build_java_class_ref): When using the new ABI, search
6120 `class$' and have it mangled with `mangle_decl.'
6121 * mangle.c (write_java_integer_type_codes): New function.
6122 (write_builtin_type): Detect and mangle Java integer and real
6123 types.
9c96f3f8 6124
0c58da3e
MM
61252001-01-07 Mark Mitchell <mark@codesourcery.com>
6126
6127 * decl2.c (grokfield): Don't accept `asm' specifiers for
6128 non-static data members.
6129
45b8ddb4
KG
61302001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6131
6132 * expr.c (cplus_expand_expr): Don't reset `target'.
6133
96302433
NB
61342001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
6135
826840d9 6136 * cp/decl2.c (cxx_post_options): Call cpp_post_options.
96302433 6137
220bce48
NS
61382001-01-05 Nathan Sidwell <nathan@codesourcery.com>
6139
6140 * parse.y (template_datadef): Check for error_mark_node.
6141
bfa2cb33
NS
61422001-01-05 Nathan Sidwell <nathan@codesourcery.com>
6143
6144 * cp-tree.def (DEFAULT_ARG): Make `x' class.
6145
eaa7c03f
JM
61462001-01-04 Joseph S. Myers <jsm28@cam.ac.uk>
6147
6148 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
6149 (record_builtin_type): Make non-static.
6150 (flag_short_double): Don't declare.
6151 (init_decl_processing): Remove the creation of many tree nodes now
6152 in c_common_nodes_and_builtins.
6153 (build_void_list_node): New function.
6154 * decl2.c (flag_short_double, flag_short_wchar): Don't define.
6155 * cp-tree.h (flag_short_wchar): Don't declare.
6156
3af4c257
MM
61572001-01-04 Mark Mitchell <mark@codesourcery.com>
6158
6159 * call.c (build_conv): Don't use build1 for USER_CONV.
6160 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
6161
03dc0325
JM
61622001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
6163
6164 * lex.c (lang_init): Call c_common_lang_init.
6165
3c505507
NS
61662001-01-03 Nathan Sidwell <nathan@codesourcery.com>
6167
6168 * search.c (lookup_fnfields_here): Remove.
6169 (look_for_overrides_r): Use lookup_fnfields_1.
6170 Ignore functions from using declarations.
6171
03378143
NS
61722001-01-03 Nathan Sidwell <nathan@codesourcery.com>
6173
6174 Implement exceptions specifiers for implicit member functions.
6175 * cp-tree.h (merge_exceptions_specifiers): Declare new function.
6176 * method.c (synthesize_exception_spec): New function.
6177 (locate_dtor, locate_ctor, locate_copy): New functions.
6178 (implicitly_declare_fn): Generate the exception spec too.
6179 * search.c (check_final_overrider): Check artificial functions
6180 too.
9c96f3f8 6181 * typeck2.c (merge_exception_specifiers): New function.
03378143 6182
f30efcb7
JM
61832001-01-03 Jason Merrill <jason@redhat.com>
6184
6185 * init.c (build_default_init): New fn.
6186 (perform_member_init): Split out from here.
6187 (build_new_1): Use it. Simplify initialization logic.
6188 (build_vec_init): Take an array, rather than a pointer and maxindex.
6189 Speed up simple initializations. Don't clean up if we're assigning.
6190 * cp-tree.h: Adjust.
6191 * decl2.c (do_static_initialization): Remove TREE_VEC case.
6192 * parse.y (new_initializer): Return void_zero_node for ().
6193 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
6194 * typeck2.c (digest_init): Only complain about user-written
6195 CONSTRUCTORs.
6196
a412bf75
MS
61972000-12-22 Mike Stump <mrs@wrs.com>
6198
6199 * decl2.c: (max_tinst_depth): Increase to 50.
6200
4890c2f4
MM
62012001-01-02 Mark Mitchell <mark@codesourcery.com>
6202
6203 * class.c (invalidate_class_lookup_cache): Zero the
6204 previous_class_values.
6205 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
6206 TREE_INT_CST_HIGH.
6207 (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
6208 * decl.c (free_bindings): New variable.
6209 (push_binding): Don't create a new binding if we have one on the
6210 free list.
6211 (pop_binding): Put old bindings on the free list.
6212 (init_decl_processing): Use size_int, not build_int_2.
6213 Register free_bindings as a GC root.
6214 (cp_make_fname_decl): Use size_int, not build_int_2.
6215 (push_inline_template_parms_recursive): Likewise.
6216 (end_template_parm_list): Likewise.
6217 (for_each_tempalte_parm): Do not use walk_tree_without_duplicates.
6218 (tsubst_template_parms): Use size_int, not build_int_2.
6219 (tsubst): Likewise.
6220 * rtti.c (get_vmi_pseudo_type_info): Likewise.
9c96f3f8 6221
4f78b9a8
RH
62222001-01-02 Richard Henderson <rth@redhat.com>
6223
6224 * parse.y (asm): Set ASM_INPUT_P.
6225
3c8c2a0a
JM
62262001-01-02 Jason Merrill <jason@redhat.com>
6227
96d6c610
JM
6228 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
6229 for v3 ABI.
6230
6231 * typeck.c (cp_truthvalue_conversion): New fn.
6232 * cvt.c (ocp_convert): Use it.
6233
6234 * cp-tree.h: Lose c-common.c decls.
6235
6236 * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
6237 * cvt.c (convert_to_void): Use type_unknown_p.
6238
9c96f3f8 6239 * typeck.c (strip_all_pointer_quals): Also strip quals from
3c8c2a0a
JM
6240 pointer-to-member types.
6241
6242 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat
6243 parse.y as C.
6244
6245 * call.c (build_new_method_call): Do evaluate the object parameter
6246 when accessing a static member.
6247 * typeck.c (build_component_ref): Likewise.
6248
d363e7bf
AJ
62492001-01-02 Andreas Jaeger <aj@suse.de>
6250
6251 * decl.c (cp_missing_noreturn_ok_p): New.
6252 (init_decl_processing): Set lang_missing_noreturn_ok_p.
6253
77f5250d
JJ
62542000-12-29 Jakub Jelinek <jakub@redhat.com>
6255
6256 * decl.c (init_decl_processing): Fix sign of wchar_type_node.
6257
31a714f6
MM
62582000-12-29 Mark Mitchell <mark@codesourcery.com>
6259
6260 * class.c (pushclass): Remove #if 0'd code.
6261 * cp-tree.h (overload_template_name): Remove.
6262 * decl.c (store_bindings): Simplify.
6263 (pop_from_top_level): Likewise.
6264 * pt.c (overload_template_name): Remove.
d363e7bf 6265 (instantiate_decl): Don't call push_to_top_level if it's not
31a714f6
MM
6266 needed.
6267
414ea4aa
MM
62682000-12-28 Mark Mitchell <mark@codesourcery.com>
6269
6270 * pt.c (register_local_specialization): Don't return a value.
6271 (lookup_template_class): Use move-to-front heuristic when looking
6272 up template instantiations.
6273 (instantiate_decl): Only push_to_top_level when we're actually
6274 going to instantiate the template.
6275
6f18f7e9
HPN
62762000-12-29 Hans-Peter Nilsson <hp@bitrange.com>
6277
6278 * search.c (binfo_for_vtable): Return least derived class, not
6279 most. Handle secondary vtables.
6280
e5214479
JM
62812000-12-22 Jason Merrill <jason@redhat.com>
6282
3c8c2a0a
JM
6283 * pt.c (more_specialized): Don't optimize len==0.
6284 (fn_type_unification): If we're adding the return type, increase len.
6285
ebb1abc3
JM
6286 * typeck.c (build_binary_op): Fix pmf comparison logic.
6287
c939ca5f
JM
6288 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
6289 DECL_STATIC_FUNCTION_P.
6290
e6fe680d
JM
6291 * semantics.c (genrtl_finish_function): Don't try to jump to
6292 return_label unless it exists.
6293
e5214479
JM
6294 In partial ordering for a call, ignore parms for which we don't have
6295 a real argument.
6296 * call.c (joust): Pass len to more_specialized.
6297 (add_template_candidate_real): Strip 'this', pass len.
6298 * pt.c (more_specialized): Pass len down. Lose explicit_args parm.
6299 (get_bindings_order): New fn. Pass len down.
6300 (get_bindings_real): Strip 'this', pass len.
6301 (fn_type_unification): Likewise.
6302 (type_unification_real): Succeed after checking 'len' args.
6303 (most_specialized_instantiation): Lose explicit_args parm.
d363e7bf 6304 * class.c (resolve_address_of_overloaded_function): Strip 'this',
e5214479
JM
6305 pass len.
6306
63072000-12-21 Jason Merrill <jason@redhat.com>
477f6664
JM
6308
6309 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
6310 DECL_TEMPLATE_RESULT.
6311
6312 * search.c (lookup_field_r): Call lookup_fnfields_1, not
6313 lookup_fnfields_here.
6314
6315 * parse.y (typename_sub2): Return the TYPE_DECL, not the type.
6316
6317 * call.c (build_object_call): Also allow conversions that return
6318 reference to pointer to function.
6319 (add_conv_candidate): Handle totype being ref to ptr to fn.
6320 (build_field_call): Also allow members of type reference to function.
6321 Lose support for calling pointer to METHOD_TYPE fields.
6322
6323 * error.c (dump_expr): Handle *_CAST_EXPR.
6324
6325 * typeck2.c (build_scoped_ref): Always convert to the naming class.
6326
6327 * tree.c (break_out_cleanups): Lose.
6328 * cp-tree.h: Remove prototype.
6329 * typeck.c (build_component_ref): Don't break_out_cleanups.
6330 (build_compound_expr): Likewise.
6331 * semantics.c (finish_expr_stmt): Likewise.
6332
3e4d04a1
RH
63332000-12-20 Richard Henderson <rth@redhat.com>
6334
6335 * cp-tree.h: Update declarations.
6336 * decl.c (finish_case_label): Return the new stmt node.
6337 * semantics.c (finish_goto_stmt): Likewise.
6338 (finish_expr_stmt, finish_return_stmt): Likewise.
6339 (finish_break_stmt, finish_continue_stmt): Likewise.
6340 (finish_asm_stmt): Likewise.
6341 * parse.y (already_scoped_stmt): Set STMT_LINENO.
6342 (compstmt, implicitly_scoped_stmt, stmt): Likewise.
6343 (simple_if, simple_stmt): Return the new stmt node.
6344 (save_lineno): New.
6345
20d380b1
JM
63462000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
6347
6348 * cp-tree.h: Don't declare warn_long_long.
6349
221c7a7f
KL
63502000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6351
6352 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
6353 IS_AGGR_TYPE.
6354
b429fdf0
KL
63552000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6356
6357 * pt.c (unify): Handle when both ARG and PARM are
6358 BOUND_TEMPLATE_TEMPLATE_PARM.
6359
c2beae77
KL
63602000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6361
6362 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
6363 DECL_TEMPLATE_PARM_P.
6364
c3e899c1
JM
63652000-12-15 Jason Merrill <jason@redhat.com>
6366
96790071
JM
6367 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs!
6368
8d42565b
JM
6369 * init.c (build_new_1): Don't strip quals from type.
6370
fab09a24
JM
6371 * decl.c (pushdecl): Don't check for linkage on a non-decl.
6372
c3e899c1
JM
6373 * call.c (build_op_delete_call): See through ARRAY_TYPEs.
6374
6375 * call.c (build_new_function_call): Lose space before paren in
6376 error message.
6377 (build_new_method_call): Likewise.
6378
6379 * typeck2.c (build_m_component_ref): Propagate quals from datum.
6380
edac124d
KL
63812000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6382
6383 * pt.c (check_explicit_specialization): Propagate default
6384 function arguments to explicit specializations.
6385
31750649 63862000-12-13 DJ Delorie <dj@redhat.com>
8d3b081e
DD
6387
6388 * typeck.c (build_binary_op): Do signed/unsigned warnings for >?
6389 and <? operators.
6390
5e818b93
JM
63912000-12-08 Jason Merrill <jason@redhat.com>
6392
6393 * error.c (dump_function_name): Don't let the user see __comp_ctor.
6394
6395 Clean up copy-initialization in overloading code.
6396 * call.c (build_user_type_conversion_1): Die if we are asked to
6397 convert to the same or a base type.
6398 (implicit_conversion): Avoid doing so. Lose reference binding code.
6399 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
6400 direct-initialization. Also do direct-init part of copy-init.
6401 (build_user_type_conversion): Don't provide context to convert_like.
6402 * cvt.c (ocp_convert): build_user_type_conversion will now provide
6403 the constructor call for copy-init.
6404
6405 * pt.c (tsubst_decl): Call clone_function_decl here if this is an
6406 instantiation of a member template.
6407 (do_decl_instantiation): Not here.
6408
38da6039
NS
64092000-12-07 Nathan Sidwell <nathan@codesourcery.com>
6410
6411 * class.c (check_field_decls): Don't special case anonymous
6412 fields in error messages.
c9407e4c 6413 (note_name_declared_in_class): Use %D on diagnostic.
d363e7bf 6414
38da6039
NS
6415 * tree.c (pod_type_p): Use strip_array_types.
6416 (cp_valid_lang_attribute): Likewise.
6417 * typeck.c (cp_type_quals): Strip arrays separately, to avoid
6418 multiple evaluations.
d363e7bf 6419 (cp_has_mutable_p): Use strip_array_types.
38da6039 6420
a11d04b5
NS
64212000-12-07 Nathan Sidwell <nathan@codesourcery.com>
6422
6423 * cp-tree.h (sufficient_parms_p): Declare new function.
6424 * call.c (sufficient_parms_p): New function, broken out of ...
6425 (add_function_candidate): ... here. Use it.
6426 (add_conv_candidate): Use it.
6427 * decl.c (grok_ctor_properties): Use it.
6428
5eec2847
JJ
64292000-12-07 Jakub Jelinek <jakub@redhat.com>
6430
6431 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
6432
c907e684
JM
64332000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
6434
6435 * decl2.c (lang_decode_option): Handle -Wformat-security.
6436
74601d7c
KL
64372000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6438
6439 * pt.c (verify_class_unification): New function.
6440 (get_class_bindings): Use it.
6441 (try_class_unification): Tidy.
6442 (unify): Handle when argument of a template-id is not
6443 template parameter dependent.
6444 (template_args_equal): Handle when TREE_CODE's do not match.
6445
8954e858
AO
64462000-12-06 Alexandre Oliva <aoliva@redhat.com>
6447
6448 * lang-specs.h (c++): When invoking the stand-alone preprocessor
6449 for -save-temps, pass all relevant -Defines to it, and then don't
6450 pass them to cc1plus.
6451
3dc9aec6
WC
64522000-12-05 Will Cohen <wcohen@redhat.com>
6453
6454 * decl.c (finish_case_label): Cleared
6455 more_cleanups_ok in surrounding function scopes.
6456 (define_label): Likewise.
6457
cbb40945
NS
64582000-12-05 Nathan Sidwell <nathan@codesourcery.com>
6459
6460 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
6461 (get_matching_virtual): Remove.
6462 (look_for_overrides): Declare new function.
6463 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
6464 DECL_VINDEX here.
6465 * class.c (check_for_override): Move base class iteration code
6466 to look_for_overrides.
6467 * search.c (next_baselink): Remove.
6468 (get_virtuals_named_this): Remove.
6469 (get_virtual_destructor): Remove.
6470 (tree_has_any_destructors_p): Remove.
6471 (struct gvnt_info): Remove.
6472 (check_final_overrider): Remove `virtual' from error messages.
6473 (get_matching_virtuals): Remove. Move functionality to ...
6474 (look_for_overrides): ... here, and ...
6475 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
6476 to be overriding.
6477
61402b80
NS
64782000-12-05 Nathan Sidwell <nathan@codesourcery.com>
6479
6480 * typeck.c (get_delta_difference): If via a virtual base,
6481 return zero.
6482 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no
6483 adjustment.
6484
39abc9a6
RH
64852000-12-04 Richard Henderson <rth@redhat.com>
6486
6487 * error.c (dump_tree): Use output_add_string not OB_PUTS.
6488
c00996a3
JM
64892000-12-04 Jason Merrill <jason@redhat.com>
6490
6491 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
d363e7bf 6492 (write_builtin_type): Pass intSI_type_node and the like through
c00996a3
JM
6493 type_for_mode.
6494 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
6495 Pass intSI_type_node and the like through type_for_mode.
6496 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
6497 * pt.c (tsubst, unify): Likewise.
6498 * tree.c (walk_tree): Likewise.
6499 * error.c (dump_type): Likewise.
6500 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
d363e7bf 6501
c00996a3
JM
6502 * Make-lang.in: Tweak top comment for emacs.
6503 (cp/TAGS): Restore.
6504
6505 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
6506
c00996a3
JM
6507 * class.c (clone_function_decl): Robustify.
6508
65092000-12-04 Michael Matz <matzmich@cs.tu-berlin.de>
6510
6511 * decl.c (store_bindings): Only search in the non modified
6512 old_bindings for duplicates.
6513
00bb3dad
NS
65142000-12-04 Nathan Sidwell <nathan@codesourcery.com>
6515
6516 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
6517 TYPE_POLYMORPHIC_P.
d363e7bf 6518
00bb3dad
NS
6519 * typeck.c (build_static_cast): Remove unused variable.
6520
dc957d14
KL
65212000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6522
6523 * pt.c: Fix typo in comment.
6524
4d808927
JM
65252000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
6526
6527 * decl2.c (warn_format): Remove definition.
6528 (lang_decode_option): Handle -Wformat-nonliteral,
6529 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat.
6530
5fd8e536
JM
65312000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
6532
6533 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
6534 (init_decl_processing): Don't create string_type_node,
6535 const_string_type_node, wint_type_node, intmax_type_node,
6536 uintmax_type_node, default_function_type, ptrdiff_type_node and
6537 unsigned_ptrdiff_type_node. Adjust position of call to
6538 c_common_nodes_and_builtins.
6539 (identifier_global_value): New function.
6540
13f9714b
NS
65412000-12-01 Nathan Sidwell <nathan@codesourcery.com>
6542
6543 * call.c (standard_conversion): Reject pointer to member
6544 conversions from ambiguous, inaccessible or virtual bases.
6545 * typeck.c (build_static_cast): Don't check pointers to members
6546 specially.
6547
31b1b957
NS
65482000-11-30 Nathan Sidwell <nathan@codesourcery.com>
6549
6550 * method.c (do_build_copy_constructor): Preserve cv
6551 qualifications when accessing source object members.
6552 (do_build_assign_ref): Likewise. Remove separate diagnostics for
6553 unnamed fields.
6554
717e3f73
NS
65552000-11-30 Nathan Sidwell <nathan@codesourcery.com>
6556
6557 * method.c (do_build_assign_ref): Construct appropriately
6558 CV-qualified base reference. Don't allow const casts in base
6559 conversion.
6560
2c92b94d
NS
65612000-11-30 Nathan Sidwell <nathan@codesourcery.com>
6562
6563 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on
6564 incomplete return type.
6565
bb92901d
NS
65662000-11-28 Nathan Sidwell <nathan@codesourcery.com>
6567
6568 * parse.y (base_class.1): Produce a _TYPE not a _DECL.
6569 * semantics.c (finish_base_specifier): Accept a _TYPE not a
6570 _DECL.
6571
2f3608c3
NS
65722000-11-28 Nathan Sidwell <nathan@codesourcery.com>
6573
6574 * spew.c (yyerror): Cope if yylval.ttype is NULL.
6575
eeb75383
NS
65762000-11-28 Nathan Sidwell <nathan@codesourcery.com>
6577
6578 * decl.c (grokdeclarator): Diagnose undefined template contexts.
6579
5ee4cc26
NS
65802000-11-28 Nathan Sidwell <nathan@codesourcery.com>
6581
6582 * decl.c (grokdeclarator): Do type access control on friend
6583 class.
6584
76e57b45
NS
65852000-11-27 Nathan Sidwell <nathan@codesourcery.com>
6586
6587 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
6588 bison parser ickiness.
6589 * pt.c (tsubst_friend_function): Enter namespace scope when
6590 tsubsting the function name.
6591 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
6592
f9825168
NS
65932000-11-27 Nathan Sidwell <nathan@codesourcery.com>
6594
6595 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
6596 * cvt.c (cp_convert_to_pointer): Add force parameter.
6597 Allow conversions via virtual base if forced.
6598 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
6599 (ocp_convert): Likewise.
6600 * search.c (binfo_from_vbase): Return the virtual base's binfo.
6601 * typeck.c (get_delta_difference): Adjust handling of virtual
6602 bases.
6603
9ccb25d5
MM
66042000-11-26 Mark Mitchell <mark@codesourcery.com>
6605
6606 * tree.c (struct list_hash): Remove.
6607 (list_hash_table): Make it be an htab.
6608 (struct list_proxy): New type.
6609 (list_hash_eq): New function.
6610 (list_hash_pieces): Renamed from ...
6611 (list_hash): ... this.
6612 (list_hash_lookup): Remove.
6613 (list_hash_add): Remove.
6614 (hash_tree_cons): Use the generic hashtable.
6615 (mark_list_hash): Remove.
6616 (init_tree): Create the hashtable.
6617
9399bad3
JM
66182000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
6619
6620 * method.c (build_mangled_C9x_name): Rename to
6621 build_mangled_C99_name. Change C9X references in comments to
6622 refer to C99.
6623
2f401cc8
NS
66242000-11-24 Nathan Sidwell <nathan@codesourcery.com>
6625
6626 * parse.y (unary_expr): Move VA_ARG from here ...
6627 (primary): ... to here.
6628
3d7e9ba4
NS
66292000-11-24 Nathan Sidwell <nathan@codesourcery.com>
6630
6631 * semantics.c (finish_id_expr): If type is error_mark, return
6632 error_mark.
6633
ab097535
NS
66342000-11-23 Nathan Sidwell <nathan@codesourcery.com>
6635
6636 * pt.c (lookup_template_class): Simplify loop exit constructs.
6637 Cope when there is no partial instantiation of a template
6638 template member.
6639
9196ece5
R
6640Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com>
6641
6642 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
6643
cac78ea2
MM
66442000-11-22 Mark Mitchell <mark@codesourcery.com>
6645
6e1b44bc
MM
6646 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
6647 prefix.
6648
cac78ea2
MM
6649 * pt.c (do_decl_instantiate): Explicitly clone constructors and
6650 destructors that haven't already been cloned.
6651
3aac38d7
RH
66522000-11-20 Richard Henderson <rth@redhat.com>
6653
6654 * parse.y (yyparse_1): Rename the parser entry point.
6655
66562000-11-20 Alex Samuel <samuel@codesourcery.com>
beac9b93
AS
6657
6658 * mangle.c (write_name): Use <unscoped-name> for names directly in
6659 function scope.
6660 (write_unscoped_name): Accept names directly in function scope.
d363e7bf 6661
447306fa
NS
66622000-11-20 Nathan Sidwell <nathan@codesourcery.com>
6663
6664 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
6665 * parse.y (extdef): Add EXPORT reduction.
6666 * spew.c (yylex): Don't skip export here.
6667
2650255a
MM
66682000-11-19 Mark Mitchell <mark@codesourcery.com>
6669
6670 * decl.c (init_decl_processing): Correct name of pure virtual
6671 function under the new ABI.
6672 * rtti.c (throw_bad_cast): Likewise, for bad cast function.
6673 (throw_bad_typeid): Likewise for bad typeid function.
6674
0657c69c
MM
66752000-11-18 Mark Mitchell <mark@codesourcery.com>
6676
04f3dc2b
MM
6677 * decl.c (grokparms): Don't even function types of `void' type,
6678 either.
6679 * mangle.c (write_type): Don't crash when confronted with the
6680 error_mark_node.
6681
0657c69c
MM
6682 * decl.c (grokparms): Don't create parameters of `void' type.
6683
a8a05998
ZW
66842000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
6685
6686 * lex.c (mark_impl_file_chain): Delete.
6687 (init_parse): Remove call to ggc_add_string_root. No need to
6688 ggc_strdup a string constant. Do not add impl_file_chain to GC
6689 roots.
6690 (handle_pragma_implementation): No need to ggc_strdup main_filename.
6691
35728a80
NS
66922000-11-17 Nathan Sidwell <nathan@codesourcery.com>
6693
6694 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
6695
5cce22b6
NS
66962000-11-17 Nathan Sidwell <nathan@codesourcery.com>
6697
6698 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
6699 * decl.c (grokdeclarator): Don't reject void parms here.
6700 (require_complete_types_for_parms): Simplify, use
6701 complete_type_or_else.
6702 (grokparms): Remove bitrot. Remove funcdef parm.
6703 Deal with ellipsis parm lists here.
6704 * semantics.c (finish_parmlist): Don't append void_list_node
6705 here. Set PARMLIST_ELLIPSIS_P.
6706
146c8d60
NS
67072000-11-17 Nathan Sidwell <nathan@codesourcery.com>
6708
6709 * typeck2.c (incomplete_type_error): Reorganise to avoid
6710 excessive diagnostics.
6711
520a57c8
ZW
67122000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
6713
6714 * lex.c (struct impl_files, internal_filename): Constify a char *.
6715
43048a06
MM
67162000-11-16 Mark Mitchell <mark@codesourcery.com>
6717
6718 * mangle.c (write_special_name_constructor): Don't generate
6719 assembler junk when confronted with an old-style constructor.
6720 (write_special_name_destructor): Likewise.
6721 (mangle_decl_string): Do it here instead.
6722
cdb71673
NS
67232000-11-16 Nathan Sidwell <nathan@codesourcery.com>
6724
6725 * call.c (op_error): Make error messages clearer.
6726
62136084
MM
67272000-11-15 Mark Mitchell <mark@codesourcery.com>
6728
6729 * decl.c (wrapup_globals_for_namespace): Don't mark things
6730 TREE_ASM_WRITTEN when they're not.
6731
ee3400e8
JM
67322000-11-15 Jason Merrill <jason@redhat.com>
6733
6734 * typeck2.c (friendly_abort): Uncount the error before handing
6735 off to fancy_abort.
6736
71631a1f
NS
67372000-11-15 Nathan Sidwell <nathan@codesourcery.com>
6738
6739 * typeck.c (lookup_anon_field): Cope with qv qualifiers.
6740
79cda2d1
MM
67412000-11-14 Mark Mitchell <mark@codesourcery.com>
6742
6743 * class.c (build_vtbl_initializer): Fix typo in comment.
6744 * typeck.c (expr_sizeof): Don't crash on errors.
6745
2567bc56
JW
67462000-11-14 Jim Wilson <wilson@redhat.com>
6747
6748 * lang-specs.h: Add %2 after %(cc1_options).
6749
8422942c
RH
67502000-11-14 Richard Henderson <rth@redhat.com>
6751
6752 * typeck.c (c_sizeof): Be strict about casting result value
6753 back to c_size_type_node.
6754 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
6755
19552aa5
JM
67562000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
6757
6758 * typeck.c (build_unary_op): Use boolean_increment from
6759 c-common.c, moving the relevant code there.
6760
d96a6d1a
JM
67612000-11-11 Jason Merrill <jason@redhat.com>
6762
6763 * typeck.c (mark_addressable): Don't call put_var_into_stack.
492cca24
JM
6764
6765 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
6766 in inlines.
6767
4e135bdd
KG
67682000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6769
6770 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
6771 * lex.c (copy_lang_decl): Likewise.
6772
0a7394bc
MM
67732000-11-09 Mark Mitchell <mark@codesourcery.com>
6774
13507bd8
MM
6775 * dump.c (cp_dump_tree): Don't dump function bodies here.
6776
0a7394bc
MM
6777 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
6778 (dump.o): Update dependency list.
6779 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
6780 (flag_dump_translation_unit): Likewise.
6781 (CP_TYPE_QUALS): Adjust definition.
6782 (DECL_C_BIT_FIELD): Remove.
6783 (SET_DECL_C_BIT_FIELD): Likewise.
6784 (CLEAR_DECL_C_BIT_FIELD): Likewise.
6785 (add_maybe_template): Likewise.
6786 (strip_array_types): Likewise.
6787 (dump_node_to_file): Likewise.
6788 (cp_dump_tree): New function.
6789 * decl.c (init_decl_processing): Set lang_dump_tree.
6790 * decl2.c (flag_dump_translation_unit): Remove.
6791 * dump.c: Move most of it to ../c-dump.c.
6792 (cp_dump_tree): New function.
6793 * pt.c (add_maybe_template): Remove.
6794 * typeck.c (strip_array_types): Likewise.
a8a05998 6795
5362b086
EC
67962000-11-07 Eric Christopher <echristo@redhat.com>
6797
492cca24
JM
6798 * decl.c (init_decl_processing): Change definition of
6799 __wchar_t to wchar_t. Remove artificial declaration of
6800 wchar_t.
6801 * lex.c: Change instances of __wchar_t to wchar_t.
5362b086 6802
5361cbb7
NS
68032000-11-09 Nathan Sidwell <nathan@codesourcery.com>
6804
6805 * lex.c (do_identifier): Don't lookup_name for operators.
6806 * parse.y (operator): Save looking_for_typename.
6807 (unoperator): Restore it.
6808 * spew.c (frob_opname): Use nth_token for lookahead.
6809
36791f1e
NS
68102000-11-08 Nathan Sidwell <nathan@codesourcery.com>
6811
6812 * decl.c (grok_op_properties): Always use coerce_new_type and
6813 coerce_delete_type.
6814 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve
6815 exception specification. Tidy up.
6816 (coerce_delete_type): Preserve exception specification. Tidy up.
6817
961192e1
JM
68182000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
6819
6820 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
6821 (push_binding_level), error.c (cp_tree_printer), pt.c
6822 (process_partial_specialization, tsubst_template_arg_vector),
6823 search.c (lookup_member): Use memset () instead of bzero ().
6824
d48ebde1
NS
68252000-11-07 Nathan Sidwell <nathan@codesourcery.com>
6826
6827 * decl.c (build_ptrmemfunc_type): Allow error_mark_node.
6828
436a88a6
JM
68292000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
6830
6831 * Make-lang.in (c++.distdir): Remove.
6832
7a4e5091
MM
68332000-11-04 Mark Mitchell <mark@codesourcery.com>
6834
6835 * decl2.c (do_nonmember_using_decl): Allow `extern "C"'
6836 declarations from different namespaces to be combined.
6837
0e9295cf
ZW
68382000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
6839
6840 * decl.c: Include tm_p.h.
6841
da61dec9
JM
68422000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
6843
6844 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
6845
9473c522
JM
68462000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
6847
6848 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
6849 (build_overload_value), repo.c (open_repo_file), xref.c
6850 (open_xref_file): Use strchr () and strrchr () instead of index ()
6851 and rindex ().
6852
b0b3afb2
BS
68532000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
6854
6855 * call.c (build_over_call): Call fold on the CALL_EXPR.
6856
faafaee6
GDR
68572000-11-01 Gabriel Dos Reis <gdr@codesourcery.com>
6858
6859 * error.c (dump_template_decl): Separate template hearders with
6860 space not comma.
6861
761f0855
GDR
68622000-10-31 Gabriel Dos Reis <gdr@codesourcery.com>
6863
6864 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace
6865 TS_* flags with corresponding TFF_*. Adjust prototypes of
6866 functions (which used to take a tree_string_flags) to take an int.
6867
6868 * cp-tree.h (enum tree_string_flags): Remove
6869 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
6870 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
6871 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
6872 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
6873 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
6874 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
6875 (type_as_string, decl_as_string, expr_as_string,
6876 context_as_string): Adjust prototype.
6877
6878 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
6879 instead of TS_PLAIN.
6880
6881 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
6882 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
6883 plain `0'.
6884
ad50e811
MM
68852000-10-30 Mark Mitchell <mark@codesourcery.com>
6886
6887 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
6888 (linkage_kind): New enumeration.
6889 (decl_linkage): New function.
6890 * decl2.c (comdat_linkage): Extend comment.
6891 * error.c (dump_function_decl): Print the arguments used to
6892 instantiate a template, even when not printing the type of the
6893 function.
6894 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
6895 not TREE_PUBLIC, to test for external linkage.
6896 * tree.c (decl_linkage): New function.
6897
930cd796
MM
68982000-10-28 Mark Mitchell <mark@codesourcery.com>
6899
6900 * pt.c (instantiate_decl): Always instantiate static data members
6901 initialized in-class.
6902
b8dad04b
ZW
69032000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
6904
6905 * Make-lang.in: Move all build rules here from Makefile.in,
6906 adapt to new context. Wrap all rules that change the current
6907 directory in parentheses. Expunge all references to $(P).
6908 When one command depends on another and they're run all at
6909 once, use && to separate them, not ;. Add OUTPUT_OPTION to
6910 all object-file generation rules. Delete obsolete variables.
6911
6912 * Makefile.in: Delete.
6913 * config-lang.in: Delete outputs= line.
6914
5f9cd837
GDR
69152000-10-26 Gabriel Dos Reis <gdr@codesourcery.com>
6916
6917 * error.c (dump_function_decl): Print no space between
6918 `ptr-operator' the `type-specifier' of the return type.
6919 (dump_type_prefix): Make sure we put space at the appropriate
5362b086 6920 place.
5f9cd837 6921
6c6ed0ef
JM
69222000-10-23 Jason Merrill <jason@redhat.com>
6923
6924 * call.c (equal_functions): Also call decls_match for extern "C" fns.
6925
69262000-10-22 Jason Merrill <jason@redhat.com>
6927
6928 * call.c (build_conditional_expr): Use ocp_convert to force
6929 rvalue conversion.
6930
e36308b0
MM
69312000-10-22 Mark Mitchell <mark@codesourcery.com>
6932
583ca5a0
MM
6933 * call.c (standard_conversion): Use RVALUE_CONVs for all
6934 expressions that satisfy lvalue_p, not just those that satisfy
6935 real_lvalue_p.
6936
f9808f81
MM
6937 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
6938
5362b086 6939 * typeck.c (c_sizeof): Return an expression of `size_t' type,
e36308b0
MM
6940 not one with TYPE_IS_SIZETYPE set.
6941 (dubious_conversion_warnings): Remove special-case code.
6942
3b9ae6f0
GK
69432000-10-21 Geoffrey Keating <geoffk@cygnus.com>
6944
7a0f14e5
GK
6945 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
6946 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
6947 (dump_type_prefix): Print vector-of-int as 'int vector'.
6948 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
6949 * tree.c (walk_tree): Handle VECTOR_TYPE.
6950
3b9ae6f0 6951 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
5362b086 6952
aca77bd1
JM
69532000-10-21 Jason Merrill <jason@redhat.com>
6954
6955 * parse.y (operator): Set got_object from got_scope.
6956 Set looking_for_typename.
6957 * decl.c (lookup_name_real): Clear val after setting from_obj.
6958 Reorganize diagnostic.
6959
ba523395
JM
69602000-10-20 Jason Merrill <jason@redhat.com>
6961
6962 * tree.c (walk_tree): Don't walk into default args.
6963
6964 * error.c (dump_expr): Use host_integerp.
6965
2e44948d
DE
69662000-10-20 David Edelsohn <edelsohn@gnu.org>
6967
6968 * typeck2.c (abstract_virtuals_error): Use "because" instead of
6969 "since" in error message.
6970
44475138
RK
6971Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6972
6973 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
6974
11306230
JO
69752000-10-20 Jeffrey Oldham <oldham@codesourcery.com>
6976
6977 * decl.c (revert_static_member_fn): Fixed typo.
6978
97ba1e3c
MM
69792000-10-19 Mark Mitchell <mark@codesourcery.com>
6980
c20118a8
MM
6981 * class.c (subobject_offset_fn): New type.
6982 (dfs_record_base_offsets): Remove.
6983 (record_base_offsets): Likewise.
6984 (dfs_search_base_offsets): Likewise.
6985 (record_subobject_offset): New function.
6986 (check_subobject_offset): Likewise.
6987 (walk_subobject_offsets): Likewise.
6988 (record_subobject_offsets): Likewise.
6989 (layout_conflict_p): Reimplement.
6990 (layout_nonempty_base_or_field): Correct handling of type
6991 conflicts during layout.
6992 (layout_empty_base): Likewise.
6993 (build_base_field): Adjust to handle new representation of empty
6994 base offset table.
6995 (build_base_fields): Likewise.
6996 (layout_virtual_bases): Likewise.
6997 (splay_tree_compare_integer_csts): New function.
6998 (layout_class_type): Use a splay_tree, rather than a varray, to
6999 represent the offsets of empty bases.
5362b086 7000
97ba1e3c
MM
7001 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
7002 * decl.c (select_decl): Don't return declarations that are
7003 DECL_ANTICIPATED.
7004
6bcedb4e
MM
70052000-10-18 Mark Mitchell <mark@codesourcery.com>
7006
7007 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
7008 (fake_std_node): New macro.
7009 * decl.c (in_std): Rename to ...
7010 (in_fake_std): ... this.
7011 (flag_no_builtin): Remove.
7012 (flag_no_nonansi_builtin): Likewise.
7013 (walk_namespaces_r): Use fake_std_node.
7014 (push_namespace): Use std_identifier.
7015 (pop_namespace): Use in_fake_std.
7016 (lookup_name_real): Use fake_std_node.
7017 (init_decl_processing): When -fhonor-std, create the `std'
7018 namespace. Don't create a dummy fake_std_node in that case.
7019 Adjust call to c_common_nodes_and_builtins. Use std_identifier.
7020 (builtin_function): Put builtins whose names don't begin
7021 with `_' in the std namespace.
7022 * decl2.c (flag_no_builtin): Remove.
7023 (flag_no_nonansi_builtin): Likewise.
7024 (set_decl_namespace): Use fake_std_node.
7025 (validate_nonmember_using_decl): Likewise.
7026 (do_using_directive): Likewise.
7027 (handle_class_head): Likewise.
7028 * dump.c (dequeue_and_dump): Likewise.
7029 * except.c (init_exception_processing): Use std_identifier.
7030 * init.c (build_member_call): Use fake_std_node.
7031 * rtti.c (init_rtti_processing): Use std_identifier.
5362b086 7032
67673f5c
MM
70332000-10-17 Mark Mitchell <mark@codesourcery.com>
7034
7035 * cp-tree.h (back_end_hook): Remove declaration.
7036 * decl2.c (back_end_hook): Remove definition.
7037
7038 * dump.c (dequeue_and_dump): Dump TREE_USED.
7039
8fef2e47
BL
7040Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu>
7041
7042 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
7043
652469d0
JM
70442000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
7045
7046 * decl.c (WINT_TYPE): Define.
7047 (init_decl_processing): Create types unsigned_ptrdiff_type_node,
7048 c_size_type_node, signed_size_type_node and wint_type_node.
7049
74ff4629
JM
70502000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
7051
7052 * decl2.c (warn_missing_format_attribute): New variable.
7053 (lang_decode_option): Decode -Wmissing-format-attribute.
7054
634790f4
MM
70552000-10-16 Mark Mitchell <mark@codesourcery.com>
7056
7057 * typeck.c (qualify_type): Remove.
7058 (composite_pointer_type): Fix handling of conversions to `cv void*'.
7059
bb12da9d
KG
70602000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7061
7062 * Makefile.in (parse.c, parse.h): Fix think-o in last patch.
7063
4b945402
KG
70642000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7065
7066 * Makefile.in (parse.c, parse.h): Create atomically.
7067
1f8f4a0b
MM
70682000-10-12 Mark Mitchell <mark@codesourcery.com>
7069
7070 * class.c (current_obstack): Remove.
7071 * decl.c (ggc_p): Remove.
7072 (start_decl): Don't use decl_tree_cons.
7073 (grokdeclarator): Don't use build_decl_list.
7074 (start_function): Don't use decl_tree_cons.
7075 (finish_function): Don't mess with obstacks.
7076 * decl2.c (grok_x_components): Don't use build_decl_list.
7077 * lex.c (make_call_declarator): Don't call decl_tree_cons.
7078 (implicitly_declare_fn): Don't call build_decl_list.
7079 * parse.y (frob_specs): Don't call build_decl_list or
7080 decl_tree_cons.
7081 (expr_or_declarator_intern): Don't call decl_tree_cons.
7082 (primary): Don't call build_decl_list.
7083 (fcast_or_absdcl): Likewise.
7084 (typed_declspecs): Don't call decl_tree_cons.
7085 (reserved_declspecs): Don't call build_decl_list.
7086 (declmods): Likewise.
7087 (reserved_typespecquals): Likewise.
7088 (aggr): Likewise.
7089 (new_type_id): Likewise.
7090 (cv_qualifiers): Likewise.
7091 (after_type_declarator_intern): Likewise.
7092 (notype_declarator_intern): Likewise.
7093 (absdcl_intern): Likewise.
7094 (named_parm): Likewise.
7095 * pt.c (most_specialized_class): Likewise.
7096 * repo.c (temporary_obstack): Make it a structure, not a pointer.
7097 (init_repo): Initialize it.
7098 * search.c (current_obstack): Remove.
7099 * typeck2.c (add_exception_specifier): Don't call build_decl_list.
5362b086 7100
8dc54971
RH
71012000-10-09 Richard Henderson <rth@cygnus.com>
7102
7103 * Make-lang.in (CXX_EXTRA_HEADERS): Remove.
7104 (c++ language support bits for libgcc): Remove.
7105 (c++.clean): Remove cplib2.txt cleanup.
7106 * config-lang.in (headers, lib2funcs): Remove.
7107
7108 * exception.cc, new.cc, new1.cc, new2.cc: Remove files.
7109 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
7110 * inc/cxxabi.h, inc/exception, inc/new: Remove files.
7111 * inc/new.h, inc/typeinfo: Remove files.
7112
b15ad712
JM
71132000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
7114
7115 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
7116 defined.
7117 (init_decl_processing): Initialize intmax_type_node and
7118 uintmax_type_node.
7119
156ce211
RH
71202000-10-06 Richard Henderson <rth@cygnus.com>
7121
7122 * cp-tree.h (struct cp_language_function): Remove x_result_rtx.
7123 (original_result_rtx): Remove.
7124 * decl.c (save_function_data): Don't clear x_result_rtx.
7125 (mark_lang_function): Don't mark it either.
7126 * expr.c (fixup_result_decl): Remove.
7127 * semantics.c (genrtl_named_return_value): Frob the return decl
7128 before calling emit_local_var.
7129 (genrtl_finish_function): Don't call fixup_result_decl.
7130 Always emit the jump to return_label.
7131
92777ce4
NS
71322000-10-06 Nathan Sidwell <nathan@codesourcery.com>
7133
7134 * pt.c (lookup_template_class): Set current access for enum.
7135 (tsubst_enum): Set file & line for enum decl.
5362b086 7136
92777ce4
NS
7137 * spew.c (yylex): Remove unused variable.
7138
63c16fc5
RH
71392000-10-05 Richard Henderson <rth@cygnus.com>
7140
7141 * semantics.c (genrtl_finish_function): Don't init or check
7142 can_reach_end; remove noreturn and return value checks.
7143
d1a458c4
TT
71442000-10-05 Tom Tromey <tromey@cygnus.com>
7145
7146 * init.c (build_java_class_ref): Use `build_static_name' with a
7147 suffix, not a prefix, to build the class object's name.
7148
509fc277
NS
71492000-10-05 Nathan Sidwell <nathan@codesourcery.com>
7150
7151 * cp-tree.h (access_kind): Fix comment typo.
7152 * decl2.c (grokfield): Fix diagnostic typo.
7153 * semantics.c (finish_template_type): Fix comment typo.
7154 (finish_qualified_object_call_expr): Likewise.
7155
ce2e5191
NS
71562000-10-05 Nathan Sidwell <nathan@codesourcery.com>
7157
7158 * pt.c (tsubst_expr, DECL_STMT case): Don't process if
5362b086 7159 tsubsting fails.
ce2e5191 7160
79cc5312
NS
71612000-10-05 Nathan Sidwell <nathan@codesourcery.com>
7162
7163 * spew.c (frob_id): New static function.
7164 (frob_opname): Use it.
7165 (yylex): Use it.
7166
f15b9af9
MM
71672000-10-01 Mark Mitchell <mark@codesourcery.com>
7168
7169 * decl.c (lang_mark_false_label_stack): Remove.
7170 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
5362b086 7171
28e6b1c2
JM
71722000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
7173
7174 * gxxint.texi: Use @email for formatting email addresses.
7175
99885b3f
GDR
71762000-09-29 Gabriel Dos Reis <gdr@codesourcery.com>
7177
7178 * error.c: Remove direct obstack manipulation. Replace with
7179 output_buffer-based formatting. Adjust calls to removed macros.
7180 (obstack_chunk_alloc, obstack_chunk_free): Remove.
7181 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
7182 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
7183
c06aa51e
MM
71842000-09-24 Mark Mitchell <mark@codesourcery.com>
7185
7186 * ir.texi: Move to ../c-tree.texi.
7187
99fada40
JM
71882000-09-20 Jason Merrill <jason@redhat.com>
7189
7190 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
7191
bb20cc46
AJ
71922000-09-21 Andreas Jaeger <aj@suse.de>
7193
7194 * errfn.c: Move declaration of cp_printer and cp_printers to ...
7195 * cp-tree.h: ... here.
7196
7197 * error.c: Remove declaration of cp_printer.
7198
fab701da
MM
71992000-09-20 Mark Mitchell <mark@codesourcery.com>
7200
7201 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
7202
0370fea1
HPN
72032000-09-20 Hans-Peter Nilsson <hp@axis.com>
7204
7205 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
7206 users.
7207
78c120b5
MM
72082000-09-18 Mark Mitchell <mark@codesourcery.com>
7209
7210 * decl.c (start_function): Robustify.
7211
3f80e6ac
KG
72122000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7213
7214 * cp-tree.h (check_function_format): Accept a `status' parameter.
bb20cc46 7215
3f80e6ac
KG
7216 * call.c, typeck.c: Updates calls to `check_function_format'.
7217
fc928afe
GK
72182000-09-17 Geoffrey Keating <geoffk@cygnus.com>
7219
7220 * decl2.c (handle_class_head): Always push some scope even
7221 in the error case.
7222
8f17b5c5
MM
72232000-09-16 Mark Mitchell <mark@codesourcery.com>
7224
7225 * cp-tree.h (struct cp_language_function): Remove
7226 x_scope_stmt_stack and name_declared.
7227 (current_scope_stmt_stack): Remove.
7228 (function_name_declared_p): New macro.
7229 (struct lang_decl_flags): Use c_lang_decl as a base class.
7230 (context): Remove.
7231 (struct lang_decl): Replace saved_tree with context.
7232 (DECL_FRIEND_CONTEXT): Adjust accordingly.
7233 (SET_DECL_FRIEND_CONTEXT): Likewise.
7234 (DECL_VIRTUAL_CONTEXT): Likewise.
7235 (DECL_SAVED_TREE): Remove.
7236 (C_DECLARED_LABEL_FLAG): Likewise.
7237 (cplus_expand_expr_stmt): Don't declare.
7238 (add_decl_stmt): Likewise.
7239 (add_scope_stmt): Likewise.
7240 * decl.c (mark_stmt_tree): Remove.
7241 (case_compare): Likewise.
7242 (finish_case_label): Use c_add_case_label.
7243 (init_decl_processing): Set more language-specific hooks.
7244 (build_enumerator): Fix typo in comment.
7245 (cplus_expand_expr_stmt): Remove.
7246 (mark_lang_function): Use mark_c_language_function.
7247 (lang_mark_tree): Use c_mark_lang_decl.
7248 * decl2.c: Change order of inclusion.
7249 * except.c: Likewise.
7250 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall
7251 back on c_expand_expr.
7252 * friend.c: Include expr.h.
7253 * init.c: Change order of inclusion.
7254 * Makefile.in: Update dependencies.
7255 * lex.h (free_lang_decl_chain): Remove.
7256 * optimize.c (maybe_clone_body): Use function_name_declared_p.
7257 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
7258 it doesn't exist.
7259 (instantiate_decl): Use function_name_declared_p.
7260 * semantics.c (lang_expand_expr_stmt): Remove.
7261 (set_current_function_name_declared): Likewise.
7262 (current_function_name_declared): Likewise.
7263 (begin_compound_stmt): Use function_name_declared_p.
7264 (add_decl_stmt): Remove.
7265 (setup_vtbl_ptr): Use function_name_declared_p.
7266 (add_scope_stmt): Remove.
7267 (current_scope_stmt_stack): New function.
7268 (cp_expand_stmt): Don't handle SCOPE_STMTs.
7269 (expand_body): Use function_name_declared_p.
7270 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
7271 * typeck.c: Change order of includes.
7272 (convert_sequence): Remove.
bb20cc46 7273
d9dbd9b1
JM
72742000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
7275
7276 * lex.c (reswords): Add _Complex.
7277
9985f210
RK
7278Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7279
7280 * Make-lang.in (cplib2.txt): Depend on cp/Makefile.
7281
f903ebb1
DA
72822000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
7283
7284 * init.c (begin_init_stmts): Don't use // comments.
7285
f2ae0c45
JM
72862000-09-12 Jason Merrill <jason@redhat.com>
7287
7288 * decl.c (maybe_deduce_size_from_array_init): Set do_default for
7289 all non-extern arrays.
7290
7291 * decl.c (grokdeclarator): Complain about 'friend T' for implicit
7292 typenames, too. Downgrade complaint to pedwarn.
7293 (xref_tag): Warn about surprising behavior of 'friend struct T'.
7294 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
7295 'class This::Inherited'.
7296
71ad4a16
MM
72972000-09-12 Mark Mitchell <mark@codesourcery.com>
7298
7299 * decl.c (finish_case_label): Given the LABEL_DECL a
7300 DECL_CONTEXT.
7301
c3e76028
GDR
73022000-09-12 Gabriel Dos Reis <gdr@codesourcery.com>
7303
7304 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
7305 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
7306 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
7307 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
7308 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
7309 New macros.
7310 (sorry_for_unsupported_tree, print_scope_operator,
7311 print_left_paren, print_right_paren, print_left_bracket,
7312 print_right_bracket, print_whitespace): Likewise.
7313 (aggr_variety): Rename to class_key_or_enum.
7314 (print_type): Rename to print_type_id.
7315 (print_type_specifier_seq, print_simple_type_specifier,
7316 print_elaborated_type_specifier,
7317 print_rest_of_abstract_declarator,
7318 print_parameter_declaration_clause, print_exception_specification,
7319 print_nested_name_specifier, print_template_id,
7320 typedef_original_name, print_template_argument_list_start,
7321 print_template_argument_list_end): New functions.
7322
eb50138b
GDR
73232000-09-11 Gabriel Dos Reis <gdr@codesourcery.com>
7324
a8a05998 7325 * ir.texi: Add more documentation.
eb50138b 7326
f444e36b
MM
73272000-09-11 Mark Mitchell <mark@codesourcery.com>
7328
7329 * cp-tree.h (struct saved_scope): Remove x_function_parms.
7330 (current_function_parms): Don't define.
7331 (struct cp_language_function): Remove parms_stored.
7332 (current_function_just_assigned_this): Don't define.
7333 (current_function_parms_stored): Likewise.
7334 (static_ctors): Declare.
7335 (static_dtors): Likewise.
7336 (SF_EXPAND): Don't define.
7337 (expand_start_early_try_stmts): Remove declaration.
7338 (store_parm_decls): Likewise.
7339 * decl.c (static_ctors): Don't declare.
7340 (static_dtors): Likewise.
7341 (struct binding_level): Remove this_block.
7342 (poplevel): Remove dead code.
7343 (set_block): Likewise.
7344 (mark_binding_level): Don't mark this_block.
7345 (mark_saved_scope): Don't mark x_function_parms.
7346 (init_decl_processing): Don't add current_function_parms as a GC
7347 root.
7348 (check_function_type): Change prototype.
7349 (start_function): Remove RTL-generation code.
7350 (expand_start_early_try_stmts): Remove.
7351 (store_parm_decls): Give it internal linkage. Remove
7352 RTL-generation code.
7353 (finish_function): Remove RTL-generation code.
7354 * decl2.c (static_ctors): Fix formatting.
7355 (static_dtors): Likewise.
7356 * method.c (use_thunk): Don't call store_parm_decls.
7357 (synthesize_method): Likewise.
7358 * optimize.c (maybe_clone_body): Likewise.
7359 * parse.y (fn.def2): Likewise.
7360 (.set_base_init): Likewise.
7361 (nodecls): Likewise.
7362 * pt.c (instantiate_decl): Likewise.
7363 * rtti.c (synthesize_tinfo_fn): Likewise.
7364 * semantics.c (genrtl_try_block): Simplify.
7365 (expand_body): Use genrtl_start_function and
7366 genrtl_finish_function.
7367 (genrtl_start_function): New function.
7368 (genrtl_finish_function): Likewise.
7369
181d2ba0
NS
73702000-09-11 Nathan Sidwell <nathan@codesourcery.com>
7371
7372 * error.c (cp_tree_printer, case 'P'): Append break.
7373
f2d71db6
NS
73742000-09-11 Nathan Sidwell <nathan@codesourcery.com>
7375
7376 * cp-tree.h (frob_opname): Declare.
7377 * parse.y (saved_scopes): New static variable.
7378 (cp_parse_init): Adjust.
7379 (do_id): If lastiddecl is NULL, do do_identifier.
7380 (operator): Save scope information.
aca77bd1 7381 (unoperator): New reduction. Restore scope information.
f2d71db6
NS
7382 (operator_name): Append unoperator. Call frob_opname.
7383 * spew.c (frob_opname): Define.
7384
d8ea8f28
ZW
73852000-09-10 Zack Weinberg <zack@wolery.cumb.org>
7386
7387 * decl.c, rtti.c: Include defaults.h if not already included.
7388 Don't define the *_TYPE_SIZE macros.
7389
56cb9733
MM
73902000-09-09 Mark Mitchell <mark@codesourcery.com>
7391
7392 * cp-tree.h (push_switch): Change prototype.
7393 (check_cp_case_value): Remove declaration.
7394 (decl_constant_value): Likewise.
7395 * decl.c (struct cp_switch): Add switch_stmt and cases.
7396 (case_compare): New function.
7397 (push_switch): Set switch_stmt. Initialize cases.
7398 (pop_switch): Clean up cases.
7399 (define_case_label): Rename to ...
7400 (finish_case_label): ... this. Do semantic analysis for case
7401 labels here.
7402 (start_function): Correct comment.
7403 * decl2.c (check_cp_case_value): Remove.
7404 * expr.c (do_case): Remove.
7405 * pt.c (tsubst_expr): Adjust call to finish_case_label.
7406 * semantics.c (genrtl_do_poplevel): Remove declaration.
7407 (RECHAIN_STMTS): Remove.
7408 (finish_break_stmt): Use build_break_stmt.
7409 (finish_continue_stmt): Use build_continue_stmt.
7410 (finish_switch_cond): Adjust condition here, rater than in
7411 c_expand_start_case.
7412 (finish_case_label): Remove.
7413 * typeck.c (c_expand_return): Remove.
7414 (c_expand_start_case): Likewise.
bb20cc46 7415
990a9693
GDR
74162000-09-07 Gabriel Dos Reis <gdr@codesourcery.com>
7417
7418 * ir.texi: Document type nodes.
7419
ae499cce
MM
74202000-09-06 Mark Mitchell <mark@codesourcery.com>
7421
54f7877c
MM
7422 * cp-tree.h (init_cp_semantics): Declare.
7423 (genrtl_try_block): Don't declare.
7424 (genrtl_handler): Likewise.
7425 (genrtl_catch_block): Likewise.
7426 (genrtl_ctor_stmt): Likewise.
7427 (genrtl_subobject): Likewise.
7428 (genrtl_do_poplevel): Likewise.
7429 (genrtl_named_return_value): Likewise.
7430 * lex.c (init_parse): Call init_cp_semantics.
7431 * semantics.c (genrtl_try_block): Give it internal linkage.
7432 (genrtl_handler): Likewise.
7433 (genrtl_catch_block): Likewise.
7434 (genrtl_ctor_stmt): Likewise.
7435 (genrtl_subobject): Likewise.
7436 (genrtl_do_poplevel): Likewise.
7437 (genrtl_named_return_value): Likewise.
7438 (lang_expand_stmt): Rename to ...
7439 (cp_expand_stmt): ... this. Only handle C++-specific nodes.
7440 (init_cp_semantics): Define.
7441
3a0d3e1e
MM
7442 * decl.c (initialize_local_var): Remove RTL-generating code.
7443 * semantics.c (genrtl_try_block): Fix formatting.
7444
ae499cce
MM
7445 Move statement-tree facilities from C++ to C front-end.
7446 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
7447 (void_zero_node): Remove.
7448 (stmt_tree): Likewise.
7449 (scope_chain): Adjust.
7450 (language_function): Rename to cp_language_function.
7451 (cp_function_chain): Adjust.
7452 (current_stmt_tree): Remove.
7453 (last_tree): Likewise.
7454 (last_expr_type): Likewise.
7455 (struct lang_decl): Adjust.
7456 (STMT_IS_FULL_EXPR_P): Remove.
7457 (add_tree): Remove.
7458 (begin_stmt_tree): Likewise.
7459 (finish_stmt_tree): Likewise.
7460 (walk_tree_fn): Likewise.
7461 (walk_stmt_tree): Likewise.
7462 * class.c (finish_struct): Replace use of add_tree with add_stmt.
7463 * decl.c (mark_stmt_tree): Adjust type.
7464 (init_decl_processing): Don't build void_zero_node.
7465 (initialize_local_var): Adjust usage of current_stmt_tree.
7466 (finish_enum): Use add_stmt, not add_tree.
7467 (save_function_data): Adjust use of language_function.
7468 (finish_constructor_body): Use add_stmt, not add_tree.
7469 (finish_destructor_body): Likewise.
7470 (push_cp_function_context): Adjust use of language_function.
7471 (pop_cp_function_context): Likewise.
7472 (mark_lang_function): Likewise.
7473 (mark_cp_function_context): Likewise.
7474 * init.c (build_aggr_init): Adjust use of current_stmt_tree.
7475 (build_vec_init): Likewise.
7476 * semantics.c (SET_LAST_STMT): Remove.
7477 (RECHAIN_STMTS): Don't use it.
7478 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
7479 (current_stmt_tree): Define.
7480 (add_tree): Remove.
7481 (finish_goto_stmt): Use add_stmt, not add_tree.
7482 (finish_expr_stmt): Likewise.
7483 (begin_if_stmt): Likewise.
7484 (finish_then_clause): Likewise.
7485 (begin_while_stmt): Likewise.
7486 (begin_do_stmt): Likewise.
7487 (finish_return_stmt): Likewise.
7488 (begin_for_stmt): Likewise.
7489 (finish_break_stmt): Likewise.
7490 (finish_continue_stmt): Likewise.
7491 (begin_switch_stmt): Likewise.
7492 (finish_case_label): Likewise.
7493 (begin_try_block): Likewise.
7494 (begin_function_try_block): Likewise.
7495 (begin_handler): Likewise.
7496 (begin_catch_block): Likewise.
7497 (begin_compound_stmt): Likewise.
7498 (begin_asm_stmt): Likewise.
7499 (finish_asm_stmt): Likewise.
7500 (finish_label_stmt): Likewise.
7501 (add_decl_stmt): Likewise.
7502 (finish_subobject): Likewise.
7503 (finish_decl_cleanup): Likewise.
7504 (finish_named_return_value): Likewise.
7505 (setup_vtbl_ptr): Likewise.
7506 (add_scope_stmt): Likewise.
7507 (finish_stmt_expr): Likewise.
7508 (prune_unused_decls): Remove.
7509 (begin_stmt_tree): Likewise.
7510 (finish_stmt_tree): Likewise.
7511 (prep_stmt): Adjust use of current_stmt_tree.
7512 (lang_expand_stmt): Likewise.
7513 * tree.c (statement_code_p): Remove.
7514 (cp_statement_code_p): New function.
7515 (walk_stmt_tree): Remove.
7516 (init_tree): Set lang_statement_code_p.
bb20cc46 7517
0e5921e8
ZW
75182000-09-06 Zack Weinberg <zack@wolery.cumb.org>
7519
7520 Integrated preprocessor.
7521
7522 * Make-lang.in, Makefile.in: Remove all references to input.c,
7523 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
7524 * gxx.gperf, hash.h, input.c: Delete.
7525 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
7526 initialized properly.
7527
7528 * class.c (fixup_pending_inline): Take a tree, not a
7529 struct pending_inline *. All callers changed.
7530 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
7531 RID_PROTECTED entries in ridpointers[] array here.
7532 * decl.c (duplicate_decls): Do not refer to struct
7533 pending_inline.
7534 (record_builtin_type, init_decl_processing): Use RID_MAX not
7535 CP_RID_MAX.
7536 (grokdeclarator): Use C_IS_RESERVED_WORD.
7537 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
7538 cpplib.
7539 (grok_x_components): Do not inspect pending_inlines chain.
7540
7541 * cp-tree.h (struct lang_identifier): Add rid_code entry.
7542 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
7543 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
7544 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
7545 TIME_IDENTIFIER_FILEINFO): Kill.
7546 Update prototypes.
7547 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
7548 single 32-bit word.
7549 * parse.y: Call do_pending_inlines unconditionally.
7550 reinit_parse_for_method is now snarf_method. fn.defpen is no
7551 longer necessary. Remove unnecessary <itype> annotation on
7552 SCOPE. Do not refer to end_of_file or struct pending_inline.
7553 * semantics.c (begin_inline_definitions): Call
7554 do_pending_inlines unconditionally.
7555
7556 * lex.c: Remove all code now shared with C front end.
7557 Initialize cpplib properly if USE_CPPLIB. Put reserved words
7558 into the get_identifier table. Rewrite pragma handling to
7559 work with the registry. Move code to save tokens for later
7560 processing to spew.c.
7561
7562 * spew.c: Rewrite everything in terms of token streams instead
7563 of text. Move routines here from lex.c / input.c as
7564 appropriate. GC-mark trees hanging off the pending inlines
7565 chain.
7566
44835fdd
MM
75672000-09-06 Mark Mitchell <mark@codesourcery.com>
7568
7569 * NEWS: Mention that the named return value extension has been
7570 deprecated.
7571 * cp-tree.h (original_result_rtx): Define.
7572 (TREE_REFERENCE_EXPR): Remove.
7573 (DECL_VPARENT): Likewise.
7574 (pushdecl_nonclass_level): Likewise.
7575 (store_return_init): Likewise.
7576 (reinit_lang_specific): Likewise.
7577 (genrtl_named_return_value): Change prototype.
7578 * decl.c (original_result_rtx): Remove.
7579 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
7580 Do not generate RTL for local variables here.
7581 (store_return_init): Remove.
7582 * semantics.c (genrtl_named_return_value): Simplify. Fold in
7583 store_return_init.
7584 (finish_named_return_value): Adjust accordingly. Warn that this
7585 extension is deprecated.
7586 (lang_expand_stmt): Adjust call to genrtl_named_return_value.
7587
d7c4edd0
NS
75882000-09-06 Nathan Sidwell <nathan@codesourcery.com>
7589
7590 * pt.c (type_unification_real): Replace switch with if.
7591 (unify): Tsubst non-type parms before comparing.
7592
46e2747c
NS
75932000-09-06 Nathan Sidwell <nathan@codesourcery.com>
7594
7595 * error.c (dump_typename): New function, broken out of ...
7596 (dump_type): ... here. Use it.
7597 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
7598
c833d2be
NS
75992000-09-06 Nathan Sidwell <nathan@codesourcery.com>
7600
7601 * init.c (build_offset_ref): Deal with namespace scoped
7602 TEMPLATE_ID_EXPRs.
7603
b1ce3eb2
NS
76042000-09-06 Nathan Sidwell <nathan@codesourcery.com>
7605
7606 * class.c (resolve_address_of_overloaded_function): Add
7607 explanation message.
7608 * decl.c (define_case_label): Reformat explanation.
7609 * decl2.c (finish_static_data_member_decl): Likewise.
7610 (grokfield): Likewise.
7611 * friend.c (do_friend): Likewise.
7612
11f53b6a
ZW
76132000-09-05 Zack Weinberg <zack@wolery.cumb.org>
7614
7615 * tree.c (walk_tree): Expose tail recursion.
7616 (walk_stmt_tree): New function.
7617 * cp-tree.h: Prototype walk_stmt_tree.
7618 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
7619 the BLOCKs directly. If a BLOCK has no variables after
7620 pruning, discard it.
7621 (finish_stmt_tree): Use walk_stmt_tree. No need to save and
7622 restore the line number.
7623
ee94fce6
MM
76242000-09-05 Mark Mitchell <mark@codesourcery.com>
7625
7626 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
7627 (pt.o): Remove dependency on HTAB_H.
7628 * cp-tree.h: Include hashtab.h.
7629 (walk_tree): Change prototype.
7630 (walk_tree_without_duplicates): New function.
7631 * decl.c (check_default_argument): Use it.
7632 * optimize.c (remap_decl): Adjust calls to walk_tree.
7633 (copy_body): Likewise.
7634 (expand_calls_inline): Likewise.
7635 (calls_setjmp_p): Use walk_tree_without_duplicates.
7636 * pt.c: Don't include hashtab.h.
7637 (for_each_template_parm): Use walk_tree_without_duplicates.
7638 * semantics.c (finish-stmt_tree): Likewise.
7639 (expand_body): Likewise.
7640 * tree.c (walk_tree): Add additional parameter.
7641 (walk_tree_without_duplicates): New function.
7642 (count_trees): Use it.
7643 (verify_stmt_tree): Adjust call to walk_tree.
7644 (find_tree): Use walk_tree_without_duplicates.
7645 (no_linkage_check): Likewise.
7646 (break_out_target_exprs): Adjust call to walk_tree.
7647 (cp_unsave): Likewise.
7648
a1281f45
KL
76492000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7650
7651 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
7652 (TEMPLATE_TEMPLATE_PARM): Adjust comment.
7653 * cp-tree.h (TYPE_BINFO): Adjust comment.
7654 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
7655 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
7656 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
7657 (TYPE_TEMPLATE_INFO): Likewise.
7658 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
7659 * class.c (push_nested_class): Likewise.
7660 * decl.c (lookup_name_real): Likewise.
7661 (grokdeclarator): Likewise.
7662 (grok_op_properties): Likewise.
7663 (xref_tag): Likewise.
7664 (xref_basetypes): Likewise.
7665 * decl2.c (constructor_name_full): Likewise.
7666 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
7667 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
7668 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
7669 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7670 (dump_type_suffix): Likewise.
7671 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
7672 instead.
7673 (get_aggr_from_typedef): Likewise.
7674 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
7675 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7676 (write_template_parm): Likewise.
7677 (write_template_template_parm): Check tree code instead of
7678 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
0e5921e8 7679 * method.c (build_overload_nested_name): Add
a1281f45
KL
7680 BOUND_TEMPLATE_TEMPLATE_PARM.
7681 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
7682 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7683 * pt.c (convert_template_argument): Check tree code instead of
7684 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
7685 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
7686 (for_each_template_parm): Adjust comment.
7687 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize.
7688 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7689 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use
7690 template_args_equal to compare template template parameter cases.
7691 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7692 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
7693 instead.
7694 * tree.c (copy_template_template_parm): Decide whether to create
7695 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
7696 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7697 (copy_tree_r): Likewise.
7698 * typeck.c (comptypes): Likewise. Check tree code instead of
7699 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
7700
c9672d45
ME
77012000-09-04 Mark Elbrecht <snowball3@bigfoot.com>
7702
7703 * decl.c (finish_function): Move the code for handling functions
7704 marked with the constructor and destructor attributes inside the
7705 expand_p block.
7706
67804825
NS
77072000-09-04 Nathan Sidwell <nathan@codesourcery.com>
7708
7709 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
7710
1bc0793e
NS
77112000-09-04 Nathan Sidwell <nathan@codesourcery.com>
7712
7713 * pt.c (lookup_template_class): Remove abort.
7714 * tree.c (get_type_decl): Allow error_mark_node.
7715
3338663b
NS
77162000-09-04 Nathan Sidwell <nathan@codesourcery.com>
7717
7718 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
7719 TEMPLATE_ID_EXPRs.
7720
1b84dc37
MM
77212000-09-03 Mark Mitchell <mark@codesourcery.com>
7722
7723 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
c9672d45 7724 new ABI mangling.
1b84dc37 7725
9687f8f4
NS
77262000-09-01 Nathan Sidwell <nathan@codesourcery.com>
7727
7728 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
c9672d45 7729 union tag mismatch error reporting.
9687f8f4 7730
4f8025eb
NS
77312000-09-01 Nathan Sidwell <nathan@codesourcery.com>
7732
c9672d45 7733 * call.c (build_scoped_method_call): Check it is not a namespace.
4f8025eb 7734
495d26d6
JM
77352000-08-30 Jason Merrill <jason@redhat.com>
7736
7737 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
7738
7739 * tree.c (bot_manip): Check TREE_CONSTANT rather than
7740 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and
7741 build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
7742
7743 * decl.c (start_function): Always call make_function_rtl.
7744
7efcf466
ZW
77452000-08-29 Zack Weinberg <zack@wolery.cumb.org>
7746
495d26d6 7747 * semantics.c (prune_unused_decls): New function.
7efcf466
ZW
7748 (finish_stmt_tree): Call it via walk_tree.
7749
63ad61ed
ZW
77502000-08-29 Zack Weinberg <zack@wolery.cumb.org>
7751
7752 * class.c (build_secondary_vtable): Constify a char *.
7753 * decl.c (init_decl_processing): Initialize function_id_node,
7754 pretty_function_id_node, and func_id_node.
7755 * input.c (struct input_source): Constify 'str'.
7756 (feed_input): Constify first argument.
7757 * mangle.c (write_identifier): Constify argument.
7758 * pt.c (mangle_class_name_for_template): Constify argument.
7759
4361b41d
MM
77602000-08-29 Mark Mitchell <mark@codesourcery.com>
7761
7762 * typeck.c (mark_addressable): Remove code that pokes around in
7763 RTL.
7764
881c6935
JM
77652000-08-28 Jason Merrill <jason@redhat.com>
7766
7767 * lex.c (file_name_nondirectory): Move to toplev.c.
7768
7769 * cp-tree.h (LOCAL_CLASS_P): New macro.
7770 * class.c (finish_struct_1): Use it.
7771
f0f33848
AS
77722000-08-27 Alex Samuel <samuel@codesourcery.com>
7773
7774 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
7775 (write_encoding): Pass another argument to write_name.
7776 (write_name): Add ignore_local_scope parameter. Fix handling of
7777 local names.
7778 (write_nested_name): Use write_unqualified_name.
7779 (write_prefix): Likewise. Skip out on FUNCTION_DECLs.
7780 (write_template_prefix): Use write_unqualified_name.
7781 (write_component): Remove.
7782 (write_local_name): Add parameter. Use direct local entity to
7783 discriminator calculation.
0e5921e8 7784 (write_class_enum_type): Pass another argument to write_name.
f0f33848
AS
7785 (write_template_template_arg): Likewise.
7786 (make_guard_variable): Likewise.
0e5921e8 7787
94dfccd1
JM
77882000-08-27 Jason Merrill <jason@redhat.com>
7789
7790 * decl.c (pushdecl): Matching decls for local externs are found in
7791 the current level. Propagate linkage information from previous
7792 declarations.
7793
14fdf4b6
GDR
77942000-08-26 Gabriel Dos Reis <gdr@codesourcery.com>
7795
7796 * ir.texi (Expressions): Fix typo.
7797
b5232c64
GM
77982000-08-25 Greg McGary <greg@mcgary.org>
7799
7800 * tree.c (init_tree): Use ARRAY_SIZE.
7801
22a4158c
GDR
78022000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
7803
7804 * error.c (cp_tree_printer): Rework.
7805
f22967f3
MM
78062000-08-25 Mark Mitchell <mark@codesourcery.com>
7807
a0c182fe
MM
7808 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
7809 dyn-string.o.
7810 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
7811 (cp-demangle.o): Remove target.
7812 (dyn-string.o): Likewise.
7813
f22967f3
MM
7814 * decl.c (grokfndecl): Require that `main' return an `int'.
7815 * mangle.c (write_encoding): Don't mangle return types for
7816 conversion functions.
7817
a1066c99
GDR
78182000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
7819
7820 * error.c (tree_formatting_info): New data type.
7821 (tree_being_formatted): New macro.
7822 (tree_formatting_flags): Likewise.
7823 (put_whitespace): Likewise.
7824 (print_tree_identifier): Likewise.
7825 (print_identifier): Likewise.
7826 (cp_tree_printer, print_function_argument_list, print_declaration,
7827 print_expression, print_function_declaration,
7828 print_function_parameter, print_type, print_cv_qualifier): New
0e5921e8 7829 functions.
a1066c99
GDR
7830 (init_error): Initialize lang_printer.
7831
3f2b640a
JM
78322000-08-24 Jason Merrill <jason@redhat.com>
7833
7834 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no
7835 adjustment necessary.
7836
7ec09bf7
GM
78372000-08-24 Greg McGary <greg@mcgary.org>
7838
7839 * cp-tree.h (MAIN_NAME_P): Remove macro.
7840
2ab99c46
GDR
78412000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
7842
7843 * error.c (print_instantiation_context): Don't forget to flush the
7844 buffer.
7845
7def1251
JM
78462000-08-23 Jason Merrill <jason@redhat.com>
7847
7848 * typeck.c (build_ptrmemfunc): Save the input pmf.
7849
7850 * method.c (process_modifiers): Use same_type_p.
7851
94350948
MM
78522000-08-23 Mark Mitchell <mark@codesourcery.com>
7853
7854 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
7855 * mangle.c (write_function_type): Change prototype.
7856 (write_encoding): Don't mangle return types for
7857 constructors or destructors.
7858 (write_type): Adjust call to write_function_type.
7859 * pt.c (instantiate_template): Instantiate alternate entry points
7860 when instantiating the main function.
0e5921e8 7861
a64e7329
GDR
78622000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
7863
7864 * error.c (cp_print_error_function): Don't use embedded '\n' in
0e5921e8 7865 output_printf.
a64e7329 7866
a72462a4
GDR
78672000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
7868
7869 * decl.c (init_decl_processing): Remove bogus initialization.
7870 * error.c (lang_print_error_function): Restore here.
0e5921e8
ZW
7871 (init_error): Initialize print_error_function.
7872
3add6264
TP
78732000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7874
7875 * decl2.c (arg_assoc): Revert my 2000-08-11 change.
7876
cb753e49
GDR
78772000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
7878
7879 * Makefile.in (error.o): Depends on diagnostic.h
7880
7881 * cp-tree.h (problematic_instantiation_changed,
7882 record_last_problematic_instantiation, current_instantiation,
7883 print_instantiation_context): Declare.
7884 (maybe_print_template_context): Remove.
7885
7886 * decl.c (init_decl_processing): Set print_error_function to NULL.
7887 (lang_print_error_function): Remove, since we're using a new
7888 machinery.
7889
7890 * error.c: #include diagnostic.h
7891 (function_category): New function.
7892 (cp_diagnostic_starter): Likewise.
7893 (cp_diagnostic_finalizer): Likewise.
7894 (cp_print_error_function): Likewise.
7895 (maybe_print_instantiation_context): Likewise.
7896 (print_instantiation_full_context): Likewise.
7897 (print_instantiation_partial_context): Likewise.
7898 (print_instantiation_context): Define.
7899 (init_error): Initialize diagnostic pager and finalizer.
7900
7901 * pt.c (problematic_instantiation_changed): Define.
7902 (record_last_problematic_instantiation): Likewise.
7903 (current_instantiation): Likewise.
7904 (maybe_print_template_context): Remove.
7905 (print_template_context): Likewise.
7906 (current_tinst_level): Make static to reflect Brendan Kehoe's
7907 change of 1995-04-13.
0e5921e8
ZW
7908 (push_tinst_level): Call print_instantiation_context.
7909
05a3d06e 79102000-08-21 Nix <nix@esperi.demon.co.uk>
0e5921e8 7911
05a3d06e
N
7912 * lang-specs.h: Do not process -o or run the assembler if
7913 -fsyntax-only.
7914
93e2382f
JM
79152000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
7916
7917 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New
7918 variables.
7919 * decl2.c (lang_decode_option): Disable gettext attributes for
7920 -ansi.
7921
24805e80
GDR
79222000-08-21 Gabriel Dos Reis <gdr@codesourcery.com>
7923
7924 * lex.c (lang_init_options): Default diagnostic message maximum
7925 length to 80, when line-wrapping.
7926
b485e15b
MM
79272000-08-20 Mark Mitchell <mark@codesourcery.com>
7928
7929 * class.c (build_vtbl_initializer): Clear the entire
7930 vtbl_init_data. Start keeping track of the functions for which we
7931 have created vcall offsets here.
7932 (dfs_build_vcall_offset_vtbl_entries): Remove.
7933 (build_vcall_offset_vtbl_entries): Reimplement.
7934 (add_vcall_offset_vtbl_entries_r): New function.
7935 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for
7936 computing when vcall offsets are necessary.
7937
2ae7bada
NS
79382000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7939
7940 * decl.c (member_function_or_else): Use cp_error ... %T.
7941 (grokdeclarator): Likewise.
7942 (start_method): Likewise.
0e5921e8 7943 * friend.c (make_friend_class): Use cp_pedwarn ... %T.
2ae7bada 7944
7a8b1375
NS
79452000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7946
7947 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
0e5921e8 7948 TYPE_DECLs.
7a8b1375 7949
19420d00
NS
79502000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7951
7952 * cp-tree.h (PTRMEM_OK_P): New macro.
7953 (itf_ptrmem_ok): New enumeration value.
7954 * class.c (resolve_address_of_overloaded_function): Add PTRMEM
7955 argument. Diagnose implicit pointer to member.
7956 (instantiate_type): Don't diagnose implicit pointer to member
7957 here. Pass itf_ptrmem_ok if ok. Adjust calls to
7958 resolve_address_of_overloaded_function.
7959 * init.c (build_offset_ref): Set PTRMEM_OK_P.
7960 (resolve_offset_ref): Don't diagnose implicit pointer to member here.
7961 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
7962 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
7963 (build_unary_op): Deal with single non-static member in
7964 microsoft-land.
7965
66081283
NS
79662000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7967
7968 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
7969
fa40aa12
NS
79702000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7971
7972 * cp-tree.h (enum_name_string): Remove prototype.
7973 (report_case_error): Remove prototype.
7974 * cp/typeck2.c (enum_name_string): Remove.
7975 (report_case_error): Remove.
7976 * error.c (dump_expr): Deal with enum values directly.
7977 Correctly negate integer constant.
7978
d13b34e9
NS
79792000-08-17 Nathan Sidwell <nathan@codesourcery.com>
7980
7981 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
7982 (__cxa_vec_delete2, __cxa_vec_delete3): Declare.
7983 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
7984 (__cxa_vec_delete2, __cxa_vec_delete3): Implement.
7985 (__cxa_vec_new): Use __cxa_vec_new2.
7986 (__cxa_vec_delete): Use __cxa_vec_delete2.
7987
2f1b80af
NS
79882000-08-17 Nathan Sidwell <nathan@codesourcery.com>
7989
7990 * vec.cc (__cxa_vec_new): Set "C" linkage.
7991 (__cxa_vec_ctor): Likewise.
7992 (__cxa_vec_cctor): Likewise.
7993 (__cxa_vec_dtor): Likewise.
7994 (__cxa_vec_delete): Likewise.
7995 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
7996 (__cxa_vec_ctor): Likewise.
7997 (__cxa_vec_cctor): Likewise.
7998 (__cxa_vec_dtor): Likewise.
7999 (__cxa_vec_delete): Likewise.
8000
105d8e1f
NS
80012000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8002
8003 * class.c (instantiate_type): Reinstate local variable
8004 deleted in previous change.
0e5921e8 8005
f1819d9a
NS
8006 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not
8007 itf_no_attributes.
105d8e1f 8008
5e76004e
NS
80092000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8010
8011 * cp-tree.h (instantiate_type_flags): New enumeration.
8012 (instantiate_type): Change parameter.
8013 * class.c (instantiate_type): Adjust prototype. Adjust.
8014 * call.c (standard_conversion): Adjust instantiate_type call.
8015 (reference_binding): Likewise.
8016 (build_op_delete_call): Likewise.
8017 (convert_like_real): Likewise.
8018 * cvt.c (cp_convert_to_pointer): Likewise.
8019 (convert_to_reference): Likewise.
8020 * pt.c (convert_nontype_argument): Likewise.
8021 * typeck.c (build_binary_op): Likewise.
8022 (build_ptrmemfunc): Likewise.
8023 (convert_for_assignment): Likewise.
8024
4b054b80
NS
80252000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8026
8027 * cp-tree.h (CPTR_AGGR_TAG): New global tree node.
8028 (current_aggr): Define.
8029 * decl.c (grokdeclarator): Make sure a friend class is an
8030 elaborated type specifier.
8031 * parse.y (current_aggr): Remove static definition.
8032 (cp_parse_init): Adjust.
8033 (structsp): Clear and restore current_aggr.
8034 (component_decl_list): Clear current_aggr.
0e5921e8 8035
4b054b80
NS
8036 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the
8037 aggregate tag on the typename's context.
0e5921e8 8038
321cba97
NS
8039 * pt.c (tsubst_friend_class): Return error_mark_node, if
8040 parms becomes NULL.
8041 (instantiate_class_template): Ignore error_mark_node friend types.
4b054b80 8042
08aead78
NS
80432000-08-14 Nathan Sidwell <nathan@codesourcery.com>
8044
8045 * cvt.c (warn_ref_binding): New static function, broken out of ...
0e5921e8 8046 (convert_to_reference): ... here. Use it.
08aead78 8047
fa1f3ebc
KL
80482000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
8049
8050 * parse.y (template_arg): Add rule for template qualified with
8051 global scope.
8052
9845b52b
TP
80532000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
8054
8055 * decl2.c (add_function): Reorganize.
8056 (arg_assoc): Do not consider function template decls.
8057
e69c8072
JM
80582000-08-11 Jason Merrill <jason@redhat.com>
8059
8060 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
8061 looking inside.
8062
5c1e5476
NS
80632000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8064
8065 * cp-tree.h (resolve_scope_to_name): Remove unused prototype.
8066 (lookup_nested_tag): Likewise.
0e5921e8 8067
5c1e5476
NS
8068 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs
8069 can be produced.
8070
5426aa7f
NS
80712000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8072
8073 * parse.y (named_complex_class_head_sans_basetype): Remove
8074 always true if.
8075
fd037e0d
NS
80762000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8077
8078 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
8079 explicit TEMPLATE_ID_EXPR args.
8080 (build_expr_from_tree, case CALL_EXPR): Likewise.
8081
73ae5c34
NS
80822000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8083
8084 * decl.c (check_tag_decl): Diagnose typename's which don't
8085 declare anything.
8086
aa54df09
NS
80872000-08-10 Nathan Sidwell <nathan@codesourcery.com>
8088
8089 * init.c (build_aggr_init): Reject bogus array initializers
8090 early.
8091
7e8dad18
NS
80922000-08-09 Nathan Sidwell <nathan@codesourcery.com>
8093
8094 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
8095 runtime.
8096 * cp/tinfo.cc (__dynamic_cast): Likewise.
0e5921e8 8097 * cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7e8dad18 8098
0f586b9b
NS
80992000-08-09 Nathan Sidwell <nathan@codesourcery.com>
8100
8101 * cvt.c (convert_to_pointer_force): Fix error message when
0e5921e8 8102 attempting to cast from ambiguous base.
0f586b9b 8103
08e72a19
JM
81042000-08-08 Jason Merrill <jason@redhat.com>
8105
8106 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
8107 (tsubst_template_arg_vector): Likewise.
8108
8109 * decl2.c (build_anon_union_vars): Choose the largest field; don't
8110 assume that one will be as large as the union.
8111
0811ea8f
KH
81122000-08-07 Kazu Hirata <kazu@hxi.com>
8113
8114 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
8115 * decl.c (pop_labels): Likewise.
8116
f9fcf62b
JO
81172000-08-04 Jeffrey Oldham <oldham@codesourcery.com>
8118
8119 * inc/cxxabi.h (__pbase_type_info): Changed member names to match
8120 specifications.
8121 (__pointer_to_member_type_info): Likewise.
8122 (__base_class_info): Likewise.
8123 (__class_type_info): Likewise.
8124 (__si_class_type_info): Likewise.
8125 (__vmi_class_type_info): Likewise.
8126 * tinfo.cc (__si_class_type_info::__do_find_public_src):
8127 Changed member names to match specifications.
8128 (__vmi_class_type_info::__do_find_public_src): Likewise.
8129 (__si_class_type_info::__do_dyncast): Likewise.
8130 (__vmi_class_type_info::__do_dyncast): Likewise.
8131 (__si_class_type_info::__do_upcast): Likewise.
8132 (__vmi_class_type_info::__do_upcast): Likewise.
8133 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
8134 (__pbase_type_info::__pointer_catch): Likewise.
8135 (__pointer_type_info::__pointer_catch): Likewise.
8136 (__pointer_to_member_type_info::__pointer_catch): Likewise.
8137
a36556a8
ZW
81382000-08-04 Zack Weinberg <zack@wolery.cumb.org>
8139
0e5921e8
ZW
8140 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
8141 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
8142 (cc1plus): Link with $(BACKEND) and $(C_OBJS).
a36556a8 8143
452a394b
MM
81442000-08-04 Mark Mitchell <mark@codesourcery.com>
8145
8146 * cp-tree.h (add_method): Change prototype.
8147 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P.
8148 Don't double the size of the method vector in the error case.
8149 (handle_using_decl): Adjust call to add_method.
8150 (add_implicitly_declared_members): Likewise.
8151 (clone_function_decl): Likewise.
8152 * decl2.c (check_classfn): Likewise.
8153 * semantics.c (finish_member_declaration): Likewise.
0e5921e8 8154
b8458e3e
JM
81552000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
8156
8157 * decl.c (flag_isoc94): New variable.
8158
a1bcc528
JM
81592000-08-02 Jason Merrill <jason@redhat.com>
8160
8161 * pt.c (do_type_instantiation): Add complain parm; don't complain
8162 if called recursively.
8163 * cp-tree.h, parse.y: Adjust.
8164
50e60bc3
ZW
81652000-08-02 Zack Weinberg <zack@wolery.cumb.org>
8166
eae51189
ZW
8167 * decl2.c: Silently ignore -Wstrict-prototypes; warn about
8168 -Wno-strict-prototypes.
8169
37620334
ZW
8170 * g++spec.c: Adjust type of second argument to
8171 lang_specific_driver, and update code as necessary.
8172
50e60bc3
ZW
8173 * cp-tree.h: Don't prototype min_precision here.
8174 (my_friendly_assert): Cast expression to void.
8175 * semantics.c (do_poplevel): Initialize scope_stmts.
8176
3f954fc3
MM
81772000-08-02 Mark Mitchell <mark@codesourcery.com>
8178
8179 * cp-tree.h (DECL_NEEDED_P): Tweak.
8180
ab4fa7ed
JM
81812000-07-28 Jason Merrill <jason@redhat.com>
8182
8183 * lang-specs.h: Use %i in rule for .ii files.
8184
4871239e
ZW
81852000-07-31 Zack Weinberg <zack@wolery.cumb.org>
8186
8187 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
8188
911a71a7
MM
81892000-07-30 Mark Mitchell <mark@codesourcery.com>
8190
8191 Allow indirect primary bases.
8192 * cp-tree.h (struct lang_type): Remove vfield_parent. Add
8193 primary_base.
8194 (CLASSTYPE_VFIELD_PARENT): Remove.
8195 (CLASSTYPE_PRIMARY_BINFO): Reimplement.
8196 (BINFO_PRIMARY_BINFO): Remove.
8197 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
8198 (BINFO_VBASE_PRIMARY_P): Likewise.
8199 (BINFO_PRIMARY_BASE_OF): New macro.
8200 (BINFO_INDIRECT_PRIMARY_P): Likewise.
8201 (get_primary_binfo): New function.
8202 * decl.c (lang_mark_tree): Make lang_type::primary_base.
8203 * class.c (vcall_offset_data_s): Rename to ...
8204 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p,
8205 and add ctor_vtbl_p.
8206 (get_derived_offset): Use get_primary_binfo.
8207 (dfs_mark_primary_bases): Adjust handling of virtual primary
8208 bases.
8209 (mark_primary_bases): Likewise.
8210 (set_primary_base): Take a binfo, not an integer, as a
8211 representation of the primary base.
8212 (indirect_primary_base_p): Remove.
8213 (determine_primary_base): Adjust for indirect primary bases.
8214 (dfs_find_final_overrider): Fix typo in coment.
8215 (update_vtable_entry_for_fn): Use get_primary_binfo.
8216 (layout_nonempty_base_or_field): Tweak.
8217 (build_base_fields): Adjust for new primary base semantics.
8218 (dfs_propagate_binfo_offsets): Remove.
8219 (propagate_binfo_offsets): Rewrite.
8220 (dfs_set_offset_for_shared_vbases): Remove.
8221 (layout_virtual_bases): Don't use it.
8222 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new
8223 ABI.
8224 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
8225 CLASSTYPE_VFIELD_PARENT.
8226 (dfs_get_primary_binfo): New function.
8227 (get_primary_binfo): Likewise.
8228 (dump_class_hierarchy_r): Tweak printing of primary bases.
8229 (build_vtbl_initializer): Fix typo in comments. Use
8230 vtbl_init_data.
8231 (build_vcall_and_vbase_vtbl_entries): Likewise.
8232 (build_vbaes_offset_vtbl_entries): Likewise.
8233 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of
8234 BV_VCALL_INDEX to handle indirect primary bases.
8235 (build_vcall_offset_vtbl_entries): Use vtbl_init_data.
8236 (build_rtti_vtbl_entries): Likewise.
8237 * search.c (get_shared_vbase_if_not_primary): Tweak.
8238 (find_vbase_instance): Likewise.
8239 (binfo_for_vtable): Simplify.
8240 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
8241 (make_binfo): Make it have 11 entries.
0e5921e8 8242
722bed0f
AS
82432000-07-30 Alex Samuel <samuel@codesourcery.com>
8244
8245 * mangle.c (DECL_TEMPLATE_ID_P): Remove.
8246 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
8247 ascertaining primaryness.
8248 (G): Remove template_args.
8249 (decl_is_template_id): New function.
8250 (write_encoding): Use decl_is_template_id.
8251 (write_name): Likewise. Handle type_decls. Get main variant of
8252 type decls.
8253 (write_nested_name): Likewise.
8254 (write_prefix): Likewise.
8255 (write_template_prefix): Likewise.
8256 (write_special_name_constructor): Remove defunct production from
8257 comment.
8258 (write_bare_function_type): Remove comment about absent parameter.
8259 (write_template_template_arg): Add missing grammar production to
8260 comment.
8261
9076e292
JM
82622000-07-27 Jason Merrill <jason@redhat.com>
8263
8264 * decl.c (duplicate_decls): If common_type produces a non-typedef
8265 type for a typedef, just use the old type.
8266
b2244c65
MM
82672000-07-27 Mark Mitchell <mark@codesourcery.com>
8268
8269 * cp-tree.h (function_depth): Declare.
8270 (verify_stmt_tree): Likewise.
8271 (find_tree): Likewise.
8272 * decl.c (function_depth): Give it external linkage.
8273 * optimize.c (optimize_function): Increment and decrement it.
8274 * tree.c (verify_stmt_tree_r): New function.
8275 (verify_stmt_tree): Likewise.
8276 (find_tree_r): Likewise.
8277 (find_tree): Likewise.
8278
62e3bf54
JM
82792000-07-27 Jason Merrill <jason@redhat.com>
8280
9076e292
JM
8281 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
8282 TYPE_PTRMEMFUNC_P.
8283 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
62e3bf54 8284
5a728aca
MM
82852000-07-26 Mark Mitchell <mark@codesourcery.com>
8286
8287 * decl.c (start_cleanup_fn): Mark the function as `inline'.
8288 * decl2.c (get_guard): Call cp_finish_decl, not
8289 rest_of_decl_compilation, for local guards.
8290 * lex.c (do_identifier): Remove unused variable.
8291
6a1fa5f9
ME
8292Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
8293
8294 * parse.y: Add missing ';'.
8295
0c10a805
MM
82962000-07-26 Mark Mitchell <mark@codesourcery.com>
8297
8298 * parse.y (empty_parms): Use `()', not `(...)', when in the scope
8299 of `extern "C++"'.
8300
8b27e9ef
NS
83012000-07-25 Nathan Sidwell <nathan@codesourcery.com>
8302
8303 Kill strict_prototype. Backwards compatibility only for
8304 non NO_IMPLICIT_EXTERN_C systems.
8305 * cp-tree.h (flag_strict_prototype): Remove.
8306 (strict_prototype): Remove.
8307 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
8308 * decl.c (maybe_push_to_top_level): Adjust.
8309 (pop_from_top_level): Adjust.
8310 (decls_match): Only allow sloppy parm matching for ancient
8311 system headers.
8312 (init_decl_processing): Adjust.
8313 (grokdeclarator): Adjust.
8314 * decl2.c (flag_strict_prototype): Remove.
8315 (strict_prototype): Remove.
8316 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
8317 (lang_f_options): Remove "strict-prototype".
8318 (unsupported-options): Add "strict-prototype".
8319 * lex.c (do_identifier): Adjust.
8320 (do_scoped_id): Adjust.
8321 * parse.y (empty_parms): Adjust.
8322 * class.c (push_lang_context): Adjust.
8323 (pop_lang_context): Adjust.
8324 * typeck.c (comp_target_parms): Adjust.
8325
c3783399
NS
83262000-07-25 Nathan Sidwell <nathan@codesourcery.com>
8327
8328 * decl.c (poplevel): Deal with anonymous variables at for scope.
8329 (maybe_inject_for_scope_var): Likewise.
8330
a7023245
ZW
83312000-07-25 Zack Weinberg <zack@wolery.cumb.org>
8332
8333 * decl.c: Remove all signal handling code, now done in toplev.c.
8334
95ee998c
MM
83352000-07-23 Mark Mitchell <mark@codesourcery.com>
8336
8337 * decl.c (make_rtl_for_nonlocal_decl): Rework.
8338
8339 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
8340 correctly.
8341
1b493b81
ZW
83422000-07-20 Zack Weinberg <zack@wolery.cumb.org>
8343
8344 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
8345 Define my_friendly_assert and my_friendly_abort as macros
8346 which may call friendly_abort. Prototype friendly abort, not
8347 my_friendly_abort or my_friendly_assert.
8348 * decl.c (signal_catch): Report the signal caught in the error
8349 message. Call fatal directly.
8350 * typeck2.c (ack, my_friendly_assert): Delete.
8351 (my_friendly_abort): Rename to friendly_abort. Expect file,
8352 line, and function parameters. Report the abort code, then
8353 call fancy_abort. Do not mask an abort if errors have
8354 already occurred.
8355
a306451c
NS
83562000-07-18 Nathan Sidwell <nathan@codesourcery.com>
8357
8358 * typeck.c (comp_target_parms): Remove obsolete parameter.
8359 (comp_target_types): Adjust.
8360
f49fad00
JM
83612000-07-17 Jason Merrill <jason@redhat.com>
8362
8363 * typeck.c (mark_addressable): Never set TREE_USED.
8364 * call.c (build_call): Don't abort on calls to library functions
8365 that have been declared normally.
8366
8367 * typeck.c (build_binary_op): Fix grammar in warning.
8368
8369 * exception.cc (__eh_free): Fix prototype.
8370
8371 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
8372
0e5921e8 8373 * decl.c (pushdecl): Handle seeing an OVERLOAD in
f49fad00
JM
8374 IDENTIFIER_NAMESPACE_VALUE.
8375
69690d98
MM
83762000-07-16 Mark Mitchell <mark@codesourcery.com>
8377
8378 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
8379 * method.c (use_thunk): Correct handling of vcall offsets.
8380
bfbbc080
ZW
83812000-07-14 Zack Weinberg <zack@wolery.cumb.org>
8382
8383 * .cvsignore: parse.h and parse.c have no cp- prefix.
8384
83a90717
MM
83852000-07-13 Mark Mitchell <mark@codesourcery.com>
8386
8387 * .cvsignore: New file.
8388
ea414c97
ZW
83892000-07-13 Zack Weinberg <zack@wolery.cumb.org>
8390
8391 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
8392
792abd35
MM
83932000-07-12 Mark Mitchell <mark@codesourcery.com>
8394
8395 * Makefile.in ($(PARSE_H)): Depend directly on parse.y.
8396 * parse.c: Remove.
8397 * parse.h: Likewise.
8398
72a50ab0
MM
83992000-07-11 Mark Mitchell <mark@codesourcery.com>
8400
8401 * class.c (layout_class_type): Add pointers to virtual bases after
8402 base classes under the old ABI.
8403
0dfdeca6
BC
84042000-07-10 Benjamin Chelf <chelf@codesourcery.com>
8405
8406 * semantics.c (finish_for_stmt): Remove call to emit_line_note.
8407 (finish_continue_stmt): Likewise.
8408 (begin_for_stmt): Remove call to note_level_for_for.
8409 (finish_goto_stmt): Change call from build_min_nt
8410 to build_stmt.
8411 (finish_expr_stmt): Likewise.
8412 (begin_if_stmt): Likewise.
8413 (begin_while_stmt): Likewise.
8414 (finish_while_stmt): Likewise.
8415 (finish_return_stmt): Likewise.
8416 (begin_for_stmt): Likewise.
8417 (finish_for_stmt): Likewise.
8418 (finish_break_stmt): Likewise.
8419 (begin_switch_stmt): Likewise.
8420 (finish_case_label): Likewise.
8421 (genrtl_try_block): Likewise.
8422 (begin_try_block): Likewise.
8423 (begin_handler): Likewise.
8424 (begin_compound_stmt): Likewise.
8425 (finish_asm_stmt): Likewise.
8426 (finish_label_stmt): Likewise.
8427 (add_decl_stmt): Likewise.
8428 (finish_subobject): Likewise.
8429 (finish_decl_cleanup): Likewise.
8430 (finish_named_return_value): Likewise.
8431 (setup_vtbl_ptr): Likewise.
8432 (add_scope_stmt): Likewise.
8433 * decl.c (finish_constructor_body): Likewise.
8434 (finish_destructor_body): Likewise.
8435 * optimize.c (copy_body_r): Likewise.
8436 (initialize_inlined_parameters): Likewise.
8437 (declare_return_variable): Likewise.
8438 (expand_call_inline): Likewise.
0e5921e8 8439
f12eef58
JJ
84402000-07-10 Jakub Jelinek <jakub@redhat.com>
8441
8442 * semantics.c (expand_body): Sync interface information
8443 at the end of function body expansion.
8444
2bb5d995
JM
84452000-07-09 Jason Merrill <jason@redhat.com>
8446
8447 * init.c (build_new_1): Bail early if the call to new fails.
8448
0e5921e8 8449 * decl.c (compute_array_index_type): Check specifically for
2bb5d995
JM
8450 an INTEGER_CST, not just TREE_CONSTANT.
8451
0e5921e8 8452 * decl.c (duplicate_decls): Don't call duplicate_decls on
2bb5d995
JM
8453 the DECL_TEMPLATE_RESULT.
8454 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
8455 codes.
8456
8457 * error.c (dump_template_bindings): Don't crash if we had an
8458 invalid argument list.
8459
8460 * typeck.c (c_expand_start_case): Do narrowing here.
8461 * semantics.c (finish_switch_cond): Not here.
8462
84632000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com>
8464
8465 * parse.y (asm_clobbers): Do string concatenation.
8466
089acd57
MM
84672000-07-09 Mark Mitchell <mark@codesourcery.com>
8468
8469 * decl.c (pushtag): Don't put local classes in template functions
8470 on the local_classes list.
8471
84722000-07-04 Scott Snyder <snyder@fnal.gov>
8473
8474 * decl2.c (get_guard): Add missing return for old ABI local
8475 variable case.
8476
7b019c19
MM
84772000-07-09 Mark Mitchell <mark@codesourcery.com>
8478
8479 * cp-tree.h (char_type_p): New function.
8480 * decl.c (init_decl_processing): Don't initialize
8481 signed_wchar_type_node or unsigned_wchar_type_node.
8482 (complete_array_type): Handle brace-enclosed string-constants.
8483 * rtti.c (emit_support_tinfos): Remove #if 0'd code.
8484 * tree.c (char_type_p): New function.
8485 * typeck2.c (digest_init): Use char_type_p.
8486
a5f1c5f8
NS
84872000-07-06 Nathan Sidwell <nathan@codesourcery.com>
8488
8489 * pt.c (tsubst): Don't layout type, if it's error_mark.
8490
84e5ca0f
NS
84912000-07-06 Nathan Sidwell <nathan@codesourcery.com>
8492
8493 * pt.c (instantiate_pending_templates): Reset template level.
8494
ab785305
JM
84952000-07-05 Jason Merrill <jason@redhat.com>
8496
8497 * call.c (joust): Don't complain about `operator char *()' beating
8498 `operator const char *() const'.
8499
90418208
JM
85002000-07-04 scott snyder <snyder@fnal.gov>
8501 Jason Merrill <jason@redhat.com>
8502
0e5921e8 8503 * repo.c (repo_get_id): Handle the case where a class with virtual
90418208
JM
8504 bases has a null TYPE_BINFO_VTABLE.
8505
85062000-07-04 Kevin Buhr <buhr@stat.wisc.edu>
8507 Jason Merrill <jason@redhat.com>
8508
8509 * parse.y (member_init): Just pass in the type.
8510 * init.c (expand_member_init): Handle getting a type.
8511
8512