]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
2002-10-05 Michael Koch <konqueror@gmx.de>
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
bd9bb3d2
MM
12002-10-03 Mark Mitchell <mark@codesourcery.com>
2
3 PR c++/7931
4 * pt.c (for_each_template_parm_r): Handle BASELINKs.
5
6 PR c++/7754
7 * decl2.c (finish_anon_union): Do not expand anonymous unions when
8 procesing template functions.
9 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
10 type. Call layout_decl.
11 (tsubst_expr, case DECL_STMT): Handle anonymous unions.
12
6397d80b
MM
132002-10-03 Mark Mitchell <mark@codesourcery.com>
14
15 PR c++/8006
16 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template
17 template parameters.
18 (globals): Add entity and need_abi_warning.
19 (decl_is_template_id): Use TYPE_TEMPLATE_INFO, not
20 CLASSTYPE_TEMPLATE_INFO.
21 (is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not
22 TYPE_TI_TEMPLATE.
23 (write_prefix): Handle typename types correctly.
24 (write_template_prefix): Handle template template parameters
25 correctly.
26 (start_mangling): Add entity parameter.
27 (finish_mangling): Warn about names whose mangling will change.
28 (mangle_decl_string): Adjust.
29 (mangle_type_string): Likewise.
30 (mangle_special_for_type): Likewise.
31 (mangle_ctor_vtbl_for_type): Likewise.
32 (mangle_thunk): Likewise.
33 (mangle_guard_variable): Likewise.
34 (mangle_ref_init_variable): Likewise.
35
2282d28d
MM
362002-10-02 Mark Mitchell <mark@codesourcery.com>
37
38 PR c++/7188.
39 * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two.
40 * cp-tree.h (emit_base_init): Rename to ....
41 (emit_mem_initializers): ... this.
42 (expand_member_init): Change prototype.
43 * init.c (perform_member_init): Compute explicit, rather than
44 requiring it as a parameter.
45 (sort_member_init): Rename to ...
46 (sort_mem_initializers): ... this. Process bases and data members
47 together.
48 (sort_base_init): Remove.
49 (emit_base_init): Rename to ...
50 (emit_mem_initializers): ... this.
51 (expand_aggr_vbase_init_1): Remove.
52 (construct_virtual_bases): Rename to ...
53 (construct_virtual_base): ... this.
54 (expand_member_init): Rework handling of base initializers.
55 * method.c (do_build_copy_constructor): Use
56 finish_mem_initializers.
57 * parse.y (member_init): Adjust calls to expand_member_init.
58 * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case.
59 (tsubst_initializer_list): Use expand_member_init.
60 * semantics.c (finish_mem_intiailizers): Simplify.
69788039
MA
61
622002-10-02 Matt Austern <austern@apple.com>
63 * decl.c (walk_vtables_r): Fixed typo that caused result to
64 never get a nonzero value.
2282d28d 65
f963b5d9
RS
662002-10-02 Roger Sayle <roger@eyesopen.com>
67
68 PR optimization/6627
69 * cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition
70 from here, and move it to tree.h.
71 * decl.c (cxx_init_decl_processing): If storing the vbit
72 in function pointers, ensure that force_align_functions_log
73 is atleast one.
74
69788039
MA
752002-10-02 Matt Austern <austern@apple.com>
76
77 * class.c (check_field_decls): Changed warning about const member
78 variables so that it doesn't get issued for a class aggregate.
79
d881ff25
MM
802002-10-01 Mark Mitchell <mark@codesourcery.com>
81
82 * decl.c (cp_finish_decl): Make sure array types are laid out,
83 even if the array bounds are unknown.
84
2e88ae22
SE
852002-10-01 Steve Ellcey <sje@cup.hp.com>
86
d881ff25 87 * class.c (build_vtbl_initializer): Change build_c_cast
2e88ae22
SE
88 to build1.
89
b4c20e52
MM
902002-10-01 Mark Mitchell <mark@codesourcery.com>
91
d881ff25
MM
92 * decl.c (cp_finish_decl): Make sure array types are laid out,
93 even if the array bounds are unknown.
94
b4c20e52
MM
95 * decl.c (cp_finish_decl): Correct check for dynamic
96 initialization of thread-local storage.
97
5a9a1961
NS
982002-09-30 Nathan Sidwell <nathan@codesourcery.com>
99
100 * tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also
101 overloaded.
102
7befdb9f
SE
1032002-09-30 Steve Ellcey <sje@cup.hp.com>
104
105 * class.c (build_vtbl_initializer): Add cast.
106 (add_vcall_offset_vtbl_entries_1):
107 Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset.
108
17bbb839
MM
1092002-09-30 Mark Mitchell <mark@codesourcery.com>
110
111 * class.c (walk_subobject_offsets): Correct the calculation of
112 offsets for virtual bases. Correct the counting of array
113 elements.
114 (layout_nonempty_base_or_field): Simplify. Correct the
115 calculation of offsets to be propagated through the binfo
116 hierarchy.
117 (build_base_field): Avoid creating a FIELD_DECL for empty bases.
118 Add the FIELD_DECL to TYPE_FIELDS.
119 (build_base_fields): Adjust accordingly.
120 (layout_virtual_bases): Use build_base_field.
121 (end_of_class): Return a tree, not an integer.
122 (warn_about_ambiguous_direct_bases): Rename to ...
123 (warn_about_ambiguous_bases): ... this.
124 (include_empty_classes): New function.
125 (layout_class_type): Create an alternative version of the type to
126 be used when as a base class type. Do not call
127 finish_record_layout until we are done laying out the class.
128 * cp-tree.h (lang_type_class): Remove size, size_unit. Add
129 as_base.
130 (CLASSTYPE_SIZE): Reimplement.
131 (CLASSTYPE_SIZE_UNIT): Likewise.
132 (CLASSTYPE_ALIGN): Likweise.
133 (CLASSTYPE_USER_ALIGN): Likewise.
134 (CLASSTYPE_AS_BASE): New macro.
135 (DECL_INITIALIZED_P): Likewise.
136 (extract_init): Remove prototype.
137 (build_forced_zero_init): Rename to ...
138 (build_zero_init): ... this.
139 (force_store_init_value): Remove.
140 * decl.c (obscure_complex_init): Remove.
141 (duplicate_decls): Copy DECL_INITIALIZED_P.
142 (check_initializer): Do not leave junk in DECL_INITIAL.
143 (cp_finish_decl): Handle zero-initialization of entities with
144 static storage duration.
145 * expr.c (extract_init): Remove.
146 * init.c (build_forced_zero_init): Remove.
147 (build_zero_init): New function.
148 (build_default_init): Use it.
149 (build_field_list): Skip FIELD_DECLs for base subobjects.
150 (push_base_cleanups): Likewise.
151 * method.c (do_build_assign_ref): Likewise.
152 (synthesize_exception_spec): Likewise.
153 * pt.c (tsubst_decl): Clear DECL_INITIALIZED_P.
154 (regenerate_decl_from_template): To not set DECL_INITIAL for a
155 static data member whose initialization took place in its class.
156 (instantiate_decl): Do not pass an initializer to cp_finish_decl
157 in that situation.
158 * search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects.
159 (dfs_unuse_fields): Likewise.
160 * tree.c (pod_type_p): Handle error_mark_node.
161 (zero_init_p): Likewise.
162 * typeck.c (lookup_anon_field): Skip FIELD_DECLs for base
163 subobjects.
164 * typeck2.c (store_init_value): Remove #if 0'd code.
165 (force_store_init_value): Remove.
166 (process_init_constructor): Use build_zero_init.
167
03357c23
NS
1682002-09-29 Nathan Sidwell <nathan@codesourcery.com>
169
170 PR c++/7788
171 * rtti.c (unemitted_tinfo_decl_p): Check it has a field.
172
27631dae
KH
1732002-09-29 Kazu Hirata <kazu@cs.umass.edu>
174
175 * cp-tree.h: Fix comment typos.
176 * decl.c: Likewise.
177 * pt.c: Likewise.
178
956d9305
MM
1792002-09-25 Mark Mitchell <mark@codesourcery.com>
180
181 * cp/class.c (contains_empty_class_p): New method.
182 (walk_subobject_offsets): Correct computation of field offset.
183 (layout_empty_base): Correct placement of emtpy base classes.
184 (layout_class_type): Warn about ABI changes.
185
2d3e278d
MM
1862002-09-23 Mark Mitchell <mark@codesourcery.com>
187
188 * cp/class.c (layout_virtual_bases): Do not round the size of the
189 type to a multiple of the alignment before laying out virtual bases.
190 (layout_class_type): Correct handling of bit-fields that are wider
191 than their type inside unions. Round the size of the type to a
192 even number of bytes when computing the size without virtual
193 bases.
194 * cp/cp-tree.h (abi_version_at_least): New macro.
195
838dfd8a
KH
1962002-09-21 Kazu Hirata <kazu@cs.umass.edu>
197
198 * ChangeLog: Follow spelling conventions.
199 * ChangeLog.2: Likewise.
200 * call.c: Likewise.
201 * class.c: Likewise.
202 * cp-tree.h: Likewise.
203 * cvt.c: Likewise.
204 * decl.c: Likewise.
205 * decl2.c: Likewise.
206 * except.c: Likewise.
207 * friend.c: Likewise.
208 * g++spec.c: Likewise.
209 * init.c: Likewise.
210 * lex.c: Likewise.
211 * mangle.c: Likewise.
212 * method.c: Likewise.
213 * operators.def: Likewise.
214 * optimize.c: Likewise.
215 * pt.c: Likewise.
216 * rtti.c: Likewise.
217 * search.c: Likewise.
218 * semantics.c: Likewise.
219 * spew.c: Likewise.
220 * tree.c: Likewise.
221 * typeck.c: Likewise.
222
9ced0328
DP
2232002-09-18 Devang Patel <dpatel@apple.com>
224
225 * cp/cp-tree.h: New prototype for walk_vtabls().
226 * cp/decl.c (walk_vtables_r): New function.
227 (struct cp_binding_level): Add new members, namespaces,
228 names_size and vtables.
229 (add_decl_to_level): Add decl in namespaces or vtables
230 chain, if conditions match.
231 (walk_vtables): New function.
232 (walk_namespaces_r): Travers separate namespace chain
233 for namespace decls.
234 (wrapup_globals_for_namespace): Use names_size instead
235 of list_length().
236 * cp/decl2.c (finish_file): Use walk_vtables() instead of
237 walk_globals() to walk vtable decls.
238
dd29188b
NS
2392002-09-18 Nathan Sidwell <nathan@codesourcery.com>
240
241 * decl.c (grokdeclarator): Use assert, not internal_error. Don't
242 ICE with invalid pointers & references.
243
f989ed67
ZW
2442002-09-17 Zack Weinberg <zack@codesourcery.com>
245
246 * Make-lang.in: Remove all references to the demangler.
247 * cxxfilt.c: Moved to binutils.
248
171d2f50
NS
2492002-09-16 Nathan Sidwell <nathan@codesourcery.com>
250
3ec83083
NS
251 PR c++/7718
252 * pt.c (tsubst_decl): Remove assert.
253
171d2f50
NS
254 Remove DR 295 implementation.
255 * pt.c (check_cv_quals_for_unify): Disable function & method cases.
256 * tree.c (cp_build_qualified_type_real): Likewise. Don't warn
257 about ignoring volatile qualifiers.
258
259 * search.c (lookup_member): Correct documentation.
260
36a5eadd
GK
2612002-09-16 Geoffrey Keating <geoffk@apple.com>
262
263 * cp-tree.h (union lang_tree_node): Add chain_next option.
264
28c56d25
NS
2652002-09-16 Nathan Sidwell <nathan@codesourcery.com>
266
7979434d
NS
267 * parse.y (parse_finish_call_expr): Check lookup_member result.
268
28c56d25
NS
269 PR c++/7015
270 * semantic.c (finish_asm_stmt): Fix operand/output_operands
271 thinko.
272 * typeck.c (c_expand_asm_operands): Protect from error_mark_node.
273
3baab484
NS
2742002-09-15 Nathan Sidwell <nathan@codesourcery.com>
275
276 PR c++/7919
277 * call.c (build_over_call): Convert this pointer for fns found by
278 using decls.
279
d30d6e7a
KH
2802002-09-15 Kazu Hirata <kazu@cs.umass.edu>
281
282 * ChangeLog: Follow spelling conventions.
283 * ChangeLog.1: Likewise.
284
c8460010
NS
2852002-09-14 Nathan Sidwell <nathan@codesourcery.com>
286
287 PR c++/7768
288 * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P.
289
c6002625
KH
2902002-09-14 Kazu Hirata <kazu@cs.umass.edu>
291
292 * error.c: Fix comment formatting.
293 * except.c: Likewise.
294 * expr.c: Likewise.
295 * friend.c: Likewise.
296 * g++spec.c: Likewise.
297 * init.c: Likewise.
298 * lex.c: Likewise.
299 * mangle.c: Likewise.
300 * method.c: Likewise.
301 * optimize.c: Likewise.
302 * pt.c: Likewise.
303 * rtti.c: Likewise.
304 * search.c: Likewise.
305 * semantics.c: Likewise.
306 * spew.c: Likewise.
307 * tree.c: Likewise.
308 * typeck.c: Likewise.
309 * typeck2.c: Likewise.
310
712467a4
NS
3112002-09-13 Nathan Sidwell <nathan@codesourcery.com>
312
313 * pt.c (unify, ARRAY_TYPE): Element type can be more qualified.
314
a1c65f9f
KH
3152002-09-13 Kazu Hirata <kazu@cs.umass.edu>
316
317 * decl.c: Fix comment formatting.
318 * decl2.c: Likewise.
319
00a17e31
KH
3202002-09-12 Kazu Hirata <kazu@cs.umass.edu>
321
322 * call.c: Fix comment formatting.
323 * class.c: Likewise.
324 * cp-lang.c: Likewise.
325 * cp-tree.h: Likewise.
326 * cvt.c: Likewise.
327
3fd9d606
ZW
3282002-09-11 Zack Weinberg <zack@codesourcery.com>
329
330 * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c,
331 and c++filt from cxxfilt.o + version.o + $(LIBDEPS).
332 * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with
333 minor adjustments (use version_string, eliminate yet another
334 duplicate of xmalloc)
335
2515a7ea
KG
3362002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
337
338 * cp-tree.h (require_complete_eh_spec_types): Add prototype.
339
5aa3396c
JM
3402002-09-05 Jason Merrill <jason@redhat.com>
341
342 * typeck2.c (add_exception_specifier): Only pedwarn for an
343 incomplete type.
344 (require_complete_eh_spec_types): New fn.
345 (cxx_incomplete_type_diagnostic): Also support pedwarning.
346 * typeck.c (complete_type_or_diagnostic): Likewise.
347 * call.c (build_call): Call require_complete_eh_spec_types.
348 * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting
349 on an incomplete type.
350
23ccd1f3
JJ
3512002-09-04 Jakub Jelinek <jakub@redhat.com>
352
353 * decl.c (start_cleanup_fn): Clear interface_only before
354 start_function, restore it afterwards.
355
d99f015c
JM
3562002-08-31 Jason Merrill <jason@redhat.com>
357
358 * cp-lang.c (cp_expr_size): Allow initialization from a
359 CONSTRUCTOR.
360
8a3c9180
RH
3612002-08-30 Richard Henderson <rth@redhat.com>
362
c9989d09 363 PR opt/7515
8a3c9180
RH
364 * tree.c: Include target.h.
365 (cp_cannot_inline_tree_fn): Don't auto-inline functions that
366 don't bind locally.
367 * Makefile.in (tree.o): Update.
368
eca7f13c
MM
3692002-08-27 Mark Mitchell <mark@codesourcery.com>
370
371 * class.c (layout_virtual_bases): Warn about bugs in G++ that
372 result in incorrect object layouts.
373 (layout_class_type): Likewise.
f989ed67 374
13d3f0b6
MA
3752002-08-24 Matt Austern <austern@apple.com>
376
377 * tree.c (lvalue_p_1): Add argument for whether casts of lvalues
378 are allowable.
379 (real_lvalue_p): Update caller.
380 (lvalue_p): Ditto.
381 (non_cast_lvalue_or_else): New.
382 * tree.h: Declare it.
f989ed67 383 * typeck.c (build_unary_op): Use non_cast_lvalue_or_else.
13d3f0b6 384
5b770a96
MM
3852002-08-22 Mark Mitchell <mark@codesourcery.com>
386
387 * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR
388 and COND_EXPR specially; fix error message output.
389
d65b1d77
JM
3902002-08-22 Jason Merrill <jason@redhat.com>
391
392 * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
393 * semantics.c (nullify_returns_r): Likewise.
394
8a5f4379
GDR
3952002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
396
397 Fix PR/7621
398 * typeck.c (finish_class_member_access_expr): Diagnose cases where
399 name lookup finds nothing.
400
5d764395
JM
4012002-08-15 Jason Merrill <jason@redhat.com>
402
403 * semantics.c (finish_then_clause): Remove redundant assignment.
404 (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the
405 extra binding level outside the if/switch statement.
406 (finish_while_cond, finish_for_cond): Rewrite complex condition
407 into the loop body.
408
c01b9ec8
AO
4092002-08-15 Alexandre Oliva <aoliva@redhat.com>
410
411 * parse.y (sizeof, alignof, typeof): New non-terminals to
412 increment skip_evaluation. Replace terminals with them and
413 decrement skip_evaluation at the end of rules using them.
414 * decl2.c (mark_used): Don't assemble_external if
415 skipping evaluation.
416
e8fe46d4
GDR
4172002-08-15 Gabriel Dos Reis <gdr@nerim.net>
418
419 Fix PR/7504
420 * parse.y (parse_finish_call_expr): Handle incomplete
421 type used to name a scope.
422
eac5ce6c
NS
4232002-08-15 Nathan Sidwell <nathan@codesourcery.com>
424
425 PR c++/7598
426 * typeck.c (build_unary_op): Fold offsetof idiom. Fixes
427 regression caused by my 2002-08-08 patch.
428
22eadedb
MM
4292002-08-13 Mark Mitchell <mark@codesourcery.com>
430
431 * decl.c (pushdecl_class_level): Honor requests to bind names to
432 OVERLOADs.
433
e65e6212
KG
4342002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
435
436 * decl2.c (build_call_from_tree): Fix uninitialized variable.
437 * parse.y (parse_finish_call_expr): Likewise.
438 * repo.c (old_args, old_dir, old_main): Const-ify.
439
3e72ec9a
GDR
4402002-08-11 Gabriel Dos Reis <gdr@nerim.net>
441
442 * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE +
443 DECL_SOURCE_LINE with DECL_SOURCE_LOCATION.
444 * optimize.c (maybe_clone_body): Likewise.
445 * pt.c (tsubst_enum): Likewise.
446 (lookup_template_class): Likewise.
447 * tree.c (cp_copy_res_decl_for_inlining): Likewise.
448
f749a36b
NB
4492002-08-10 Neil Booth <neil@daikokuya.co.uk>
450
451 * lang-specs.h: Remove -ansi.
452
3ebf5204
NS
4532002-08-10 Nathan Sidwell <nathan@codesourcery.com>
454
455 * tree.c (maybe_dummy_object): Replace // with /* */
456
9e259dd1
MM
4572002-08-09 Mark Mitchell <mark@codesourcery.com>
458
459 * call.c (standard_conversion): Use build_ptrmem_type.
460 * cp-tree.h (build_ptrmem_type): New function.
461 (adjust_result_of_qualified_name_lookup): Likewise.
462 * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate
463 static data members.
464 (build_ptrmem_type): New function.
465 (grokdeclarator): Do not use build_offset_type when encountering a
466 qualified name.
467 * parse.y (parse_finish_call_expr): Use
468 adjust_result_of_qualified_name_lookup.
469 * search.c (adjust_result_of_qualified_name_lookup): New function.
470 * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than
471 accessing OFFSET_TYPEs directly.
f989ed67 472
0e339752
MS
4732002-08-08 Mike Stump <mrs@apple.com>
474
475 * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid.
476 (type_decays_to): Likewise.
477 * class.c (find_final_overrider): Likewise.
478 (maybe_note_name_used_in_class): Likewise.
479 * decl.c (current_tmpl_spec_kind): Likewise.
480 (add_binding): Likewise.
481 (push_class_binding): Likewise.
482 (duplicate_decls): Likewise.
483 (layout_var_decl): Likewise.
484 (grokfndecl): Likewise.
485 (grokdeclarator): Likewise.
486 (check_default_argument): Likewise.
487 * decl2.c (handle_class_head): Likewise.
488 * error.c (dump_template_decl): Likewise.
489 * init.c (build_offset_ref): Likewise.
490 * pt.c (check_specialization_scope): Likewise.
491 (determine_specialization): Likewise.
492 (check_explicit_specialization): Likewise.
493 (maybe_check_template_type): Likewise.
494 (process_partial_specialization): Likewise.
495 (check_default_tmpl_args): Likewise.
496 (push_template_decl_real): Likewise.
497 (convert_template_argument): Likewise.
498 (try_class_unification): Likewise.
499 (get_bindings_real): Likewise.
500 (do_decl_instantiation): Likewise.
501 * semantics.c (begin_function_definition): Likewise.
502 (finish_member_declaration): Likewise.
503 (check_multiple_declarators): Likewise.
504 * typeck.c (comp_array_types): Likewise.
505 (comptypes): Likewise.
506 (expr_sizeof): Likewise.
507 (build_binary_op): Likewise.
508 (dubious_conversion_warnings): Likewise.
509 (check_return_expr): Likewise.
b6ce26ac 510
a6f5b2d3
MM
5112002-08-08 Mark Mitchell <mark@codesourcery.com>
512
513 * typeck.c (build_class_member_access_expr): Do not return
514 error_mark_node when no error has occurred.
b6ce26ac 515
c93a26f5
NS
5162002-08-08 Nathan Sidwell <nathan@codesourcery.com>
517
518 * typeck.c (build_component_addr): Remove.
519 (build_unary_op): Just check it's not a bitfield, and then build
520 an ADDR_EXPR.
521
5bfc90de
NS
5222002-08-08 Nathan Sidwell <nathan@codesourcery.com>
523
524 * class.c (convert_to_base): Correct check for error_mark_node.
525 (create_vtable_ptr): Remove unused VFUNS_P parm.
526
22aa533e
NS
5272002-08-08 Nathan Sidwell <nathan@codesourcery.com>
528
529 * cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
530
50ad9642
MM
5312002-08-07 Mark Mitchell <mark@codesourcery.com>
532
533 Rework build_component_ref.
534 * call.c (build_vfield_ref): Do not go through build_component_ref.
535 (build_field_call): Use build_class_member_access_expr.
536 (build_user_type_conversion_1): Use BASELINK_FUNCTIONS.
537 (build_object_call): Likewise.
538 * class.c (convert_to_base): New function.
539 (type_requires_array_cookie): Use BASELINK_FUNCTIONS.
540 (instantiate_type): Handle BASELINKs.
541 * cp-tree.def (BASELINK): New tree code.
542 * cp-tree.h (BASELINK_P): Reimplement.
543 (SET_BASELINK_P): Remove.
544 (BASELINK_BINFO): Reimplement.
545 (BASELINK_FUNCTIONS): Likewise.
546 (BASELINK_ACCESS_BINFO): Likewise.
547 (BASELINK_OPTYPE): Likewise.
548 (convert_to_base): New function.
549 (name_p): Likewise.
550 (build_object_ref): Remove.
551 (build_component_ref_1): Likewise.
552 (build_component_ref): Likewise.
553 (build_x_component_ref): Likewise.
554 (build_class_member_access_expr): New function.
555 (finish_class_member_access_expr): Likewise.
556 (build_ptrmemfunc_access_expr): Likewise.
557 * decl.c (grokdeclarator): Handle BASELINKs.
558 * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using
559 finish_class_member_access_expr.
560 (arg_assoc): Handle BASELINKs.
561 (do_class_using_decl): Likewise.
562 * error.c (dump_decl): Likewise.
563 (dump_expr): Use build_ptrmemfunc_access_expr.
564 * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find
565 destructors.
566 (build_throw): Use BASELINK_FUNCTIONS.
567 * init.c (perform_member_init): Use
568 build_class_member_access_expr.
569 (build_offset_ref): Handle BASELINKs. Use
570 build_class_member_access_expr.
571 * method.c (hack_identifier): Likewise.
572 * parse.y (do_id): Use BASELINK, not TREE_LIST.
573 (primary): Remove uses of build_object_ref.
574 * pt.c (lookup_template_function): Handle BASELINKs.
575 (resolve_overloaded_unification): Likewise.
576 * search.c (build_baselink): Build a BASELINK, not a TREE_LIST.
577 (lookup_field): Use BASELINK, not TREE_LIST.
578 (lookup_fnfiels): Likewise.
579 (setup_class_bindings): Likewise.
580 * semantics.c (finish_object_call_expr): Do not use
581 build_method_call when we already know what function is being
582 called.
583 * spew.c (identifier_type): Use BASELINK, not TREE_LIST.
584 * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not
585 TREE_CHAIN.
586 (name_p): New function.
587 * typeck.c (build_object_ref): Remove.
588 (build_component_ref_1): Likewise.
589 (build_x_component_ref): Likewise.
590 (build_class_member_access_expr): New function.
591 (finish_class_member_access_expr): Likewise.
592 (build_ptrmemfunc_access_expr): Likewise.
593 (get_member_function_from_ptrfunc): Use
594 build_ptrmemfunc_access_expr.
595 (build_binary_op): Likewise.
596 (build_unary_op): Likewise.
597 (build_ptrmemfunc): Likewise.
598 (pfn_from_ptrmemfunc): Likewise.
599 * typeck2.c (build_m_component_ref): Adjust comment.
b6ce26ac 600
0b6f2917
NB
6012002-08-07 Neil Booth <neil@daikokuya.co.uk>
602
603 * Make-lang.in (CXX_C_OBJS): Update.
604 * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
605 * cp-tree.h (cxx_decode_option): Remove.
606 * decl2.c (compare_options, lang_f_options, unsupported_options,
607 cxx_decode_option): Remove.
608
1e14c7f0
GDR
6092002-08-06 Gabriel Dos Reis <gdr@nerim.net>
610
611 * typeck.c (build_x_unary_op): Handle pointer-to-member.
612
b3426eb9
GK
6132002-08-05 Geoffrey Keating <geoffk@redhat.com>
614
615 * class.c: Don't include obstack.h.
b6ce26ac 616 (popclass):
b3426eb9
GK
617 * decl2.c: Delete bogus comment.
618 * error.c: Don't include obstack.h.
619 * except.c: Likewise.
620 (dump_type): Correct comment.
621 * method.c: Don't include obstack.h.
622 * tree.c: Likewise.
623
201fbb7f
GDR
6242002-08-04 Gabriel Dos Reis <gdr@nerim.net>
625
626 Fix PR/2213
627 * cvt.c (cp_convert_to_pointer): Reject conversions from integral
628 expressions to pointer-to-data-member of pointer-to-member-functions.
629
6d9f628e
GK
6302002-08-04 Geoffrey Keating <geoffk@redhat.com>
631
632 * cvt.c (ocp_convert): Delete obsolete code.
633 * parse.y (permanent_obstack): Delete declaration.
634 * pt.c (permanent_obstack): Delete declaration.
635 * repo.c (permanent_obstack): Delete declaration.
636 (open_repo_file): Use xmalloc instead of permanent_obstack.
637 (init_repo): Use xstrdup instead of permanent_obstack.
638
dd98e14f
NS
6392002-08-04 Nathan Sidwell <nathan@codesourcery.com>
640
641 * cp-tree.h (VF_DERIVED_VALUE): Remove.
642 * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE.
643
e6858a84
NS
6442002-08-03 Nathan Sidwell <nathan@codesourcery.com>
645
646 PR 7470.
647 C++ ABI change - vfunc ordering.
648 * class.c (add_virtual_function): Remove.
649 (dfs_modify_all_vtables): Take list of all declared
650 virtuals. Assign all that are not in primary base.
651 (check_for_override): Adjust comments.
652 (create_vtable_ptr): Take single list of virtuals. Build chain
653 of declared virtuals here.
654 (layout_class_type): Take single list of virtuals. Adjust.
655 (finish_struct_1): Keep virtuals on single list. Adjust.
656
55765de4
MM
6572002-08-02 Mark Mitchell <mark@codesourcery.com>
658
659 * init.c (build_member_call): Use build_new_method_call, not
660 build_method_call.
661
d0067571
KW
6622002-08-02 Krister Walfridsson <cato@df.lth.se>
663
664 * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies.
665
4a34e0e8
MM
6662002-08-02 Mark Mitchell <mark@codesourcery.com>
667
668 * call.c (build_method_call): Issue a more helpful error message
669 about ambiguous method names.
670
41ab2ae2
NS
6712002-08-02 Nathan Sidwell <nathan@codesourcery.com>
672
673 * tree.c (build_shared_int_cst): Make cache file scope, and
674 GTY it.
675
367aa585
JM
6762002-08-02 Jason Merrill <jason@redhat.com>
677
a77a9a18
JM
678 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
679 (cp_expr_size): New fn.
680 * call.c (build_over_call): Lose empty class hackery.
681 (convert_arg_to_ellipsis): Promote non-POD warning to error.
682 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
683
367aa585
JM
684 * semantics.c (expand_body): Do tree optimization in the function
685 context, too.
686
4078b403
NB
6872002-08-01 Neil Booth <neil@daikokuya.co.uk>
688
689 * cp-tree.h: Move all warning and flag declarations to c-common.h.
690 * decl.c: Move all warning and flag variables to c-common.c.
691 * decl2.c: Move all warning and flag variables to c-common.c.
692 * lex.c (flag_digraphs): Remove.
693 (warn_traditional): Now in c-common.c.
694
4ba126e4
MM
6952002-07-31 Mark Mitchell <mark@codesourcery.com>
696
697 * call.c (build_field_call): Do not look up the field by name.
698 (build_method_call): Simplify.
699 (struct z_candidate): Add access_path and conversion_path. Remove
700 basetype_path.
701 (convert_class_to_reference): Adjust use of
702 add_function_candidate.
703 (add_candidate): Add conversion_path argument.
704 (add_function_candidate): Use it.
705 (add_conv_dndidate): Likewise.
706 (build_builtin_candidate): Likewise.
707 (add_template_candidate_real): Add conversion_path argument.
708 (add_template_conv_candidate): Likewise.
709 (add_template_candidate): Likewise.
710 (build_user_type_conversion_1): Use it.
711 (build_new_function_call): Remove name lookup code. Adjust use of
712 add_template_candidate and add_function_candidate.
713 (build_new_op): Likewise.
714 (convert_like_real): Use build_special_member_call.
715 (build_over_call): Use cand->conversion_path.
716 (build_special_member_call): New method.
717 (build_new_method_call): Remove name lookup code.
718 * cp-tree.def (OFFSET_REF): Update documentation.
719 (TEMPLATE_ID_EXPR): Likewise.
720 * cp-tree.h (BASELINK_ACCESS_BINFO): New macro.
721 (BASELINK_OPTYPE): Likewise.
722 (build_new_method_call): Adjust prototype.
723 (build_special_member_call): New method.
724 (build_baselink): New method.
725 (build_offset_ref_call_from_tree): Likewise.
726 (build_call_from_tree): Likewise.
727 (finish_qualified_call_expr): Remove.
728 (finish_call_expr): Adjust prototype.
729 (build_x_function_call): Remove.
730 * cvt.c (ocp_convert): Use build_special_member_call.
731 * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr.
732 (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and
733 CALL_EXPR.
734 (build_offset_ref_call_from_tree): New function.
735 (build_call_from_tree): Likewise.
736 * init.c (expand_cleanup): Use build_special_member_call.
737 (expand_default_init): Likewise.
738 (build_member_call): Use finish_call_expr.
739 (build_new_1): Use build_special_member_call.
740 (push_base_cleanups): Likewise.
741 * method.c (do_build_assign_ref): Likewise.
742 * parse.y (template_id): Do not pass a COMPONENT_REF to
743 lookup_template_function.
744 (primary): Use parse_finish_call_epxr, not finish_call_expr.
745 (parse_finish_call_expr): New function.
746 * pt.c (lookup_template_function): Add assertions.
747 * search.c (lookup_base): Allow T to be a binfo.
748 (build_baselink): New function.
749 (lookup_member): Use it.
750 * semantics.c (finish_call_expr): Do not do name lookup.
751 (finish_object_call_expr): Remove #if 0'd code.
752 (finish_qualified_call_expr): Remove.
753 * typeck.c (build_x_function_call): Remove.
754 (build_static_case): Use build_special_member_call.
755 * typeck2.c (build_functional_cast): Likewise.
b6ce26ac 756
60b8aa94
FS
7572002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
758
759 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c.
760
8a4a7242
GDR
7612002-07-30 Gabriel Dos Reis <gdr@nerim.net>
762
763 * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion.
764
03fc215c
NS
7652002-07-30 Nathan Sidwell <nathan@codesourcery.com>
766
767 * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more
768 documentation.
769
3f16a8f3
AM
7702002-07-29 Alan Modra <amodra@bigpond.net.au>
771
772 * cp-tree.h: Comment typo fix.
773
c03d566f
RE
7742002-07-29 Richard Earnshaw <rearnsha@arm.com>
775
776 * spew.c (space_for_token): Allocate zeroed memory for a new token
777 chunk.
778
c2ef6d34
RS
7792002-07-27 Roger Sayle <roger@eyesopen.com>
780
781 * decl.c (builtin_function_1): No need to explicitly mark
782 BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
783
a3926fe1
RS
7842002-07-27 Roger Sayle <roger@eyesopen.com>
785
786 * decl2.c (cxx_decode_option): Support -fno-builtin-foo.
787
8e51619a
JM
7882002-07-26 Jason Merrill <jason@redhat.com>
789
790 * call.c (build_over_call): Likewise.
791 (cp_convert_parm_for_inlining): New fn.
f989ed67
ZW
792 (convert_for_arg_passing): New fn.
793 (convert_default_arg, build_over_call): Use it.
8e51619a
JM
794 (type_passed_as): New fn.
795 * pt.c (tsubst_decl): Use it.
796 * decl2.c (cp_build_parm_decl): New fn.
797 (build_artificial_parm): Use it.
798 (start_static_storage_duration_function): Likewise.
799 * decl.c (start_cleanup_fn, grokdeclarater): Likewise.
800 (grokparms): Don't mess with DECL_ARG_TYPE.
801 * typeck.c (convert_arguments): Use convert_for_arg_passing.
802 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
803 Define.
804 * cp-tree.h: Declare new fns.
b6ce26ac 805
c372b0fa
NB
8062002-07-26 Neil Booth <neil@daikokuya.co.uk>
807
808 * cp-tree.h (flag_operator_names): Remove.
809 * decl2.c (flag_operator_names): Remove.
810 (lang_f_options): Remove operator-names.
811 * lex.c (D_OPNAME): Remove.
812 (reswords): Remove operator names.
813 (rid_to_yy): Remove operator names.
814 (init_reswords): No need to handle D_OPNAME.
815 * spew.c (read_process_identifier): There are no operator
816 names.
817
558ee214
JM
8182002-07-26 Jason Merrill <jason@redhat.com>
819
820 * dump.c (cp_dump_tree): Call c_dump_tree.
821 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
822
81a1552d
NB
8232002-07-25 Neil Booth <neil@daikokuya.co.uk>
824
825 * error.c (print_whitespace): Remove.
826 * g++spec.c (LIBUNWIND): Move.
827 * mangle.c (mangled_position, write_signed_number): Remove.
828
cad2c6b6
NB
8292002-07-25 Neil Booth <neil@daikokuya.co.uk>
830
831 * decl2.c (cxx_decode_option): Similarly.
832
ea793912
GDR
8332002-07-25 Gabriel Dos Reis <gdr@nerim.net>
834
835 * cp-tree.h (cxx_sizeof_nowarn): Now a macro.
836 (cxx_sizeof_or_alignof_type): Take a third argument.
837 (cxx_sizeof): Adjust definition.
838 (cxx_alignof): Likewise.
839 * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
840 * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
841 complaining.
842 (c_sizeof_nowarn): Remove definition.
843 (build_unary_op): Use cxx_sizeof_nowarn.
844
3cfab7ec
GK
8452002-07-24 Geoffrey Keating <geoffk@redhat.com>
846
847 * tree.c (cp_build_qualified_type_real): When copying
848 pointer-to-method types, unshare the record that holds
849 the cached pointer-to-member-function type.
850
c0667597
NB
8512002-07-23 Neil Booth <neil@daikokuya.co.uk>
852
853 * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove.
854
fa72b064
GDR
8552002-07-23 Gabriel Dos Reis <gdr@nerim.net>
856
857 Fix PR/7363:
858 * typeck.c (cxx_sizeof_or_alignof_type): New function.
859 (c_sizeof): Remove definition.
860 (expr_sizeof): Use cxx_sizeof.
861 * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type.
862 * decl.c (finish_destructor_body): Use cxx_sizeof.
863 * semantics.c (finish_alignof): Likewise.
864 (finish_alignof): Use cxx_alignof.
865 * cp-tree.h (cxx_sizeof, cxx_alignof): New macros.
866 (cxx_sizeof_or_alignof_type): Declare.
867 (my_friendly_assert): Move to ../c-common.h.
868
4fa31c2a
NB
8692002-07-23 Neil Booth <neil@daikokuya.co.uk>
870
871 * class.c, method.c, pt.c, search.c: Don't define obstack macros.
872
0e902d98
KL
8732002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
874
875 PR c++/7347, c++/7348
876 * cp-tree.h (tsubst_flags_t): Add tf_parsing.
877 * decl.c (make_typename_type): Use it.
878 (make_unbound_class_template): Likewise.
879 (lookup_name_real): Don't call type_access_control if scope is
880 template parameter dependent.
881 * parse.y (template_arg): Call make_unbound_class_template with
882 tf_parsing set.
883 (nest_name_specifier): Call make_typename_type with tf_parsing set.
884 (typename_sub0): Likewise.
885 (typename_sub1): Likewise.
886 (instantiate_decl): Push class scope.
887 * pt.c (regenerate_decl_from_template): Call pushclass and popclass
888 for both static variable and member function template.
889 (instantiate_decl) Call pushclass and popclass when tsubst'ing type
890 and arguments.
891 * search.c (type_access_control): Do type access for TEMPLATE_DECL
892 too.
893
b886c620
RS
8942002-07-20 Roger Sayle <roger@eyesopen.com>
895
896 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions
897 test by using positive_option. Make whitespace consistent.
898
7a561142
GDR
8992002-07-20 Gabriel Dos Reis <gdr@nerim.net>
900
fa72b064 901 * spew.c (struct unparsed_test): Replace 'filename' and 'lineno'
7a561142
GDR
902 members with 'locus'. Adjust use throughout.
903 (struct feed): Likewise.
904 (alloc_unparsed_test): Change prototype, take a 'const location_t *'.
905 Adjust use.
906 (snarf_defarg): Use error(), not error_with_file_and_line().
907
059ba716
CD
9082002-07-19 Chris Demetriou <cgd@broadcom.com>
909
910 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever
911 cpp_options is included.
912
d955f6ea
KL
9132002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
914
915 PR c++/2862, c++/2863
916 * pt.c (determine_specialization): Compare the length of
917 TYPE_ARG_TYPES. Tidy.
918
d03d18e8
KL
9192002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
920
921 PR c++/3797
922 * decl.c (duplicate_decls): Don't propagate inlining parameters from
b6ce26ac 923 olddecl to newdecl when newdecl is a specialization of the
d03d18e8
KL
924 instantiation olddecl.
925
ba59df78
KL
9262002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
927
928 PR c++/4802, c++/5387
929 * decl.c (make_typename_type): Use enforce_access.
930
58f05188
SS
9312002-07-17 Scott Snyder <snyder@fnal.gov>
932
933 PR c++/7320
934 * rtti.c (get_tinfo_decl): Set DECL_COMDAT.
935
04ec0065
MM
9362002-07-12 Mark Mitchell <mark@codesourcery.com>
937
938 * class.c (add_method): Correct handling of conversion operators.
939
f0ab6bf2
MM
9402002-07-11 Mark Mitchell <mark@codesourcery.com>
941
942 PR c++/7224
943 * class.c (add_method): Simplify.
944
34902e16
JM
9452002-07-11 Jason Merrill <jason@redhat.com>
946
947 PR c++/7279
948 * tree.c (cp_copy_res_decl_for_inlining): Also copy
949 TREE_ADDRESSABLE.
950
6e04241f
GS
9512002-07-10 Graham Stott <graham.stott@btinternet.com>
952
953 * pt.c (template_parm_this_level_p, push_template_decl_real):
b6ce26ac 954 Pass depth as int pointer.
6e04241f 955
8ac9d31f
TJ
9562002-07-11 Tim Josling <tej@melbpc.org.au>
957
b6ce26ac 958 Remove front end hard coding from gengtype.c.
8ac9d31f
TJ
959
960 * config-lang.in (gtfiles): Add files needed for this front end.
961
15c7fb9c
MM
9622002-07-10 Mark Mitchell <mark@codesourcery.com>
963
964 * cp-tree.h (unqualified_name_lookup_error): Declare it.
965 (begin_function_definition): Adjust prototype.
966 * lex.c (unqualified_name_lookup_error): New function, split out
967 from ...
968 (do_identifier): ... here.
969 * parse.y (parse_begin_function_definition): New function.
970 (fn.def1): Use it.
971 * semantics.c (begin_function_definition): Accept decl-specifiers
972 and attributes as separate parameters.
973
abf92e26
JM
9742002-07-10 Jason Merrill <jason@redhat.com>
975
976 PR c++/6255
977 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
978 modifying the old one.
979
8ba658ee
MM
9802002-07-09 Mark Mitchell <mark@codesourcery.com>
981
982 * cp-tree.h (constructor_name_p): Declare it.
983 (check_template_template_default_arg): Likewise.
984 * class.c (handle_using_decl): Use constructor_name_p.
985 * decl.c (grokdeclarator): Likewise.
986 * decl2.c (constructor_name_p): Define it.
987 * init.c (build_member_call): Use constructor_name_p.
988 * parse.y (template_parm): Use check_template_template_default_arg.
989 * pt.c (check_explicit_specialization): Use constructor_name_p.
990 * semantics.c (check_template_template_default_arg): New function.
b6ce26ac 991
d5372501
KL
9922002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
993
994 * pt.c (can_complete_type_without_circularity): Add static to
995 function definition.
996
594bb0e7
MM
9972002-07-08 Mark Mitchell <mark@codesourcery.com>
998
999 * cp-tree.h (have_extern_spec): Declare it
1000 * decl.c (have_extern_spec): Define it.
1001 (start_decl): Eliminate use of used_extern_spec.
1002 (start_function): Likewise.
1003 * parse.y (have_extern_spec): Remove declaration.
1004 (used_extern_spec): Likewise.
1005 (frob_specs): Eliminate use of used_extern_spec.
1006 (.hush_warning): Likewise.
1007
eb8845be
MM
10082002-07-07 Mark Mitchell <mark@codesourcery.com>
1009
1010 * Make-lang.in (cp/parse.o): Depend on decl.h.
1011 * cp-tree.h (do_decl_instantiation): Change prototype.
1012 * parse.y: Include decl.h.
1013 (parse_decl_instantiation): New function.
1014 (explicit_instantiation): Use it.
1015 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
1016 and DECLSPECS.
b6ce26ac 1017
78abea27
RS
10182002-07-07 Roger Sayle <roger@eyesopen.com>
1019
1020 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
1021 constructor and destructor tests when passed a TEMPLATE_DECL.
1022
98c07d7b
JM
10232002-07-05 Jason Merrill <jason@redhat.com>
1024
212e17fd
JM
1025 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null
1026 pointers.
1027
98c07d7b
JM
1028 PR optimization/7145
1029 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
1030
c6f553d1
NS
10312002-07-05 Nathan Sidwell <nathan@codesourcery.com>
1032
1033 Repair damage on weak-impared targets caused by my previous patch.
1034 * cp-tree.h (import_export_tinfo): Add parameter.
1035 * decl2.c (import_export_tinfo): Add parameter, post adjust
1036 DECL_COMDAT.
1037 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
1038 import_export_tinfo.
1039
b2153b98
KL
10402002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1041
1042 PR c++/6944
1043 * init.c (build_aggr_init): Remove qualifiers of init before calling
1044 build_vec_init.
1045 (build_vec_init): Flatten multi-dimensional array during cleanup.
1046 (build_vec_delete_1): Abort if the type of each element is array.
1047
492ff760
GS
10482002-07-03 Graham Stott <graham.stott@btinternet.com>
1049
1050 * pt.c (instantiate_class_template): Fix typo.
1051
04c4491d
KL
10522002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1053
06728f70
KL
1054 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
1055 by CVS conflict in my last patch.
04c4491d 1056
17f29637
KL
10572002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1058
1059 PR c++/6716
1060 * pt.c (can_complete_type_without_circularity): New function.
1061 (instantiate_class_template): Use it.
06728f70
KL
1062 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error
1063 message due to incomplete fields.
17f29637 1064
5d69ba1f
MM
10652002-07-01 Mark Mitchell <mark@codesourcery.com>
1066
1067 PR c++/7112
1068 * mangle.c (write_expression): Add mangling for sizeof when
1069 applied to a type.
1070 * operators.def: Remove stale comment.
1071
d689a8f1
NS
10722002-06-30 Nathan Sidwell <nathan@codesourcery.com>
1073
1074 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
1075 (CPTI_TYPE_INFO_PTR_TYPE): ... this.
1076 (tinfo_decl_type): Replace with ...
1077 (type_info_ptr_type): ... this.
1078 (import_export_tinfo): Declare.
1079 (tinfo_decl_p): Rename to ...
1080 (unemitted_tinfo_decl_p): ... this.
1081 * decl2.c (import_export_decl): Break out tinfo handling into ...
1082 (import_export_tinfo): ... here. New function.
1083 (finish_file): Adjust.
1084 * rtti.c (TINFO_REAL_NAME): New macro.
1085 (init_rtti_processing): Create the tinfo types.
1086 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
1087 (get_tinfo_decl): Adjust.
1088 (get_tinfo_ptr): New function.
1089 (get_type_id): Use it.
1090 (tinfo_base_init): Create vtable decl here, if it doesn't exist.
1091 (ptr_initializer): Use get_tinfo_ptr.
1092 (ptm_initializer): Likewise.
1093 (synthesize_tinfo_var): Break into ...
1094 (get_pseudo_ti_init): ... this. Just create the initializer.
1095 (get_pseudo_ti_desc): .. and this.
1096 (create_real_tinfo_var): Remove.
1097 (create_pseudo_type_info): Don't create the vtable decl here.
1098 (get_vmi_pseudo_type_info): Remove.
1099 (create_tinfo_types): Adjust.
1100 (tinfo_decl_p): Rename to ...
1101 (unemitted_tinfo_decl_p): ... here. Adjust.
1102 (emit_tinfo_decl): Adjust. Create the initializer.
1103
5ce49b4b
MM
11042002-06-27 Mark Mitchell <mark@codesourcery.com>
1105
1106 PR c++/6695
1107 * pt.c (tsubst_friend_class): Substitute into the context of the
1108 friend before using it.
1109
88e5899c
MM
11102002-06-26 Mark Mitchell <mark@codesourcery.com>
1111
1112 * cp-tree.h (xref_tag): Change prototype.
1113 (handle_class_head): Likewise.
1114 (build_x_component_ref): Likewise.
1115 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
1116 (xref_tag): Take attributes as a separate parameter.
1117 (xref_tag_from_type): Adjust call to xref_tag.
1118 * decl2.c (build_expr_from_tree): Adjust call to
1119 build_x_component_ref.
1120 (handle_class_head): Take attributes as a separate parameter.
1121 * parse.y (parse_xref_tag): New function.
1122 (parse_handle_class_head): Likewise.
1123 (primary): Use parse_xref_tag.
1124 (class_head_decl): Use parse_handle_class_head.
1125 (class_head_defn): Likewise.
1126 * rtti.c (init_rtti_processing): Adjust call to xref_tag.
1127 (build_dynamic_cast_1): Likewise.
1128 (create_pseudo_type_info): Likewise.
1129 (emit_support_tinfos): Likewise.
1130 * typeck.c (build_object_ref): Adjust call to
1131 build_x_component_ref.
1132 (build_x_component_ref): Remove protect parameter.
b6ce26ac 1133
da15dae6
MM
11342002-06-25 Mark Mitchell <mark@codesourcery.com>
1135
1136 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
1137 * class.c (handle_using_decl): Likewise.
1138 (instantiate_type): Likewise.
1139 * cp-tree.h (BASELINK_FUNCTIONS): New macro.
1140 (xref_basetypes): Change prototype.
1141 (begin_mem_initializers): New function.
1142 (get_overloaded_fn): Likewise.
1143 * decl.c (xref_basetypes): Simplify.
1144 * error.c (dump_expr): Use BASELINK_FUNCTIONS.
1145 * init.c (build_offset_ref): Likewise.
1146 * parse.y (base_init): Use begin_mem_initializers().
1147 (structsp): Adjust call to xref_basetypes.
1148 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
1149 (instantiate_class_template): Adjust call to xref_basetypes.
1150 * semantics.c (begin_mem_initializers): New function.
1151 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
1152 (really_overlaoded_fn): Likewise.
1153 (get_overloaded_fn): New function.'
1154 (get_first_fn): USe BASELINK_FUNCTIONS.
b6ce26ac 1155
5f261ba9
MM
11562002-06-24 Mark Mitchell <mark@codesourcery.com>
1157
1158 * cp-tree.h (SCALAR_TYPE_P): New macro.
1159 (check_for_out_of_scope_variable): New function.
1160 (at_class_scope_p): Likewise.
1161 (finish_fname): Likewise.
1162 * class.c (finish_struct): Use at_function_scope_p.
1163 * decl.c (check_for_out_of_scope_variable): New function, split
1164 out from do_identifier.
1165 (finish_enum): Use at_function_scope_p.
1166 * lex.c (do_identifier): Use check_for_out_of_scope_variable.
1167 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname.
1168 (primary): Use at_function_scope_p.
1169 * search.c (at_class_scope_p): New function.
1170 * semantics.c (finish_fname): Likewise.
1171 (check_multiple_declarators): Use at_function_scope_p.
b6ce26ac 1172
80b1331c
MM
11732002-06-23 Mark Mitchell <mark@codesourcery.com>
1174
1175 * parse.y (parse_scoped_id): New function.
1176 (primary): Use it.
1177 * cp-tree.h (do_scoped_id): Adjust declaration.
1178 * lex.c (do_scoped_id): Remove call to yylex.
1179 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
1180 * typeck2.c (add_exception_specifier): Use tree_cons, rather than
1181 expanding it inline.
b6ce26ac 1182
08c7ae5a
MT
11832002-06-23 Matt Thomas <matt@3am-software.com>
1184
1185 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to
1186 "#if VMS_TARGET".
1187
eb6b51b9
KG
11882002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1189
1190 * mangle.c (integer_type_codes): Const-ify.
1191
aa8dea09
RH
11922002-06-20 Richard Henderson <rth@redhat.com>
1193
1194 PR c++/6747
f989ed67
ZW
1195 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
1196 Call put_var_into_stack.
aa8dea09 1197
62c71f4b
KG
11982002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1199
1200 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
1201 array size calculation.
1202
aa16c0fa
KL
12032002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1204
1205 PR c++/6892
1206 * pt.c (tsubst_expr): Handle FILE_STMT.
1207
342cea95
KL
12082002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1209
1210 PR c++/6723
1211 * pt.c (lookup_template_class): Don't build complete argument of
1212 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
1213 argument.
1214
84d901be
AD
12152002-06-19 Akim Demaille <akim@epita.fr>
1216
1217 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
1218 decl.h's TYPENAME.
1219 * spew.c, lex.c: Adjust.
1220 * parse.y (explicit_instantiation): Add empty action to override
1221 the default $$ = $1 where it introduces a type clash.
1222
83b14b88
JM
12232002-06-14 Jason Merrill <jason@redhat.com>
1224
18ba380b
JM
1225 * semantics.c (begin_for_stmt): Push the 'for' scope before
1226 adding the FOR_STMT.
1227
83b14b88
JM
1228 C++ ABI changes.
1229 * class.c (build_base_field): Set DECL_PACKED.
1230 (layout_class_type): Don't use tail padding of PODs.
1231 * mangle.c (write_unqualified_name): Fix template conversion op
1232 mangling.
1233
fd852454
RH
12342002-06-16 Richard Henderson <rth@redhat.com>
1235
1236 PR opt/6793
1237 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
1238 after template instantiation.
1239
750491fc
RH
12402002-06-16 Richard Henderson <rth@redhat.com>
1241
1242 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
1243
f7d3c5f0
GDR
12442002-06-15 Gabriel Dos Reis <gdr@codesourcery.com>
1245
1246 * cp-tree.h (compiler_error): Remove declaration.
1247 * lex.c (compiler_error): Remove definition.
1248
893a047c
SE
12492002-06-14 Steve Ellcey <sje@cup.hp.com>
1250
1251 * g++spec.c (LIBUNWIND): New.
1252 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
1253
a6f5e048
RH
12542002-06-13 Jessica Han <jessica@cup.hp.com>
1255
1256 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
1257 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
1258 (build_vbase_offset_vtbl_entries): Likewise.
1259 * rtti.c (build_headof): Likewise.
1260 (get_tinfo_decl_dynamic): Likewise.
1261 (create_pseudo_type_info): Likewise.
1262
e4dadd2a
SS
12632002-06-12 Stan Shebs <shebs@apple.com>
1264
1265 * mpw-config.in: Remove file, no longer used.
1266 * mpw-make.sed: Ditto.
1267
09e77dee
ZW
12682002-06-07 Zack Weinberg <zack@codesourcery.com>
1269
1270 * decl2.c: Update call to cpp_handle_option.
1271
4bafaa6f
L
12722002-06-07 H.J. Lu (hjl@gnu.org)
1273
1274 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
1275
3cb8660c
GDR
12762002-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
1277
1278 * error.c (cp_error_at): Fix typo.
1279
47b69537
GDR
12802002-06-04 Gabriel Dos Reis <gdr@codesourcery.com>
1281
1282 * error.c (cp_diagnostic_starter): Adjust call.
1283 (maybe_print_instantiation_context): Change prototype to take a
1284 'diagnostic_info *'.
1285 (print_instantiation_full_context): Likewise.
1286 (print_instantiation_partial_context): Likewise.
1287 (cp_diagnostic_starter): Likewise.
1288 (cp_diagnostic_finalizer): Likewise.
1289 (cp_print_error_function): Likewise.
1290 (cp_printer): Take a secondary parameter as a 'text_info *'.
1291 Remove output_state savings. Adjust calls.
1292
e2500fed
GK
12932002-06-03 Geoffrey Keating <geoffk@redhat.com>
1294
1295 * pt.c (inline_parm_levels): Mark for GC.
1296
1297 * mangle.c (start_mangling): Allocate G.substitutions here...
1298 (init_mangle): ... rather than here.
1299 (finish_mangling): Clear the varray pointer when done with it.
84d901be
AD
1300 * spew.c (yylexstring): Don't use VARRAY_FREE.
1301 * search.c (bfs_walk): Don't use VARRAY_FREE.
e2500fed
GK
1302 * decl2.c (pending_statics): Use gengtype to mark.
1303 (deferred_fns): Likewise.
1304 (ssdf_decls): Likewise.
1305 (init_decl2): Delete.
1306 * decl.c (pop_from_top_level): Don't use VARRAY_FREE.
1307 (cxx_init_decl_processing): Don't call init_decl2.
1308 (cxx_pop_function_context): Don't use VARRAY_FREE.
1309 * cp-tree.h (struct saved_scope): No need for special marking
1310 of varrays.
1311 (struct language_function): Likewise.
1312 (local_classes): Use gengtype to mark.
1313 (init_decl2): Delete prototype.
1314 * class.c (init_class_processing): Don't use
1315 ggc_add_tree_varray_root.
1316 (build_vtbl_initializer): Don't use VARRAY_FREE.
1317
1318 * decl.c (typename_compare): Don't use same_type_p.
1319
1320 * decl.c: Include hashtab.h instead of hash.h.
1321 (typename_hash): Update to use htab_h.
1322 (typename_compare): Likewise.
1323 (typename_htab): Use gengtype to mark.
1324 (build_typename_type): Update to use htab_h.
1325 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
1326
1327 * Make-lang.in (gt-cp-tree.h): New rule.
1328 (cp/tree.o): Depend on gt-cp-tree.h.
1329 * config-lang.in (gtfiles): Add cp/tree.c.
1330 * tree.c: Include gt-cp-tree.h.
1331 (list_hash_table): Use gengtype to mark.
1332 (init_tree): Use gengtype to mark trees.
1333
1334 * Make-lang.in (cp/decl.o): Add debug.h dependency.
1335 * call.c (struct z_candidate): Use gengtype.
1336 (USER_CONV_CAND): Use WRAPPER_ZC.
1337 (convert_class_to_reference): Use build_zc_wrapper.
1338 (build_type_conversion_1): Likewise.
1339 (build_over_call): Use WRAPPER_ZC.
1340 (add_warning): Use build_zc_wrapper.
1341 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
1342 * cp-tree.h (struct lang_identifier): Use gengtype.
1343 (struct template_parm_index_s): Likewise.
1344 (struct ptrmem_cst): Likewise.
1345 (struct tree_binding): Likewise.
1346 (struct tree_overload): Likewise.
1347 (struct tree_srcloc): Likewise.
1348 (struct tree_wrapper): Likewise. Also modify to have a pointer
1349 to struct z_candidate rather than void.
1350 (enum cp_tree_node_structure_enum): New.
1351 (union lang_tree_node): New.
1352 (cxx_mark_tree): Delete prototype.
1353 (cp_tree_node_structure): New prototype.
1354 (build_ptr_wrapper): Delete prototype.
1355 (build_int_wrapper): Delete prototype.
1356 (build_zc_wrapper): New prototype.
1357 * decl.c: Include debug.h
1358 (cxx_mark_tree): Delete.
1359 (cp_tree_node_structure): New.
1360 * tree.c (build_ptr_wrapper): Delete.
1361 (build_int_wrapper): Delete.
1362 (build_zc_wrapper): New.
1363
1364 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
1365 Correct typo. Patch from k_fukui@highway.ne.jp.
1366
1367 * semantics.c (current_stmt_tree): Update for change to
1368 struct language_function.
1369 (finish_mem_initializers): Likewise.
1370 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
1371 * cp-tree.h (struct language_function): Rename from
1372 cp_language_function. Change all uses.
1373 (cp_function_chain): Don't need to cast.
1374
1375 * class.c (duplicate_tag_error): Reset discriminator.
1376 (check_bases_and_members): Update for data structure changes.
1377 * cp-tree.h (struct lang_id2): Use gengtype.
1378 (flagged_type_tree): Likewise.
1379 (SET_LANG_ID): Use GGC on struct lang_id2.
1380 (struct cp_language_function): Use gengtype. Remove field
1381 'x_vcalls_possible_p'.
1382 (current_vcalls_possible_p): Delete.
1383 (struct lang_type_header): New.
1384 (struct lang_type_class): Rename from struct lang_type. Include
1385 struct lang_type_header.
1386 (struct lang_type_ptrmem): New.
1387 (struct lang_type): New.
1388 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros.
1389 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros.
1390 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
1391 (struct lang_decl_flags): Use gengtype. Add discriminators.
1392 (struct lang_decl): Use gengtype. Add and use discriminators.
1393 Update the macros that reference moved fields.
1394 (LANG_DECL_U2_CHECK): New function. Use it when appropriate.
1395 (SET_DECL_THUNK_P): Set discriminator too.
1396 (clear_inline_text_obstack): Delete prototype.
1397 (finish_inline_definitions): Delete prototype.
1398 (mark_pending_inlines): Delete prototype.
1399 (lang_check_failed): New prototype.
1400 * decl.c (struct named_label_use_list): Use gengtype.
1401 (struct named_label_list): Likewise.
1402 (mark_binding_level): Delete.
1403 (mark_named_label_lists): Delete.
1404 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
1405 (cxx_init_decl_processing): Use generated marker routine.
1406 (begin_destructor_body): Delete dead set to
1407 current_vcalls_possible_p.
1408 (mark_lang_function): Delete.
1409 (mark_cp_function_context): Delete.
1410 (lang_mark_tree): Use generated marker routines.
1411 * decl2.c (start_objects): Set discriminator when setting
1412 GLOBAL_INIT_PRIORITY.
1413 * lex.c (retrofit_lang_decl): Set discriminators.
1414 (copy_lang_type): Update for changes to lang_type structure.
1415 (cp_make_lang_type): Set discriminator.
1416 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers.
1417 * search.c: Include ggc.h.
1418 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
1419 (finish_inline_definitions): Delete.
1420 * spew.c (struct token): Use gengtype.
1421 (struct token_chunk): New.
1422 (struct unparsed_text): Use gengtype. Store tokens in chunks.
1423 (struct feed): Use gengtype.
1424 (feed_obstack): Delete.
1425 (feed): Mark as GC root.
1426 (pending_inlines): Mark as GC root.
1427 (pending_inlines_tail): Likewise.
1428 (processing_these_inlines): Likewise.
1429 (token_obstack): Make static.
1430 (first_token): Likewise.
d30d6e7a 1431 (init_spew): Don't initialize deleted things; use gengtype for roots.
e2500fed
GK
1432 (clear_inline_text_obstack): Delete.
1433 (feed_input): Use GC for struct feed. Update for changes to
1434 struct unparsed_text.
1435 (mark_pending_inlines): Delete.
1436 (next_token): Rename from add_token. Change all callers. Update
1437 for changes to struct unparsed_text.
1438 (space_for_token): New.
1439 (remove_last_token): New.
1440 (alloc_unparsed_text): New.
1441 (snarf_block): Take an unparsed_text. Update for changes to struct
1442 unparsed_text.
1443 (snarf_method): Update for changes to struct unparsed_text.
1444 (snarf_defarg): Update for changes to struct unparsed_text.
1445 * tree.c (lang_check_failed): New.
1446
1447 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
1448 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
1449 (cp/spew.o): Add dependency on gt-<filename>.h.
1450 (cp/decl2.o): Add dependency on gt-<filename>.h.
1451 (cp/call.o): Add dependency on gt-<filename>.h.
1452 (cp/pt.o): Add dependency on gt-<filename>.h.
1453 (cp/repo.o): Add dependency on gt-<filename>.h.
1454 (cp/parse.o): Add dependency on gt-<filename>.h.
1455 * call.c: Use gengtype for roots.
1456 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
1457 decl2.c parse.y pt.c repo.c spew.c.
1458 * cp-tree.h: Use gengtype for roots.
1459 (struct saved_scope): Use GGC, gengtype.
1460 (cp_parse_init): Delete prototype.
1461 (init_pt): Delete prototype.
1462 * decl.c: Use gengtype for roots.
1463 (mark_saved_scope): Delete.
1464 (cxx_init_decl_processing): Don't call deleted initilisation
1465 routines.
1466 (signed_size_zero_node): Delete, unused.
1467 * decl.h: Use gengtype for roots.
1468 * decl2.c: Use gengtype for roots.
1469 * lex.h: Use gengtype for roots.
1470 * parse.y: Use gengtype for roots.
1471 (cp_parse_init): Delete.
1472 * pt.c: Use gengtype for roots.
1473 (init_pt): Delete.
1474 * repo.c: Use gengtype for roots.
1475 * spew.c: Use gengtype for roots.
1476
1477 * Make-lang.in: Allow for filename changes. Add gtype-cp.h.
1478 (cp/decl.o): Add dependency on gtype-cp.h.
1479 * decl.c: Remove use of add_deletable_root, use GTY marker instead.
1480 Include gtype-cp.h. Allow for filename changes.
1481
1482 * Make-lang.in (cp/gt-decl.h): Generate using gengtype.
1483 (cp/decl.o): Add cp/gt-decl.h dependency.
1484 * config-lang.in (gtfiles): New.
1485 * tree.h: Rename struct binding_level to struct cp_binding_level.
1486 * decl.c: Rename struct binding_level to struct cp_binding_level.
1487 Include cp/gt-decl.h.
1488 (struct cp_binding_level): Use gengtype.
1489 (make_binding_level): Use GGC on struct cp_binding_level.
1490 (mark_binding_level): Use gt_ggc_m_cp_binding_level.
1491 (cxx_init_decl_processing): Mark free_binding_level as
1492 deletable.
1493
1494 * decl.c (mark_cp_function_context): Update calling sequence.
1495
1496 * decl.c (start_function): Don't free 'struct
1497 cp_language_function'.
1498 (pop_cp_function_context): Likewise.
1499 (save_function_data): Allocate it using GC.
1500 * semantics.c (genrtl_start_function): Don't free 'struct
1501 cp_language_function'.
1502
8b968bd1
MW
15032002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
1504
1505 * lang-specs.h: Use cpp_debug_options.
1506
11ad4784
ZW
15072002-05-28 Zack Weinberg <zack@codesourcery.com>
1508
1509 * mangle.c, tree.c: Include real.h.
1510 * Make-lang.in: Update dependency lists.
1511
81a75f0f
NB
15122002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
1513
1514 * lex.c: Don't include c-lex.h.
1515 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
1516
a97d1398
NB
15172002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
1518
1519 * spew.c (yyungetc, snarf_block): Remove indent_level handling.
1520
6f001fdf
RH
15212002-05-22 Richard Henderson <rth@redhat.com>
1522
1523 * decl.c (obscure_complex_init): Check for VAR_DECL
1524 before using DECL_THREAD_LOCAL.
1525
7a1f3f5f
RH
15262002-05-22 Richard Henderson <rth@redhat.com>
1527
1528 * decl.c (check_tag_decl): Handle RID_THREAD.
1529 (obscure_complex_init): Reject run-time init of tls.
1530 (grokvardecl, grokdeclarator): Handle RID_THREAD.
1531 * lex.c (reswords): Add __thread.
1532 (rid_to_yy): Map RID_THREAD to SCSPEC.
1533
e5f3b786
NB
15342002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
1535
1536 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
1537 * cp-tree.h (cxx_post_options): Kill.
1538 * cp-lex.c (cxx_post_options): Kill.
1539
3d78f2e9
RH
15402002-05-21 Richard Henderson <rth@redhat.com>
1541
1542 * lex.c (rid_to_yy): Add RID_THREAD.
1543
c8a3d889
AO
15442002-05-21 Alexandre Oliva <aoliva@redhat.com>
1545
1546 * init.c (build_vec_init): Test for trivial copy-assignment when
1547 copy-assigning arrays.
1548
500abaa8
AJ
15492002-05-20 Andreas Jaeger <aj@suse.de>
1550
1551 * init.c (build_default_init): Remove unused variable.
1552
ecc42c14
AO
15532002-05-20 Alexandre Oliva <aoliva@redhat.com>
1554
1555 * call.c (any_strictly_viable): New.
1556 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
1557
4e664ef1
KL
15582002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1559
1560 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
1561
07782718
KL
15622002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1563
1564 PR c++/186, DR 259
1565 * pt.c (do_decl_instantiation): Don't complain explicit
1566 instantiation after explicit specialization.
1567 (do_type_instantiation): Likewise.
1568
23b4deba
AO
15692002-05-19 Alexandre Oliva <aoliva@redhat.com>
1570
1571 * cp-tree.h (complete_type_or_diagnostic): Changed prototype,
1572 renamed from...
1573 (complete_type_or_else): ... this. Redefined as macro.
1574 (cxx_incomplete_type_diagnostic): Declare.
1575 (cxx_incomplete_type_error): Define as macro.
1576 * init.c (build_delete): Warn about incomplete types other than
1577 void, and use the built-in operator delete for them.
1578 * typeck.c (complete_type_or_diagnostic): Renamed from
1579 complete_type_or_else. Added warn_only argument, passed to...
1580 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print
1581 warnings or errors depending on new warn_only argument. Renamed
1582 from...
1583 (cxx_incomplete_type_error): ... this. New implementation in
1584 terms of cxx_incomplete_type_diagnostic.
1585
b41d214e
JM
15862002-05-18 Jason Merrill <jason@redhat.com>
1587
98c07d7b 1588 PR c++/6611
b41d214e
JM
1589 * decl2.c (import_export_decl): If we clear
1590 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
1591
e2005c8d
KL
15922002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1593
1594 PR c++/6620
1595 * pt.c (verify_class_unification): Don't check if PARM is template
1596 parameter dependent. Simplify.
1597 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
1598 parameter dependent expression.
1599
ff48be5c
JM
16002002-05-14 Jason Merrill <jason@redhat.com>
1601
1602 * rtti.c (get_tinfo_decl): Don't call comdat_linkage.
1603 Do set DECL_COMDAT.
1604 (synthesize_tinfo_var): Take the public decl.
1605 (create_real_tinfo_var): Likewise. Check DECL_COMDAT.
1606 (emit_tinfo_decl): Adjust. Call import_export_decl.
1607 * decl2.c (import_export_decl): Simplify tinfo decl handling.
1608
94e6e4c4
AO
16092002-05-14 Alexandre Oliva <aoliva@redhat.com>
1610
1611 * cp-tree.h (struct lang_type): Added non_zero_init.
0fe1cd70 1612 (CLASSTYPE_NON_ZERO_INIT_P): New macro.
94e6e4c4
AO
1613 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
1614 * class.c (check_field_decls): Test non_zero_init.
1615 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
1616 zero-to-NULL conversions.
1617 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
1618 type that needs zero-initialization without zeros.
1619 (check_initializer_decl): Compute zero-initializer for types
1620 that require a non-trivial one.
1621 * init.c (build_forced_zero_init): New function.
1622 (build_default_init): Use it.
1623 * tree.c (zero_init_p): New function.
1624 * typeck2.c (force_store_init_value): New function.
1625 (process_init_constructor): Create non-trivial zero-initializers
1626 for array members and class fields.
1627
e5f5feea
NB
16282002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
1629
1630 * lang-specs.h: Remove redundant -lang-c++.
1631
f63ab951
JM
16322002-05-13 Jason Merrill <jason@redhat.com>
1633
1634 * class.c (build_vtbl_ref_1): Use fixed_type_or_null.
1635 (fixed_type_or_null): See through reference vars.
1636 (build_base_path): Vtable contents are constant.
1637 * typeck.c (get_member_function_from_ptrfunc): Likewise.
1638
0d08ea48
JM
16392002-05-12 Jason Merrill <jason@redhat.com>
1640
1641 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
1642 structs are safe.
1643
3df89291
NB
16442002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
1645
1646 * cp-tree.h (flag_ansi): Remove.
1647 * decl2.c (flag_ansi): Remove.
1648 (cxx_decode_option): Set flag_iso and flag_undef.
1649
c87978aa
JM
16502002-05-09 Jason Merrill <jason@redhat.com>
1651
1652 * typeck.c (get_member_function_from_ptrfunc): Reorganize.
1653 Use subtraction rather than a bitmask to get the index.
1654 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
1655
1656 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
1657
a5a49440
NB
16582002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
1659
1660 * Make-lang.in (decl2.o): Update.
1661 * cp-tree.h (warn_multichar): Remove.
1662 * decl2.c: Include c-common.h.
1663 (warn_multichar): Remove.
1664
609688f3
JM
16652002-05-03 Jason Merrill <jason@redhat.com>
1666
0abc082a
JM
1667 * tree.c (build_cplus_array_type): Only const and volatile get
1668 special handling.
1669
609688f3
JM
1670 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
1671
8b16faa2
MM
16722002-04-30 Mark Mitchell <mark@codesourcery.com>
1673
394ab947 1674 ABI change, returning simple classes from functions.
8b16faa2
MM
1675 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
1676 TYPE_HAS_TRIVIAL_INIT_REF is false or
1677 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
1678
ac905924
JM
16792002-04-30 Jason Merrill <jason@redhat.com>
1680
2cb008af 1681 PR debug/6436
ac905924
JM
1682 * decl.c (grokdeclarator): Don't override TYPE_NAME of an
1683 anonymous class with a typedef if there are attributes.
1684
e6e81f1c 16852002-04-29 Paul Eggert <eggert@twinsun.com>
b819d9e0 1686
e6e81f1c 1687 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
b819d9e0 1688
3a73bffb
JJ
16892002-04-29 Jakub Jelinek <jakub@redhat.com>
1690
1691 PR c++/6477
1692 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
1693 non-NULL first.
1694
33dd07ee
MM
16952002-04-29 Mark Mitchell <mark@codesourcery.com>
1696
1697 PR c++/6492
1698 * pt.c (tsubst_friend_class): If the friend has an explicit scope,
1699 enter that scope before name lookup.
1700
1701 PR c++/6486
1702 * method.c (do_build_copy_constructor): Avoid building
1703 cv-qualified reference types.
500abaa8 1704
4bd7c270
NS
17052002-04-29 Nathan Sidwell <nathan@codesourcery.com>
1706
1707 PR c++/5719
500abaa8 1708 * decl.c (grok_op_properties): Assignment ops don't have to return
4bd7c270
NS
1709 by value. operator% should.
1710
45806a3f
FS
17112002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1712
1713 PR c/6343
1714 * decl.c (duplicate_decls): Call merge_weak.
1715
94a50397
RH
17162002-04-26 Richard Henderson <rth@redhat.com>
1717
1718 * parse.y (malloced_yyss, malloced_yyvs): New.
1719 (yyoverflow): Re-add. Set them.
1720 (free_parser_stacks): New.
1721
7d793e9b
MM
17222002-04-26 Mark Mitchell <mark@codesourcery.com>
1723
1724 PR c++/6497
1725 * method.c (do_build_assign_ref): Pass a derivation to
1726 build_method_call when calling base class assignment operators.
1727
bde3c0c0
RH
17282002-04-26 Richard Henderson <rth@redhat.com>
1729
1730 * parse.y (yyoverflow): Revert.
1731
b84a3874
RH
17322002-04-26 Richard Henderson <rth@redhat.com>
1733
1734 PR c/3581
1735 * parse.y (string): Remove. Update all uses to use STRING
1736 instead, and not call combine_strings.
1737 * rtti.c (tinfo_name): Use fix_string_type.
1738 * semantics.c (finish_asm_stmt): Don't call combine_strings.
1739 * spew.c (yylexstring): New.
1740 (read_token): Use it.
1741
6052bef0
RH
17422002-04-25 Richard Henderson <rth@redhat.com>
1743
1744 PR c/2161
1745 * parse.y (yyoverflow): New.
1746
8d1f0f67
JM
17472002-04-25 Jason Merrill <jason@redhat.com>
1748
1749 PR c++/5607
1750 * search.c (check_final_overrider): No longer static.
1751 * class.c (update_vtable_entry_for_fn): Call it.
1752 * cp-tree.h: Adjust.
1753
ff45c01e
NB
17542002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
1755
1756 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1757 * cp-tree.h (cxx_set_yydebug): Die.
1758 * lex.c (YYDEBUG): Get from c-lex.h.
1759 (cxx_set_yydebug): Remove.
1760 * parse.y: Include c-lex.h.
1761 (YYDEBUG): Get from c-lex.h.
1762
a62d375f
MM
17632002-04-24 Mark Mitchell <mark@codesourcery.com>
1764
1765 PR c++/6438.
1766 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
1767 void.
1768
349ae713
NB
17692002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
1770
1771 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1772 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
1773 Redefine.
1774 * cp-tree.h (cp_attribute_table): Rename.
1775 * decl.c (lang_attribute_table): Remove declaration.
1776 (cxx_init_decl_processing): Don't set it.
1777 * tree.c (cp_attribute_table): Rename.
1778
b602511f
JM
17792002-04-24 Jason Merrill <jason@redhat.com>
1780
985723ce
JM
1781 PR c++/6331
1782 * method.c (do_build_copy_constructor): Use cp_build_qualified_type.
1783 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
a49cfba8
JM
1784 The pedwarn for array assignment is now unconditional.
1785 * tree.c (build_cplus_array_type_1): Still process simple array types
1786 normally in templates.
985723ce 1787
b602511f
JM
1788 PR c++/6395
1789 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
1790 stuff for comdats.
1791
29cece2e
JJ
17922002-04-23 Jakub Jelinek <jakub@redhat.com>
1793
1794 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class
1795 node with attributes.
1796
515387dc
DB
17972002-2-23 David O'Brien <obrien@FreeBSD.org>
1798
1799 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
1800 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
1801
77adef84
MM
18022002-04-23 Mark Mitchell <mark@codesourcery.com>
1803
1804 PR c++/6256:
1805 * pt.c (tsubst_friend_class): Handle templates with explicit
1806 nested names.
1807
1808 PR c++/6331:
1809 * typeck.c (merge_types): Remember the cv-qualification of pointer
1810 types when merging them.
1811
b03e38e1
NB
18122002-04-20 Neil Booth <neil@daikokuya.demon.co.uk>
1813
1814 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
1815 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
1816 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
1817 cxx_mark_function_context): New.
1818 * decl.c (push_cp_function_context, pop_cp_function_context,
1819 mark_cp_function_context): Rename for consistency.
1820 (cxx_init_decl_processing): Don't set old hooks.
1821
ab393bf1
NB
18222002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
1823
1824 * call.c (convert_type_from_ellipsis): Rename, update.
1825 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
1826 * cp-tree.h (convert_type_from_ellipsis): Rename.
1827 * decl.c (cxx_init_decl_processing): Don't set hook.
1828
7a228918
NB
18292002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
1830
1831 * call.c (build_new_method_call): Update.
1832 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1833 * cp-tree.h (cxx_incomplete_type_error): New.
1834 * decl.c (grokdeclarator, grokparms): Update.
1835 * decl2.c (check_classfn): Update.
1836 * pt.c (tsubst): Update.
1837 * typeck.c (complete_type_or_else, expr_sizeof,
1838 decay_conversion): Update.
1839 * typeck2.c (incomplete_type_error): Rename.
1840 (add_exception_specifier): Update.
1841
8152c320
JM
18422002-04-18 Jason Merrill <jason@redhat.com>
1843
1844 PR c++/5658
1845 * search.c (setup_class_bindings): A class template qualifies as a
1846 type binding.
1847
32121b96
JJ
18482002-04-17 Jakub Jelinek <jakub@redhat.com>
1849
1850 PR c++/6316
1851 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
1852 before expanding.
1853
b2123dc0
MM
18542002-04-16 Mark Mitchell <mark@codesourcery.com>
1855
1856 * init.c (begin_init_stmts): Remove commented out code.
1857 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
1858 * semantics.c (begin_gobal_stmt_expr): Adjust call to
1859 expand_start_stmt_expr.
500abaa8 1860
0f268005
MM
18612002-04-15 Mark Mitchell <mark@codesourcery.com>
1862
1863 * decl.c (register_dtor_fn): Pass the address of dso_handle, not
1864 dso_handle itself, to __cxa_atexit.
1865
bd6bec6b
GDR
18662002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
1867
1868 * error.c (cxx_print_error_function): Adjust call to macros.
1869
0f490a2b
JJ
18702002-04-14 Jakub Jelinek <jakub@redhat.com>
1871
1872 * class.c (layout_virtual_bases): Do all dsize computation on trees.
1873
85b7def6
JM
18742002-04-14 Jason Merrill <jason@redhat.com>
1875
1876 * typeck.c (get_member_function_from_ptrfunc): Don't do
1877 gratuitious division and multiplication on
1878 ptrmemfunc_vbit_in_delta targets.
1879
0481bc21
MM
18802002-04-12 Mark Mitchell <mark@codesourcery.com>
1881
1882 PR c++/5373.
1883 * semantics.c (finish_expr_stmt): Remember the type of the
1884 expression before any conversions are performed.
1885
9928a3d5
MM
18862002-04-12 Mark Mitchell <mark@codesourcery.com>
1887
1888 PR c++/5189.
1889 * call.c (add_template_candidate_real): Do not treat member
1890 templates as copy constructors.
1891
c740732f
MM
18922002-04-12 Mark Mitchell <mark@codesourcery.com>
1893
1894 * decl.c (duplicate_decls): Do not copy the RTL for a variable
1895 declaration if the old variable had an incomplete type and the new
1896 variable does not.
1897 (complete_vars): Do not call layout_decl for completed variables.
1898
4782bd5b
RS
18992002-04-12 Richard Sandiford <rsandifo@redhat.com>
1900
1901 * decl.c (duplicate_decls): Don't try to unify an implicit typedef
1902 with an explicit one.
1903 (follow_tag_typedef): New.
1904 (lookup_tag): Use it to extract the tag of an explicit typedef.
1905 (xref_tag): Likewise.
1906
2f4d058f
AH
19072002-04-11 Andrew Haley <aph@redhat.com>
1908
1909 * typeck.c (type_after_usual_arithmetic_conversions):
1910 If two types have the same variant, return immediately.
500abaa8 1911 When two floating-point operands are the same precision:
2f4d058f
AH
1912 convert to float if one of the operands is float;
1913 if neither operand is one of the standard types, return the type
1914 of the first operand.
500abaa8 1915
ba3307c0
NS
19162002-04-10 Nathan Sidwell <nathan@codesourcery.com>
1917
1918 PR c++/5507
1919 * decl.c (make_typename_type): Remove implicit typenameness.
1920
cd6af0c1
JM
19212002-04-09 Jason Merrill <jason@redhat.com>
1922
edf5cd1d
JM
1923 PR optimization/6189
1924 * semantics.c (genrtl_start_function): Don't free
1925 DECL_SAVED_FUNCTION_DATA for inline functions.
1926
cd6af0c1
JM
1927 * init.c (build_member_call): For now, don't convert to
1928 intermediate base if it would cause an error.
1929
224e6091
PC
19302002-04-08 Paolo Carlini <pcarlini@unitus.it>
1931
1932 * parse.y (namespace_qualifier, maybe_identifier,
1933 begin_explicit_instantiation, end_explicit_instantiation,
1934 apparent_template_type, .finish_template_type,
1935 do_id, maybe_init, defarg_again, component_decl_1):
1936 Add ending ';', in accordance with POSIX.
1937
0154eaa8
MM
19382002-04-06 Mark Mitchell <mark@codesourcery.com>
1939
1940 PR c++/5571
1941 * class.c (layout_class_type): Remember incomplete static
1942 variables.
1943 (finish_struct_1): Call complete_vars, not
1944 hack_incomplete_structures.
1945 * cp-tree.h (hack_incomplete_structures): Rename to ...
1946 (complete_vars): ... this.
1947 (struct saved_scope): Remove incomplete.
1948 (namespace_scope_incomplete): Remove.
1949 * decl.c (struct binding_level): Remove incomplete.
1950 (incomplete_vars): New variable.
1951 (mark_binding_level): Don't mark incomplete.
1952 (print_binding_level): Don't print it.
1953 (mark_saved_scope): Don't mark incomplete.
1954 (pushdecl): Use maybe_register_incopmlete_var.
1955 (cxx_init_decl_processing): Register incomplete_vars for GC.
1956 (start_decl_1): Clarify error message.
1957 (hack_incomplete_vars): Remove.
1958 (maybe_register_incomplete_var): New function.
1959 (complete_vars): Likewise.
1960
f62ea157
JM
19612002-04-06 Jason Merrill <jason@redhat.com>
1962
03da5286
JM
1963 PR c++/4934
1964 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
1965 set before checking it.
1966
a29e1034
JM
1967 PR c++/525
1968 * init.c (build_member_call): Use build_scoped_ref.
1969 (resolve_offset_ref): Likewise.
1970 * call.c (build_scoped_method_call): Likewise.
500abaa8 1971 * tree.c (maybe_dummy_object): Kludge around current_class_type being
a29e1034
JM
1972 wrong.
1973 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
1974 * cp-tree.h: Adjust.
500abaa8 1975
a29e1034
JM
1976 * init.c (push_base_cleanups): Just use build_scoped_method_call.
1977
f62ea157 1978 PR c++/6179
500abaa8 1979 * method.c (implicitly_declare_fn): Pass unqualified type to
f62ea157
JM
1980 synthesize_exception_spec.
1981
78ef5b89
NB
19822002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
1983
1984 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1985 * cvt.c: Update comment.
1986 * init.c (expand_cleanup_for_base): Update.
1987 * semantics.c (finish_parenthesized_expr): Update.
1988 * typeck.c (cp_truthvalue_conversion): Update.
1989
dffa4176
JM
19902002-04-04 Jason Merrill <jason@redhat.com>
1991
659e5a7a
JM
1992 * semantics.c (finish_eh_cleanup): New fn.
1993 * cp-tree.h: Add prototype.
500abaa8 1994 * init.c (perform_member_init, expand_cleanup_for_base): Use
659e5a7a
JM
1995 finish_eh_cleanup.
1996 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
1997 * cp-tree.h: Remove references.
1998 * decl.c (begin_constructor_body, end_constructor_body): Likewise.
1999 * dump.c (cp_dump_tree): Likewise.
2000 * pt.c (tsubst_expr): Likewise.
2001 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
2002 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
2003 * tree.c (cp_statement_code_p): Likewise.
2004
2005 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
2006
2007 PR c++/5636
2008 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
2009 cleanup for nrv.
2010
dffa4176
JM
2011 PR c++/5104
2012 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
2013 specifiers.
2014 [METHOD_TYPE]: Use same code as FUNCTION_TYPE.
2015
ef4f94ac
RH
20162002-04-03 Richard Henderson <rth@redhat.com>
2017
2018 * cp-lang.c (cxx_warn_unused_global_decl): New.
2019 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2020
599bba86
NB
20212002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
2022
2023 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
2024 * tree.c (init_tree): Don't set hook.
2025
cba2004a
RS
20262002-04-03 Roger Sayle <roger@eyesopen.com>
2027
2028 PR c++/5998:
2029 * decl.c (duplicate_decls): Don't mess with assembler names when
2030 redeclaring builtin functions as static.
2031
dffd7eb6
NB
20322002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
2033
2034 * call.c (build_addr_func): Update.
2035 * class.c (resolve_address_of_overloaded_function): Update.
2036 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
2037 * cp-tree.h (cxx_mark_addressable): New.
2038 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
2039 * decl2.c (build_cleanup): Update.
2040 * except.c (build_throw): Update.
2041 * init.c (resolve_offset_ref): Update.
2042 * pt.c (convert_nontype_argument): Update.
2043 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
2044 * typeck.c (decay_conversion, build_array_ref, build_unary_op,
2045 unary_complex_lvalue): Update.
2046 (mark_addressable): Rename.
2047
04a9d080
RS
20482002-04-01 Roger Sayle <roger@eyesopen.com>
2049
2050 PR c++/5998:
2051 * decl.c (duplicate_decls): Overwrite the RTL when (and only
2052 when) overwriting a built-in function. Don't use COPY_DECL_RTL,
2053 but follow the SET_DECL_RTL idiom used elsewhere in the function.
2054
ceef8ce4
NB
20552002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
2056
2057 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
2058 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
2059 * decl.c (grokdeclarator): Update.
2060 * mangle.c (write_integer_cst): Update.
2061 * typeck.c (build_binary_op): Update.
2062
48a7a235
NB
20632002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
2064
2065 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
2066 * lex.c (cxx_init): Don't set hook.
2067
7cb32822
NB
20682002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
2069
2070 * Make-lang.in (error.o): Update.
2071 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
2072 * cp-tree.h (struct diagnostic_context): Predeclare.
2073 (cxx_print_error_function): New.
2074 * error.c: Include langhooks-def.h.
2075 (lang_print_error_function): Rename. Update.
2076 (init_error): Don't set hook.
2077
b0c48229
NB
20782002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
2079
2080 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
2081 Redefine.
2082 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
2083 * decl.c (finish_enum): Similarly.
2084 * error.c (dump_type): Similarly.
2085 * lex.c (cxx_init): Similarly.
2086 * mangle.c (write_builtin_type): Similarly.
2087 * typeck.c (comptypes): Similarly.
2088
d52e4867
RS
20892002-03-28 Roger Sayle <roger@eyesopen.com>
2090
2091 PR c++/5998:
2092 * decl.c (cxx_init_decl_processing): Re-enable built-in functions
2093 in the g++ front-end.
2094 (duplicate_decl): Allow redefinition of anticipated built-ins.
2095 Fix inlining problem by over-writing the old DECL_RTL.
2096 (lookup_namespace_name): Fail to find an identifier in the
2097 specified namespace if its still anticipated.
2098 (builtin_function_1): New function split out from builtin_function
2099 to create a builtin in the current namespace with given context.
2100 (builtin_function): Call builtin_function_1 to define the
2101 appropriate builtins in both the std and global namespaces.
2102 (select_decl): Don't test for anticipated decls here.
2103 (unqualified_namespace_lookup): Instead ignore them whilst
2104 searching through scopes and namespaces.
2105 * decl2.c (do_nonmember_using_decl): If a using declaration
2106 specifies an anticipated built-in function, mark it as no longer
2107 anticipated in that scope.
2108 (ambiguous_decl): Avoid resolving to an anticipated decl.
2109 * lex.c (do_scoped_id): Fail to find an identifier in the global
2110 namespace if its still anticipated.
2111
f1e639b1
NB
21122002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
2113
2114 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
2115 * cp-tree.h (cp_make_lang_type): Rename.
2116 * lex.c (cp_make_lang_type): Rename.
2117 (make_aggr_type): Update.
2118 * tree.c (init_tree): Don't set make_lang_type_fn.
2119
c7f4981a
JJ
21202002-03-29 Jakub Jelinek <jakub@redhat.com>
2121
2122 PR c++/6073
2123 * class.c (finish_struct_1): Update static field's DECL_MODE even
2124 if its type is a variant of t.
2125
7ffb4fd2
NB
21262002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
2127
2128 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
2129 * cp-tree.h (cxx_insert_default_attributes): New.
2130 * decl.c (insert_default_attributes): Rename.
2131
cd4e8331
MM
21322002-03-27 Mark Mitchell <mark@codesourcery.com>
2133
2134 PR c++/4884
2135 * call.c (build_op_delete_call): Allow for the fact the placement
2136 may be a COMPOUND_EXPR.
500abaa8 2137
c9d892a8
NB
21382002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
2139
2140 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2141 * cp-tree.h (init_cplus_expand): Remove.
2142 (cxx_expand_expr): New.
2143 * expr.c (cplus_expand_expr): Rename cxx_expand_expr,
2144 fix prototype.
2145 (init_cplus_expand): Remove.
2146 * lex.c (cxx_init): Don't call init_cplus_expand.
2147
46ff5047
MM
21482002-03-26 Mark Mitchell <mark@codesourcery.com>
2149
2150 PR c++/4884.
2151 * init.c (build_new_1): Allow for the fact the result of
2152 build_function_call may be a COMPOUND_EXPR.
2153
6d4c57a0
NS
21542002-03-26 Nathan Sidwell <nathan@codesourcery.com>
2155
2156 PR c++/5682
2157 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
2158 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
2159 (dfs_skip_nonprimary_vbases_markedp): Remove.
2160 * search.c (get_shared_vbase_if_not_primary): Remove.
2161 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
2162 (dfs_skip_nonprimary_vbases_markedp): Remove.
2163 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
2164 (dfs_marked_real_bases_queue_p): Likewise.
2165
4f0ade92
NB
21662002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
2167
2168 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2169 * cp-tree.h (cxx_mark_tree): New.
2170 * decl.c (lang_mark_tree): Rename cxx_mark_tree.
2171
c88770e9
NB
21722002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
2173
2174 * cp-tree.h (cxx_maybe_build_cleanup): New.
2175 * decl.c (destroy_local_var, hack_incomplete_structures): Update.
2176 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
2177 * tree.c (build_target_expr): Update.
7b3e5198 2178 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
c88770e9 2179
aaf93206
NB
21802002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
2181
2182 * decl2.c (cxx_decode_option): Handle -E.
2183 * lang-specs.h (default_compilers): Preprocess with cc1plus.
2184 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
2185
e756a7da
JJ
21862002-03-23 Jakub Jelinek <jakub@redhat.com>
2187
2188 PR c++/6037
2189 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
2190
ea9264e9
GDR
21912002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
2192
2193 * error.c (dump_type): Be careful about implicit typenames.
2194
acb044ee
GDR
21952002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
2196
2197 PR C++/3656
2198 * semantics.c (finish_base_specifier): Handle erronous base
500abaa8 2199 classes.
acb044ee 2200
b216cd4a
ZW
22012002-03-22 Zack Weinberg <zack@codesourcery.com>
2202
2203 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
2204 REAL_IS_NOT_DOUBLE.
2205
9181f8db
JK
22062002-03-22 Jeff Knaggs <jknaggs@redhat.com>
2207
cd6af0c1
JM
2208 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to
2209 an index into the vtable_entry array regardless of
9181f8db
JK
2210 TARGET_PTRMEMFUNC_VBIT_LOCATION.
2211
e019cf95
AH
22122002-03-21 Aldy Hernandez <aldyh@redhat.com>
2213
84d901be 2214 * tree.c (cp_cannot_inline_tree_fn): Same.
e019cf95 2215
43577e6b
NB
22162002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
2217
2218 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
2219 insert_block, getdecls, global_bindings_p): New.
2220
8c152bad
NS
22212002-03-20 Nathan Sidwell <nathan@codesourcery.com>
2222
2223 PR c++/4361
2224 * mangle.c (struct globals) Add internal_mangling_p member.
2225 (write_template_param): Do internal mangling, if needed.
2226 (mangle_conv_op_name_for_type): Request internal mangling.
2227
e3fe84e5
JM
22282002-03-20 Jason Merrill <jason@redhat.com>
2229
2230 PR c++/2136
2231 * init.c (build_delete): Check access for a member op delete here.
2232 * decl2.c (delete_sanity): Not here.
2233
ea122333
JM
22342002-03-19 Jason Merrill <jason@redhat.com>
2235
2236 PR c++/5118
2237 * class.c (get_vfield_name): Use the constructor_name.
2238
7afff7cf
NB
22392002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
2240
2241 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
2242 * cp-tree.h (lang_printable_name): Rename.
2243 * error.c (lang_decl_name): Use new hook.
2244 * lex.c (cxx_init): Remove old hook.
2245 * pt.c (tsubst_decl): Use new hook.
2246 * tree.c (lang_printable_name): Rename.
2247
ff77ac85
EB
22482002-03-18 Eric Botcazou <ebotcazou@multimania.com>
2249
2250 PR c++/3882
2251 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
2252 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
2253 only after recording the declaration.
2254
ffd696af
JM
22552002-03-18 Jason Merrill <jason@redhat.com>
2256
097955f2
JM
2257 PR c++/2039
2258 * init.c (resolve_offset_ref): Hand off to build_component_ref.
2259
b663bcf3
JM
2260 PR c++/4222, c++/5995
2261 * call.c (build_over_call): Fix empty class logic.
2262
0f4237c2
JM
2263 PR c++/3870
2264 * cp-tree.h (struct saved_scope): Add last_parms field.
2265 * decl.c (maybe_push_to_top_level): Save last_function_parms.
2266 (pop_from_top_level): Restore it.
2267
001ad76c
JM
2268 PR c++/4377
2269 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip
2270 NON_LVALUE_EXPRs.
2271
2272 PR c++/4003
ed2fa432
JM
2273 * pt.c (tsubst_friend_function): Use decl_namespace_context.
2274
ffd696af
JM
2275 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
2276 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
2277 type with a nontrivial destructor.
2278
f2606a97
JM
22792002-03-17 Jason Merrill <jason@redhat.com>
2280
2281 PR c++/4460
2282 * class.c (build_base_path): Virtual base layout is fixed in
2283 in-charge [cd]tors.
2284
52dabb6c
NB
22852002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
2286
2287 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
2288 * parse.y (yyparse): Remove macro.
2289
beb9c8a2
JM
22902002-03-17 Jason Merrill <jason@redhat.com>
2291
2292 PR c++/5757
2293 * init.c (build_new_1): Pass the right pointer to op delete.
2294
5dd236e2
NS
22952002-03-16 Nathan Sidwell <nathan@codesourcery.com>
2296
2297 PR c++/4361
2298 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
2299 conversion operators go.
2300 (struct lang_decl_flags): Add template_conv_p and unused
2301 bitfields.
2302 (DECL_TEMPLATE_CONV_FN_P): New macro.
2303 * call.c (build_user_type_conversion_1): Don't check second type
2304 conversion of overload set first.
2305 * class.c (add_method): Make sure templated conversion operators
2306 all end up on slot 2.
2307 * lex.c (do_identifier): A conversion operator token might be
2308 satisfied by a templated conversion operator.
5dd236e2
NS
2309 * pt.c (check_explicit_specialization): Use
2310 CLASSTYPE_FIRST_CONVERSION_SLOT.
2311 (template_parm_this_level_p): New function.
2312 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
8c152bad 2313 * search.c (lookup_fnfields_1): Template conversions will be on
5dd236e2
NS
2314 the first slot.
2315 * typeck.c (build_component_ref): Preserve the type of an
2316 conversion operator name on the overload type.
2317 (build_x_function_call): Retrieve the conversion operator name.
2318
0ba20759
RH
23192002-03-15 Richard Henderson <rth@redhat.com>
2320
2321 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
2322
6e4ae815
MM
23232002-03-15 Mark Mitchell <mark@codesourcery.com>
2324
2325 * cp-tree.h (CLEANUP_DECL): Remove.
2326 (CLEANUP_EXPR): Likewise.
2327 * decl.c (destroy_local_var): Simplify.
2328 (maybe_build_cleanup): Tidy.
2329 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
2330 * semantics.c (cp_expand_stmt): Likewise.
2331 * cp/tree.c (cp_statement_code_p): Likewise.
2332
5cc90635
JM
23332002-03-15 Jason Merrill <jason@redhat.com>
2334
6da794e8
JM
2335 PR c++/5857
2336 * decl.c (duplicate_decls): Use merge_types instead of common_type.
2337 * typeck.c (common_type): Just hand off to
2338 type_after_usual_arithmetic_conversions and
2339 composite_pointer_type.
2340 (merge_types): New fn.
2341 (commonparms): Use it instead of common_type.
2342 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
2343 (composite_pointer_type): Also handle attributes.
2344 * cp-tree.h: Declare merge_types.
2345
5cc90635
JM
2346 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
2347 variables.
2348 * decl2.c (maybe_make_one_only): Also mark the decl as needed.
2349
ecb0eece
RH
23502002-03-14 Richard Henderson <rth@redhat.com>
2351
2352 * decl.c: Include c-pragma.h.
2353 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
2354 * Make-lang.in: Update dependencies.
2355
d3f129b3
JJ
23562002-03-14 Jakub Jelinek <jakub@redhat.com>
2357
f6562b37 2358 PR c++/5908
d3f129b3
JJ
2359 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
2360 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
2361
049e6879
RS
23622002-03-12 Richard Sandiford <rsandifo@redhat.com>
2363
2364 * mangle.c (write_builtin_type): Handle 128-bit integers even if
2365 they are not a standard integer type.
2366
872c9284
RS
23672002-03-12 Richard Sandiford <rsandifo@redhat.com>
2368
2369 * cp-tree.h (init_init_processing): Remove declaration.
2370 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
2371 * decl.c (cxx_init_decl_processing): Don't call init_init_processing.
2372
2f9834e8
KG
23732002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2374
2375 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
2376 Define.
2377 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
2378 tree_code_length.
2379 * lex.c (cplus_tree_code_type, cplus_tree_code_length,
2380 cplus_tree_code_name): Delete.
2381 (cxx_init): Don't call add_c_tree_codes, instead set
2382 lang_unsafe_for_reeval. Don't try to copy into the various
2383 tree_code arrays.
2384
df867456
NS
23852002-03-12 Nathan Sidwell <nathan@codesourcery.com>
2386
2387 PR c++/5659
2388 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
2389 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
2390 definitions.
2391
ab04e34b
NS
23922002-03-11 Nathan Sidwell <nathan@codesourcery.com>
2393
2394 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>,
2395 DR209 is now not a defect.
2396 * cp-tree.h (skip_type_access_control): Remove.
2397 * decl.c (grokdeclarator): Do type access control for friend
2398 declarations.
2399 * semantics.c (decl_type_access_control): Don't reset
2400 current_type_lookups.
2401 (save_type_access_control): Always save the lookups.
2402 (skip_type_access_control): Remove.
2403 (finish_class_definition): Don't change type_lookups.
2404
999cc24c
NS
24052002-03-11 Nathan Sidwell <nathan@codesourcery.com>
2406
2407 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>,
2408 It is incorrect.
2409 * typeck.c (build_static_cast): Compare non-qualified types
2410 with pointer to member conversions.
2411
61eece67
DN
24122002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
2413 Daniel Berlin <dan@dberlin.org>
2414
2415 * cp-lang.c (ok_to_generate_alias_set_for_type): New function.
2416 (cxx_get_alias_set): Use it.
2417
644d28d4
KG
24182002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2419
2420 * cp-tree.h (stabilize_expr): Prototype.
2421
7e326356
CR
24222002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
2423
2424 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
2425 conditional return void.
2426
24965e7a
NB
24272002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
2428
2429 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
2430 * cp-tree.h (cxx_unsave): New.
2431 * tree.c (cp_unsave): Rename cxx_unsave, update prototype.
2432 (init_tree): Update.
2433
ca7558fc
KG
24342002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2435
2436 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
2437 explicit sizeof/sizeof.
2438 * decl2.c (cxx_decode_option): Likewise.
2439 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
2440
fd87b7a7
NS
24412002-03-02 Nathan Sidwell <nathan@codesourcery.com>
2442
2443 PR c++/775
2444 * decl.c (lookup_tag): Only reject enum/class mismatch, not
2445 class/union mismatch.
2446 * parse.y (check_class_key): New function.
2447 (structsp): Call it.
2448
bfba94bd
MM
24492002-03-01 Michael Matz <matz@suse.de>
2450
2451 * typeck.c (cp_pointer_int_sum): Complete inner type which is
2452 used later by size_in_bytes().
2453
fdc9bf29
PE
24542002-03-01 Phil Edwards <pme@gcc.gnu.org>
2455
2456 * cp-tree.h: Require __GNUC__ to be #defined.
2457 (build_init): Add missing prototype.
2458
6f30f1f1
JM
24592002-03-01 Jason Merrill <jason@redhat.com>
2460
2461 * except.c: Don't include decl.h or obstack.h. Do include
2462 tree-inline.h.
2463 (build_throw): Destroy temporaries from the thrown
500abaa8 2464 expression before calling __cxa_throw. Construct a thrown
6f30f1f1
JM
2465 temporary directly into the exception object.
2466 (stabilize_throw_expr): New function.
2467 (wrap_cleanups_r): New function.
2468 * tree.c (stabilize_expr): New function.
2469 * init.c (build_init): New function.
2470 * Make-lang.in (cp/except.o): Adjust .h deps.
2471
46cfb101
JM
24722002-02-28 Jason Merrill <jason@redhat.com>
2473
07f521fc
JM
2474 * search.c (lookup_base_r): Don't clear is_non_public just because
2475 we found a friendly scope.
2476
46cfb101
JM
2477 * decl.c (finish_function): Only warn about missing return
2478 statement with -Wreturn-type.
2479
63e1b1c4
NB
24802002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
2481
2482 * class.c (build_clone): Update.
2483 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
2484 * cp-tree.h (cxx_dup_lang_specific_decl): New.
2485 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
2486 (copy_decl): Update.
2487 * method.c (make_thunk): Update.
2488
f458d1d5
ZW
24892002-02-27 Zack Weinberg <zack@codesourcery.com>
2490
2491 * decl2.c: Delete traditional-mode-related code copied from
2492 the C front end but not used, or used only to permit the
2493 compiler to link.
2494
500abaa8 24952002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org>
3387d36e
CR
2496
2497 PR c++/4093
2498 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
2499 to void.
2500
25c8b645
JJ
25012002-02-22 Jakub Jelinek <jakub@redhat.com>
2502
2503 PR other/5746
2504 * semantics.c (finish_switch_cond): Don't call get_unwidened
2505 if error_mark_node.
2506
4f2b0fb2
NS
25072002-02-22 Nathan Sidwell <nathan@codesourcery.com>
2508
2509 PR c++/2645, DR 295
2510 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
2511 tf_keep_type_decl.
2512 (make_typename_type): Use tsubst_flags_t.
2513 * decl.c (make_typename_type): Adjust. Return non-artificial
2514 TYPE_DECLs, if required.
2515 (grokdeclarator): Simplify CVR qualification handling. Allow bad
2516 qualifiers on typedef types.
2517 * decl2.c (handle_class_head): Adjust make_typename_type call.
2518 * parse.y (nested_name_specifier): Likewise.
2519 (typename_sub0): Likewise.
2520 (typename_sub1): Likewise.
2521 * pt.c (convert_template_argument): Adjust make_typename_type
2522 return value.
2523 (tsubst): Adjust cp_build_qualified_type_real calls.
2524 (check_cv_quals_for_unify): Cope with alowing bad qualifications
2525 on template type parms.
2526 (instantiate_decl): Recheck substitutions to give warnings on bad
2527 qualifications.
2528 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
2529
8fc2ba41
AH
25302002-02-21 Aldy Hernandez <aldyh@redhat.com>
2531
84d901be 2532 * cp/decl.c (duplicate_decls): Merge always_inline attribute.
8fc2ba41 2533
84d901be
AD
2534 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
2535 unless DECL_ALWAYS_INLINE.
8fc2ba41 2536
7552da58
JJ
25372002-02-20 Jakub Jelinek <jakub@redhat.com>
2538
2539 * typeck.c (cp_pointer_int_sum): Renamed from
2540 pointer_int_sum, call pointer_int_sum.
2541
00fae85d
JJ
25422002-02-20 Jakub Jelinek <jakub@redhat.com>
2543
2544 * decl.c (duplicate_decls): Return 0 if issued error about
2545 redeclaration.
2546
6ea868b7
JM
25472002-02-19 Jason Merrill <jason@redhat.com>
2548
500abaa8 2549 ABI change: Mangle `void (A::*)() const' as
6ea868b7
JM
2550 M1AKFvvE, not MK1AFvvE.
2551 * mangle.c (write_function_type): Write cv-quals for member
2552 function type here.
2553 (write_pointer_to_member_type): Not here.
2554
c02f5e29
JM
25552002-02-18 Jason Merrill <jason@redhat.com>
2556
2557 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
2558 (do_decl_instantiation): Likewise.
2559
624a5800
CR
25602002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org>
2561
2562 PR c++/5685
2563 * decl.c (duplicate_decls): Make warning unconditional
2564 if duplicate default argument declarations are present.
2565
f6f8ada3
JJ
25662002-02-17 Jakub Jelinek <jakub@redhat.com>
2567
2568 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
2569 shortening.
2570
8d6e459d
NS
25712002-02-15 Nathan Sidwell <nathan@codesourcery.com>
2572
2573 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
2574 remove incorrect comment. Move #if 0'd code to common path. Use
2575 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
2576
ca4feb54
JM
25772002-02-13 Jason Merrill <jason@redhat.com>
2578
57d5032b
JM
2579 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
2580 (finish_function): Don't warn if current_function_returns_null.
2581
bb26522d
JM
2582 * typeck2.c (digest_init): Do handle values of vector type.
2583
ca4feb54
JM
2584 * typeck2.c (digest_init, process_init_constructor): Treat vectors
2585 like arrays.
2586
e6b9638b
JM
25872002-02-11 Jason Merrill <jason@redhat.com>
2588
2589 * parse.y (reserved_declspecs): Don't handle attributes.
2590 (reserved_typespecquals): Handle them here.
2591 * Make-lang.in (parse.c): Adjust expected conflicts.
2592
1cf537c5
JJ
25932002-02-08 Jakub Jelinek <jakub@redhat.com>
2594
2595 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
2596 instead of compstmt.
2597 (compstmt_or_stmtexpr): Renamed from compstmt.
2598 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
2599
c2ea3a40
NS
26002002-02-07 Nathan Sidwell <nathan@codesourcery.com>
2601
2602 Rename instantiate_type_flags to tsubst_flags_t & expand use.
2603 * cp-tree.h (instantiate_type_flags): Rename to ...
2604 (tsubst_flags_t): ... here. Rename itf_complain to tf_error,
2605 add tf_warning flag.
2606 (instantiate_type): Adjust prototype.
2607 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
2608 do_type_instantiation, cp_build_qualified_type_real): Likewise.
2609 cp_build_qualified_type: Adjust.
2610 * class.c (instantiate_type): Adjust parameter. Rename itf_* to
2611 tf_*.
2612 * call.c (standard_conversion): Rename itf_* to tf_*.
2613 (reference_binding): Likewise.
2614 (convert_like_real): Likewise.
2615 * cvt.c (cp_convert_to_pointer): Likewise.
2616 (convert_to_reference): Likewise.
2617 * decl.c (lookup_namespace_name): Use tf_* flags.
2618 (make_typename_type): Likewise.
2619 (grokdeclarator): Likewise.
2620 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
2621 (coerce_template_template_parms, convert_template_argument,
2622 coerce_template_parms, maybe_get_template_decl_from_type_decl,
2623 lookup_template_class, tsubst_friend_function, tsubst_friend_class,
500abaa8
AJ
2624 instantiate_class_template, tsubst_template_arg_vector,
2625 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
c2ea3a40 2626 tsubst_decl, tsubst_arg_types, tsubst_function_type,
500abaa8 2627 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
c2ea3a40 2628 instantiate_template, fn_type_unification,
500abaa8
AJ
2629 resolve_overloaded_unification, verify_class_unification,
2630 unify, get_bindings_real, do_type_instantiation,
2631 regenerate_decl_from_template, instantiate_decl,
c2ea3a40
NS
2632 tsubst_initializer_list, tsubst_enum,
2633 get_mostly_instantiated_function_type,
2634 invalid_nontype_parm_type_p): Likewise.
2635 * tree.c (cp_build_qualified_type_real): Likewise.
2636 * typeck.c (build_binary_op): Rename itf_* to tf_*.
2637 (build_ptrmemfunc): Likewise.
2638 (convert_for_assignment): Likewise.
2639
d5614afb
NS
26402002-02-07 Nathan Sidwell <nathan@codesourcery.com>
2641
2642 PR c++/109
2643 * decl.c (grokdeclarator): Allow friend declarations from
8d6e459d 2644 dependent types.
d5614afb
NS
2645 * decl2.c (handle_class_head): Don't push into template parm contexts.
2646 * pt.c (push_template_decl_real): Template parm contexts are never
2647 being defined.
2648
1af6141b
AO
26492002-02-05 Alexandre Oliva <aoliva@redhat.com>
2650
2651 * class.c: Include target.h.
2652 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
2653 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
2654 bit-field layout.
2655 * Make-lang.in: Adjust deps.
2656
d8a6f584
JM
26572002-02-05 Jason Merrill <jason@redhat.com>
2658
2659 * error.c (dump_type): Be more helpful about VECTOR_TYPE.
2660
6f9fdf4d
JJ
26612002-02-04 Jakub Jelinek <jakub@redhat.com>
2662
2663 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
2664 (finish_switch_cond): Set SWITCH_TYPE.
2665
14691f8d
RH
26662002-02-04 Richard Henderson <rth@redhat.com>
2667
2668 * method.c (use_thunk): Always initialize the block tree. Reindent.
2669 * semantics.c (expand_body): Emit thunks after function, not before.
2670
e89a6075
JM
26712002-02-04 Jason Merrill <jason@redhat.com>
2672
2673 * decl.c (start_function): Call cplus_decl_attributes immediately
2674 after grokdeclarator.
2675
2676 * decl.c (start_function): Combine DECL_RESULT handling code.
2677
9780c24f
JM
26782002-02-03 Jason Merrill <jason@redhat.com>
2679
2680 * xref.c: Remove.
2681 * Make-lang.in (CXX_OBJS): Remove cp/xref.o
2682 (cp/xref.o): Remove dependencies.
2683 * class.c (finish_struct_1, check_methods): Don't call xref fns.
2684 (finish_struct_1): Likewise.
2685 * friend.c (make_friend_class): Likewise.
2686 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
2687 * spew.c (read_process_identifier): Likewise.
2688
65f36ac8
JM
26892002-02-01 Jason Merrill <jason@redhat.com>
2690
efe49da0 2691 PR c++/4872
500abaa8 2692 * decl.c (finish_function): Warn about a non-void function with
efe49da0
JM
2693 no return statement and no abnormal exit.
2694 * cp-tree.h (struct cp_language_function): Add returns_abnormally.
2695 (current_function_returns_abnormally): New macro.
2696 * call.c (build_call): Set it.
2697
f2d9afec
JM
2698 * typeck.c (build_component_ref): Always complain about offsetof
2699 constructs on non-PODs. Only make it an error for members of
2700 virtual bases.
2701
65f36ac8
JM
2702 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
2703 (dump_function_decl): Always dump parms.
2704
2705 * decl2.c (finish_static_data_member_decl): Complain about a local
2706 class with a static data member.
2707
2708 PR c++/4286
2709 * search.c (lookup_field_1): Don't xref a static data member
2710 just because we looked it up.
2711
98884b26
JM
27122002-01-31 Jason Merrill <jason@redhat.com>
2713
b88c0704
JM
2714 * Make-lang.in (parse.c): Handle .output file.
2715
a588fe25
JM
2716 PR c++/3395
2717 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
2718 not TREE_TYPE.
2719 * semantics.c (finish_class_definition): Adjust.
2720
98884b26
JM
2721 Allow attributes in parms and casts.
2722 * parse.y (named_parm): Don't strip attrs.
2723 (declmods): Remove 'attributes' production.
2724 (nonempty_cv_qualifiers): Accept attributes.
2725 (ATTRIBUTE): Give precedence.
2726 * decl.c (groktypename): Handle attributes.
2727 (grokparms): Likewise.
2728
ffdeea47
JJ
27292002-01-29 Jakub Jelinek <jakub@redhat.com>
2730
2731 * decl2.c (cxx_decode_option): Pass 0 as last argument to
2732 cpp_handle_option.
2733 * lang-specs.h: Use cpp_unique_options instead of cpp_options
2734 when used together with cc1_options.
2735
b8b98c66
NS
27362002-01-29 Nathan Sidwell <nathan@codesourcery.com>
2737
2738 PR c++/5132
2739 * typeck2.c (digest_init): Make sure non-array core type is
2740 instantiated.
2741 * decl2.c (reparse_absdcl_as_casts): Just store the type in the
2742 constructor, rather than build a new one.
2743 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the
2744 PURPOSE of constructor elts.
2745
7437519c
ZW
27462002-01-23 Zack Weinberg <zack@codesourcery.com>
2747
2748 * Make-lang.in (parse.c): Adjust expected number of
2749 shift-reduce conflicts.
2750 (decl.o): Depend on diagnostic.h.
2751 * decl.c: Include diagnostic.h.
2752 (grokdeclarator): Check for null pointer.
2753 (finish_function): Don't abort when
2754 current_binding_level->parm_flag != 1, if errors have
2755 occurred; throw away the statement tree and extra binding
2756 levels, and continue.
2757 * lex.c (note_list_got_semicolon): Check for null pointer.
2758 * method.c (hack_identifier): Just return error_mark_node if
2759 value is error_mark_node.
2760 * parse.y (primary: TYPEID(type_id)): No need to use
2761 TYPE_MAIN_VARIANT here.
2762 (handler_seq): Accept an empty list of catch clauses and
2763 generate a fake handler block to avoid later crashes.
2764 (ansi_raise_identifier): Accept the error token too.
2765 * semantics.c (begin_class_definition,
2766 finish_class_definition): Check for error_mark_node.
2767
c588e52b
ZW
27682002-01-23 Zack Weinberg <zack@codesourcery.com>
2769
2770 * typeck2.c (friendly_abort): Delete definition.
2771 * cp-tree.h (friendly_abort): Don't prototype.
2772 (my_friendly_assert): Use fancy_abort.
2773
d55ecaa4
CR
27742002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
2775
2776 * cp-tree.h (my_friendly_abort): Remove.
2777
0a01c261
JJ
27782002-01-23 Jakub Jelinek <jakub@redhat.com>
2779
2780 * spew.c (pending_inlines, pending_inlines_tail,
2781 processing_these_inlines): Make static.
2782 (mark_pending_inlines): Remove static.
2783 (begin_parsing_inclass_inline): If in function, save pi
2784 for GC to cp_function_chain->unparsed_inlines instead.
2785 (process_next_inline): Likewise.
2786 * cp-tree.h (struct cp_language_function): Add unparsed_inlines.
2787 (mark_pending_inlines): Add prototype.
2788 * decl.c (spew_debug): Remove unused extern.
2789 (mark_lang_function): Call mark_pending_inlines.
2790
a98facb0
CR
27912002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
2792
c588e52b
ZW
2793 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
2794 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
2795 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
a98facb0
CR
2796 Change my_fancy_abort() to abort().
2797
f893c16e
JM
27982002-01-23 Jason Merrill <jason@redhat.com>
2799
608afcc5
JM
2800 PR c++/5453
2801 * class.c (fixed_type_or_null): Fix thinko.
2802
f893c16e
JM
2803 PR c++/3331
2804 * init.c (resolve_offset_ref): Use build_indirect_ref.
6bc34b14 2805
b2115575
JM
2806 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
2807
f893c16e
JM
28082002-01-22 Jason Merrill <jason@redhat.com>
2809
b5856475
JM
2810 * parse.y (function_body): Suppress the block for the outermost
2811 curly braces.
2812 * decl.c (pushdecl): Don't try to skip it.
2813 (begin_function_body): Keep the block we create, not the next one.
2814 * init.c (emit_base_init): Don't mess with keep_next_level.
2815
6bc34b14
JM
2816 * class.c (build_base_path): Tweak formatting.
2817
3807621a
NS
28182002-01-19 Nathan Sidwell <nathan@codesourcery.com>
2819
2820 Fix regression introduced with patch for c++/775
2821 * parse.y (class_head_defn): Check for template specializations
2822 with a different class-key.
2823
cdd2559c
JM
28242002-01-17 Jason Merrill <jason@redhat.com>
2825
2826 * decl.c (begin_constructor_body, begin_destructor_body): New fns.
2827 (begin_function_body): Call them and keep_next_level.
2828 * init.c (emit_base_init): Call keep_next_level.
2829 * semantics.c (setup_vtbl_ptr): Lose.
2830 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
2831 (vtbls_set_up_p): Lose.
2832 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
2833 * method.c (do_build_copy_constructor): Likewise.
2834 (synthesize_method): Call finish_mem_initializers.
2835 * parse.y (nodecls): Likewise.
ad6b1795
JM
2836
2837 * error.c (dump_type_suffix): Print the exception specs before
2838 recursing.
2839 (dump_function_decl): Here, too.
2840
2841 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
2842
195a5def
IR
28432002-01-10 Ira Ruben <ira@apple.com>
2844
6bc34b14 2845 PR c++/907
195a5def
IR
2846 * decl.c (start_method): Handle attrlist.
2847
f21ee879
JJ
28482002-01-10 Jakub Jelinek <jakub@redhat.com>
2849
2850 * decl2.c (max_tinst_depth): Increase default limit to 500.
2851
28522002-01-10 Graham Stott <grahams@redhat.com>
8fabd4e2
GS
2853
2854 * spew.c (YYCHAR): Uppercase macro parameter and add
2855 parenthesis.
2856 (YYCODE): Likewise.
2857 (NAME): Uppercase macro parameter.
2858
c3af729a
GS
28592002-01-09 Graham Stott <grahams@redhat.com>
2860
6bc34b14 2861 * decl.h (grokdeclarator): Wrap long line.
5d8b4235 2862
c3af729a
GS
2863 * semantics.c (FINISH_COND): Uppercase macro paramaters and
2864 add parenthesis.
2865
91800747
GS
28662002-01-08 Graham Stott <grahams@redhat.com>
2867
2868 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
2869 (PALLOC): Uppercase macro parameter and whitespace.
2870 (SALLOC): Uppercase macro parameter.
2871 (SFREE): Uppercase macros parameter, add parenthese and
2872 whitespace.
2873 (STREQL): Uppercase macro parameter and whitespace.
2874 (STRNEQ): Likewise.
2875 (STRLSS): Likewise.
2876 (STRLEQ): Likewise.
2877 (STRGTR): Likewise.
2878 (STRGEQ): Likewise.
2879
2880 * call.c (convert_like): Add parenthesis and wrap.
2881 (convert_like_with_context): Likewise.
2882 (ICS_RANK): Whitespace.
2883 (NEED_TEMPORARY_P): Remove parenthesis.
2884
2885 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
2886 whitespace.
2887 (VTT_MARKED_BINFO_P): Likewise.
2888
2889 * decl.c (BINDING_LEVEL): Add parenthesis.
2890 (DEF_OPERATOR): Likewise.
2891
91800747
GS
2892 * mangle.c (MANGLE_TRACE): Add parenthesis.
2893 (MANGLE_TRACE_TREE): Likewise.
2894 (write_signed_number): Likewise.
2895 (write_unsigned_number): Likewise.
2896
2897 * pt.c (ccat): Uppercase macro parameter.
2898 (cat): Likewise
2899
2900 * search.c (SET_BINFO_ACCESS): Add parenthesis.
2901
15eb1e43
JM
29022002-01-07 Jason Merrill <jason@redhat.com>
2903
2904 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
2905 to pedwarn.
2906
6bc34b14 2907 PR c++/3536
15eb1e43
JM
2908 * method.c (make_thunk): If !flag_weak, give the thunk the
2909 function's linkage.
2910 (use_thunk): Here, too.
2911
b34c06e3
GS
29122002-01-07 Graham Stott <grahams@redhat.com>
2913
6bc34b14
JM
2914 * error.c: Update copyright date.
2915 (print_scope_operator): Add parenthesis.
2916 (print_left_paren): Likewise.
2917 (print_right_paren): Likewise.
2918 (print_left_bracket): Likewise.
2919 (print_right_bracket): Likewise.
2920 (print_template_argument_list_start): Likewise.
2921 (print_template_argument_list_end): Likewise.
2922 (print_non_consecutive_character): Likewise.
2923 (print_tree_identifier): Likewise.
2924 (print_identifier): Likewise.
2925 (NEXT_CODE): Uppercase macro parameter.
2926 (ident_fndecl): Delete unused.
2927 (GLOBAL_THING): Likewise.
b34c06e3 2928
98e40e83
GS
29292002-01-06 Graham Stott <grahams@redhat.com>
2930
2931 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
2932 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
2933 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
2934 (RECORD_OR_UNION_TYPE_CHECK): Likewise.
2935 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
2936 (C_IS_RESERVED_WORD): Uppercase macro parameter.
2937 (C_RID_YYCODE) Likewise.
2938 (ptrmem_cst): Use rtx.
2939 (LOCAL_BINDING_P): Add whitespace.
2940 (INHERITED_VALUE_BINDING_P): Likewise.
2941 (BINDING_SCOPE): Wrap long line.
2942 (BINDING_HAS_LEVEL_P): Remove parenthesis.
2943 (BINDING_VALUE): Wrap long line.
2944 (BINDING_TYPE): Whitespace.
2945 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
2946 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
c588e52b 2947 (IDENTIFIER_NAMESPACE_VALUE): Likewise.
98e40e83
GS
2948 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
2949 (same_type_p): Uppercase macro parameters.
2950 (same_type_ignoring_top_level_qualifiers_p): Likewise.
2951 (OVL_FUNCTION): Wrap long line.
2952 (OVL_CHAIN): Whitespace.
b34c06e3 2953 (OVL_CURRENT): Add parenthesis and whitespace.
98e40e83
GS
2954 (OVL_NEXT): Whitespace.
2955 (OVL_USED): Likewise.
2956 (IDENTIFIER_TYPE_VALUE): Likewise.
2957 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
2958 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
2959 (LANG_ID_FIELD): Whitespace.
2960 (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
2961 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
2962 (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
2963 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
2964 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
2965 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
2966 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
2967 (IDENTIFIER_VIRTUAL_P): Likewise.
2968 (IDENTIFIER_OPNAME_P): Likewise.
2969 (IDENTIFIER_TYPENAME_P): Remove parenthesis.
2970 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
2971 (C_SET_EXP_ORIGINAL_CODE): Likewise.
2972 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
2973 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
2974 (IS_AGGR_TYPE): Uppercase macro parameter.
2975 (CLASS_TYPE_P): Likewise.
2976 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
2977 (IS_AGGR_TYPE_2): Whitespace.
2978 (TAGGED_TYPE_P): Uppercase macro parameter.
2979 (TYPE_BUILT_IN): Whitespace.
2980 (TYPE_FOR_JAVA): Likewise.
2981 (FUNCTION_ARG_CHAIN): Remove parenthesis.
2982 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
2983 (FUNCTION_FIRST_USER_PARAM): Likewise.
2984 (PROMOTES_TO_AGGR_TYPE): Whitespace.
2985 (DERIVED_FROM_P): Add parenthesis and wrap.
2986 (UNIQUELY_DERIVED_FROM_P): Likewise.
2987 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
2988 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
2989 (CLASSTYPE_USE_TEMPLATE): Whitespace.
2990 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
2991 (TYPE_GETS_DELETE): Add parenthesis.
2992 (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
2993 (TYPE_HAS_ASSIGN_REF): Likewise,
2994 (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
2995 (TYPE_HAS_INIT_REF): Likewise.
2996 (TYPE_HAS_CONST_INIT_REF): Likewise.
2997 (TYPE_BEING_DEFINED): Likewise.
2998 (TYPE_LANG_SPECIFIC): Likewise.
2999 (CLASSTYPE_RTTI): Likewise.
3000 (TYPE_OVERLOADS_CALL_EXPR): Likewise.
3001 (TYPE_OVERLOADS_ARRAY_REF): Likewise.
3002 (TYPE_OVERLOADS_ARROW): Likewise.
3003 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
3004 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
3005 (CLASSTYPE_METHOD_VEC): Likewise.
3006 (CLASSTYPE_MARKED_N): Likewise.
3007 (CLASSTYPE_MARKED): Likewise.
3008 (CLASSTYPE_MARKED2): Likewise.
3009 (CLASSTYPE_MARKED3): Likewise.
3010 (CLASSTYPE_MARKED4): Likewise.
3011 (CLASSTYPE_MARKED5): Likewise.
3012 (CLASSTYPE_MARKED6): Likewise.
3013 (SET_CLASSTYPE_MARKED): Whitespace.
3014 (CLEAR_CLASSTYPE_MARKED): Likewise.
3015 (SET_CLASSTYPE_MARKED2): Likewise.
3016 (CLEAR_CLASSTYPE_MARKED2): Likewise.
3017 (SET_CLASSTYPE_MARKED3): Likewise.
3018 (CLEAR_CLASSTYPE_MARKED3): Likewise.
3019 (SET_CLASSTYPE_MARKED4): Likewise.
3020 (CLEAR_CLASSTYPE_MARKED4): Likewise.
3021 (SET_CLASSTYPE_MARKED5): Likewise.
3022 (CLEAR_CLASSTYPE_MARKED5): Likewise.
3023 (SET_CLASSTYPE_MARKED6): Likewise.
3024 (CLEAR_CLASSTYPE_MARKED6): Likewise.
3025 (CLASSTYPE_TAGS): Likewise.
3026 (CLASSTYPE_VSIZE): Likewise.
3027 (CLASSTYPE_VBASECLASSES): Likewise.
3028 (CANONICAL_BINFO): Add parenthesis.
3029 (CLASSTYPE_SIZE(NODE): Likewise.
3030 (CLASSTYPE_SIZE_UNIT): Likewise.
3031 (CLASSTYPE_ALIGN(NODE): Likewise.
3032 (CLASSTYPE_USER_ALIGN): Likewise.
3033 (TYPE_JAVA_INTERFACE): Likewise.
3034 (CLASSTYPE_PURE_VIRTUALS): Likewise.
3035 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
3036 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
3037 (CLASSTYPE_HAS_MUTABLE): Likewise.
3038 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
3039 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
3040 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
3041 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
3042 (CLASSTYPE_INTERFACE_ONLY): Likewise.
3043 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
3044 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
3045 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
3046 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
3047 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
3048 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
3049 (BINFO_UNSHARED_MARKED): Whitespace.
3050 (BINFO_MARKED): Whitespace and wrap.
3051 (SET_BINFO_MARKED): Likewise.
3052 (CLEAR_BINFO_MARKED): Likewise.
3053 (BINFO_VTABLE_PATH_MARKED): Likewise.
3054 (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
3055 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
3056 (BINFO_SUBVTT_INDEX): Remove parenthesis.
3057 (BINFO_VPTR_INDEX): Likewise.
3058 (BINFO_PRIMARY_BASE_OF): Likewise,
3059 (CLASSTYPE_VFIELDS): Whitespace.
3060 (VF_DERIVED_VALUE): Wrap long line.
3061 (NAMESPACE_LEVEL): Whitespace.
6bc34b14
JM
3062 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
3063 (DEFARG_POINTER): Whitespace.
3064 (DECL_NEEDED_P): Remove parenthesis.
3065 (DECL_LANGUAGE): Whitespace.
3066 (SET_DECL_LANGUAGE): Add parenthesis.
3067 (DECL_CONSTRUCTOR_P): Whitespace and wrap.
3068 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
3069 (DECL_IN_AGGR_P): Whitespace.
3070 (DECL_FRIEND_P): Likewise.
3071 (DECL_BEFRIENDING_CLASSES): Likewise.
3072 (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
3073 (DECL_NONCONVERTING_P): Whitespace.
3074 (DECL_PURE_VIRTUAL_P): Likewise.
3075 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
3076 (DECL_PENDING_INLINE_INFO): Whitespace.
3077 (DECL_SORTED_FIELDS): Likewise.
3078 (DECL_DEFERRED_FN): Likewise.
3079 (DECL_TEMPLATE_INFO): Likewise.
3080 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
3081 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
3082 (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
3083 (TMPL_ARGS_LEVEL): Likewise.
3084 (SET_TMPL_ARGS_LEVEL): Likewise.
3085 (INNERMOST_TEMPLATE_PARMS): Whitespace.
3086 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
3087 (INTEGRAL_CODE_P(CODE): Add parenthesis.
3088 (CP_INTEGRAL_TYPE_P): Remove parenthesis.
3089 (TYPE_HAS_CONSTRUCTOR): Whitespace.
3090 (TREE_HAS_CONSTRUCTOR): Likewise.
3091 (TYPE_HAS_DESTRUCTOR): Likewise.
3092 (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
3093 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
3094 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
3095 (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
3096 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
3097 (TYPE_PTRMEMFUNC_P): Likewise.
3098 (TYPE_PTRMEMFUNC_FLAG): Likewise.
3099 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
3100 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
3101 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
3102 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
3103 (DECL_ACCESS): Whitespace.
3104 (DECL_GLOBAL_CTOR_P): Remove parenthesis.
3105 (DECL_GLOBAL_DTOR_P): Likewise.
3106 (GLOBAL_INIT_PRIORITY): Likewise.
98e40e83 3107 (DECL_TEMPLATE_PARMS): Likewise.
6bc34b14
JM
3108 (DECL_TEMPLATE_RESULT): Likewise.
3109 (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
3110 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
3111 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
3112 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
3113 (PRIMARY_TEMPLATE_P): Add parenthesis.
3114 (DECL_USE_TEMPLATE): Whitespace.
3115 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
3116 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
3117 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
3118 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
3119 (CALL_DECLARATOR_PARMS): Remove parenthesis.
3120 (CALL_DECLARATOR_QUALS): Likewise.
3121 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
3122 (TEMP_NAME_P): Wrap.
3123 (VFIELD_NAME_P): Likewise.
3124 (B_SET): Uppercase macro parameters and add parenthesis.
3125 (B_CLR): Likewise.
3126 (B_TST): Likewise.
3127 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
3128 (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
3129 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
3130 (same_or_base_type_p): Likewise.
3131 (cp_deprecated): Likewise.
98e40e83 3132
c28abdf0
RH
31332002-01-05 Richard Henderson <rth@redhat.com>
3134
15eb1e43 3135 * semantics.c (expand_body): Revert last change.
c28abdf0 3136
f11ee281
JM
31372002-01-04 Jason Merrill <jason@redhat.com>
3138
195a5def 3139 PR c++/4122
f11ee281
JM
3140 * class.c (update_vtable_entry_for_fn): Set delta to zero for a
3141 lost primary.
3142
3143 * class.c (build_vtbl_initializer): Check for a lost primary
3144 before calculating the vtable entry to throw away.
3145
a4200657
JM
31462002-01-02 Jason Merrill <jason@redhat.com>
3147
3148 * semantics.c (expand_body): Call outlining_inline_function when
3149 emitting an inline function out of line.
3150
40e593d7
NS
31512002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3152
3153 PR c++/5116, c++/764 reversion
3154 * call.c (build_new_op): Revert the instantiations. They are
3155 incorrect.
c588e52b 3156
323728aa
NS
31572002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3158
3159 PR c++/5089
3160 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
3161
46c895ac
NS
31622002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3163
3164 PR c++/3716
3165 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
3166 (tsubst, case POINTER_TYPE): Handle pmfs here.
3167 (tsubst, case OFFSET_TYPE): Check it is not an offset to
3168 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
3169
833aa4c4
NS
31702002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3171
3172 PR c++/35
3173 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
3174 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
3175 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
3176 PARM_DECL.
3177 (tsubst_template_parms): Break up loop statements.
3178 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
3179 parm PARM_DECLs don't get promoted.
3180
18976b21
NS
31812002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3182
3183 PR c++/5123
3184 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
3185 (build_x_function_call): Cope with a COMPONENT_REF containing a
3186 TEMPLATE_ID_EXPR.
3187
303d1c55
NS
31882002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3189
3190 PR c++/5213
3191 * pt.c (convert_template_argument): Be more careful determining
3192 when RECORD_TYPE templates are or are not templates.
3193
d46a33b3
NS
31942002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3195
3196 PR c++/775
3197 * cp-tree.h (handle_class_head): Adjust prototype.
3198 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
3199 parameters. Use for all class heads.
3200 * parse.y (named_class_head_sans_basetype, named_class_head,
3201 named_complex_class_head_sans_basetype,
3202 named_class_head_sans_basetype_defn,
3203 unnamed_class_head): Remove.
3204 (class_head, class_head_apparent_template): Recognize class heads
3205 (class_head_decl, class_head_defn): New reductions. Process class
3206 heads.
3207 (structsp): Adjust class definition and class declaration
3208 reductions.
3209 (maybe_base_class_list): Give diagnostic on empty list.
3210
4542128e
NS
32112002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3212
3213 PR c++/4379
3214 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
3215 single non-static member.
3216 (unary_complex_lvalue): If it cannot be a pointer to member, don't
3217 make it so. Check it is not pointer to reference.
3218
903c6234
NS
32192002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3220
3221 PR c++/5132
3222 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
3223 are processing a template decl.
3224
477558bf
NS
32252002-01-02 Nathan Sidwell <nathan@codesourcery.com>
3226
3227 PR c++/5116, c++/764
3228 * call.c (build_new_op): Make sure template class operands are
3229 instantiated. Simplify arglist construction.
3230
41f5d4b1
NS
32312001-12-29 Nathan Sidwell <nathan@codesourcery.com>
3232
3233 * call.c (build_user_type_conversion_1): Use my_friendly_assert
3234 rather than if ... abort.
3235 * cvt.c (convert_to_reference): Likewise.
3236 * semantics.c (setup_vtbl_ptr): Likewise.
3237 * pt.c (lookup_template_class): Comment typo.
c588e52b 3238
f3368a90
NS
32392001-12-29 Nathan Sidwell <nathan@codesourcery.com>
3240
3241 PR c++/5125
3242 * pt.c (push_template_decl_real): Make sure DECL has
3243 DECL_LANG_SPECIFIC.
3244
03c9c274
NS
32452001-12-29 Nathan Sidwell <nathan@codesourcery.com>
3246
3247 PR c++/335
3248 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
3249 for non-reference fields.
3250 * typeck.c (require_complete_type): Use resolve_offset_ref).
3251
7d8e8369
NS
32522001-12-26 Nathan Sidwell <nathan@codesourcery.com>
3253
3254 PR c++/196
03c9c274 3255 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
7d8e8369 3256
a56ca899
NS
32572001-12-24 Nathan Sidwell <nathan@codesourcery.com>
3258
3259 PR c++/160
3260 * typeck.c (build_modify_expr): Remove old unreachable code & tidy
3261 up. Don't stabilize_references when initializing a reference.
3262
0b5826ac
KG
32632001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3264
3265 * decl2.c (lang_f_options): Const-ify.
3266
38be19f6
JM
32672001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
3268
3269 * config-lang.in (diff_excludes): Remove.
3270
2e4cf9dc
NS
32712001-12-19 Nathan Sidwell <nathan@codesourcery.com>
3272
3273 PR c++/90
3274 * typeck.c (build_function_call_real): Use original function
3275 expression for errors.
3276
00e4119c
JM
32772001-12-18 Jason Merrill <jason@redhat.com>
3278
195a5def 3279 PR c++/3242
00e4119c
JM
3280 * class.c (add_method): Do compare 'this' quals when trying to match a
3281 used function. Don't defer to another used function.
3282
3ad97789
NS
32832001-12-18 Nathan Sidwell <nathan@codesourcery.com>
3284
3285 * pt.c (instantiate_clone): Remove, fold into ...
3286 (instantiate_template): ... here. Simplify by removing mutual
3287 recursion.
3288 * typeck2.c (build_m_component_ref): Don't cv qualify the function
3289 pointed to by a pointer to function.
3290 * class.c (delete_duplicate_fields_1): Typo.
3291
f21add07
JM
32922001-12-18 Jason Merrill <jason@redhat.com>
3293
3294 C++ ABI change: destroy value arguments in caller.
3295 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
3296 create an extra binding level for the parameters.
3297 * decl.c (store_parm_decls): Don't do parameter cleanups.
3298
ea50ad82
NS
32992001-12-18 Nathan Sidwell <nathan@codesourcery.com>
3300
3301 * call.c (build_new_method_call): Use '%#V'.
3302 * error.c (cv_to_string): Use V parameter to determine padding.
3303
3855d0d1
JM
33042001-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
3305
3306 * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
3307 spellings in messages.
3308
33bd39a2
ZW
33092001-12-17 Zack Weinberg <zack@codesourcery.com>
3310
3311 * cp-tree.h: Delete #defines for cp_error, cp_warning,
3312 cp_pedwarn, and cp_compiler_error.
3313 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
3314 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
3315 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
3316 typeck2.c: Change calls to the above macros to use their
3317 language-independent equivalents: error, warning, pedwarn, and
3318 internal_error respectively.
3319
317c26c3
NB
33202001-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
3321
3322 * decl2.c (finish_file): Remove back_end_hook.
3323
aba649ba
JM
33242001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
3325
3326 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
3327 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
3328 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
3329
1737c953
JM
33302001-12-15 Joseph S. Myers <jsm28@cam.ac.uk>
3331
3332 * lang-options.h: Use American spelling in messages.
3333
4a90862e
JM
33342001-12-13 Jason Merrill <jason@redhat.com>
3335
ade3dc07
JM
3336 * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
3337
3338 Use cleanups to run base and member destructors.
3339 * init.c (push_base_cleanups): New function, split out from...
3340 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code.
3341 * decl.c (finish_destructor_body): Move vbase destruction code to
3342 push_base_cleanups.
3343 (begin_function_body, finish_function_body): New fns.
3344 (finish_function): Move [cd]tor handling and call_poplevel to
3345 finish_function_body.
3346 (pushdecl): Skip the new level.
3347 * semantics.c (genrtl_try_block): Don't call end_protect_partials.
3348 (setup_vtbl_ptr): Call push_base_cleanups.
3349 * method.c (synthesize_method): Call {begin,end}_function_body.
3350 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
3351 * cp-tree.h: Declare new fns.
3352 * parse.y (function_body, .begin_function_body): New nonterminals.
3353 (fndef, pending_inline, function_try_block): Use function_body.
3354 (ctor_initializer_opt, function_try_block): No longer has a value.
3355 (base_init): Remove .set_base_init token.
3356 (.set_base_init, compstmt_or_error): Remove.
3357 * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
3358
4a90862e
JM
3359 * optimize.c (maybe_clone_body): Fix parameter updating.
3360
a0de9d20
JM
33612001-12-12 Jason Merrill <jason@redhat.com>
3362
3363 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
3364 * semantics.c (genrtl_start_function): Don't pass
3365 parms_have_cleanups or push an extra binding level.
3366 (genrtl_finish_function): Lose cleanup_label cruft.
3367
3368 * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
3369 (ctor_label): Remove.
3370 * semantics.c (finish_return_stmt): Lose ctor_label support.
3371 * decl.c (finish_constructor_body, mark_lang_function): Likewise.
33bd39a2 3372 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
a0de9d20
JM
3373 dtor_label.
3374
3375 * call.c (build_new_method_call): Let resolves_to_fixed_type_p
3376 check for [cd]tors.
3377 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
3378
3379 * decl.c (finish_function): Check VMS_TARGET, not VMS.
3380
3381 * decl.c (start_cleanup_fn): Remove redundant pushlevel.
3382 (end_cleanup_fn): And poplevel.
3383
3384 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
3385 if we're in a template.
3386
dc5c569a
JJ
33872001-12-12 Jakub Jelinek <jakub@redhat.com>
3388
3389 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
3390 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
3391 THIS_NAME_P): Delete.
3392 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
3393 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
3394 with internal naming scheme.
3395 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
3396
ad1a6d45
NS
33972001-12-12 Nathan Sidwell <nathan@codesourcery.com>
3398
3399 * decl.c (grokdeclarator): Deprecated implicit typename use.
3400
270d8c65
NS
34012001-12-11 Nathan Sidwell <nathan@codesourcery.com>
3402
3403 PR g++/51
3404 * parse.y (frob_specs): Indicate it is a language linkage which
3405 contained the extern.
3406 * decl.c (grokdeclarator): Allow extern language linkage with
3407 other specifiers.
3408
9aaceb4b
NS
34092001-12-10 Nathan Sidwell <nathan@codesourcery.com>
3410
3411 PR g++/72
3412 * decl.c (add_binding): Don't reject duplicate typedefs involving
3413 template parameters.
3414
a23c9413
NB
34152001-12-10 Neil Booth <neil@daikokuya.demon.co.uk>
3416
3417 * parse.y, semantics.c: Similarly.
3418
9aaceb4b 34192001-12-09 Nathan Sidwell <nathan@codesourcery.com>
271e6f02
NS
3420
3421 PR g++/87
3422 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
3423 (copy_args_p): Rename to ...
3424 (copy_fn_p): ... here.
3425 (grok_special_member_properties): New function.
3426 (grok_op_properties): Lose VIRTUALP parameter.
3427 (copy_assignment_arg_p): Remove.
3428 * call.c (build_over_call): Use copy_fn_p.
3429 * decl.c (grokfndecl): Reformat. Adjust call to
3430 grok_op_properties.
3431 (copy_args_p): Rename to ...
3432 (copy_fn_p): ... here. Reject template functions. Check for pass
3433 by value.
3434 (grok_special_member_properties): Remember special functions.
3435 (grok_ctor_properties): Don't remember them here, just check.
3436 (grok_op_properties): Likewise.
3437 (start_method): Call grok_special_member_properties.
3438 * decl2.c (grokfield): Likewise.
3439 (copy_assignment_arg_p): Remove.
3440 (grok_function_init): Don't remember abstract assignment here.
3441 * pt.c (instantiate_class_template): Call
3442 grok_special_member_properties.
3443 (tsubst_decl): Adjust grok_op_properties call.
3444
bdd8737f
AH
34452001-12-08 Aldy Hernandez <aldyh@redhat.com>
3446
33bd39a2
ZW
3447 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
3448 RID_TYPES_COMPATIBLE_P.
bdd8737f 3449
46af705a
JDA
34502001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
3451
3452 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
3453 call to build_aggr_init.
3454 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
3455
cb97d97d
NB
34562001-12-08 Neil Booth <neil@daikokuya.demon.co.uk>
3457
3458 * parse.y: Replace uses of the string non-terminal with STRING.
3459 Don't perform string concatentaion here.
3460 (string): Remove non-terminal.
3461 * semantics.c (finish_asm_stmt): Don't concatenate strings here.
3462
742a37d5
JM
34632001-12-05 Jason Merrill <jason@redhat.com>
3464
3465 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
3466 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
3467 * tree.c (cp_start_inlining, cp_end_inlining): New fns.
3468 * pt.c (push_tinst_level): No longer static.
3469 * cp-tree.h: Declare them.
3470
3471 * init.c (resolve_offset_ref): Don't check access for the base
3472 conversion to access a FIELD_DECL.
3473
3474 * cp-tree.h (TYPE_REFFN_P): New macro.
3475 * decl.c (bad_specifiers): Check it, too.
3476
3477 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
3478 on the __*_type_info type if we haven't seen a definition.
3479
26f943fd
NB
34802001-12-05 Neil Booth <neil@daikokuya.demon.co.uk>
3481
3482 * decl.c: Include c-common.h.
3483 (shadow_warning): Move to c-common.c.
3484
37a08a29
RK
3485Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3486
3487 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
3488
9471d3e2
NS
34892001-12-04 Nathan Sidwell <nathan@codesourcery.com>
3490
3491 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
3492
713ccd0c
NS
34932001-12-04 Nathan Sidwell <nathan@codesourcery.com>
3494
3495 PR g++/164
3496 * init.c (sort_base_init): Allow binfos to be directly specified.
3497 * method.c (do_build_copy_constructor): Explicitly convert to the
3498 base instance.
3499 (do_build_assign_ref): Likewise.
3500
591382c4
HPN
35012001-12-03 Hans-Peter Nilsson <hp@bitrange.com>
3502
3503 * decl.c (xref_basetypes): Don't use C99 construct in tag_code
3504 declaration and initialization.
3505
c725bd79
NB
35062001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
3507
3508 * typeck2.c: Remove leading capital from diagnostic messages, as
3509 per GNU coding standards.
3510
a5d7c4a3
MK
35112001-12-03 Mumit Khan <khan@nanotech.wisc.edu>
3512
3513 PR c++/3394
9fe038e8
HPN
3514 * decl.c (xref_basetypes): Handle attributes between
3515 'class' and name.
a5d7c4a3 3516
f1880e13
NS
35172001-12-03 Nathan Sidwell <nathan@codesourcery.com>
3518
3519 PR g++/3381
3520 * parse.y (named_complex_class_head_sans_basetype): Add new
3521 reduction.
3522 * Make-lang.in (parse.c): Adjust expected conflict count.
3523
ff668506
JM
35242001-12-03 Jason Merrill <jason@redhat.com>
3525
3526 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
3527 immediate binfos for our virtual bases.
3528
1f978f5f
NB
35292001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
3530
3531 * call.c (build_java_interface_fn_ref): Similarly.
3532 * except.c (is_admissible_throw_operand): Similarly.
3533 * init.c (build_java_class_ref): Similarly.
3534 * xref.c (open_xref_file): Similarly.
3535
357351e5
NB
35362001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
3537
3538 * class.c (finish_struct): Remove trailing periods from messages.
3539 * decl.c (check_tag_decl): Similarly.
3540 * lex.c (cxx_set_yydebug): Similarly.
3541 * typeck2.c (friendly_abort): Similarly.
3542
998979e6
MM
35432001-11-29 Mark Mitchell <mark@codesourcery.com>
3544
3545 PR c++/3048
3546 * cp-tree.h (ovl_member): Remove.
33bd39a2 3547 * decl2.c (merge_functions): Handle extern "C" functions
998979e6
MM
3548 specially.
3549 * tree.c (ovl_member): Remove.
3550
7d5b8b11
MM
35512001-11-29 Mark Mitchell <mark@codesourcery.com>
3552
3553 PR c++/4842
3554 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
3555 FUNCTION_DECL, as input.
3556 (mark_overriders): Remove.
3557 (warn_hidden): Rework for the new ABI.
3558
b67db529
MM
35592001-11-29 Mark Mitchell <mark@codesourcery.com>
3560
3561 PR c++/3471
3562 * call.c (convert_like_real): Do not build additional temporaries
3563 for rvalues of class type.
3564
2db1ab2d
NS
35652001-11-28 Nathan Sidwell <nathan@codesourcery.com>
3566
3567 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
3568 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
3569 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
3570 (DERIVED_FROM_P): Likewise.
3571 (enum base_access): Renumber, add ba_quiet bit mask.
3572 (get_binfo): Remove.
3573 (get_base_distance): Remove.
3574 (binfo_value): Remove.
3575 (ACCESSIBLY_DERIVED_FROM_P): Remove.
3576 * call.c (standard_conversion): Use lookup_base.
3577 * class.c (strictly_overrides): Likewise.
3578 (layout_virtual_bases): Likewise.
3579 (warn_about_ambiguous_direct_bases): Likewise.
3580 (is_base_of_enclosing_class): Likewise.
3581 (add_vcall_offset_vtbl_entries_1): Likewise.
3582 * cvt.c (build_up_reference): Adjust comment.
3583 * init.c (build_member_call): Reformat.
3584 * search.c (get_binfo): Remove.
3585 (get_base_distance_recursive): Remove.
3586 (get_base_distance): Remove.
3587 (lookup_base_r): Tweak.
3588 (lookup_base): Add ba_quiet control. Complete the types here.
3589 (covariant_return_p): Use lookup_base.
3590 * tree.c (binfo_value): Remove.
3591 (maybe_dummy_object): Use lookup_base.
3592 * typeck.c (build_static_cast): Use lookup_base.
3593 (get_delta_difference): Likewise.
3594 * typeck2.c (binfo_or_else): Use lookup_base.
3595 (build_scoped_ref): Add back error_mark_check.
3596 (build_m_component_ref): Use lookup_base.
3597
d3945f0a
JM
35982001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
3599
3600 * Make-lang.in (c++.generated-manpages): New dummy target.
3601
ac79cd5a
RK
3602Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3603
3604 * Make-lang.in (cp-lang.o): Depends on c-common.h.
3605 * cp-lang.c (c-common.h): Include.
3606 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
3607 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
3608 * expr.c (init_cplus_expand): Don't set lang_expand_constant.
3609
4d6baafa
NB
36102001-11-26 Neil Booth <neil@daikokuya.demon.co.uk>
3611
3612 * decl2.c (c_language): Move to c-common.c.
3613 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
3614 functions.
3615 (cxx_init): Update.
3616
5b0c5896
JM
36172001-11-26 Jason Merrill <jason@redhat.com>
3618
3619 * call.c (joust): Remove COND_EXPR hack.
3620
4bdd26e6
AH
36212001-11-25 Aldy Hernandez <aldyh@redhat.com>
3622
195a5def 3623 * search.c (lookup_base_r): Declare bk in variable declaration
4bdd26e6 3624 space.
33bd39a2 3625
338d90b8
NS
36262001-11-25 Nathan Sidwell <nathan@codesourcery.com>
3627
3628 PR g++/3145
3629 * class.c (build_vbase_pointer): Remove.
3630 (build_vbase_path): Remove.
3631 (build_base_path): New function.
3632 * cp-tree.h (base_access, base_kind): New enumerations.
3633 (build_base_path): Declare.
3634 (convert_pointer_to_real): Remove.
3635 (convert_pointer_to): Remove.
3636 (lookup_base): Declare.
3637 (convert_pointer_to_vbase): Remove.
3638 * call.c (build_scoped_method_call): Use lookup_base &
3639 build_base_path instead of convert_pointer_to_real,
3640 get_base_distance & get_binfo.
3641 (build_over_call): Likewise.
3642 * cvt.c (cp_convert_to_pointer): Likewise.
3643 (convert_to_pointer_force): Likewise.
3644 (build_up_reference): Likewise.
3645 (convert_pointer_to_real): Remove.
3646 (convert_pointer_to): Remove.
3647 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
3648 instead of convert_pointer_to_vbase & build_vbase_path.
3649 (emit_base_init): Use build_base_path instead of
3650 convert_pointer_to_real.
3651 (expand_virtual_init): Lose unrequired conversions.
3652 (resolve_offset_ref): Use lookup_base and build_base_path
3653 instead of convert_pointer_to.
3654 * rtti.c (build_dynamic_cast_1): Use lookup_base &
3655 build_base_path instead of get_base_distance & build_vbase_path.
3656 * search.c (get_vbase_1): Remove.
3657 (get_vbase): Remove.
3658 (convert_pointer_to_vbase): Remove.
07f521fc 3659 (lookup_base_r): New function.
338d90b8
NS
3660 (lookup_base): New function.
3661 * typeck.c (require_complete_type): Use lookup_base &
3662 build_base_path instead of convert_pointer_to.
3663 (build_component_ref): Likewise.
3664 (build_x_function_call): Likewise.
3665 (get_member_function_from_ptrfunc): Likewise.
3666 (build_component_addr): Likewise.
3667 * typeck2.c (build_scoped_ref): Likewise.
3668
89d684bb
BM
36692001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3670
3671 * cp-tree.h (CP_TYPE_QUALS): Removed.
3672 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
33bd39a2 3673 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
89d684bb 3674 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
33bd39a2 3675 * dump.c (cp_dump_tree): Use void* dump_info argument to match
89d684bb
BM
3676 lang-hooks prototype.
3677 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
3678 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
3679 CP_TYPE_QUALS changed to cp_type_quals.
3680 * Make-lang.in: References to c-dump.h changed to tree-dump.h.
3681 (CXX_C_OBJS): Remove c-dump.o.
3682
12eb9f93 36832001-11-21 Mark Mitchell <mark@codesourcery.com>
2d2e8123
MM
3684
3685 PR c++/3637
12eb9f93
MM
3686 * pt.c (lookup_template_class): Ensure that all specializations
3687 are registered on the list corresponding to the most general
3688 template.
3689
36902001-11-20 Mark Mitchell <mark@codesourcery.com>
3691
2d2e8123 3692 * call.c (non_reference): Add documentation.
33bd39a2 3693 (convert_class_to_reference): Do not strip reference types
2d2e8123
MM
3694 from conversion operators.
3695 (maybe_handle_ref_bind): Simplify.
3696 (compare_ics): Correct handling of references.
3697
78a40378
MM
36982001-11-19 John Wilkinson <johnw@research.att.com>
3699
3700 * dump.c (dump_op): New function.
3701 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use
3702 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
3703 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
33bd39a2 3704
78a40378
MM
37052001-11-19 Mark Mitchell <mark@codesourcery.com>
3706
3707 PR4629
3708 * semantics.c (finish_sizeof): Make sure that expression created
3709 while processing a template do not have a type.
3710 (finish_alignof): Likewise.
3711 * typeck.c (c_sizeof): Likewise.
3712 (expr_sizeof): Likewise.
3713
22703ccc
NB
37142001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
3715
3716 * lex.c (cxx_finish): Call c_common_finish.
3717 (finish_parse): Remove.
3718
b3faacfd
KL
37192001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3720
3721 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
3722 when displaying error message about missing array bounds.
3723
873ff987
KL
37242001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3725
3726 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
3727 CONST_CAST_EXPR.
3728 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
3729
08f3a861
NB
37302001-11-16 Neil Booth <neil@daikokuya.demon.co.uk>
3731
3732 * cp-tree.h (print_class_statistics): Restore.
3733
8a2b77e7
JM
37342001-11-15 Jason Merrill <jason@redhat.com>
3735
3b1a4132
JM
3736 * method.c (use_thunk): Don't emit debugging information for thunks.
3737
8a2b77e7
JM
3738 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
3739 * decl.c (make_typename_type): Handle getting a class template.
3740 * search.c (lookup_field_r): A class template is good enough for
3741 want_type.
3742
3743 * call.c (convert_like_real): Only use cp_convert for the bad part.
3744 (standard_conversion): Also allow bad int->enum.
3745 * typeck.c (ptr_reasonably_similar): Also allow functions to
3746 interconvert. Pointers to same-size integers are reasonably
3747 similar.
3748
3749 * cvt.c (convert_to_void): If we build a new COND_EXPR, always
3750 give it void type.
3751
36a68fe7
NS
37522001-11-15 Nathan Sidwell <nathan@codesourcery.com>
3753
3754 PR g++/3154
3755 * init.c (sort_base_init): Remove unreachable code.
3756 (expand_member_init): Adjust comment to reflect reality. Simplify
3757 and remove unreachable code.
3758
f5e99456
NB
37592001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
3760
3761 * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
3762 (cxx_init): Update prototype.
3763 * decl.c (init_decl_processing): Rename. Move null node init
3764 to its creation time.
3765 * lex.c (cxx_init_options): Update.
3766 (cxx_init): Combine with old init_parse; also call
3767 cxx_init_decl_processing.
3768
fe5b6c1c
RS
37692001-11-14 Richard Sandiford <rsandifo@redhat.com>
3770
8a2b77e7
JM
3771 * decl.c (check_initializer): Try to complete the type of an
3772 array element before checking whether it's complete. Don't
3773 complain about arrays with complete element types but an
3774 unknown size.
3775 (cp_finish_decl): Build the hierarchical constructor before
3776 calling maybe_deduce_size_from_array_init.
fe5b6c1c 3777
77bd67cb
JM
37782001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
3779
3780 * Make-lang.in: Change all uses of $(manext) to $(man1ext).
3781
b02922a4
NS
37822001-11-13 Nathan Sidwell <nathan@codesourcery.com>
3783
3784 PR g++/4206
3785 * parse.y (already_scoped_stmt): Remove.
3786 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
3787
abfc1ef6
L
37882001-11-12 H.J. Lu <hjl@gnu.org>
3789
195a5def 3790 * cvt.c (ocp_convert): Don't warn the address of a weak
abfc1ef6
L
3791 function is always `true'.
3792
5d69f816
NB
37932001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
3794
3795 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
3796 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
3797 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
3798 * cp-tree.h (print_class_statistics): Remove.
3799 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
3800 cxx_print_identifier, cxx_set_yydebug): New.
3801 * lex.c (set_yydebug): Rename c_set_yydebug.
3802 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
3803 lang_print_xnode): Rename.
3804 * tree.c (print_lang_statistics): Rename.
3805
4fdc14ca
KG
38062001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3807
3808 * class.c (dump_array): Fix format specifier warning.
3809
3ac88239
NB
38102001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
3811
3812 * cp-lang.c (LANG_HOOKS_NAME): Override.
3813 (struct lang_hooks): Constify.
3814 * lex.c (cxx_init_options): Update.
3815 (lang_identify): Remove.
33bd39a2 3816 * parse.y (language_string): Remove.
3ac88239 3817
b21d216c
AF
38182001-11-08 Andreas Franck <afranck@gmx.de>
3819
3820 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
3821 DEMANGLER_CROSS_NAME): Handle program_transform_name the way
3822 suggested by autoconf.
3823 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
3824 (c++.install-common): Use the transformed target alias names.
3825
d23c55c2
NB
38262001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
3827
3828 * Make-lang.in: Update.
3829 * cp-lang.c: Include langhooks-def.h.
3830
2a2b1d56
KL
38312001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3832
3833 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
3834
76648a8b
KG
38352001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3836
3837 * lex.c (copy_lang_type): Add static prototype.
3838
fccef71e
KL
38392001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3840
3841 * pt.c (unify): Handle SCOPE_REF.
3842
19989812
JJ
38432001-11-01 Jakub Jelinek <jakub@redhat.com>
3844
3845 * tree.c (cp_copy_res_decl_for_inlining): Adjust
3846 DECL_ABSTRACT_ORIGIN for the return variable.
3847
5b7874aa
ZW
38482001-10-31 Zack Weinberg <zack@codesourcery.com>
3849
3850 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
3851
306ef644
JM
38522001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
3853
3854 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
3855 semantics.c, spew.c: Fix spelling errors.
3856
76543000
KL
38572001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3858
3859 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
3860
37207ee7
ZW
38612001-10-25 Zack Weinberg <zack@codesourcery.com>
3862
3863 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
3864 pop_everything.
3865
8ac61af7
RK
3866Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3867
3868 * cp-lang.c (cxx_get_alias_set): New function.
3869 Point LANG_HOOKS_GET_ALIAS_SET to it.
3870
f1e09fa2 38712001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
b8c6534b
KL
3872
3873 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
3874 * cp-tree.h (make_unbound_class_template): Prototype new function.
3875 * decl.c (make_unbound_class_template): New function.
3876 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
3877 * error.c (dump_type): Likewise.
3878 * mangle.c (write_type): Likewise.
3879 * parse.y (template_parm): Likewise.
3880 (template_argument): Use make_unbound_class_template.
3881 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
3882 (tsubst): Likewise.
3883 (tsubst_copy): Likewise.
3884 (unify): Likewise.
3885 * tree.c (walk_tree): Likewise.
3886 * typeck.c (comptypes): Likewise.
3887
0df6c2c7
KG
38882001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3889
3890 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
3891 extra calls into fewer ones.
3892
97055d5c
AO
38932001-10-18 Alexandre Oliva <aoliva@redhat.com>
3894
3895 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
3896 Warn when merging inline with attribute noinline.
3897 (start_decl, start_function): Warn if inline and attribute
3898 noinline appear in the same declaration.
3899
b5823a44
L
39002001-10-16 H.J. Lu <hjl@gnu.org>
3901
3902 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
3903 for tree checking disabled.
3904
dc8ad298
HPN
39052001-10-16 Hans-Peter Nilsson <hp@axis.com>
3906
3907 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
3908 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
3909
d9f818d9
RS
39102001-10-15 Richard Sandiford <rsandifo@redhat.com>
3911
3912 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
3913 (unify): Only handle MINUS_EXPR specially if the above flag is set
3914 and the subtracted constant is 1. Clear the flag on recursive calls.
3915 Set it when unifying the maximum value in an INTEGER_TYPE's range.
3916
e1be26f4
RS
39172001-10-15 Richard Sandiford <rsandifo@redhat.com>
3918
3919 * decl.c (bad_specifiers): Don't allow exception specifications
3920 on any typedefs.
3921
a5da89c6
NB
39222001-10-14 Neil Booth <neil@daikokuya.demon.co.uk>
3923
3924 * cp/lex.c (init_cp_pragma): Similarly.
3925
4f96ff63
KL
39262001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3927
3928 * pt.c (lookup_template_class): Build complete template arguments
3929 for BOUND_TEMPLATE_TEMPLATE_PARM.
3930
11e74ea6
KL
39312001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3932
3933 * cp-tree.h (TYPE_BINFO): Update comment.
3934 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
3935 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
3936 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
3937 (copy_type): Prototype new function.
3938 * lex.c (copy_lang_decl): Gather tree node statistics.
3939 (copy_lang_type): New function.
3940 (copy_type): Likewise.
3941 (cp_make_lang_type): Create lang_type for
3942 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE
3943 and BOUND_TEMPLATE_TEMPLATE_PARM.
3944 * pt.c (tsubst): Use copy_type instead of copy_node.
3945 * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
3946
f5d47abd
KL
39472001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3948
3949 * pt.c (determine_specialization): Ignore functions without
3950 DECL_TEMPLATE_INFO.
3951
e60505a5
NS
39522001-10-12 Nathan Sidwell <nathan@codesourcery.com>
3953
3954 PR g++/4476
3955 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
3956
6f32162a
JM
39572001-10-11 Jason Merrill <jason_merrill@redhat.com>
3958
3959 * typeck2.c (store_init_value): Don't re-digest a bracketed
3960 initializer.
3961
3962 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
3963 ANON_AGGR_TYPE_P.
3964
4a8d0c9c
RH
39652001-10-11 Richard Henderson <rth@redhat.com>
3966
3967 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
3968 of an asm statement.
3969 (build_vtbl_ref_1): Split out from build_vtbl_ref.
3970 (build_vfn_ref): Use it to handle vtable descriptors before
3971 calling build_vtable_entry_ref.
3972 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
3973
84b72302
RH
39742001-10-10 Richard Henderson <rth@redhat.com>
3975
37207ee7 3976 * parse.y (asm_operand): Allow named operands.
84b72302
RH
3977 * semantics.c (finish_asm_stmt): Tweek for changed location
3978 of the operand constrant.
3979
48c8b0be 39802001-10-09 Jason Merrill <jason_merrill@redhat.com>
72a08131
JM
3981
3982 * call.c (standard_conversion): Add bad conversion between
3983 integers and pointers.
3984 (convert_like_real): Don't use convert_for_initialization for bad
3985 conversions; complain here and use cp_convert.
3986 (build_over_call): Don't handle bad conversions specially.
3987 (perform_implicit_conversion): Allow bad conversions.
3988 (can_convert_arg_bad): New fn.
3989 * cp-tree.h: Declare it.
3990 * typeck.c (convert_for_assignment): Use it.
3991 (ptr_reasonably_similar): Any target type is similar to void.
3992
19551f29
AO
39932001-10-08 Alexandre Oliva <aoliva@redhat.com>
3994
3995 * Make-lang.in (CXX_OBJS): Added cp-lang.o.
3996 (cp/cp-lang.o): New rule.
3997 * cp-tree.h: Declare hooks.
3998 * tree.c: Make hooks non-static.
3999 (init_tree): Don't initialize hooks here.
4000 * lex.c: Likewise. Move definition of lang_hooks to...
4001 * cp-lang.c: ... new file.
4002
31ed8fea
RH
40032001-10-08 Richard Henderson <rth@redhat.com>
4004
4005 * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
4006 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
4007
8b60264b
KG
40082001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4009
4010 * class.c (build_vtable_entry_ref): Const-ify.
4011 * decl.c (predefined_identifier,
37207ee7 4012 initialize_predefined_identifiers): Likewise.
8b60264b
KG
4013 * init.c (build_new_1): Likewise.
4014 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
4015 Likewise.
4016
bc4c7159
AO
40172001-10-05 Alexandre Oliva <aoliva@redhat.com>
4018
4019 * optimize.c (struct inline_data): Moved to ../tree-inline.c.
4020 (INSNS_PER_STMT): Likewise.
4021 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
4022 (copy_body, initialize_inlined_parameters): Likewise.
4023 (declare_return_variable, inlinable_function_p): Likewise.
4024 (expand_call_inline, expand_calls_inline): Likewise.
4025 (optimize_inline_calls, clone_body): Likewise.
4026 * tree.c (walk_tree): Moved to ../tree-inline.c.
4027 (walk_tree_without_duplicates): Likewise.
4028 (copy_tree_r, remap_save_expr): Likewise.
4029
25af8512
AO
40302001-10-04 Alexandre Oliva <aoliva@redhat.com>
4031
4032 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
4033 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
4034 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
4035 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
4036 (flag_inline_trees): Moved declaration to ../tree-inline.h.
4037 (walk_tree): Moved declaration to ../tree-inline.h.
4038 (walk_tree_without_duplicates, copy_tree_r): Likewise.
4039 (remap_save_expr): Likewise.
4040 * decl.c: Include tree-inline.h.
4041 (lang_mark_tree): Don't mark inlined_fns.
4042 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
4043 * optimize.c: Include tree-inline.h.
4044 (optimize_inline_calls): Move declaration to ../tree.h, as
4045 non-static.
4046 (remap_decl): Use language-independent constructs and hooks.
4047 (remap_block, copy_body_r, declare_return_variable): Likewise.
4048 (inlinable_function_p): Likewise. Don't test for
4049 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
4050 no longer language-specific.
4051 (optimize_inline_calls): Likewise. Make it non-static. Moved
4052 call of dump_function to...
4053 (optimize_function): Here...
4054 (clone_body): New function, extracted from...
4055 (maybe_clone_body): ... here. Build decl_map locally and pass
4056 it on to clone_body.
4057 * pt.c, semantics.c: Include tree-inline.h.
4058 * tree.c: Likewise.
4059 (cp_walk_subtrees): New language-specific hook for tree inlining.
4060 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
4061 cp_is_overload_p, cp_auto_var_in_fn_p,
4062 cp_copy_res_decl_for_inlining): Likewise.
4063 (walk_tree): Move language-specific constructs into...
4064 (cp_walk_subtrees): this new function.
4065 (copy_tree_r): Use language-independent constructs and hooks.
4066 (init_tree): Initialize tree inlining hooks.
4067 (remap_save_expr): Adjust prototype so that the declaration
4068 does not require the definition of splay_tree.
4069
6a4af81f
JDA
40702001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
4071
4072 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
4073 to build the declaration instead of the declaration itself.
4074
0caee1c6
JM
40752001-10-02 Jason Merrill <jason_merrill@redhat.com>
4076
48c8b0be
JM
4077 * decl2.c (cxx_decode_option): Add 'else'.
4078
0caee1c6
JM
4079 * spew.c (end_input): No longer static.
4080 * cp-tree.h: Declare it.
4081 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
4082
80a497e4
JM
40832001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
4084
4085 * call.c (build_over_call), typeck.c (build_function_call_real):
4086 Pass type attributes to check_function_format rather than name or
4087 assembler name. Don't require there to be a name or assembler
4088 name to check formats.
4089
6431177a
JM
40902001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
4091
4092 * decl.c (init_decl_processing): Don't call
4093 init_function_format_info. Initialize lang_attribute_table
4094 earlier.
4095 (builtin_function): Call decl_attributes.
4096 (insert_default_attributes): New.
4097
55b3d665
JM
40982001-10-01 Jason Merrill <jason_merrill@redhat.com>
4099
4100 * decl.c (grokdeclarator): Copy array typedef handling from C
4101 frontend.
4102
4103 * decl.c (grokdeclarator): Copy too-large array handling from C
4104 frontend.
4105
9f57ca19
AO
41062001-09-29 Alexandre Oliva <aoliva@redhat.com>
4107
4108 * config-lang.in (target_libs): Added target-gperf, so that we
4109 don't try to build it if C++ is disabled.
4110
749ced52
ZW
41112001-09-23 Zack Weinberg <zack@codesourcery.com>
4112
4113 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
4114 (cp/errfn.o): Delete rule.
4115 (cp/error.o): Depend on flags.h.
4116 * errfn.c: Delete file.
4117 * cp-tree.h: Declare warn_deprecated. Remove definitions of
4118 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
4119 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
4120 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
4121 internal_error respectively. Make cp_deprecated into a macro.
4122 Don't define cp_printer typedef or declare cp_printers.
4123 * error.c: Include flags.h.
4124 Delete: struct tree_formatting_info, print_function_argument_list,
4125 print_declaration, print_expression, print_function_declaration,
4126 print_function_parameter, print_type_id, print_cv_qualifier_seq,
4127 print_type_specifier_seq, print_simple_type_specifier,
4128 print_elaborated_type_specifier, print_rest_of_abstract_declarator,
4129 print_parameter_declaration_clause, print_exception_specification,
4130 print_nested_name_specifier, and definition of cp_printers.
4131 (locate_error): New function.
4132 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
4133 rewritten in terms of locate_error and diagnostic.c.
4134 (cp_tree_printer): Rename cp_printer; wire up to *_to_string
4135 instead of deleted print_* routines. Handle %C, %L, %O, %Q also.
4136 (init_error): Adjust to match.
4137
bb9f8221
RK
4138Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4139
4140 * Make-lang.in (CXX_C_OBJS): Add attribs.o.
4141
67231816
RH
41422001-09-21 Richard Henderson <rth@redhat.com>
4143
4144 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
4145 (build_vtbl_initializer): Likewise.
4146 (build_vfn_ref): New.
4147 * cp-tree.h: Declare it.
4148 * call.c (build_over_call): Use it.
4149 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
4150 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
4151
c9574c9f
R
4152Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com>
4153
4154 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
4155
91d231cb
JM
41562001-09-21 Joseph S. Myers <jsm28@cam.ac.uk>
4157
4158 Table-driven attributes.
4159 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
4160 * decl2.c (cplus_decl_attributes): Only take one attributes
4161 parameter.
4162 * cp-tree.c (cplus_decl_attributes): Update prototype.
4163 * class.c (finish_struct), decl.c (start_decl, start_function),
4164 decl2.c (grokfield), friend.c (do_friend), parse.y
4165 (parse_bitfield): Update calls to cplus_decl_attributes.
4166 * decl.c (grokdeclarator): Take a pointer to a single ordinary
4167 attribute list.
4168 * decl.h (grokdeclarator): Update prototype.
4169 * decl2.c (grokfield): Take a single ordinary attribute list.
4170 * friend.c (do_friend): Likewise.
4171 * decl.c (shadow_tag, groktypename, start_decl,
4172 start_handler_parms, grokdeclarator, grokparms, start_function,
4173 start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
4174 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
4175 (process_template_parm, do_decl_instantiation): Pass single
4176 ordinary attribute lists around.
4177 * decl.c (grokdeclarator): Correct handling of nested attributes.
4178 Revert the patch
4179 1998-10-18 Jason Merrill <jason@yorick.cygnus.com>
4180 * decl.c (grokdeclarator): Embedded attrs bind to the right,
4181 not the left.
4182 .
4183 * cp-tree.h (cp_valid_lang_attribute): Remove declaration
4184 (cp_attribute_table): Declare.
4185 * decl.c (valid_lang_attribute): Don't define.
4186 (lang_attribute_table): Define.
4187 (init_decl_processing): Initialize lang_attribute_table instead of
4188 valid_lang_attribute.
4189 * tree.c (cp_valid_lang_attribute): Remove.
4190 (handle_java_interface_attribute, handle_com_interface_attribute,
4191 handle_init_priority_attribute): New functions.
4192 (cp_attribute_table): New array.
4193 * decl2.c (import_export_class): Don't use
4194 targetm.valid_type_attribute.
4195
a1bda5f1
GDR
41962001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
4197
e6b9638b
JM
4198 * Make-lang.in (cp/error.o): Depend on real.h
4199 * error.c: #include "real.h"
a1bda5f1 4200
cb6edbcb
KG
42012001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4202
4203 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
4204 xmalloc/strcpy/strcat.
4205
83182544
KG
42062001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4207
4208 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
4209 Const-ification.
4210 * pt.c (tsubst_decl): Likewise.
4211
40008eda
KG
42122001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4213
4214 * decl2.c (lang_f_options): Const-ification.
4215 * lex.c (cplus_tree_code_name): Likewise.
4216 * spew.c (yyerror): Likewise.
4217
39e78d8b
NS
42182001-09-06 Nathan Sidwell <nathan@codesourcery.com>
4219
4220 PR c++/3986
4221 * class.c (force_canonical_binfo_r): Check & move an indirect
4222 primary base first.
4223 (force_canonical_binfo): Check that it's not already
4224 canonical.
4225 (mark_primary_virtual_base): Remove BINFO parameter.
4226 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
4227
6d0a3f67
NS
42282001-09-06 Nathan Sidwell <nathan@codesourcery.com>
4229
4230 Remove TYPE_NONCOPIED_PARTS.
4231 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
4232 CLASSTYPE_PURE_VIRTUALS.
4233 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
4234 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
72a08131 4235 (layout_class_type): Don't call fixup_inline_methods here ...
6d0a3f67
NS
4236 (finish_struct_1): ... call it here.
4237
4f8e1232
MM
42382001-09-04 Mark Mitchell <mark@codesourcery.com>
4239
4240 * decl.c (duplicate_decls): Remove code deadling with
4241 DECL_SAVED_INSNS.
4242 * decl2.c (finish_file): Likewise.
4243 * pt.c (instantiate_decl): Likewise.
4244 * semantics.c (expand_body): Don't defer local functions if
4245 they wouldn't be deferred for some other reason. Don't
4246 generate RTL for functions that will not be emitted.
4247 (genrtl_start_function): Remove code deadling with
4248 DECL_SAVED_INSNS.
4249 (genrtl_finish_function): Likewise.
4250
da86f08f
NS
42512001-09-04 Nathan Sidwell <nathan@codesourcery.com>
4252
4253 PR c++/4203
4254 * call.c (build_over_call): Do not optimize any empty base
4255 construction.
4256
38066e83
KL
42572001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4258
4259 * error.c (dump_template_decl): Output template parameters
4260 together with their specifiers.
4261 Output `class' prefix for template template parameter.
4262 (dump_decl): Fix formatting.
4263
598e9ba5 42642001-08-30 Kurt Garloff <garloff@suse.de>
749ced52 4265
598e9ba5
KG
4266 * optimize.c (inlinable_function_p): Allow only smaller single
4267 functions. Halve inline limit after reaching recursive limit.
749ced52 4268
f232e4a5
JR
42692001-08-30 Joern Rennecke <amylaar@redhat.com>
4270 Jason Merrill <jason_merrill@redhat.com>
4271
4272 * class.c (build_vtable_entry_ref): Subtract in char*, not
4273 ptrdiff_t.
4274
0213a355
JM
42752001-08-23 Jason Merrill <jason_merrill@redhat.com>
4276
4277 * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
4278 (build_cplus_array_type): Use cp_build_qualified_type, not
4279 TYPE_MAIN_VARIANT, to get an unqualified version.
4280
4281 * decl2.c (grok_alignof): Lose.
4282 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
4283 * typeck.c (c_alignof): Lose.
4284 * semantics.c (finish_sizeof, finish_alignof): New.
4285 * parse.y: Use them.
4286 * cp-tree.h: Declare them.
4287
fd10dd09
JM
42882001-08-22 Jason Merrill <jason_merrill@redhat.com>
4289
4290 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
4291 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
4292 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
4293
baeb4732
JJ
42942001-08-19 Jakub Jelinek <jakub@redhat.com>
4295
4296 * typeck2.c (add_exception_specifier): Only require complete type if
4297 not in processing template declaration.
4298
1c0cc57e
KG
42992001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4300
4301 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
4302 GNU_xref_start_scope and GNU_xref_end_scope.
4303
4304 * tree.c (TYPE_HASH): Moved to ../tree.h.
4305
9a52d09b
MM
43062001-08-16 Mark Mitchell <mark@codesourcery.com>
4307
4308 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
4309 on COMPOUND_EXPRs.
4310
b5d1cbd2
RH
43112001-08-14 Richard Henderson <rth@redhat.com>
4312
4313 * class.c, cp-tree.h (build_vfn_ref): Remove.
4314 * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
4315
63d6f87a
MM
43162001-08-13 Mark Mitchell <mark@codesourcery.com>
4317
4318 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
4319 empty class assignment as having side-effects to avoid
4320 spurious warnings.
4321
e78d8e51
ZW
43222001-08-13 Zack Weinberg <zackw@panix.com>
4323
4324 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
4325 * except.c: Include libfuncs.h.
4326
a60af04a
GDR
43272001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
4328
4329 * decl.c (grokdeclarator): Clarify diagnostic message.
4330
3605b283
KL
43312001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4332
4333 * decl2.c (do_nonmember_using_decl): Replace using directive
4334 with using declaration in the error message.
4335
4d5f3fbd
KL
43362001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4337
4338 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
4339 criterion to avoid rebuilding expression tree instead of
4340 processing_template_decl.
4341
07b2f2fd
JM
43422001-08-07 Jason Merrill <jason_merrill@redhat.com>
4343
4344 Support named return value optimization for inlines, too.
4345 * decl.c (finish_function): Nullify returns here.
4346 * semantics.c (genrtl_start_function): Not here.
4347 (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
4348 (nullify_returns_r): No longer static. Just clear RETURN_EXPR.
4349 Also nullify the CLEANUP_STMT for the nrv.
4350 * cp-tree.h: Declare it.
4351 * optimize.c (declare_return_variable): Replace the nrv with the
4352 return variable.
4353 * typeck.c (check_return_expr): Be more flexible on alignment check.
4354 Ignore cv-quals when checking for a matching type.
4355
2cc07db4
RH
43562001-08-09 Richard Henderson <rth@redhat.com>
4357
4358 * decl2.c (finish_objects): Use target hooks instead of
4359 assemble_constructor and assemble_destructor.
4360
0ca179b2
JDA
43612001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
4362
4363 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
4364
0830ae44
NS
43652001-08-07 Nathan Sidwell <nathan@codesourcery.com>
4366
4367 PR c++/3820
4368 Stop using TYPE_NONCOPIED_PARTS.
4369 * call.c (build_over_call): Be careful when copy constructing
4370 or assigning to an empty class.
4371 * class.c (check_bases_and_members): It has a
4372 COMPLEX_ASSIGN_REF if it has a vptr.
4373 (layout_class_type): Don't add empty class padding to
4374 TYPE_NONCOPIED_PARTS.
4375 (finish_struct_1): Don't add the VFIELD either.
4376 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
4377 initialization.
4378
59a13e0f
JM
43792001-08-07 Jason Merrill <jason_merrill@redhat.com>
4380
4381 * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
4382
47907859
RH
43832001-08-06 Richard Henderson <rth@redhat.com>
4384
4385 * decl2.c (finish_objects): Pass a symbol_ref and priority to
4386 assemble_{constructor,destructor}. Remove priority handling.
4387
eac69b8a
GDR
43882001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
4389
4390 Don't allow template-id in using-declaration.
4391 * decl2.c (validate_nonmember_using_decl): Handle template-ids.
4392 (do_class_using_decl): Likewise.
4393
ef6e958a
NB
43942001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk>
4395
4396 * cp/spew.c (read_token): No need to pop buffers.
4397
dff94ad7
SS
43982001-08-02 Stan Shebs <shebs@apple.com>
4399
4400 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
4401 (fnaddr_from_vtable_entry): Remove decl.
4402 * method.c (use_thunk): Update comment.
4403
026c3f13
AC
44042001-08-01 Andrew Cagney <ac131313@redhat.com>
4405
4406 * repo.c (get_base_filename): Change return value to const char
4407 pointer.
4408
1dbb6023
NS
44092001-08-02 Nathan Sidwell <nathan@codesourcery.com>
4410
4411 Kill -fhonor-std.
4412 * NEWS: Document.
4413 * cp-tree.h (flag_honor_std): Remove.
4414 (CPTI_FAKE_STD): Remove.
4415 (std_node): Remove comment about it being NULL.
4416 (fake_std_node): Remove.
4417 * decl.c (in_fake_std): Remove.
4418 (walk_namespaces_r): Remove fake_std_node check.
4419 (push_namespace): Remove in_fake_std code.
4420 (pop_namespace): Likewise.
4421 (lookup_name_real): Remove fake_std_node check.
4422 (init_decl_processing): Always create std_node. Always add
4423 std:: things there.
4424 (builtin_function): Always put non '_' fns in std.
4425 * decl2.c (flag_honor_std): Remove.
4426 (lang_f_options): Remove honor-std.
4427 (unsupported_options): Add honor-std.
4428 (set_decl_namespace): Remove fake_std_node check.
4429 (validate_nonmember_using_decl): Likewise.
4430 (do_using_directive): Likewise.
4431 (handle_class_head): Likewise.
4432 * dump.c (cp_dump_tree): Likewise.
4433 * except.c (init_exception_processing): Adjust.
4434 * init.c (build_member_call): Remove fake_std_node check.
4435 (build_offset_ref): Likewise.
4436 * lang-options.h: Remove -fhonor-std, -fno-honor-std.
4437 * rtti.c (init_rtti_processing): Adjust.
4438
6ad7895a
APB
44392001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
4440
4441 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
4442 operand while calling cp_tree_equal.
4443
befe7c61
NS
44442001-07-31 Nathan Sidwell <nathan@codesourcery.com>
4445
4446 The 3.0 ABI no longer has vbase pointer fields.
4447 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
4448 FORMAT_VBASE_NAME): Remove.
4449 * method.c (do_build_copy_constructor): Adjust.
4450 (do_build_assign_ref): Adjust.
4451 * search.c (lookup_field_r): Adjust.
4452 * typeck.c (build_component_ref): Adjust.
4453
4454 The 3.0 ABI always has a vtable pointer at the start of every
4455 polymorphic class.
4456 * rtti.c (build_headof_sub): Remove.
4457 (build_headof): Adjust.
4458 (get_tinfo_decl_dynamic): No need to check flag_rtti
4459 here. Adjust.
4460 (create_real_tinfo_var): Explain why we need a hidden name.
4461
20dde49d
NS
44622001-07-31 Nathan Sidwell <nathan@codesourcery.com>
4463
4464 PR c++/3631
4465 * class.c (update_vtable_entry_for_fn): The fixed adjustment
4466 of a virtual thunk should be from declaring base.
4467
b7ad2f8b
NS
44682001-07-31 Nathan Sidwell <nathan@codesourcery.com>
4469
4470 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
4471 the shared virtual base, so preserving inheritance graph order.
4472
57cb6d52
AJ
44732001-07-30 Andreas Jaeger <aj@suse.de>
4474
749ced52 4475 * decl2.c: Remove unused var global_temp_name_counter.
57cb6d52 4476
594280a3
RH
44772001-07-28 Richard Henderson <rth@redhat.com>
4478
4479 * method.c (pending_inlines): Remove.
4480
0ab142b0
NS
44812001-07-27 Nathan Sidwell <nathan@codesourcery.com>
4482
4483 * class.c (mark_primary_virtual_base): Don't adjust base
4484 offsets here.
4485 (dfs_unshared_virtual_bases): Adjust them here.
4486 (mark_primary_bases): Explain why we adjust at the end.
4487
d60d223b
NS
44882001-07-27 Nathan Sidwell <nathan@codesourcery.com>
4489
4490 * class.c (finish_struct_1): When copying the primary base's
4491 VFIELD, make sure we find it is at offset zero.
4492
db3ef87b
KL
44932001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4494
4495 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
4496 tsubst_expr for default template arguments.
4497
312b7c9d
NS
44982001-07-26 Nathan Sidwell <nathan@codesourcery.com>
4499
d60d223b 4500 PR c++/3621
312b7c9d 4501 * spew.c (yylex): Only copy the token's lineno, if it is
838dfd8a 4502 nonzero.
312b7c9d 4503
648c2206
NS
45042001-07-26 Nathan Sidwell <nathan@codesourcery.com>
4505
4506 PR c++/3624
4507 * call.c (resolve_args): Simplify, call
4508 convert_from_reference.
4509 (build_new_op): Resolve and convert from reference ARG1
4510 earlier. Adjust ARG2 & ARG3 resolve and conversion.
4511
969fd501
NS
45122001-07-26 Nathan Sidwell <nathan@codesourcery.com>
4513
4514 * decl.c (last_function_parm_tags): Remove.
4515 (current_function_parm_tags): Remove.
4516 (init_decl_processing): Adjust.
4517 (start_function): Adjust.
4518 (store_parm_decls): Adjust.
4519
4520 PR c++/3152
4521 * decl.c (grokdeclarator): Detect when a function typedef is
4522 declaring a function, and create last_function_parms correctly.
4523
08ac397c 45242001-07-25 Jason Merrill <jason_merrill@redhat.com>
749ced52 4525
08ac397c
JM
4526 * call.c (joust): Only prefer a non-builtin candidate to a builtin
4527 one if they have the same signature.
4528
4529 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on
4530 it rather than toplevel_bindings_p. Give it a mangled name if static.
4531 (convert_to_reference): Adjust.
4532 * decl2.c (get_temp_name): Lose.
4533 * mangle.c (mangle_ref_init_variable): New fn.
4534 (mangle_guard_variable): Strip the ref-init header.
4535 * cp-tree.h: Adjust.
4536 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
4537 initializer.
4538 (grok_reference_init): Always use DECL_INITIAL.
4539
40260429
NS
45402001-07-25 Nathan Sidwell <nathan@codesourcery.com>
4541
4542 PR c++/3416
4543 * call.c (build_conditional_expr): Recheck args after
4544 conversions.
4545 * cp-tree.h (build_conditional_expr): Move to correct file.
4546 * typeck.c (decay_conversion): Diagnose any unknown types
4547 reaching here.
4548 (build_binary_op): Don't do initial decay or default
4549 conversions on overloaded functions.
4550 (build_static_cast): Don't do a decay conversion here.
4551
ab085207
NS
45522001-07-25 Nathan Sidwell <nathan@codesourcery.com>
4553
4554 PR c++/3543
4555 * typeck.c (condition_conversion): Resolve an OFFSET_REF.
4556 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
4557
0abe00c5
NS
45582001-07-25 Nathan Sidwell <nathan@codesourcery.com>
4559
4560 * class.c (build_vtbl_or_vbase_field): Remove, move into ...
4561 (create_vtbl_ptr): ... here.
4562
90b1ca2f
NS
45632001-07-25 Nathan Sidwell <nathan@codesourcery.com>
4564
4565 * class.c (build_vbase_offset_vbtl_entries): Look for
4566 non-primary base of which we are a sub vtable.
4567
cfe5dc31
PE
45682001-07-24 Phil Edwards <pme@sources.redhat.com>
4569
4570 * semantics.c (finish_this_expr): Remove unused code.
4571
7f54a851
NS
45722001-07-24 Nathan Sidwell <nathan@codesourcery.com>
4573
4574 Simplify rtti, now we've only one ABI.
4575 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
4576 CPTI_TINFO_VAR_ID.
4577 (tinfo_decl_id, tinfo_var_id): Remove.
4578 (get_typeid_1): Remove.
4579 * rtti.c
4580 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
4581 (typeid_ok_p): New function.
4582 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
4583 (get_tinfo_decl): Remove old abi documentation.
4584 (tinfo_from_decl): Remove.
4585 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
4586 (get_typeid_1): Remove.
4587 (get_base_offset): Remove.
4588 (synthesize_tinfo_var): Absorb get_base_offset.
4589 (create_real_tinfo_var): Don't use tinfo_decl_id.
4590
18fee3ee
GS
45912001-07-23 Graham Stott <grahams@redhat.com>
4592
d30d6e7a 4593 * cp/class.c (type_requires_array_cookie): Fix use of uninitialized
18fee3ee
GS
4594 variable has_two_argument_delete_p.
4595
c4372ef4
NS
45962001-07-21 Nathan Sidwell <nathan@codesourcery.com>
4597
4598 Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
4599 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
4600 (CPTI_INDEX_IDENTIFIER): Remove.
4601 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
4602 (delta2_identifier): Remove.
4603 (index_identifier): Remove.
4604 (pfn_or_delta2_identifier): Remove.
4605 (flag_vtable_thunks): Remove.
4606 (VTABLE_DELTA2_NAME): Remove.
4607 (VTABLE_INDEX_NAME): Remove.
4608 (FNADDR_FROM_VTABLE_ENTRY): Adjust.
4609 (vfunc_ptr_type_node): Adjust.
4610 (VTABLE_NAME_PREFIX): Adjust.
4611 (build_vfn_ref): Lose first parameter.
4612 (fixup_all_virtual_upcast_offsets): Remove.
4613 * decl.c (initialize_predefined_identifiers): Remove
4614 delta2_identifier, index_identifier, pfn_or_delta2_identifier.
4615 (init_decl_processing): Remove no-vtable-thunk code.
4616 * decl2.c (flag_vtable_thunks): Remove.
4617 (mark_vtable_entries): Remove no-vtable-thunk code.
4618 * error.c (dump_decl): Remove no-vtable-thunk code.
4619 (dump_expr): Adjust ptr to member function code.
4620 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
4621 code.
4622 * rtti.c (build_headof): Remove no-vtable-thunk code.
4623 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
4624 * search.c (get_base_distance): Remove expand_upcast_fixups case.
4625 (virtual_context) Remove.
4626 (expand_upcast_fixups): Remove.
4627 (fixup_virtual_upcast_offsets): Remove.
4628 (fixup_all_virtual_upcast_offsets): Remove.
4629 * typeck.c (get_member_function_from_ptrfunc): Remove
4630 no-vtable-thunk code.
4631 * call.c (build_over_call): Adjust call to build_vfn_ref.
4632 * class.c (build_vfn_ref): Lose first parameter. Remove
4633 no-vtable-thunk code.
4634 (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
4635 (build_vtable_entry): Remove no-vtable-thunk code.
4636
3461fba7
NS
46372001-07-20 Nathan Sidwell <nathan@codesourcery.com>
4638
4639 Remove old-abi remnants. Remove comments about old abi
838dfd8a 4640 behavior. Remove references to 'new-abi' in comments.
3461fba7
NS
4641 * cp-tree.h: Adjust comments.
4642 (vbase_offsets_in_vtable_p): Delete.
4643 (vcall_offsets_in_vtable_p): Delete.
4644 (vptrs_present_everywhere_p): Delete.
4645 (all_overridden_vfuns_in_vtables_p): Delete.
4646 (merge_primary_and_secondary_vtables_p): Delete.
4647 (TYPE_CONTAINS_VPTR_P): Adjust.
4648 (VTT_NAME_PREFIX): Remove.
4649 (CTOR_VTBL_NAME_PREFIX): Remove.
4650 (init_vbase_pointers): Remove.
4651 * class.c: Adjust coments.
4652 (build_vbase_pointer_fields): Delete.
4653 (build_vbase_pointer): Remove old-abi code.
4654 (build_secondary_vtable): Likewise.
4655 (modify_all_vtables): Likewise.
4656 (create_vtable_ptr): Likewise.
4657 (layout_class_type): Likewise.
4658 (finish_struct_1): Likewise.
4659 (finish_vtbls): Likewise.
4660 (dfs_finish_vtbls): Delete.
4661 (build_vbase_offset_vtbl_entries): Remove old-abi code.
4662 * cvt.c: Adjust comments.
4663 * decl.c: Adjust comments.
4664 * decl2.c: Adjust comments.
4665 * init.c: Adjust comments.
4666 (construct_virtual_bases): Remove old-abi code.
4667 * lang-specs.h: Remove -fno-new-abi.
4668 * mangle.c: Adjust comments.
4669 * rtti.c: Adjust comments.
4670 (get_base_offset): Remove old-abi-code.
4671 * search.c: Adjust comments.
4672 (dfs_init_vbase_pointers): Remove.
4673 (dfs_vtable_path_unmark): Remove.
4674 (init_vbase_pointers): Remove.
4675 * semantics.c: Adjust comments.
4676 (emit_associated_thunks): Remove old-abi code.
4677 * typeck.c: Adjust comments.
4678
1c432a87
DB
46792001-07-20 Daniel Berlin <dan@cgsoftware.com>
4680
4681 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
4682 params.h.
4683
b7076960
MM
46842001-07-19 Mark Mitchell <mark@codesourcery.com>
4685
4686 * class.c (finish_struct_anon): Forbid nested classes.
4687
2b85879e
NB
46882001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
4689
4690 * decl2.c: Don't include dwarfout.h and dwarf2out.h.
4691 * optimize.c: Include debug.h.
4692 (maybe_clone_body): Use debug hook.
4693 * semantics.c: Include debug.h.
4694 (expand_body): Use debug hook.
4695
c60e94a7
NB
46962001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
4697
4698 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
4699
dbc957f1
MM
47002001-07-18 Mark Mitchell <mark@codesourcery.com>
4701
4702 * class.c (type_requires_array_cookie): New function.
4703 (check_methods): Don't try to figure out whether the type needs a
4704 cookie here.
4705 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
4706 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
4707 (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
4708 * pt.c (instantiate_class_template): Don't set
4709 TYPE_VEC_DELETE_TAKES_SIZE.
4710 * NEWS: Document ABI changes from GCC 3.0.
57cb6d52 4711
7ba0b0f7 47122001-07-18 Xavier Delacour <xavier@fmaudio.net>,
749ced52 4713 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7ba0b0f7
XD
4714
4715 * NEWS (Changes in GCC 3.0): Fix typo.
4716
59387d2e
JM
47172001-07-13 Joseph S. Myers <jsm28@cam.ac.uk>
4718
4719 * decl2.c (cplus_decl_attributes): Take a pointer to the node to
4720 which attributes are to be attached, and a flags argument. Update
4721 call to decl_attributes.
4722 (grokfield): Update call to decl_attributes.
4723 * class.c (finish_struct): Update call to cplus_decl_attributes.
4724 * cp-tree.h (cplus_decl_attributes): Update prototype.
4725 * decl.c (start_decl, grokdeclarator, start_function): Update
4726 calls to decl_attributes and cplus_decl_attributes.
4727 * friend.c (do_friend): Update call to cplus_decl_attributes.
4728 * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
4729
7ed47c04
MM
47302001-07-12 Mark Mitchell <mark@codesourcery.com>
4731
4732 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
4733 for `register' variables with an asm-specification.
4734
40b18c0a
MM
47352001-07-11 Mark Mitchell <mark@codesourcery.com>
4736
4737 * semantics.c (finish_asm_stmt): Mark the output operands
4738 to an asm addressable, if necessary.
4739
517c3b80
BE
47402001-07-11 Ben Elliston <bje@redhat.com>
4741
219670f1
BE
4742 * Revert this change -- there is a subtle bug.
4743
517c3b80
BE
4744 PR c++/80
4745 * decl.c (finish_enum): New "attributes" argument; pass it to
4746 cplus_decl_attributes. Use a narrower type if the enum is packed.
4747 * cp-tree.h (finish_enum): Adjust prototype.
4748 * parse.y (enum_head): New non-terminal.
4749 (structsp): Use it. Enums now may be preceded or followed by
4750 optional attributes -- pass their chained tree to finish_enum().
4751 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
4752
2ba9c47e
MM
47532001-07-10 Mark Mitchell <mark@codesourcery.com>
4754
4755 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
4756 variables.
4757
35241192
JM
47582001-07-10 Jason Merrill <jason_merrill@redhat.com>
4759
4760 * semantics.c (cp_expand_stmt): Fix for null
4761 current_function_return_value.
4762
07167a18
JM
47632001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl>
4764
4765 * call.c (build_op_delete_call): Initialize fn.
4766 (convert_like_real): Delete conditional.
4767 (joust): Initialize *w and *l.
4768 * class.c: Add prototype for binfo_ctor_vtable.
4769 (get_primary_binfo): Initialize result.
4770 * init.c (build_java_class_ref): Initialize name.
ae818d3b 4771
35241192
JM
47722001-07-09 Erik Rozendaal <dlr@acm.org>
4773
ae818d3b
ER
4774 * typeck.c (unary_complex_lvalue): Do not duplicate the
4775 argument to modify, pre-, or post-increment when used as an
4776 lvalue and when the argument has side-effects.
4777
12a68f1f
JM
47782001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
4779
4780 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
4781 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call
4782 cplus_decl_attributes even if attrs is NULL.
4783 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
4784
f7a4cec0
JM
47852001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
4786
4787 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
4788 calls to decl_attributes.
4789
c80106a4
IR
47902001-07-06 Ira Ruben <ira@apple.com>
4791
ae818d3b 4792 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
c80106a4
IR
4793 be DECL_TEMPLATE_RESULT.
4794
dac65501
KL
47952001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4796
4797 * cp-tree.h (copy_template_template_parm): Rename to ...
4798 (bind_template_template_parm): ... here.
4799 * tree.c (copy_template_template_parm): Rename to ...
4800 (bind_template_template_parm): ... here. Remove the case when
4801 NEWARGS is NULL_TREE.
4802 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
4803 BOUND_TEMPLATE_TEMPLATE_PARM.
4804 * pt.c (lookup_template_class): Adjust.
4805
01f9e964
JM
48062001-07-05 Jason Merrill <jason_merrill@redhat.com>
4807
4808 * cvt.c (convert_lvalue): New fn.
4809 * cp-tree.h: Declare it.
4810 * method.c (do_build_assign_ref): Use it.
4811 (do_build_copy_constructor): Convert parm to base types
4812 before calling base constructors.
4813
4814 * typeck.c (check_return_expr): Check DECL_ALIGN instead of
4815 DECL_USER_ALIGN. Check flag_elide_constructors instead of
4816 optimize.
4817 * semantics.c (cp_expand_stmt): Don't destroy the named return value.
4818
6be77748
NS
48192001-07-02 Nathan Sidwell <nathan@codesourcery.com>
4820
4821 * optimize.c (optimize_inline_calls): New function, broken out
4822 of ...
4823 (optimize_function): ... here. Call it. Don't inline if it is
4824 a thunk.
4825 (dump_function): Print name of dump flag causing this dump.
4826 * semantics.c (expand_body): Move thunk inline check to
4827 optimize_function.
4828
8d8e52be
JM
48292001-06-29 Joseph S. Myers <jsm28@cam.ac.uk>
4830
4831 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
4832 (comptypes): Use target.comp_type_attributes.
4833
5a0db193
NS
48342001-06-29 Nathan Sidwell <nathan@codesourcery.com>
4835
4836 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
4837
46f018e1
GDR
48382001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
4839
4840 * error.c (lang_print_error_function): Add a `diagnostic_context *'
4841 parameter. Tweak.
4842
501990bb
NB
48432001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk>
4844
4845 * decl2.c (import_export_class): Update.
4846
f68fc4db
GDR
48472001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
4848
4849 * error.c (init_error): Adjust settings.
4850
9596ddd6
GDR
48512001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
4852
4853 * error.c (init_error): Adjust settings.
4854
c93586fa
RS
48552001-06-19 Richard Sandiford <rsandifo@redhat.com>
4856
4857 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
4858 return pointers to data members by reference rather than by value.
4859
0d97bf4c
JM
48602001-06-18 Jason Merrill <jason_merrill@redhat.com>
4861
4862 Implement the Named Return Value optimization.
4863 * cp-tree.h (struct cp_language_function): Add x_return_value.
4864 (current_function_return_value): Now a macro.
4865 * decl.c: Don't define it.
4866 (define_label, finish_case_label): Don't clear it.
4867 (init_decl_processing): Don't register it with GC.
4868 * semantics.c (genrtl_finish_function): Don't check it for
4869 no_return_label. Copy the RTL from the return value to
4870 current_function_return_value and walk, calling...
4871 (nullify_returns_r): ...this new fn.
4872 * typeck.c (check_return_expr): Set current_function_return_value.
4873
13de7ec4
JM
48742001-06-15 Jason Merrill <jason_merrill@redhat.com>
4875
4876 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
4877 sharing a ctor vtable with. Merge code for cases 1 and 2.
4878 (binfo_ctor_vtable): New fn.
4879 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
4880
3ea099f1
JM
48812001-06-14 Jason Merrill <jason_merrill@redhat.com>
4882
4883 * class.c (dfs_find_final_overrider): Fix logic.
4884
4885 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
4886 virtual thunk instead of non-virtual.
4887 (get_matching_virtual): Uncomment.
4888
4889 * pt.c (unify): Don't recurse between the POINTER_TYPE and the
4890 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on
4891 PARM, not ARG.
4892
87326ba8
NS
48932001-06-14 Nathan Sidwell <nathan@codesourcery.com>
4894
4895 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
4896 we've not emerged from the hierarchy of RTTI_BINFO on reaching
4897 a non-virtual base.
4898
e065a36e
MM
48992001-06-13 Mark Mitchell <mark@codesourcery.com>
4900
4901 * NEWS: Update release number.
4902
623fe76a
NS
49032001-06-12 Nathan Sidwell <nathan@codesourcery.com>
4904
4905 PR c++/3130, c++/3131, c++/3132
4906 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
4907 * class.c (force_canonical_binfo_r): Move
4908 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
4909 virtual bases unless they're primary and what they're primary
4910 too has been moved.
4911 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
4912 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
4913 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
4914 derived binfo.
4915 (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
4916 (layout_nonempty_base_or_field): Add most derived type
4917 parameter. Adjust.
4918 (layout_empty_base): Likewise.
4919 (build_base_field): Likewise.
4920 (build_base_fields): Likewise.
4921 (propagate_binfo_offsets): Add most derived type
4922 parameter. Skip non canonical virtual bases too.
4923 (dfs_set_offset_for_unshared_vbases): Don't skip primary
4924 bases. Do skip canonical bases.
4925 (layout_virtual_bases): Adjust.
4926 (layout_class_type): Adjust.
4927 (dfs_get_primary_binfo): Build list of virtual primary base
4928 candidates.
4929 (get_primary_binfo): Check that the shared virtual primary
4930 base candidate was found first.
4931 (accumulate_vtbl_inits): Don't do anything for non-vptr
4932 containing binfos. For case 1 primary virtual bases, keep
4933 checking that we've not emerged from the hierarchy of RTTI_BINFO.
4934
7bdcf888
NS
49352001-06-12 Nathan Sidwell <nathan@codesourcery.com>
4936
4937 PR c++/3089
4938 * class.c (dfs_accumulate_vtbl_inits): Always walk down the
4939 hierarchy looking for primary bases for a ctor
4940 vtable. Recursively call oneself, if we meet our primary via
4941 this route and haven't met it yet via inheritance graph order.
4942
25b5b465
MM
49432001-06-11 Mark Mitchell <mark@codesourcery.com>
4944
4945 * lang-options.h: Emit documentation for -fno-honor-std, not
4946 -fhonor-std.
4947
eb2d0614
AO
49482001-06-10 Alexandre Oliva <aoliva@redhat.com>
4949
4950 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
4951 Don't clobber delta.
4952 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
4953
2a2b2d43
GDR
49542001-06-10 Mark Mitchell <mark@codesourcery.com>
4955 Gabriel Dos Reis <gdr@codesourcery.com>
4956
4957 * Make-lang.in (cp/call.o): Depend on diagnostic.h
4958 (cp/typeck.o): Depend on diagnostic.h
4959 (cp/typeck2.o): Depend on diagnostic.h
07167a18 4960 (cp/repo.o): Depend on dignostic.h
2a2b2d43
GDR
4961 * typeck.c: #include diagnostic.h
4962 (convert_for_initialization): Remove extern declaration for
4963 warningcount and errorcount.
4964
4965 * call.c: #include diagnostic.h
4966 (convert_like_real): Remove extern declaration for warnincount and
07167a18 4967 errorcount.
2a2b2d43
GDR
4968
4969 * repo.c: #include diagnostic.h
4970 * typeck2.c: #include diagnostic.h
4971
06d5e633
NS
49722001-06-08 Nathan Sidwell <nathan@codesourcery.com>
4973
4974 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
4975 in previous change.
4976
9ac1bd2e
NS
49772001-06-08 Nathan Sidwell <nathan@codesourcery.com>
4978
4979 PR c++/2929
4980 * friend.c (do_friend): Use push_decl_namespace for classes at
4981 namespace scope.
4982
85a9a0a2
NS
49832001-06-08 Nathan Sidwell <nathan@codesourcery.com>
4984 Jason Merrill <jason_merrill@redhat.com>
4985
4986 PR c++/3061
4987 * class.c (build_secondary_vtable): Use assert, rather than an error
4988 message.
4989 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
4990 (dfs_accumulate_vtbl_inits): A lost primary virtual base may
4991 be between ORIG_BINFO and RTTI_BINFO, but neither of them.
4992 Don't set BINFO_VTABLE for a primary virtual base.
4993
daa8df65
MM
49942001-06-07 Mark Mitchell <mark@codesourcery.com>
4995
4996 * decl.c (duplicate_decls): Update source position information
4997 when a template function is defined.
4998
37344b9b
PE
49992001-06-07 Phil Edwards <pme@sources.redhat.com>
5000
5001 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h.
5002
fcebb2dd
NS
50032001-06-07 Nathan Sidwell <nathan@codesourcery.com>
5004
5005 PR c++/2914
5006 * decl.c (pushtag): Don't push into a complete type's scope.
5007
d0cd8b44
JM
50082001-06-06 Jason Merrill <jason_merrill@redhat.com>
5009
5010 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
5011 (struct lang_decl_flags): Lose generate_with_vtable_p.
5012 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
5013 * class.c (copy_virtuals): Adjust.
5014 * decl2.c (mark_vtable_entries): Adjust.
5015 * method.c (make_thunk, build_vtable_entry): Adjust.
5016 * class.c (update_vtable_entry_for_fn): Only look as far as the
5017 first defining class.
07167a18 5018 (build_vtbl_initializer): Put nothing in the slot for a function only
d0cd8b44 5019 defined in a lost primary virtual base.
07167a18 5020 (add_vcall_offset_vtbl_entries_1): Use the same code for
d0cd8b44
JM
5021 the lost primary case and the normal case.
5022 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
5023 (get_vfield_offset, get_derived_offset): Lose.
5024 (dfs_find_final_overrider): Use look_for_overrides_here.
5025 (get_matching_virtual): New fn.
5026 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
5027 not BV_VCALL_INDEX.
5028 * search.c (look_for_overrides_here): Split out from...
5029 (look_for_overrides_r): Here.
5030
5031 * class.c (find_final_overrider): Return error_mark_node on error.
5032
5033 * decl2.c (key_method): #if 0 accidental change.
5034
acf97e0b
JDA
50352001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
5036
5037 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
5038 (build_over_call): Likewise.
5039 * decl.c (grokparms): Likewise.
5040 * pt.c (tsubst_decl): Likewise.
5041 * typeck.c (convert_arguments): Likewise.
5042
7e9abee9
MM
50432001-06-05 Mark Mitchell <mark@codesourcery.com>
5044
47ee8904
MM
5045 * semantics.c (begin_class_definition): Robustify.
5046
7e9abee9
MM
5047 * pt.c (instantiate_decl): Tell the repository code about the
5048 clones, not the cloned functions.
5049 * repo.c (repo_template_used): Explicitly instantiate the cloned
5050 function, not the clones.
5051
bea09693
NS
50522001-06-05 Nathan Sidwell <nathan@codesourcery.com>
5053
5054 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
5055 ICS_BAD_FLAG on created conversion.
5056 (compare_ics): Break out rank.
5057
8f7550ca
NS
50582001-06-05 Nathan Sidwell <nathan@codesourcery.com>
5059
5060 * decl.c (xref_tag): Remove extraneous %s on dependent name
5061 lookup warning.
5062
442e01b6
NS
50632001-06-05 Nathan Sidwell <nathan@codesourcery.com>
5064
5065 * class.c (layout_vtable_decl): Fix off by one error on
5066 build_index_type.
5067 (build_vtt): Likewise.
5068 (build_ctor_vtbl_group): Likewise.
5069
b7442fb5
NS
50702001-06-05 Nathan Sidwell <nathan@codesourcery.com>
5071
5072 * class.c (maybe_indent_hierarchy): New function.
5073 (dump_class_hierarchy_r): Add flags. Dump extra binfo
5074 information, if enabled. Use maybe_indent_hierarchy. Adjust
5075 output format.
5076 (dump_class_hierarchy): Adjust prototype. Adjust output format.
5077 (dump_array, dump_vtable, dump_vtt): New functions.
5078 (finish_struct_1): Adjust hierarchy dumping.
5079 (initialize_vtable): Call dump_vtable.
5080 (build_vtt): Call dump_vtt.
5081 (build_ctor_vtbl_group): Call dump_vtable.
5082 * decl2.c (flag_dump_class_layout): Remove.
5083 (cxx_decode_option): Remove dump translation unit
5084 and dump class hierarchy check. Call dump_switch_p.
5085 (finish_file): Adjust dumping.
5086 (dump.c): Only dump base classes if not TDF_SLIM.
5087 Only dump namespace members if not TDF_SLIM.
5088 * optimize.c (dump_function): New function.
5089 (optimize_function): Call dump_function.
5090 * semantics.c (expand_body): Use dump_enabled_p.
5091
e5410b32
NS
50922001-06-01 Nathan Sidwell <nathan@codesourcery.com>
5093
5094 PR g++/2936
5095 Part missed from first commit
5096 * decl2.c (finish_anon_union): Copy context.
5097
e97c9488
NS
50982001-05-30 Nathan Sidwell <nathan@codesourcery.com>
5099
5100 PR g++/2936
e97c9488
NS
5101 * optimize.c (remap_decl): Remap anonymous aggregate members too.
5102
87d9ac49
NS
51032001-05-26 Nathan Sidwell <nathan@codesourcery.com>
5104
5105 PR g++/2823
5106 * semantics.c (expand_body): Don't optimize thunks.
5107
88657302
RH
51082001-05-25 Sam TH <sam@uchicago.edu>
5109
5110 * cp-tree.h lex.h: Fix header include guards.
5111
51122001-05-25 Mark Mitchell <mark@codesourcery.com>
10841285
MM
5113
5114 * decl.c (init_decl_processing): Tweak.
5115
0b1161fc
MM
51162001-05-24 Mark Mitchell <mark@codesourcery.com>
5117
5118 * decl.c (duplicate_decls): Tidy.
5119 (init_decl_processing): Always set flag_no_builtin.
5120
6f56d925
NS
51212001-05-24 Nathan Sidwell <nathan@codesourcery.com>
5122
5123 PR c++/2184
5124 * decl2.c (do_local_using_decl): Push the decls, even in a
5125 template.
5126
39e0656d
MM
51272001-05-22 Mark Mitchell <mark@codesourcery.com>
5128
5129 * optimize.c (initialize_inlined_parameters): Don't set
5130 TREE_READONLY for a VAR_DECL taking the place of an inlined
5131 PARM_DECL.
5132
0401d499
JM
51332001-05-22 Jason Merrill <jason_merrill@redhat.com>
5134
5135 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
5136 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
5137 attribute.
5138
14fc3426
JM
51392001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
5140
5141 * parse.y: Refer to compound literals as such, not as
5142 constructor-expressions.
5143
3f41ffd8
MM
51442001-05-21 Mark Mitchell <mark@codesourcery.com>
5145
5146 * call.c (build_op_delete_call): Ignore exception-specifications
5147 when looking for matching delete operators.
5148 * init.c (build_new_1): Compute whether or not the allocation
5149 function used is a placement allocation function or not, and
5150 communicate this information to build_op_delete_call.
5151
1a6025b4
JM
51522001-05-21 Jason Merrill <jason_merrill@redhat.com>
5153
90ecce3e
JM
5154 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi.
5155 (build_vtbl_ref): Adjust.
5156 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
5157 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
5158 Re-add vtable-gc.
5159 (unsupported_options): Correspondingly.
5160
5161 * decl2.c (maybe_make_one_only): Check flag_weak, not
5162 supports_one_only().
5163
1a6025b4
JM
5164 * cp-tree.def (START_CATCH_STMT): Lose.
5165 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS.
5166 * tree.c (cp_statement_code_p): Don't case it.
5167 * semantics.c (cp_expand_stmt): Likewise.
5168 * cp-tree.h (START_CATCH_TYPE): Lose.
5169 (HANDLER_TYPE): New.
5170 * except.c (expand_start_catch_block): Don't start any blocks.
5171 Return the type.
5172 (expand_end_catch_block): Don't end any blocks.
5173 * parse.y (handler): Don't pass anything from finish_handler_parms
5174 to finish_handler.
5175 * pt.c (tsubst_expr): Likewise.
5176 * semantics.c (begin_handler): Call note_level_for_catch here.
5177 (finish_handler_parms): Don't return anything.
5178 (genrtl_catch_block, begin_catch_block): Lose.
5179 (genrtl_handler): Call expand_start_catch here.
5180
51812001-05-18 Jason Merrill <jason_merrill@redhat.com>
5182
5183 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
5184 (get_vtable_decl, build_vtt): Not here.
5185
d30a825a
NS
51862001-05-20 Nathan Sidwell <nathan@codesourcery.com>
5187
5188 PR c++/2781
5189 * optimize.c (update_cloned_parm): Copy addressability and other
5190 flags.
5191
3b82c249
KL
51922001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5193
5194 * pt.c (determine_specialization): Ignore artificial functions.
5195
2a967f3d
NB
51962001-05-20 Neil Booth <neil@daikokuya.demon.co.uk>
5197
5198 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
5199 (C_RID_CODE): Remove.
5200 * lex.c (cxx_init_options): Call set_identifier_size. Update.
5201 (init_parse): Don't do it here.
5202
f99df08e
DN
52032001-05-18 Diego Novillo <dnovillo@redhat.com>
5204
5205 * decl2.c (finish_objects): Use the original SYMBOL_REF from the
5206 function declaration to avoid stripping the symbol's attributes.
5207
2b0cbc5d
NS
52082001-05-18 Nathan Sidwell <nathan@codesourcery.com>
5209
5210 * decl.c (pushdecl): Adjust error string.
5211 (xref_tag): Adjust friend class injection warning. Remove the
5212 inherited name from the class shadowed scope.
5213
e6855a2d
MM
52142001-05-17 Mark Mitchell <mark@codesourcery.com>
5215
5216 * except.c (cp_protect_cleanup_actions): New function.
07167a18 5217 (init_exception_processing): Don't set protect_cleanup_actions
e6855a2d
MM
5218 here. Do set lang_protect_cleanup_actions.
5219
cc469ee9
NS
52202001-05-16 Nathan Sidwell <nathan@codesourcery.com>
5221
5222 * spew.c (read_token): Call yyerror on all unexpected tokens.
5223
3f0a9b35
NS
52242001-05-16 Nathan Sidwell <nathan@codesourcery.com>
5225
5226 * init.c (member_init_ok_or_else): Take a tree rather than
5227 string for name.
5228 (expand_member_init): Adjust.
5229
8d0cb60d
NC
52302001-05-14 Nick Clifton <nickc@cambridge.redhat.com>
5231
5232 * decl.c (duplicate_decls): Suppress warning about duplicate
749ced52 5233 decls if the first decl is a friend.
8d0cb60d 5234
1f730ff7
ZW
52352001-05-12 Zack Weinberg <zackw@stanford.edu>
5236
5237 * except.c (choose_personality_routine): Export. Add
5238 explanatory comment. Take an enum languages, not a boolean.
5239 (initialize_handler_parm): Adjust to match.
5240 * cp-tree.h: Prototype choose_personality_routine.
5241 * lex.c (handle_pragma_java_exceptions): New function.
5242 (init_cp_pragma): Register #pragma GCC java_exceptions.
5243
90e0c410
NB
52442001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
5245
5246 * method.c (build_mangled_C99_name): Remove unused prototype.
5247
cb7fdde2
AO
52482001-05-12 Alexandre Oliva <aoliva@redhat.com>
5249
5250 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
5251 * typeck.c (get_member_function_from_ptrfunc,
5252 build_ptrmemfunc, expand_ptrmemfunc_cst): Take
5253 TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
18ae7f63
AO
5254
5255 Reverted Geoff Keating's 2001-05-03's patch.
5256
401deb20
IR
52572001-05-11 Ira Ruben <ira@apple.com>
5258
5259 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
5260
8e93d446
NB
52612001-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
5262
5263 * cp-tree.h (finish_label_expr, lookup_label): Delete.
5264 * parse.y: Update for '&&'; don't issue warning here.
5265 * semantics.c (finish_label_expr): Delete.
5266
5cdba4ff
MM
52672001-05-07 Mark Mitchell <mark@codesourcery.com>
5268
5269 * splay-tree.h (splay_tree_max): New function.
5270 (splay_tree_min): Likewise.
5271
8e9eff6b
GK
52722001-05-03 Geoffrey Keating <geoffk@redhat.com>
5273
5274 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
5275 (pfn_vflag_identifier): Define.
5276 Update comment about layout of pointer functions.
5277 (build_ptrmemfunc1): Update prototype.
5278 (expand_ptrmemfunc_cst): Update prototype.
5279 * decl.c (initialize_predefined_identifiers): Initialize
5280 pfn_vflag_identifier.
5281 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
5282 an extra field to the type.
07167a18 5283 * expr.c (cplus_expand_constant): Pass 'flag' between
8e9eff6b
GK
5284 expand_ptrmemfunc_cst and build_ptrmemfunc1.
5285 * typeck.c (get_member_function_from_ptrfunc): When
5286 FUNCTION_BOUNDARY < 16, look at additional field to determine
5287 if a pointer-to-member is a real pointer or a vtable offset.
5288 (build_ptrmemfunc1): Add new parameter to contain extra field.
5289 (build_ptrmemfunc): Pass the extra field around.
5290 (expand_ptrmemfunc_cst): Add new parameter to return extra field.
5291 (pfn_from_ptrmemfunc): Ignore the extra field.
5292
acc72c37
MM
52932001-05-03 Mark Mitchell <mark@codesourcery.com>
5294
5295 * cp-tree.h (flag_inline_trees): Update documentation.
5296 * decl.c (init_decl_processing): Adjust handling of
5297 flag_inline_functions and flag_inline_trees to support -O3.
5298 (grokfndecl): Set DECL_INLINE on all functions if that's what
5299 the user requested.
5300 (save_function_data): Clear DECL_INLINE in
5301 current_function_cannot_inline is non-NULL.
5302 * decl2.c (flag_inline_trees): Update documentation.
5303
5158d7ee
NS
53042001-05-03 Nathan Sidwell <nathan@codesourcery.com>
5305
5306 * dump.c (cp_dump_tree, USING_STMT case): New case.
5307 * tree.c (cp_statement_code_p): Add USING_STMT.
5308 * decl2.c (do_using_directive): Add the using directive statement.
5309
5310 * tree.c (walk_tree): Reformat an if block.
5311
80f5bb34
MM
53122001-05-02 Mark Mitchell <mark@codesourcery.com>
5313
5314 * decl.c (compute_array_index_type): Don't try to do anything with
5315 the indices when processing a template.
5316
3e411c3f
KG
53172001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5318
5319 * call.c: NULL_PTR -> NULL.
5320 * class.c: Likewise.
5321 * cvt.c: Likewise.
5322 * decl.c: Likewise.
5323 * decl2.c: Likewise.
5324 * except.c: Likewise.
5325 * init.c: Likewise.
5326 * rtti.c: Likewise.
5327 * search.c: Likewise.
5328 * tree.c: Likewise.
5329 * typeck.c: Likewise.
5330 * typeck2.c: Likewise.
5331
46188dca
MM
53322001-05-02 Mark Mitchell <mark@codesourcery.com>
5333
5334 * decl2.c (do_using_directive): Revert previous patch.
5335
9da99f7d
NS
53362001-05-01 Nathan Sidwell <nathan@codesourcery.com>
5337
5338 * cp-tree.def (USING_STMT): New statement node.
5339 * cp-tree.h (USING_STMT_NAMESPACE): New macro.
5340 * decl2.c (do_using_directive): Add USING_STMT to statement
5341 tree. Don't emit errors when processing template decl.
5342 * pt.c (tsubst_expr, USING_STMT case): New case.
5343 * semantics.c (cp_expand_stmt, USING_STMT case): New case.
5344
4b48a93e
NS
53452001-05-01 Nathan Sidwell <nathan@codesourcery.com>
5346
5347 * call.c (build_new_op): Convert args from reference here.
5348 (build_conditional_expr): Don't convert here.
5349
1bcea8d7
NS
53502001-05-01 Nathan Sidwell <nathan@codesourcery.com>
5351
5352 * spew.c (last_token_id): New static variable.
5353 (read_token): Set it here.
5354 (yyerror): Use it here.
5355
d72040f5
RH
53562001-04-30 Richard Henderson <rth@redhat.com>
5357
749ced52 5358 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
d72040f5
RH
5359 * decl.c: Likewise.
5360
c3aac512
MM
53612001-04-30 Mark Mitchell <mark@codesourcery.com>
5362
5363 * gxxint.texi: Remove.
5364 * Make-lang.in: Remove all traces of gxxint.texi.
5365
5fd893d5
MM
5366Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com>
5367
5368 * decl2.c (start_static_initialization_or_destruction): Correct
5369 logic to handle the -fno-use-cxa-atexit case.
5370
d60e5448
MM
53712001-04-30 Mark Mitchell <mark@codesourcery.com>
5372
5373 * optimize.c (update_cloned_parm): New function.
5374 (maybe_clone_body): Use it. Update the `this' parameter too.
5375
7200764f
JM
53762001-04-29 Joseph S. Myers <jsm28@cam.ac.uk>
5377
5378 * decl2.c (unsupported_options): Add new-abi.
5379 * lang-options.h: Remove no longer supported options.
5380
2d46ec83
NS
53812001-04-27 Nathan Sidwell <nathan@codesourcery.com>
5382
5383 * except.c (can_convert_eh): Don't check template parms,
5384 typename types etc.
5385
02a1a68c
NS
53862001-04-27 Nathan Sidwell <nathan@codesourcery.com>
5387
5388 * optimize.c (maybe_clone_body): Copy parameter names and locations.
5389
5f6eeeb3
NS
53902001-04-27 Nathan Sidwell <nathan@codesourcery.com>
5391
5392 * cp-tree.h (adjust_clone_args): Prototype new function.
5393 * class.c (adjust_clone_args): New function.
5394 * decl.c (start_function): Call it for in charge ctors.
5395
1b28d441
MM
53962001-04-26 Mark Mitchell <mark@codesourcery.com>
5397
5398 * method.c (use_thunk): Make sure that thunks really are emitted
5399 when requested.
5400
0576ec13
NS
54012001-04-26 Nathan Sidwell <nathan@codesourcery.com>
5402
5403 * mangle.c (write_chars): New macro.
5404 (hwint_to_ascii): New function
5405 (write_number): Use it.
5406 (write_integer_cst): Deal with really big numbers.
5407
b96ada87
MM
54082001-04-25 Mark Mitchell <mark@codesourcery.com>
5409
5410 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
5411 the clone.
5412
6bda7a5e
NS
54132001-04-25 Nathan Sidwell <nathan@codesourcery.com>
5414
5415 * decl.c (grokdeclarator): Set context of namespace scope
5416 TYPE_DECLS.
5417
11fe225a
ZW
54182001-04-24 Zack Weinberg <zackw@stanford.edu>
5419
5420 * cp/optimize.c: Include hashtab.h.
5421 (struct inline_data): Add tree_pruner.
5422 (expand_call_inline, expand_calls_inline): Use it when calling
5423 walk_tree.
5424 (optimize_function): Initialize and free tree_pruner.
5425
0ba8a114
NS
54262001-04-24 Nathan Sidwell <nathan@codesourcery.com>
5427
5428 Lazy __FUNCTION__ generation.
5429 * cp-tree.def (FUNCTION_NAME): Remove.
5430 * cp-tree.h (function_name_declared_p): Remove.
5431 (cp_fname_init): Prototype.
5432 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
5433 don't call declare_function_name. Call start_fname_decls.
5434 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
5435 clobber the line number.
5436 (cp_fname_init): New function.
5437 (start_function): Call start_fname_decls.
5438 (finish_function): Call finish_fname_decls.
5439 * lex.c (reswords): Add slots for __FUNCTION__ et al.
5440 (rid_to_yy): Add mappings for __FUNCTION__ et al.
5441 * optimize.c (maybe_clone_body): Remove function_name_declared_p.
5442 * parse.y (VAR_FUNC_NAME): New token.
5443 (primary): Add VAR_FUNC_NAME.
5444 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
5445 generation.
5446 (tsubst, FUNCTION_NAME case): Remove.
5447 (tsubst_copy, FUNCTION_NAME case): Remove.
5448 (tsubst_expr, DECL_STMT case): Be careful with a
5449 DECL_PRETTY_FUNCTION_P.
5450 (instantiate_decl): Remove function_name_declared_p.
5451 * semantics.c (begin_compound_statement): Don't call
5452 declare_function_name here.
5453 (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
5454 (finish_translation_unit): Call finish_fname_decls.
5455 (expand_body): Remove function_name_declared_p.
5456 * typeck2.c (digest_init): Allow any ERROR_MARK.
5457
dfbb4f34
NS
54582001-04-24 Nathan Sidwell <nathan@codesourcery.com>
5459
5460 * pt.c (tsubst_decl): Use VOID_TYPE_P.
5461 * semantics.c: Fix some typos.
5462
e2584c52
PE
54632001-04-23 Phil Edwards <pme@sources.redhat.com>
5464
5465 * cp/decl2.c (flag_honor_std): Always initialize to 1.
5466
d4c3ec27
KG
54672001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5468
5469 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
5470
2ac8a0f9
JM
54712001-04-23 Jason Merrill <jason_merrill@redhat.com>
5472
5473 * except.c (build_throw): Wrap the initialization of the exception
5474 object in a MUST_NOT_THROW_EXPR.
5475 (do_free_exception): #if 0.
5476
968b956a
MM
54772001-04-20 Mark Mitchell <mark@codesourcery.com>
5478
5479 * cp-tree.h (finish_enum): Change prototype.
5480 * decl.c (finish_enum): Reorganize.
5481 * parse.y (structsp): Adjust calls to finish_enum.
11fe225a 5482
aa1826e2
NS
54832001-04-20 Nathan Sidwell <nathan@codesourcery.com>
5484
5485 * tree.c (cp_tree_equal): Adjust final switch formatting. Add
5486 't' case.
5487
06d9f09f
NS
54882001-04-20 Nathan Sidwell <nathan@codesourcery.com>
5489
5490 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
5491 (layout_empty_base): Return at end flag.
5492 (build_base_field): Likewise.
5493 (build_base_fields): Likewise.
5494 (layout_virtual_bases): Don't add 1 to eoc value.
5495 (end_of_class): Use full size for empty bases.
5496 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
5497 empty bases. Don't add 1 to eoc value. Only add trailing padding
5498 if we're an empty class with no empty bases.
5499 (dump_class_hierarchy): Dump size and alignment.
5500
351a0f00
JJ
55012001-04-20 Jakub Jelinek <jakub@redhat.com>
5502
5503 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
5504 ICS_BAD_FLAG.
5505
881cae05
JJ
55062001-04-20 Jakub Jelinek <jakub@redhat.com>
5507
5508 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
5509 is found, look first if name does not match the structure name.
5510
5d2ed28c
MM
55112001-04-19 Mark Mitchell <mark@codesourcery.com>
5512
5513 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
5514 set.
5515 (SET_DECL_LANGUAGE): New macro.
5516 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
5517 (pushdecl): Likewise.
5518 (build_library_fn_1): Likewise.
5519 (build_cp_library_fn): Likewise.
5520 (grokfndecl): Likewise.
5521 (grokvardecl): Mark `extern "C"' variables as having C linkage.
5522 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
5523 * lex.c (retrofit_lang_decl): Likewise.
5524 * mangle.c (mangle_decl_string): Don't mangle the names of
5525 variables declared with C language linkage.
5526 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
11fe225a 5527
41251458
JDA
55282001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca>
5529
5530 * semantics.c (simplify_aggr_init_exprs_r): Don't restore
5531 flag_access_control from uninitialized storage.
5532
1b4a93f7
MM
55332001-04-15 Mark Mitchell <mark@codesourcery.com>
5534
24272dc0
MM
5535 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
5536 * mangle.c (write_pointer_to_member_type): Fix mangling of
5537 pointers to cv-qualified member function types.
5538
1b4a93f7
MM
5539 * init.c (build_delete): Create a SAVE_EXPR for the address if
5540 we're going to use it more than once.
5541
530ec96d
MM
55422001-04-13 Mark Mitchell <mark@codesourcery.com>
5543
5544 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
5545 (expand_ptremfunc_cst): Change prototype.
5546 (delta2_from_ptrmemfunc): Remove.
5547 * expr.c (cplus_expand_constant): Adjust call to
5548 expand_ptrmemfunc_cst.
5549 * typeck.c (build_ptrmemfunc1): Simplify.
5550 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
5551 results in a constant.
5552 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
5553 (delta2_from_ptrmemfunc): Remove.
5554 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
11fe225a 5555
ee8fc32b
JM
55562001-04-12 Jason Merrill <jason_merrill@redhat.com>
5557
5558 * cp-tree.h (decl_namespace_list): New macro.
5559 (struct saved_scope): Add decl_ns_list.
5560 * decl.c (mark_saved_scope): Mark it.
5561 * decl2.c: Lose static decl_namespace_list.
5562 (init_decl2): Don't save it.
5563
48857160
KG
55642001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5565
5566 * cp-tree.h (warn_return_type, yylex): Delete redundant
5567 declarations.
11fe225a 5568
48857160
KG
5569 * decl.c (current_class_depth, global_namespace): Likewise.
5570
5571 * decl2.c (current_class_depth, flag_gnu_xref): Likewise
5572
5573 * repo.c (flag_use_repository): Likewise.
5574
845e14ed
KG
55752001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5576
5577 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
5578 set_block, pushdecl, getdecls, gettags, init_decl_processing,
5579 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
5580 lvalue_or_else, print_lang_statistics, comp_target_types,
5581 unsigned_type, signed_type, signed_or_unsigned_type,
5582 build_function_call, mark_addressable, incomplete_type_error):
5583 Delete redundant declarations.
5584
1951a1b6
JM
55852001-04-11 Jason Merrill <jason_merrill@redhat.com>
5586
5587 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
5588 (TYPE_ANONYMOUS_P): New macro.
5589 (TAGGED_TYPE_P): New macro.
5590 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
5591 (grokfndecl, grokvardecl, grokdeclarator): Likewise.
5592 * tree.c (no_linkage_helper): Likewise.
5593 * semantics.c (begin_class_definition): Likewise.
5594 * pt.c (convert_template_argument): Likewise.
5595 * lex.c (check_for_missing_semicolon): Likewise.
5596
0fb3018c
NS
55972001-04-12 Nathan Sidwell <nathan@codesourcery.com>
5598
5599 * class.c (dfs_unshared_virtual_bases): New function.
5600 (mark_primary_bases): Call it.
5601 (check_bases): Ignore virtual bases when determining
5602 nearly-emptiness.
5603
bbb53468
NS
56042001-04-12 Nathan Sidwell <nathan@codesourcery.com>
5605
5606 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
5607
9b7949d5
MM
56082001-04-11 Mark Mitchell <mark@codesourcery.com>
5609
5610 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
5611 cloned function to the clone.
5612
d6684bc8
KG
56132001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5614
5615 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
5616
5617 * semantics.c: Include expr.h.
5618
a2095778
NS
56192001-04-11 Nathan Sidwell <nathan@codesourcery.com>
5620
5621 * method.c (implicitly_declare_fn): Commonize code for copy ctor
5622 and assignment op. Set TREE_USED for parameter.
5623
78b45a24
MM
56242001-04-10 Mark Mitchell <mark@codesourcery.com>
5625
5626 * class.c (find_final_overrider_data): Add `candidates'.
5627 (dfs_find_final_overrider): Don't issue error messages
5628 prematurely.
5629 (find_final_overrider): Issue error messages here.
5630 (build_base_field): Don't warn about amgibuous direct bases here.
5631 (warn_about_ambiguous_direct_bases): New function.
5632 (layout_class_type): Use it.
5633
0450d74d
RH
56342001-04-10 Richard Henderson <rth@redhat.com>
5635
5636 * typeck.c (build_array_ref): Push the array reference inside
5637 COMPOUND_EXPR and COND_EXPR.
5638
79065db2
MM
56392001-04-05 Mark Mitchell <mark@codesourcery.com>
5640
5641 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
5642 * decl.c (duplicate_decls): Adjust accordingly.
5643 (maybe_commonize_var): Likewise.
5644 (grokfndecl): Likewise.
5645 (start_function): Likewise.
5646 (start_method): Likewise.
5647 * decl2.c (key_method): Likewise.
5648 (import_export_decl): Likewise.
5649 * method.c (implicitly_declare_fn): Likewise.
5650 * optimize.c (maybe_clone_body): Likewise.
11fe225a 5651
fdecbf8a
BK
56522001-04-05 Benjamin Kosnik <bkoz@redhat.com>
5653
b03eced6 5654 * lang-specs.h: Add __DEPRECATED.
fdecbf8a 5655
0b4c1646
R
5656Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com>
5657
5658 * search.c (get_dynamic_cast_base_type): When building a new
5659 constant, set its type to ssizetype.
5660
e59d6709
JJ
56612001-04-04 Jakub Jelinek <jakub@redhat.com>
5662
5663 * optimize.c (expand_call_inline): Only add newly inlined statements
5664 into inlined_stmts.
5665
0c918ce5
MM
56662001-04-03 Mark Mitchell <mark@codesourcery.com>
5667
5668 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
5669 (OPERATOR_FORMAT): Likewise.
5670 (OPERATOR_TYPENAME_FORMAT): Likewise.
5671 * operators.def: Remove old name-mangling information.
5672 * decl.c (grok_op_properties): Adjust accordingly.
5673 * lex.c (init_operators): Likewise.
5674 * rtti.c (get_tinfo_decl): Issue error messages about types that
5675 have variable size.
5676
92788413
MM
56772001-04-03 Mark Mitchell <mark@codesourcery.com>
5678
11fe225a 5679 * decl2.c (import_export_decl): Don't call import_export_class
92788413
MM
5680 when processing an inline member function.
5681 * semantics.c (expand_body): Call import_export_decl before
5682 emitting inline functions.
5683
52a11cbf
RH
56842001-03-28 Richard Henderson <rth@redhat.com>
5685
5686 IA-64 ABI Exception Handling:
5687 * cp-tree.def (EH_SPEC_BLOCK): New.
5688 (MUST_NOT_THROW_EXPR): New.
5689 * cp-tree.h: Update changed function declarations.
5690 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
5691 (CPTI_CALL_UNEXPECTED): New.
5692 (struct cp_language_function): Rename x_eh_spec_try_block
5693 to x_eh_spec_block.
5694 (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
11fe225a 5695 * decl.c (current_binding_level): If no current function
52a11cbf
RH
5696 bindings, revert to scope_chain.
5697 (initialize_predefined_identifiers): Remove __cp_push_exception.
5698 (store_parm_decls): Use begin_eh_spec_block.
5699 (finish_function): Use finish_eh_spec_block.
5700 (mark_lang_function): Update for name changes.
5701 * decl2.c (finish_file): No mark_all_runtime_matches.
5702 * dump.c (cp_dump_tree): Handle new tree codes.
5703 * error.c (dump_expr) [BIND_EXPR]: Fix typo.
5704 * except.c (catch_language_init, catch_language): Remove.
5705 (init_exception_processing): Don't set language code.
5706 Initialize call_unexpected_node, protect_cleanup_actions,
5707 eh_personality_libfunc, lang_eh_runtime_type.
5708 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
5709 (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
5710 (prepare_eh_type): Split out type canonicalizations ...
5711 (build_eh_type_type): ... from here.
5712 (build_eh_type_type_ref): Remove.
5713 (mark_all_runtime_matches): Remove.
5714 (build_exc_ptr): New.
5715 (do_begin_catch, do_end_catch): New.
5716 (do_pop_exception): Remove.
5717 (build_terminate_handler): Remove.
5718 (choose_personality_routine): Split out language choice from ...
5719 (initialize_handler_parm): ... here.
5720 Use MUST_NOT_THROW_EXPR.
5721 (expand_start_catch_block): Use do_begin_catch. Simplify Java
5722 exception object handling.
5723 (expand_start_eh_spec, expand_end_eh_spec): Remove.
5724 (expand_exception_blocks, alloc_eh_object): Remove.
5725 (begin_eh_spec_block, finish_eh_spec_block): New.
5726 (do_allocate_exception, do_free_exception): New.
5727 (expand_throw): Merge into ...
5728 (build_throw): ... here. Update for abi.
5729 * expr.c (cplus_expand_expr): No expand_internal_throw.
5730 Handle MUST_NOT_THROW_EXPR.
5731 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
5732 * semantics.c (*) Update for except.h name changes.
5733 (genrtl_try_block): No protect_with_terminate.
5734 (genrtl_eh_spec_block): New.
5735 (genrtl_handler): Don't emit the goto here.
5736 (cp_expand_stmt): Handle EH_SPEC_BLOCK.
5737 (genrtl_finish_function): Don't expand_exception_blocks.
5738 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
5739
826840d9
RH
57402001-03-28 Richard Henderson <rth@redhat.com>
5741
5742 * decl.c (struct named_label_list): Rename eh_region to
5743 in_try_scope, add in_catch_scope.
5744 (struct binding_level): Rename eh_region to is_try_scope,
5745 add is_catch_scope.
5746 (note_level_for_try): Rename from note_level_for_eh.
5747 (note_level_for_catch): New.
5748 (poplevel): Copy both is_try_scope and is_catch_scope to
5749 the named_label_list struct.
5750 (check_previous_goto_1): Don't check for catch block via
5751 DECL_ARTIFICIAL; use in_try_scope instead.
5752 (check_goto): Likewise.
5753 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
5754 * except.c (expand_start_catch_block): Call note_level_for_catch.
5755 * semantics.c (begin_compound_stmt): Update for note_level_for_try.
5756
531073e7
RH
57572001-03-27 Richard Henderson <rth@redhat.com>
5758
5759 * except.c: Use USING_SJLJ_EXCEPTIONS instead of
5760 exceptions_via_longjmp.
5761
8653a2c3
PE
57622001-03-27 Phil Edwards <pme@sources.redhat.com>
5763
5764 * pt.c (check_default_tmpl_args): Make error messages clearer.
5765
57662001-03-26 Phil Edwards <pme@sources.redhat.com>
5767
5768 * error.c: Also undefine 'A' macro used for cp_printers definition.
5769
911e6107
KG
57702001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5771
5772 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
5773
005a5cb0
MY
57742001-03-26 Mike Yang <yang@research.att.com>
5775 Mark Mitchell <mark@codesourcery.com>
5776
5777 * dump.c (dump_access): New function.
5778 (cp_dump_tree): Use it. Dump basetype information for class
5779 types.
5780
b850de4f
MM
57812001-03-26 Mark Mitchell <mark@codesourcery.com>
5782
5783 * Makefile.in (optimize.o): Depend on params.h.
5784 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
5785 (init_decl_processing): Set flag_no_inline when doing
5786 inlining-on-trees.
5787 * optimize.c: Include params.h.
5788 (struct inline_data): Improve documentation of FNS. Add
5789 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
5790 (INSNS_PER_STMT): New macro.
5791 (remap_block): Use CLONING_P.
5792 (inlinable_function_p): Don't inline big functions.
5793 (expand_call_inline): Keep track of how much inlining we've done.
5794 (optimize_function): Set FIRST_INLINED_FN.
5795 (maybe_clone_body): Set CLONING_P.
5796 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
5797 tree nodes.
5798 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
5799 rest_of_compilation. Clear DECL_RTL for local variables
5800 afterwards.
5801 (clear_decl_rtl): New function.
11fe225a 5802
788bf0e3
NS
58032001-03-26 Nathan Sidwell <nathan@codesourcery.com>
5804
5805 Implement DR 209
5806 * cp-tree.h (skip_type_access_control,
5807 reset_type_access_control): Prototype.
5808 * decl.c (grokdeclarator): Access of friends is not checked.
5809 * parse.y (component_decl_list): Reset type access control.
5810 * semantics.c (decl_type_access_control): Clear
5811 current_type_lookups.
5812 (save_type_access_control): Don't save if not deferring.
5813 (skip_type_access_control, reset_type_access_control): New
5814 functions.
5815 (begin_class_definition): Do type access control for basetypes.
5816 Start deferred access control.
5817 (finish_class_definition): Resume immediate access control if
5818 this is a local class.
5819
730e1556
KG
58202001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5821
5822 * class.c (add_method): Use memcpy/memmove, not bcopy.
5823
5824 * decl.c (duplicate_decls): Likewise.
5825
f1a0345c
JJ
58262001-03-23 Jakub Jelinek <jakub@redhat.com>
5827
5828 * mangle.c (write_discriminator): Use `_0' for discriminator 1,
5829 not `_'.
5830
8e4ce833
JJ
58312001-03-23 Jakub Jelinek <jakub@redhat.com>
5832
5833 * decl.c (local_names): Define.
5834 (push_local_name): New.
5835 (grok_reference_init): Return init if initializing static reference
5836 variable with non-constant instead of emitting it.
5837 Move expand_static_init call to cp_finish_decl.
5838 (layout_var_decl): Call push_local_name.
5839 (maybe_commonize_var): Allow inlining functions even if they have
5840 static local variables, use comdat_linkage for them if flag_weak.
5841 (check_initializer): Call obscure_complex_init if
838dfd8a 5842 grok_reference_init returned nonzero.
8e4ce833
JJ
5843 (save_function_data): Clear x_local_names.
5844 (pop_cp_function_context): Free x_local_names.
5845 (mark_inlined_fns): Remove.
5846 (mark_lang_function): Mark x_local_names.
5847 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
5848 Mark inlined_fns as tree, remove call to mark_inlined_fns.
5849 * class.c (alter_access): Ensure DECL_ACCESS is never set if
5850 DECL_DISCRIMINATOR_P.
5851 * cp-tree.h (cp_language_function): Add x_local_names.
5852 (lang_decl_flags): Add discriminator into u2.
5853 (lang_decl_inlined_fns): Remove.
5854 (lang_decl): inlined_fns is now a TREE_VEC.
5855 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
5856 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
5857 TREE_VEC, not a custom structure.
5858 (optimize_function): Likewise.
5859 * mangle.c (discriminator_for_local_entity): Discriminate among
5860 VAR_DECL local entities.
5861 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
5862 is not valid.
5863
60c87482
BM
58642001-03-22 Bryce McKinlay <bryce@albatross.co.nz>
5865
5866 Add support for Java interface method calls.
5867 * cp-tree.h (struct lang_type): Add java_interface flag.
5868 (TYPE_JAVA_INTERFACE): New macro.
5869 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
5870 by setting TYPE_JAVA_INTERFACE.
5871 * call.c (java_iface_lookup_fn): New static.
11fe225a 5872 (build_over_call): If calling a method declared in a
60c87482
BM
5873 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
5874 expression which resolves the function address.
5875 (build_java_interface_fn_ref): New function.
5876
94c7f30b
RH
58772001-03-22 Richard Henderson <rth@redhat.com>
5878
5879 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
5880 * except.c: Don't include it.
5881
fd8b7a0e 58822001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
826840d9 5883 based on an idea from Joe Buck <jbuck@synopsys.com>
fd8b7a0e
GP
5884
5885 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
5886 New nonterminals.
5887 (data_def, component_decl): Add reductions to bad_decl.
5888
a1c2b86d
JJ
58892001-03-22 Jakub Jelinek <jakub@redhat.com>
5890
5891 * method.c (do_build_assign_ref): Don't use build_modify_expr for
5892 anonymous aggregates, since they don't have assignment operator
5893 method.
5894 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
5895 assignment operators for anonymous structure fields.
5896
46ccf50a
JM
58972001-03-21 Jason Merrill <jason@redhat.com>
5898
5899 * pt.c (instantiate_decl): Abort if we see a member constant
5900 instantiation that doesn't already have its initializer.
5901 Downgrade explicit instantiation without definition to pedwarn.
5902
5903 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
5904 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
5905 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
5906
5907 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
5908 (pending_vtables): Remove.
5909 * decl2.c (pending_vtables): Remove.
5910 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
5911 CLASSTYPE_VTABLE_NEEDS_WRITING.
5912 (import_export_class): Likewise.
5913 (init_decl2): Don't mark pending_vtables.
5914 * lex.c (handle_pragma_vtable): Just sorry.
5915 * pt.c (instantiate_class_template): Don't mess with
5916 CLASSTYPE_VTABLE_NEEDS_WRITING.
5917 (mark_class_instantiated): Likewise.
5918 * ptree.c (print_lang_type): Don't print it.
5919 * semantics.c (begin_class_definition): Don't set it.
5920
5921 * pt.c (template_tail): Replace with last_pending_template.
5922 (maybe_templates, maybe_template_tail): Remove.
5923 (add_pending_template): Adjust.
5924 (instantiate_pending_templates): Adjust.
5925
5926 * cp-tree.h (struct saved_scope): Remove lang_stack field.
5927 (current_lang_stack): Remove.
5928 * decl.c (maybe_push_to_top_level): Don't initialize it.
5929 (duplicate_decls): Use current_lang_depth.
5930 (xref_basetypes): Likewise.
5931 * class.c (current_lang_depth): New fn.
5932 (push_lang_context): Use more varray functionality.
5933 (pop_lang_context): Likewise.
64d9c3fe
JM
5934
5935 * error.c (GLOBAL_THING): Always use '__'.
5936
1c06710a
MM
59372001-03-21 Mark Mitchell <mark@codesourcery.com>
5938
71cb9286
MM
5939 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
5940
1c06710a
MM
5941 * mangle.c (mangle_decl_string): Mangle the names of overloaded
5942 operators, even when they have `extern "C"' linkage.
5943
92643fea
MM
59442001-03-19 Mark Mitchell <mark@codesourcery.com>
5945
5946 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
5947 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5948 where it's not necessary.
5949 (add_method): Remove optimization involving comparison of
5950 DECL_ASSEMBLER_NAME.
5951 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
5952 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5953 where it's not necessary.
5954 (check_methods): Likewise.
5955 (build_clone): Likewise.
5956 (built_vtt): Likewise.
5957 * cp-tree.h (DECL_NEEDED_P): Likewise.
5958 * decl.c (pushtag): Likewise.
5959 (duplicate_decls): Likewise.
5960 (pushdecl): Likewise.
5961 (builtin_function): Likewise.
5962 (build_library_fn_1): Set DECL_LANGUAGE for library functions.
5963 (build_cp_library_fn): Likewise.
5964 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
5965 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5966 where it's not necessary.
5967 (make_rtl_for_nonlocal_decl): Likewise.
5968 (cp_finish_decl): Likewise.
5969 (grokfndecl): Likewise.
5970 (grokvardecl): Likewise.
5971 (grokdeclarator): Likewise.
5972 (start_function): Likewise.
5973 (cp_missing_return_ok_p): Likewise.
5974 * decl2.c (grokclassfn): Likewise.
5975 (check_classfn): Likewise.
5976 (finish_static_data_member_decl): Likewise.
5977 (grokfield): Likewise.
5978 * error.c (GLOBAL_IORD_P): Remove.
5979 (dump_global_iord): Improve output.
5980 (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
5981 * except.c (nothrow_libfn_p): Summarily reject any function not in
5982 namespace-scope.
5983 * init.c (build_java_class_ref): Don't explicitly set
5984 DECL_ASSEMBLER_NAME after calling mangle_decl.
5985 * mangle.c (mangle_decl_string): Handle extern "C" functions.
5986 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
5987 * method.c (set_mangled_name_for_decl): Don't explicitly set
5988 DECL_ASSEMBLER_NAME after calling mangle_decl.
5989 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
5990 IDENTIFIER_GLOBAL_VALUE for the thunk.
5991 * pt.c (set_mangled_name_for_template_decl): Remove.
5992 (check_explicit_specialization): Don't use it.
5993 (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
5994 (tsubst_friend_function): Likewise.
5995 (tsubst_decl): Likewise.
5996 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
5997 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
5998 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
5999 where it's not necessary.
6000 (tinfo_base_init): Likewise.
6001 (create_real_tinfo_var): Likewise.
6002 * search.c (looup_field_1): Likewise.
6003 * semantics.c (finish_named_return_value): Likewise.
6004 * tree.c (init_tree): Set lang_set_decl_assembler_name.
11fe225a 6005
d064d75a
GDR
60062001-03-15 Gabriel Dos Reis <gdr@codesourcery.com>
6007
6008 Correct semantics restrictions checking in throw-expression.
6009 * except.c (is_admissible_throw_operand): New function.
6010 (build_throw): Use it.
6011
a3eab619
MM
60122001-03-14 Mark Mitchell <mark@codesourcery.com>
6013
6014 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
6015 and its ilk.
6016
19e7881c
MM
60172001-03-14 Mark Mitchell <mark@codesourcery.com>
6018
6019 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
6020 * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
6021 * decl.c (duplicate_decls): Likewise.
6022 (builtin_function): Likewise.
6023 (build_library_fn): Likewise.
6024 (build_cp_library_fn): Likewise.
6025 (check_initializer): Likewise.
6026 (cp_finish_decl): Likewise.
6027 * decl2.c (grokfield): Likewise.
6028 (grok_function_init): Remove #if 0'd code.
6029 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
6030 * friend.c (do_friend): Likewise.
6031 * init.c (get_temp_regvar): Likewise.
6032 * method.c (make_thunk): Likewise.
6033 * pt.c (tsubst_friend_function): Likewise.
6034 (tsubst_decl): Likewise.
6035 (regenerate_decl_from_template): Likewise.
6036 * semantics.c (genrtl_named_return_value): Likewise.
6037 (expand_body): Likewise.
6038 (genrtl_finish_function): Likewise.
6039 * tree.c (cp_tree_equal): Likewise.
11fe225a 6040
78fe06c2
NS
60412001-03-12 Nathan Sidwell <nathan@codesourcery.com>
6042
6043 * call.c (convert_like_real): Add extra semantics to INNER
6044 parameter. Don't convert to temporary if a user conversion
6045 gives us an lvalue that we're about to bind to a reference.
6046 Set INNER to indicate pending reference binding on recursive
6047 calls.
6048
b3e68a79
NB
60492001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
6050
6051 * cp/lex.c: Delete duplicate pending_lang_change.
6052
60532001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
6054
6055 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
6056 Similarly.
6057 * cp/repo.c (get_base_filename, open_repo_file): Similarly.
6058 * cp/cp-tree.h: Remove file_name_nondirectory prototype.
6059
11642c3a
ZW
60602001-03-09 Zack Weinberg <zackw@stanford.edu>
6061
6062 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
6063
bb6852eb 60642001-03-08 Stan Shebs <shebs@apple.com>
f7687817
SS
6065
6066 * cp-tree.h (set_identifier_local_value): Remove unused decl.
6067
cc937581
ZW
60682001-03-06 Zack Weinberg <zackw@stanford.edu>
6069
6070 * spew.c: Remove references to CPP_OSTRING.
6071
d1188d91
AH
60722001-03-06 Andrew Haley <aph@redhat.com>
6073
6074 * typeck.c (convert_arguments): Check that we have an fndecl.
6075
4eaf1d5b
AH
60762001-03-05 Andrew Haley <aph@redhat.com>
6077
6078 * typeck.c (convert_arguments): Don't do ellipsis conversion for
6079 __built_in_constant_p.
6080
7eeb553c
NS
60812001-03-02 Nathan Sidwell <nathan@codesourcery.com>
6082
6083 * typeck.c (build_static_cast): Allow enum to enum conversions
6084 as per DR 128.
6085
d282fcb2
NS
60862001-03-02 Nathan Sidwell <nathan@codesourcery.com>
6087
6088 * class.c (check_field_decls): Pointers to member do not a
6089 non-pod struct make, as per DR 148.
6090
f86fdf68
NS
60912001-03-02 Nathan Sidwell <nathan@codesourcery.com>
6092
6093 * call.c (joust): cp_pedwarn when using gnu extension concerning
6094 worst conversion sequences.
6095
d6edb99e
ZW
60962001-03-01 Zack Weinberg <zackw@stanford.edu>
6097
6098 * decl.c: Replace all uses of 'boolean' with 'bool'.
6099
f7143427
ZW
61002001-03-01 Zack Weinberg <zackw@stanford.edu>
6101
6102 * lang-specs.h: Add zero initializer for cpp_spec field to
6103 all array elements that need one. Don't put an #ifdef inside
6104 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
6105 use it.
6106
fbfe8c9e
NS
61072001-03-01 Nathan Sidwell <nathan@codesourcery.com>
6108
6109 Implement using decls inside template functions.
6110 * decl2.c (validate_nonmember_using_decl): Don't special case
6111 fake_std_node in the global namespace. Don't reject early when
6112 processing a template.
6113 (do_local_using_decl): Add to statement tree. Don't do further
6114 processing when building a template.
6115 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
6116
4d24a889
NS
61172001-03-01 Nathan Sidwell <nathan@codesourcery.com>
6118
6119 * decl2.c (do_nonmember_using_decl): Don't complain if we find
6120 same function. Do complain about ambiguating extern "C"
6121 declarations.
6122
e5844e6d
NS
61232001-02-28 Nathan Sidwell <nathan@codesourcery.com>
6124
6125 Remove floating point and complex type template constant parms.
6126 * pt.c (convert_nontype_argument): Remove REAL_TYPE and
6127 COMPLEX_TYPE extensions.
6128 (invalid_nontype_parm_type_p): Likewise.
6129
788f238c
JO
61302001-02-27 Jeffrey Oldham <oldham@codesourcery.com>
6131
6132 * except.c (call_eh_info): Revert "match_function"'s type.
6133
73ea87d7
NS
61342001-02-27 Nathan Sidwell <nathan@codesourcery.com>
6135
6136 Fix ctor vtable vcall offsets.
6137 * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
6138 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
6139 (get_matching_base): Remove.
6140 (get_original_base): New function.
11fe225a 6141 (build_vtbl_initializer): Initialize vid.rtti_binfo.
73ea87d7
NS
6142 Use a virtual thunk for a ctor vtable with an index
6143 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
6144 primary base within a constructor vtable. Only set
6145 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
6146 when primary base has been lost.
6147 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
6148
fe730161
JO
61492001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
6150
6151 * call.c (joust): Ensure more_specialized()'s argument length
6152 parameter has correct value for constructors.
6153
e5dd4aad
NS
61542001-02-26 Nathan Sidwell <nathan@codesourcery.com>
6155
6156 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
11fe225a 6157
e5dd4aad
NS
6158 * decl.c (mark_inlined_fns): Prototype.
6159
25200ab2
MM
61602001-02-22 Mark Mitchell <mark@codesourcery.com>
6161
6162 * spew.c (yylex): Correct handling of friends.
6163
f58c04ac
MM
61642001-02-22 Mark Mitchell <mark@codesourcery.com>
6165
6166 * mangle.c (write_encoding): Pass write_function_type the
6167 FUNCTION_DECL for the function being encoded.
6168 (write_function_type): Pass it along to write_bare_function_type.
6169 (write_bare_function_type): Pass it along to write_method_parms.
6170 (write_method_parms): Don't mangle the compiler-generated
6171 parameters to a constructor or destructor.
6172
9c96f3f8
AJ
61732001-02-22 Andreas Jaeger <aj@suse.de>
6174
6175 * optimize.c: Include toplev.h for
6176 note_deferral_of_defined_inline_function prototype.
6177
b3bae5e2
JJ
61782001-02-22 Jakub Jelinek <jakub@redhat.com>
6179
6180 * cp-tree.h (struct lang_decl_inlined_fns): New.
6181 (struct lang_decls): Add inlined_fns.
6182 (DECL_INLINED_FNS): New macro.
6183 * optimize.c (struct inline_data): Add inlined_fns.
6184 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
6185 (inlinable_function_p): Likewise, fix typo in comment,
6186 function is not inlinable if it already inlined function currently
6187 being optimized.
306ef644 6188 (expand_call_inline): Add fn to inlined_fns if necessary.
b3bae5e2
JJ
6189 (optimize_function): Initialize inlined_fns.
6190 Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
6191 * decl.c (mark_inlined_fns): New function.
6192 (lang_mark_tree): Call it.
6193
5daf7c0a
JM
61942001-02-21 Jason Merrill <jason@redhat.com>
6195
6196 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
6197 (DECL_UNINLINABLE): Move to middle-end.
6198
6199 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
6200 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
6201 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
6202 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
6203 parms and outer BLOCK. note_deferral_of_defined_inline_function.
6204
6205 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
6206 second parm of op=.
6207
2c0fc02d
MM
62082001-02-19 Mark Mitchell <mark@codesourcery.com>
6209
6210 * decl2.c (set_decl_namespace): Allow explicit instantiations in
6211 any namespace.
6212
612164eb
KL
62132001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6214
6215 * optimize.c (expand_call_inline): Don't walk subtrees of type
6216 nodes.
6217
69a59a49
MM
62182001-02-18 Mark Mitchell <mark@codesourcery.com>
6219
6220 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
6221 for a destructor.
6222
e0fff4b3
JM
62232001-02-18 Jason Merrill <jason@redhat.com>
6224
6225 Do put the VTT parameter in DECL_ARGUMENTS.
6226 * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
6227 (current_vtt_parm): New macro.
6228 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
6229 (DECL_HAS_VTT_PARM_P): New macro.
6230 (DECL_VTT_PARM): Remove.
6231 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
6232 * decl.c (duplicate_decls): Only copy the operator code if
6233 appropriate.
6234 (start_function): Set current_vtt_parm.
6235 (lang_mark_tree): Don't mark vtt_parm.
9c96f3f8 6236 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
e0fff4b3
JM
6237 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
6238 * class.c (build_clone): Maybe remove the VTT parm.
6239 * optimize.c (maybe_clone_body): Set up the VTT parm.
6240 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
6241 * call.c (build_over_call): Just allow the VTT arg.
6242 * method.c (make_thunk): Don't set DECL_VTT_PARM.
6243 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
6244 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
6245 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
6246 * error.c (dump_function_decl): Likewise.
6247 * call.c (build_user_type_conversion_1, convert_like_real): Abort
6248 if we try to call a constructor with in-charge or VTT parms.
6249 * method.c (skip_artificial_parms_for): New fn.
6250 * call.c (add_function_candidate, build_over_call): Call it.
6251 * call.c (build_new_method_call): Use current_vtt_parm.
6252 * init.c (expand_virtual_init): Likewise.
6253 * class.c (same_signature_p): No longer static.
6254 * cp-tree.h: Declare it.
6255 * search.c (look_for_overrides_r): Use it.
6256
c750255c
MM
62572001-02-17 Mark Mitchell <mark@codesourcery.com>
6258
8fa33dfa
MM
6259 * cp-tree.h (new_abi_rtti_p): Remove.
6260 (name_mangling_version): Likewise.
6261 (flag_do_squangling): Likewise.
6262 * class.c (build_rtti_vtbl_entries): Remove old ABI support.
6263 * decl.c (grokfndecl): Likewise.
6264 * decl2.c (name_mangling_version): Remove.
6265 (flag_do_squangling): Likewise.
6266 (lang_f_options): Remove `squangle'.
6267 (unsupported_options): Add `squangle'.
6268 (cxx_decode_option): Issue a warning about uses of
6269 -fname-mangling-version.
6270 (finish_file): Remove old ABI support.
6271 * pt.c (check_explicit_specialization): Likewise.
6272 (tsubst_decl): Likewise.
6273 * rtti.c (init_rtti_processing): Likewise.
6274 (build_headof): Likewise.
6275 (get_tinfo_decl_dynamic): Likewise.
6276 (tinfo_from_decl): Likewise.
6277 (build_dynamic_cast_1): Likewise.
6278 (synthesize_tinfo_var): Likewise.
12fa82db
MM
6279 * init.c (build_new): Allow enumeration types for the array-bounds
6280 in a direct-new-declarator.
6281
6282 * semantics.c (finish_typeof): Resolve OFFSET_REFs.
6283
c750255c
MM
6284 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
6285 TREE_PROTECTED from the template being specialized.
6286
a714e5c5
JM
62872001-02-17 Jason Merrill <jason@redhat.com>
6288
6289 * decl2.c (build_artificial_parm): Set TREE_READONLY.
6290
9c96f3f8 6291 * decl.c (bad_specifiers): Allow throw specs on things with
a714e5c5
JM
6292 pointer-to-function or -member-function type.
6293 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
6294 a pmf.
6295
8084b91e
MM
62962001-02-17 Mark Mitchell <mark@codesourcery.com>
6297
6298 * call.c (check_dtor_name): Handle template names correctly.
6299
48f22ed2
JM
63002001-02-16 Jason Merrill <jason@redhat.com>
6301
6302 * cp-tree.h (DECL_USE_VTT_PARM): Remove.
6303 * decl2.c (maybe_retrofit_in_chrg): Don't create it.
6304 * optimize.c (maybe_clone_body): Don't substitute it.
6305 * call.c (build_new_method_call): Check in_chrg instead.
6306 * init.c (expand_virtual_init): Likewise.
6307
e8186ecf
GDR
63082001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
6309
6310 * decl.c (check_tag_decl): Make sure a typedef for an anonymous
6311 class-type introduces at least a type-name.
6312
2c1be322
JJ
63132001-02-16 Jakub Jelinek <jakub@redhat.com>
6314
6315 * call.c (convert_like_real): Create a temporary for non-lvalue.
6316
aab8454a
JO
63172001-02-16 Jeffrey Oldham <oldham@codesourcery.com>
6318
6319 * cp-tree.h: Fix typos in comments.
6320
a901fa64
JM
63212001-02-16 Jason Merrill <jason@redhat.com>
6322
6323 * optimize.c (remap_block): If we're compiling a clone, pass the
6324 new block to insert_block.
6325
8853373c
MM
63262001-02-16 Mark Mitchell <mark@codesourcery.com>
6327
6328 * semantics.c (finish_asm_stmt): Robustify.
6329
b60ecc04
MM
63302001-02-15 Mark Mitchell <mark@codesourcery.com>
6331
6332 * pt.c (push_template_decl_real): Don't remangle the name of a
6333 class template.
6334
e658449e
JM
63352001-02-15 Jim Meyering <meyering@lucent.com>
6336
fd48c9b5
DD
6337 * Make-lang.in (c++.install-common): Depend on installdirs.
6338 (c++.install-info): Likewise.
6339 (c++.install-man): Likewise.
e658449e 6340
f1a3f197
MM
63412001-02-15 Mark Mitchell <mark@codesourcery.com>
6342
6343 * typeck2.c (build_m_component_ref): Robustify.
6344
8826b15b
AO
63452001-02-15 Alexandre Oliva <aoliva@redhat.com>
6346
6347 * friend.c (do_friend): Don't take the nested [template] class
6348 into account when deciding whether to warn about the friend
6349 function not referring to a template function.
6350
7161c1a5
JJ
63512001-02-14 Jakub Jelinek <jakub@redhat.com>
6352
6353 * typeck.c (build_unary_op): Clarify error message.
6354
4806765e
AH
63552001-02-08 Aldy Hernandez <aldyh@redhat.com>
6356
a901fa64
JM
6357 * parse.y (component_constructor_declarator): allow optional
6358 parentheses around constructor class name.
4806765e 6359
bfc8e1e2
NS
63602001-02-14 Nathan Sidwell <nathan@codesourcery.com>
6361
6362 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
6363 section.
6364 * init.c (emit_base_init): Remove incorrect comment about
6365 virtual bases.
6366 * method.c (make_thunk): Fix comment alignment.
6367
394fd776
NS
63682001-02-14 Nathan Sidwell <nathan@codesourcery.com>
6369
6370 Kill remnants of this is variable.
6371 * cp-tree.h (flag_this_is_variable): Remove.
6372 * decl2.c (flag_this_is_variable): Remove.
6373 * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
6374 (build_vbase_path): The path is non-static, even in a cdtor.
6375 (resolves_to_fixed_type_p): Add additional return value.
6376 * search.c (init_vbase_pointers): Adjust.
6377 * tree.c (lvalue_p_1): Adjust.
6378 * typeck.c (mark_addressable): Adjust.
6379
d0ab7624
NS
63802001-02-14 Nathan Sidwell <nathan@codesourcery.com>
6381
6382 * pt.c (unify): Don't check cv quals of array types.
6383
7773899b
NS
63842001-02-14 Nathan Sidwell <nathan@codesourcery.com>
6385
6386 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
6387 check whether we already have the type.
6388
52682a1b
MM
63892001-02-13 Mark Mitchell <mark@codesourcery.com>
6390
6391 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
6392 * call.c (build_op_delete_call): Simplify to remove duplicate
6393 code.
6394 * class.c (clone_function_decl): Don't build the deleting variant
6395 of a non-virtual destructor.
6396 * decl.c (finish_destructor_body): Don't call delete if this is a
6397 non-virtual destructor.
6398 * init.c (build_delete): Explicitly call `operator delete' when
6399 deleting an object with a non-virtual destructor.
9c96f3f8 6400
3b6bd115
JM
64012001-02-13 Jason Merrill <jason@redhat.com>
6402
6403 * lang-specs.h: Add more __EXCEPTIONS.
6404
45abaea8
NS
64052001-02-12 Nathan Sidwell <nathan@codesourcery.com>
6406
6407 * typeck2.c (process_init_constructor): Check
6408 TREE_HAS_CONSTRUCTOR before issuing missing init warning.
6409
996065b4
NS
64102001-02-12 Nathan Sidwell <nathan@codesourcery.com>
6411
6412 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
6413 Remove spurious information in comment. Allow further
6414 adjustments of REFERENCE_TYPE args.
6415
82c18d5c
NS
64162001-02-12 Nathan Sidwell <nathan@codesourcery.com>
6417
6418 * errfn.c (cp_deprecated): Tweak diagnostic text.
6419 * parse.y (new_initializer): Deprecate initializer lists
6420 extension.
6421
1f84ec23
MM
64222001-02-12 Mark Mitchell <mark@codesourcery.com>
6423
6424 Remove old ABI support.
6425
8c310e3f
MM
64262001-02-11 Mark Mitchell <mark@codesourcery.com>
6427
b1012f1b
MM
6428 * decl2.c (flag_vtable_thunks): Always set it to 1.
6429 (flag_new_abi): Likewise.
6430 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9c96f3f8 6431
8c310e3f
MM
6432 * Makefile.in (g++spec.o): Fix typo.
6433
3b635dfc
JM
64342001-02-09 Jason Merrill <jason@redhat.com>
6435
6436 * lang-specs.h: Restore definition of __EXCEPTIONS.
6437
bd0d5d4a
JM
64382001-02-08 Jason Merrill <jason@redhat.com>
6439
6440 * search.c (shared_member_p): New function.
6441 (lookup_field_r): Use it.
6442 * cp-tree.h (SHARED_MEMBER_P): Remove.
6443
6444 * method.c (process_overload_item): Handle template-dependent array
6445 bounds.
6446 * pt.c (type_unification_real): If we end up with undeduced nontype
6447 parms, try again.
6448
6449 * decl.c (lookup_name_real): Tweak warning to refer to decls, not
6450 types.
6451
6452 * typeck2.c (friendly_abort): Don't say anything if we have
6453 earlier errors or sorries.
6454
9c96f3f8 6455 * decl.c (check_tag_decl): Notice attempts to redefine bool and
bd0d5d4a
JM
6456 wchar_t. Ignore if in_system_header.
6457
6458 * decl.c (maybe_push_cleanup_level): New fn...
6459 (start_decl_1): ...split out from here.
6460 * cvt.c (build_up_reference): Use it.
6461 * cp-tree.h: Declare it.
6462
a9374841
MM
64632001-02-07 Mark Mitchell <mark@codesourcery.com>
6464
9c96f3f8 6465 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
a9374841
MM
6466 spec.
6467
a87b4257
NS
64682001-02-06 Nathan Sidwell <nathan@codesourcery.com>
6469
6470 * pt.c (lookup_template_class): Make sure it's a primary
6471 template or template_template_parm when called from the parser.
6472 (instantiate_template_class): Add assertion.
6473
518fed76
AO
64742001-02-05 Alexandre Oliva <aoliva@redhat.com>
6475
6476 * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
6477 from error_mark_node.
6478
9965d119
NS
64792001-02-05 Nathan Sidwell <nathan@codesourcery.com>
6480
6481 Fix specification and implementation bugs in V3 ABI
6482 construction vtables.
6483 * cp-tree.h (flag_dump_class_layout): New flag.
6484 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
6485 (BINFO_LOST_PRIMARY_P): New flag.
6486 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
6487 (BINFO_PRIMARY_MARKED_P): Rename to ...
6488 (BINFO_PRIMARY_P): ... here.
6489 (binfo_via_virtual): New prototype.
6490 * decl2.c (flag_dump_class_layout): New flag.
6491 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
6492 use `=' as a file name separator.
6493 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
6494 bases.
6495 (build_vtbl_address): If this is a virtual primary base, then
6496 get the vtbl of what it is ultimately primary for.
6497 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
6498 for BINFO_PRIMARY_P.
6499 (dfs_skip_nonprimary_vbases_markedp): Likewise.
6500 (get_shared_vbase_if_not_primary): Likewise.
6501 (dfs_get_pure_virtuals): Likewise.
6502 (expand_upcast_fixups): Likewise.
6503 (fixup_virtual_upcast_offsets): Likewise.
6504 (dfs_find_vbase_instance): Likewise.
6505 (find_vbase_instance): Likewise.
6506 (binfo_from_vbase): Adjust comment to reflect reality.
6507 (binfo_via_virtual): New function.
6508 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
6509 for binfo walking during VTT construction.
6510 (dfs_mark_primary_bases): Remove.
6511 (force_canonical_binfo_r): New function.
6512 (force_canonical_binfo): New function.
6513 (mark_primary_virtual_base): New function.
6514 (mark_primary_bases): Walk in inheritance graph order, use
6515 mark_primary_virtual_base.
6516 (determine_primary_base): Use some more intermediate variables.
6517 (dfs_find_final_overrider): Don't check for overriding along a
6518 virtual path.
6519 (dfs_modify_vtables): Walk into primary virtual bases too.
6520 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
6521 (build_base_fields): Likewise.
6522 (dfs_set_offset_for_unshared_vbases): Likewise.
6523 (layout_virtual_bases): Likewise.
6524 (end_of_class): Likewise.
6525 (finish_struct_1): Call dump_class_hierarchy, if requested.
6526 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
6527 (dump_class_hierarchy_r): Add stream parameter. Emit more information.
6528 (dump_class_hierarchy): Add file parameter. Append to file, if
6529 required.
6530 (finish_vtbls): Adjust accumulate_vtbl_inits call.
6531 Use canonical base for virtual bases.
6532 (build_vtt): Add more comments. Adjust build_vtt_inits call.
6533 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
6534 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
6535 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
6536 virtual VTTs.
6537 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
6538 from DATA. We want virtual primary bases and all bases via virtual.
6539 Only set BINFO_VPTR_INDEX for top level. Look up from a primary
6540 virtual base when not a construction vtable.
6541 (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
6542 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
6543 Use canonical bases when processing virtual bases.
6544 (accumulate_vtbl_inits): We're interested in any base via a
6545 virtual path.
6546 (dfs_accumulate_vtbl_inits): If this is a primary virtual base
6547 within a construction vtable, determine what is being overridden.
6548 (build_vtbl_initializer): Add more comments
6549 (add_vcall_offset_vtbl_entries_1): Adjust comment.
6550 (build_rtti_vtbl_entries): Check if the base has lost its
6551 primary.
6552
39d6f2e8
MM
65532001-02-05 Mark Mitchell <mark@codesourcery.com>
6554
6555 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
6556
400500c4
RK
6557Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6558
6559 * decl.c (pushdecl): Call abort instead of fatal.
6560 * except.c (decl_is_java_type): Call fatal_error instead of fatal.
6561 * init.c (build_new_1): Likewise.
6562 (build_java_class_ref): Call internal_error and fatal_error, not fatal.
6563 * decl.c (build_typename_type): hash_table_init now returns void.
6564 decl.c (init_decl_processing): Make an error non-fatal.
6565
97458258
MM
65662001-02-04 Mark Mitchell <mark@codesourcery.com>
6567
6568 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
6569 Document.
6570 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
6571 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
6572 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
6573 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
6574 * decl.c (maybe_commonize_var): Use the new name-mangling where
6575 appropriate.
6576 * decl2.c (comdat_linkage): Enhance comments. Make all
6577 compiler-generated things static, if COMDAT is not available.
6578 (get_tinfo_decl): Do not make typeinfo objects that belong in the
6579 library COMDAT.
6580 (tinfo_base_init): Use the correct mangled name for typeinfo
6581 strings, and push them into the global scope.
6582 (typeinfo_in_lib_p): New function.
6583 (synthesize_tinfo_var): Use it.
6584 (create_real_tinfo_var): Likewise.
9c96f3f8 6585
55de1b66
JJ
65862001-02-03 Jakub Jelinek <jakub@redhat.com>
6587
6588 * decl.c (push_class_binding): Use context_for_name_lookup instead
6589 of CP_DECL_CONTEXT.
6590 * search.c (context_for_name_lookup): Remove static. Check for NULL
6591 context in the loop.
6592 * cp-tree.h (context_for_name_lookup): Add prototype.
6593
e92730aa
JJ
65942001-02-02 Jakub Jelinek <jakub@redhat.com>
6595
6596 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
6597 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
6598 Remove.
6599 * call.c (convert_class_to_reference, build_user_type_conversion_1,
6600 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
6601
049f6ec9
MM
66022001-02-02 Mark Mitchell <mark@codesourcery.com>
6603
6604 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
6605 of macros used when compiling g++spec.c.
6606 * g++spec.c (lang_specific_driver): Link with the shared
6607 libgcc by default.
6608
718b8ea5
JM
66092001-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
6610
6611 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
6612 make_reference_declarator, make_call_declarator), method.c
6613 (implicitly_declare_fn), parse.y (namespace_using_decl,
6614 notype_unqualified_id, expr_or_declarator, new_type_id,
6615 after_type_declarator, direct_after_type_declarator,
6616 notype_declarator, complex_notype_declarator,
6617 complex_direct_notype_declarator, qualified_id,
6618 notype_qualified_id, overqualified_id, direct_new_declarator,
6619 absdcl, direct_abstract_declarator, conversion_declarator), pt.c
6620 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
6621 instead of build_parse_node.
6622
f2d1f0ba
KG
66232001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6624
6625 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
6626 (minus_one_node): Moved to top level gcc directory. Renamed
6627 to integer_minus_one_node.
6628
6629 * init.c (init_init_processing): Don't set minus_one_node.
6630 (build_vec_init): Use integer_minus_one_node.
6631
6632 * rtti.c (get_tinfo_decl_dynamic): Likewise.
6633
6001735e
JJ
66342001-01-28 Jakub Jelinek <jakub@redhat.com>
6635
6636 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
6637 identical and they would be replaced with constant, remove
6638 MODIFY_EXPR from the tree.
6639
c913b6f1
KG
66402001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6641
6642 * Make-lang.in: Remove all dependencies on defaults.h.
6643 * call.c: Don't include defaults.h.
6644 * decl.c: Likewise.
6645 * decl2.c: Likewise.
6646 * except.c: Likewise.
6647 * pt.c: Likewise.
6648 * rtti.c: Likewise.
6649 * tree.c: Likewise.
6650 * typeck.c: Likewise.
6651
324ffb8c
JJ
66522001-01-25 Jakub Jelinek <jakub@redhat.com>
6653
6654 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
6655 operators even in "C" linkage.
6656 * method.c (set_mangled_name_for_decl): Likewise.
6657 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
6658 overloaded operators in "C" linkage.
6659
4b2811e9
NS
66602001-01-24 Nathan Sidwell <nathan@codesourcery.com>
6661
6662 * pt.c (tsubst_decl): Remove IN_DECL parameter.
6663 (tsubst_arg_types): Check parameter is not void.
6664 (tsubst): Adjust tsubst_decl call.
6665
d8caf48e
NS
66662001-01-24 Nathan Sidwell <nathan@codesourcery.com>
6667
6668 * call.c (add_builtin_candidate): Quote std properly, from
6669 previous change.
6670
08511114
KL
66712001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6672
6673 * pt.c (check_explicit_specialization): Clone constructors and
6674 destructors.
6675
92ecdfb7
NS
66762001-01-23 Nathan Sidwell <nathan@codesourcery.com>
6677
6678 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
6679 indicates anything special about template depth. Make sure we
6680 only count the user visible template classes.
6681
4cff6abe
NS
66822001-01-23 Nathan Sidwell <nathan@codesourcery.com>
6683
6684 * call.c (build_conv): Typo in comment.
6685 (add_builtin_candidate): Add more explanation.
6686 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
6687 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
6688 when we have enumeral types.
6689 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
6690 candidates for relops and eqops.
6691 (joust): Simplify control flow. Allow a non-template user
6692 function to hide a builtin.
6693
62e4a758
NS
66942001-01-22 Nathan Sidwell <nathan@codesourcery.com>
6695
6696 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
6697 (more_specialized): Add deduction parameter.
6698 * call.c (joust): Adjust more_specialized call.
6699 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
6700 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
6701 (get_bindings_order): Remove.
6702 (get_bindings_real): Add DEDUCE parameter.
6703 (maybe_adjust_types_for_deduction): Return extra unify flags. Do
6704 REFERENCE_TYPE jig for DEDUCE_ORDER.
6705 (type_unification_real): Deal with DEDUCE_ORDER. Use result of
6706 maybe_adjust_types_for_deduction.
6707 (more_specialized): Add DEDUCE parameter. Call get_bindings_real
6708 directly.
6709 (try_one_overload): Use result of maybe_adjust_types_for_deduction.
6710 (check_cv_quals_for_unify): Use new unify qualifier flags.
6711 (unify): Clear new unify qualifier flags.
6712 (get_bindings_real): Add DEDUCE parameter.
6713 (get_bindings): Adjust call to get_bindings_real.
6714 (get_bindings_overload): Likewise.
6715 (most_specialized_instantiation): Adjust call to
6716 more_specialized.
6717
2a2a9e5a
JM
67182001-01-19 Jason Merrill <jason@redhat.com>
6719
6720 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
6721
6722 * decl.c (init_decl_processing): Just force -fvtable-thunks on if
6723 -fnew-abi.
6724
60696c53
JM
67252001-01-19 Ute Pelkmann <scope.muc@t-online.de>
6726
6727 * decl2.c (arg_assoc_class): Fix double iteration logic.
6728
67292001-01-19 Jason Merrill <jason@redhat.com>
6730
6731 * init.c (build_delete): Always call convert_force to strip cv-quals.
6732
6733 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
6734 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
6735 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
6736
1e00f18c
NS
67372001-01-19 Nathan Sidwell <nathan@codesourcery.com>
6738
6739 * search.c (get_vbase_1): Count only virtual bases.
6740
e13bced2
NS
67412001-01-19 Nathan Sidwell <nathan@codesourcery.com>
6742
6743 * class.c (duplicate_tag_error): Robustify flag clearing.
6744
f9c244b8
NS
67452001-01-19 Nathan Sidwell <nathan@codesourcery.com>
6746
6747 * cp-tree.h (lookup_template_class): Add complain parm.
6748 * decl.c (lookup_namespace_name): Adjust call to
6749 lookup_template_class.
6750 (make_typename_type): Likewise.
6751 * semantics.c (finish_template_type): Likewise.
6752 * pt.c (lookup_template_class): Add complain parm. Adjust.
6753 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
6754 (tsubst): Likewise.
6755
08c2df0f
NS
67562001-01-19 Nathan Sidwell <nathan@codesourcery.com>
6757
6758 * pt.c (copy_default_args_to_explicit_spec): Preserve
6759 object's CV quals. Reorganize.
6760
f5ceeec8
NS
67612001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6762
6763 * typeck.c (build_modify_expr): Say `initialization' for
6764 INIT_EXPRs.
6765 * init.c (build_default_init): Convert to enumeral type, if
6766 needed.
6767
a1cfa434
JJ
67682001-01-18 Jakub Jelinek <jakub@redhat.com>
6769
6770 * parse.y (nomods_initdcl0): Properly set things up for
6771 initdcl0_innards.
6772
028d1f20
NS
67732001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6774
6775 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
6776 (type_unification_real): Set it.
6777 (unify): Use it.
6778
9f724b6a
NS
67792001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6780
6781 * decl.c (finish_destructor_body): Convert to vbase pointer here.
6782
522d6614
NS
67832001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6784
6785 * semantics.c (begin_class_definition): Check we're not inside a
6786 template parm list.
6787
7f805b8f
NS
67882001-01-18 Nathan Sidwell <nathan@codesourcery.com>
6789
6790 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
6791 BASELINK_P.
6792
dc3799c1
KL
67932001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6794
6795 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
6796 * call.c (build_over_call): Add comment.
6797
bb37c4a5
DB
67982001-01-16 Daniel Berlin <dberlin@redhat.com>
6799
826840d9
RH
6800 * cvt.c (ocp_convert): Handle vector type conversion
6801 * typeck2.c (digest_init): Handle vector type initializations
9c96f3f8 6802
a26e7fb5
PE
68032001-01-16 Phil Edwards <pme@sources.redhat.com>
6804
6805 * g++spec.c: Don't add libraries needlessly if -fsyntax-only
6806 was given.
6807
11b810f1
NS
68082001-01-15 Nathan Sidwell <nathan@codesourcery.com>
6809
6810 * pt.c (check_nontype_parm): Rename to ...
6811 (invalid_nontype_parm_type_p): ... here.
6812 (process_template_parm): Adjust.
6813 (convert_template_argument): Adjust.
6814
db3f4e4e
NS
68152001-01-15 Nathan Sidwell <nathan@codesourcery.com>
6816
6817 * pt.c (check_nontype_parm): New function.
6818 (process_template_parm): Use it.
6819 (convert_template_argument): Use it.
6820 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
6821 member.
6822
ea4f1fce
JO
68232001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
6824
6825 * tree.c: Add defaults.h
6826 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
6827 * Make-lang.in (cp/tree.o): Add defaults.h.
6828
1312c143
JM
68292001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
6830
6831 * Make-lang.in (CXX_C_OBJS): Add c-format.o.
6832
4bc1997b
JM
68332001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
6834
6835 * g++.1: Change to be ".so man1/gcc.1".
6836
23de1fbf
JM
68372001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
6838
6839 * Make-lang.in (c++.info, c++.install-info): Build and install g++
6840 internals info.
6841 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
6842 ($(srcdir)/cp/g++int.info): New target.
6843 * gxxint.texi: Add info directory entry. Use @@ in email address.
6844 * .cvsignore: Update.
6845
0949f723
NS
68462001-01-12 Nathan Sidwell <nathan@codesourcery.com>
6847
6848 * typeck.c (build_c_cast): Do template processing earlier.
6849 Always pedwarn on array casts.
6850
a8641661
NS
68512001-01-12 Nathan Sidwell <nathan@codesourcery.com>
6852
6853 * friend.c (make_friend_class): Make sure a templated class is
6854 actually a template.
6855
844511c8
NS
68562001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6857
6858 * decl2.c (get_guard): Set linkage from guarded decl.
6859
96a1e32d
NS
68602001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6861
6862 * call.c (convert_default_arg): Check for unprocessed
6863 DEFAULT_ARG.
6864 * cp-tree.h (replace_defarg): Move to spew.c.
6865 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
6866 spew.c, which is where they really are.
6867 (done_pending_defargs): Declare.
6868 (unprocessed_defarg_fn): Declare.
6869 * decl.c (replace_defarg): Move to spew.c
6870 * parse.y (structsp): Call done_pending_defargs.
6871 * spew.c (defarg_fns): Rearrange list structure.
6872 (defarg_fnsdone): New static variable.
6873 (defarg_depfns): New static variable.
6874 (init_spew): Adjust.
6875 (add_defarg_fn): Store the type in TREE_TYPE.
6876 (do_pending_defargs): Detect and deal with ordering constraints
6877 and circularity.
6878 (done_pending_defargs): New function.
6879 (unprocessed_defarg_fn): New function.
6880 (replace_defarg): Moved from decl.c. Robustify. Don't save
6881 if circularity detected.
6882
34e225a3
NS
68832001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6884
6885 * pt.c (unify): Check array has a domain, before checking
6886 whether it is variable sized.
6887
98979fe0
NS
68882001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6889
6890 * decl.c (grokparms): Unobfuscate and get correct diagnostic for
6891 parameters with pointers to arrays of unknown bound.
6892
b37bf5bd
NS
68932001-01-11 Nathan Sidwell <nathan@codesourcery.com>
6894
6895 * parse.y (template_parm_header, template_spec_header): New
6896 reductions. Split out from ...
6897 (template_header): ... here. Use them.
6898 (template_template_parm): Use template_parm_header.
6899 * semantics.c (finish_template_template_parm): Add assert.
6900
6c418184
MM
69012001-01-10 Mark Mitchell <mark@codesourcery.com>
6902
792508b5
MM
6903 * mangle.c (write_builtin_type): Fix thinko.
6904
8afa707f
MM
6905 * pt.c (copy_default_args_to_explicit_spec_1): New function.
6906 (copy_default_args_to_explicit_spec): Likewise.
6907 (check_explicit_specialization): Use it.
6908
6c418184
MM
6909 * class.c (finish_struct_1): Remove last argument in call to
6910 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
6911 * decl.c (builtin_function): Likewise.
6912 (build_cp_library_fn): Likewise.
6913 (check_initializer): Likewise.
6914 (make_rtl_for_nonlocal_decl): Likewise.
6915 (cp_finish_decl): Likewise.
6916 (start_function): Likewise.
6917 * decl2.c (finish_anon_union): Likewise.
6918 * friend.c (do_friend): Likewise.
6919 * init.c (build_java_class_ref): Likewise.
6920 * method.c (make_thunk): Likewise.
6921 * pt.c (tsubst_friend_function): Likewise.
6922 * semantics.c (expand_body): Likewise.
6923
31d95fc6
MM
69242001-01-10 Mark Mitchell <mark@codesourcery.com>
6925
6926 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
6927 looking at DECL_CLONED_FUNCTION for non-functions.
6928
31bb3027
NS
69292001-01-10 Nathan Sidwell <nathan@codesourcery.com>
6930
6931 * error.c (dump_template_parameter): Use parm to determine how
6932 to print default value.
6933
fd3f43e7
NS
69342001-01-10 Nathan Sidwell <nathan@codesourcery.com>
6935
6936 * class.c (duplicate_tag_error): Clear more flags.
6937
042b4c4e
NS
69382001-01-10 Nathan Sidwell <nathan@codesourcery.com>
6939
6940 * call.c (build_new_method_call): Use binfo_for_vbase.
6941
a7537031
JM
69422001-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
6943
6944 * cp-tree.h (flag_cond_mismatch): Don't declare.
6945 * decl2.c (flag_cond_mismatch): Don't define.
6946 (lang_f_options): Remove cond-mismatch.
6947 (unsupported_options): Add cond-mismatch.
6948
186c0fbe
NS
69492001-01-09 Nathan Sidwell <nathan@codesourcery.com>
6950
6951 * class.c (handle_using_decl): Reject using of constructor name
6952 of sourcing class. Allow injecting of a method with same name as
6953 nested class. Fixup error messages.
6954
28ec8d6b
JM
69552001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
6956
6957 * decl2.c (lang_decode_option): Handle -Wformat=2.
6958
3febd123
NS
69592001-01-08 Nathan Sidwell <nathan@codesourcery.com>
6960
6961 * cp-tree.h (lang_decl_flags): Rename defined_in_class to
6962 initialized_in_class.
6963 (DECL_DEFINED_IN_CLASS_P): Rename to ...
6964 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
6965 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
6966 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
6967 * pt.c (check_default_tmpl_args): Adjust for
6968 DECL_INITIALIZED_IN_CLASS_P.
6969 (instantiate_class_template): Likewise.
6970 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9c96f3f8 6971
3febd123
NS
6972 * class.c (finish_struct): Constify saved_filename.
6973
1f0d71c5
NS
69742001-01-08 Nathan Sidwell <nathan@codesourcery.com>
6975
6976 * class.c (duplicate_tag_error): Adjust diagnostic.
6977 (finish_struct): Locally set location to start of struct.
6978 * decl.c (fixup_anonymous_aggr): Use cp_error_at.
6979
5bf15e84 69802001-01-08 Nathan Sidwell <nathan@codesourcery.com>
76191fdd
NS
6981
6982 * decl.c (struct binding_level): Adjust class_shadowed comments
6983 to reflect reality.
aba649ba 6984 (push_class_level_binding): Adjust comments to reflect reality.
76191fdd
NS
6985 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
6986 Don't set TREE_VALUE on the class_shadowed list.
6987
23d4e4cc 69882001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9c96f3f8
AJ
6989
6990 * decl2.c (acceptable_java_type): Allow references too.
23d4e4cc
APB
6991 * init.c (build_java_class_ref): When using the new ABI, search
6992 `class$' and have it mangled with `mangle_decl.'
6993 * mangle.c (write_java_integer_type_codes): New function.
6994 (write_builtin_type): Detect and mangle Java integer and real
6995 types.
9c96f3f8 6996
0c58da3e
MM
69972001-01-07 Mark Mitchell <mark@codesourcery.com>
6998
6999 * decl2.c (grokfield): Don't accept `asm' specifiers for
7000 non-static data members.
7001
45b8ddb4
KG
70022001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7003
7004 * expr.c (cplus_expand_expr): Don't reset `target'.
7005
96302433
NB
70062001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
7007
826840d9 7008 * cp/decl2.c (cxx_post_options): Call cpp_post_options.
96302433 7009
220bce48
NS
70102001-01-05 Nathan Sidwell <nathan@codesourcery.com>
7011
7012 * parse.y (template_datadef): Check for error_mark_node.
7013
bfa2cb33
NS
70142001-01-05 Nathan Sidwell <nathan@codesourcery.com>
7015
7016 * cp-tree.def (DEFAULT_ARG): Make `x' class.
7017
eaa7c03f
JM
70182001-01-04 Joseph S. Myers <jsm28@cam.ac.uk>
7019
7020 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
7021 (record_builtin_type): Make non-static.
7022 (flag_short_double): Don't declare.
7023 (init_decl_processing): Remove the creation of many tree nodes now
7024 in c_common_nodes_and_builtins.
7025 (build_void_list_node): New function.
7026 * decl2.c (flag_short_double, flag_short_wchar): Don't define.
7027 * cp-tree.h (flag_short_wchar): Don't declare.
7028
3af4c257
MM
70292001-01-04 Mark Mitchell <mark@codesourcery.com>
7030
7031 * call.c (build_conv): Don't use build1 for USER_CONV.
7032 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
7033
03dc0325
JM
70342001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
7035
7036 * lex.c (lang_init): Call c_common_lang_init.
7037
3c505507
NS
70382001-01-03 Nathan Sidwell <nathan@codesourcery.com>
7039
7040 * search.c (lookup_fnfields_here): Remove.
7041 (look_for_overrides_r): Use lookup_fnfields_1.
7042 Ignore functions from using declarations.
7043
03378143
NS
70442001-01-03 Nathan Sidwell <nathan@codesourcery.com>
7045
7046 Implement exceptions specifiers for implicit member functions.
7047 * cp-tree.h (merge_exceptions_specifiers): Declare new function.
7048 * method.c (synthesize_exception_spec): New function.
7049 (locate_dtor, locate_ctor, locate_copy): New functions.
7050 (implicitly_declare_fn): Generate the exception spec too.
7051 * search.c (check_final_overrider): Check artificial functions
7052 too.
9c96f3f8 7053 * typeck2.c (merge_exception_specifiers): New function.
03378143 7054
f30efcb7
JM
70552001-01-03 Jason Merrill <jason@redhat.com>
7056
7057 * init.c (build_default_init): New fn.
7058 (perform_member_init): Split out from here.
7059 (build_new_1): Use it. Simplify initialization logic.
7060 (build_vec_init): Take an array, rather than a pointer and maxindex.
7061 Speed up simple initializations. Don't clean up if we're assigning.
7062 * cp-tree.h: Adjust.
7063 * decl2.c (do_static_initialization): Remove TREE_VEC case.
7064 * parse.y (new_initializer): Return void_zero_node for ().
7065 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
7066 * typeck2.c (digest_init): Only complain about user-written
7067 CONSTRUCTORs.
7068
a412bf75
MS
70692000-12-22 Mike Stump <mrs@wrs.com>
7070
7071 * decl2.c: (max_tinst_depth): Increase to 50.
7072
4890c2f4
MM
70732001-01-02 Mark Mitchell <mark@codesourcery.com>
7074
7075 * class.c (invalidate_class_lookup_cache): Zero the
7076 previous_class_values.
7077 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
7078 TREE_INT_CST_HIGH.
7079 (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
7080 * decl.c (free_bindings): New variable.
7081 (push_binding): Don't create a new binding if we have one on the
7082 free list.
7083 (pop_binding): Put old bindings on the free list.
7084 (init_decl_processing): Use size_int, not build_int_2.
7085 Register free_bindings as a GC root.
7086 (cp_make_fname_decl): Use size_int, not build_int_2.
7087 (push_inline_template_parms_recursive): Likewise.
7088 (end_template_parm_list): Likewise.
7089 (for_each_tempalte_parm): Do not use walk_tree_without_duplicates.
7090 (tsubst_template_parms): Use size_int, not build_int_2.
7091 (tsubst): Likewise.
7092 * rtti.c (get_vmi_pseudo_type_info): Likewise.
9c96f3f8 7093
4f78b9a8
RH
70942001-01-02 Richard Henderson <rth@redhat.com>
7095
7096 * parse.y (asm): Set ASM_INPUT_P.
7097
3c8c2a0a
JM
70982001-01-02 Jason Merrill <jason@redhat.com>
7099
96d6c610
JM
7100 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
7101 for v3 ABI.
7102
7103 * typeck.c (cp_truthvalue_conversion): New fn.
7104 * cvt.c (ocp_convert): Use it.
7105
7106 * cp-tree.h: Lose c-common.c decls.
7107
7108 * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
7109 * cvt.c (convert_to_void): Use type_unknown_p.
7110
9c96f3f8 7111 * typeck.c (strip_all_pointer_quals): Also strip quals from
3c8c2a0a
JM
7112 pointer-to-member types.
7113
7114 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat
7115 parse.y as C.
7116
7117 * call.c (build_new_method_call): Do evaluate the object parameter
7118 when accessing a static member.
7119 * typeck.c (build_component_ref): Likewise.
7120
d363e7bf
AJ
71212001-01-02 Andreas Jaeger <aj@suse.de>
7122
7123 * decl.c (cp_missing_noreturn_ok_p): New.
7124 (init_decl_processing): Set lang_missing_noreturn_ok_p.
7125
77f5250d
JJ
71262000-12-29 Jakub Jelinek <jakub@redhat.com>
7127
7128 * decl.c (init_decl_processing): Fix sign of wchar_type_node.
7129
31a714f6
MM
71302000-12-29 Mark Mitchell <mark@codesourcery.com>
7131
7132 * class.c (pushclass): Remove #if 0'd code.
7133 * cp-tree.h (overload_template_name): Remove.
7134 * decl.c (store_bindings): Simplify.
7135 (pop_from_top_level): Likewise.
7136 * pt.c (overload_template_name): Remove.
d363e7bf 7137 (instantiate_decl): Don't call push_to_top_level if it's not
31a714f6
MM
7138 needed.
7139
414ea4aa
MM
71402000-12-28 Mark Mitchell <mark@codesourcery.com>
7141
7142 * pt.c (register_local_specialization): Don't return a value.
7143 (lookup_template_class): Use move-to-front heuristic when looking
7144 up template instantiations.
7145 (instantiate_decl): Only push_to_top_level when we're actually
7146 going to instantiate the template.
7147
6f18f7e9
HPN
71482000-12-29 Hans-Peter Nilsson <hp@bitrange.com>
7149
7150 * search.c (binfo_for_vtable): Return least derived class, not
7151 most. Handle secondary vtables.
7152
e5214479
JM
71532000-12-22 Jason Merrill <jason@redhat.com>
7154
3c8c2a0a
JM
7155 * pt.c (more_specialized): Don't optimize len==0.
7156 (fn_type_unification): If we're adding the return type, increase len.
7157
ebb1abc3
JM
7158 * typeck.c (build_binary_op): Fix pmf comparison logic.
7159
c939ca5f
JM
7160 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
7161 DECL_STATIC_FUNCTION_P.
7162
e6fe680d
JM
7163 * semantics.c (genrtl_finish_function): Don't try to jump to
7164 return_label unless it exists.
7165
e5214479
JM
7166 In partial ordering for a call, ignore parms for which we don't have
7167 a real argument.
7168 * call.c (joust): Pass len to more_specialized.
7169 (add_template_candidate_real): Strip 'this', pass len.
7170 * pt.c (more_specialized): Pass len down. Lose explicit_args parm.
7171 (get_bindings_order): New fn. Pass len down.
7172 (get_bindings_real): Strip 'this', pass len.
7173 (fn_type_unification): Likewise.
7174 (type_unification_real): Succeed after checking 'len' args.
7175 (most_specialized_instantiation): Lose explicit_args parm.
d363e7bf 7176 * class.c (resolve_address_of_overloaded_function): Strip 'this',
e5214479
JM
7177 pass len.
7178
71792000-12-21 Jason Merrill <jason@redhat.com>
477f6664
JM
7180
7181 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
7182 DECL_TEMPLATE_RESULT.
7183
7184 * search.c (lookup_field_r): Call lookup_fnfields_1, not
7185 lookup_fnfields_here.
7186
7187 * parse.y (typename_sub2): Return the TYPE_DECL, not the type.
7188
7189 * call.c (build_object_call): Also allow conversions that return
7190 reference to pointer to function.
7191 (add_conv_candidate): Handle totype being ref to ptr to fn.
7192 (build_field_call): Also allow members of type reference to function.
7193 Lose support for calling pointer to METHOD_TYPE fields.
7194
7195 * error.c (dump_expr): Handle *_CAST_EXPR.
7196
7197 * typeck2.c (build_scoped_ref): Always convert to the naming class.
7198
7199 * tree.c (break_out_cleanups): Lose.
7200 * cp-tree.h: Remove prototype.
7201 * typeck.c (build_component_ref): Don't break_out_cleanups.
7202 (build_compound_expr): Likewise.
7203 * semantics.c (finish_expr_stmt): Likewise.
7204
3e4d04a1
RH
72052000-12-20 Richard Henderson <rth@redhat.com>
7206
7207 * cp-tree.h: Update declarations.
7208 * decl.c (finish_case_label): Return the new stmt node.
7209 * semantics.c (finish_goto_stmt): Likewise.
7210 (finish_expr_stmt, finish_return_stmt): Likewise.
7211 (finish_break_stmt, finish_continue_stmt): Likewise.
7212 (finish_asm_stmt): Likewise.
7213 * parse.y (already_scoped_stmt): Set STMT_LINENO.
7214 (compstmt, implicitly_scoped_stmt, stmt): Likewise.
7215 (simple_if, simple_stmt): Return the new stmt node.
7216 (save_lineno): New.
7217
20d380b1
JM
72182000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
7219
7220 * cp-tree.h: Don't declare warn_long_long.
7221
221c7a7f
KL
72222000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7223
7224 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
7225 IS_AGGR_TYPE.
7226
b429fdf0
KL
72272000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7228
7229 * pt.c (unify): Handle when both ARG and PARM are
7230 BOUND_TEMPLATE_TEMPLATE_PARM.
7231
c2beae77
KL
72322000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7233
7234 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
7235 DECL_TEMPLATE_PARM_P.
7236
c3e899c1
JM
72372000-12-15 Jason Merrill <jason@redhat.com>
7238
96790071
JM
7239 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs!
7240
8d42565b
JM
7241 * init.c (build_new_1): Don't strip quals from type.
7242
fab09a24
JM
7243 * decl.c (pushdecl): Don't check for linkage on a non-decl.
7244
c3e899c1
JM
7245 * call.c (build_op_delete_call): See through ARRAY_TYPEs.
7246
7247 * call.c (build_new_function_call): Lose space before paren in
7248 error message.
7249 (build_new_method_call): Likewise.
7250
7251 * typeck2.c (build_m_component_ref): Propagate quals from datum.
7252
edac124d
KL
72532000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7254
7255 * pt.c (check_explicit_specialization): Propagate default
7256 function arguments to explicit specializations.
7257
31750649 72582000-12-13 DJ Delorie <dj@redhat.com>
8d3b081e
DD
7259
7260 * typeck.c (build_binary_op): Do signed/unsigned warnings for >?
7261 and <? operators.
7262
5e818b93
JM
72632000-12-08 Jason Merrill <jason@redhat.com>
7264
7265 * error.c (dump_function_name): Don't let the user see __comp_ctor.
7266
7267 Clean up copy-initialization in overloading code.
7268 * call.c (build_user_type_conversion_1): Die if we are asked to
7269 convert to the same or a base type.
7270 (implicit_conversion): Avoid doing so. Lose reference binding code.
7271 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
7272 direct-initialization. Also do direct-init part of copy-init.
7273 (build_user_type_conversion): Don't provide context to convert_like.
7274 * cvt.c (ocp_convert): build_user_type_conversion will now provide
7275 the constructor call for copy-init.
7276
7277 * pt.c (tsubst_decl): Call clone_function_decl here if this is an
7278 instantiation of a member template.
7279 (do_decl_instantiation): Not here.
7280
38da6039
NS
72812000-12-07 Nathan Sidwell <nathan@codesourcery.com>
7282
7283 * class.c (check_field_decls): Don't special case anonymous
7284 fields in error messages.
c9407e4c 7285 (note_name_declared_in_class): Use %D on diagnostic.
d363e7bf 7286
38da6039
NS
7287 * tree.c (pod_type_p): Use strip_array_types.
7288 (cp_valid_lang_attribute): Likewise.
7289 * typeck.c (cp_type_quals): Strip arrays separately, to avoid
7290 multiple evaluations.
d363e7bf 7291 (cp_has_mutable_p): Use strip_array_types.
38da6039 7292
a11d04b5
NS
72932000-12-07 Nathan Sidwell <nathan@codesourcery.com>
7294
7295 * cp-tree.h (sufficient_parms_p): Declare new function.
7296 * call.c (sufficient_parms_p): New function, broken out of ...
7297 (add_function_candidate): ... here. Use it.
7298 (add_conv_candidate): Use it.
7299 * decl.c (grok_ctor_properties): Use it.
7300
5eec2847
JJ
73012000-12-07 Jakub Jelinek <jakub@redhat.com>
7302
7303 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
7304
c907e684
JM
73052000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
7306
7307 * decl2.c (lang_decode_option): Handle -Wformat-security.
7308
74601d7c
KL
73092000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7310
7311 * pt.c (verify_class_unification): New function.
7312 (get_class_bindings): Use it.
7313 (try_class_unification): Tidy.
7314 (unify): Handle when argument of a template-id is not
7315 template parameter dependent.
7316 (template_args_equal): Handle when TREE_CODE's do not match.
7317
8954e858
AO
73182000-12-06 Alexandre Oliva <aoliva@redhat.com>
7319
7320 * lang-specs.h (c++): When invoking the stand-alone preprocessor
7321 for -save-temps, pass all relevant -Defines to it, and then don't
7322 pass them to cc1plus.
7323
3dc9aec6
WC
73242000-12-05 Will Cohen <wcohen@redhat.com>
7325
7326 * decl.c (finish_case_label): Cleared
7327 more_cleanups_ok in surrounding function scopes.
7328 (define_label): Likewise.
7329
cbb40945
NS
73302000-12-05 Nathan Sidwell <nathan@codesourcery.com>
7331
7332 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
7333 (get_matching_virtual): Remove.
7334 (look_for_overrides): Declare new function.
7335 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
7336 DECL_VINDEX here.
7337 * class.c (check_for_override): Move base class iteration code
7338 to look_for_overrides.
7339 * search.c (next_baselink): Remove.
7340 (get_virtuals_named_this): Remove.
7341 (get_virtual_destructor): Remove.
7342 (tree_has_any_destructors_p): Remove.
7343 (struct gvnt_info): Remove.
7344 (check_final_overrider): Remove `virtual' from error messages.
7345 (get_matching_virtuals): Remove. Move functionality to ...
7346 (look_for_overrides): ... here, and ...
7347 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
7348 to be overriding.
7349
61402b80
NS
73502000-12-05 Nathan Sidwell <nathan@codesourcery.com>
7351
7352 * typeck.c (get_delta_difference): If via a virtual base,
7353 return zero.
7354 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no
7355 adjustment.
7356
39abc9a6
RH
73572000-12-04 Richard Henderson <rth@redhat.com>
7358
7359 * error.c (dump_tree): Use output_add_string not OB_PUTS.
7360
c00996a3
JM
73612000-12-04 Jason Merrill <jason@redhat.com>
7362
7363 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
d363e7bf 7364 (write_builtin_type): Pass intSI_type_node and the like through
c00996a3
JM
7365 type_for_mode.
7366 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
7367 Pass intSI_type_node and the like through type_for_mode.
7368 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
7369 * pt.c (tsubst, unify): Likewise.
7370 * tree.c (walk_tree): Likewise.
7371 * error.c (dump_type): Likewise.
7372 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
d363e7bf 7373
c00996a3
JM
7374 * Make-lang.in: Tweak top comment for emacs.
7375 (cp/TAGS): Restore.
7376
7377 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
7378
c00996a3
JM
7379 * class.c (clone_function_decl): Robustify.
7380
73812000-12-04 Michael Matz <matzmich@cs.tu-berlin.de>
7382
7383 * decl.c (store_bindings): Only search in the non modified
7384 old_bindings for duplicates.
7385
00bb3dad
NS
73862000-12-04 Nathan Sidwell <nathan@codesourcery.com>
7387
7388 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
7389 TYPE_POLYMORPHIC_P.
d363e7bf 7390
00bb3dad
NS
7391 * typeck.c (build_static_cast): Remove unused variable.
7392
dc957d14
KL
73932000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7394
7395 * pt.c: Fix typo in comment.
7396
4d808927
JM
73972000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
7398
7399 * decl2.c (warn_format): Remove definition.
7400 (lang_decode_option): Handle -Wformat-nonliteral,
7401 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat.
7402
5fd8e536
JM
74032000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
7404
7405 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
7406 (init_decl_processing): Don't create string_type_node,
7407 const_string_type_node, wint_type_node, intmax_type_node,
7408 uintmax_type_node, default_function_type, ptrdiff_type_node and
7409 unsigned_ptrdiff_type_node. Adjust position of call to
7410 c_common_nodes_and_builtins.
7411 (identifier_global_value): New function.
7412
13f9714b
NS
74132000-12-01 Nathan Sidwell <nathan@codesourcery.com>
7414
7415 * call.c (standard_conversion): Reject pointer to member
7416 conversions from ambiguous, inaccessible or virtual bases.
7417 * typeck.c (build_static_cast): Don't check pointers to members
7418 specially.
7419
31b1b957
NS
74202000-11-30 Nathan Sidwell <nathan@codesourcery.com>
7421
7422 * method.c (do_build_copy_constructor): Preserve cv
7423 qualifications when accessing source object members.
7424 (do_build_assign_ref): Likewise. Remove separate diagnostics for
7425 unnamed fields.
7426
717e3f73
NS
74272000-11-30 Nathan Sidwell <nathan@codesourcery.com>
7428
7429 * method.c (do_build_assign_ref): Construct appropriately
7430 CV-qualified base reference. Don't allow const casts in base
7431 conversion.
7432
2c92b94d
NS
74332000-11-30 Nathan Sidwell <nathan@codesourcery.com>
7434
7435 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on
7436 incomplete return type.
7437
bb92901d
NS
74382000-11-28 Nathan Sidwell <nathan@codesourcery.com>
7439
7440 * parse.y (base_class.1): Produce a _TYPE not a _DECL.
7441 * semantics.c (finish_base_specifier): Accept a _TYPE not a
7442 _DECL.
7443
2f3608c3
NS
74442000-11-28 Nathan Sidwell <nathan@codesourcery.com>
7445
7446 * spew.c (yyerror): Cope if yylval.ttype is NULL.
7447
eeb75383
NS
74482000-11-28 Nathan Sidwell <nathan@codesourcery.com>
7449
7450 * decl.c (grokdeclarator): Diagnose undefined template contexts.
7451
5ee4cc26
NS
74522000-11-28 Nathan Sidwell <nathan@codesourcery.com>
7453
7454 * decl.c (grokdeclarator): Do type access control on friend
7455 class.
7456
76e57b45
NS
74572000-11-27 Nathan Sidwell <nathan@codesourcery.com>
7458
7459 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
7460 bison parser ickiness.
7461 * pt.c (tsubst_friend_function): Enter namespace scope when
7462 tsubsting the function name.
7463 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
7464
f9825168
NS
74652000-11-27 Nathan Sidwell <nathan@codesourcery.com>
7466
7467 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
7468 * cvt.c (cp_convert_to_pointer): Add force parameter.
7469 Allow conversions via virtual base if forced.
7470 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
7471 (ocp_convert): Likewise.
7472 * search.c (binfo_from_vbase): Return the virtual base's binfo.
7473 * typeck.c (get_delta_difference): Adjust handling of virtual
7474 bases.
7475
9ccb25d5
MM
74762000-11-26 Mark Mitchell <mark@codesourcery.com>
7477
7478 * tree.c (struct list_hash): Remove.
7479 (list_hash_table): Make it be an htab.
7480 (struct list_proxy): New type.
7481 (list_hash_eq): New function.
7482 (list_hash_pieces): Renamed from ...
7483 (list_hash): ... this.
7484 (list_hash_lookup): Remove.
7485 (list_hash_add): Remove.
7486 (hash_tree_cons): Use the generic hashtable.
7487 (mark_list_hash): Remove.
7488 (init_tree): Create the hashtable.
7489
9399bad3
JM
74902000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
7491
7492 * method.c (build_mangled_C9x_name): Rename to
7493 build_mangled_C99_name. Change C9X references in comments to
7494 refer to C99.
7495
2f401cc8
NS
74962000-11-24 Nathan Sidwell <nathan@codesourcery.com>
7497
7498 * parse.y (unary_expr): Move VA_ARG from here ...
7499 (primary): ... to here.
7500
3d7e9ba4
NS
75012000-11-24 Nathan Sidwell <nathan@codesourcery.com>
7502
7503 * semantics.c (finish_id_expr): If type is error_mark, return
7504 error_mark.
7505
ab097535
NS
75062000-11-23 Nathan Sidwell <nathan@codesourcery.com>
7507
7508 * pt.c (lookup_template_class): Simplify loop exit constructs.
7509 Cope when there is no partial instantiation of a template
7510 template member.
7511
9196ece5
R
7512Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com>
7513
7514 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
7515
cac78ea2
MM
75162000-11-22 Mark Mitchell <mark@codesourcery.com>
7517
6e1b44bc
MM
7518 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
7519 prefix.
7520
cac78ea2
MM
7521 * pt.c (do_decl_instantiate): Explicitly clone constructors and
7522 destructors that haven't already been cloned.
7523
3aac38d7
RH
75242000-11-20 Richard Henderson <rth@redhat.com>
7525
7526 * parse.y (yyparse_1): Rename the parser entry point.
7527
75282000-11-20 Alex Samuel <samuel@codesourcery.com>
beac9b93
AS
7529
7530 * mangle.c (write_name): Use <unscoped-name> for names directly in
7531 function scope.
7532 (write_unscoped_name): Accept names directly in function scope.
d363e7bf 7533
447306fa
NS
75342000-11-20 Nathan Sidwell <nathan@codesourcery.com>
7535
7536 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
7537 * parse.y (extdef): Add EXPORT reduction.
7538 * spew.c (yylex): Don't skip export here.
7539
2650255a
MM
75402000-11-19 Mark Mitchell <mark@codesourcery.com>
7541
7542 * decl.c (init_decl_processing): Correct name of pure virtual
7543 function under the new ABI.
7544 * rtti.c (throw_bad_cast): Likewise, for bad cast function.
7545 (throw_bad_typeid): Likewise for bad typeid function.
7546
0657c69c
MM
75472000-11-18 Mark Mitchell <mark@codesourcery.com>
7548
04f3dc2b
MM
7549 * decl.c (grokparms): Don't even function types of `void' type,
7550 either.
7551 * mangle.c (write_type): Don't crash when confronted with the
7552 error_mark_node.
7553
0657c69c
MM
7554 * decl.c (grokparms): Don't create parameters of `void' type.
7555
a8a05998
ZW
75562000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
7557
7558 * lex.c (mark_impl_file_chain): Delete.
7559 (init_parse): Remove call to ggc_add_string_root. No need to
7560 ggc_strdup a string constant. Do not add impl_file_chain to GC
7561 roots.
7562 (handle_pragma_implementation): No need to ggc_strdup main_filename.
7563
35728a80
NS
75642000-11-17 Nathan Sidwell <nathan@codesourcery.com>
7565
7566 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
7567
5cce22b6
NS
75682000-11-17 Nathan Sidwell <nathan@codesourcery.com>
7569
7570 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
7571 * decl.c (grokdeclarator): Don't reject void parms here.
7572 (require_complete_types_for_parms): Simplify, use
7573 complete_type_or_else.
7574 (grokparms): Remove bitrot. Remove funcdef parm.
7575 Deal with ellipsis parm lists here.
7576 * semantics.c (finish_parmlist): Don't append void_list_node
7577 here. Set PARMLIST_ELLIPSIS_P.
7578
146c8d60
NS
75792000-11-17 Nathan Sidwell <nathan@codesourcery.com>
7580
d30d6e7a 7581 * typeck2.c (incomplete_type_error): Reorganize to avoid
146c8d60
NS
7582 excessive diagnostics.
7583
520a57c8
ZW
75842000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
7585
7586 * lex.c (struct impl_files, internal_filename): Constify a char *.
7587
43048a06
MM
75882000-11-16 Mark Mitchell <mark@codesourcery.com>
7589
7590 * mangle.c (write_special_name_constructor): Don't generate
7591 assembler junk when confronted with an old-style constructor.
7592 (write_special_name_destructor): Likewise.
7593 (mangle_decl_string): Do it here instead.
7594
cdb71673
NS
75952000-11-16 Nathan Sidwell <nathan@codesourcery.com>
7596
7597 * call.c (op_error): Make error messages clearer.
7598
62136084
MM
75992000-11-15 Mark Mitchell <mark@codesourcery.com>
7600
7601 * decl.c (wrapup_globals_for_namespace): Don't mark things
7602 TREE_ASM_WRITTEN when they're not.
7603
ee3400e8
JM
76042000-11-15 Jason Merrill <jason@redhat.com>
7605
7606 * typeck2.c (friendly_abort): Uncount the error before handing
7607 off to fancy_abort.
7608
71631a1f
NS
76092000-11-15 Nathan Sidwell <nathan@codesourcery.com>
7610
7611 * typeck.c (lookup_anon_field): Cope with qv qualifiers.
7612
79cda2d1
MM
76132000-11-14 Mark Mitchell <mark@codesourcery.com>
7614
7615 * class.c (build_vtbl_initializer): Fix typo in comment.
7616 * typeck.c (expr_sizeof): Don't crash on errors.
7617
2567bc56
JW
76182000-11-14 Jim Wilson <wilson@redhat.com>
7619
7620 * lang-specs.h: Add %2 after %(cc1_options).
7621
8422942c
RH
76222000-11-14 Richard Henderson <rth@redhat.com>
7623
7624 * typeck.c (c_sizeof): Be strict about casting result value
7625 back to c_size_type_node.
7626 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
7627
19552aa5
JM
76282000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
7629
7630 * typeck.c (build_unary_op): Use boolean_increment from
7631 c-common.c, moving the relevant code there.
7632
d96a6d1a
JM
76332000-11-11 Jason Merrill <jason@redhat.com>
7634
7635 * typeck.c (mark_addressable): Don't call put_var_into_stack.
492cca24
JM
7636
7637 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
7638 in inlines.
7639
4e135bdd
KG
76402000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7641
7642 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
7643 * lex.c (copy_lang_decl): Likewise.
7644
0a7394bc
MM
76452000-11-09 Mark Mitchell <mark@codesourcery.com>
7646
13507bd8
MM
7647 * dump.c (cp_dump_tree): Don't dump function bodies here.
7648
0a7394bc
MM
7649 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
7650 (dump.o): Update dependency list.
7651 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
7652 (flag_dump_translation_unit): Likewise.
7653 (CP_TYPE_QUALS): Adjust definition.
7654 (DECL_C_BIT_FIELD): Remove.
7655 (SET_DECL_C_BIT_FIELD): Likewise.
7656 (CLEAR_DECL_C_BIT_FIELD): Likewise.
7657 (add_maybe_template): Likewise.
7658 (strip_array_types): Likewise.
7659 (dump_node_to_file): Likewise.
7660 (cp_dump_tree): New function.
7661 * decl.c (init_decl_processing): Set lang_dump_tree.
7662 * decl2.c (flag_dump_translation_unit): Remove.
7663 * dump.c: Move most of it to ../c-dump.c.
7664 (cp_dump_tree): New function.
7665 * pt.c (add_maybe_template): Remove.
7666 * typeck.c (strip_array_types): Likewise.
a8a05998 7667
5362b086
EC
76682000-11-07 Eric Christopher <echristo@redhat.com>
7669
492cca24
JM
7670 * decl.c (init_decl_processing): Change definition of
7671 __wchar_t to wchar_t. Remove artificial declaration of
7672 wchar_t.
7673 * lex.c: Change instances of __wchar_t to wchar_t.
5362b086 7674
5361cbb7
NS
76752000-11-09 Nathan Sidwell <nathan@codesourcery.com>
7676
7677 * lex.c (do_identifier): Don't lookup_name for operators.
7678 * parse.y (operator): Save looking_for_typename.
7679 (unoperator): Restore it.
7680 * spew.c (frob_opname): Use nth_token for lookahead.
7681
36791f1e
NS
76822000-11-08 Nathan Sidwell <nathan@codesourcery.com>
7683
7684 * decl.c (grok_op_properties): Always use coerce_new_type and
7685 coerce_delete_type.
7686 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve
7687 exception specification. Tidy up.
7688 (coerce_delete_type): Preserve exception specification. Tidy up.
7689
961192e1
JM
76902000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
7691
7692 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
7693 (push_binding_level), error.c (cp_tree_printer), pt.c
7694 (process_partial_specialization, tsubst_template_arg_vector),
7695 search.c (lookup_member): Use memset () instead of bzero ().
7696
d48ebde1
NS
76972000-11-07 Nathan Sidwell <nathan@codesourcery.com>
7698
7699 * decl.c (build_ptrmemfunc_type): Allow error_mark_node.
7700
436a88a6
JM
77012000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
7702
7703 * Make-lang.in (c++.distdir): Remove.
7704
7a4e5091
MM
77052000-11-04 Mark Mitchell <mark@codesourcery.com>
7706
7707 * decl2.c (do_nonmember_using_decl): Allow `extern "C"'
7708 declarations from different namespaces to be combined.
7709
0e9295cf
ZW
77102000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
7711
7712 * decl.c: Include tm_p.h.
7713
da61dec9
JM
77142000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
7715
7716 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
7717
9473c522
JM
77182000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
7719
7720 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
7721 (build_overload_value), repo.c (open_repo_file), xref.c
7722 (open_xref_file): Use strchr () and strrchr () instead of index ()
7723 and rindex ().
7724
b0b3afb2
BS
77252000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
7726
7727 * call.c (build_over_call): Call fold on the CALL_EXPR.
7728
faafaee6
GDR
77292000-11-01 Gabriel Dos Reis <gdr@codesourcery.com>
7730
7731 * error.c (dump_template_decl): Separate template hearders with
7732 space not comma.
7733
761f0855
GDR
77342000-10-31 Gabriel Dos Reis <gdr@codesourcery.com>
7735
7736 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace
7737 TS_* flags with corresponding TFF_*. Adjust prototypes of
7738 functions (which used to take a tree_string_flags) to take an int.
7739
7740 * cp-tree.h (enum tree_string_flags): Remove
7741 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
7742 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
7743 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
7744 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
7745 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
7746 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
7747 (type_as_string, decl_as_string, expr_as_string,
7748 context_as_string): Adjust prototype.
7749
7750 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
7751 instead of TS_PLAIN.
7752
7753 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
7754 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
7755 plain `0'.
7756
ad50e811
MM
77572000-10-30 Mark Mitchell <mark@codesourcery.com>
7758
7759 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
7760 (linkage_kind): New enumeration.
7761 (decl_linkage): New function.
7762 * decl2.c (comdat_linkage): Extend comment.
7763 * error.c (dump_function_decl): Print the arguments used to
7764 instantiate a template, even when not printing the type of the
7765 function.
7766 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
7767 not TREE_PUBLIC, to test for external linkage.
7768 * tree.c (decl_linkage): New function.
7769
930cd796
MM
77702000-10-28 Mark Mitchell <mark@codesourcery.com>
7771
7772 * pt.c (instantiate_decl): Always instantiate static data members
7773 initialized in-class.
7774
b8dad04b
ZW
77752000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
7776
7777 * Make-lang.in: Move all build rules here from Makefile.in,
7778 adapt to new context. Wrap all rules that change the current
7779 directory in parentheses. Expunge all references to $(P).
7780 When one command depends on another and they're run all at
7781 once, use && to separate them, not ;. Add OUTPUT_OPTION to
7782 all object-file generation rules. Delete obsolete variables.
7783
7784 * Makefile.in: Delete.
7785 * config-lang.in: Delete outputs= line.
7786
5f9cd837
GDR
77872000-10-26 Gabriel Dos Reis <gdr@codesourcery.com>
7788
7789 * error.c (dump_function_decl): Print no space between
7790 `ptr-operator' the `type-specifier' of the return type.
7791 (dump_type_prefix): Make sure we put space at the appropriate
5362b086 7792 place.
5f9cd837 7793
6c6ed0ef
JM
77942000-10-23 Jason Merrill <jason@redhat.com>
7795
7796 * call.c (equal_functions): Also call decls_match for extern "C" fns.
7797
77982000-10-22 Jason Merrill <jason@redhat.com>
7799
7800 * call.c (build_conditional_expr): Use ocp_convert to force
7801 rvalue conversion.
7802
e36308b0
MM
78032000-10-22 Mark Mitchell <mark@codesourcery.com>
7804
583ca5a0
MM
7805 * call.c (standard_conversion): Use RVALUE_CONVs for all
7806 expressions that satisfy lvalue_p, not just those that satisfy
7807 real_lvalue_p.
7808
f9808f81
MM
7809 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
7810
5362b086 7811 * typeck.c (c_sizeof): Return an expression of `size_t' type,
e36308b0
MM
7812 not one with TYPE_IS_SIZETYPE set.
7813 (dubious_conversion_warnings): Remove special-case code.
7814
3b9ae6f0
GK
78152000-10-21 Geoffrey Keating <geoffk@cygnus.com>
7816
7a0f14e5
GK
7817 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
7818 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
7819 (dump_type_prefix): Print vector-of-int as 'int vector'.
7820 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
7821 * tree.c (walk_tree): Handle VECTOR_TYPE.
7822
3b9ae6f0 7823 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
5362b086 7824
aca77bd1
JM
78252000-10-21 Jason Merrill <jason@redhat.com>
7826
7827 * parse.y (operator): Set got_object from got_scope.
7828 Set looking_for_typename.
7829 * decl.c (lookup_name_real): Clear val after setting from_obj.
7830 Reorganize diagnostic.
7831
ba523395
JM
78322000-10-20 Jason Merrill <jason@redhat.com>
7833
7834 * tree.c (walk_tree): Don't walk into default args.
7835
7836 * error.c (dump_expr): Use host_integerp.
7837
2e44948d
DE
78382000-10-20 David Edelsohn <edelsohn@gnu.org>
7839
7840 * typeck2.c (abstract_virtuals_error): Use "because" instead of
7841 "since" in error message.
7842
44475138
RK
7843Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7844
7845 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
7846
11306230
JO
78472000-10-20 Jeffrey Oldham <oldham@codesourcery.com>
7848
7849 * decl.c (revert_static_member_fn): Fixed typo.
7850
97ba1e3c
MM
78512000-10-19 Mark Mitchell <mark@codesourcery.com>
7852
c20118a8
MM
7853 * class.c (subobject_offset_fn): New type.
7854 (dfs_record_base_offsets): Remove.
7855 (record_base_offsets): Likewise.
7856 (dfs_search_base_offsets): Likewise.
7857 (record_subobject_offset): New function.
7858 (check_subobject_offset): Likewise.
7859 (walk_subobject_offsets): Likewise.
7860 (record_subobject_offsets): Likewise.
7861 (layout_conflict_p): Reimplement.
7862 (layout_nonempty_base_or_field): Correct handling of type
7863 conflicts during layout.
7864 (layout_empty_base): Likewise.
7865 (build_base_field): Adjust to handle new representation of empty
7866 base offset table.
7867 (build_base_fields): Likewise.
7868 (layout_virtual_bases): Likewise.
7869 (splay_tree_compare_integer_csts): New function.
7870 (layout_class_type): Use a splay_tree, rather than a varray, to
7871 represent the offsets of empty bases.
5362b086 7872
97ba1e3c
MM
7873 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
7874 * decl.c (select_decl): Don't return declarations that are
7875 DECL_ANTICIPATED.
7876
6bcedb4e
MM
78772000-10-18 Mark Mitchell <mark@codesourcery.com>
7878
7879 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
7880 (fake_std_node): New macro.
7881 * decl.c (in_std): Rename to ...
7882 (in_fake_std): ... this.
7883 (flag_no_builtin): Remove.
7884 (flag_no_nonansi_builtin): Likewise.
7885 (walk_namespaces_r): Use fake_std_node.
7886 (push_namespace): Use std_identifier.
7887 (pop_namespace): Use in_fake_std.
7888 (lookup_name_real): Use fake_std_node.
7889 (init_decl_processing): When -fhonor-std, create the `std'
7890 namespace. Don't create a dummy fake_std_node in that case.
7891 Adjust call to c_common_nodes_and_builtins. Use std_identifier.
7892 (builtin_function): Put builtins whose names don't begin
7893 with `_' in the std namespace.
7894 * decl2.c (flag_no_builtin): Remove.
7895 (flag_no_nonansi_builtin): Likewise.
7896 (set_decl_namespace): Use fake_std_node.
7897 (validate_nonmember_using_decl): Likewise.
7898 (do_using_directive): Likewise.
7899 (handle_class_head): Likewise.
7900 * dump.c (dequeue_and_dump): Likewise.
7901 * except.c (init_exception_processing): Use std_identifier.
7902 * init.c (build_member_call): Use fake_std_node.
7903 * rtti.c (init_rtti_processing): Use std_identifier.
5362b086 7904
67673f5c
MM
79052000-10-17 Mark Mitchell <mark@codesourcery.com>
7906
7907 * cp-tree.h (back_end_hook): Remove declaration.
7908 * decl2.c (back_end_hook): Remove definition.
7909
7910 * dump.c (dequeue_and_dump): Dump TREE_USED.
7911
8fef2e47
BL
7912Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu>
7913
7914 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
7915
652469d0
JM
79162000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
7917
7918 * decl.c (WINT_TYPE): Define.
7919 (init_decl_processing): Create types unsigned_ptrdiff_type_node,
7920 c_size_type_node, signed_size_type_node and wint_type_node.
7921
74ff4629
JM
79222000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
7923
7924 * decl2.c (warn_missing_format_attribute): New variable.
7925 (lang_decode_option): Decode -Wmissing-format-attribute.
7926
634790f4
MM
79272000-10-16 Mark Mitchell <mark@codesourcery.com>
7928
7929 * typeck.c (qualify_type): Remove.
7930 (composite_pointer_type): Fix handling of conversions to `cv void*'.
7931
bb12da9d
KG
79322000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7933
7934 * Makefile.in (parse.c, parse.h): Fix think-o in last patch.
7935
4b945402
KG
79362000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7937
7938 * Makefile.in (parse.c, parse.h): Create atomically.
7939
1f8f4a0b
MM
79402000-10-12 Mark Mitchell <mark@codesourcery.com>
7941
7942 * class.c (current_obstack): Remove.
7943 * decl.c (ggc_p): Remove.
7944 (start_decl): Don't use decl_tree_cons.
7945 (grokdeclarator): Don't use build_decl_list.
7946 (start_function): Don't use decl_tree_cons.
7947 (finish_function): Don't mess with obstacks.
7948 * decl2.c (grok_x_components): Don't use build_decl_list.
7949 * lex.c (make_call_declarator): Don't call decl_tree_cons.
7950 (implicitly_declare_fn): Don't call build_decl_list.
7951 * parse.y (frob_specs): Don't call build_decl_list or
7952 decl_tree_cons.
7953 (expr_or_declarator_intern): Don't call decl_tree_cons.
7954 (primary): Don't call build_decl_list.
7955 (fcast_or_absdcl): Likewise.
7956 (typed_declspecs): Don't call decl_tree_cons.
7957 (reserved_declspecs): Don't call build_decl_list.
7958 (declmods): Likewise.
7959 (reserved_typespecquals): Likewise.
7960 (aggr): Likewise.
7961 (new_type_id): Likewise.
7962 (cv_qualifiers): Likewise.
7963 (after_type_declarator_intern): Likewise.
7964 (notype_declarator_intern): Likewise.
7965 (absdcl_intern): Likewise.
7966 (named_parm): Likewise.
7967 * pt.c (most_specialized_class): Likewise.
7968 * repo.c (temporary_obstack): Make it a structure, not a pointer.
7969 (init_repo): Initialize it.
7970 * search.c (current_obstack): Remove.
7971 * typeck2.c (add_exception_specifier): Don't call build_decl_list.
5362b086 7972
8dc54971
RH
79732000-10-09 Richard Henderson <rth@cygnus.com>
7974
7975 * Make-lang.in (CXX_EXTRA_HEADERS): Remove.
7976 (c++ language support bits for libgcc): Remove.
7977 (c++.clean): Remove cplib2.txt cleanup.
7978 * config-lang.in (headers, lib2funcs): Remove.
7979
7980 * exception.cc, new.cc, new1.cc, new2.cc: Remove files.
7981 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
7982 * inc/cxxabi.h, inc/exception, inc/new: Remove files.
7983 * inc/new.h, inc/typeinfo: Remove files.
7984
b15ad712
JM
79852000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
7986
7987 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
7988 defined.
7989 (init_decl_processing): Initialize intmax_type_node and
7990 uintmax_type_node.
7991
156ce211
RH
79922000-10-06 Richard Henderson <rth@cygnus.com>
7993
7994 * cp-tree.h (struct cp_language_function): Remove x_result_rtx.
7995 (original_result_rtx): Remove.
7996 * decl.c (save_function_data): Don't clear x_result_rtx.
7997 (mark_lang_function): Don't mark it either.
7998 * expr.c (fixup_result_decl): Remove.
7999 * semantics.c (genrtl_named_return_value): Frob the return decl
8000 before calling emit_local_var.
8001 (genrtl_finish_function): Don't call fixup_result_decl.
8002 Always emit the jump to return_label.
8003
92777ce4
NS
80042000-10-06 Nathan Sidwell <nathan@codesourcery.com>
8005
8006 * pt.c (lookup_template_class): Set current access for enum.
8007 (tsubst_enum): Set file & line for enum decl.
5362b086 8008
92777ce4
NS
8009 * spew.c (yylex): Remove unused variable.
8010
63c16fc5
RH
80112000-10-05 Richard Henderson <rth@cygnus.com>
8012
8013 * semantics.c (genrtl_finish_function): Don't init or check
8014 can_reach_end; remove noreturn and return value checks.
8015
d1a458c4
TT
80162000-10-05 Tom Tromey <tromey@cygnus.com>
8017
8018 * init.c (build_java_class_ref): Use `build_static_name' with a
8019 suffix, not a prefix, to build the class object's name.
8020
509fc277
NS
80212000-10-05 Nathan Sidwell <nathan@codesourcery.com>
8022
8023 * cp-tree.h (access_kind): Fix comment typo.
8024 * decl2.c (grokfield): Fix diagnostic typo.
8025 * semantics.c (finish_template_type): Fix comment typo.
8026 (finish_qualified_object_call_expr): Likewise.
8027
ce2e5191
NS
80282000-10-05 Nathan Sidwell <nathan@codesourcery.com>
8029
8030 * pt.c (tsubst_expr, DECL_STMT case): Don't process if
5362b086 8031 tsubsting fails.
ce2e5191 8032
79cc5312
NS
80332000-10-05 Nathan Sidwell <nathan@codesourcery.com>
8034
8035 * spew.c (frob_id): New static function.
8036 (frob_opname): Use it.
8037 (yylex): Use it.
8038
f15b9af9
MM
80392000-10-01 Mark Mitchell <mark@codesourcery.com>
8040
8041 * decl.c (lang_mark_false_label_stack): Remove.
8042 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
5362b086 8043
28e6b1c2
JM
80442000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
8045
8046 * gxxint.texi: Use @email for formatting email addresses.
8047
99885b3f
GDR
80482000-09-29 Gabriel Dos Reis <gdr@codesourcery.com>
8049
8050 * error.c: Remove direct obstack manipulation. Replace with
8051 output_buffer-based formatting. Adjust calls to removed macros.
8052 (obstack_chunk_alloc, obstack_chunk_free): Remove.
8053 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
8054 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
8055
c06aa51e
MM
80562000-09-24 Mark Mitchell <mark@codesourcery.com>
8057
8058 * ir.texi: Move to ../c-tree.texi.
8059
99fada40
JM
80602000-09-20 Jason Merrill <jason@redhat.com>
8061
8062 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
8063
bb20cc46
AJ
80642000-09-21 Andreas Jaeger <aj@suse.de>
8065
8066 * errfn.c: Move declaration of cp_printer and cp_printers to ...
8067 * cp-tree.h: ... here.
8068
8069 * error.c: Remove declaration of cp_printer.
8070
fab701da
MM
80712000-09-20 Mark Mitchell <mark@codesourcery.com>
8072
8073 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
8074
0370fea1
HPN
80752000-09-20 Hans-Peter Nilsson <hp@axis.com>
8076
8077 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
8078 users.
8079
78c120b5
MM
80802000-09-18 Mark Mitchell <mark@codesourcery.com>
8081
8082 * decl.c (start_function): Robustify.
8083
3f80e6ac
KG
80842000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8085
8086 * cp-tree.h (check_function_format): Accept a `status' parameter.
bb20cc46 8087
3f80e6ac
KG
8088 * call.c, typeck.c: Updates calls to `check_function_format'.
8089
fc928afe
GK
80902000-09-17 Geoffrey Keating <geoffk@cygnus.com>
8091
8092 * decl2.c (handle_class_head): Always push some scope even
8093 in the error case.
8094
8f17b5c5
MM
80952000-09-16 Mark Mitchell <mark@codesourcery.com>
8096
8097 * cp-tree.h (struct cp_language_function): Remove
8098 x_scope_stmt_stack and name_declared.
8099 (current_scope_stmt_stack): Remove.
8100 (function_name_declared_p): New macro.
8101 (struct lang_decl_flags): Use c_lang_decl as a base class.
8102 (context): Remove.
8103 (struct lang_decl): Replace saved_tree with context.
8104 (DECL_FRIEND_CONTEXT): Adjust accordingly.
8105 (SET_DECL_FRIEND_CONTEXT): Likewise.
8106 (DECL_VIRTUAL_CONTEXT): Likewise.
8107 (DECL_SAVED_TREE): Remove.
8108 (C_DECLARED_LABEL_FLAG): Likewise.
8109 (cplus_expand_expr_stmt): Don't declare.
8110 (add_decl_stmt): Likewise.
8111 (add_scope_stmt): Likewise.
8112 * decl.c (mark_stmt_tree): Remove.
8113 (case_compare): Likewise.
8114 (finish_case_label): Use c_add_case_label.
8115 (init_decl_processing): Set more language-specific hooks.
8116 (build_enumerator): Fix typo in comment.
8117 (cplus_expand_expr_stmt): Remove.
8118 (mark_lang_function): Use mark_c_language_function.
8119 (lang_mark_tree): Use c_mark_lang_decl.
8120 * decl2.c: Change order of inclusion.
8121 * except.c: Likewise.
8122 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall
8123 back on c_expand_expr.
8124 * friend.c: Include expr.h.
8125 * init.c: Change order of inclusion.
8126 * Makefile.in: Update dependencies.
8127 * lex.h (free_lang_decl_chain): Remove.
8128 * optimize.c (maybe_clone_body): Use function_name_declared_p.
8129 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
8130 it doesn't exist.
8131 (instantiate_decl): Use function_name_declared_p.
8132 * semantics.c (lang_expand_expr_stmt): Remove.
8133 (set_current_function_name_declared): Likewise.
8134 (current_function_name_declared): Likewise.
8135 (begin_compound_stmt): Use function_name_declared_p.
8136 (add_decl_stmt): Remove.
8137 (setup_vtbl_ptr): Use function_name_declared_p.
8138 (add_scope_stmt): Remove.
8139 (current_scope_stmt_stack): New function.
8140 (cp_expand_stmt): Don't handle SCOPE_STMTs.
8141 (expand_body): Use function_name_declared_p.
8142 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
8143 * typeck.c: Change order of includes.
8144 (convert_sequence): Remove.
bb20cc46 8145
d9dbd9b1
JM
81462000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
8147
8148 * lex.c (reswords): Add _Complex.
8149
9985f210
RK
8150Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8151
8152 * Make-lang.in (cplib2.txt): Depend on cp/Makefile.
8153
f903ebb1
DA
81542000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8155
8156 * init.c (begin_init_stmts): Don't use // comments.
8157
f2ae0c45
JM
81582000-09-12 Jason Merrill <jason@redhat.com>
8159
8160 * decl.c (maybe_deduce_size_from_array_init): Set do_default for
8161 all non-extern arrays.
8162
8163 * decl.c (grokdeclarator): Complain about 'friend T' for implicit
8164 typenames, too. Downgrade complaint to pedwarn.
8165 (xref_tag): Warn about surprising behavior of 'friend struct T'.
8166 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
8167 'class This::Inherited'.
8168
71ad4a16
MM
81692000-09-12 Mark Mitchell <mark@codesourcery.com>
8170
8171 * decl.c (finish_case_label): Given the LABEL_DECL a
8172 DECL_CONTEXT.
8173
c3e76028
GDR
81742000-09-12 Gabriel Dos Reis <gdr@codesourcery.com>
8175
8176 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
8177 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
8178 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
8179 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
8180 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
8181 New macros.
8182 (sorry_for_unsupported_tree, print_scope_operator,
8183 print_left_paren, print_right_paren, print_left_bracket,
8184 print_right_bracket, print_whitespace): Likewise.
8185 (aggr_variety): Rename to class_key_or_enum.
8186 (print_type): Rename to print_type_id.
8187 (print_type_specifier_seq, print_simple_type_specifier,
8188 print_elaborated_type_specifier,
8189 print_rest_of_abstract_declarator,
8190 print_parameter_declaration_clause, print_exception_specification,
8191 print_nested_name_specifier, print_template_id,
8192 typedef_original_name, print_template_argument_list_start,
8193 print_template_argument_list_end): New functions.
8194
eb50138b
GDR
81952000-09-11 Gabriel Dos Reis <gdr@codesourcery.com>
8196
a8a05998 8197 * ir.texi: Add more documentation.
eb50138b 8198
f444e36b
MM
81992000-09-11 Mark Mitchell <mark@codesourcery.com>
8200
8201 * cp-tree.h (struct saved_scope): Remove x_function_parms.
8202 (current_function_parms): Don't define.
8203 (struct cp_language_function): Remove parms_stored.
8204 (current_function_just_assigned_this): Don't define.
8205 (current_function_parms_stored): Likewise.
8206 (static_ctors): Declare.
8207 (static_dtors): Likewise.
8208 (SF_EXPAND): Don't define.
8209 (expand_start_early_try_stmts): Remove declaration.
8210 (store_parm_decls): Likewise.
8211 * decl.c (static_ctors): Don't declare.
8212 (static_dtors): Likewise.
8213 (struct binding_level): Remove this_block.
8214 (poplevel): Remove dead code.
8215 (set_block): Likewise.
8216 (mark_binding_level): Don't mark this_block.
8217 (mark_saved_scope): Don't mark x_function_parms.
8218 (init_decl_processing): Don't add current_function_parms as a GC
8219 root.
8220 (check_function_type): Change prototype.
8221 (start_function): Remove RTL-generation code.
8222 (expand_start_early_try_stmts): Remove.
8223 (store_parm_decls): Give it internal linkage. Remove
8224 RTL-generation code.
8225 (finish_function): Remove RTL-generation code.
8226 * decl2.c (static_ctors): Fix formatting.
8227 (static_dtors): Likewise.
8228 * method.c (use_thunk): Don't call store_parm_decls.
8229 (synthesize_method): Likewise.
8230 * optimize.c (maybe_clone_body): Likewise.
8231 * parse.y (fn.def2): Likewise.
8232 (.set_base_init): Likewise.
8233 (nodecls): Likewise.
8234 * pt.c (instantiate_decl): Likewise.
8235 * rtti.c (synthesize_tinfo_fn): Likewise.
8236 * semantics.c (genrtl_try_block): Simplify.
8237 (expand_body): Use genrtl_start_function and
8238 genrtl_finish_function.
8239 (genrtl_start_function): New function.
8240 (genrtl_finish_function): Likewise.
8241
181d2ba0
NS
82422000-09-11 Nathan Sidwell <nathan@codesourcery.com>
8243
8244 * error.c (cp_tree_printer, case 'P'): Append break.
8245
f2d71db6
NS
82462000-09-11 Nathan Sidwell <nathan@codesourcery.com>
8247
8248 * cp-tree.h (frob_opname): Declare.
8249 * parse.y (saved_scopes): New static variable.
8250 (cp_parse_init): Adjust.
8251 (do_id): If lastiddecl is NULL, do do_identifier.
8252 (operator): Save scope information.
aca77bd1 8253 (unoperator): New reduction. Restore scope information.
f2d71db6
NS
8254 (operator_name): Append unoperator. Call frob_opname.
8255 * spew.c (frob_opname): Define.
8256
d8ea8f28
ZW
82572000-09-10 Zack Weinberg <zack@wolery.cumb.org>
8258
8259 * decl.c, rtti.c: Include defaults.h if not already included.
8260 Don't define the *_TYPE_SIZE macros.
8261
56cb9733
MM
82622000-09-09 Mark Mitchell <mark@codesourcery.com>
8263
8264 * cp-tree.h (push_switch): Change prototype.
8265 (check_cp_case_value): Remove declaration.
8266 (decl_constant_value): Likewise.
8267 * decl.c (struct cp_switch): Add switch_stmt and cases.
8268 (case_compare): New function.
8269 (push_switch): Set switch_stmt. Initialize cases.
8270 (pop_switch): Clean up cases.
8271 (define_case_label): Rename to ...
8272 (finish_case_label): ... this. Do semantic analysis for case
8273 labels here.
8274 (start_function): Correct comment.
8275 * decl2.c (check_cp_case_value): Remove.
8276 * expr.c (do_case): Remove.
8277 * pt.c (tsubst_expr): Adjust call to finish_case_label.
8278 * semantics.c (genrtl_do_poplevel): Remove declaration.
8279 (RECHAIN_STMTS): Remove.
8280 (finish_break_stmt): Use build_break_stmt.
8281 (finish_continue_stmt): Use build_continue_stmt.
8282 (finish_switch_cond): Adjust condition here, rater than in
8283 c_expand_start_case.
8284 (finish_case_label): Remove.
8285 * typeck.c (c_expand_return): Remove.
8286 (c_expand_start_case): Likewise.
bb20cc46 8287
990a9693
GDR
82882000-09-07 Gabriel Dos Reis <gdr@codesourcery.com>
8289
8290 * ir.texi: Document type nodes.
8291
ae499cce
MM
82922000-09-06 Mark Mitchell <mark@codesourcery.com>
8293
54f7877c
MM
8294 * cp-tree.h (init_cp_semantics): Declare.
8295 (genrtl_try_block): Don't declare.
8296 (genrtl_handler): Likewise.
8297 (genrtl_catch_block): Likewise.
8298 (genrtl_ctor_stmt): Likewise.
8299 (genrtl_subobject): Likewise.
8300 (genrtl_do_poplevel): Likewise.
8301 (genrtl_named_return_value): Likewise.
8302 * lex.c (init_parse): Call init_cp_semantics.
8303 * semantics.c (genrtl_try_block): Give it internal linkage.
8304 (genrtl_handler): Likewise.
8305 (genrtl_catch_block): Likewise.
8306 (genrtl_ctor_stmt): Likewise.
8307 (genrtl_subobject): Likewise.
8308 (genrtl_do_poplevel): Likewise.
8309 (genrtl_named_return_value): Likewise.
8310 (lang_expand_stmt): Rename to ...
8311 (cp_expand_stmt): ... this. Only handle C++-specific nodes.
8312 (init_cp_semantics): Define.
8313
3a0d3e1e
MM
8314 * decl.c (initialize_local_var): Remove RTL-generating code.
8315 * semantics.c (genrtl_try_block): Fix formatting.
8316
ae499cce
MM
8317 Move statement-tree facilities from C++ to C front-end.
8318 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
8319 (void_zero_node): Remove.
8320 (stmt_tree): Likewise.
8321 (scope_chain): Adjust.
8322 (language_function): Rename to cp_language_function.
8323 (cp_function_chain): Adjust.
8324 (current_stmt_tree): Remove.
8325 (last_tree): Likewise.
8326 (last_expr_type): Likewise.
8327 (struct lang_decl): Adjust.
8328 (STMT_IS_FULL_EXPR_P): Remove.
8329 (add_tree): Remove.
8330 (begin_stmt_tree): Likewise.
8331 (finish_stmt_tree): Likewise.
8332 (walk_tree_fn): Likewise.
8333 (walk_stmt_tree): Likewise.
8334 * class.c (finish_struct): Replace use of add_tree with add_stmt.
8335 * decl.c (mark_stmt_tree): Adjust type.
8336 (init_decl_processing): Don't build void_zero_node.
8337 (initialize_local_var): Adjust usage of current_stmt_tree.
8338 (finish_enum): Use add_stmt, not add_tree.
8339 (save_function_data): Adjust use of language_function.
8340 (finish_constructor_body): Use add_stmt, not add_tree.
8341 (finish_destructor_body): Likewise.
8342 (push_cp_function_context): Adjust use of language_function.
8343 (pop_cp_function_context): Likewise.
8344 (mark_lang_function): Likewise.
8345 (mark_cp_function_context): Likewise.
8346 * init.c (build_aggr_init): Adjust use of current_stmt_tree.
8347 (build_vec_init): Likewise.
8348 * semantics.c (SET_LAST_STMT): Remove.
8349 (RECHAIN_STMTS): Don't use it.
8350 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
8351 (current_stmt_tree): Define.
8352 (add_tree): Remove.
8353 (finish_goto_stmt): Use add_stmt, not add_tree.
8354 (finish_expr_stmt): Likewise.
8355 (begin_if_stmt): Likewise.
8356 (finish_then_clause): Likewise.
8357 (begin_while_stmt): Likewise.
8358 (begin_do_stmt): Likewise.
8359 (finish_return_stmt): Likewise.
8360 (begin_for_stmt): Likewise.
8361 (finish_break_stmt): Likewise.
8362 (finish_continue_stmt): Likewise.
8363 (begin_switch_stmt): Likewise.
8364 (finish_case_label): Likewise.
8365 (begin_try_block): Likewise.
8366 (begin_function_try_block): Likewise.
8367 (begin_handler): Likewise.
8368 (begin_catch_block): Likewise.
8369 (begin_compound_stmt): Likewise.
8370 (begin_asm_stmt): Likewise.
8371 (finish_asm_stmt): Likewise.
8372 (finish_label_stmt): Likewise.
8373 (add_decl_stmt): Likewise.
8374 (finish_subobject): Likewise.
8375 (finish_decl_cleanup): Likewise.
8376 (finish_named_return_value): Likewise.
8377 (setup_vtbl_ptr): Likewise.
8378 (add_scope_stmt): Likewise.
8379 (finish_stmt_expr): Likewise.
8380 (prune_unused_decls): Remove.
8381 (begin_stmt_tree): Likewise.
8382 (finish_stmt_tree): Likewise.
8383 (prep_stmt): Adjust use of current_stmt_tree.
8384 (lang_expand_stmt): Likewise.
8385 * tree.c (statement_code_p): Remove.
8386 (cp_statement_code_p): New function.
8387 (walk_stmt_tree): Remove.
8388 (init_tree): Set lang_statement_code_p.
bb20cc46 8389
0e5921e8
ZW
83902000-09-06 Zack Weinberg <zack@wolery.cumb.org>
8391
8392 Integrated preprocessor.
8393
8394 * Make-lang.in, Makefile.in: Remove all references to input.c,
8395 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
8396 * gxx.gperf, hash.h, input.c: Delete.
8397 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
8398 initialized properly.
8399
8400 * class.c (fixup_pending_inline): Take a tree, not a
8401 struct pending_inline *. All callers changed.
8402 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
8403 RID_PROTECTED entries in ridpointers[] array here.
8404 * decl.c (duplicate_decls): Do not refer to struct
8405 pending_inline.
8406 (record_builtin_type, init_decl_processing): Use RID_MAX not
8407 CP_RID_MAX.
8408 (grokdeclarator): Use C_IS_RESERVED_WORD.
8409 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
8410 cpplib.
8411 (grok_x_components): Do not inspect pending_inlines chain.
8412
8413 * cp-tree.h (struct lang_identifier): Add rid_code entry.
8414 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
8415 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
8416 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
8417 TIME_IDENTIFIER_FILEINFO): Kill.
8418 Update prototypes.
8419 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
8420 single 32-bit word.
8421 * parse.y: Call do_pending_inlines unconditionally.
8422 reinit_parse_for_method is now snarf_method. fn.defpen is no
8423 longer necessary. Remove unnecessary <itype> annotation on
8424 SCOPE. Do not refer to end_of_file or struct pending_inline.
8425 * semantics.c (begin_inline_definitions): Call
8426 do_pending_inlines unconditionally.
8427
8428 * lex.c: Remove all code now shared with C front end.
8429 Initialize cpplib properly if USE_CPPLIB. Put reserved words
8430 into the get_identifier table. Rewrite pragma handling to
8431 work with the registry. Move code to save tokens for later
8432 processing to spew.c.
8433
8434 * spew.c: Rewrite everything in terms of token streams instead
8435 of text. Move routines here from lex.c / input.c as
8436 appropriate. GC-mark trees hanging off the pending inlines
8437 chain.
8438
44835fdd
MM
84392000-09-06 Mark Mitchell <mark@codesourcery.com>
8440
8441 * NEWS: Mention that the named return value extension has been
8442 deprecated.
8443 * cp-tree.h (original_result_rtx): Define.
8444 (TREE_REFERENCE_EXPR): Remove.
8445 (DECL_VPARENT): Likewise.
8446 (pushdecl_nonclass_level): Likewise.
8447 (store_return_init): Likewise.
8448 (reinit_lang_specific): Likewise.
8449 (genrtl_named_return_value): Change prototype.
8450 * decl.c (original_result_rtx): Remove.
8451 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
8452 Do not generate RTL for local variables here.
8453 (store_return_init): Remove.
8454 * semantics.c (genrtl_named_return_value): Simplify. Fold in
8455 store_return_init.
8456 (finish_named_return_value): Adjust accordingly. Warn that this
8457 extension is deprecated.
8458 (lang_expand_stmt): Adjust call to genrtl_named_return_value.
8459
d7c4edd0
NS
84602000-09-06 Nathan Sidwell <nathan@codesourcery.com>
8461
8462 * pt.c (type_unification_real): Replace switch with if.
8463 (unify): Tsubst non-type parms before comparing.
8464
46e2747c
NS
84652000-09-06 Nathan Sidwell <nathan@codesourcery.com>
8466
8467 * error.c (dump_typename): New function, broken out of ...
8468 (dump_type): ... here. Use it.
8469 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
8470
c833d2be
NS
84712000-09-06 Nathan Sidwell <nathan@codesourcery.com>
8472
8473 * init.c (build_offset_ref): Deal with namespace scoped
8474 TEMPLATE_ID_EXPRs.
8475
b1ce3eb2
NS
84762000-09-06 Nathan Sidwell <nathan@codesourcery.com>
8477
8478 * class.c (resolve_address_of_overloaded_function): Add
8479 explanation message.
8480 * decl.c (define_case_label): Reformat explanation.
8481 * decl2.c (finish_static_data_member_decl): Likewise.
8482 (grokfield): Likewise.
8483 * friend.c (do_friend): Likewise.
8484
11f53b6a
ZW
84852000-09-05 Zack Weinberg <zack@wolery.cumb.org>
8486
8487 * tree.c (walk_tree): Expose tail recursion.
8488 (walk_stmt_tree): New function.
8489 * cp-tree.h: Prototype walk_stmt_tree.
8490 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
8491 the BLOCKs directly. If a BLOCK has no variables after
8492 pruning, discard it.
8493 (finish_stmt_tree): Use walk_stmt_tree. No need to save and
8494 restore the line number.
8495
ee94fce6
MM
84962000-09-05 Mark Mitchell <mark@codesourcery.com>
8497
8498 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
8499 (pt.o): Remove dependency on HTAB_H.
8500 * cp-tree.h: Include hashtab.h.
8501 (walk_tree): Change prototype.
8502 (walk_tree_without_duplicates): New function.
8503 * decl.c (check_default_argument): Use it.
8504 * optimize.c (remap_decl): Adjust calls to walk_tree.
8505 (copy_body): Likewise.
8506 (expand_calls_inline): Likewise.
8507 (calls_setjmp_p): Use walk_tree_without_duplicates.
8508 * pt.c: Don't include hashtab.h.
8509 (for_each_template_parm): Use walk_tree_without_duplicates.
8510 * semantics.c (finish-stmt_tree): Likewise.
8511 (expand_body): Likewise.
8512 * tree.c (walk_tree): Add additional parameter.
8513 (walk_tree_without_duplicates): New function.
8514 (count_trees): Use it.
8515 (verify_stmt_tree): Adjust call to walk_tree.
8516 (find_tree): Use walk_tree_without_duplicates.
8517 (no_linkage_check): Likewise.
8518 (break_out_target_exprs): Adjust call to walk_tree.
8519 (cp_unsave): Likewise.
8520
a1281f45
KL
85212000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8522
8523 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
8524 (TEMPLATE_TEMPLATE_PARM): Adjust comment.
8525 * cp-tree.h (TYPE_BINFO): Adjust comment.
8526 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
8527 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
8528 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
8529 (TYPE_TEMPLATE_INFO): Likewise.
8530 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
8531 * class.c (push_nested_class): Likewise.
8532 * decl.c (lookup_name_real): Likewise.
8533 (grokdeclarator): Likewise.
8534 (grok_op_properties): Likewise.
8535 (xref_tag): Likewise.
8536 (xref_basetypes): Likewise.
8537 * decl2.c (constructor_name_full): Likewise.
8538 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
8539 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
8540 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
8541 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8542 (dump_type_suffix): Likewise.
8543 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
8544 instead.
8545 (get_aggr_from_typedef): Likewise.
8546 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
8547 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8548 (write_template_parm): Likewise.
8549 (write_template_template_parm): Check tree code instead of
8550 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
0e5921e8 8551 * method.c (build_overload_nested_name): Add
a1281f45
KL
8552 BOUND_TEMPLATE_TEMPLATE_PARM.
8553 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
8554 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8555 * pt.c (convert_template_argument): Check tree code instead of
8556 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
8557 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
8558 (for_each_template_parm): Adjust comment.
8559 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize.
8560 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8561 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use
8562 template_args_equal to compare template template parameter cases.
8563 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8564 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
8565 instead.
8566 * tree.c (copy_template_template_parm): Decide whether to create
8567 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
8568 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
8569 (copy_tree_r): Likewise.
8570 * typeck.c (comptypes): Likewise. Check tree code instead of
8571 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
8572
c9672d45
ME
85732000-09-04 Mark Elbrecht <snowball3@bigfoot.com>
8574
8575 * decl.c (finish_function): Move the code for handling functions
8576 marked with the constructor and destructor attributes inside the
8577 expand_p block.
8578
67804825
NS
85792000-09-04 Nathan Sidwell <nathan@codesourcery.com>
8580
8581 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
8582
1bc0793e
NS
85832000-09-04 Nathan Sidwell <nathan@codesourcery.com>
8584
8585 * pt.c (lookup_template_class): Remove abort.
8586 * tree.c (get_type_decl): Allow error_mark_node.
8587
3338663b
NS
85882000-09-04 Nathan Sidwell <nathan@codesourcery.com>
8589
8590 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
8591 TEMPLATE_ID_EXPRs.
8592
1b84dc37
MM
85932000-09-03 Mark Mitchell <mark@codesourcery.com>
8594
8595 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
c9672d45 8596 new ABI mangling.
1b84dc37 8597
9687f8f4
NS
85982000-09-01 Nathan Sidwell <nathan@codesourcery.com>
8599
8600 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
c9672d45 8601 union tag mismatch error reporting.
9687f8f4 8602
4f8025eb
NS
86032000-09-01 Nathan Sidwell <nathan@codesourcery.com>
8604
c9672d45 8605 * call.c (build_scoped_method_call): Check it is not a namespace.
4f8025eb 8606
495d26d6
JM
86072000-08-30 Jason Merrill <jason@redhat.com>
8608
8609 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
8610
8611 * tree.c (bot_manip): Check TREE_CONSTANT rather than
8612 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and
8613 build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
8614
8615 * decl.c (start_function): Always call make_function_rtl.
8616
7efcf466
ZW
86172000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8618
495d26d6 8619 * semantics.c (prune_unused_decls): New function.
7efcf466
ZW
8620 (finish_stmt_tree): Call it via walk_tree.
8621
63ad61ed
ZW
86222000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8623
8624 * class.c (build_secondary_vtable): Constify a char *.
8625 * decl.c (init_decl_processing): Initialize function_id_node,
8626 pretty_function_id_node, and func_id_node.
8627 * input.c (struct input_source): Constify 'str'.
8628 (feed_input): Constify first argument.
8629 * mangle.c (write_identifier): Constify argument.
8630 * pt.c (mangle_class_name_for_template): Constify argument.
8631
4361b41d
MM
86322000-08-29 Mark Mitchell <mark@codesourcery.com>
8633
8634 * typeck.c (mark_addressable): Remove code that pokes around in
8635 RTL.
8636
881c6935
JM
86372000-08-28 Jason Merrill <jason@redhat.com>
8638
8639 * lex.c (file_name_nondirectory): Move to toplev.c.
8640
8641 * cp-tree.h (LOCAL_CLASS_P): New macro.
8642 * class.c (finish_struct_1): Use it.
8643
f0f33848
AS
86442000-08-27 Alex Samuel <samuel@codesourcery.com>
8645
8646 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
8647 (write_encoding): Pass another argument to write_name.
8648 (write_name): Add ignore_local_scope parameter. Fix handling of
8649 local names.
8650 (write_nested_name): Use write_unqualified_name.
8651 (write_prefix): Likewise. Skip out on FUNCTION_DECLs.
8652 (write_template_prefix): Use write_unqualified_name.
8653 (write_component): Remove.
8654 (write_local_name): Add parameter. Use direct local entity to
8655 discriminator calculation.
0e5921e8 8656 (write_class_enum_type): Pass another argument to write_name.
f0f33848
AS
8657 (write_template_template_arg): Likewise.
8658 (make_guard_variable): Likewise.
0e5921e8 8659
94dfccd1
JM
86602000-08-27 Jason Merrill <jason@redhat.com>
8661
8662 * decl.c (pushdecl): Matching decls for local externs are found in
8663 the current level. Propagate linkage information from previous
8664 declarations.
8665
14fdf4b6
GDR
86662000-08-26 Gabriel Dos Reis <gdr@codesourcery.com>
8667
8668 * ir.texi (Expressions): Fix typo.
8669
b5232c64
GM
86702000-08-25 Greg McGary <greg@mcgary.org>
8671
8672 * tree.c (init_tree): Use ARRAY_SIZE.
8673
22a4158c
GDR
86742000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
8675
8676 * error.c (cp_tree_printer): Rework.
8677
f22967f3
MM
86782000-08-25 Mark Mitchell <mark@codesourcery.com>
8679
a0c182fe
MM
8680 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
8681 dyn-string.o.
8682 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
8683 (cp-demangle.o): Remove target.
8684 (dyn-string.o): Likewise.
8685
f22967f3
MM
8686 * decl.c (grokfndecl): Require that `main' return an `int'.
8687 * mangle.c (write_encoding): Don't mangle return types for
8688 conversion functions.
8689
a1066c99
GDR
86902000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
8691
8692 * error.c (tree_formatting_info): New data type.
8693 (tree_being_formatted): New macro.
8694 (tree_formatting_flags): Likewise.
8695 (put_whitespace): Likewise.
8696 (print_tree_identifier): Likewise.
8697 (print_identifier): Likewise.
8698 (cp_tree_printer, print_function_argument_list, print_declaration,
8699 print_expression, print_function_declaration,
8700 print_function_parameter, print_type, print_cv_qualifier): New
0e5921e8 8701 functions.
a1066c99
GDR
8702 (init_error): Initialize lang_printer.
8703
3f2b640a
JM
87042000-08-24 Jason Merrill <jason@redhat.com>
8705
8706 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no
8707 adjustment necessary.
8708
7ec09bf7
GM
87092000-08-24 Greg McGary <greg@mcgary.org>
8710
8711 * cp-tree.h (MAIN_NAME_P): Remove macro.
8712
2ab99c46
GDR
87132000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
8714
8715 * error.c (print_instantiation_context): Don't forget to flush the
8716 buffer.
8717
7def1251
JM
87182000-08-23 Jason Merrill <jason@redhat.com>
8719
8720 * typeck.c (build_ptrmemfunc): Save the input pmf.
8721
8722 * method.c (process_modifiers): Use same_type_p.
8723
94350948
MM
87242000-08-23 Mark Mitchell <mark@codesourcery.com>
8725
8726 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
8727 * mangle.c (write_function_type): Change prototype.
8728 (write_encoding): Don't mangle return types for
8729 constructors or destructors.
8730 (write_type): Adjust call to write_function_type.
8731 * pt.c (instantiate_template): Instantiate alternate entry points
8732 when instantiating the main function.
0e5921e8 8733
a64e7329
GDR
87342000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
8735
8736 * error.c (cp_print_error_function): Don't use embedded '\n' in
0e5921e8 8737 output_printf.
a64e7329 8738
a72462a4
GDR
87392000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
8740
8741 * decl.c (init_decl_processing): Remove bogus initialization.
8742 * error.c (lang_print_error_function): Restore here.
0e5921e8
ZW
8743 (init_error): Initialize print_error_function.
8744
3add6264
TP
87452000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
8746
8747 * decl2.c (arg_assoc): Revert my 2000-08-11 change.
8748
cb753e49
GDR
87492000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
8750
8751 * Makefile.in (error.o): Depends on diagnostic.h
8752
8753 * cp-tree.h (problematic_instantiation_changed,
8754 record_last_problematic_instantiation, current_instantiation,
8755 print_instantiation_context): Declare.
8756 (maybe_print_template_context): Remove.
8757
8758 * decl.c (init_decl_processing): Set print_error_function to NULL.
8759 (lang_print_error_function): Remove, since we're using a new
8760 machinery.
8761
8762 * error.c: #include diagnostic.h
8763 (function_category): New function.
8764 (cp_diagnostic_starter): Likewise.
8765 (cp_diagnostic_finalizer): Likewise.
8766 (cp_print_error_function): Likewise.
8767 (maybe_print_instantiation_context): Likewise.
8768 (print_instantiation_full_context): Likewise.
8769 (print_instantiation_partial_context): Likewise.
8770 (print_instantiation_context): Define.
8771 (init_error): Initialize diagnostic pager and finalizer.
8772
8773 * pt.c (problematic_instantiation_changed): Define.
8774 (record_last_problematic_instantiation): Likewise.
8775 (current_instantiation): Likewise.
8776 (maybe_print_template_context): Remove.
8777 (print_template_context): Likewise.
8778 (current_tinst_level): Make static to reflect Brendan Kehoe's
8779 change of 1995-04-13.
0e5921e8
ZW
8780 (push_tinst_level): Call print_instantiation_context.
8781
05a3d06e 87822000-08-21 Nix <nix@esperi.demon.co.uk>
0e5921e8 8783
05a3d06e
N
8784 * lang-specs.h: Do not process -o or run the assembler if
8785 -fsyntax-only.
8786
93e2382f
JM
87872000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
8788
8789 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New
8790 variables.
8791 * decl2.c (lang_decode_option): Disable gettext attributes for
8792 -ansi.
8793
24805e80
GDR
87942000-08-21 Gabriel Dos Reis <gdr@codesourcery.com>
8795
8796 * lex.c (lang_init_options): Default diagnostic message maximum
8797 length to 80, when line-wrapping.
8798
b485e15b
MM
87992000-08-20 Mark Mitchell <mark@codesourcery.com>
8800
8801 * class.c (build_vtbl_initializer): Clear the entire
8802 vtbl_init_data. Start keeping track of the functions for which we
8803 have created vcall offsets here.
8804 (dfs_build_vcall_offset_vtbl_entries): Remove.
8805 (build_vcall_offset_vtbl_entries): Reimplement.
8806 (add_vcall_offset_vtbl_entries_r): New function.
8807 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for
8808 computing when vcall offsets are necessary.
8809
2ae7bada
NS
88102000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8811
8812 * decl.c (member_function_or_else): Use cp_error ... %T.
8813 (grokdeclarator): Likewise.
8814 (start_method): Likewise.
0e5921e8 8815 * friend.c (make_friend_class): Use cp_pedwarn ... %T.
2ae7bada 8816
7a8b1375
NS
88172000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8818
8819 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
0e5921e8 8820 TYPE_DECLs.
7a8b1375 8821
19420d00
NS
88222000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8823
8824 * cp-tree.h (PTRMEM_OK_P): New macro.
8825 (itf_ptrmem_ok): New enumeration value.
8826 * class.c (resolve_address_of_overloaded_function): Add PTRMEM
8827 argument. Diagnose implicit pointer to member.
8828 (instantiate_type): Don't diagnose implicit pointer to member
8829 here. Pass itf_ptrmem_ok if ok. Adjust calls to
8830 resolve_address_of_overloaded_function.
8831 * init.c (build_offset_ref): Set PTRMEM_OK_P.
8832 (resolve_offset_ref): Don't diagnose implicit pointer to member here.
8833 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
8834 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
8835 (build_unary_op): Deal with single non-static member in
8836 microsoft-land.
8837
66081283
NS
88382000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8839
8840 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
8841
fa40aa12
NS
88422000-08-18 Nathan Sidwell <nathan@codesourcery.com>
8843
8844 * cp-tree.h (enum_name_string): Remove prototype.
8845 (report_case_error): Remove prototype.
8846 * cp/typeck2.c (enum_name_string): Remove.
8847 (report_case_error): Remove.
8848 * error.c (dump_expr): Deal with enum values directly.
8849 Correctly negate integer constant.
8850
d13b34e9
NS
88512000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8852
8853 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
8854 (__cxa_vec_delete2, __cxa_vec_delete3): Declare.
8855 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
8856 (__cxa_vec_delete2, __cxa_vec_delete3): Implement.
8857 (__cxa_vec_new): Use __cxa_vec_new2.
8858 (__cxa_vec_delete): Use __cxa_vec_delete2.
8859
2f1b80af
NS
88602000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8861
8862 * vec.cc (__cxa_vec_new): Set "C" linkage.
8863 (__cxa_vec_ctor): Likewise.
8864 (__cxa_vec_cctor): Likewise.
8865 (__cxa_vec_dtor): Likewise.
8866 (__cxa_vec_delete): Likewise.
8867 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
8868 (__cxa_vec_ctor): Likewise.
8869 (__cxa_vec_cctor): Likewise.
8870 (__cxa_vec_dtor): Likewise.
8871 (__cxa_vec_delete): Likewise.
8872
105d8e1f
NS
88732000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8874
8875 * class.c (instantiate_type): Reinstate local variable
8876 deleted in previous change.
0e5921e8 8877
f1819d9a
NS
8878 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not
8879 itf_no_attributes.
105d8e1f 8880
5e76004e
NS
88812000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8882
8883 * cp-tree.h (instantiate_type_flags): New enumeration.
8884 (instantiate_type): Change parameter.
8885 * class.c (instantiate_type): Adjust prototype. Adjust.
8886 * call.c (standard_conversion): Adjust instantiate_type call.
8887 (reference_binding): Likewise.
8888 (build_op_delete_call): Likewise.
8889 (convert_like_real): Likewise.
8890 * cvt.c (cp_convert_to_pointer): Likewise.
8891 (convert_to_reference): Likewise.
8892 * pt.c (convert_nontype_argument): Likewise.
8893 * typeck.c (build_binary_op): Likewise.
8894 (build_ptrmemfunc): Likewise.
8895 (convert_for_assignment): Likewise.
8896
4b054b80
NS
88972000-08-17 Nathan Sidwell <nathan@codesourcery.com>
8898
8899 * cp-tree.h (CPTR_AGGR_TAG): New global tree node.
8900 (current_aggr): Define.
8901 * decl.c (grokdeclarator): Make sure a friend class is an
8902 elaborated type specifier.
8903 * parse.y (current_aggr): Remove static definition.
8904 (cp_parse_init): Adjust.
8905 (structsp): Clear and restore current_aggr.
8906 (component_decl_list): Clear current_aggr.
0e5921e8 8907
4b054b80
NS
8908 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the
8909 aggregate tag on the typename's context.
0e5921e8 8910
321cba97
NS
8911 * pt.c (tsubst_friend_class): Return error_mark_node, if
8912 parms becomes NULL.
8913 (instantiate_class_template): Ignore error_mark_node friend types.
4b054b80 8914
08aead78
NS
89152000-08-14 Nathan Sidwell <nathan@codesourcery.com>
8916
8917 * cvt.c (warn_ref_binding): New static function, broken out of ...
0e5921e8 8918 (convert_to_reference): ... here. Use it.
08aead78 8919
fa1f3ebc
KL
89202000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
8921
8922 * parse.y (template_arg): Add rule for template qualified with
8923 global scope.
8924
9845b52b
TP
89252000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
8926
8927 * decl2.c (add_function): Reorganize.
8928 (arg_assoc): Do not consider function template decls.
8929
e69c8072
JM
89302000-08-11 Jason Merrill <jason@redhat.com>
8931
8932 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
8933 looking inside.
8934
5c1e5476
NS
89352000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8936
8937 * cp-tree.h (resolve_scope_to_name): Remove unused prototype.
8938 (lookup_nested_tag): Likewise.
0e5921e8 8939
5c1e5476
NS
8940 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs
8941 can be produced.
8942
5426aa7f
NS
89432000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8944
8945 * parse.y (named_complex_class_head_sans_basetype): Remove
8946 always true if.
8947
fd037e0d
NS
89482000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8949
8950 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
8951 explicit TEMPLATE_ID_EXPR args.
8952 (build_expr_from_tree, case CALL_EXPR): Likewise.
8953
73ae5c34
NS
89542000-08-11 Nathan Sidwell <nathan@codesourcery.com>
8955
8956 * decl.c (check_tag_decl): Diagnose typename's which don't
8957 declare anything.
8958
aa54df09
NS
89592000-08-10 Nathan Sidwell <nathan@codesourcery.com>
8960
8961 * init.c (build_aggr_init): Reject bogus array initializers
8962 early.
8963
7e8dad18
NS
89642000-08-09 Nathan Sidwell <nathan@codesourcery.com>
8965
8966 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
8967 runtime.
8968 * cp/tinfo.cc (__dynamic_cast): Likewise.
0e5921e8 8969 * cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7e8dad18 8970
0f586b9b
NS
89712000-08-09 Nathan Sidwell <nathan@codesourcery.com>
8972
8973 * cvt.c (convert_to_pointer_force): Fix error message when
0e5921e8 8974 attempting to cast from ambiguous base.
0f586b9b 8975
08e72a19
JM
89762000-08-08 Jason Merrill <jason@redhat.com>
8977
8978 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
8979 (tsubst_template_arg_vector): Likewise.
8980
8981 * decl2.c (build_anon_union_vars): Choose the largest field; don't
8982 assume that one will be as large as the union.
8983
0811ea8f
KH
89842000-08-07 Kazu Hirata <kazu@hxi.com>
8985
8986 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
8987 * decl.c (pop_labels): Likewise.
8988
f9fcf62b
JO
89892000-08-04 Jeffrey Oldham <oldham@codesourcery.com>
8990
8991 * inc/cxxabi.h (__pbase_type_info): Changed member names to match
8992 specifications.
8993 (__pointer_to_member_type_info): Likewise.
8994 (__base_class_info): Likewise.
8995 (__class_type_info): Likewise.
8996 (__si_class_type_info): Likewise.
8997 (__vmi_class_type_info): Likewise.
8998 * tinfo.cc (__si_class_type_info::__do_find_public_src):
8999 Changed member names to match specifications.
9000 (__vmi_class_type_info::__do_find_public_src): Likewise.
9001 (__si_class_type_info::__do_dyncast): Likewise.
9002 (__vmi_class_type_info::__do_dyncast): Likewise.
9003 (__si_class_type_info::__do_upcast): Likewise.
9004 (__vmi_class_type_info::__do_upcast): Likewise.
9005 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
9006 (__pbase_type_info::__pointer_catch): Likewise.
9007 (__pointer_type_info::__pointer_catch): Likewise.
9008 (__pointer_to_member_type_info::__pointer_catch): Likewise.
9009
a36556a8
ZW
90102000-08-04 Zack Weinberg <zack@wolery.cumb.org>
9011
0e5921e8
ZW
9012 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
9013 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
9014 (cc1plus): Link with $(BACKEND) and $(C_OBJS).
a36556a8 9015
452a394b
MM
90162000-08-04 Mark Mitchell <mark@codesourcery.com>
9017
9018 * cp-tree.h (add_method): Change prototype.
9019 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P.
9020 Don't double the size of the method vector in the error case.
9021 (handle_using_decl): Adjust call to add_method.
9022 (add_implicitly_declared_members): Likewise.
9023 (clone_function_decl): Likewise.
9024 * decl2.c (check_classfn): Likewise.
9025 * semantics.c (finish_member_declaration): Likewise.
0e5921e8 9026
b8458e3e
JM
90272000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
9028
9029 * decl.c (flag_isoc94): New variable.
9030
a1bcc528
JM
90312000-08-02 Jason Merrill <jason@redhat.com>
9032
9033 * pt.c (do_type_instantiation): Add complain parm; don't complain
9034 if called recursively.
9035 * cp-tree.h, parse.y: Adjust.
9036
50e60bc3
ZW
90372000-08-02 Zack Weinberg <zack@wolery.cumb.org>
9038
eae51189
ZW
9039 * decl2.c: Silently ignore -Wstrict-prototypes; warn about
9040 -Wno-strict-prototypes.
9041
37620334
ZW
9042 * g++spec.c: Adjust type of second argument to
9043 lang_specific_driver, and update code as necessary.
9044
50e60bc3
ZW
9045 * cp-tree.h: Don't prototype min_precision here.
9046 (my_friendly_assert): Cast expression to void.
9047 * semantics.c (do_poplevel): Initialize scope_stmts.
9048
3f954fc3
MM
90492000-08-02 Mark Mitchell <mark@codesourcery.com>
9050
9051 * cp-tree.h (DECL_NEEDED_P): Tweak.
9052
ab4fa7ed
JM
90532000-07-28 Jason Merrill <jason@redhat.com>
9054
9055 * lang-specs.h: Use %i in rule for .ii files.
9056
4871239e
ZW
90572000-07-31 Zack Weinberg <zack@wolery.cumb.org>
9058
9059 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
9060
911a71a7
MM
90612000-07-30 Mark Mitchell <mark@codesourcery.com>
9062
9063 Allow indirect primary bases.
9064 * cp-tree.h (struct lang_type): Remove vfield_parent. Add
9065 primary_base.
9066 (CLASSTYPE_VFIELD_PARENT): Remove.
9067 (CLASSTYPE_PRIMARY_BINFO): Reimplement.
9068 (BINFO_PRIMARY_BINFO): Remove.
9069 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
9070 (BINFO_VBASE_PRIMARY_P): Likewise.
9071 (BINFO_PRIMARY_BASE_OF): New macro.
9072 (BINFO_INDIRECT_PRIMARY_P): Likewise.
9073 (get_primary_binfo): New function.
9074 * decl.c (lang_mark_tree): Make lang_type::primary_base.
9075 * class.c (vcall_offset_data_s): Rename to ...
9076 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p,
9077 and add ctor_vtbl_p.
9078 (get_derived_offset): Use get_primary_binfo.
9079 (dfs_mark_primary_bases): Adjust handling of virtual primary
9080 bases.
9081 (mark_primary_bases): Likewise.
9082 (set_primary_base): Take a binfo, not an integer, as a
9083 representation of the primary base.
9084 (indirect_primary_base_p): Remove.
9085 (determine_primary_base): Adjust for indirect primary bases.
9086 (dfs_find_final_overrider): Fix typo in coment.
9087 (update_vtable_entry_for_fn): Use get_primary_binfo.
9088 (layout_nonempty_base_or_field): Tweak.
9089 (build_base_fields): Adjust for new primary base semantics.
9090 (dfs_propagate_binfo_offsets): Remove.
9091 (propagate_binfo_offsets): Rewrite.
9092 (dfs_set_offset_for_shared_vbases): Remove.
9093 (layout_virtual_bases): Don't use it.
9094 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new
9095 ABI.
9096 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
9097 CLASSTYPE_VFIELD_PARENT.
9098 (dfs_get_primary_binfo): New function.
9099 (get_primary_binfo): Likewise.
9100 (dump_class_hierarchy_r): Tweak printing of primary bases.
9101 (build_vtbl_initializer): Fix typo in comments. Use
9102 vtbl_init_data.
9103 (build_vcall_and_vbase_vtbl_entries): Likewise.
9104 (build_vbaes_offset_vtbl_entries): Likewise.
9105 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of
9106 BV_VCALL_INDEX to handle indirect primary bases.
9107 (build_vcall_offset_vtbl_entries): Use vtbl_init_data.
9108 (build_rtti_vtbl_entries): Likewise.
9109 * search.c (get_shared_vbase_if_not_primary): Tweak.
9110 (find_vbase_instance): Likewise.
9111 (binfo_for_vtable): Simplify.
9112 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
9113 (make_binfo): Make it have 11 entries.
0e5921e8 9114
722bed0f
AS
91152000-07-30 Alex Samuel <samuel@codesourcery.com>
9116
9117 * mangle.c (DECL_TEMPLATE_ID_P): Remove.
9118 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
9119 ascertaining primaryness.
9120 (G): Remove template_args.
9121 (decl_is_template_id): New function.
9122 (write_encoding): Use decl_is_template_id.
9123 (write_name): Likewise. Handle type_decls. Get main variant of
9124 type decls.
9125 (write_nested_name): Likewise.
9126 (write_prefix): Likewise.
9127 (write_template_prefix): Likewise.
9128 (write_special_name_constructor): Remove defunct production from
9129 comment.
9130 (write_bare_function_type): Remove comment about absent parameter.
9131 (write_template_template_arg): Add missing grammar production to
9132 comment.
9133
9076e292
JM
91342000-07-27 Jason Merrill <jason@redhat.com>
9135
9136 * decl.c (duplicate_decls): If common_type produces a non-typedef
9137 type for a typedef, just use the old type.
9138
b2244c65
MM
91392000-07-27 Mark Mitchell <mark@codesourcery.com>
9140
9141 * cp-tree.h (function_depth): Declare.
9142 (verify_stmt_tree): Likewise.
9143 (find_tree): Likewise.
9144 * decl.c (function_depth): Give it external linkage.
9145 * optimize.c (optimize_function): Increment and decrement it.
9146 * tree.c (verify_stmt_tree_r): New function.
9147 (verify_stmt_tree): Likewise.
9148 (find_tree_r): Likewise.
9149 (find_tree): Likewise.
9150
62e3bf54
JM
91512000-07-27 Jason Merrill <jason@redhat.com>
9152
9076e292
JM
9153 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
9154 TYPE_PTRMEMFUNC_P.
9155 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
62e3bf54 9156
5a728aca
MM
91572000-07-26 Mark Mitchell <mark@codesourcery.com>
9158
9159 * decl.c (start_cleanup_fn): Mark the function as `inline'.
9160 * decl2.c (get_guard): Call cp_finish_decl, not
9161 rest_of_decl_compilation, for local guards.
9162 * lex.c (do_identifier): Remove unused variable.
9163
6a1fa5f9
ME
9164Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
9165
9166 * parse.y: Add missing ';'.
9167
0c10a805
MM
91682000-07-26 Mark Mitchell <mark@codesourcery.com>
9169
9170 * parse.y (empty_parms): Use `()', not `(...)', when in the scope
9171 of `extern "C++"'.
9172
8b27e9ef
NS
91732000-07-25 Nathan Sidwell <nathan@codesourcery.com>
9174
9175 Kill strict_prototype. Backwards compatibility only for
9176 non NO_IMPLICIT_EXTERN_C systems.
9177 * cp-tree.h (flag_strict_prototype): Remove.
9178 (strict_prototype): Remove.
9179 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
9180 * decl.c (maybe_push_to_top_level): Adjust.
9181 (pop_from_top_level): Adjust.
9182 (decls_match): Only allow sloppy parm matching for ancient
9183 system headers.
9184 (init_decl_processing): Adjust.
9185 (grokdeclarator): Adjust.
9186 * decl2.c (flag_strict_prototype): Remove.
9187 (strict_prototype): Remove.
9188 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
9189 (lang_f_options): Remove "strict-prototype".
9190 (unsupported-options): Add "strict-prototype".
9191 * lex.c (do_identifier): Adjust.
9192 (do_scoped_id): Adjust.
9193 * parse.y (empty_parms): Adjust.
9194 * class.c (push_lang_context): Adjust.
9195 (pop_lang_context): Adjust.
9196 * typeck.c (comp_target_parms): Adjust.
9197
c3783399
NS
91982000-07-25 Nathan Sidwell <nathan@codesourcery.com>
9199
9200 * decl.c (poplevel): Deal with anonymous variables at for scope.
9201 (maybe_inject_for_scope_var): Likewise.
9202
a7023245
ZW
92032000-07-25 Zack Weinberg <zack@wolery.cumb.org>
9204
9205 * decl.c: Remove all signal handling code, now done in toplev.c.
9206
95ee998c
MM
92072000-07-23 Mark Mitchell <mark@codesourcery.com>
9208
9209 * decl.c (make_rtl_for_nonlocal_decl): Rework.
9210
9211 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
9212 correctly.
9213
1b493b81
ZW
92142000-07-20 Zack Weinberg <zack@wolery.cumb.org>
9215
9216 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
9217 Define my_friendly_assert and my_friendly_abort as macros
9218 which may call friendly_abort. Prototype friendly abort, not
9219 my_friendly_abort or my_friendly_assert.
9220 * decl.c (signal_catch): Report the signal caught in the error
9221 message. Call fatal directly.
9222 * typeck2.c (ack, my_friendly_assert): Delete.
9223 (my_friendly_abort): Rename to friendly_abort. Expect file,
9224 line, and function parameters. Report the abort code, then
9225 call fancy_abort. Do not mask an abort if errors have
9226 already occurred.
9227
a306451c
NS
92282000-07-18 Nathan Sidwell <nathan@codesourcery.com>
9229
9230 * typeck.c (comp_target_parms): Remove obsolete parameter.
9231 (comp_target_types): Adjust.
9232
f49fad00
JM
92332000-07-17 Jason Merrill <jason@redhat.com>
9234
9235 * typeck.c (mark_addressable): Never set TREE_USED.
9236 * call.c (build_call): Don't abort on calls to library functions
9237 that have been declared normally.
9238
9239 * typeck.c (build_binary_op): Fix grammar in warning.
9240
9241 * exception.cc (__eh_free): Fix prototype.
9242
9243 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
9244
0e5921e8 9245 * decl.c (pushdecl): Handle seeing an OVERLOAD in
f49fad00
JM
9246 IDENTIFIER_NAMESPACE_VALUE.
9247
69690d98
MM
92482000-07-16 Mark Mitchell <mark@codesourcery.com>
9249
9250 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
9251 * method.c (use_thunk): Correct handling of vcall offsets.
9252
bfbbc080
ZW
92532000-07-14 Zack Weinberg <zack@wolery.cumb.org>
9254
9255 * .cvsignore: parse.h and parse.c have no cp- prefix.
9256
83a90717
MM
92572000-07-13 Mark Mitchell <mark@codesourcery.com>
9258
9259 * .cvsignore: New file.
9260
ea414c97
ZW
92612000-07-13 Zack Weinberg <zack@wolery.cumb.org>
9262
9263 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
9264
792abd35
MM
92652000-07-12 Mark Mitchell <mark@codesourcery.com>
9266
9267 * Makefile.in ($(PARSE_H)): Depend directly on parse.y.
9268 * parse.c: Remove.
9269 * parse.h: Likewise.
9270
72a50ab0
MM
92712000-07-11 Mark Mitchell <mark@codesourcery.com>
9272
9273 * class.c (layout_class_type): Add pointers to virtual bases after
9274 base classes under the old ABI.
9275
0dfdeca6
BC
92762000-07-10 Benjamin Chelf <chelf@codesourcery.com>
9277
9278 * semantics.c (finish_for_stmt): Remove call to emit_line_note.
9279 (finish_continue_stmt): Likewise.
9280 (begin_for_stmt): Remove call to note_level_for_for.
9281 (finish_goto_stmt): Change call from build_min_nt
9282 to build_stmt.
9283 (finish_expr_stmt): Likewise.
9284 (begin_if_stmt): Likewise.
9285 (begin_while_stmt): Likewise.
9286 (finish_while_stmt): Likewise.
9287 (finish_return_stmt): Likewise.
9288 (begin_for_stmt): Likewise.
9289 (finish_for_stmt): Likewise.
9290 (finish_break_stmt): Likewise.
9291 (begin_switch_stmt): Likewise.
9292 (finish_case_label): Likewise.
9293 (genrtl_try_block): Likewise.
9294 (begin_try_block): Likewise.
9295 (begin_handler): Likewise.
9296 (begin_compound_stmt): Likewise.
9297 (finish_asm_stmt): Likewise.
9298 (finish_label_stmt): Likewise.
9299 (add_decl_stmt): Likewise.
9300 (finish_subobject): Likewise.
9301 (finish_decl_cleanup): Likewise.
9302 (finish_named_return_value): Likewise.
9303 (setup_vtbl_ptr): Likewise.
9304 (add_scope_stmt): Likewise.
9305 * decl.c (finish_constructor_body): Likewise.
9306 (finish_destructor_body): Likewise.
9307 * optimize.c (copy_body_r): Likewise.
9308 (initialize_inlined_parameters): Likewise.
9309 (declare_return_variable): Likewise.
9310 (expand_call_inline): Likewise.
0e5921e8 9311
f12eef58
JJ
93122000-07-10 Jakub Jelinek <jakub@redhat.com>
9313
9314 * semantics.c (expand_body): Sync interface information
9315 at the end of function body expansion.
9316
2bb5d995
JM
93172000-07-09 Jason Merrill <jason@redhat.com>
9318
9319 * init.c (build_new_1): Bail early if the call to new fails.
9320
0e5921e8 9321 * decl.c (compute_array_index_type): Check specifically for
2bb5d995
JM
9322 an INTEGER_CST, not just TREE_CONSTANT.
9323
0e5921e8 9324 * decl.c (duplicate_decls): Don't call duplicate_decls on
2bb5d995
JM
9325 the DECL_TEMPLATE_RESULT.
9326 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
9327 codes.
9328
9329 * error.c (dump_template_bindings): Don't crash if we had an
9330 invalid argument list.
9331
9332 * typeck.c (c_expand_start_case): Do narrowing here.
9333 * semantics.c (finish_switch_cond): Not here.
9334
93352000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com>
9336
9337 * parse.y (asm_clobbers): Do string concatenation.
9338
089acd57
MM
93392000-07-09 Mark Mitchell <mark@codesourcery.com>
9340
9341 * decl.c (pushtag): Don't put local classes in template functions
9342 on the local_classes list.
9343
93442000-07-04 Scott Snyder <snyder@fnal.gov>
9345
9346 * decl2.c (get_guard): Add missing return for old ABI local
9347 variable case.
9348
7b019c19
MM
93492000-07-09 Mark Mitchell <mark@codesourcery.com>
9350
9351 * cp-tree.h (char_type_p): New function.
9352 * decl.c (init_decl_processing): Don't initialize
9353 signed_wchar_type_node or unsigned_wchar_type_node.
9354 (complete_array_type): Handle brace-enclosed string-constants.
9355 * rtti.c (emit_support_tinfos): Remove #if 0'd code.
9356 * tree.c (char_type_p): New function.
9357 * typeck2.c (digest_init): Use char_type_p.
9358
a5f1c5f8
NS
93592000-07-06 Nathan Sidwell <nathan@codesourcery.com>
9360
9361 * pt.c (tsubst): Don't layout type, if it's error_mark.
9362
84e5ca0f
NS
93632000-07-06 Nathan Sidwell <nathan@codesourcery.com>
9364
9365 * pt.c (instantiate_pending_templates): Reset template level.
9366
ab785305
JM
93672000-07-05 Jason Merrill <jason@redhat.com>
9368
9369 * call.c (joust): Don't complain about `operator char *()' beating
9370 `operator const char *() const'.
9371
90418208
JM
93722000-07-04 scott snyder <snyder@fnal.gov>
9373 Jason Merrill <jason@redhat.com>
9374
0e5921e8 9375 * repo.c (repo_get_id): Handle the case where a class with virtual
90418208
JM
9376 bases has a null TYPE_BINFO_VTABLE.
9377
93782000-07-04 Kevin Buhr <buhr@stat.wisc.edu>
9379 Jason Merrill <jason@redhat.com>
9380
9381 * parse.y (member_init): Just pass in the type.
9382 * init.c (expand_member_init): Handle getting a type.
9383
9384