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