]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
decl.c: Lose arg_looking_for_template.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
cf776105
JM
1Tue Feb 3 22:43:42 1998 Jason Merrill <jason@yorick.cygnus.com>
2
3 * decl.c: Lose arg_looking_for_template.
4 (lookup_name_real): Likewise.
5 * parse.y: Lose processing_template_arg, template_arg1
6 (primary): Likewise.
7 * spew.c (yylex): Set lastiddecl for PTYPENAMEs, too.
8
e7e66632
KL
9Tue Feb 3 22:04:01 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
10
11 * error.c (dump_decl): Fix type of default arguments for template
12 template parameters and nontype template parameters.
13 * parse.y (template_parm): Handle invalid default template
14 template arguments here.
15
16 * parse.y (template_parm): Use template_arg instead of PTYPENAME
17 for default template template argument.
18 * pt.c (coerce_template_parms): Merge default template argument
19 codes. Can treat RECORD_TYPE as template name if it is implicitly
20 created. Fix argument index in error message.
21 * typeck.c (comptypes): Merge template argument comparison codes in
22 TEMPLATE_TEMPLATE_PARM and RECORD_TYPE.
23
e95d117b
MK
24Tue Jan 6 01:42:44 1998 Mumit Khan <khan@xraylith.wisc.edu>
25
26 * lex.c (file_name_nondirectory): Also check for '/'.
27
8857f91e
MM
28Mon Feb 2 11:24:22 1998 Mark Mitchell <mmitchell@usa.net>
29
67da3287
MM
30 * parse.y (primary): Deal with statement-expressions in
31 templates.
32 * pt.c (tsubst_copy): Handle BIND_EXPR.
33 * tree.c (mapcar): Likewise.
34
d7684f2d
MM
35 * call.c (add_template_candidate_real): Pass extra parameter to
36 fn_type_unification.
37 * cp-tree.h (fn_type_unification): Add parameter.
38 * pt.c (fn_type_unification): Add additional parameter to deal with
39 static member functions.
40 (get_bindings): Deal with static member functions.
41
8857f91e
MM
42 * cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro.
43 (revert_static_member_fn): Declare.
44 * decl.c (revert_static_member_fn): Remove declaration. Change
45 linkage from internal to external.
46 (cp_finish_decl): Deal with virtual functions in classes local to
47 template functions.
48 * decl2.c (finish_file): Don't forget to emit increment/decrement
49 expressions in initializers for file-scope variables.
50 * parse.y (typename_sub2): If the typename doesn't names a
51 template, rather than a type, issue an error message.
52 * pt.c (check_explicit_specialization): Handle specializations of
53 static member functions.
54 (coerce_template_parms): Handle offset references to lists of
55 member functions.
56 * search.c (note_debug_info_needed): Don't crash when handed a
57 type which is being defined.
58 * typeck.c (complete_type): Don't crash when handed NULL_TREE;
59 that can happen with some illegal code.
60
a703fb38
KG
61Mon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
62
63 * call.c (user_harshness): Initialize `code' to 0.
64 (build_method_call): Initialize `candidates', `cp' and `len' to 0.
65 (null_ptr_cst_p): Add parentheses around && within ||.
66 (standard_conversion): Likewise.
67 (z_candidate): Likewise.
68 (build_user_type_conversion_1): Initialize `args' to NULL_TREE.
69 (build_object_call): Likewise for `mem_args'.
70 (build_new_op): Likewise for `mem_arglist'. Add `return' from
71 default case in enumeration switch.
72
73 * class.c (build_vtable_entry): Add explicit braces to avoid
74 ambiguous `else'.
75 (build_class_init_list): Likewise.
76 (finish_struct_1): Initialize `width' to 0.
77 (instantiate_type): Initialize `name' to NULL_TREE. Add
78 explicit braces to avoid ambiguous `else'.
79
80 * cvt.c (convert_to_aggr): Add explicit braces to avoid ambiguous
81 `else'.
82
83 * decl.c (grok_reference_init): Eliminate unused parameter, all
84 callers changed.
85 (record_builtin_type): Initialize `tdecl' to NULL_TREE.
86 (init_decl_processing): Initialize `vb_off_identifier' to NULL_TREE.
87 (cp_finish_decl): Initialize `ttype' to NULL_TREE.
88 (grokdeclarator): Add parentheses around && within ||. Add
89 explicit braces to avoid ambiguous `else'.
90 (grokparms): Initialize `type' to NULL_TREE.
91 (xref_tag): Remove unused label `just_return'.
92 (finish_enum): Initialize `minnode' and `maxnode' to NULL_TREE.
93 (finish_function): Initialize `cond' and `thenclause' to NULL_TREE.
94 (hack_incomplete_structures): Add parentheses around assignment
95 used as truth value.
96
97 * decl2.c (coerce_delete_type): Hide definition of `e3'.
98
99 * error.c: Include <stdlib.h>.
100 (dump_expr): Change the type of `i' to size_t. Remove unused
101 label `error'.
102
103 * except.c (init_exception_processing): Remove unused variable `d'.
104 (expand_throw): Likewise for `label'.
105
106 * friend.c (add_friends): Add explicit braces to avoid ambiguous
107 `else'.
108
109 * init.c (sort_member_init): Initialize `last_field' to NULL_TREE.
110 (sort_base_init): Likewise for `binfo'.
111 (expand_member_init): Likewise for `rval'.
112 (build_member_call): Add parentheses around assignment used as
113 truth value.
114 (build_offset_ref): Add explicit braces to avoid ambiguous `else'.
115 (build_new): Initialize `nelts' to NULL_TREE. Initialize
116 `old_immediate_size_expand' to 0.
117 (build_new_1): Initialize `nelts' and `alloc_node' to NULL_TREE.
118 (build_vec_delete_1): Remove unused variable `block'.
119 (expand_vec_init): Initialize `itype' to NULL_TREE.
120
121 * lex.c: Include <strings.h> if we don't have <string.h>. Protect
122 declaration of `index' and `rindex' with autoconf macros.
123 (reinit_parse_for_expr): Remove unused variables
124 `look_for_semicolon' and `look_for_lbrac'.
125 (cons_up_default_function): Initialize `args' to NULL_TREE.
126 (readescape): Initialize `firstdig' to 0.
127 (real_yylex): Add parentheses around assignment used as truth value.
128
129 * method.c: Include <strings.h> if we don't have <string.h>.
130 Protect declaration of `index' with autoconf macro.
131
132 * parse.y (primary): Add explicit braces to avoid ambiguous `else'.
133 Initialize `type' to NULL_TREE.
134 (structsp): Remove unused variable `id'.
135
136 * pt.c (coerce_template_parms): Add explicit braces to avoid
137 ambiguous `else'.
138 (lookup_template_class): Initialize `template' to NULL_TREE.
139 (instantiate_class_template): Remove unused variable `name' and `e'.
140 (tsubst): Likewise for `i'. Initialize `last' to NULL_TREE.
141 (do_poplevel): Initialize `saved_warn_unused' to 0.
142 (type_unification): Remove unused varable `parm'.
143 (unify): Likewise for `j'.
144
145 * repo.c (init_repo): Add parentheses around assignment used as
146 truth value.
147 (finish_repo): Remove unused varable `p'.
148
149 * search.c (get_binfo): Initiize `type' to NULL_TREE.
150 (get_base_distance): Likewise.
151 (lookup_field): Initialize `rval_binfo_h', `type', `basetype_path'
152 and `new_v' to NULL_TREE.
153 (lookup_fnfields): Likewise for `rval_binfo_h'.
154 (breadth_first_search): Add parentheses around assignment used as
155 truth value.
156 (get_template_base): Initialize `type' to NULL_TREE.
157
158 * sig.c (append_signature_fields): Initialize `last_mfptr' to
159 NULL_TREE.
160 (build_signature_table_constructor): Likewise for
161 `last_rhs_field', `pfn' and `vt_off'.
162 (build_sigtable): Likewise for `init'.
163
164 * tree.c (break_out_calls): Initialize `t2' to NULL_TREE.
165 (propagate_binfo_offsets): Likewise for `delta'.
166 (hash_tree_cons): Initialize hashcode to 0.
167 (can_free): Likewise for `size'.
168 (cp_tree_equal): Add explicit braces to avoid ambiguous `else'.
169
170 * typeck.c (convert_sequence): Hide prototype.
171 (common_type): Add explicit braces to avoid ambiguous `else'.
172 (comp_target_types): Likewise.
173 (build_x_function_call): Initialize `ctypeptr' to NULL_TREE.
174 (build_function_call_real): Add explicit braces to avoid ambiguous
175 `else'.
176 (convert_arguments): Initialize `called_thing' to 0.
177 (convert_for_initialization): Initialize `savew' and `savee' to 0.
178
179 * typeck2.c (incomplete_type_error): Initialize `errmsg' to 0.
180 (digest_init): Initialize `old_tail_contents' to NULL_TREE.
181 (build_x_arrow): Likewise for `last_rval'.
182
183 * xref.c (GNU_xref_decl): Initialize `cls' to 0.
184
f5426d1e
R
185Sun Feb 1 12:45:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
186
187 * decl.c (init_decl_processing): Use set_sizetype.
188 * decl2.c (sizetype): Don't declare.
189 * typeck.c (c_sizeof): Convert result of *_DIV_EXPR to sizetype.
190 (c_sizeof_nowarn, build_binary_op_nodefault): Likewise.
191 (build_component_addr, unary_complex_lvalue): Likewise.
192 * rtti.c (expand_class_desc): Likewise.
193 * class.c (get_vfield_offset): Likewise.
194
7bf2682f
MM
195Thu Jan 29 10:39:30 1998 Mark Mitchell <mmitchell@usa.net>
196
197 * pt.c (convert_nontype_argument): Move check for is_overloaded_fn
198 early to avoid bogus error. Handle overloaded function
199 names provided as template arguments correctly.
200 (coerce_template_parms): Don't mishandle overloaded functions when
201 dealing with template template parameters.
202 (lookup_template_class): Issue an error message, rather than
203 crashing, when the TYPE_DECL provided is not a template type.
204
abff8e06
JM
205Wed Jan 28 23:14:44 1998 Jason Merrill <jason@yorick.cygnus.com>
206
207 * class.c (instantiate_type): Don't just return a known type if
208 it's wrong.
209
86052cc3
JM
210Wed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net>
211
abff8e06
JM
212 * class.c (instantiate_type): Remove handling of FUNCTION_DECL
213 since that code could never be reached.
214
215 * error.c (dump_decl): Avoid aborting in the midst of printing an
216 error message about an illegal template declaration.
217
218 * parse.y (structsp): Print an error message, rather than crashing,
219 when a class-head does not name a class.
220
221 * pt.c (convert_nontype_argument): Allow REAL_TYPE and COMPLEX_TYPE
222 template arguments as a g++ extension.
223
224 * cp-tree.def (ALIGNOF_EXPR): New tree code.
225 * decl2.c (grok_alignof): If processing_template_decl, just store
226 the expression.
227 * typeck.c (c_alignof): Likewise.
228 * decl2.c (build_expr_from_tree): Handle ALIGNOF_EXPR.
229 * error.c (dump_expr): Likewise.
230 * pt.c (tsubst_copy): Likewise.
231 * tree.c (cp_tree_equal): Likewise.
232 * pt.c (uses_template_parms): Correctly determine whether or not a
233 SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant
234 folding can be done.
235
86052cc3
JM
236 * cp-tree.h (grok_enum_decls): Remove type parameter.
237 * decl.c (grok_enum_decls): Likewise.
238 * decl2.c (grok_x_components): Call grok_enum_decls
239 unconditionally, since it will do nothing if there is no
240 current_local_enum. Use the new calling sequence.
241 * pt.c (tsubst_enum): Use the new calling sequence for
242 grok_enum_decls.
243
244 * decl.c (start_function): Make member functions of local classes
245 in extern inline functions have comdat linkage here...
246 (grokdeclarator): Rather than here.
247
248Wed Jan 28 10:55:47 1998 Jason Merrill <jason@yorick.cygnus.com>
249
250 * pt.c (convert_nontype_argument): Use decl_constant_value.
251
e1467ff2
MM
252Tue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net>
253
254 * call.c (add_template_candidate_real): New function.
255 (add_template_candidate): Use it.
256 (add_template_conv_candidate): Likewise.
257 (joust): Pass extra argument to more_specialized.
258 * class.c (instantiate_type): Handle a single FUNCTION_DECL.
259 (is_local_class): Remove.
260 (finish_struct): Check TI_PENDING_SPECIALIZATION_FLAG.
261 * cp-tree.h (is_local_class): Remove.
262 (perform_array_to_pointer_conversion): Likewise.
263 (finish_member_template_decl): Add.
264 (check_explicit_specialization): Return a tree, not an int.
265 (more_specialized): Take additional argument.
266 (get_bindings): Likewise.
86052cc3 267 (TI_PENDING_SPECIALIZATION_FLAG): New macro.
e1467ff2
MM
268 * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes.
269 (perform_array_to_pointer_conversion): Remove.
270 * decl.c (saved_scope): Add processing_specialization,
271 processing_explicit_instantiation fields.
272 (maybe_push_to_top_level): Save them.
273 (pop_from_top_level): Restore them.
274 (grokfndecl): Use new return value from
275 check_explicit_specialization.
276 (start_decl): Don't check flag_guiding_decls before pushing
277 decls.
278 (cp_finish_decl): Remove previous (bogus) change.
279 (grok_declarator): Use decl_function_context rather than
280 is_local_class.
281 * decl2.c (finish_file): Pass extra argument to get_bindings.
282 (build_expr_from_tree): Let build_x_component_ref check
283 validity of arguments rather than doing it here.
284 * lex.c (cons_up_default_function): Remove code fooling with
285 processing_specialization, processing_explicit_instantiation
286 flags, as that is now done in {maybe_push_top,pop_from}_top_level.
287 * method.c (build_overload_identifier): Mangle local classes in
288 template functions correctly.
289 * parse.y (finish_member_template_decl): Move to pt.c.
290 * pt.c (finish_member_template_decl): Moved here from parse.y.
291 (print_candidates): New function.
292 (determine_specialization): Change interface. Properly look for
293 most specialized versions of template candidates.
294 (check_explicit_specialization): Fully process explicit
295 instantiations.
296 (push_template_decl): Avoid looking at CLASSTYPE fields in
297 FUNCTION_DECLS.
298 (determine_overloaded_function): Remove.
299 (convert_nontype_argument): Change name from
300 convert_nontype_parameter. Use determine_overloaded_function
301 instead of instantiate_type.
302 (mangle_class_name_for_template): Handle type contexts as well as
303 function contexts.
304 (classtype_mangled_name): Likewise.
305 (lookup_template_class): Likewise.
306 (tsubst): Likewise.
307 (more_specialized): Take explict template arguments as a
308 parameter.
309 (most_specialized): Likewise.
310 (get_bindings): Likewise. Check that return types match before
311 proclaiming a function a match.
312 (do_decl_instantiation): Remove code searching for function to
313 instantiate; that is now done in check_explicit_specialization.
314 (add_maybe_template): Pass extra argument to get_bindings.
315 * tree.c (really_overloaded_fn): Use is_overloaded_fn to simplify
316 implementation.
317 * typeck.c (build_component_ref): Check for invalid arguments.
318
343c89cd
JM
319Tue Jan 27 01:44:02 1998 Jason Merrill <jason@yorick.cygnus.com>
320
56841f01
JM
321 * expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that
322 return_target and call_target are equivalent.
323
343c89cd 324 * pt.c (type_unification_real): Just accept function parms that
56841f01 325 don't use any template parms.
343c89cd 326
d3959d60
JM
327Sun Jan 25 03:30:00 1998 Jason Merrill <jason@yorick.cygnus.com>
328
be343556
JM
329 * decl.c (cp_finish_decl): When bailing on a comdat variable, also
330 unset DECL_NOT_REALLY_EXTERN.
331
d3959d60
JM
332 * parse.y (typename_sub*): Fix std::.
333
67c2a928
JM
334Sat Jan 24 12:13:54 1998 Jason Merrill <jason@yorick.cygnus.com>
335
336 * error.c (dump_decl): Fix type default template args.
337 (dump_type): Hand TEMPLATE_DECL off to dump_decl.
338
ab535dac
MK
339Fri Jan 23 18:34:37 1998 Mumit Khan <khan@xraylith.wisc.edu>
340
341 * lex.c (DIR_SEPARATOR): Define to be '/' if not already defined.
342 (file_name_nondirectory): Use.
343
73b0fce8
KL
344Wed Jan 21 10:29:57 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
345
346 * pt.c (coerce_template_parms): Don't access elements of ARGLIST
d1fefbce 347 that are not really present. Substitute default arguments in
73b0fce8
KL
348 template template arguments. Correctly convert TEMPLATE_DECL to
349 TEMPLATE_TEMPLATE_PARM.
350 (comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM
351 are no longer treated specially here.
352 * parse.y (template_template_parm): Fix copy error.
353 * decl.c (grokdeclarator): Warn about missing `typename' for nested
354 type created from template template parameters.
355 * parse.y (bad_parm): Likewise
356
357 * class.c (finish_struct): Handle TEMPLATE_TEMPLATE_PARM.
358 (push_nested_class): Likewise.
359 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): New tree code.
360 * cp-tree.h (DECL_TEMPLATE_TEMPLATE_PARM_P): New macro.
361 (copy_template_template_parm): Declare.
362 * decl.c (arg_looking_for_template): New variable.
363 (lookup_name_real): Handle TEMPLATE_TEMPLATE_PARM.
364 Try to return TEMPLATE_DECL or TEMPLATE_TEMPLATE_PARM
365 node if arg_looking_for_template is nonzero.
366 (pushdecl): Handle TEMPLATE_TEMPLATE_PARM.
367 (grok_op_properties, xref_tag, xref_basetypes): Likewise.
368 (grokdeclarator): Handle TEMPLATE_DECL.
369 * decl2.c (constructor_name_full): Handle TEMPLATE_TEMPLATE_PARM.
370 * error.c (dump_type): Add TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM.
371 (dump_type_prefix, dump_type_suffix) Handle TEMPLATE_TEMPLATE_PARM.
372 (dump_decl): Handle unnamed template type parameters.
373 Handle template template parameters.
374 (dump_function_name): Handle template template parameters.
375 * init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef):
376 Handle TEMPLATE_TEMPLATE_PARM.
377 * method.c (build_template_template_parm_names): New function.
378 (build_template_parm_names): Handle TEMPLATE_DECL.
379 (build_overload_nested_name, build_overload_name):
380 Handle TEMPLATE_TEMPLATE_PARM.
381 * parse.y (maybe_identifier): New nonterminal.
382 (template_type_parm): Use it.
383 (template_template_parm, template_arg1): New nonterminal.
384 (template_parm): Add template_template_parm rules.
385 (template_arg): Set processing_template_arg.
386 (template_arg1): Rules moved from template_arg.
387 (primary, nonnested_type): Set arg_looking_for_template if we are
388 processing template arguments.
389 * pt.c (begin_member_template_processing): Handle TEMPLATE_DECL.
390 (process_template_parm): Handle template template parameters.
391 (coerce_template_parms, comp_template_args): Likewise.
392 (mangle_class_name_for_template, lookup_template_class): Likewise.
393 (uses_template_parms): Handle TEMPLATE_DECL and
394 TEMPLATE_TEMPLATE_PARM.
395 (current_template_args): Handle TEMPLATE_DECL.
396 (tsubst, tsubst_copy, unify): Handle TEMPLATE_TEMPLATE_PARM.
397 * search.c (dfs_walk, dfs_record_inheritance):
398 Handle TEMPLATE_TEMPLATE_PARM.
399 * tree.c (copy_template_template_parm): New function.
400 (mapcar): Handle TEMPLATE_TEMPLATE_PARM.
401 * typeck.c (comptypes): Handle TEMPLATE_TEMPLATE_PARM.
402
75650646
MM
403Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net>
404
405 * decl.c (start_decl): Don't allow duplicate definitions of static
406 data members.
407
408 * call.c (build_user_type_conversion_1): Handle user-defined
409 template conversion operators correctly.
410
411 * decl2.c (build_expr_from_tree): Issue an error message if the
412 object in a COMPONENT_REF is a TEMPLATE_DECL.
413
414 * typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs.
415
416 * class.c (is_local_class): New function.
417 * cp-tree.h (is_local_class): Declare it.
418 (last_tree): Likewise.
419 (begin_tree): Likewise.
420 (end_tree): Likewise.
421 (lookup_template_class): Change prototype.
422 * decl.c (cp_finish_decl): Check for NULL where necesary.
423 Consider FUNCTION_DECLS to declare objects with top-level binding,
424 when calling make_decl_rtl.
425 (grokdeclarator): Give members of local classes internal linkage.
426 (start_function): Remove declaration of last_tree.
427 (finish_function): Set flag_keep_inline_functions around call to
428 rest_of_compilation if we are processing a member function in a
429 local class.
430 (start_method): Call push_template_decl for member functions of
431 local classes in template functions.
432 * decl2.c (import_export_decl): Don't give external linkage to
433 instantiations of templates with internal linkage.
434 * parse.y (last_tree): Remove declaration.
435 (template_type): Pass extra parameter to lookup_template_class.
436 (self_template_type): Likewise.
437 (structsp): Move call to reset_specialization into left_curly.
438 (left_curly): Call reset_specialization, and begin_tree.
439 * pt.c (saved_trees): New variable.
440 (mangle_class_name_for_template): Change prototype. Use
441 additional function context to name local classes in templates
442 correctly.
443 (classtype_mangled_name): Pass the context.
444 (push_template_decl): Handle local classes and templates, and
445 member functions for such classes.
446 (convert_nontype_parameter): Fix handling of pointer-to-member
447 constants.
448 (lookup_template_class): Handle local classes in templates.
449 (tsubst): Likewise. Don't assume that template instantiations
450 have external linkage; pay attention to the template declaration.
451 (mark_decl_instantiated): Likewise.
452 (begin_tree): New function.
453 (end_tree): Likewise.
454
455 * decl.c (xref_basetypes): Don't call complete_type for basetypes
456 that involve template parameters; that can lead to infinite
457 recursion unnecessarily.
458
459 * pt.c (register_specialization): Do not register specializations
460 that aren't ready to be registered yet.
461 (check_explicit_specialization): Handle explicit specialization of
462 constructors and destructors.
463 (build_template_decl): New function.
464 (push_template_delc): Handle out-of-class specializations of
465 member templates.
466
467 * pt.c (check_explicit_specialization): Set up the template
468 information before registering the specialization.
469 (coerce_template_parms): Fix thinko.
470 (tsubst): Handle specializations of member templates correctly.
471
472 * class.c (finish_struct_methods): Remove calls to
473 check_explicit_specialization from here.
474 (finish_struct): And insert them here.
475 * cp-tree.h (perform_qualification_conversions): New function.
476 (perform_array_to_pointer_conversion): Likewise.
477 (begin_explicit_instantiation): Likewise.
478 (end_explicit_instantiation): Likewise.
479 (determine_specialization): Renamed from
480 determine_explicit_specialization.
481 (comp_template_parms): New function.
482 (processing_explicit_instantiation): New variable.
483 * cvt.c (perform_qualification_conversions): New function.
484 (perform_array_to_pointer_conversion): Likewise.
485 * decl.c (duplicate_decls): Don't consider template functions
486 alike unless they have the same parameters. Refine handling of
487 instantiation/specialization mismatches.
488 (start_decl): Don't call pushdecl for template specializations,
489 since they don't affect overloading.
490 (start_function): Likewise
491 (grokfndecl): Call check_explicit_specialization a little later.
492 Don't call duplicate_decls for memberm template specializations.
493 (grokdeclarator): Don't update template_count for classes that are
494 themselves specializations. Remove use of `2' as parameter to
495 grokfndecl since that value isn't used.
496 * lex.c (cons_up_default_function): Save and restore
497 processing_explicit_instantiation around calls to grokfield.
498 * parse.y (finish_member_template_decl): New function.
499 (component_decl_1): Use it.
500 (fn.def2): Likewise.
501 (template_arg_list_opt): New nonterminal.
502 (template_type): Use it.
503 (self_template_type): Likewise.
504 (template_id): Likewise.
505 (object_template_id): Likewise.
506 (notype_template_declarator): Likwise.
507 (begin_explicit_instantiation): Likewise.
508 (end_explicit_instantiation): Likewise.
509 (explicit_instantiation): Use them.
510 * pt.c (coerce_template_parms): Add parameters.
511 (processing_explicit_instantiation): New variable.
512 (convert_nontype_parameter): New function.
513 (determine_overloaded_function): Likewise.
514 (begin_explicit_instantiation): Likewise.
515 (end_explicit_instantiation): Likewise.
516 (retrieve_specialization): Likewise.
517 (register_specialization): Likewise.
518 (processing_explicit_specialization): Removed.
519 (determine_specialization): Handle specializations of member
520 functions of template class instantiations.
521 (check_explicit_specialization): Refine to conform to standard.
522 (comp_template_parms): New function.
523 (coerce_template_parms): Call convert_nontype_parameter.
524 (tsubst): Refine handling of member templates. Use
525 register_specialization.
526 (instantiate_template): Use retrieve_specialization.
527 (do_decl_instantiation): Likewise.
528 (instantiate_decl): Likewise.
529 (type_unification): Improve handling of explict template
530 arguments.
531 * tree.c (mapcar): Return error_mark_node, rather than aborting,
532 on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS.
533 * typeck.c (build_unary_op): Call determine_specialization, rather
534 than determine_explicit_specialization.
535
f62aa8f3
JM
536Mon Jan 19 13:18:51 1998 Jason Merrill <jason@yorick.cygnus.com>
537
538 * cvt.c (build_up_reference): A TARGET_EXPR has side effects.
539
224c649b
BH
540Fri Jan 16 11:40:50 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
541
542 * error.c (dump_decl): For enum tags, output the tag, not its value.
543
1737fe20
BK
5441998-01-13 Brendan Kehoe <brendan@cygnus.com>
545
546 * decl.c (init_decl_processing): Only call init_rtti_processing
547 FLAG_RTTI is set.
548
a0d5fba7
JM
549Mon Jan 12 01:35:18 1998 Jason Merrill <jason@yorick.cygnus.com>
550
551 * init.c (build_new_1): Split out from build_new.
552 (build_new): Just return a NEW_EXPR.
553 * expr.c (cplus_expand_expr): Handle NEW_EXPR.
554
555 * decl2.c (get_temp_regvar): Tweak.
556
557 * cp-tree.h (TREE_CALLS_NEW): Comment out.
558 * class.c (resolves_to_fixed_type_p): Remove use.
559 * method.c (build_opfncall): Likewise.
560 * call.c (build_new_op): Likewise.
561
f4a23343
JM
562Wed Jan 7 23:47:13 1998 Jason Merrill <jason@yorick.cygnus.com>
563
564 * exception.cc (__eh_alloc, __eh_free): New fns.
565 (__cp_push_exception, __cp_pop_exception): Use them.
566 (__uncatch_exception): Call terminate here if no exception.
567 * except.c (build_terminate_handler): New fn.
568 (expand_start_catch_block): Use it.
569 (expand_exception_blocks): Likewise.
570 (alloc_eh_object): New fn.
571 (expand_throw): Use it. Protect exception init with terminate.
572 * typeck.c (build_modify_expr): Remove code that ignores trivial
573 methods.
574
c85f7c16
JL
575Mon Dec 22 17:46:17 1997 Mark Mitchell <mmitchell@usa.net>
576
577 * method.c (build_overload_name): Fix mangling for __null.
578
7f85441b
KG
579Mon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
580
581 * call.c (add_builtin_candidate): Add default case in enumeration
582 switch.
583 (build_new_op): Likewise.
584 (convert_like): Likewise.
585 * cvt.c (build_expr_type_conversion): Likewise.
586 * tree.c (real_lvalue_p): Likewise.
587 (lvalue_p): Likewise.
588 (cp_tree_equal): Likewise.
589 * typeck.c (comptypes): Likewise.
590 (build_component_ref): Likewise.
591 (build_function_call_real): Likewise.
592 (build_binary_op_nodefault): Likewise.
593 (build_unary_op): Likewise.
594 (build_modify_expr): Likewise.
595 * typeck2.c (initializer_constant_valid_p): Likewise.
596
f9fc59e8
NC
597Sun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com>
598
599 * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas.
600
864b83b9
MM
601Thu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net>
602
6ba4439c
MM
603 * pt.c (coerce_template_parms): Make sure to digest_init if
604 possible.
605
864b83b9
MM
606 * decl.c (duplicate_decls): Make the newdecl virtual if the
607 olddecl was, just as is done with other attributes of olddecl.
608
02531345
JM
609Thu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com>
610
4cac9464
JM
611 * typeck.c (unary_complex_lvalue): Ignore op0 when taking the
612 address of an OFFSET_REF.
613
02531345
JM
614 * cp-tree.def: Add AGGR_INIT_EXPR.
615 * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with
616 AGGR_INIT_EXPR where appropriate.
617 * expr.c (cplus_expand_expr): Likewise. Simplify.
618
619 * decl2.c (finish_file): Remove call to register_exception_table.
620
4f4da4e9
BK
621Wed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
622
623 * pt.c (instantiate_class_template): Don't do injection when
624 processing_template_decl is true, as pollutes current_binding_level
625 for base classes.
626
840b09b4
PS
627Wed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de>
628
629 * pt.c (maybe_fold_nontype_arg): Add prototype.
630
6748b643
JM
631Tue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com>
632
633 * tree.c (mapcar): Handle TRY_CATCH_EXPR et al.
634 * error.c (dump_expr): Likewise.
635
4bfc4dda
JM
636Mon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com>
637
638 * typeck.c (build_function_call_real): Remove "inline called before
639 definition" pedwarn.
640
641 * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg.
642
5c0ad672
JM
643Sun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com>
644
645 * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
646
647 * pt.c (type_unification_real): Change __null to type void* with
648 a warning.
649
3042d5be
MM
650Sun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net>
651
652 * call.c (implicit_conversion): Don't call
653 build_user_type_conversion_1 with a NULL expr, since it will
654 crash.
655
656 * pt.c (unify): Don't try to unify array bounds if either array is
657 unbounded.
658
9664b89e
JM
659Fri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com>
660
661 * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at):
662 Replace extern decls with casts.
663
664 * decl.c (expand_start_early_try_stmts): Don't mess with a sequence.
665 Update last_parm_cleanup_insn.
666 (store_after_parms): Remove.
667 * cp-tree.h: Adjust.
668
ab23f787
JM
669Thu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com>
670
671 * decl2.c (comdat_linkage): Also set DECL_COMDAT.
672 (finish_file): Check DECL_COMDAT instead of weak|one_only.
673 (import_export_vtable): Use make_decl_one_only instead of
674 comdat_linkage for win32 tweak.
675 (import_export_decl): Likewise.
676 * pt.c (mark_decl_instantiated): Likewise.
677
678 * decl2.c (finish_file): Lose handling of templates in pending_statics.
679
0776059e
JM
680Thu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com>
681
682 * decl2.c (finish_file): Lose call to expand_builtin_throw.
683 * except.c (expand_builtin_throw): Remove.
684 * cp-tree.h: Remove ptr_ptr_type_node.
685 * decl.c: Likewise.
686
154bba13
TT
687Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com>
688
689 * decl.c (ptr_ptr_type_node): Define.
690 (init_decl_processing): Initialize it.
691 * cp-tree.h: Declare it.
692 * exception.cc (__cp_exception_info): Use __get_eh_info.
693 (__cp_push_exception): Ditto.
694 (__cp_pop_exception): Ditto.
695
696 From Scott Snyder <snyder@d0sgif.fnal.gov>:
697 * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of
698 saved_pc.
699 (init_exception_processing): Removed saved_pc initialization.
700
c4ae3f91
JM
701Wed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com>
702
703 * pt.c (instantiate_decl): Defer all templates but inline functions.
704
67437d5b
JM
705Mon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com>
706
eb291d05
JM
707 * init.c (expand_vec_init): Don't fold a list of parameters.
708
67437d5b
JM
709 * decl.c (copy_args_p): Handle copy elision for types with virtual
710 bases.
711 * call.c (build_over_call): Likewise.
712
4de02abd
MM
713Sun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net>
714
715 * pt.c (lookup_template_function): Copy the template arguments,
716 not just the list containing them, to the permanent obstack.
717
0fb9f1c3
JM
718Sun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com>
719
2b8b44d8
JM
720 * except.c (expand_start_catch_block): suspend_momentary for the
721 terminate handler.
722
0fb9f1c3
JM
723 * error.c (dump_decl): Handle LOOKUP_EXPR.
724
725Sun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net>
726
727 * rtti.c (build_dynamic_cast): Copy the cast-to type to the
728 permanent obstack if we are processing a template decl.
729 * typeck.c (build_static_cast): Likewise.
730 (build_const_cast): Likewise.
731 (build_reinterpret_cast): Likewise.
732
733 * pt.c (coerce_template_parms): Coerce some expressions, even
734 when processing_template_decl.
735
79a7c7fa
JM
736Sun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
737
738 * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric
739 handling of pointer difference expressions.
740
741 * typeck.c (comp_target_types): Comparison of function/method types
742 is independent of nptrs.
743
744Sun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net>
745
746 * pt.c (tsubst): Avoid creating pointer to reference and
747 reference to reference types.
748
46422d6c
JM
749Sat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com>
750
751 * parse.y (do_id): New nonterminal.
752 (template_id): Use it.
753
7211716d
JM
754Fri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com>
755
756 * parse.y (template_id): do_identifier for PFUNCNAMEs, too.
757 * spew.c (yylex): Don't do_identifier here.
758 * decl2.c (build_expr_from_tree): Revert last change.
759
760 * decl2.c (build_expr_from_tree): Expand the name for a method call.
761 * parse.y (object_template_id): Don't try to take the DECL_NAME.
762
e701eb4d
JM
763Wed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com>
764
2face519
JM
765 * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for
766 alloc_expr.
767 * call.c (build_op_delete_call): Adjust.
768
e701eb4d
JM
769 * except.c (expand_end_catch_block): Lose rethrow region.
770 (expand_start_catch_block): Likewise.
771 (expand_end_catch_block): Don't expand_leftover_cleanups.
772
53d4d75f
BK
773Wed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
774
775 * pt.c (tsubst): Remove tree_cons call (places redundant info into
776 DECL_TEMPLATE_INSTANTIATION).
777
aa36c081
JM
778Wed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com>
779
780 * tree.c (is_overloaded_fn): Handle getting a fn template.
781 (really_overloaded_fn): Likewise.
782 * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better.
783 * pt.c (check_explicit_specialization): Tweak.
784 (determine_explicit_specialization): Tweak.
785
786 * tree.c, cp-tree.h (get_target_expr): New fn.
787
956d6950
JL
788Wed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com>
789
790 * pt.c (check_explicit_specialization): Fix misspelling in
791 diagnostic: `preceeded'.
792 * typeck.c (get_delta_difference): Fix misspelling in diagnostic:
793 `conversiona'.
794
aa36c081
JM
7951997-12-02 Mark Mitchell <mmitchell@usa.net>
796
797 * pt.c (determine_explicit_specialization): Avoid an internal
798 error for bad specializations.
799
800 * method.c (build_overload_value): Handle SCOPE_REF.
801
de35891e
JM
802Tue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com>
803
804 * class.c (prepare_fresh_vtable): Enable even more complex MI
805 vtable names.
806
807Tue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com>
808
809 * exception.cc (__check_eh_spec): Optimize a bit.
810
811 * exception.cc (__cp_pop_exception): Lose handler arg.
812 * except.c (do_pop_exception): Likewise.
813 (push_eh_cleanup): Let the cleanup mechanism supply the handler.
814 (expand_end_catch_block): Likewise.
815
74cd8397
JM
816Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com>
817
818 * pt.c (check_explicit_specialization): Complain about using a
819 template-id for a non-specialization.
820
956d6950
JL
821Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com>
822
823 * repo.c: Prototype rindex only if needed.
824 * xref.c: Likewise.
825
74cd8397
JM
826Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
827
828 * error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
829
aa598818
JM
830Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com>
831
c2840dfb
JM
832 * typeck.c (build_const_cast): Handle references here instead of
833 handing off to convert_to_reference.
834
fb98cff6
JM
835 * except.c: Lose Unexpected, SetTerminate, SetUnexpected,
836 TerminateFunctionCall.
837 (init_exception_processing): Likewise. Terminate et al are now
838 the fns, not ADDR_EXPRs.
839 (various): Lose redundant assemble_external calls.
840 (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/.
841
77be6f82
JM
842 * cp-tree.h (struct lang_decl_flags): Add comdat.
843 (DECL_COMDAT): New macro.
844 * decl.c (duplicate_decls): Propagate it.
845 (cp_finish_decl): Handle it.
846 * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.
847
aa598818
JM
848 * class.c: Remove static pending_hard_virtuals.
849 (add_virtual_function): Take pointers to pending_virtuals
850 and pending_hard_virtuals.
851 (finish_struct_1): Pass them. Declare pending_hard_virtuals.
852
e872bb7a
JM
853Wed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com>
854
eb773359
JM
855 * decl2.c (import_export_vtable): If we support one_only but not
856 weak symbols, mark instantiated template vtables one_only.
857 (import_export_decl): Likewise for tinfo functions.
858 (finish_vtable_vardecl): Also write out vtables from explicitly
859 instantiated template classes.
860 * pt.c (mark_class_instantiated): Revert last change.
861
e872bb7a
JM
862 * except.c (expand_throw): Call mark_used on the destructor.
863
956d6950
JL
864Wed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com)
865
866 * lex.c (lang_init): Enable flag_exceptions by default if no
867 command line switch was specified.
868
5ad5a526
MM
8691997-11-26 Mark Mitchell <mmitchell@usa.net>
870
871 * pt.c (unify): Handle `void' template parameters in
872 specializations.
873
92f5c135
JM
874Wed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com>
875
328d03d7
JM
876 * rtti.c (build_dynamic_cast): Handle template case here.
877 (build_dynamic_cast_1): Not here.
878
19754d4c
JM
879 * typeck2.c (digest_init): Make copies where appropriate.
880
881 * decl2.c (delete_sanity): resolve_offset_ref.
882
92f5c135
JM
883 * except.c (expand_start_catch_block): Fix catching a reference
884 to pointer.
885
886Tue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com>
887
888 * init.c (build_new): Copy size to the saveable obstack.
889
890 * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the
891 TRY_CATCH_EXPR for now.
892
20b90169
JM
893Mon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com>
894
9b493293
JM
895 * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL
896 has DECL_LANG_SPECIFIC.
897
20b90169
JM
898 * exception.cc (struct cp_eh_info): Add handlers field.
899 (__cp_push_exception): Initialize it.
900 (__cp_pop_exception): Decrement it. Don't pop unless it's 0.
901 (__throw_bad_exception): Remove.
902 * except.c (call_eh_info): Add handlers field.
903 (get_eh_handlers): New fn.
904 (push_eh_cleanup): Increment handlers.
905
25d5eb3f
JM
906Fri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com>
907
6c20b7e9
JM
908 * except.c (expand_start_eh_spec): Use the try/catch code.
909 (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of
910 doing everything inline.
911 (init_exception_processing): throw_type_match now takes
912 const void pointers.
913 * exception.cc (__check_eh_spec): New fn.
914 * inc/exception: Neither terminate nor unexpected return.
915 * decl.c: Make const_ptr_type_node public.
916 * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly.
917
25d5eb3f
JM
918 * except.c (expand_start_catch_block): We only need the rethrow
919 region for non-sjlj exceptions.
920 (expand_end_catch_block): Likewise. Use outer_context_label_stack.
921
047f64a3
JM
922Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com>
923
ced78d8b
JM
924 * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
925 (various.o): Likewise.
926 * inc/new: Add placement deletes. Add throw specs for default new.
927 * new.cc (set_new_handler): Move here from libgcc2.
928 * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
929 (new): Move from libgcc2. Throw bad_alloc.
930 * new2.cc: Move the rest of the op news and op deletes from libgcc2.
931 * decl.c (init_decl_processing): Update exception specs on new and
932 delete.
933
047f64a3
JM
934 * method.c (build_decl_overload_real): Don't mess with global
935 placement delete.
936
937 * init.c (build_new): Check for null throw spec, not nothrow_t.
938
939 * decl.c (duplicate_decls): Don't complain about different exceptions
940 from an internal declaration.
941
942 * call.c (build_op_delete_call): Fix check for member fns again.
943
944 * decl2.c (import_export_decl): Interface hackery affects
945 virtual synthesized methods.
946
5951f637
JM
947Wed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com>
948
f2d773a2
JM
949 * decl.c (start_decl): Don't just complain about a mismatched
950 scope, fix it.
951
5951f637
JM
952 * decl.c (make_implicit_typename): Handle case where t is not
953 actually from context.
954 * tree.c (get_type_decl): Lose identifier case.
955 * spew.c (yylex): Lose useless call to identifer_typedecl_value.
956 * parse.y (nonnested_type): Just use lookup_name.
957 (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.
958
959Wed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com>
960
961 * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case
962 T was built in C language context (for example, by
963 output_func_start_profiler).
964
bd2a82a6
JM
965Wed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com>
966
967 * decl.c (make_implicit_typename): New fn.
968 (lookup_name_real): Use it. Use current_class_type as the context.
969
8baa713c
BH
970Mon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr>
971
972 * pt.c (do_poplevel): Don't prohibit jumps into this contour.
973
37130ac3
JM
974Mon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com>
975
976 * friend.c (do_friend): Warn about non-template friends in templates.
977
978 * call.c (build_op_delete_call): Fix handling of inherited delete.
979
980 * search.c (dfs_record_inheritance): Ignore template type parms.
981
da4768fe
JM
982Sat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com>
983
984 * call.c (build_new_op): Fix copy error.
985 (build_op_new_call): New fn.
986 (build_op_delete_call): New fn.
987 * cp-tree.h: Declare them.
988 * init.c (build_new): Use them. Support placement delete.
989 (build_x_delete): Use build_op_delete_call.
990 (build_delete): Likewise.
991 * decl2.c (delete_sanity): Likewise.
992 (coerce_delete_type): Don't complain about placement delete.
993
2bb14213
JM
994Thu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com>
995
9babbf20
JM
996 * call.c (build_new_function_call): Remove unused 'obj' parm.
997 * cp-tree.h, typeck.c: Adjust.
998
2bb14213
JM
999 * init.c (build_new): Make the cleanup last longer.
1000 (expand_vec_init): Call do_pending_stack_adjust.
1001
a7d87521
JM
1002Wed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com>
1003
1004 * pt.c (do_type_instantiation): Fix typo.
1005 (mark_class_instantiated): If we support one_only but not weak
1006 symbols, don't mark this as known.
1007
2bd3bc6f 1008 * init.c (build_new): Handle vec delete in EH cleanup.
a7d87521 1009
6d2b1bee
BK
1010Wed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1011
1012 * call.c (build_method_call): Call complete_type before checking
1013 for destructor.
1014
69f9c1f6
JW
1015Sun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com)
1016
1017 * decl.c (add_block_current_level): Delete.
1018 * init.c (build_vec_delete_1): Delete build_block and
1019 add_block_current_level calls.
1020
1f109f0f
JM
1021Wed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com>
1022
1023 * init.c (build_new): Handle freeing allocated memory when the
1024 constructor throws.
1025
1026 * call.c (build_new_method_call): Fix flags arg.
1027
1028 * pt.c (do_type_instantiation): Don't try to instantiate
1029 member templates.
1030 (mark_decl_instantiated): If we support one_only but not
1031 weak symbols, mark this one_only.
1032 * decl2.c (import_export_vtable): Don't defer handling of vtables
1033 if MULTIPLE_SYMBOL_SPACES.
1034
0b3ca5ee
JM
1035Tue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1036
1037 * except.c (expand_end_catch_block): Lose call to __sjpopnthrow.
1038
c0700ea5
JM
1039Tue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com>
1040
1041 * except.c (do_pop_exception): Return a value.
1042
00d3396f
JM
1043Mon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com>
1044
1045 * call.c (build_new_method_call): Handle getting a
1046 TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field
1047 if we got template parms.
1048 * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
1049 not just the args.
1050 * decl2.c (build_expr_from_tree): Tweak last change.
1051 * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
1052 (maybe_fold_nontype_arg): Split out from tsubst_copy.
1053 * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.
1054
1055Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
1056
1057 * pt.c (tsubst_copy): Handle explicit template arguments in
1058 function calls.
1059 * typeck.c (build_x_function_call): Likewise.
1060 * decl2.c (build_expr_from_tree): Lookup function name if it
1061 hasn't been done.
1062
1063 * pt.c (tsubst): Instantiate template functions properly when
1064 template parameter does not appear in function arguments and return
1065 type.
1066 (comp_template_args): Handle member templates required by tsubst.
1067
343fdf03
JM
1068Mon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1069
1070 * decl.c (grokdeclarator): Tweak conditions for pedwarn in
1071 previous change.
1072
1073Mon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1074
1075 * pt.c (coerce_template_parms): Tweak error message.
1076
1077 * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
1078 return type defaults to `int', even if there are storage-class
1079 specifiers.
1080
c7ae64f2
JM
1081Mon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com>
1082
1083 Complete nested exception support.
1084 * except.c (do_pop_exception): Split out...
1085 (push_eh_cleanup): From here. Handle the EH region by hand.
1086 (expand_start_catch_block): Add a new level for the catch parm.
1087 Move the rethrow region outside the two cleanup regions.
1088 Protect the initializer for the catch parm with terminate.
1089 (expand_end_catch_block): Likewise. End the region for the eh_cleanup.
1090 * exception.cc (__cp_pop_exception): Now takes two parms. Handle
1091 popping off the middle of the stack.
1092 * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
1093 WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
1094 (build_cplus_new): Only wrap CALL_EXPRs.
1095 * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
1096 the constructor call.
1097
1098Sun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1099
1100 * Make-lang.in (c++.distdir): Make inc subdirectory.
1101
bd871063
JM
1102Fri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1103
1104 * decl2.c (finish_file): Put back some code.
1105
4d6efa25
JM
1106Thu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1107
1108 * decl2.c (finish_file): Remove redundant code.
1109 * method.c (emit_thunk): Don't let the backend defer generic thunks.
1110
95e8dcba
JM
1111Wed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com>
1112
1113 * except.c (call_eh_info): Split out...
1114 (push_eh_info): From here.
1115 (expand_builtin_throw): Use it.
1116 (expand_start_catch_block): Move region start back.
1117
30c317f5
DE
1118Tue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com>
1119
1120 * lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
1121 (real_yylex): Record wide strings using target endianness, not host.
1122
a8a63732
BK
11231997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com>
1124
1125 * repo.c (rindex): Add decl unconditionally.
1126 (get_base_filename, open_repo_file): Don't cast rindex.
1127 * xref.c (rindex): Add decl unconditionally.
1128 (index): Remove unused decl.
1129 (open_xref_file): Don't cast rindex.
1130
b9ddcfac
JM
1131Sun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1132
1133 * class.c (build_vbase_path): Propagate the result type properly.
1134
5a0fa1de
BK
11351997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com>
1136
55e0182b
BK
1137 * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace
1138 remaining use of saved_throw_type with a call to get_eh_type.
1139
11401997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com>
1141
b2bb2710
BK
1142 * lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
1143 (file_name_nondirectory): New function, doing the same as the macro.
1144 (set_typedecl_interface_info): Use it instead of the macro.
1145 (check_newline): Likewise.
1146 (handle_cp_pragma): Likewise.
1147
1148 * repo.c (get_base_filename): Cast result of rindex to char*.
1149 (open_repo_file): Likewise.
1150 * xref.c (open_xref_file): Likewise.
1151 * error.c (dump_char): Make its arg int, not char.
1152
cf9d67e3
BK
1153 * except.c (push_eh_info): Pass the number of fields - 1 down, not
1154 the exact number of fields.
1155
6874c264
JM
1156Fri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com>
1157
1158 Support for nested exceptions.
1159 * tinfo2.cc (__is_pointer): New fn.
1160 * exception.cc (struct cp_eh_info): Define.
1161 (__cp_exception_info, __uncatch_exception): New fns.
1162 (__cp_push_exception, __cp_pop_exception): New fns.
1163 * except.c: Lose saved_throw_{type,value,cleanup,in_catch}.
1164 Lose empty_fndecl.
1165 (init_exception_processing): Likewise. __eh_pc is now external.
1166 (push_eh_info): New fn.
1167 (get_eh_{info,value,type,caught}): New fns.
1168 (push_eh_cleanup): Just call __cp_pop_exception.
1169 (expand_start_catch_block): Use push_eh_info. Start the eh region
1170 sooner.
1171 (expand_end_eh_spec): Use push_eh_info.
1172 (expand_throw): Call __cp_push_exception to set up the exception info.
1173 Just pass the destructor or 0 as the cleanup. Call __uncatch_exception
1174 when we rethrow.
1175 (expand_builtin_throw): Don't refer to empty_fndecl.
1176
7b4f18a3
JM
1177Thu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com>
1178
1179 * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
1180
4966381a
BK
11811997-10-22 Brendan Kehoe <brendan@cygnus.com>
1182
1183 * method.c (build_template_parm_names, build_decl_overload_real):
1184 Add static to definitions.
1185 * pt.c (add_to_template_args, note_template_header,
1186 processing_explicit_specialization, type_unification_real): Likewise.
1187 ({determine,check}_explicit_specialization): Use a single string for
1188 error messages.
1189
92b96838
JM
1190Mon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com>
1191
1192 * except.c (expand_exception_blocks): Call do_pending_stack_adust.
1193 (expand_end_catch_block): Likewise.
1194 (expand_end_eh_spec): Likewise.
1195
92eca640
MM
1196Mon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net>
1197
1198 * decl.c (duplicate_decls): Handle template specializations
1199 correctly.
1200 * error.c (dump_function_name): Fix printing of specializations of
1201 member functions that are not member templates.
1202 * cp-tree.h (processing_specialization): Make global.
1203 * pt.c (processing_specialization): Likewise.
1204 * lex.c (cons_up_default_function): Save and restore
1205 processing_specialization to avoid confusion.
1206
a6967cc0
JM
1207Mon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com>
1208
1209 * decl.c (init_decl_processing): Give null_node unknown* type.
1210 * typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
1211 (common_type): Likewise.
1212 * error.c (args_as_string): Recognize null_node.
e9a25f70
JL
1213
1214Sun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1215
1216 * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR.
1217 (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR.
1218
1219 * decl.c (init_decl_processing): Call using_eh_for_cleanups.
1220
1221 * Make-lang.in (g++): Include prefix.o.
a6967cc0 1222
bdd7e652
JG
1223Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com>
1224
1225 * pt.c (determine_explicit_specialization): Initialize "dummy"
1226 to keep Purify quiet.
1227
2636fde4
JM
1228Thu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com>
1229
1230 * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
1231 (build_overload_int): Not here.
1232
1233Wed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com>
1234
1235 * class.c (build_type_pathname): Remove.
1236 (prepare_fresh_vtable): Fix problem with complex MI vtable names.
1237
32066e1a
BK
12381997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com>
1239
1240 * parse.y (unary_expr): Give a pedwarn if someone tries to use the
1241 &&label GNU extension.
1242
1f06b267
MM
1243Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net>
1244
1245 * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
1246 so as to avoid incorrect manglings.
1247 * method.c (build_decl_overload_real): Don't mangle return types
1248 for constructors.
1249
e66d884e
JM
1250Tue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1251
1252 * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
1253 scratch_tree_cons): Define as macros for now.
1254 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
1255 lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
1256 typeck2.c: Use them and the expression_obstack variants.
dae1d6f6 1257
e66d884e 1258Mon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
dae1d6f6 1259
e66d884e
JM
1260 * decl.c (store_return_init): Allow classes with explicit ctors to
1261 be used with the named return values extension.
dae1d6f6 1262
7ac63bca
JM
1263Fri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com>
1264
1265 * pt.c (instantiate_decl): Fix previous change.
1266
fee23f54
JM
1267Thu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com>
1268
1269 * pt.c (tsubst): Fix thinko.
1270 (instantiate_decl): Really use the original template.
1271
1272 * call.c (build_new_method_call): Use simple constructor_name for
1273 error messages.
1274
c8907853
JL
1275Wed Oct 8 22:44:42 1997 Jeffrey A Law (law@cygnus.com)
1276
1277 * method.c (build_underscore_int): Don't use ANSI specific
1278 features.
1279
3bd1e206
JM
1280Wed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com>
1281
1282 * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
1283 for our key method; it might have been inlined by -O3.
1284
ffb690bd
JM
1285Tue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net>
1286
1287 * decl.c (make_typename_type): Do not try to call lookup_field for
1288 non-aggregate types.
1289
1290Tue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com>
1291
1292 * typeck.c (build_reinterpret_cast): Tweak.
1293
1294Tue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
1295
1296 * typeck.c (build_reinterpret_cast): converting a void pointer
1297 to function pointer with a reinterpret_cast produces a warning
1298 if -pedantic is issued
1299
1300Tue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1301
1302 * typeck.c (c_expand_return): Don't warn about returning a
1303 reference-type variable as a reference.
1304
a6f02587
JM
1305Tue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com>
1306
1307 * method.c (build_static_name): Fix typo.
1308
13091997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com>
1310
1311 * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
1312 OLDDECL before we try to do DECL_USE_TEMPLATE.
1313
c32381b1
JM
1314Tue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1315
1316 * decl.c (duplicate_decls): Don't warn about template instances.
1317
1318 * typeck.c (mark_addressable): Lose ancient code that unsets
1319 DECL_EXTERNAL.
1320
1321 * pt.c (do_decl_instantiation): Lose support for instantiating
1322 non-templates.
1323
1324 * call.c (build_new_function_call): Fix handling of null explicit
1325 template args.
1326 (build_new_method_call): Likewise.
1327
1328Mon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net>
1329
1330 * method.c (build_underscore_int): Fix typo.
1331
3f2270ec
BK
13321997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com>
1333
1334 * tree.c (print_lang_statistics): #if 0 call to
1335 print_inline_obstack_statistics until its definition is checked in.
1336
27bb8339
JM
1337Mon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com>
1338
c32381b1
JM
1339 * decl2.c (finish_file): Move dump_tree_statistics to end.
1340
27bb8339
JM
1341 * pt.c (instantiate_decl): Look for the original template.
1342 (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
1343 of member templates.
1344
5408ce78
JM
1345Wed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1346
1347 * Makefile.in (g++FAQ.*): New rules.
1348 (CONFLICTS): Update.
1349 * g++FAQ.texi: Moved from libg++.
1350
1351 * parse.y (PFUNCNAME): Only specify the type once.
1352
a3f44a13
BK
13531997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com>
1354
1355 * lex.c (real_yylex): Clean up the code to fully behave the way
1356 the c-lex.c parser does for complex and real numbers.
1357
5a45bc3e
JM
1358Tue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1359
1360 * method.c (build_decl_overload_real): Reformat.
1361
b7067a12
JM
1362Tue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com>
1363
1364 * method.c (synthesize_method): If at_eof, determine our linkage.
1365
4f6140be
PE
13661997-09-29 Paul Eggert <eggert@twinsun.com>
1367
1368 * lex.c (real_yylex): Treat `$' just like `_', except issue a
1369 diagnostic if !dollars_in_ident or if pedantic.
1370
1371 * lang-specs.h (@c++): -ansi no longer implies -$.
1372
1373 * decl2.c (lang_decode_option):
1374 -traditional and -ansi now do not mess with
1375 dollars_in_ident.
1376
9f617717
L
1377Mon Sep 29 19:57:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1378
1379 * Makefile.in (parse.o, decl.o): Also depend on
1380 $(srcdir)/../except.h $(srcdir)/../output.h.
1381 (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
1382 $(srcdir)/../except.h $(srcdir)/../output.h.
1383 (typeck.o, init.o): Also depend on $(srcdir)/../expr.h
1384 ../insn-codes.h.
1385
1386 * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.
1387
1388 * expr.c (cplus_expand_expr): Make it static.
1389
1390 * decl2.c, init.c, typeck.c: Include "expr.h".
1391 (expand_expr): Use proper values when calling the function.
1392
0c4b14c4
JM
1393Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
1394
1395 * lang-options.h: new -Wold-style-cast flag.
1396 * cp-tree.h (warn_old_style_cast): new variable.
1397 * decl2.c (warn_old_style_cast): ditto.
1398 (lang_decode_option): support -Wold-style-cast.
1399 (reparse_absdcl_as_casts): produce old-style-cast warning.
1400
1401Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1402
1403 * decl.c (cp_finish_decl): Allow expand_aggr_init to set
1404 TREE_USED, reset value based on already_used.
1405
1406 * init.c (expand_member_init): Revert change.
1407
893de33c
JM
1408Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com>
1409
1410 * cp-tree.h, decl.c, decl2.c, pt.c:
1411 Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public.
1412
1413 * decl2.c (lang_decode_option): Add missing ;.
1414
386b8a85
JM
1415Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com>
1416
1417 * friend.c (do_friend): Disable injection for all template-derived
1418 decls.
1419 * decl2.c (lang_decode_option): Handle -fguiding-decls.
1420 * parse.y (notype_template_declarator): New nonterminal.
1421 (direct_notype_declarator): Use it.
1422 (complex_direct_notype_declarator): Likewise.
1423 (object_template_id): Accept any kind of identifier after TEMPLATE.
1424 (notype_qualified_id): Don't add template declarators here.
1425
1426Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net>
1427
1428 * call.c (add_template_candidate): Add explicit_targs parameter.
1429 (build_scoped_method_call): Use it.
1430 (build_overload_call_real): Likewise.
1431 (build_user_type_conversion_1): Likewise.
1432 (build_new_function_call): Likewise.
1433 (build_object_call): Likewise.
1434 (build_new_op): Likewise.
1435 (build_new_method_call): Likewise.
1436 (build_new_function_call): Handle TEMPLATE_ID_EXPR.
1437 (build_new_method_call): Likewise.
1438
1439 * class.c (finish_struct_methods): Add specialization pass to
1440 determine which methods were specializing which other methods.
1441 (instantiate_type): Handle TEMPLATE_ID_EXPR.
1442
1443 * cp-tree.def (TEMPLATE_ID_EXPR): New tree code.
1444
1445 * cp-tree.h (name_mangling_version): New variable.
1446 (flag_guiding_decls): Likewise.
1447 (build_template_decl_overload): New function.
1448 (begin_specialization): Likewise.
1449 (reset_specialization): Likewise.
1450 (end_specialization): Likewise.
1451 (determine_explicit_specialization): Likewise.
1452 (check_explicit_specialization): Likewise.
1453 (lookup_template_function): Likewise.
1454 (fn_type_unification): Add explicit_targs parameter.
1455 (type_unification): Likewise.
1456
1457 * decl.c (duplicate_decls): Add smarts for explicit
1458 specializations.
1459 (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
1460 specializations.
1461 (grokfndecl): Call check_explicit_specialization.
1462
1463 * decl2.c (lang_decode_option): Handle -fname-mangling-version.
1464 (build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
1465 (check_classfn): Handle specializations.
1466
1467 * error.c (dump_function_name): Print specialization arguments.
1468
1469 * friend.c (do_friend): Don't call pushdecl for template
1470 instantiations.
1471
1472 * init.c (build_member_call): Handle TEMPLATE_ID_EXPR.
1473
1474 * lang-options.h: Add -fname-mangling-version, -fguiding-decls,
1475 and -fno-guiding-decls.
1476
1477 * lex.c (identifier_type): Return PFUNCNAME for template function
1478 names.
1479
1480 * method.c (build_decl_overload_real): New function.
1481 (build_template_parm_names): New function.
1482 (build_overload_identifier): Use it.
1483 (build_underscore_int): New function.
1484 (build_overload_int): Use it. Add levels for template
1485 parameters.
1486 (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs.
1487 (build_overload_nested_names): Handle template type parameters.
1488 (build_template_decl_overload): New function.
1489
1490 * parse.y (YYSTYPE): New ntype member.
1491 (nested_name_specifier): Use it.
1492 (nested_name_specifier_1): Likewise.
1493 (PFUNCNAME): New token.
1494 (template_id, object_template_id): New non-terminals.
1495 (template_parm_list): Note specializations.
1496 (template_def): Likewise.
1497 (structsp): Likewise.
1498 (fn.def2): Handle member template specializations.
1499 (component_decl_1): Likewise.
1500 (direct_notype_declarator): Handle template-ids.
1501 (component_decl_1): Likewise.
1502 (direct_notype_declarator): Handle template-ids.
1503 (primary): Handle TEMPLATE_ID_EXPR, and template-ids.
1504
1505 * pt.c (processing_specializations): New variable.
1506 (template_header_count): Likewise.
1507 (type_unification_real): New function.
1508 (processing_explicit_specialization): Likewise.
1509 (note_template_header): Likewise.
1510 (is_member_template): Handle specializations.
1511 (end_template_decl): Call reset_specialization.
1512 (push_template_decl): Handle member template specializations.
1513 (tsubst): Likewise.
1514 (tsubst_copy): Handle TEMPLATE_ID_EXPR.
1515 (instantiate_template): Handle specializations.
1516 (instantiate_decl): Likewise.
1517 (fn_type_unification): Handle explicit_targs.
1518 (type_unification): Likewise. Allow incomplete unification
1519 without an error message, if allow_incomplete.
1520 (get_bindings): Use new calling sequence for fn_type_unification.
1521
1522 * spew.c (yylex): Handle PFUNCNAME.
1523
1524 * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
1525 (really_overloaded_fn): Likewise.
1526 (get_first_fn): Handle function templates.
1527
1528 * typeck.c (build_x_function_call): Use really_overloaded_fn.
1529 Handle TEMPLATE_ID_EXPR.
1530 (build_x_unary_op): Likewise.
1531 (build_unary_op): Likewise.
1532 (mark_addressable): Templates whose address is taken are marked
1533 as used.
1534
b9620d0e
AS
15351997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1536
1537 * decl.c (init_decl_processing): Declare __builtin_constant_p as
1538 accepting any kind of type, not only int.
1539
405a745b
JM
1540Fri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com>
1541
1052cd65
JM
1542 * search.c (get_matching_virtual): Notice virtual bases when sorrying
1543 about covariant returns.
1544
405a745b
JM
1545 * parse.y (member_init): Also imply typename here. Remove ancient
1546 extension for initializing base members.
1547
653cc74a
JM
1548Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1549
1550 Handle multi-level typenames and implicit typename in base list.
1551 * parse.y (typename_sub{,[0-2]}): New rules.
1552 (structsp, rule TYPENAME_KEYWORD): Use typename_sub.
1553 (nonnested_type): New rule.
1554 (complete_type_name): Use it.
1555 (base_class.1): Use typename_sub and nonnested_type.
1556 (nested_name_specifier): Don't elide std:: here.
1557 * decl.c (make_typename_type): Handle getting a type for NAME.
1558 (lookup_name_real): Turn std:: into :: here.
1559
1560 Rvalue conversions were removed in London.
1561 * call.c (is_subseq): Don't consider lvalue transformations.
1562 (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
1563 (joust): Reenable ?: kludge.
1564
59f1f2c4
BK
15651997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com>
1566
1567 * decl.c (start_function): Up warning of no return type to be a
1568 pedwarn.
1569
249555b0
BK
1570Mon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1571
1572 * init.c (expand_member_init): Don't set TREE_USED.
1573 * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED
1574 set,don't clear TREE_USED wholesale.
1575
b82b76c6
JM
1576Sat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com>
1577
1578 * call.c (build_over_call): Do require_complete_type before
1579 build_cplus_new.
1580
238109cd
JM
1581Thu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com>
1582
1583 * search.c (lookup_field): Call complete_type in all cases.
1584
1585 * decl.c (finish_function): Just warn about flowing off the end.
1586
66f2e88d
JM
1587Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1588
1589 * decl.c (grokparms): Don't bash a permanent list node if we're
1590 in a function.
1591
8552680f
BK
15921997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com>
1593
1594 * Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
1595
5c825fc2
JM
1596Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com>
1597
d5467e20
JM
1598 * call.c (build_new_op): Give better error for syntactically
1599 correct, but semantically invalid, use of undeclared template.
1600
549121cd
JM
1601 * call.c (compare_qual): Handle pmfs.
1602
5c825fc2
JM
1603 * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
1604 after the exception spec.
1605
18a7cd24
JM
1606Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1607
5168dcfc
JM
1608 * call.c (null_ptr_cst_p): Integer type, not integral type.
1609
18a7cd24
JM
1610 * call.c (joust): Disable warnings until they can be moved to the
1611 right place.
1612
0520f6c0
PB
1613Fri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com>
1614
1615 * Makefile.in, config-lang.in: Convert to autoconf.
1616
85b71cf2
JM
1617Thu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com>
1618
1619 * decl.c (lookup_name_real): Add implicit 'typename' to types from
1620 base classes.
1621
1622 * pt.c (most_specialized_class): Fix typo.
1623 (tsubst): Move constant folding to TREE_VEC case.
1624
1625Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net>
1626
1627 * pt.c (do_poplevel): Don't warn about unused local variables
1628 while processing_template_decl since we don't always know whether
1629 or not they will need constructing/destructing.
1630
1631 * pt.c (uses_template_parms): Check the values of an enumeration
1632 type to make sure they don't depend on template parms.
1633
1634 * decl.c (make_typename_type): Don't lookup the field if the
1635 context uses template parms, even if we're not
1636 processing_template_decl at the moment.
1637
1638 * pt.c (coerce_template_parms): Avoid looking at the
1639 TYPE_LANG_DECL portion of a typename type, since there won't be
1640 one.
1641 (tsubst): Do constant folding as necessary to make sure that
1642 arguments passed to lookup_template_class really are constants.
1643
ca55abae
JM
1644Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com>
1645
1646 * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
1647 * decl2.c (finish_file): Only register exception tables if we
1648 need to.
1649
1650 * decl.c (init_decl_processing): Add __builtin_[fs]p.
1651
2ca340ae
JM
1652Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1653
1654 * pt.c (unify): Just return 0 for a TYPENAME_TYPE.
1655
03555413
MM
1656Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net>
1657
1658 * error.c (dump_decl): Avoid crashing when presented with a
81e98a98
JM
1659 uninitialized constant, as can occur with a template parameter.
1660 (dump_expr): Make sure that there are enough levels of
1661 current_template_parms before we start diving through them.
03555413 1662
b0d75c1e
BK
16631997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
1664
1665 * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
1666 c-typeck.c.
1667
a2676865
JM
1668Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1669
1670 * except.c (expand_throw): Call build_delete for all
1671 exception types, not just objects with destructors.
1672
b3d5a58b
JG
1673Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net>
1674
1675 * decl.c (current_local_enum): Remove static.
1676 * pt.c (tsubst_enum): Save and restore value of current_local_enum
1677 in case template is expanded in enum decl.
1678 (instantiate_class_template) : Use new tsubst_enum signature.
1679 (tsubst_expr): Likewise.
1680
786b5245
MM
1681Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net>
1682
1683 * pt.c (begin_member_template_processing): Take a function as
1684 argument, not a set of template arguments. Use the template
1685 parameters, rather than the arguments. Handle non-type parameters
1686 correctly. Push a binding level for the parameters so that multiple
1687 member templates using the same parameter names can be declared.
1688 (end_member_template_processing): Pop the binding level.
1689 (push_template_decl): Mark member templates as static when
1690 appropriate.
1691
1692 * lex.c (do_pending_inlines): Pass the function, not its template
1693 arguments, to begin_member_template_processing.
1694 (process_next_inline): Likewise.
1695 (do_pending_defargs): Likewise.
1696
1697 * error.c (dump_expr): Obtain the correct declaration for a
1698 TEMPLATE_CONST_PARM.
1699
1700 * call.c (add_template_conv_candidate): New function.
1701 (build_object_call): Handle member templates, as done in the other
1702 build_ functions.
1703
aa5f3bad
MM
1704Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net>
1705
1706 * decl.c (replace_defag): Undo previous change.
1707 * lex.c (do_pending_defargs): Deal with member templates.
1708
1709 * pt.c (is_member_template): Avoid crashing when passed a
1710 non-function argument.
1711
98c1c668
JM
1712Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1713
1714 * class.c (grow_method): Remove check for redeclaration.
1715
a2676865
JM
1716Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net>
1717
1718 * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
1719 (DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
1720 (PRIMARY_TEMPLATE_P): Use it.
1721 * call.c (build_overload_call_real): Use it.
1722 * class.c (instantiate_type): Likewise.
1723 * decl.c (decls_match): Likewise.
1724 * method.c (build_overload_identifier): Likewise.
1725 * pt.c (push_template_decl): Likewise.
1726 (classtype_mangled_name): Likewise.
1727 (lookup_template_class): Likewise.
1728
1729 * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
1730 DECL_NTPARMS to conform to usage elsewhere.
1731 * call.c (add_template_candidate): Likewise.
1732 * class.c (instantiate_type): Likewise.
1733 * pt.c (instantiate_template): Likewise.
1734 (get_bindings): Likewise.
1735
1736 * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
1737 is_member_template.
1738
1739 * pt.c (unify): Undo changes to allow multiple levels of template
1740 parameters.
1741 (type_unification): Likewise.
1742 (fn_type_unification): Likewise.
1743 (get_class_bindings): Likewise.
1744 * cp-tree.h (Likewise).
1745
1746 * decl.c (replace_defarg): Check that the type of the default
1747 parameter does not invlove a template type before complaining
1748 about the initialization.
1749
1750 * error.c (dump_expr): Deal with template constant parameters in
1751 member templates correctly.
1752
1753 * pt.c (is_member_template): Deal with class specializations
1754 correctly.
1755 (tsubst): Handle "partial instantiation" of member templates
1756 correctly.
1757
98c1c668
JM
1758Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net>
1759
1760 * pt.c (type_unification): Change calling squence to allow for
1761 multiple levels of template parameters.
1762 (tsubst_expr): Likewise.
1763 (tsubst): Likewise.
1764 (tsubst_copy): Likewise.
1765 (instantiate_template): Likewise.
1766 (unify): Likewise.
1767 * call.c (build_overload_call_real): Use it.
1768 (add_builtin_candidate): Use it.
1769 (build_new_method_call): Use it.
1770 * class.c (instantiate_type): Use it.
1771 * decl.c (grokdeclarator): Use it.
1772 * decl2.c (finish_file): Use it.
1773 * method.c (build_overload_identifier): Use it.
1774
1775 * call.c (add_template_candidate): Add additional parameter for
1776 the function return type. Call fn_type_unification istead of
1777 type_unification.
1778 (build_user_type_conversion_1): Handle member templates.
1779 (build_new_function_call): Likewise.
1780 (build_new_op): Likewise.
1781 (build_new_method_call): Likewise.
1782
1783 * class.c (grow_method): Don't give an error message indicating
1784 that two member templates with the same name are ambiguous.
1785 (finish_struct): Treat member template functions just like member
1786 functions.
1787
1788 * cp-tree.h (check_member_template): Add declaration.
1789 (begin_member_template_processing): Likewise.
1790 (end_member_template_processing): Likewise.
1791 (fn_type_unification): Likewise.
1792 (is_member_template): Likewise.
1793 (tsubst): Change prototype.
1794 (tsubst_expr): Likewise.
1795 (tsubst_copy): Likewise.
1796 (instantiate_template): Likewise.
1797 (get_bindings): Likewise.
1798
1799 * decl.c (decls_match): Handle multiple levels of template
1800 parameters.
1801 (pushdecl): Handle template type params just like other type
1802 declarations.
1803 (push_class_level_binding): Return immediately if the
1804 class_binding_level is NULL.
1805 (grokfndecl): If check_classfn() returns a member_template, use
1806 the result of the template, not the template itself.
1807
1808 * decl2.c (check_member_template): New function. Check to see
1809 that the entity declared to be a member template can be one.
1810 (check_classfn): Allow redeclaration of member template functions
1811 with different types; the new functions can be specializations or
1812 explicit instantiations.
1813
1814 * error.c (dump_decl): Handle multiple levels of template
1815 parameters.
1816 (dump_function_decl): Update to handle function templates.
1817
1818 * lex.c (do_pending_inlines): Set up template parameter context
1819 for member templates.
1820 (process_next_inline): Likewise.
1821
1822 * method. (build_overload_identifier): Adjust for multiple levels
1823 of template parameters.
1824
1825 * parse.y (fn.def2): Add member templates.
1826 (component_decl_1): Likewise.
1827
1828 * pt.c (begin_member_template_processing): New function.
1829 (end_member_template_processing): Likewise.
1830 (is_member_template): Likewise.
1831 (fn_type_unification): Likewise.
1832 (current_template_parms): Return a vector of all the template
1833 parms, not just the innermost level of parms.
1834 (push_template_decl): Deal with the possibility of member
1835 templates.
1836 (lookup_template_class): Likewise.
1837 (uses_template_parms): Likewise.
1838 (tsubst): Modify processing to TEMPLATE_TYPE_PARM and
1839 TEMPLATE_CONST_PARM to deal with multiple levels of template
1840 arguments. Add processing of TEMPLATE_DECL to produce new
1841 TEMPLATE_DECLs from old ones.
1842 (do_decl_instantiation): Handle member templates.
1843
1844 * search.c (lookup_fnfields_1): Handle member template conversion
1845 operators.
1846
1847 * tree.c (cp_tree_equal): Check the levels, as well as the
1848 indices, of TEMPLATE_CONST_PARMs.
1849
1850 * typeck.c (comptypes): Check the levels, as well as the indices,
1851 fo TEMPLATE_TYPE_PARMs.
1852 (build_x_function_call): Treat member templates like member
1853 functions.
1854
03e70705
JM
1855Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1856
c1bc6829
JM
1857 * typeck.c (c_expand_return): Always convert_for_initialization
1858 before checking for returning a pointer to local.
1859
03e70705
JM
1860 * pt.c (type_unification): If strict and the function parm doesn't
1861 use template parms, just compare types.
1862
1863Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
3d015f46
KE
1864
1865 * method.c (build_overloaded_value): Replace direct call
1866 to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
1867
056c014d
JM
1868Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com>
1869
1870 * typeck.c (convert_arguments): Don't arbitrarily choose the first
1871 of a set of overloaded functions.
1872
ca79f85d
JM
1873Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1874
056c014d
JM
1875 * lex.c (real_yylex): Don't elide __FUNCTION__.
1876
37dac039
JM
1877 * method.c (build_overload_value): Add in_template parm.
1878 (build_overload_int): Likewise.
1879 (build_overload_identifier): Pass it.
1880
1881 * decl.c (duplicate_decls): Don't bash a previous template
1882 definition with a redeclaration.
1883
ca79f85d
JM
1884 * pt.c (unify): float doesn't match double.
1885
1886 * pt.c (do_type_instantiation): Handle getting a _TYPE or a
1887 TYPE_DECL. Handle getting non-template types.
1888 * parse.y (explicit_instantiation): Use typespec instead of
1889 aggr template_type.
1890
1891Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com>
1892
1893 * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
1894
238109cd 1895Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru>
7e3af374 1896
03e70705
JM
1897 * call.c (add_builtin_candidate): Add missing TREE_TYPE.
1898 (compare_ics): Likewise.
238109cd
JM
1899
1900Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com>
03e70705
JM
1901
1902 * call.c (joust): Warn about choosing one conversion op over
1903 another because of 'this' argument when the other return type is
1904 better.
1905 (source_type): New fn.
1906
7e3af374
JM
1907 * call.c (build_new_op): Strip leading REF_BIND from first operand
1908 to builtin operator.
1909
1910 * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
1911 use its RTL.
1912
8e69329a
JM
1913Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1914
1915 * call.c (null_ptr_cst_p): Remove support for (void*)0.
1916
5ddc28a5
JL
1917Wed Aug 27 02:03:34 1997 Jeffrey A Law (law@cygnus.com)
1918
bdcaf773
JL
1919 * typeck.c (expand_target_expr): Make definition match declaration.
1920
5ddc28a5
JL
1921 * class.c (get_basefndecls): Make definition match declaration.
1922
922ddba4
JM
1923Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com>
1924
818045b6
JM
1925 * input.c (sub_getch): Eventually give up and release the input file.
1926
1927 * decl.c (cp_finish_decl): If #p i/i, put inline statics in the
1928 right place.
1929
922ddba4
JM
1930 * call.c (joust): Tweak message.
1931
1932Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net>
1933
1934 * error.c (type_as_string): Put const/volatile on template type
1935 parameters where appropriate.
1936
4c9e597b
JL
1937Sat Aug 23 17:47:22 1997 Jeffrey A Law (law@cygnus.com)
1938
1939 * call.c (strictly_better): Make arguments unsigned ints.
1940
8eeda2ec
JM
1941Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com>
1942
1943 * lex.c (real_yylex): Refer to __complex instead of complex.
1944
8975416c
R
1945Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
1946
1947 * lex.c (real_yylex): Don't use getc directly.
1948
49c249e1
JM
1949Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1950
1951 * call.c (is_subseq): Don't try to be clever.
1952
1953Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1954
1955 * parse.y, pt.c: Include "except.h".
1956 * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
1957 error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
1958 lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
1959 sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
1960 prototyping.
1961
1962Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1963
1964 * decl2.c (mark_vtable_entries): Instead of replacing pure
1965 virtuals with a reference to __pure_virtual, copy the decl and
1966 change the RTL.
1967
f62dbf03
JM
1968Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com>
1969
f017f649
JM
1970 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
1971
1972 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
1973
fe4e8851
JM
1974 * pt.c (instantiate_class_template): Call repo_template_used
1975 before finish_prevtable_vardecl.
1976
f62dbf03
JM
1977 * call.c (is_subseq): New fn.
1978 (compare_ics): Use it.
1979
1980 * repo.c (finish_repo): Don't crash on no args.
1981
1982 * parse.y (named_complex_class_head_sans_basetype): Handle
1983 explicit global scope.
1984 * decl2.c (handle_class_head): New fn.
1985
1986 * pt.c (unify): Add CONST_DECL case.
1987
da20811c
JM
1988Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1989
1990 * rtti.c (permanent_obstack): Fix decl to not be a pointer.
1991
1992 * cp-tree.h (report_type_mismatch): Add prototype.
1993 * call.c (build_overload_call_real): Remove erroneous fourth
1994 argument to report_type_mismatch.
1995 (build_user_type_conversion_1): Remove erroneous second arg to
1996 tourney.
1997 (build_new_function_call): Likewise.
1998 (build_object_call): Likewise.
1999 (build_new_op): Likewise.
2000 (build_new_method_call): Likewise.
2001
2002Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com>
2003
2004 * error.c (dump_decl): Don't bother processing a function with no
2005 DECL_LANG_SPECIFIC.
2006
2007 * method.c (emit_thunk): Call init_function_start in the macro case.
2008
2009Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
2010
2011 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
2012 defined and used to set flag_vtable_thunks.
2013
2014Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com>
2015
2016 * parse.y: Don't clear the inlines from their obstack until they've
2017 all been processed.
2018
2019 * decl.c (duplicate_decls): Don't complain about exception
2020 specification mismatch if flag_exceptions is off.
2021
2022Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com>
2023
2024 * Make-lang.in (c++.distclean): Remove g++.c on make distclean.
2025
2026Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com>
2027
2028 * cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
2029 * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
2030 Include <stdio.h> before include files that formerly used STDIO_PROTO.
2031
2032 * decl.c, g++spec.c, lex.c, method.c, repo.c:
2033 Include "config.h" first, as per autoconf manual.
2034
2035Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com>
2036
2037 * decl.c (duplicate_decls): Tweak wording.
2038 * lex.c (do_pending_defargs): Don't die if we see a default arg
2039 that isn't a DEFAULT_ARG.
2040 * error.c (dump_expr): Handle DEFAULT_ARG.
2041
2042 * decl2.c (lang_decode_option): Handle -fhandle-exceptions.
2043 * lang-options.h: Add -fhandle-exceptions.
2044
2045 * class.c (build_vtable): vtables are artificial.
2046 (prepare_fresh_vtable): Likewise.
2047
2048Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
2049
2050 * cvt.c (ocp_convert): After converting to the target type, set
2051 LOOKUP_NO_CONVERSION.
2052
2053 * call.c (joust): Warn about potentially confusing promotion rules
2054 with -Wsign-promo.
2055 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
2056
2057Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com>
2058
2059 * exception.cc: Declare __terminate_func with noreturn attribute.
2060
8dff1027
MS
2061Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
2062
2063 * parse.y: Break out eat_saved_input, handle errors.
da20811c 2064 (function_try_block): Use compstmt instead of compstmt_or_error.
8dff1027
MS
2065
2066Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
2067
2068 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
2069
2070Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2071
2072 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
2073 existence of cc1plus check whether $(LANGUAGES) contains C++.
2074
2075Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2076
2077 * method.c (do_build_copy_constructor): When copying an anonymous
2078 union member loop around to handle nested anonymous unions. Use
2079 the offset of the member relative to the outer structure, not the
2080 union.
2081
86e6f22f
JM
2082Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
2083
2084 * call.c (resolve_args): New fn.
2085 (build_new_function_call): Use it.
2086 (build_object_call): Likewise.
2087 (build_new_method_call): Likewise.
2088
2089Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
2090
2091 * call.c (build_over_call): tsubst all default parms from templates.
2092
42976354
BK
2093Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
2094
2095 * decl.c (struct cp_function): Add static_labelno.
2096 (push_cp_function_context): Save it.
2097 (pop_cp_function_context): Restore it.
2098
2099Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com>
2100
2101 * typeck.c (build_component_ref_1): Convert from reference.
2102
2103Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2104
2105 * parse.y (current_declspecs, prefix_attributes): Initialize to
2106 NULL_TREE.
2107
2108 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
2109 before we try to force it to be a TREE_LIST.
2110 (decl): Make sure $1.t is non-nil.
2111
2112Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com>
2113
2114 * pt.c (uses_template_parms): Handle template first-parse codes.
2115
2116 * decl.c (cp_finish_decl): Only warn about user-defined statics.
2117
2118Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com>
2119
2120 * pt.c (unify): Handle BOOLEAN_TYPE.
2121
2122 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
2123 * pt.c (tsubst): Don't set it.
2124 * call.c (build_over_call): Use uses_template_parms.
2125
2126Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com>
2127
2128 * method.c (build_overload_nested_name): Use static_labelno
2129 instead of var_labelno.
2130 (build_qualified_name): New fn.
2131 (build_overload_name): Split out from here.
2132 (build_static_name): Use build_qualified_name.
2133 * decl.c (cp_finish_decl): Statics in extern inline functions
2134 have comdat linkage.
2135 (start_function): Initialize static_labelno.
2136
2137Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
2138
2139 * class.c (finish_struct_methods): add check of warn_ctor_dtor_privacy
2140 before "all member functions in class [] are private"
2141
2142Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
2143
2144 * lex.c (do_scoped_id): convert_from_reference.
2145 * init.c (build_offset_ref): Likewise.
2146
42976354
BK
2147Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
2148
2149 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
2150
2151Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com>
2152
2153 * typeck.c (get_member_function_from_ptrfunc): Promote index
2154 before saving it.
2155
2156Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com>
2157
2158 * tree.c (layout_basetypes): Move non-virtual destructor warning.
2159 * decl.c (xref_basetypes): Remove non-virtual destructor warning.
2160
2161Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2162
2163 * decl.c (grokdeclarator): Call add_defarg_fn for the function
2164 type, too.
2165 * lex.c (add_defarg_fn): Adjust.
2166 (do_pending_defargs): Adjust. Don't skip the first parm.
2167
2168Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com>
2169
2170 * decl.c (build_enumerator): Global enumerators are also readonly.
2171
2172 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
2173 (build_dynamic_cast): Call it and convert_from_reference.
2174
2175 * lex.c (add_defarg_fn): New fn.
2176 (snarf_defarg): Don't add to defarg_types.
2177 (do_pending_defargs): Lose defarg_types. All fns we process now
2178 have defargs.
2179 * decl.c (grokfndecl): Call add_defarg_fn.
2180
2181 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
2182 * cp-tree.def: Add DEFAULT_ARG.
2183 * spew.c (yylex): Call snarf_defarg as appropriate.
2184 * parse.y: New tokens DEFARG and DEFARG_MARKER.
2185 (defarg_again, pending_defargs, defarg, defarg1): New rules.
2186 (structsp): Use pending_defargs.
2187 (parms, full_parm): Use defarg.
2188 * lex.c (init_lex): Initialize inline_text_firstobj.
2189 (do_pending_inlines): Never pass the obstack to feed_input.
2190 (process_next_inline): Call end_input instead of restore_pending_input.
2191 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
2192 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
2193 * input.c (end_input): New fn.
2194 (sub_getch): At the end of some fed input, just keep returning EOF
2195 until someone calls end_input.
2196 Remove 'obstack' field from struct input_source.
2197 * decl.c (grokparms): Handle DEFAULT_ARG.
2198 (replace_defarg): New fn.
2199 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
2200
2201Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2202
2203 * call.c (implicit_conversion): If nothing else works, try binding
2204 an rvalue to a reference.
2205
2206Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com>
2207
2208 * decl.c (init_decl_processing): fix Jun 30 patch -- move
2209 ifndef for Cygwin32 to include SIGSEGV.
2210
7834ab39
MS
2211Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com>
2212
2213 * class.c (finish_struct_1): Only complain about pointers without
2214 copy stuff if there are any constructors.
2215
2216 * rtti.c (build_dynamic_cast): Call complete_type on the types.
2217
2218 * decl.c (grokfndecl): If the function we chose doesn't actually
2219 match, die.
2220
2221 * decl2.c (grokclassfn): Don't specify 'const int' for the
2222 artificial destructor parm.
2223
2224 * pt.c (type_unification): If we are called recursively, nothing
2225 decays.
2226
2227Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com>
2228
42976354
BK
2229 * decl.c (init_decl_processing): Stop trying to catch signals
2230 other than SIGABRT since the Cygwin32 library doesn't support
2231 them correctly yet. This fixes a situation in which g++ causes
2232 a hang on SIGSEGVs and other such signals in our Win32-hosted
2233 tools.
7834ab39
MS
2234
2235Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com>
2236
2237 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
2238
2239Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com>
2240
2241 * typeck2.c (store_init_value): Always return the value if our
2242 type needs constructing.
2243
2244 * method.c (hack_identifier): Convert class statics from
2245 reference, too.
2246
2247Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com>
2248
2249 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
2250
b88c08b6
MS
2251Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com>
2252
2253 * typeck.c (c_expand_return): Make sure we clean up temporaries at
2254 the end of return x;
2255
2256Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2257
2258 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
2259
6633d636
MS
2260Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com>
2261
2262 * except.c (expand_builtin_throw): Add support
2263 -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
2264
2265Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com>
2266
2267 * repo.c (extract_string): Null-terminate.
2268
2269 * cp-tree.h (TI_SPEC_INFO): New macro.
2270 (CLASSTYPE_TI_SPEC_INFO): New macro.
2271 * pt.c (push_template_decl): Correctly determine # of template parms
2272 for partial specs.
2273
2274 * call.c (compare_ics): Really fix 'this' conversions.
2275
2276 * pt.c (do_decl_instantiation): Don't crash on explicit inst of
2277 non-template fn.
2278
2279 * pt.c (push_template_decl): Complain about mismatch in # of
2280 template parms between a class template and a member template.
2281
2282Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com>
2283
2284 * method.c (synthesize_method): You can't call
2285 function_cannot_inline_p after finish_function.
2286 * decl.c (finish_function): Turn on flag_inline_functions and turn
2287 off DECL_INLINE before handing a synthesized method to the
2288 backend.
2289
2290Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2291
2292 * method.c (synthesize_method): Remove July 30 change to never set
2293 DECL_INLINE if at_eof.
2294
2295Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com>
2296
2297 * xref.c (GNU_xref_member): Ensure that the node has a
2298 decl_lang_specific part before checking DECL_FRIEND_P.
2299
2300Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com>
2301
2302 * pt.c (instantiate_class_template): Diagnose non-class types used
2303 as bases.
2304
2305Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com>
2306
2307 * typeck.c (build_conditional_expr): Use convert_for_initialization
2308 instead of convert_and_check.
2309
2310Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2311
2312 * parse.y (typespec): Don't pedwarn for typeof.
2313
2314Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com>
2315
2316 * repo.c (finish_repo): Only check changes if we would write a
2317 repo file.
2318
2319 * call.c (compare_ics): Fix handling of 'this' conversions.
2320
2321 * pt.c (do_decl_instantiation): Support static data too. Rename
2322 from do_function_instantiation.
2323 * cp-tree.h: Adjust.
2324 * parse.y: Adjust.
2325
2326 * repo.c (extract_string): New fn.
2327 (get_base_filename): Use it.
2328 (init_repo): Compare old args with current args.
2329
2330Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com>
2331
2332 * Makefile.in, Make-lang.in: Protect C-ls with a comment
2333 character, idea from Paul Eggert <eggert@twinsun.com>.
2334
2335Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com>
2336
2337 * typeck.c (c_expand_return): Be more persistent in looking for
2338 returned temps.
2339
2340 * cvt.c (build_up_reference): Use NOP_EXPR for switching from
2341 pointer to reference.
2342
2343 * class.c (build_vbase_path): Don't do anything if PATH has no steps.
2344
2345Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com>
2346
2347 * init.c (build_member_call, build_offset_ref):
2348 Use do_scoped_id instead of do_identifier.
2349
2350 * cvt.c (convert): Remove bogosity.
2351
2352Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2353
2354 * cvt.c (build_up_reference): Do checks of ARGTYPE and
2355 TARGET_TYPE before trying to use get_binfo.
2356
2357Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com>
2358
2359 * cvt.c (build_up_reference): Call get_binfo to get access control.
2360
2361 * decl2.c (import_export_decl): If we don't support weaks, leave
2362 statics undefined.
2363
2364Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com>
2365
2366 * except.c (expand_builtin_throw): Add support for machines that
2367 cannot access globals after throw's epilogue when
2368 -fno-sjlj-exceptions is used.
2369
2370Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com>
2371
2372 * parse.y: 'std::' becomes '::'.
2373 * lex.c (real_yylex): Remove 'namespace' warning.
2374 * init.c (build_member_call): Ignore 'std::'.
2375 (build_offset_ref): Likewise.
2376 * decl2.c (do_using_directive): Ignore 'using namespace std;'.
2377 (do_toplevel_using_decl): Ignore 'using std::whatever'.
2378 * decl.c (push_namespace): Just sorry.
2379 (pop_namespace): Nop.
2380 (init_decl_processing): Declare std namespace.
2381
013bc8af
MS
2382Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com>
2383
2384 * search.c (push_class_decls): A name which ambiguously refers to
2385 several instantiations of the same template just refers to the
2386 template.
2387
2388Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com>
2389
2390 * decl.c (build_enumerator): fix problem with unsigned long
2391 enumerated values being smashed to ints, causing overflow
2392 when computing next enumerated value. (for enum values around
2393 MAX_VAL).
2394
2395Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com>
2396
2397 * typeck.c (build_component_ref): Only call mark_used on a decl.
2398
2399Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2400
2401 * typeck.c (build_c_cast): Make the check for a ptr to function
2402 more specific before possible default_conversion call.
2403
e00737d2
MS
2404Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
2405
2406 * except.c (expand_exception_blocks): Simplify and fix and make
2407 sure we don't end a region in a sequence, as expand_end_bindings
2408 doesn't like it.
2409
2410Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
2411
2412 * except.c (init_exception_processing): Mark terminate as not
2413 returning so that the optimizer can optimize better.
2414
37c46b43
MS
2415Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
2416
2417 * cvt.c (convert): Don't do any extra work, if we can avoid it
2418 easily.
2419
2420Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com>
2421
2422 * *.[chy]: Change cp_convert to ocp_convert, change convert to
2423 cp_convert. convert is now reserved for the backend, and doesn't
2424 have the semantics a frontend person should ever want.
2425
2426Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com>
2427
2428 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
2429 Lose -traditional support.
2430
2431Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2432
2433 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
2434
2435 * parse.y (self_reference): Do it for templates, too.
2436 * class.c (pushclass): Don't overload_template_name; the alias
2437 generated by build_self_reference serves the same purpose.
2438
2439 * tree.c (list_hash): Make static, take more args.
2440 (list_hash_lookup): Likewise.
2441 (list_hash_add): Make static.
2442 (list_hash_canon): Lose.
2443 (hash_tree_cons): Only build a new node if one isn't already in the
2444 hashtable.
2445 (hash_tree_chain): Use hash_tree_cons.
2446 * cp-tree.h: Adjust.
2447 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
2448 of calling lookup_name.
2449
2450Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com>
2451
2452 * pt.c (instantiate_class_template): TYPE_VALUES for an enum
2453 doesn't refer to the CONST_DECLs.
2454
2455Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com>
2456
2457 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
2458 is bigger.
2459 (expand_class_desc): Convert the last argument to a sizetype.
2460
2461Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2462
2463 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
2464 __real__): Add reswords.
2465 * hash.h: Regenerate.
2466 * lex.h (rid): Add RID_COMPLEX.
2467 (RID_LAST_MODIFIER): Set to RID_COMPLEX.
8eeda2ec 2468 * lex.c (init_lex): Add building of RID_COMPLEX.
37c46b43
MS
2469 (real_yylex): General cleanup in line with what c-lex.c also has,
2470 sans the cruft for traditional; add handling of SPEC_IMAG, complex
2471 types, and imaginary numeric constants.
2472 * parse.y (REALPART, IMAGPART): Add tokens.
2473 (unary_expr): Add REALPART and IMAGPART rules.
2474 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
2475 * decl.c (complex_{integer,float,double,long}_type_node): Define
2476 types.
2477 (init_decl_processing): Set up the types.
2478 (grokdeclarator): Add handling of RID_COMPLEX. Set and use
2479 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
2480 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
2481 * cvt.c (cp_convert): Handle COMPLEX_TYPE.
2482 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
2483 COMPLEX_TYPE case.
2484 * method.c (build_overload_name): Add handling of the different
2485 COMPLEX_TYPEs, prefixing them with `J'.
2486 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
2487 as a template parm.
2488 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
2489 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
2490 (mapcar): Handle COMPLEX_CST.
2491 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
2492 (common_type): Add code for complex types.
2493 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
2494 (convert_for_assignment): Likewise.
2495 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
2496
2497Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com>
2498
2499 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
2500 tsubst_expr, as it might try to do overload resolution.
2501
b87692e5
MS
2502Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com>
2503
2504 * pt.c (instantiate_class_template): Oops.
2505
2506Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com>
2507
2508 * cp-tree.def: Add TAG_DEFN.
2509 * pt.c (tsubst_enum): New fn.
2510 (instantiate_class_template): Use it.
2511 (tsubst_expr): Support TAG_DEFN.
2512 (tsubst): Support local enums.
2513 (tsubst_copy): Likewise.
2514 * decl.c (finish_enum): Likewise.
2515 (start_enum): If this is a local enum, switch to permanent_obstack.
2516
2517Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com>
2518
2519 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
2520 (finish_function): Put the base init code for constructors just
2521 after the parm cleanup insns.
2522 (struct cp_function): Add last_parm_cleanup_insn.
2523 (push_cp_function_context): Likewise.
2524 (pop_cp_function_context): Likewise.
2525
2526Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com>
2527
2528 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
2529
2530Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2531
2532 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
2533 for THUNK_FNDECL before we switch to temporary allocation.
2534
beb53fb8
JM
2535Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
2536
2537 * call.c (build_new_op): Handle null arg2 for ?:.
2538
eb448459
MS
2539Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
2540
2541 * except.c (expand_exception_blocks): Ensure that we flow through
37c46b43
MS
2542 the end of the exception region for the exception specification.
2543 Move exception region for the exception specification in, so that
2544 it doesn't protect the parm cleanup. Remove some obsolete code.
2545 * decl.c (store_parm_decls): Likewise.
eb448459
MS
2546 (finish_function): Likewise.
2547
2548Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com>
2549
2550 * init.c (build_new): Fix nothrow handling.
2551
2552Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2553
2554 * init.c (emit_base_init): Don't warn about the initialization
2555 list for an artificial member.
2556
2557Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2558
2559 * expr.c (do_case): Handle !START case for the error msg.
2560
2561Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com>
2562
2563 * decl2.c, lang-options.h: New option -Weffc++.
2564 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
2565 to -Weffc++.
2566
2567 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
37c46b43 2568 to MULTIPLE_SYMBOL_SPACES.
eb448459
MS
2569
2570Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com>
2571
2572 * method.c (emit_thunk, generic case): Set current_function_is_thunk.
2573
2574 * method.c (emit_thunk, macro case): Set up DECL_RESULT.
2575
2576 * typeck.c (c_expand_return): Don't complain about returning void
2577 to void in an artificial function.
2578 * method.c (make_thunk): Change settings of READONLY/VOLATILE,
2579 don't set DECL_RESULT, set DECL_ARTIFICIAL.
2580 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
2581
eb66be0e
MS
2582Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com>
2583
2584 * init.c (init_decl_processing): Add supoprt for setjmp/longjmp based
2585 exception handling.
2586 * except.c (init_exception_processing): Likewise.
2587 (expand_end_catch_block): Likewise.
2588 (expand_exception_blocks): Likewise.
2589 (expand_throw): Likewise.
2590 * exception.cc (__default_terminate): Likewise.
2591
2592 * init.c (perform_member_init): Use new method of expr level
37c46b43 2593 cleanups, instead of cleanups_this_call and friends.
eb66be0e
MS
2594 (emit_base_init): Likewise.
2595 (expand_aggr_vbase_init_1): Likewise.
2596 (expand_vec_init): Likewise.
2597 * decl.c (cp_finish_decl): Likewise.
2598 (expand_static_init): Likewise.
2599 (store_parm_decls): Likewise.
2600 (cplus_expand_expr_stmt): Likewise.
2601 * decl2.c (finish_file): Likewise.
2602
2603 * Make-lang.in (exception.o): Ok to compile with -O now.
2604
2605 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
2606 we know it will be done later by the backend.
2607
2608 * decl2.c (lang_f_options): Remove support for short temps.
2609 * lang-options.h: Likewise.
2610
2611Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2612
2613 * tree.c (varargs_function_p): New fn.
2614 * method.c (emit_thunk): Replace broken generic code with code to
37c46b43 2615 generate a heavyweight thunk function.
eb66be0e
MS
2616
2617Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com>
2618
2619 * pt.c (process_template_parm): pedwarn about floating-point parms.
2620
2621 * decl.c (grokdeclarator): inline no longer implies static.
2622
2623 * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
2624
2625Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
2626
2627 * class.c (check_for_override): The signature of an overriding
37c46b43 2628 function is not changed.
eb66be0e
MS
2629
2630 * call.c (build_over_call): Move setting of conv into the loop.
da20811c
JM
2631 Note: this change, along with the related changes of the 18th thru
2632 the 20th of April, fix an infinite loop problem in conversions.
eb66be0e
MS
2633
2634Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
2635
2636 * call.c (build_user_type_conversion_1): Really ignore rvalue
37c46b43 2637 conversions when looking for a REFERENCE_TYPE.
eb66be0e
MS
2638
2639 * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
2640 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
2641 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
2642 (build_unary_op): Likewise.
2643 * call.c (build_over_call): See through a CONVERT_EXPR around the
37c46b43 2644 ADDR_EXPR for on a temporary.
eb66be0e 2645 * typeck.c (c_expand_return): See through a CONVERT_EXPR around
37c46b43 2646 the ADDR_EXPR for a local variable.
eb66be0e
MS
2647
2648Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com>
2649
2650 * call.c (build_user_type_conversion_1): If we're trying to
37c46b43 2651 convert to a REFERENCE_TYPE, only consider lvalue conversions.
eb66be0e
MS
2652 (build_new_function_call): Print candidates.
2653 (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
2654 (reference_binding): Binding a temporary of a reference-related type
2655 is BAD.
2656
2657Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2658
2659 * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
2660 * tinfo2.cc (type_info::before): Likewise.
2661
2662Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com>
2663
2664 * call.c (implicit_conversion): Oops.
2665
2666Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com>
2667
2668 * call.c (implicit_conversion): Try to find a reference conversion
37c46b43 2669 before binding a const reference to a temporary.
eb66be0e
MS
2670
2671Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com>
2672
2673 * exception.cc (__default_unexpected): Call terminate by default,
2674 so that if the user overrides terminate, the correct function will
2675 be called.
2676
bd6dd845
MS
2677Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com>
2678
2679 * parse.y (left_curly): Avoid trying to use any fields of
eb66be0e 2680 error_mark_node, as there aren't any.
bd6dd845
MS
2681
2682Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com>
2683
2684 * lex.c (do_identifier): Avoid breaking on overloaded methods
2685 as default arguments.
2686
2687Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se>
2688
eb66be0e 2689 * call.c (add_template_candidate): Initialize the variable "dummy".
bd6dd845
MS
2690
2691Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
2692
2693 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
2694 before we try to use TYPE_SIZE and TREE_CONSTANT on it.
2695
2696Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2697
2698 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
2699 (debug_binfo): Delete decl, not needed.
2700
2701 * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
2702 promotes_to_aggr_type): Delete fns.
2703 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
2704 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
2705 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
2706
2707 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
2708
2709 * friend.c (is_friend_type): Delete fn.
2710 * cp-tree.h (is_friend_type): Delete decl.
2711
2712 * decl.c (original_result_rtx, double_ftype_double,
2713 double_ftype_double_double, int_ftype_int, long_ftype_long,
2714 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
2715 * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
2716
2717 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
2718 fwd decls.
2719 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
2720
2721 * decl.c (pushdecl_nonclass_level): #if 0, unused.
2722 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
2723
2724 * lex.c (reinit_lang_specific): #if 0, unused.
2725 * cp-tree.h (reinit_lang_specific): #if 0 decl.
2726
2727 * decl.c (revert_static_member_fn): Make static, adding fwd decl.
2728 * cp-tree.h (revert_static_member_fn): Delete decl.
2729
2730 * class.c (root_lang_context_p): Delete fn.
2731 * cp-tree.h (root_lang_context_p): Delete decl.
2732
2733 * decl.c (set_current_level_tags_transparency): #if 0, unused.
2734 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
2735
2736 * lex.c (set_vardecl_interface_info): Make static.
2737 * cp-tree.h (set_vardecl_interface_info): Delete decl.
2738
2739 * call.c (find_scoped_type): Make static.
2740 * cp-tree.h (find_scoped_type): Delete decl.
2741
2742 * search.c (convert_pointer_to_vbase): Make static.
2743 * cp-tree.h (convert_pointer_to_vbase): Delete decl.
2744
2745 * decl.c (const_ptr_type_node): Likewise.
2746 * cp-tree.h (const_ptr_type_node): Delete decl.
2747
2748 * typeck.c (common_base_type): Make static.
2749 * cp-tree.h (common_base_types): Delete erroneous decl.
2750
2751 * pt.c (classtype_mangled_name): Make static.
2752 * cp-tree.h (classtype_mangled_name): Delete decl.
2753
2754 * lex.c (check_newline): Make static.
2755 * cp-tree.h (check_newline): Delete decl.
2756
2757 * typeck.c (build_x_array_ref): Delete fn, same idea as
2758 grok_array_decl.
2759 * cp-tree.h (build_x_array_ref): Delete decl.
2760
2761 * lex.c (copy_decl_lang_specific): Delete fn, same idea as
2762 copy_lang_decl.
2763 * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
2764
2765 * class.c (build_vtable_entry): Make static.
2766 * cp-tree.h (build_vtable_entry): Delete decl.
2767
2768 * class.c (build_vbase_pointer): Make static.
2769 * cp-tree.h (build_vbase_pointer): Delete decl.
2770
2771 * sig.c (build_sptr_ref): Add forward decl and make static.
2772 * cp-tree.h (build_sptr_ref): Delete decl.
2773
2774 * call.c (build_new_method_call): Add forward decl and make static.
2775 * cp-tree.h (build_new_method_call): Delete decl.
2776
2777 * call.c (build_object_call): Make static.
2778 * class.c (check_for_override, complete_type_p, mark_overriders):
2779 Likewise.
2780 * decl.c (cp_function_chain): Likewise.
2781 * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
2782 Likewise.
2783 * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
2784 Likewise.
2785 * tree.c (build_cplus_array_type_1): Likewise.
2786 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
2787 (comp_target_parms): Likewise.
2788
2789 * init.c (build_builtin_call): Make static.
2790 * cp-tree.h (build_builtin_call): Delete decl.
2791
2792 * typeck.c (binary_op_error): Delete decl.
2793 * cp-tree.h (binary_op_error): Likewise.
2794
2795Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2796
2797 * call.c (build_method_call): Compare against error_mark_node
2798 directly, rather than the ERROR_MARK tree code.
2799 * cvt.c (cp_convert): Likewise.
2800 * decl.c (print_binding_level): Likewise.
2801 (duplicate_decls): Likewise.
2802 (grokdeclarator): Likewise.
2803 (grokdeclarator): Likewise.
2804 * init.c (expand_aggr_init_1): Likewise.
2805 (decl_constant_value): Likewise.
2806 * method.c (build_opfncall): Likewise.
2807 (hack_identifier): Likewise.
2808 * typeck.c (build_modify_expr): Likewise.
2809
2810 * typeck.c (build_c_cast): Don't decl TYPE as register tree.
2811
2812Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2813
2814 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
2815
2816 * pt.c (coerce_template_parms): Add new error message.
2817
2818 * method.c (build_overload_value): Implement name mangling for
2819 floating-point template arguments.
2820
2821 * method.c (build_overload_int, icat, dicat): Fix mangling of template
2822 arguments whose absolute value doesn't fit in a signed word.
2823
2824Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2825
2826 * friend.c: New file; put all of the friend stuff in here.
2827 * init.c: Instead of here.
2828 * Makefile.in (CXX_OBJS): Add friend.o.
2829 (friend.o): Add dependencies.
2830 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
2831
2832Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com>
2833
2834 * call.c (build_scoped_method_call): Complain if the scope isn't a
eb66be0e 2835 base.
bd6dd845
MS
2836
2837Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2838
2839 * parse.y (left_curly): Don't crash on erroneous type.
2840
2841 * init.c (build_delete): Fix type of ref.
2842
2843Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com>
2844
2845 * search.c (get_vbase_1): Renamed from get_vbase.
2846 (get_vbase): Wrapper, now non-static.
2847 (convert_pointer_to_vbase): Now static.
2848
2849 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
2850 * init.c (build_delete): Pass one.
2851 (build_partial_cleanup_for): Use build_scoped_method_call.
2852 * decl.c (finish_function): Pass a binfo.
2853
2854Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2855
2856 * call.c (build_over_call): Only synthesize non-trivial copy ctors.
2857
2858 * typeck.c (build_c_cast): Lose other reference to flag.
2859
2860 * call.c (build_field_call): Don't look for [cd]tor_identifier.
2861 * decl2.c (delete_sanity): Remove meaningless use of
eb66be0e 2862 LOOKUP_HAS_IN_CHARGE.
bd6dd845 2863 * decl.c (finish_function): Use build_scoped_method_call instead
eb66be0e 2864 of build_delete for running vbase dtors.
bd6dd845 2865 * init.c (build_delete): Call overload resolution code instead of
eb66be0e 2866 duplicating it badly.
bd6dd845 2867
2ba25f50
MS
2868Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com>
2869
2870 * call.c (build_over_call): Call mark_used before trying to elide
2871 the call.
2872
2873 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
2874
2875Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2876
2877 * typeck.c (build_modify_expr): Always pedwarn for a cast to
2878 non-reference used as an lvalue.
2879
2880Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com>
2881
2882 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
2883
2884Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com>
2885
2886 * parse.y (handler): Fix template typo.
2887
2888Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2889
2890 * error.c (lang_decl_name): New fn.
2891 * tree.c (lang_printable_name): Use it.
2892
2893Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com>
2894
2895 * g++spec.c: Include config.h so that we can catch bzero #defines
2896 from the config file.
2897
e9f32eb5
MS
2898Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com>
2899
2900 * new1.cc: Include a declaration for malloc, to avoid warning, and
eb66be0e
MS
2901 avoid lossing on systems that require one (ones that define malloc
2902 in xm.h).
e9f32eb5
MS
2903
2904Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2905
2906 * decl2.c (max_tinst_depth): New variable.
2907 (lang_decode_option): Parse "-ftemplate-depth-NN" command line
2908 option.
2909 * pt.c (max_tinst_depth): Variable moved.
2910 * lang-options.h: Declare "-ftemplate-depth-NN" command line option
2911 as legal.
2912
2913Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com>
2914
2915 * decl.c (xref_basetypes): Allow a base class that depends on
eb66be0e 2916 template parms to be incomplete.
e9f32eb5
MS
2917
2918 * decl2.c (build_expr_from_tree): Support typeid(type).
2919 * rtti.c (get_typeid): Support templates.
2920 (expand_si_desc, expand_class_desc): Fix string length.
2921 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
2922
312e7d50
JM
2923Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
2924
2925 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
2926
2927 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
2928
2929Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2930
2931 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
eb66be0e
MS
2932 smashes together template and non-template decls of the same
2933 signature.
312e7d50 2934
824b9a4c
MS
2935Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
2936
824b9a4c
MS
2937 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
2938
2939Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2940
2941 * decl.c (duplicate_decls): Next route, pedwarn about different
2942 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
2943
2944Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2945
2946 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
2947 (struct lang_type): Delete has_default_implementation member.
2948 Increase dummy to 21.
2949 * decl.c (start_method): Delete usage.
2950
2951 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
2952 store_after_parms, start_decl_1, auto_function): Add decls.
2953 (get_arglist_len_in_bytes, declare_implicit_exception,
2954 have_exceptions_p, make_type_decl, typedecl_for_tag,
2955 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
2956 build_component_type_expr, cplus_exception_name,
2957 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
2958 * call.c (build_this): Make static.
2959 (is_complete): Likewise.
2960 (implicit_conversion): Likewise.
2961 (reference_binding): Likewise.
2962 (standard_conversion): Likewise.
2963 (strip_top_quals): Likewise.
2964 (non_reference): Likewise.
2965 (build_conv): Likewise.
2966 (user_harshness): Likewise.
2967 (rank_for_ideal): Likewise.
2968 * decl.c (start_decl_1): Delete forward decl.
2969 (push_decl_level): Make static.
2970 (resume_binding_level): Make static.
2971 (namespace_bindings_p): Make static.
2972 (declare_namespace_level): Make static.
2973 (lookup_name_real): Make static.
2974 (duplicate_decls): Make static. Take register off NEWDECL and
2975 OLDDECL parm decls.
2976 * decl2.c (get_sentry): Make static.
2977 (temp_name_p): Delete fn.
2978 * except.c (auto_function): Delete decl.
2979 * lex.c (handle_{cp,sysv}_pragma): Make static.
2980 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
2981 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
2982 * pt.c (tsubst_expr_values): Make static.
2983 * rtti.c (combine_strings): Delete decl.
2984
2985Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
2986
2987 * pt.c (push_template_decl): Handle getting a typedef.
2988
2989 * call.c (build_new_function_call): Complain about void arg.
2990
2991Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2992
2993 * decl.c (duplicate_decls): Give pedwarn of different exceptions
2994 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
2995
2996Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
2997
2998 * except.c (expand_throw): Don't expand the cleanup tree here,
eb66be0e
MS
2999 since we are not going to write the rtl out. Fixes problem with
3000 -g -O on SPARC.
824b9a4c
MS
3001
3002Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
3003
3004 * Make-lang.in: Add $(exeext) as necessary.
3005
3006Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
3007
3008 * parse.y (handler_seq): Must have at least one catch clause.
3009
3010Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
3011
3012 * call.c (add_builtin_candidate): Restore ?: hack.
3013
3014 * decl.c (grok_op_properties): More warnings.
3015
3016Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3017
3018 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
3019 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
3020
3021 * decl.c (duplicate_decls): Scale back to a warning, and only do
3022 'em if -pedantic.
3023
3024Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
3025
3026 * decl.c (duplicate_decls): pedwarn mismatched exception
eb66be0e 3027 specifications.
824b9a4c
MS
3028
3029Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
3030
3031 * call.c (build_new_method_call): Don't display the invisible
eb66be0e 3032 argument for controlling virtual bases.
824b9a4c
MS
3033
3034Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
3035
3036 * new: Add nothrow new and delete, bad_alloc and throw specifications
3037 for delete.
3038 * decl.c (init_decl_processing): Add throw specification for delete.
3039 * new.cc (nothrow): Define.
3040 * lex.c (real_yylex): Removing warning that throw and friends are
3041 keywords.
3042 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
3043 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
3044 * Make-lang.in: Add new{1,2}.{cc,o}.
3045
3046Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
3047
3048 * lex.c (cons_up_default_function): Fix return type of synth op=.
3049
3050 * init.c (emit_base_init): Add warnings for uninitialized members
eb66be0e 3051 and bases.
824b9a4c
MS
3052
3053 * decl.c (xref_basetypes): Add warning for non-polymorphic type
eb66be0e 3054 with destructor used as base type.
824b9a4c
MS
3055
3056 * decl.c (grok_op_properties): Add warning for op= returning void.
3057 * typeck.c (c_expand_return): Add warning for op= returning anything
3058 other than *this.
3059
3060 * class.c (finish_struct_1): Add warning for class with pointers
eb66be0e 3061 but not copy ctor or copy op=.
824b9a4c
MS
3062
3063 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
3064 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
3065 (instantiate_template): If -fexternal-templates, add this
eb66be0e 3066 instantiation to pending_templates.
824b9a4c
MS
3067
3068 * decl2.c (copy_assignment_arg_p): Disable old hack to support
eb66be0e 3069 Booch components.
824b9a4c
MS
3070
3071Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
3072
3073 * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
3074
de22184b
MS
3075Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
3076
3077 * call.c (standard_conversion): Handle getting references. Tack
eb66be0e 3078 on RVALUE_CONV here. Do it for non-class types, too.
de22184b
MS
3079 (reference_binding): Pass references to standard_conversion.
3080 (implicit_conversion): Likewise.
3081 (add_builtin_candidate): Disable one ?: kludge.
3082 (convert_like): Handle RVALUE_CONVs for non-class types.
3083 (joust): Disable the other ?: kludge.
3084
3085Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3086
3087 * decl.c (init_decl_processing): Add code to build up common
3088 function types beforehand, to avoid creation then removal of
3089 things already in the hash table.
3090
3091Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
3092
3093 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
eb66be0e 3094 the arguments.
de22184b
MS
3095
3096 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
eb66be0e 3097 current_template_parms.
de22184b
MS
3098
3099Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
3100
3101 * search.c (lookup_field): Don't return a function, check want_type.
3102
3103Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3104
3105 * init.c (build_new): Make sure PLACEMENT has a type.
3106
3107Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
3108
3109 * init.c (build_new): Support new (nothrow).
3110
3111Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
3112
3113 * pt.c (instantiate_decl): Also do push_to_top_level before setting
3114 up DECL_INITIAL.
3115
3116 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
3117 * pt.c (tsubst): Defer instantiation of default args.
3118 * call.c (build_over_call): Until here.
3119
3120Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3121
3122 * search.c (lookup_field): Make sure we have an
3123 IDENTIFIER_CLASS_VALUE before we try to return it.
3124
3125Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3126
3127 * call.c (build_method_call): Delete unused var PARM.
3128 (build_overload_call_real): Likewise.
3129 (build_object_call): Delete unused var P.
3130 (build_new_op): Likewise.
3131 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
3132 var definitions, which are never used.
3133 (shadow_tag): Delete unused var FN.
3134 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
3135 * init.c (build_new): Delete unused var ALLOC_TEMP.
3136 * method.c (hack_identifier): Delete unused var CONTEXT.
3137 (do_build_copy_constructor): Delete unused var NAME.
3138 (synthesize_method): Delete unused var BASE.
3139 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
3140 * rtti.c (build_headof): Delete unused var VPTR.
3141 (get_typeid): Delete unused var T.
3142 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
3143 and ORIG_OP2.
3144 (build_ptrmemfunc): Delete unused vars U and NINDEX.
3145 * typeck2.c (build_functional_cast): Delete unused var BINFO.
3146
3147Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
3148
3149 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
3150 things in a type being defined.
3151 * decl.c (finish_enum): Reverse the values so that they are in
3152 the correct order.
3153
3154 * pt.c (instantiate_class_template): Don't initialize
eb66be0e 3155 BINFO_BASETYPES until the vector is filled out.
de22184b
MS
3156 (unify): Don't abort on conflicting bindings, just fail.
3157 (instantiate_decl): Do push_tinst_level before any tsubsting.
3158
3159 * method.c (build_overload_value): Handle getting a
eb66be0e 3160 TEMPLATE_CONST_PARM for a pointer.
de22184b
MS
3161
3162Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
3163
3164 * init.c (expand_member_init): Don't give 'not a base' error for
eb66be0e 3165 templates.
de22184b
MS
3166
3167 * pt.c (instantiate_decl): Call import_export_decl later.
3168
3169 * pt.c (instantiate_class_template): Return a value.
3170
3171 * parse.y (extension): New rule for __extension__.
3172 (extdef, unary_expr, decl, component_decl): Use it.
3173
3174Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
3175
3176 * class.c (base_binfo): Remove unused base_has_virtual member.
3177 (finish_base_struct): Likewise.
3178 (finish_struct_1): Likewise.
3179
3180Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com>
3181
3182 * search.c (expand_upcast_fixups): Fix bogus code generation
3183 problem where the generated code uses the wrong index into the
3184 runtime built vtable on the stack. Old code could clobber random
3185 stack values.
3186
3187Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com>
3188
3189 * init.c (perform_member_init): Make sure the partial EH cleanups
eb66be0e 3190 live on the function_obstack.
de22184b 3191
f7da6097
MS
3192Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com>
3193
3194 * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
3195 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
3196
3197Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com)
3198
3199 * decl.c (grokvardecl): Avoid ANSI style initialization.
3200
3201Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com>
3202
3203 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
3204
3205Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com>
3206
3207 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
3208
1bf2b2d2
BK
3209Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3210
3211 * g++spec.c (lang_specific_driver): Put missing hyphen in front of
3212 arguments we compare against. Start the count of I at 1, not 0,
3213 since argv[0] is still the command.
3214
f7da6097
MS
3215Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com>
3216
3217 * lang-specs.h: Accept .cp as an C++ extension.
3218
d2e5ee5c
MS
3219Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3220
3221 * cp-tree.h (ptr_reasonably_similar): Add decl.
3222
3223Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3224
3225 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
3226 pointer. New local SPECBITS with the parm's value.
3227 (grokdeclarator): Pass &specbits down.
3228
3229 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
3230 before we try to do C_SET_EXP_ORIGINAL_CODE on it.
3231
3232 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
3233 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
3234
3235 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
3236 not an error_mark_node.
3237
3238Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3239
3240 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
3241 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
3242
3243Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3244
3245 * decl.c (grokdeclarator): When giving an anonymous struct a name,
3246 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
3247 not affected).
3248
3249 * typeck2.c (build_m_component_ref): If component is a pointer
3250 to data member, resolve the OFFSET_REF now.
3251
3252 * call.c (convert_like): Don't go into infinite recursion.
3253
3254 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
3255
3256 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
3257 * tree.c (layout_basetypes): And on the vbase ptr.
3258
3259Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3260
3261 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
3262 CHAR_TYPE_SIZE so bool is always the same size as another type.
3263
3264 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
3265
3266Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com>
3267
3268 * decl2.c (grok_x_components): Remove synthesized methods from
eb66be0e
MS
3269 TYPE_METHODS of an anonymous union, complain about member
3270 functions.
d2e5ee5c
MS
3271 * decl.c (shadow_tag): Wipe out memory of synthesized methods in
3272 anonymous unions.
3273 (finish_function): Just clear the DECL_RTL of our arguments.
3274
3275Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3276
3277 * decl2.c (finish_file): Emit DWARF debugging info for static data
3278 members.
3279
3280 * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
3281
3282Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com>
3283
3284 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
eb66be0e 3285 IDENTIFIER_NODE.
d2e5ee5c
MS
3286
3287Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
3288
3289 * Make-lang.in (g++-cross$(exeext)): Fix typo.
3290
3291Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3292
3293 Make the g++ driver now be a standalone program, rather than one
3294 that tries to run the gcc driver after munging up the options.
3295 * Make-lang.in (g++.c, g++spec.o): New rules.
3296 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
3297 added.
3298 (g++$(exeext)): New rule, based on xgcc rule.
3299 (g++-cross$(exeext)): Now just copies g++$(exeext) over.
3300 * g++spec.c: New file.
3301 * g++.c: Removed file.
3302
3303Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com>
3304
3305 * cvt.c (build_up_reference): Arrange for any temporary values
3306 that have been keep in registers until now to be put into memory.
3307
faf5394a 3308Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9a3b49ac 3309
faf5394a
MS
3310 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
3311 that make -j3 bootstrap works better.
9a3b49ac 3312
faf5394a
MS
3313Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com>
3314
3315 * decl.c (pushtag): Do pushdecl for anon tags.
3316
3317Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com>
3318
3319 * typeck.c (c_expand_return): Fix logic.
3320 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
3321
faf5394a
MS
3322Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com>
3323
3324 * g++.c (main): Make sure arglist has a final NULL entry. Add
eb66be0e
MS
3325 PEXECUTE_LAST to the flags passed to pexecute, as otherwise
3326 stdin/stdout of the invoked program are redirected to
3327 nowheresville.
faf5394a
MS
3328
3329Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3330
3331 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
3332
3333Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com>
3334
3335 * init.c (resolve_offset_ref): Handle obj.vfn better.
3336 * typeck.c (build_component_ref): Set TREE_TYPE on result from
3337 build_vfn_ref.
3338
3339Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com>
3340
3341 * typeck.c (convert_for_assignment): Also handle anachronistic
3342 implicit conversions from (::*)() to cv void*.
3343 * cvt.c (cp_convert_to_pointer): Likewise.
3344
3345Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3346
3347 * lex.c (handle_cp_pragma): Fix bogus warning.
3348
3349Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com>
3350
3351 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
eb66be0e 3352 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
faf5394a
MS
3353
3354Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3355
3356 * class.c (finish_struct_1): Support DWARF2_DEBUG.
3357 * search.c (dfs_debug_mark): Likewise.
3358 * decl2.c (finish_vtable_vardecl): Likewise.
3359 * decl.c (pushtag, finish_enum): Likewise.
3360 * lex.c (check_newline): Use debug_* instead of calling *out
eb66be0e 3361 functions directly.
faf5394a
MS
3362
3363Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3364
3365 * Make-lang.in (cplib2.ready): Add else clause to avoid problems
3366 on some picky hosts.
3367
3368Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3369
3370 * class.c (finish_struct_1): A class has a non-trivial copy
eb66be0e 3371 constructor if it has virtual functions.
faf5394a
MS
3372
3373 * cvt.c (cp_convert): Always call a constructor.
3374
3375 * call.c (reference_binding): Still tack on a REF_BIND
eb66be0e 3376 for bad conversions.
faf5394a
MS
3377 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
3378
3379 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
3380 (c_expand_return): Likewise.
3381 * typeck2.c (digest_init): Likewise for { }.
3382 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
3383 * cvt.c (cp_convert): Handle failure better.
3384
3385Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3386
3387 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
3388 of GCC be path-relative.
3389
3390Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
3391
3392 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
3393 it does need choose-temp.o and pexecute.o.
3394
3395Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3396
3397 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
3398 that we still use it.
3399 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
3400
3401Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3402
3403 * init.c (expand_default_init): Avoid calling constructors to
3404 initialize reference temps.
3405
3406 * cvt.c (convert_to_reference): Fix.
3407
3408Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3409
3410 * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
3411 (convert_to_reference): Likewise.
3412 * typeck.c (convert_for_initialization): Likewise.
3413 * init.c (expand_default_init): Likewise.
3414 (expand_aggr_init_1): Likewise.
3415 * cp-tree.h (CONV_NONCONVERTING): Lose.
3416 * typeck.c (build_c_cast): Lose allow_nonconverting parm.
3417 * *.c: Adjust.
3418 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
3419
3420Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com>
3421
3422 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
3423
3424Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3425
3426 * init.c (expand_aggr_init_1): Don't crash on non-constructor
3427 TARGET_EXPR.
3428
3429Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3430
3431 * g++.c: Include gansidecl.h.
3432 (VPROTO, PVPROTO, VA_START): Delete.
3433 (choose_temp_base_try, choose_temp_base, perror_exec,
3434 run_dos) [__MSDOS__]: Delete fns.
3435 (pfatal_with_name): Delete fn.
3436 (temp_filename): Declare like in gcc.c.
3437 (pexecute, pwait, choose_temp_base): Declare from gcc.c.
3438 (error_count, signal_count): Define.
3439 (error): Delete both definitions.
3440 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
3441 (pfatal_pexecute): Add fn from gcc.c.
3442 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the
3443 code to use the pexecute stuff also used by gcc.c.
3444 (MIN_FATAL_STATUS): Define.
3445 * Make-lang.in (g++): Add dependency on and linking with
3446 choose-temp.o and pexecute.o.
3447
3448 * cp-tree.h: Include gansidecl.h.
3449 (STDIO_PROTO): Delete #undef/#define.
3450 * cvt.c (NULL): Delete #undef/#define.
3451 * expr.c (NULL): Likewise.
3452 * init.c (NULL): Likewise.
3453 * rtti.c (NULL): Likewise.
3454 * xref.c (NULL): Likewise.
3455
3456 * cp-tree.h (build_user_type_conversion): Add prototype.
3457 * call.c (build_user_type_conversion): Delete prototype. Correct
3458 decl of FLAGS arg to be an int.
3459 * cvt.c (build_user_type_conversion): Likewise.
3460
3461Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com>
3462
3463 * cp-tree.def: Add TRY_BLOCK and HANDLER.
3464 * except.c (expand_start_catch_block): Support templates.
3465 * parse.y (try_block, handler_seq): Likewise.
3466 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
9a3b49ac
MS
3467
3468Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com>
3469
3470 * pt.c (current_template_args): New fn.
3471 (push_template_decl): Use it.
3472 * decl.c (grokdeclarator): Use it.
3473
3474 * decl2.c (build_expr_from_tree): Dereference ref vars.
3475
3476 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
3477 the decl-specifier-seq.
3478
3479 * decl.c (grok_op_properties): Don't force the type of a conversion
3480 op to be complete. Don't warn about converting to the same type
3481 for template instantiations.
3482
3483 * decl2.c (finish_file): Don't call instantiate_decl on synthesized
3484 methods.
3485
3486Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com>
3487
3488 * typeck.c (get_delta_difference): Remove previous bogusness.
3489 Don't give errors if force is set.
3490
3491Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3492
3493 * decl2.c (finish_file): Don't emit debug info.
d2e5ee5c 3494 * decl.c (pushdecl): Lose obsolete code.
9a3b49ac 3495 (grokdeclarator): Still do the long long thing after complaining.
d2e5ee5c
MS
3496 * search.c (note_debug_info_needed): Don't do anything if we're in a
3497 template.
9a3b49ac 3498 * method.c (synthesize_method): For non-local classes,
eb66be0e 3499 push_to_top_level first.
9a3b49ac
MS
3500
3501Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com>
3502
3503 * typeck.c (get_delta_difference): Add no_error parameter.
3504 (build_ptrmemfunc): Call get_delta_difference with no_error set;
eb66be0e
MS
3505 we don't want error messages when converting unrelated
3506 pointer-to-member functions.
9a3b49ac
MS
3507
3508Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com>
3509
3510 * error.c (dump_expr): Improve the wording on error messages that
3511 involve pointer to member functions.
3512
3513Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com>
3514
3515 * cvt.c (cp_convert_to_pointer): Move code for conversions from
eb66be0e 3516 (::*)() to void* or (*)() up a bit, so that we can convert from
9a3b49ac
MS
3517 METHOD_TYPEs as well.
3518
3519Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3520
3521 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
3522 There are no 'member' types.
3523 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
3524 (build_x_typeid): Handle errors.
3525
3526Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com>
3527
3528 * typeck.c (convert_for_assignment): Handle anachronistic implicit
3529 conversions from (::*)() to void* or (*)().
3530 * cvt.c (cp_convert_to_pointer): Likewise.
3531 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
3532 conversions from here.
3533 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
3534 * lang-options.h: Likewise.
3535 * decl2.c (warn_pmf2ptr): Define.
3536 * cp-tree.h: Declare it.
3537 * typeck2.c (digest_init): Allow pmfs down into
3538 convert_for_initialization.
3539
3540Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com>
3541
3542 * typeck.c (c_expand_return): Fix for returning overloaded fn.
3543
3544Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3545
3546 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
3547 * decl.c (grok_reference_init): Pass DIRECT_BIND.
3548 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use
eb66be0e 3549 DIRECT_BIND.
9a3b49ac
MS
3550 * call.c (convert_like): Don't pass INDIRECT_BIND.
3551 * typeck.c (convert_arguments): Likewise.
3552 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
3553
3554Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com>
3555
3556 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
eb66be0e 3557 similar code in build_up_ref.
9a3b49ac
MS
3558 * cvt.c (build_up_reference): Drastically simplify.
3559
691c003d
MS
3560Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com)
3561
3562 * typeck.c (signed_or_unsigned_type): If the given type already
3563 as the correct signedness, then just return it.
3564
eb66be0e
MS
3565 * typeck.c ({un,}signed_type): If can't do anything, call
3566 signed_or_unsigned_type.
691c003d
MS
3567
3568Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com>
3569
3570 * decl2.c (copy_assignment_arg_p): Don't buy the farm if
3571 current_class_type is NULL.
3572
3573Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com>
3574
3575 * class.c (finish_struct_1): Avoid empty structs by adding a field
eb66be0e 3576 so layout_type gets the mode right.
691c003d
MS
3577
3578 * typeck.c (c_expand_return): Drastically simplify.
3579
3580Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3581
3582 * typeck.c (decay_conversion): Handle overloaded methods.
3583
3584Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com>
3585
3586 * call.c (build_over_call): A TARGET_EXPR has side-effects.
3587
f49422da
MS
3588Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com>
3589
3590 * cvt.c (convert_to_pointer_force): Add code to support pointer to
eb66be0e 3591 member function to pointer to function conversions.
f49422da 3592 * init.c (resolve_offset_ref): Add code to allow faked up objects,
eb66be0e
MS
3593 ignoring them if they are not used, and giving an error, if they
3594 are needed.
f49422da 3595 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
eb66be0e
MS
3596 code, and so that we can give an error, if we needed an object,
3597 and one was not provided.
f49422da 3598 (build_c_cast): Don't call default_conversion when we want to
eb66be0e 3599 convert to pointer to function from a METHOD_TYPE.
f49422da
MS
3600
3601Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com>
3602
3603 * Make-lang.in (cplib2.ready): Fix logic.
3604
3605 * decl.c (shadow_tag): Only complain about non-artificial function
eb66be0e 3606 members.
f49422da
MS
3607
3608 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
3609
3610Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com>
3611
3612 * expr.c (cplus_expand_expr): Pre-tweak call_target like
eb66be0e 3613 expand_inline_function would.
f49422da
MS
3614
3615 * pt.c (mark_decl_instantiated): If extern_p, call
eb66be0e 3616 mark_inline_for_output.
f49422da 3617
3d4683cb
MS
3618Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com>
3619
3620 * typeck.c (unary_complex_lvalue): Add code to handle intermediate
3621 pmd conversions.
3622
3623 * typeck.c (get_delta_difference): Fix wording, as we can be used
3624 for pointer to data members.
3625
3626Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com>
3627
3628 * pt.c (tsubst): If the function decl isn't a member of this
eb66be0e
MS
3629 template, return a copy of the decl (including copying the
3630 lang-specific part) so we don't hose ourselves later.
3d4683cb
MS
3631
3632Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3633
3634 * class.c (finish_struct): Remove DWARF-specific tag handling.
3635 * decl.c (pushtag): Likewise.
3636 (finish_function): Always clear DECL_ARGUMENTS on function decls with
3637 no saved RTX.
3638 * decl2.c (finish_file): Emit DWARF debugging info for static data
3639 members.
3640
3641Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com>
3642
3643 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
3644 isn't the same as the new one before we whack it.
3645
3646Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com>
3647
3648 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
eb66be0e
MS
3649 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
3650 warn_traditional and warn_strict_prototypes; remove ancient
3651 'overload' code; remove references to flag_traditional.
3d4683cb 3652
5156628f
MS
3653Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com>
3654
3655 * input.c (sub_getch): Handle 8-bit characters in string literals.
3656
3657Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com>
3658
3659 * tree.c (mapcar): Handle CONSTRUCTORs.
3660 (copy_to_permanent): Handle expression_obstack properly.
3661
3662 * Make-lang.in (cplib2.txt): Also depend on the headers.
3663
3664 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
eb66be0e 3665 INT_TYPE_SIZE.
5156628f
MS
3666 (expand_class_desc): Use USItype for offset field.
3667 * tinfo.h (struct __class_type_info): Likewise.
3668
3669 * method.c (build_overload_int): TYPE_PRECISION should be applied
eb66be0e 3670 to types.
5156628f
MS
3671
3672Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com>
3673
3674 * call.c (build_new_op): A COND_EXPR involving void must be a
3675 builtin.
3676
3677Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3678
3679 * typeck.c (build_x_component_ref): New fn.
3680 (build_object_ref): Use it.
3681 * parse.y (primary): Use it.
3682 * decl2.c (build_expr_from_tree): Use it.
3683 * cp-tree.h: Declare it.
3684
3685 * decl.c (start_decl): variable-sized arrays cannot be initialized.
3686 * error.c (dump_type_suffix): Handle variable arrays.
3687
3688Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3689
3690 * Make-lang.in (exception.o): Put back compiling it with -fPIC.
3691
3692Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3693
3694 * decl.c (lookup_name_real): Don't try to look up anything in a
eb66be0e 3695 TYPENAME_TYPE.
5156628f
MS
3696
3697 * tinfo2.cc (__throw_type_match_rtti): Oops.
3698
3699Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3700
3701 * Make-lang.in (exception.o): Use -fno-PIC for now.
3702
3703Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com>
3704
3705 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
eb66be0e 3706 calling them.
5156628f
MS
3707 (get_tinfo_fn_dynamic): Extracted from build_typeid.
3708 * tinfo2.cc (__dynamic_cast): Adjust.
3709
3710 * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
3711 (build_x_typeid): Likewise.
3712
3713 * parse.y: Call build_x_typeid instead of build_typeid.
3714 * cp-tree.def: Add TYPEID_EXPR.
3715 * pt.c (tsubst_copy): Handle typeid.
3716 * decl2.c (build_expr_from_tree): Likewise.
3717 * rtti.c (build_x_typeid): Throw bad_typeid from here.
3718 (build_typeid): Not here.
3719 * cp-tree.h: Declare build_x_typeid.
3720
3721Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com>
3722
3723 * call.c (convert_like): Pull out constant values.
3724
3725 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
3726
3727Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
3728
3729 * decl.c (init_decl_processing): Create short int types before
3730 creating size_t in case a machine description needs to use
3731 unsigned short for size_t.
3732
3733Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3734
3735 * Make-lang.in (exception.o): Turn off pic.
3736
3737 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
3738 type, multi-level ptr conversions.
3739
3740 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
3741 (throw_bad_cast): Use it.
3742 (throw_bad_typeid): New fn.
3743 (build_typeid): Throw bad_typeid as needed.
3744 Use build_call.
3745 (synthesize_tinfo_fn): Handle functions and arrays before checking
3746 for cv-quals.
3747
3748 * Remove .h from standard C++ headers, add new.h, move into inc
eb66be0e 3749 subdirectory.
5156628f
MS
3750
3751 * exception*: Remove pointer from object, constructors. Add
eb66be0e
MS
3752 default exception::what that uses type_info::name. Add
3753 __throw_bad_typeid.
5156628f
MS
3754
3755 * init.c (build_new): Don't add a cookie to new (void *) T[2].
3756
3757Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com>
3758
3759 * Make-lang.in: Building C++ code depends on cc1plus.
3760
3761Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3762
3763 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
3764 a HOST_WIDE_INT, not a tree.
3765
3766Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3767
3768 * exception.cc: Don't include <stdlib.h>.
3769
3770 * Make-lang.in (c++.clean): Remove cplib2.*.
3771
3772Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com>
3773
3774 * parse.y (component_decl_1, component_costructor_declarator case):
3775 Pass attributes/prefix_attributes in tree list.
3776
3777Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com>
3778
3779 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
3780
3781Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3782
3783 * lex.c (do_identifier): Don't do deferred lookup in a template
eb66be0e 3784 header.
5156628f
MS
3785
3786 * typeck2.c (store_init_value): Oops.
3787
3788 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
3789 New files for C++ lang-support library.
3790 * Make-lang.in (CXX_EXTRA_HEADERS): Define.
3791 (CXX_LIB2FUNCS): Define.
3792 And rules for building the C++ lang-support code.
3793 * config-lang.in (headers): Define.
3794 (lib2funcs): Define.
3795
3796Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3797
3798 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
3799 digest_init.
3800 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
3801 * typeck2.c (store_init_value): Check for initializing pmf with { }
3802 here.
3803 (process_init_constructor): Not here.
3804
3805Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3806
3807 * pt.c (begin_template_parm_list): Increment
eb66be0e 3808 processing_template_decl here.
5156628f
MS
3809 (end_template_parm_list): Not here.
3810 (process_template_parm): No need to add 1 to it now.
3811 * *.c: Use processing_template_decl instead of current_template_parms
3812 to check for being in a template.
3813
3814 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR.
3815 (tsubst_copy): Handle CONSTRUCTOR.
3816 (instantiate_decl): Set up context properly for variables.
3817 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
3818 * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
3819
3820Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3821
3822 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
3823
7fcdf4c2
MS
3824Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3825
3826 * method.c (make_thunk): Call comdat_linkage before setting the
eb66be0e 3827 TREE_CODE.
7fcdf4c2
MS
3828
3829 * decl2.c (comdat_linkage): Use make_decl_one_only.
3830 (import_export_decl): Likewise.
3831 * decl.c (init_decl_processing): Check supports_one_only instead of
3832 SUPPORTS_WEAK.
3833
3834Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com>
3835
3836 * decl2.c (grokfield): Tighten checking for access decls.
3837
3838 * decl.c (make_typename_type): Resolve references to
eb66be0e 3839 current_class_type. Set CLASSTYPE_GOT_SEMICOLON.
7fcdf4c2 3840 (lookup_name_real): Types that depend on a template parameter get
eb66be0e 3841 an implicit 'typename' unless they're in the current scope.
7fcdf4c2 3842 (start_decl_1): We don't care about incomplete types that depend
eb66be0e 3843 on a template parm.
7fcdf4c2 3844 (grokdeclarator): Resolve 'typename's in the type specifier that
eb66be0e 3845 refer to members of the current scope.
7fcdf4c2
MS
3846
3847 * call.c (build_over_call): Remove 'inline called before
eb66be0e 3848 definition' diagnostic.
7fcdf4c2
MS
3849 (build_method_call): Likewise.
3850 * decl.c (duplicate_decls): Downgrade 'used before declared
eb66be0e 3851 inline' to a warning, only with -Winline.
7fcdf4c2
MS
3852
3853Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com>
3854
3855 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
3856
c11b6f21
MS
3857Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu>
3858
3859 * call.c (build_method_call): When calling a signature
3860 default implementation, as in other cases, let instance_ptr simply
3861 be instance.
3862
3863Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com>
3864
3865 * parse.y (simple_stmt): Cleanup and use do_poplevel ().
3866
3867Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com>
3868
3869 * except.c (expand_start_catch_block): Add a pushlevel so that -g
eb66be0e 3870 works on hppa and SPARC.
c11b6f21
MS
3871
3872Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3873
3874 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
3875
3876Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu>
3877
3878 * call.c (build_over_call): Check first whether DECL_CONTEXT exists
3879 before testing whether it's a signature.
3880
3881Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu>
3882
3883 * call.c (build_new_method_call): Don't complain about signature
3884 pointers and references not being an aggr type.
3885 (build_this): If a signature pointer or reference was passed in,
3886 just return it.
3887 (build_new_method_call): If instance is a signature pointer, set
3888 basetype to the signature type of instance.
3889 * sig.c (build_signature_method_call): Deleted basetype and
3890 instance parameters, they can be found as the DECL_CONTEXT of
3891 function and as the first argument passed in.
3892 * cp-tree.h: Changed declaration of build_signature_method_call.
3893 * call.c (build_method_call): Deleted first two arguments in call
3894 of build_signature_method_call.
3895 (build_over_call): Added call to build_signature_method_call.
3896
3897Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3898
3899 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
eb66be0e 3900 target_expr.
c11b6f21
MS
3901
3902Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3903
3904 * cvt.c (convert_to_reference): Use %#T, not %#D, for error.
3905
9ffa2541
BM
3906Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com>
3907
3908 * except.c (expand_start_try_stmts): Move to except.c in the backend.
3909 (expand_end_try_stmts): Remove.
3910
3911 * init.c (perform_member_init): Use add_partial_entry () instead
3912 of directly manipulating lists.
3913 (emit_base_init): Ditto.
3914
c11b6f21
MS
3915Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com>
3916
3917 * except.c (expand_exception_blocks): Always make sure USE and
eb66be0e
MS
3918 CLOBBER insns that came at the end still do, the backend relies
3919 upon this.
c11b6f21
MS
3920
3921Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com>
3922
3923 * call.c (build_over_call): We can only use a TARGET_EXPR of the
eb66be0e 3924 right type.
c11b6f21
MS
3925
3926Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com>
3927
3928 * cvt.c (convert_to_reference): Revert last change, don't complain
eb66be0e 3929 about temp without target decl.
c11b6f21
MS
3930
3931Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com>
3932
3933 * decl.c (grokdeclarator): Don't core dump when void() is given.
3934
3935Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com>
3936
3937 * decl.c (copy_args_p): Don't crash.
3938
3939Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com>
3940
3941 * pt.c (tsubst): And support template args inside the exception
eb66be0e 3942 specification.
c11b6f21
MS
3943
3944 * pt.c (tsubst): Add support for exception specifications in
eb66be0e 3945 template functions.
c11b6f21
MS
3946
3947Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com>
3948
3949 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
eb66be0e 3950 fields now.
c11b6f21
MS
3951 * cp-tree.h (start_decl): Eliminate the throw spec parameter.
3952 (start_function): Likewise.
3953 (start_method): Likewise.
3954 (grokfield): Likewise.
3955 (make_call_declarator): Add throw spec parameter.
3956 (set_quals_and_spec): Add routine.
3957 * lex.c (set_quals_and_spec): Likewise.
3958 * decl.h (grokdeclarator): Eliminate the throw spec parameter.
3959 * decl.c (shadow_tag): Eliminate the throw spec parameter to
eb66be0e 3960 grokdeclarator.
c11b6f21
MS
3961 (groktypename): Likewise.
3962 (start_decl): Eliminate the throw spec parameter. Eliminate the
eb66be0e
MS
3963 throw spec parameter to grokdeclarator. Eliminate the throw spec
3964 field in DECL_STMT.
c11b6f21
MS
3965 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
3966 (grokfndecl): Remove useless set of raises.
3967 (grokdeclarator): Eliminate the throw spec parameter. Eliminate
eb66be0e
MS
3968 the throw spec parameter to start_decl. Pull the throw spec out
3969 of the call declarator.
c11b6f21
MS
3970 (grokparms): Eliminate the throw spec parameter to grokdeclarator.
3971 (start_function): Eliminate the throw spec parameter. Eliminate
eb66be0e 3972 the throw spec parameter to grokdeclarator.
c11b6f21
MS
3973 (start_method): Likewise.
3974 * decl2.c (grokfield): Likewise.
3975 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
3976 (grokoptypename): Likewise.
3977 (finish_file): Eliminate the throw spec parameter to
eb66be0e 3978 start_function. Add throw spec to make_call_declarator.
c11b6f21 3979 * except.c (init_exception_processing): Add throw spec to
eb66be0e
MS
3980 make_call_declarator. Eliminate the throw spec parameter to
3981 start_decl.
c11b6f21 3982 (expand_start_catch_block): Eliminate the throw spec parameter to
eb66be0e 3983 grokdeclarator.
c11b6f21
MS
3984 (expand_builtin_throw): Add throw spec to make_call_declarator.
3985 Eliminate the throw spec parameter to start_function.
3986 (start_anon_func): Likewise.
3987 * lex.c (make_call_declarator): Add throw spec parameter.
3988 (set_quals_and_spec): New routine.
3989 (cons_up_default_function): Add throw spec to make_call_declarator.
3990 Eliminate the throw spec parameter to grokfield.
3991 * method.c (synthesize_method): Eliminate the throw spec parameter
eb66be0e 3992 to start_function.
c11b6f21 3993 * pt.c (process_template_parm): Eliminate the throw spec parameter
eb66be0e 3994 to grokdeclarator.
c11b6f21
MS
3995 (tsubst): Add throw spec to make_call_declarator.
3996 (tsubst_expr): Eliminate the throw spec parameter to start_decl.
3997 (do_function_instantiation): Eliminate the throw spec parameter to
eb66be0e
MS
3998 grokdeclarator. Eliminate the throw spec parameter to
3999 start_function.
c11b6f21 4000 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
eb66be0e 4001 to start_function.
c11b6f21
MS
4002 * parse.y (datadef): Remove non-winning optimization.
4003 (decl): Likewise.
4004 (fndef): Remove ambiguous error productions uncovered by grammer
eb66be0e 4005 fixing.
c11b6f21
MS
4006 (constructor_declarator): Add exception_specification_opt here.
4007 (component_constructor_declarator): Likewise.
4008 (direct_after_type_declarator): Likewise.
4009 (complex_direct_notype_declarator): Likewise.
4010 (direct_abstract_declarator): Likewise.
4011 (fn.def1): Remove exception_specification_opt.
4012 (fn.def2): Likewise.
4013 (condition): Likewise.
4014 (initdcl0): Likewise.
4015 (initdcl): Likewise.
4016 (notype_initdcl0): Likewise.
4017 (nomods_initdcl0): Likewise.
4018 (component_decl_1): Likewise.
4019 (component_declarator): Likewise.
4020 (after_type_component_declarator0): Likewise.
4021 (after_type_component_declarator): Likewise.
4022 (notype_component_declarator): Likewise.
4023
4024Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4025
4026 * call.c (build_over_call): Also use an INIT_EXPR when
eb66be0e 4027 initializing anything from an rvalue.
c11b6f21
MS
4028
4029 * call.c (build_over_call): Call stabilize_reference when building
eb66be0e 4030 an INIT_EXPR instead of calling the copy ctor.
c11b6f21
MS
4031
4032 * call.c (joust): Extend the previous change to all comparisons.
4033
4034 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
4035 NO_LINKAGE_HEURISTICS.
4036
4037 * decl2.c (finish_file): Emit any statics that weren't already.
4038
4039 * typeck.c (build_static_cast): Implement.
4040 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
4041 * decl.c (grokparms): Use can_convert_arg instead of
eb66be0e 4042 implicit_conversion directly.
c11b6f21
MS
4043 (copy_args_p): New fn.
4044 * cvt.c (convert_to_reference): Don't complain about temp with
eb66be0e 4045 static_cast.
c11b6f21
MS
4046 (build_up_reference): Handle TARGET_EXPRs.
4047 * call.c (build_over_call): Elide unnecessary temps.
4048 (can_convert*): Use new overloading code.
4049
4050Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com>
4051
4052 * call.c: Move TYPE_PTR*_MACROS ...
4053 * cp-tree.h: To here.
4054 * typeck.c (build_reinterpret_cast): Implement.
4055
4056 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
eb66be0e 4057 ptr_complete_ob.
c11b6f21
MS
4058 (joust): If we're comparing a function to a builtin and the worst
4059 conversion for the builtin is worse than the worst conversion for the
4060 function, take the function.
4061
4062 * typeck.c (build_const_cast): Implement.
4063 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
4064 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
4065
4066Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com>
4067
4068 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype
eb66be0e
MS
4069 too early. Make sure we explode if exprtype turns out to be a
4070 NULL_TREE when it shouldn't be.
c11b6f21
MS
4071
4072Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com>
4073
4074 * cp-tree.h: New routine make_call_declarator.
4075 * lex.c (make_call_declarator): Define it.
4076 * except.c (init_exception_processing): Use it.
4077 (expand_builtin_throw): Likewise.
4078 (start_anon_func): Likewise.
4079 * decl2.c (finish_file): Likewise.
4080 * lex.c (cons_up_default_function): Likewise.
4081 * parse.y: Likewise.
4082 * pt.c (tsubst): Likewise.
4083
4084Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com>
4085
4086 * decl2.c (groktypefield): Remove unused code.
4087
4088Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com>
4089
4090 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
4091 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier.
4092 Change type_quals into cv_qualifiers. Change nonempty_type_quals into
4093 nonempty_cv_qualifiers.
4094 * hash.h: Rebuild.
4095
4096 * lex.c (make_pointer_declarator): Change type_quals into
eb66be0e 4097 cv_qualifiers.
c11b6f21
MS
4098 (make_reference_declarator): Likewise.
4099
d11ad92e
MS
4100Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4101
4102 * decl.c (start_function): Only check interface_* for templates
eb66be0e 4103 with flag_alt_external_templates.
d11ad92e
MS
4104
4105 * call.c (build_new_op): Check for comparison of different enum types.
4106 (build_over_call): Fix arg # output.
4107
4108 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
4109
4110Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4111
4112 * call.c (build_new_op): Check for erroneous args.
4113
4114 * call.c (build_new_method_call): Add missing args to cp_error.
4115
4116 * tree.c (error_type): Dont print reference-to-array.
4117
4118 * typeck.c (convert_for_assignment): Don't say contravariance for
eb66be0e 4119 removing const.
d11ad92e
MS
4120
4121Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com>
4122
4123 * call.c (build_over_call): Diagnose bad convs for `this'.
4124
4125 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
4126 on _ctor_arg.
4127
4128 * call.c (convert_like): Handle bad convs.
4129 (build_over_call): Handle bad convs better.
4130
4131 * decl2.c: -fansi-overloading is now the default.
4132
4133 * call.c (build_new_method_call): Check for erroneous args.
4134
4135 * pt.c (instantiate_class_template): Propagate
eb66be0e 4136 TYPE_USES_MULTIPLE_INHERITANCE.
d11ad92e
MS
4137
4138Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com>
4139
4140 * call.c (enforce_access): Add static to routine.
4141
4142Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com>
4143
4144 * call.c (build_user_type_conversion_1): Fix bad handling.
4145 (compare_ics): Likewise.
4146
4147Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com>
4148
4149 * call.c (standard_conversion): Oops.
4150
4151Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com>
4152
4153 * g++.c: Update test for win32 (&& ! cygwin32).
4154
4155Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com>
4156
4157 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
4158 (ptr_reasonably_similar): New fn.
4159 * call.c (BAD_RANK): New rank.
4160 (ICS_BAD_FLAG): New macro.
4161 (standard_conversion): Handle almost-right pointer conversions.
4162 (reference_binding): Handle bad rvalue bindings.
4163 (add_*_candidate): Stuff.
4164 (build_over_call): Pass bad conversions to convert_for_initialization.
4165 (compare_ics): Handle bad convs.
4166 (joust): Likewise.
4167
4168Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com>
4169
4170 * init.c (expand_vec_init): Use ptrdiff_type_node instead of
4171 integer_type_node when computing pointer offsets.
4172
4173Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com>
4174
4175 * tree.c (lvalue_type): New fn.
4176 (error_type): New fn.
4177 * call.c (op_error): Use error_type.
4178 (add_conv_candidate): Use lvalue_type.
4179 (add_builtin_candidates): Likewise.
4180 * error.c (args_as_string): Use error_type.
4181
4182Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com>
4183
4184 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
4185 (tsubst): Not here.
4186
4187 * decl.c (init_decl_processing): With -ansi, __null's type is the
4188 signed integral type with the same number of bits as a pointer.
4189 Introduce a new variable null_node for it.
4190 * cp-tree.h: Adjust.
4191 * call.c (null_ptr_cst_p): Adjust.
4192
4193Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com>
4194
4195 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can
eb66be0e 4196 optimize.
d11ad92e
MS
4197
4198Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com>
4199
4200 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo
eb66be0e 4201 fns of classes without virtual functions.
d11ad92e
MS
4202
4203 * call.c (add_function_candidate): Handle `this' specially.
4204 (compare_ics): Likewise.
4205
4206Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com>
4207
4208 * typeck.c (build_conditional_expr): Fix handling of __null.
4209
4210 * decl2.c (comdat_linkage): New fn.
4211 (import_export_vtable): Use it.
4212 (import_export_decl): Use it.
4213 * method.c (make_thunk): Use it.
4214
73aad9b9
JM
4215Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
4216
4217 * pt.c (end_template_decl): If we don't actually have parms, return.
4218 * parse.y (template_header): Accept 'template <>'.
4219
4220 * errfn.c: Allow 5 args.
4221
4222Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
4223
4224 * tree.c (make_temp_vec): New fn.
4225 * pt.c (push_template_decl): Handle partial specs.
d11ad92e 4226 (instantiate_class_template): Likewise.
73aad9b9
JM
4227 (more_specialized): Use get_bindings.
4228 (more_specialized_class): New fn.
4229 (get_class_bindings): New fn.
4230 (most_specialized_class): New fn.
4231 (do_function_instantiation): List candidates for ambiguous case.
4232 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
4233 (shadow_tag): Call push_template_decl for partial specializations.
d11ad92e 4234 * parse.y: Likewise.
73aad9b9 4235 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
eb66be0e 4236 DECL_TEMPLATE_MEMBERS.
73aad9b9
JM
4237 * call.c (print_z_candidates): Reduce duplication.
4238
4239Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4240
4241 * decl2.c (lang_decode_option): Allow -fansi-overloading.
4242
4243Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
4244
4245 * pt.c (get_bindings): New fn.
d11ad92e 4246 (most_specialized): Likewise.
73aad9b9
JM
4247 (do_function_instantiation): Use them.
4248 (add_maybe_template): New fn.
4249 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
4250 * call.c (build_new_op): Handle guiding decls.
d11ad92e
MS
4251 (build_new_function_call): Likewise.
4252 * decl2.c (finish_file): Likewise.
73aad9b9
JM
4253
4254 * decl2.c (mark_used): Do synthesis here.
4255 * call.c (build_method_call): Not here.
4256 (build_over_call): Or here.
4257 * typeck.c (build_function_call_real): Or here.
4258 * tree.c (bot_manip): Call mark_used on functions used in default
eb66be0e 4259 args.
73aad9b9 4260
2eee5e3a
MM
4261Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
4262
4263 * decl2.c (import_export_vtable): Delete code that disabled vtable
eb66be0e 4264 heuristic on systems with ASM_OUTPUT_EXTERNAL.
2eee5e3a 4265
c73964b2
MS
4266Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
4267
4268 * typeck.c (build_x_function_call): Handle static call context
4269 better.
4270
4271 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
eb66be0e 4272 the function, not its outer block.
c73964b2
MS
4273
4274 * call.c (build_field_call): Pass fields on to build_opfncall
eb66be0e 4275 regardless of TYPE_OVERLOADS_CALL_EXPR.
c73964b2
MS
4276 (build_method_call): Pass on to build_new_method_call sooner.
4277
4278 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
4279 gives us.
4280 * class.c (instantiate_type): Don't put a POINTER_TYPE to
eb66be0e 4281 METHOD_TYPE on an expression. Also make a copy of rhs instead of
c73964b2
MS
4282 modifying it.
4283
4284Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
4285
4286 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
4287 (add_builtin_candidate): Don't take enums for ++.
4288 (build_new_method_call): Handle non-aggregates and field calls.
4289 Move new overloading code from...
4290 * cvt.c: Here.
4291
4292 * decl.c (grokparms): Don't check default args in templates.
4293
4294Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
4295
4296 * cvt.c (build_new_op): Fix args to build_unary_op.
4297 (add_builtin_candidates): Don't call type_promotes_to on float.
4298
4299 * decl.c (grokparms): Check the type of the default arg.
4300
4301 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
4302 returning NULL_TREE.
4303
4304 * typeck.c (build_x_binary_op): Avoid doing extra work.
d11ad92e
MS
4305 (build_x_unary_op): Likewise.
4306 (build_x_conditional_expr): Likewise.
c73964b2
MS
4307 * cvt.c (build_over_call): Return.
4308 (add_builtin_candidate): Fix MEMBER_REF.
d11ad92e 4309 (build_new_op): Likewise.
c73964b2
MS
4310
4311Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
4312
4313 * method.c (build_overload_name): Put bug fix into code but leave
eb66be0e
MS
4314 disabled for now so we can be bug compatible with older releases
4315 that do repeats incorrectly. In the future, we can enable it.
c73964b2
MS
4316
4317Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
4318
4319 * cvt.c (convert_like): Don't call build_cplus_new twice.
4320
4321 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
4322 Control new overloading code with -fansi-overloading.
4323
4324Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
4325
4326 * cvt.c (build_over_call): Call build_cplus_new.
d11ad92e
MS
4327 * call.c (build_method_call): Likewise.
4328 * typeck.c (build_function_call_real): Likewise.
c73964b2
MS
4329 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
4330 the COND_EXPR in a TARGET_EXPR so they use the same slot.
4331
4332 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
4333 recursive calls.
4334 * typeck.c (complete_type): Propagate
eb66be0e 4335 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
c73964b2
MS
4336
4337Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
4338
4339 * cvt.c (joust): More ?: kludging. Sigh.
4340 (build_over_call): Don't try to synthesize global fns.
4341
4342 * search.c (lookup_conversions): Use binfo marking.
4343
4344Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
4345
4346 * search.c (build_mi_matrix): Use the correct value of cid
4347 when determining the new mi_size.
4348
4349Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
4350
4351 * cvt.c (add_builtin_candidates): Do consider type conversion ops
4352 for the first parms of += et al.
4353 (strip_top_quals): New fn.
4354 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
d11ad92e 4355 (implicit_conversion): Likewise.
c73964b2
MS
4356 (add_builtin_candidates): Be careful about arrays.
4357 (build_new_method_call): Handle vtable optimization.
4358
4359Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
4360
4361 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
4362 * cvt.c (reference_binding): Use it.
4363 (implicit_conversion): Use it.
4364 (add_builtin_candidate, COND_EXPR): Use it.
4365
4366 * cvt.c (build_new_function_call): Check for error args.
4367
4368 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
4369
4370 * gxx.gperf: Add __null.
4371 * hash.h: Regenerate.
4372 * lex.h: Add RID_NULL.
4373 * lex.c (init_lex): Create null_pointer_node here, stick it in
eb66be0e 4374 RID_NULL.
c73964b2
MS
4375 * decl.c (init_decl_processing): Still set its type here.
4376 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
d11ad92e 4377 (convert_to_pointer_force): Likewise.
c73964b2
MS
4378 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
4379 if (! pedantic).
4380 * call.c (convert_harshness): Use null_ptr_cst_p.
d11ad92e 4381 * typeck.c (convert_for_assignment): Likewise. Don't produce
c73964b2
MS
4382 null_pointer_node.
4383
4384 * error.c (args_as_string): Handle lists of actual args, too.
4385 * cvt.c (null_ptr_cst): Support (void*)0 for now.
4386 (build_user_type_conversion_1): Improve diagnostics.
4387 (build_new_function_call): Likewise.
4388 (build_object_call): Likewise.
4389 (build_new_method_call): Likewise. Move call before def diagnostic...
4390 (build_over_call): Here.
4391
4392 * cvt.c (build_new_method_call): Don't complain about no match if
eb66be0e 4393 LOOKUP_SPECULATIVELY.
c73964b2
MS
4394 (build_over_call): Fix 'this' for virtual fn.
4395 (build_new_method_call): Add diagnostic.
4396
4397Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4398
4399 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
eb66be0e 4400 constructors to be passed in.
c73964b2
MS
4401 (build_over_call): Likewise.
4402 (build_user_type_conversion_1): Pass them in.
4403 (convert_like): Likewise.
4404 (build_object_call): Handle overloaded conversions.
4405 (build_over_call): Pass the right args to build_vfn_ref.
4406 (standard_conversion): Fix pmf convs.
4407 (joust): Handle comparing statics and non-statics.
4408 (build_new_method_call): New fn.
4409 * call.c (build_method_call): Call it if NEW_OVER.
4410
4411Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
4412
4413 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
eb66be0e 4414 %D instead.
c73964b2
MS
4415
4416Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
4417
4418 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
eb66be0e
MS
4419 instead of just maybe_build_cleanup so that we deallocate the
4420 thrown object.
c73964b2
MS
4421
4422Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4423
4424 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
4425 * cp-tree.h (finish_prevtable_vardecl): Add decl.
4426
14548a19
MS
4427Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
4428
c73964b2 4429 * pt.c (instantiate_class_template): Call complete_type. Also, if
eb66be0e
MS
4430 we're at the end of the file and we just instantiated a template
4431 class with a vtable, call finish_prevtable_vardecl.
c73964b2 4432
14548a19 4433 * error.c (dump_decl): Don't explode (or explode more gracefully
eb66be0e 4434 as appropriate) if the object being dumped has a null type.
d11ad92e 4435 (dump_expr): Likewise.
14548a19
MS
4436
4437 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
eb66be0e
MS
4438 by counting the number of nodes that we'll need before allocating
4439 the array.
14548a19
MS
4440 (lookup_fnfields): Fix comment.
4441 (breadth_first_search): Fix comment.
4442
4443Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
4444
4445 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
eb66be0e 4446 TYPE_ALIGN.
14548a19
MS
4447 * class.c (finish_struct): Call cplus_decl_attributes here.
4448 (finish_struct_1): Not here.
4449 * cp-tree.h: Adjust.
4450
4451 * pt.c (type_unification): New parameter STRICT.
4452 (unify): If STRICT, don't allow cv addition or base deduction.
4453 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
4454
4455Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
4456
4457 * search.c (get_template_base{_recursive}): New fns.
4458 * pt.c (more_specialized): New fn.
4459 (do_function_instantiation): Use it.
4460 (unify): Handle base deduction.
4461 * cvt.c (joust): Use more_specialized.
4462 Don't arbitrarily choose between non-builtin candidates.
4463 (build_over_call): Call require_complete_type.
4464
4465 * decl.c (start_function): Statics are static even in a #pragma
eb66be0e 4466 interface file.
14548a19
MS
4467
4468 * decl2.c (import_export_vtable): Disable vtable heuristic on
eb66be0e 4469 systems with ASM_OUTPUT_EXTERNAL.
14548a19
MS
4470
4471 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
4472 (standard_conversion): No std conv to enum type.
4473
4474 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
4475 for ptm's.
4476
4477 * cvt.c (reference_binding): Bind directly to a base subobject of
eb66be0e 4478 a class rvalue.
14548a19
MS
4479
4480 * cvt.c (build_new_op): Enforce access control.
4481
4482Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
4483
4484 * typeck2.c (process_init_constructor): When scanning the
4485 union for a named field, skip things that aren't FIELD_DECLs.
4486
4487 * method.c (synthesize_method): Don't scan fndecl's rtl if
4488 we're at the end of the file; just assume the function can't
4489 be inlined.
4490
4491Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4492
4493 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
eb66be0e 4494 it failed.
14548a19
MS
4495
4496 * cvt.c (build_user_type_conversion_1): Handle overloaded
eb66be0e 4497 conversion ops.
14548a19
MS
4498
4499 * cvt.c (add_builtin_candidates): Don't consider type conversion
eb66be0e 4500 operators for the first parameter of operator=.
14548a19
MS
4501
4502Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
4503
4504 * typeck.c (complete_type): Only call layout_type if we're not
eb66be0e 4505 expanding a template.
14548a19
MS
4506
4507Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
4508
4509 * cvt.c (compare_ics): Oops.
4510
4511 * cvt.c (op_error): Oops.
4512
4513 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
4514 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
4515 (build_conv): Use them.
4516 (implicit_conversion): Use them.
4517 (convert_like): Handle them.
4518 (build_new_op): Handle builtin COND_EXPR again.
4519 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
4520 in lists of types for COND_EXPR.
4521 (add_builtin_candidate): Add enum candidates for COND_EXPR.
4522
4523Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
4524
4525 * typeck.c (build_modify_expr): Always attempt to build a call to
eb66be0e 4526 the assignment operator, even if we're using a default one.
14548a19
MS
4527 (convert_for_initialization): Call complete_type.
4528
4529Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4530
4531 * cvt.c (reference_binding): A REF_BIND gets the reference type.
4532 (implicit_conversion): Likewise.
4533 (convert_like): Likewise.
4534 (compare_ics): Likewise.
4535 (compare_qual): Likewise.
4536 (print_z_candidates): Handle no candidates.
4537 (build_new_op): Don't handle builtin COND_EXPR for now.
4538
4539Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
4540
4541 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
4542
4543Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4544
4545 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
4546
4547 * cvt.c (build_builtin_candidate): Oops.
4548 (build_new_op): Oops.
4549
4550 * method.c (build_opfncall): Pass COND_EXPR on.
4551 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
4552 (add_builtin_candidate{,s}): Likewise.
4553 (add_builtin_candidates): Likewise.
4554 (print_z_candidates, op_error, build_new_op): Likewise.
4555 (type_decays_to): New fn.
4556 * lex.c (init_lex): Just say ?: for COND_EXPR.
4557
4558Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4559
4560 * typeck.c (complete_type): Call layout_type rather than building
eb66be0e 4561 a new array type.
14548a19
MS
4562
4563 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
eb66be0e 4564 only use ptrdiff_t.
14548a19
MS
4565
4566Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4567
4568 * cvt.c: Always compile the new overloading code (but don't use it).
4569 (implicit_conversion): Add a BASE_CONV when converting to
eb66be0e 4570 the same class type.
14548a19
MS
4571 (convert_like): Handle BASE_CONV.
4572
4573Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4574
4575 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
4576 (add_builtin_candidate): Likewise.
4577
4578 NEW_OVER changes:
4579 * typeck.c (build_x_function_call): Try an operator function
eb66be0e 4580 whenever we call an object of class type.
14548a19
MS
4581 * method.c (build_opfncall): Pass CALL_EXPRs through.
4582 * cvt.c (implicit_conversion): Do const-ref case first.
4583 (add_conv_candidate, build_object_call, op_error): New fns.
4584 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
4585 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
4586 builtin candidates.
4587 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
4588 Fall back on preincrement handling. Use op_error.
4589 Handle warn_synth.
4590 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
4591 an error_mark_node.
4592 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
4593 properly.
4594
4595Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
4596
4597 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
4598
4599Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
4600
4601 * typeck.c (build_component_ref_1): Use build_component_ref
4602 instead of open coding it here.
4603
4604Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
4605
4606 * g++.c (main): Don't link with -lg++.
4607
4608 NEW_OVER changes:
4609 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
eb66be0e 4610 result of build_type_conversion.
14548a19
MS
4611 (cp_convert): Only call build_method_call for ctors if
4612 build_type_conversion failed.
4613 (ptr_complete_ob): New function.
4614 (TYPE_PTR{,OB,MEM}_P): New macros.
4615 ({add,build}_builtin_candidate{,s}): New functions.
4616 (print_z_candidates): Handle builtins.
4617 (build_user_type_conversion_1): Don't use conversion fns for
4618 converting to a base type.
4619 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
4620 (build_user_type_conversion): Use convert_from_reference.
4621 (build_new_op): New function.
4622 (build_over_call): Fix handling of methods.
4623 (compare_ics): Handle AMBIG_CONV properly.
4624 * typeck2.c: Increment abort count.
4625 * method.c (build_opfncall): Forward most requests to build_new_op.
4626 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
4627
4628Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4629
4630 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
4631 invalid second argument to dump_expr_list.
4632
594740f3
MS
4633Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
4634
4635 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
4636
4637Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
4638
4639 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
4640 ASSEMBLE_EXTERNAL.
4641
4642Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
4643
4644 * typeck2.c (process_init_constructor): New pedwarn for using { }
4645 to initialize a pointer to member function.
4646 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
4647 we can avoid the new error.
4648
4649Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
4650
4651 * typeck.c (build_ptrmemfunc1): New function to hide details of
4652 pointer to member functions better.
4653
4654Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
4655
4656 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
4657 methods into the actual method, as we know the implied object is
4658 not used.
4659
4660Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4661
4662 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
4663 inside a system header.
4664
4665Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
4666
4667 * call.c (build_method_call): Call complete_type on the
4668 instance type.
4669
4670Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
4671
4672 * typeck.c (build_component_ref): Always build up an OFFSET_REF
4673 for obj_ptr->func so that we can know which object to use in a
4674 method call.
4675
4676Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
4677
4678 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
4679 around things. Also improve maintainability.
4680
4681Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
4682
4683 * decl.c (grokdeclarator): Check for overflow when evaluating an
eb66be0e 4684 array dimension.
594740f3
MS
4685
4686Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4687
4688 * cvt.c (cp_convert): Don't check for ambiguity with constructor
eb66be0e 4689 if NEW_OVER.
594740f3
MS
4690
4691 * typeck.c (build_x_function_call): Pass function overload
eb66be0e 4692 questions to new overloading code if NEW_OVER.
594740f3 4693 * init.c (expand_aggr_init_1): Only check for type conversion ops
eb66be0e
MS
4694 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
4695 Don't check for ambiguity with constructor if NEW_OVER.
594740f3 4696 * cvt.c (convert_to_reference): Dereference the result of a type
eb66be0e 4697 conversion operator.
594740f3
MS
4698 (build_conv): Propagate ICS_USER_FLAG.
4699 (implicit_conversion): Call instantiate_type.
4700 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
4701 (add_function_candidate): Fix cv-quals on argtype.
4702 (print_z_candidates): New function.
4703 (build_new_function_call): Call it.
4704 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
4705 consider non-converting constructors.
4706 Call print_z_candidates.
4707 Return an AMBIG_CONV for an ambiguous conversion.
4708 (build_user_type_conversion): Handle AMBIG_CONV.
4709 (convert_like): Fix test for building TARGET_EXPR.
4710 Call instantiate_type.
4711 Handle AMBIG_CONV and LVALUE_CONV.
4712 (build_over_call): Handle 0 args and ellipsis.
4713 * cp-tree.def: Add AMBIG_CONV.
4714
e92cc029
MS
4715Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
4716
4717 * decl.c (lookup_name_real): If we find mem in obj when parsing
eb66be0e 4718 `obj->mem', make sure we return the right value.
e92cc029
MS
4719
4720Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
4721
4722 * search.c (get_base_distance): Call complete_type.
4723
4724Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
4725
4726 * decl.c (store_bindings): Make static.
4727
4728Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
4729
4730 * init.c (expand_aggr_init_1): Don't check type conversions if
eb66be0e 4731 NEW_OVER.
e92cc029
MS
4732
4733 * cvt.c (z_candidate): Put back template field.
4734 (add_function_candidate): Set it.
4735 (add_template_candidate): Likewise.
4736 (joust): Use it.
4737 (compare_qual): Handle references and pointers to members.
4738 (compare_ics): Handle reference bindings.
4739
4740 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
4741
4742Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
4743
4744 * call.c (compute_conversion_costs): Call complete_type.
4745
4746 * tree.c (vec_binfo_member): Use comptypes instead of comparing
eb66be0e 4747 pointers, so we can handle template parameters.
e92cc029
MS
4748
4749Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
4750
4751 * cvt.c (cp_convert_to_pointer): We have to call complete_type
4752 here; let's make it explicit instead of a side effect of an
4753 error check.
4754
4755Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4756
4757 * cvt.c (z_candidate): Remove template field.
4758 (reference_binding): Handle binding to temporary.
4759 (implicit_conversion): Likewise.
4760 (add_function_candidate): Handle artificial constructor parms.
4761 Handle functions with too few parms.
4762 (add_template_candidate): New function.
4763 (build_user_type_conversion_1): Handle constructors.
4764 (convert_like): Likewise.
4765 (build_over_call): Likewise.
4766 (build_new_function_call): Support templates.
4767 (compare_ics): Fix reference, inheritance handling.
4768
4769Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
4770
4771 * decl.c: Add signed_size_zero_node.
4772 (init_decl_processing): Build it.
4773 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
eb66be0e 4774 when we're trying to make a negative delta.
e92cc029
MS
4775
4776Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4777
4778 Stop doing this damn index==strchr variable name confusion.
4779 * class.c (add_virtual_function): Change local var INDEX to be
4780 named IDX.
4781 (add_method): Likewise.
4782 * lex.c (print_parse_statistics): Likewise.
4783 * search.c (make_memoized_table_entry): Likewise.
4784 (lookup_fnfields_here): Likewise.
4785 (lookup_field): Likewise.
4786 (lookup_fnfields): Likewise.
4787 (get_baselinks): Likewise.
4788 * sig.c (build_signature_table_constructor): Likewise.
4789 (build_signature_method_call): Likewise.
4790 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
4791 (get_member_function_from_ptrfunc): Likewise.
4792 (build_ptrmemfunc): Change local var INDEX to be IDX.
4793 (c_expand_start_case): Likewise.
4794
4795Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
4796
4797 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
eb66be0e 4798 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
e92cc029 4799 (convert_to_reference): Use build_type_conversion to convert to
eb66be0e 4800 the reference type directly.
e92cc029
MS
4801 (standard_conversion): Fix void* case, non-conversions.
4802 (reference_binding): Fix expr == 0 case, non-conversions.
4803 (convert_like): Support REF_BIND.
4804 (compare_qual): Split out from compare_ics.
4805 (compare_ics): Use it, handle icses with only a qual_conv.
4806
4807 * init.c (expand_vec_init): Don't crash if decl is NULL.
4808
4809Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
4810
4811 * mpw-config.in: New file, configury for Mac MPW.
4812 * mpw-make.sed: New file, makefile editing for MPW.
4813
4814Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4815
4816 * pt.c (instantiate_class_template): Call repo_template_used.
4817
4818 * search.c (lookup_conversions): Only lookup conversions in
eb66be0e 4819 complete types.
e92cc029
MS
4820
4821Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4822
4823 * cp-tree.def: Renamed from tree.def, to avoid confusion with
4824 gcc's tree.def.
4825 * cp-tree.h, lex.c: Include cp-tree.def.
4826 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
4827
4828Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
4829
4830 * init.c (build_vec_delete_1): Call complete_type.
4831
4832Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
4833
4834 * except.c (start_anon_func): Make sure anonymous functions are
eb66be0e 4835 never external.
e92cc029
MS
4836
4837Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
4838
4839 * decl.c (finish_function): If function_depth > 1, set nested.
4840
4841 * decl2.c (grokbitfield): Revert Bob's change.
4842 * class.c (finish_struct_1): Fix handling of named bitfield widths.
4843
4844Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
4845
4846 * pt.c (add_pending_template): Handle types.
4847 (lookup_template_class): With -fexternal-templates, just add the class
4848 to pending_templates instead of instantiating it now.
4849 * decl2.c (finish_file): Handle types in pending_templates.
4850
4851Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
4852
4853 * decl2.c (grokbitfield): Handle constant decls appropriately.
eb66be0e
MS
4854 Give an appropriate error message now instead of spewing core
4855 later.
e92cc029
MS
4856
4857Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4858
4859 * decl2.c: Don't turn on thunks by default for now.
4860
4861Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
4862
4863 * typeck.c (complete_type): Handle error_mark_node.
4864 (common_type, OFFSET_TYPE): Handle template_type_parms.
4865
4866Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4867
4868 * pt.c (instantiate_decl): If at_eof, call import_export_decl
eb66be0e 4869 regardless of DECL_INLINE.
e92cc029
MS
4870
4871 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
4872
4873 * class.c (finish_struct_bits): Copy TYPE_SIZE.
4874
4875 * rtti.c (build_dynamic_cast): Support templates.
4876 * tree.def: Support DYNAMIC_CAST_EXPR.
4877 * pt.c (tsubst_copy): Likewise.
4878 * decl2.c (build_expr_from_tree): Likewise.
4879
4880Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4881
4882 * typeck.c (build_static_cast): Support templates.
4883 (build_const_cast): Likewise.
4884 * tree.def: Support CONST/STATIC_CAST_EXPR.
4885 * pt.c (tsubst_copy): Likewise.
4886 * decl2.c (build_expr_from_tree): Likewise.
4887
4888Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
4889
4890 * decl2.c (finish_vtable_vardecl): Don't trust
eb66be0e 4891 TREE_SYMBOL_REFERENCED for vtables of local classes.
e92cc029
MS
4892
4893Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4894
4895 * pt.c (tsubst_copy): Handle operator T.
4896
4897Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4898
4899 * init.c (build_delete): Move creation of PARMS inside test of
4900 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
4901
4902Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
4903
4904 * typeck.c (build_conditional_expr): Don't assume that
4905 the arguments to ?: are always pointers or records.
4906
4907Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4908
4909 * decl2.c (import_export_decl): Still emit static/weak/comdat
eb66be0e 4910 copies of inline template functions with -fno-implicit-templates.
e92cc029
MS
4911
4912Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
4913
4914 * init.c (build_delete): Determine the complete basetype
4915 path to the destructor we're calling.
4916
4917Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
4918
4919 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
eb66be0e
MS
4920 initialize the enum, because we really and truly don't know where
4921 it came from.
e92cc029 4922 (start_enum): Don't copy integer_zero_node because
eb66be0e 4923 build_enumerator will do it.
e92cc029
MS
4924
4925Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4926
4927 * decl.c (finish_function): Do access control on base destructors.
4928
4929 * pt.c (tsubst, case FUNCTION_DECL): Set up
eb66be0e
MS
4930 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
4931 hose us.
e92cc029
MS
4932
4933Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
4934
4935 * cvt.c (build_up_reference): If we have already extended the
eb66be0e 4936 lifetime of the temporary, don't try it again.
e92cc029
MS
4937 * typeck.c (c_expand_return): Don't try and convert the return
4938 value twice when we want a reference, once is enough.
4939
a0128b67
MS
4940Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
4941
4942 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
eb66be0e 4943 LOOKUP_ONLYCONVERTING at all for now.
a0128b67
MS
4944
4945 * search.c (add_conversions): Put the conversion function in
eb66be0e 4946 TREE_VALUE, the basetype in TREE_PURPOSE.
a0128b67
MS
4947 * cvt.c (build_type_conversion): Adjust.
4948 * cvt.c (build_expr_type_conversion): Adjust.
4949 * call.c (user_harshness): Adjust.
4950
4951Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
4952
4953 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
eb66be0e 4954 backend's benefit.
a0128b67 4955
14548a19
MS
4956Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
4957
4958 * except.c (expand_start_catch_block): Add a dummy region, if we
4959 get an error, so that we can avoid core dumping later.
4960
a0128b67
MS
4961Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
4962
4963 * cp-tree.h (OFFSET_REF): Remove.
4964 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
4965 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
d11ad92e
MS
4966 * init.c (expand_aggr_init_1): Likewise.
4967 (build_new): Likewise.
4968 * typeck.c (expand_target_expr): Likewise.
a0128b67
MS
4969
4970Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4971
4972 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
eb66be0e 4973 TARGET_EXPR.
a0128b67 4974
e349ee73
MS
4975Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
4976
4977 * cvt.c (build_up_reference): Redo how and when temporaries are
4978 created.
4979 * decl.c (grok_reference_init): Don't try and be smart about
4980 running cleanups.
4981
4982Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
4983
4984 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
4985 (TARGET_EXPR...), now that it has 4 arguments.
d11ad92e 4986 * tree.c (build_cplus_new): Likewise.
e349ee73
MS
4987
4988Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4989
4990 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
4991
4992 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
4993 * decl.c (struct saved_scope): Remove named_labels,
4994 {base,member}_init_list.
4995 (maybe_push_to_top_level): Don't set them. Call
4996 push_cp_function_context if appropriate.
4997 (pop_from_top_level): Likewise.
4998
4999 * method.c (do_build_assign_ref): Remove obsolete check of
5000 TYPE_HAS_ASSIGN_REF (basetype).
5001
5002 * decl.c (grokfndecl): Diagnose user definition of
eb66be0e 5003 implicitly-declared methods.
e349ee73
MS
5004
5005Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
5006
5007 * method.c (do_build_copy_constructor): Add code to give
eb66be0e
MS
5008 meaningful error messages instead of crashing.
5009 (do_build_assign_ref): Don't synthesize assignment operators for
5010 classes containing reference or const members.
e349ee73
MS
5011
5012 * class.c (struct base_info): Remove cant_synth_copy_ctor
5013 and cant_synth_asn_ref.
5014 (finish_base_struct): Remove the code that tries to conditionalize
eb66be0e
MS
5015 synthesis of copy constructors & assignment operators based on
5016 access permissions. Instead, let it fail when it tries to
5017 synthesize the copy constructor. This will give meaningful error
5018 messages instead of silently generating code to perform a bitcopy.
e349ee73
MS
5019
5020Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
5021
5022 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
eb66be0e 5023 determining types for constant values.
e349ee73
MS
5024
5025 * decl.c (struct named_label_list): Use instead of stuffing
5026 random items into a TREE_LIST node.
5027 (named_label_uses): Use the new struct.
d11ad92e
MS
5028 (poplevel): Likewise.
5029 (lookup_label): Likewise.
e349ee73 5030 (define_label): Add an error message to tell the user the line
eb66be0e
MS
5031 where the goto is located in addition to the destination of the
5032 goto.
e349ee73
MS
5033 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
5034 named_label_uses.
d11ad92e 5035 (finish_function): Likewise.
e349ee73
MS
5036
5037 (start_decl): Complain about defining a static data member
5038 in a different type from which it was declared.
5039
5040Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
5041
5042 * cvt.c (build_expr_type_conversion): Adjust.
5043
5044Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
5045
5046 * call.c (build_method_call): Always convert 'this' to the
eb66be0e 5047 appropriate type.
e349ee73
MS
5048
5049 * search.c (add_conversions): Put the conversion function in
eb66be0e 5050 TREE_VALUE, the type in TREE_PURPOSE.
e349ee73
MS
5051 * cvt.c (build_type_conversion): Adjust.
5052 * call.c (user_harshness): Adjust.
5053
5054 * method.c (emit_thunk): Call temporary_allocation and
eb66be0e 5055 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
e349ee73
MS
5056
5057 * tree.c (build_cplus_array_type): Handle tweaking of
eb66be0e 5058 TYPE_MAIN_VARIANT here.
e349ee73
MS
5059 * typeck.c (common_type): Not here.
5060
5061 * typeck.c (complete_type): Only try to complete an array type if
eb66be0e 5062 it has a domain.
e349ee73
MS
5063
5064Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
5065
5066 * decl.c (grokvardecl): Call complete_type.
5067 (grokdeclarator): Call complete_type for PARM_DECLs.
5068
5069Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
5070
5071 * pt.c (instantiate_class_template): Re-set
eb66be0e 5072 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
e349ee73
MS
5073
5074Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
5075
5076 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
5077 smart enough to do it right.
d11ad92e 5078 * tree.c (cp_expand_decl_cleanup): Likewise.
e349ee73
MS
5079 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
5080 cp_expand_decl_cleanup.
d11ad92e
MS
5081 (store_parm_decls): Likewise.
5082 (hack_incomplete_structures): Likewise.
5083 * except.c (push_eh_cleanup): Likewise.
e349ee73
MS
5084
5085Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
5086
5087 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
5088 frontend to the backend where it belongs.
d11ad92e
MS
5089 * tree.c (unsave_expr): Likewise.
5090 (unsave_expr_now): Likewise.
5091 * tree.def (UNSAVE_EXPR): Likewise.
5092 * cp-tree.h (unsave_expr): Likewise.
5093 (unsave_expr_now): Likewise.
e349ee73
MS
5094
5095Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
5096
5097 * init.c (emit_base_init): Make sure the partial EH cleanups live
5098 on the function_obstack.
5099
ce122a86
MS
5100Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
5101
5102 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
5103 when checking for pointer types.
5104
5105Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
5106
5107 * pt.c (instantiate_class_template): Remove obsolete check for
eb66be0e 5108 access declarations.
ce122a86
MS
5109
5110Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
5111
5112 * call.c (build_overload_call): Simplify calls to
5113 build_overload_call by removing last parameter.
d11ad92e
MS
5114 (build_method_call): Likewise.
5115 * cp-tree.h: Likewise.
5116 * method.c (build_opfncall): Likewise.
5117 * typeck.c (build_x_function_call): Likewise.
ce122a86
MS
5118
5119Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
5120
5121 * call.c (default_parm_conversions): Factor out common code.
5122 (build_method_call): Use it.
5123 (build_overload_call_real): Use it.
5124
4ac14744
MS
5125Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
5126
5127 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
5128 but pedwarn as the code is bogus.
d11ad92e 5129 * typeck.c (decay_conversion): Likewise.
4ac14744
MS
5130 (build_function_call_real): Use build_addr_func instead of
5131 default_conversion. Don't allow pointer-to-method functions down
5132 here.
5133 (build_unary_op): Use real pointer-to-member functions instead of
5134 fake ones.
5135 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
5136 (convert_for_assignment): Removed some obsolete code.
5137 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
5138 build_x_function_call instead of current_class_ptr. Only call
5139 digest_init once on an initializer, we do this just checking
5140 TREE_TYPE.
5141 (build_expr_from_tree): Pass current_class_ref to
5142 build_x_function_call instead of current_class_ptr.
d11ad92e
MS
5143 * init.c (build_member_call): Likewise.
5144 * pase.y: Likewise.
4ac14744
MS
5145 * error.c (dump_expr): Handle OFFSET_REFs better.
5146 * pt.c (unify): Handle pointer-to-member functions better.
5147 * decl.c (finish_function): Clear out current_class_ref just like
5148 we do for current_class_ptr.
5149
5150 * typeck.c (get_delta_difference): Handle virtual bases better.
5151
5152Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
5153
5154 * sig.c (build_signature_table_constructor): Use the delta for
5155 the original basetype for this virtual function with thunks.
5156 (build_signature_method_call): We still need to adjust 'this'
5157 with thunks.
5158
5159Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
5160
5161 * call.c (build_addr_func): New routine. Used to get the `real'
5162 address of a function or a method. Needed to avoid getting a
5163 pointer-to-member function.
5164 (build_call): New routine to build CALL_EXPRs.
5165 (build_method_call): Use it.
d11ad92e
MS
5166 * cvt.c (convert_to_aggr): Likewise.
5167 * typeck.c (build_function_call_real): Likewise.
4ac14744
MS
5168 * sig.c (build_signature_table_constructor): Use build_addr_func.
5169 * cp-tree.h (build_call, build_addr_func): Declare them.
5170
5171Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
5172
5173 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
5174 * parse.y: Remove uses of LOOKUP_AGGR.
5175
5176Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
5177
5178 * *.[chy]: Rename current_class_decl to current_class_ptr, and
5179 C_C_D to current_class_ref.
5180
5181Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
5182
5183 * call.c (convert_harshness): Tighten up pointer conversions.
5184
5185Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
5186
5187 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
5188 (finish_file): Likewise.
5189
5190Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
5191
5192 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
5193
5194 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
eb66be0e 5195 code.
4ac14744
MS
5196
5197Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
5198
5199 * decl2.c: Turn on thunks by default where supported.
5200
4dabb379
MS
5201Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
5202
5203 * cp-tree.h (build_overload_call_maybe): Removed.
5204 * call.c (build_overload_call_real): Invert meaning of last arg to
5205 be require_complete.
d11ad92e 5206 (build_overload_call): Likewise.
4dabb379
MS
5207 * typeck.c (build_x_function_call): Use build_overload_call_real
5208 instead of build_overload_call_maybe.
5209
a50f0918
MS
5210Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
5211
5212 * decl2.c (finish_file): Don't try to emit functions that haven't
eb66be0e 5213 been compiled.
a50f0918
MS
5214
5215Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
5216
5217 * decl2.c (finish_vtable_vardecl): Oops.
5218
5219 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
eb66be0e 5220 Also store the bindings from previous_class_values.
a50f0918
MS
5221 (pop_from_top_level): Restore them.
5222
5223Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
5224
5225 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
eb66be0e 5226 symbol has been referenced.
a50f0918
MS
5227 (finish_file): Re-join synthesis/vtable loop with inline emission
5228 loop, disable inlining when an inline is output.
5229
5230Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
5231
5232 * except.c (init_exception_processing): Setup saved_in_catch.
5233 (push_eh_cleanup): Reset __eh_in_catch.
5234 (expand_start_catch_block): Set __eh_in_catch.
5235
5236Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
5237
5238 * except.c (push_eh_cleanup): Add tracking for whether or not we
5239 have an active exception object.
5240 (expand_builtin_throw): Use it to make sure a rethrow without an
5241 exception object is caught.
5242
5243Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
5244
5245 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
eb66be0e 5246 cache.
a50f0918 5247
809c8c30
JM
5248Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
5249
5250 * decl2.c (finish_file): Also use sentries for vars with
eb66be0e
MS
5251 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
5252 created).
809c8c30
JM
5253
5254 * lex.c (handle_cp_pragma): Disable #pragma
eb66be0e 5255 interface/implementation if SUPPORTS_ONE_ONLY > 1.
809c8c30
JM
5256
5257Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
5258
5259 * method.c (emit_thunk): Wrap default case in
eb66be0e 5260 temporary/permanent_allocation.
809c8c30
JM
5261
5262 * method.c (make_thunk): Use DECL_ONE_ONLY.
5263 (emit_thunk): Call assemble_end_function.
5264
46b02c6d
MS
5265Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
5266
5267 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
d11ad92e 5268 (import_export_decl): Likewise.
46b02c6d
MS
5269 (finish_prevtable_vardecl): Disable vtable hack if
5270 SUPPORTS_ONE_ONLY > 1.
5271
5272Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
5273
5274 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
5275 PREDECREMENT_EXPRs take two arguments, not one.
5276
5277Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
5278
5279 * class.c (build_vtable_entry): Don't build thunks for abstract
eb66be0e 5280 virtuals.
46b02c6d
MS
5281
5282 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
eb66be0e 5283 frontend.
46b02c6d
MS
5284
5285Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
5286
5287 * class.c (set_rtti_entry): Use size_zero_node.
d11ad92e 5288 (build_vtable): Likewise.
46b02c6d
MS
5289
5290Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
5291
5292 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
d11ad92e 5293 (prepare_fresh_vtable): Likewise.
46b02c6d
MS
5294
5295Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
5296
5297 * method.c (emit_thunk): Call mark_used on the target function.
5298
5299 * call.c (build_method_call): Don't warn about pending templates.
5300
c7690c68
JM
5301Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5302
5303 * decl2.c (finish_file): Fix list walking logic.
5304
46b02c6d
MS
5305 * typeck2.c (check_for_new_type): Only warn if -pedantic.
5306
5307Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
5308
5309 * class.c (finish_struct_1): Remove old code for
5310 dont_allow_type_definitions.
d11ad92e 5311 * cp-tree.h: Likewise.
46b02c6d
MS
5312 * spew.c: Make sure cp-tree.h is included before parse.h, so the
5313 definition of flagged_type_tree is found before it is used.
d11ad92e 5314 * lex.c: Likewise.
46b02c6d 5315 * parse.y: Added the ftype member to the type union, and changed a
eb66be0e 5316 number of rules to use it instead of ttype. Added calls to
46b02c6d
MS
5317 check_for_new_type() as appropriate.
5318 * typeck2.c (check_for_new_type): New function for checking
5319 if a newly defined type appears in the specified tree.
5320 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
5321 for check_for_new_type().
5322
67d743fe
MS
5323Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
5324
c7690c68
JM
5325 * decl2.c (finish_file): Only use a sentry if the decl is public.
5326
67d743fe
MS
5327 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
5328 don't pass LOOKUP_ONLYCONVERTING.
5329
5330Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
5331
5332 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
5333 properly keeps track of const and volatile type modifiers.
5334
5335Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
5336
5337 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
5338 * pt.c (comp_template_args): Use it.
5339
5340 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
5341 assemble_external for artificial function decls.
5342
5343 * decl.c (cp_finish_decl): Oops.
5344
5345Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
5346
5347 * decl2.c (import_export_decl): Put static data member templates
eb66be0e
MS
5348 into common storage, or make them weak, depending on whether they
5349 are dynamically or statically initialized.
67d743fe
MS
5350 (get_sentry): New function.
5351 (finish_file): Do import_export_decl for static data members before
5352 building the init/fini functions. Don't init/fini a variable that's
5353 EXTERNAL. Use a sentry for variables in common. Fix mismatching
5354 push/pop_temp_slots.
5355 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
eb66be0e 5356 expand_static_init thang.
67d743fe
MS
5357 * method.c (get_id_2): New function.
5358
5359Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
5360
5361 * parse.y (empty_parms): Make sure we use C++-style prototypes
eb66be0e 5362 when we're declaring member functions.
67d743fe
MS
5363
5364Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
5365
5366 * Makefile.in (CONFLICTS): 16 s/r conflicts.
5367 * parse.y (self_template_type): New nonterminal.
5368
a80e4195
MS
5369Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
5370
5371 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
eb66be0e 5372 name.
a80e4195
MS
5373 * parse.y (base_class.1): Allow 'typename foo::bar'.
5374
5375 * lex.c (check_newline): Remove #pragma code that plays with the
eb66be0e
MS
5376 input stream, since we now deal with tokens. Clear nextchar when
5377 we're done.
a80e4195
MS
5378 (handle_cp_pragma): Use real_yylex.
5379 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
5380 in one place.
5381
5382 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
5383
5384 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
5385
5386Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5387
5388 * parse.y: New token SELFNAME for potential constructor.
5389 * spew.c (yylex): Handle it.
5390 * lex.c (identifier_type): Produce it.
5391
5392 * parse.y (complete_type_name): In :: case, don't push class binding.
d11ad92e 5393 (complex_type_name): Likewise.
a80e4195
MS
5394
5395Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
5396
5397 * typeck.c (build_reinterpret_cast): Handle pointer to member
eb66be0e 5398 functions.
a80e4195
MS
5399
5400Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
f72bbc37
BK
5401
5402 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
eb66be0e 5403 pragmas.
f72bbc37 5404 (check_newline): Put the vtable/unit/implementation/interface pragma
eb66be0e 5405 code into handle_cp_pragma, replacing it with a call.
f72bbc37 5406 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
eb66be0e 5407 args. Get the next token after handling the pragma token.
a80e4195
MS
5408
5409Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
5410
5411 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
d11ad92e 5412 (convert_to_pointer_force): Likewise.
a80e4195
MS
5413
5414 * init.c (build_new): Fix array new without -fcheck-new.
5415
5416Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
5417
5418 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
5419 tree.c: Lose TYPE_NESTED_NAME.
5420
5421 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
5422 as identifiers.
5423
5424 * tree.def: Add VEC_INIT_EXPR.
5425 * expr.c (cplus_expand_expr): Handle it.
5426 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
eb66be0e 5427 the extra file-scope symbol nastiness.
a80e4195
MS
5428
5429Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
5430
5431 * method.c (make_thunk): Thunks are static.
5432 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
5433
5434 * decl2.c (mark_vtable_entries): Emit thunks as needed.
5435 (finish_file): Don't emit them here.
5436
5437Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
5438
5439 * rtti.c (build_dynamic_cast): Handle null pointers.
5440 (ifnonnull): New function.
f72bbc37 5441
6b5fbb55
MS
5442Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
5443
a80e4195 5444 * call.c (build_method_call): Remember the original basetype we
eb66be0e
MS
5445 were called with. Give an error message instead of trying
5446 (incorrectly) to call a non-static member function through a
5447 non-inherited class.
a80e4195 5448
6b5fbb55
MS
5449 * search.c (expand_upcast_fixups): Mark the new fixup as
5450 DECL_ARTIFICIAL.
5451
5452Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5453
5454 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
5455
5456 * class.c (set_rtti_entry): Fix for thunks.
5457
5458 * decl2.c (import_export_decl): Still emit typeinfo fns for
5459 cv-variants of builtin types.
5460
5461 * rtti.c (expand_class_desc): Set up base_info_type_node here.
5462 (init_rtti_processing): Instead of here.
5463
5464Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
5465
5466 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
5467 (build_typeid): Only complain about taking dynamic typeid without
5468 -frtti.
5469
5470 * decl2.c: flag_rtti defaults to 1.
5471
5472 * rtti.c (get_tinfo_var): The general class case is now smaller.
5473 (init_rtti_processing): Pack the latter three fields of base_info
5474 into 32 bits.
5475
5476Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
5477
5478 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
5479
5480Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
5481
5482 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
5483 (push_memoized_context): Split out code to undefer pop_type_level to
5484 (clear_memoized_cache): here.
5485 (pop_memoized_context): We can only handle one layer of deferral of
5486 pop_type_level so clear the cache, if there was a previous level.
5487
5488Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5489
5490 * rtti.c (init_rtti_processing): Build up base_info_type_node.
5491 (expand_class_desc): Use one pointer to an array of base_info
5492 structs, passed using a CONSTRUCTOR.
5493
5494Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
5495
5496 * class.c (build_vbase_path): Remove block extern for
5497 flag_assume_nonnull_objects here.
5498 (build_vfn_ref): Split out functionality into build_vtbl_ref.
5499 (build_vtbl_ref): New routine.
5500 (build_vtable): Set up rtti info here.
5501 (add_virtual_function): Note in CLASSTYPE_RTTI the best
5502 place where we can get the rtti pointers from to avoid having to
5503 search around for a place.
d11ad92e
MS
5504 (finish_base_struct): Likewise.
5505 (finish_struct_1): Likewise. Never create totally new vtables
5506 with totally new vtable pointers for rtti. Disable code to layout
5507 vtable pointers better until we want to break binary
5508 compatibility.
6b5fbb55
MS
5509 * rtti.c (build_headof_sub): New routine to convert down to a
5510 sub-object that has an rtti pointer in the vtable.
5511 (build_headof): Use it. Also, use build_vtbl_ref now to be more
5512 maintainable.
5513 (build_dynamic_cast): Make sure we have saved it, if we need to.
5514 * search.c (dfs_init_vbase_pointers): Disable code that deals with
5515 a more efficient vtable layout, enable later.
5516 * call.c (flag_assume_nonnull_objects): Moved declaration to
5517 * cp-tree.h: here. Declare build_vtbl_ref.
5518 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
5519 function calls that want a tree.
5520
5521Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
5522
5523 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
eb66be0e 5524 other X subobjects in the most derived type. Ack.
6b5fbb55
MS
5525
5526 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
eb66be0e 5527 get_typeid will do it for us.
6b5fbb55
MS
5528 (get_typeid_1): Break out call-building for expand_*_desc to use.
5529 (get_typeid): Call it.
d11ad92e 5530 (expand_*_desc): Likewise.
6b5fbb55 5531 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
eb66be0e 5532 and void *.
6b5fbb55
MS
5533 (init_decl_processing): Lose builtin_type_tdescs lossage.
5534 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
5535
5536Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
5537
5538 * pt.c (tsubst): When calling set_nested_typename, use
eb66be0e
MS
5539 TYPE_NESTED_NAME (current_class_type) instead of
5540 current_class_name.
6b5fbb55 5541
d11ad92e
MS
5542 * decl.c (pushdecl): Likewise.
5543 (pushdecl_class_level): Likewise.
6b5fbb55
MS
5544 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
5545 set_nested_typename.
5546
5547Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
5548
5549 * rtti.c (synthesize_tinfo_fn): Handle arrays.
5550
5551 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
5552
5553Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
5554
5555 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
5556 (init_rtti_processing): Lose bad_cast_type.
5557 (build_dynamic_cast): Use throw_bad_cast.
5558
5559 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
5560
5561 * decl2.c (finish_file): Don't synthesize artificial functions
eb66be0e 5562 that are external and not inline.
6b5fbb55
MS
5563
5564 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
5565
5566 * decl2.c (finish_file): Handle having new inlines added to
eb66be0e 5567 saved_inlines by synthesis.
6b5fbb55
MS
5568
5569 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
5570
5571Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5572
5573 RTTI rewrite to initialize nodes as needed, not require that
5574 users #include <typeinfo>, complete functionality and reduce wasted
5575 space.
5576 * rtti.c (init_rtti_processing): New fn.
5577 (build_typeid): The vtable entry is now a function.
5578 (get_tinfo_var): New fn.
d11ad92e 5579 (get_tinfo_fn): Likewise.
6b5fbb55
MS
5580 (get_typeid): Use it.
5581 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
5582 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
5583 points __rtti_*.
5584 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
5585 (synthesize_tinfo_fn): New fn.
5586 * method.c (build_t_desc_overload): Lose.
5587 (build_overload_with_type): More generic.
5588 * decl.c (init_decl_processing): Call init_rtti_processing.
5589 * class.c (set_rtti_entry): Use get_tinfo_fn.
5590 * decl2.c (mark_vtable_entries): Mark the rtti function.
5591 (finish_prevtable_vardecl): Don't build_t_desc.
5592 (import_export_decl): Handle tinfo functions.
d11ad92e 5593 (finish_file): Likewise.
6b5fbb55
MS
5594 * typeck.c (inline_conversion): New fn.
5595 (build_function_call_real): Use it.
5596 * cp-tree.h: Add decls.
5597
5598 * method.c (hack_identifier): Also convert component_refs from
eb66be0e 5599 references.
6b5fbb55
MS
5600
5601 * lex.c (cons_up_default_function): Use the type, not the name, in
eb66be0e 5602 declspecs.
6b5fbb55
MS
5603
5604 * decl2.c (import_export_vtable): Fix weak vtables.
5605
5606Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
5607
5608 * search.c (get_base_distance_recursive): Fix access checks for
eb66be0e 5609 protected bases.
6b5fbb55
MS
5610
5611Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5612
5613 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
5614 cp-tree.h.
5615 (convert_harshness): Add prototypes wrapped by PROTO.
5616 * decl2.c (grok_function_init): Likewise.
5617 (do_toplevel_using_decl): Change to void return type.
5618 * class.c (build_vtable_entry): Remove decl of make_thunk.
5619 (merge_overrides): Fix order of arg definitions.
5620 (finish_vtbls): Likewise.
5621 (fixup_vtable_deltas): Likewise.
5622 (modify_all_direct_vtables): Likewise.
5623 (modify_all_indirect_vtables): Likewise.
5624 * search.c (get_base_distance_recursive): Likewise.
5625 (get_abstract_virtuals_1): Likewise.
5626 (fixup_virtual_upcast_offsets): Likewise.
5627 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
5628 * init.c (perform_member_init): Fix order of arg definitions.
5629 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
5630 * cp-tree.h (make_thunk): Add decl.
5631 (overload_template_name, push_template_decl): Add decls.
5632 (do_toplevel_using_decl): Change to void return type.
5633 (vec_binfo_member): Add decl.
5634
cdf5b885
MS
5635Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5636
5637 * typeck.c (mark_addressable, convert_for_assignment,
5638 convert_for_initialization, pointer_int_sum, pointer_diff,
5639 unary_complex_lvalue): Add prototypes wrapped by PROTO.
5640 (convert_sequence): #if 0 fn decl, since definition also is.
5641
5642Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
5643
5644 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
5645 cast to pointer types for type searching.
5646
5647Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5648
5649 * typeck.c (get_delta_difference): Use cp_error, not error, in the
5650 case where BINFO == 0.
5651
5652Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
5653
5654 * call.c (build_method_call): Fix wording of error messages so
5655 constructors come out right.
5656
5657Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
5658
5659 * decl.c (push_overloaded_decl): Don't warn about hidden
5660 constructors when both the type and the function are declared
5661 in a system header file.
5662
c91a56d2
MS
5663Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
5664
5665 * class.c (finish_struct_1): Propagate the TYPE_PACKED
5666 flag for the type to the type's fields.
5667
5668Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5669
5670 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
5671
5672Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
5673
5674 * class.c (base_info, finish_base_struct): Replace
5675 needs_virtual_dtor with base_has_virtual.
5676
5677 (finish_struct_1): Remove the old code that tried to make default
eb66be0e
MS
5678 destructors virtual. Use base_has_virtual when checking if we need
5679 to add a vtable entry for the rtti code.
c91a56d2
MS
5680
5681Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
5682
5683 * pt.c (push_template_decl): Complain about template decl with
eb66be0e 5684 inappropriate declaration.
c91a56d2
MS
5685
5686Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
5687
5688 * typeck.c (build_x_unary_op): Remove bogus check for taking
5689 the address of a member function.
5690
5691Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
5692
5693 * parse.y (constructor_declarator): Only push the class if
5694 we are not already in the class.
5695
5696Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
6752b7d4
JL
5697
5698 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
5699 Add additional argument to INIT_CUMULATIVE_ARGS.
5700
c91a56d2
MS
5701Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
5702
5703 * decl.c (shadow_tag): Fix error about anon union with methods.
5704
5705 * parse.y (self_reference): Only generate a self-reference if this
eb66be0e 5706 is a non-template class.
c91a56d2
MS
5707 (opt.component_decl_list): Only use it if it was generated.
5708
5709 * parse.y (component_decl_1): Use constructor_declarator.
d11ad92e
MS
5710 (fn.def2): Likewise.
5711 (notype_component_declarator0): Likewise.
c91a56d2
MS
5712
5713Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
5714
5715 * typeck.c (build_x_unary_op): Add checks for taking the address
5716 of a TARGET_EXPR or of a member function, and give appropriate
5717 warnings.
5718
5719Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
5720
5721 * pt.c (process_template_parm): Allow template type parms to be
eb66be0e 5722 used as types for template const parms.
c91a56d2
MS
5723
5724Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
5725
5726 * init.c (expand_vec_init): Ensure the eh cleanups are on the
5727 function_obstack.
5728
5729Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
5730
5731 * decl.c (lookup_name_real): Be even more picky about the
eb66be0e 5732 ambiguous lookup warning.
c91a56d2
MS
5733 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
5734 * parse.y (constructor_declarator): Rather than here.
5735
5736 * parse.y (constructor_declarator): New nonterminal.
5737 (fn.def1): Use it.
d11ad92e 5738 (explicit_instantiation): Likewise.
c91a56d2
MS
5739
5740Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5741
5742 Add implicit declaration of class name at class scope.
5743 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
5744 * parse.y (self_reference): New nonterminal.
5745 (opt.component_decl_list): Use it.
5746 (fn.def1): Add nested_name_specifier type_name cases.
5747 * class.c (build_self_reference): New function.
5748 (finish_struct): Handle access_default later, move self-reference
5749 decl to the end.
5750 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
5751 * cp-tree.h: Adjust.
5752
5753 * pt.c (do_function_instantiation): Separate handling of member
eb66be0e 5754 functions and non-member functions properly.
c91a56d2
MS
5755
5756Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
5757
5758 * pt.c (process_template_parm): Improve error for 'volatile class K'.
5759
5760 * class.c (finish_struct_1): Check the right slot for destructors.
5761
5762 * decl.c (start_enum): Complain about enum templates.
5763
5764Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
5765
5766 * init.c (resolve_offset_ref): Offset pointers to member data by one.
d11ad92e 5767 * typeck.c (unary_complex_lvalue): Likewise.
c91a56d2
MS
5768
5769Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
5770
5771 * typeck.c (c_expand_return): Check for a returned local
5772 array name, similar to the check for an ADDR_EXPR.
5773
5774Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
5775
5776 * decl.c (cp_finish_decl): Don't build cleanups for static
eb66be0e 5777 variables here.
c91a56d2
MS
5778
5779Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
5780
5781 * typeck.c (build_modify_expr): Fix error messages to be more
5782 accurate.
5783 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
5784 assignment operators.
d11ad92e 5785 * error.c (assop_as_string): Likewise. Add support for `%Q' for
c91a56d2
MS
5786 assignment operators.
5787
909e536a
MS
5788Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
5789
c91a56d2 5790 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
eb66be0e
MS
5791 give an error if initialized. Pedwarn about nested type with the
5792 same name as its enclosing class.
c91a56d2 5793
909e536a
MS
5794 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
5795
5796 * typeck.c (require_complete_type): Be sure to instantiate the
eb66be0e 5797 MAIN_VARIANT of the type.
909e536a
MS
5798
5799 * decl2.c (finish_file): Instantiate pending templates before
eb66be0e 5800 processing static constructors and destructors.
909e536a
MS
5801
5802 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
eb66be0e 5803 unless at_eof.
909e536a
MS
5804
5805Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
5806
5807 * decl2.c (delete_sanity): If error_mark_node is passed
5808 in as an expression, quit while we're ahead.
5809
5810 * decl.c (grokdeclarator): Give an error message if `friend'
5811 is combined with any storage class specifiers.
5812
fc378698
MS
5813Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
5814
5815 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
eb66be0e 5816 definition of nonexistent nested type.
fc378698
MS
5817
5818 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
eb66be0e 5819 not to say 'typedef'.
fc378698
MS
5820
5821Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5822
5823 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
5824 * search.c (dfs_walk, dfs_init_vbase_pointers,
5825 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
5826 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
5827
5828Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
5829
5830 * except.c (build_throw): Support minimal parse.
5831 * pt.c (tsubst_copy): Support THROW_EXPR.
d11ad92e 5832 * decl2.c (build_expr_from_tree): Likewise.
fc378698
MS
5833
5834 * pt.c (mangle_class_name_for_template): Always allocate
eb66be0e 5835 scratch_firstobj.
fc378698
MS
5836
5837Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
5838
5839 * cvt.c (cp_convert_to_pointer): Give an appropriate error
5840 when trying to cast from an incomplete type.
5841
5842Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5843
5844 * pt.c (instantiate_class_template): Don't bother setting up
eb66be0e
MS
5845 CLASSTYPE_TAGS explicitly, as the nested types will add
5846 themselves.
fc378698
MS
5847
5848Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
5849
5850 * decl.c (shadow_tag): Remove old error check for usage of
5851 an enum without a previous declaration.
5852 (xref_tag): Add error message about usage of enums without a
5853 previous declaration.
5854
5855Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
5856
5857 * lex.c (do_identifier): Only do name consistency check if we're
eb66be0e 5858 parsing.
fc378698
MS
5859
5860 * pt.c (push_template_decl): Don't crash if we get a member defn
5861 that doesn't match.
5862
5863 * decl.c (xref_tag_from_type): New function to do an xref without
eb66be0e 5864 always having to figure out code_type_node.
fc378698
MS
5865 * cp-tree.h: Declare it.
5866 * pt.c (instantiate_class_template): Use it for friend classes.
eb66be0e 5867 (lookup_template_class): Use it.
fc378698
MS
5868
5869 * typeck2.c (build_functional_cast): Pull out a single parm before
eb66be0e 5870 passing it to build_c_cast.
fc378698
MS
5871
5872Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
5873
5874 * expr.c (do_case): Give an error message if a pointer is
5875 given as a case value.
5876
5877Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
5878
5879 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
eb66be0e 5880 an overload list.
fc378698
MS
5881
5882 * lex.c (cons_up_default_function): Really, now, interface hackery
eb66be0e 5883 does not apply to synthesized methods.
fc378698
MS
5884
5885Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
5886
5887 * call.c (build_method_call): Ctors and dtors now have special names
5888 with respect to lookups.
d11ad92e
MS
5889 * class.c (add_method): Likewise.
5890 (grow_method): Likewise.
5891 (finish_struct_methods): Likewise.
5892 (warn_hidden): Likewise.
5893 (finish_struct_1): Likewise.
5894 * cvt.c (convert_to_reference): Likewise.
5895 (convert_to_aggr): Likewise.
5896 (cp_convert): Likewise.
5897 * decl2.c (check_classfn): Likewise.
5898 * init.c (expand_member_init): Likewise.
5899 (expand_default_init): Likewise.
5900 (expand_aggr_init_1): Likewise.
5901 (build_offset_ref): Likewise.
5902 (build_new): Likewise.
5903 (build_delete): Likewise.
5904 * lex.c (do_inline_function_hair): Likewise.
5905 * search.c (lookup_field_1): Likewise.
5906 (lookup_fnfields_here): Likewise.
5907 (lookup_field): Likewise.
5908 (lookup_fnfields): Likewise.
5909 (get_virtual_destructor): Likewise.
5910 (dfs_debug_mark): Likewise.
5911 (dfs_pushdecls): Likewise.
5912 (dfs_compress_decls): Likewise.
5913 * tree.c (layout_basetypes): Likewise.
5914 * typeck.c (build_component_ref): Likewise.
5915 (build_x_function_call): Likewise.
5916 (build_modify_expr): Likewise.
5917 (convert_for_initialization): Likewise.
5918 (build_functional_cast): Likewise.
5919 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
fc378698
MS
5920 (CTOR_NAME): New.
5921 (DTOR_NAME): New.
5922 * decl.c (ctor_identifier): New.
5923 (dtor_identifier): New.
5924 (init_decl_processing): Set them.
5925
5926Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
5927
5928 * typeck.c (build_component_ref): Don't get confused by fields whose
5929 context has no type name, like pointer to member functions.
5930
5931Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
5932
5933 * decl.c (grokdeclarator): Handle typedef without declarator.
5934
5935 * pt.c (tsubst): Handle SCOPE_REF in declarator.
5936
5937 * parse.y (bad_parm): Catch another case of missing `typename'.
5938
5939 * lex.c (yyprint): Handle TYPE_DECLs.
5940
5941 * decl.c (start_function): Don't try to be clever.
5942
5943 * lex.c: Lose compiler_error_with_decl.
5944 * typeck2.c: Lose error_with_aggr_type.
5945 (incomplete_type_error): Use cp_* instead of old functions.
d11ad92e
MS
5946 (readonly_error): Likewise.
5947 * typeck.c (convert_arguments): Likewise.
5948 * search.c (lookup_nested_field): Likewise.
5949 * method.c (make_thunk): Likewise.
5950 * decl.c (grokparms): Likewise.
fc378698
MS
5951 * cp-tree.h: Update.
5952
5953 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
eb66be0e 5954 and value.
fc378698
MS
5955
5956Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
5957
5958 * method.c (build_opfncall): When deleting a pointer to an
5959 array, build a new pointer to the tree past any ARRAY_TYPE
5960 nodes.
5961
5962Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5963
5964 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
5965
5966Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
5967
5968 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
eb66be0e 5969 and ! DECL_INLINE.
fc378698
MS
5970
5971 * decl.c (finish_function): Don't set nested based on
eb66be0e 5972 hack_decl_function_context.
fc378698 5973 * parse.y (function_try_block): Check for nested function.
d11ad92e 5974 (pending_inlines): Likewise.
fc378698
MS
5975
5976 * decl2.c (build_expr_from_tree): If a unary op already has a
eb66be0e 5977 type, just return it.
fc378698
MS
5978
5979 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
5980
5981 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
5982 (finish_file): Check the return value of walk_vtables.
5983 (finish_prevtable_vardecl): Return int.
d11ad92e
MS
5984 (finish_vtable_vardecl): Likewise.
5985 (prune_vtable_vardecl): Likewise.
5986 * lex.c (set_vardecl_interface_info): Likewise.
fc378698
MS
5987 * cp-tree.h: Adjust return types.
5988
5989 * class.c (delete_duplicate_fields_1): Don't complain about
eb66be0e 5990 duplicate nested types if they're the same type.
fc378698
MS
5991 (finish_struct): Remove check for duplicate.
5992 * decl2.c (grokfield): Don't check for typedef of anonymous type.
5993
5994Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
5995
5996 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
5997
5998 * decl.c (grokdeclarator): Lose special handling of class-level
eb66be0e
MS
5999 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
6000 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
fc378698
MS
6001
6002 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
6003
6004 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
6005
6006 * search.c (compute_access): Fix handling of anonymous union
eb66be0e 6007 members.
fc378698 6008 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
eb66be0e 6009 from anonymous unions to their members.
fc378698
MS
6010
6011 * typeck.c (build_x_function_call): For static member functions,
eb66be0e 6012 hand off to build_member_call.
fc378698
MS
6013
6014Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
6015
6016 * typeck.c (build_component_ref): Handle OFFSET_REFs.
6017
6018 * init.c (expand_vec_init): Fix init == 0 case.
6019
6020Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
6021
6022 * init.c (build_new): Pedwarn about init and array new.
eb291d05 6023 (expand_vec_init): Handle lists, use convert_for_initialization.
fc378698
MS
6024
6025 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
eb66be0e 6026 when converting to an aggregate type.
fc378698
MS
6027 * cvt.c (cp_convert): Pass it through.
6028
6029 * typeck.c (build_conditional_expr): Handle user-defined
eb66be0e 6030 conversions to slightly different types.
fc378698
MS
6031
6032 * decl.c (grokdeclarator): Force an array type in a parm to be
eb66be0e 6033 permanent.
fc378698
MS
6034
6035 * decl2.c (do_using_directive): Sorry.
d11ad92e 6036 (do_namespace_alias): Likewise.
fc378698
MS
6037 * lex.c (real_yylex): Warn about using the `namespace' keyword.
6038
6039Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
6040
6041 * parse.y (datadef): Move call to note_list_got_semicolon up.
6042
934c6b13
MS
6043Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
6044
6045 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
6046
6047Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
6048
6049 * decl.c (cp_finish_decl): The exception regions have to be
6050 nested, not overlapping. We start the exception region for a
6051 decl, after it has been fully built, and all temporaries for it
6052 have been cleaned up.
6053
6054Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
6055
6056 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
6057
e76a2646
MS
6058Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
6059
6060 * tree.def: Add RETURN_INIT.
6061 * pt.c (instantiate_decl): Handle RETURN_INIT.
6062 * decl.c (store_return_init): Handle minimal_parse_mode.
6063
6064 * tree.c (cp_build_type_variant): Just return an error_mark_node.
6065 * decl.c (make_typename_type): Don't try to get the file and line
eb66be0e 6066 of an identifier.
e76a2646
MS
6067 * typeck.c (comptypes): Handle TYPENAME_TYPE.
6068
6069Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
6070
6071 * decl.c (poplevel): Make sure we clear out and restore old local
6072 non-VAR_DECL values by default when they go out of scope.
6073
6074Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
6075
6076 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
eb66be0e 6077 referring to addresses of variables and functions.
e76a2646
MS
6078
6079 * error.c (dump_expr): Support SIZEOF_EXPR.
6080
6081 * init.c (do_friend): Use the return value of check_classfn.
6082
6083 * typeck.c (convert_arguments): Call complete_type.
6084
6085 * method.c (hack_identifier): After giving an error, set value to
eb66be0e 6086 error_mark_node.
e76a2646
MS
6087
6088Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
6089
6090 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
eb66be0e 6091 lossage for local classes.
e76a2646
MS
6092 * cp-tree.h: Declare it.
6093 * decl.c (lookup_name_real): Evil, painful hack for local classes.
6094 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
6095 Use hack_decl_function_context.
6096 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
6097 (start_function): Use hack_decl_function_context.
d11ad92e
MS
6098 (finish_function): Likewise.
6099 * method.c (synthesize_method): Likewise.
6100 * lex.c (process_next_inline): Likewise.
6101 (do_pending_inlines): Likewise.
e76a2646 6102 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
eb66be0e 6103 done with it.
e76a2646
MS
6104
6105Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
6106
6107 * sig.c (build_signature_pointer_or_reference_type): Align
6108 signature pointers/references on 8-byte boundaries so they can be
6109 grabbed 2 words at a time on a Sparc.
6110
6111Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
6112
6113 * method.c (hack_identifier): Requiring a static chain is now a
eb66be0e 6114 hard error.
e76a2646 6115 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
eb66be0e 6116 functions.
e76a2646
MS
6117
6118Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
6119
6120 * init.c (build_offset_ref): Call complete_type.
6121
6122 * decl.c (pop_from_top_level): Always pop previous_class_type.
6123
6124 * parse.y: Handle multiple decls in a for-init-statement.
d11ad92e 6125 * pt.c (tsubst_expr): Likewise.
e76a2646
MS
6126
6127 * pt.c (tsubst): Use tsubst_expr for the second operand of an
eb66be0e 6128 ARRAY_REF.
e76a2646
MS
6129
6130 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
6131 (poplevel_class): Set it here.
6132 (pop_from_top_level): Pop it here if we're returning to class scope.
6133 * class.c (pushclass): Don't set it here.
6134
6135 * decl.c (maybe_push_to_top_level): Save current_template_parms,
eb66be0e 6136 and clear it if !pseudo.
e76a2646
MS
6137 (pop_from_top_level): Restore it.
6138
6139 * decl2.c (finish_file): Push the dummy each time we walk the list
eb66be0e 6140 of vtables.
e76a2646
MS
6141
6142 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
eb66be0e 6143 something for CAST_EXPR.
e76a2646
MS
6144
6145Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
6146
6147 * cvt.c (cp_convert): Warn about implicit conversion of the
6148 address of a function to bool, as it is always true.
6149
6150Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
6151
6152 * typeck.c (c_expand_return): Fix warning for local externs returned.
6153
6154Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
6155
6156 * tree.c (mapcar): Propagate const and volatile properly.
6157
6158 * typeck.c (complete_type): Be sure to instantiate the
eb66be0e 6159 MAIN_VARIANT of the type.
e76a2646
MS
6160
6161 * method.c (synthesize_method): Class interface hackery does not
6162 apply to synthesized methods.
6163
6164Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
6165
6166 * pt.c (comp_template_args): Use comptypes rather than just
eb66be0e 6167 checking for TEMPLATE_TYPE_PARM equivalence.
e76a2646
MS
6168
6169 * typeck.c (build_x_function_call): Call complete_type before
eb66be0e 6170 checking TYPE_OVERLOADS_CALL_EXPR.
e76a2646 6171
7ea63af7
MH
6172Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
6173
6174 * g++.c (main): Check also for new define ALT_LIBM.
6175
ec255269
MS
6176Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
6177
6178 * pt.c (instantiate_class_template): If we don't have a pattern
eb66be0e 6179 yet, that's OK.
ec255269
MS
6180 (coerce_template_parms): If we see a local class, bail.
6181
6182 * decl.c (grok_reference_init): Make sure there's a type before
eb66be0e 6183 checking its code.
ec255269
MS
6184
6185 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
d11ad92e 6186 (push_template_decl): Likewise.
ec255269
MS
6187
6188 * parse.y (named_class_head): Set
eb66be0e 6189 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
ec255269
MS
6190
6191 * decl.c (xref_tag): Diagnose redeclaration of template
eb66be0e 6192 type-parameter name.
ec255269
MS
6193
6194 * error.c (dump_type): Handle anonymous template type parms.
6195
6196 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
eb66be0e 6197 TYPE_STUB_DECL.
d11ad92e 6198 (coerce_template_parms): Likewise.
ec255269
MS
6199
6200Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
6201
6202 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
6203 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
6204
6205Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
6206
6207 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
eb66be0e 6208 before trying to get its STUB_DECL.
d11ad92e 6209 (coerce_template_parms): Likewise.
ec255269
MS
6210
6211 * parse.y (template_type_parm): If they didn't use 'class',
eb66be0e 6212 pretend they did after giving an error.
ec255269
MS
6213
6214 * pt.c (coerce_template_parms): Diagnose use of local class.
6215
6216 * decl.c (grok_reference_init): Use instantiate_type.
6217
6218 * error.c (dump_expr): Handle TEMPLATE_DECLs.
6219
6220 * parse.y (named_class_head): Diagnose mismatching types and tags.
6221
6222 * decl.c (pushdecl): Type decls and class templates clash with
eb66be0e 6223 artificial type decls, not hide them.
ec255269
MS
6224
6225 * decl.c (redeclaration_error_message): Diagnose redefinition of
eb66be0e 6226 templates properly.
ec255269
MS
6227 (duplicate_decls): Diagnose disallowed overloads for template
6228 functions, too.
6229
6230 * decl.c (start_decl): Call complete_type before checking for a
eb66be0e 6231 destructor.
ec255269
MS
6232
6233 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
6234
6235 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
6236
5566b478
MS
6237Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
6238
ec255269 6239 * decl.c (grok_op_properties): Don't check for operator++(int) in
eb66be0e 6240 a template.
ec255269
MS
6241
6242 * tree.c (perm_manip): Return a copy of variable and function
eb66be0e 6243 decls with external linkage.
ec255269
MS
6244
6245 * tree.def: Change some of the min tree codes to type "1".
6246 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
6247 * method.c (build_overload_int): Emit something arbitrary for
eb66be0e 6248 anything but an INTEGER_CST if we're in a template.
ec255269
MS
6249
6250 * decl.c (cp_finish_decl): Call complete_type before deciding
eb66be0e 6251 whether or not to lay out the decl.
ec255269 6252
5566b478
MS
6253 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
6254
6255Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
6256
6257 * typeck2.c (build_x_arrow): Call complete_type.
6258
6259 * pt.c (add_pending_template): Broken out.
eb66be0e
MS
6260 (lookup_template_class): If -fexternal-templates, call it for all
6261 the methods of implemented types.
5566b478
MS
6262 (instantiate_class_template): Instead of instantiating them here.
6263 (instantiate_decl): Handle -fexternal-templates earlier.
6264
6265Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6266
6267 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
6268 memoized lookup stuff inside GATHER_STATISTICS.
6269
6270Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
6271
6272 * decl.c (start_decl): Complain about array of incomplete type
6273 here.
6274 (grokdeclarator): Not here.
6275
6276 * parse.y (template_parm): Expand full_parm inline so we can set
eb66be0e 6277 the rule's precedence.
5566b478
MS
6278
6279 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
6280 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
6281 * decl2.c (grokbitfield): Don't check for integer constant here.
6282 * class.c (finish_struct_1): Check here.
6283
6284 * decl.c (define_label): Make the min decl go on permanent_obstack.
6285
6286 * pt.c (unify): Don't handle CONST_DECLs.
6287 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
d11ad92e 6288 (tsubst_copy): Likewise.
5566b478
MS
6289
6290 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
eb66be0e 6291 CONST_DECL for a template parm.
5566b478
MS
6292
6293Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
6294
6295 * decl.c (grokdeclarator): Complain about array of incomplete type
6296 here.
6297 (start_decl_1): Not here.
6298
6299 * pt.c (tsubst): Handle pointer-to-function declarators.
6300
6301 * method.c (hack_identifier): If pedantic, diagnose local class
eb66be0e 6302 methods that require a static chain.
5566b478
MS
6303
6304 * decl.c (grok_op_properties): No longer static.
6305 * cp-tree.h: Declare it.
6306 * pt.c (tsubst): Call it for operators.
6307 Use tsubst_copy for TREE_VECs.
6308
6309 * parse.y (template_arg): The expr has precedence like '>'.
6310
6311Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
6312
6313 * pt.c (coerce_template_parms): Don't coerce an expression using
eb66be0e 6314 template parms.
5566b478
MS
6315 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
6316 (tsubst): Don't use build_index_2_type if the max_value uses template
6317 parms.
6318 * method.c (build_overload_int): Emit something arbitrary for an
eb66be0e 6319 expression using template parms.
5566b478
MS
6320
6321 * parse.y (template_close_bracket): New non-terminal to catch use
eb66be0e 6322 of '>>' instead of '> >' in template class names.
5566b478
MS
6323 (template_type): Use it.
6324 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
6325
6326 * tree.def: Add CAST_EXPR.
6327 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
eb66be0e 6328 CONVERT_EXPR for minimal_parse_mode.
d11ad92e
MS
6329 * typeck.c (build_c_cast): Likewise.
6330 * pt.c (tsubst_copy): Likewise.
6331 * decl2.c (build_expr_from_tree): Likewise.
6332 * error.c (dump_expr): Likewise.
5566b478
MS
6333
6334Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6335
6336 * except.c (SetTerminate, SetUnexpected): Put back global vars.
6337 (init_exception_processing): Put back decl/init of
6338 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
6339 fns from libstdc++.
6340
6341 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
6342 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
6343 Delete unused fns.
6344 * cp-tree.h (declare_uninstantiated_type_level,
6345 uninstantiated_type_level_p): Delete prototypes.
6346
6347Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
6348
6349 * pt.c (tsubst_expr): Add default return.
6350
6351Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6352
6353 * error.c (fndecl_as_string): Delete unused arg CNAME.
6354 * sig.c (build_signature_table_constructor,
6355 build_signature_method_call): Fix calls.
6356
6357 * class.c (the_null_vtable_entry): Delete var definition.
6358 (init_class_processing): Delete tree the_null_vtable_entry init.
6359 * decl.c (no_print_{functions, builtins}): Declare as static.
6360 (__tp_desc_type_node): #if 0 var definition.
6361 (init_type_desc): #if 0 init of __tp_desc_type_node.
6362 (vb_off_identifier): Move var decl into init_decl_processing.
6363 (current_function_assigns_this): Declare as static.
6364 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
6365 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
6366 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
6367 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
6368 * init.c (BI_header_type, BI_header_size): Declare as static.
6369 * pt.c (template_classes): Delete unused var.
6370 (add_pending_template): Delete decl for non-existent fn.
6371 (lookup_template_class): Delete vars CODE and TAG_CODE.
6372 (instantiate_template): Delete unused var TARGS.
6373 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
6374 Delete decls.
6375 (__tp_desc_type_node): #if 0 var decl.
6376 (fndecl_as_string): Fix prototype.
6377
6378Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
6379
6380 * tree.def: Add GOTO_STMT.
6381 * pt.c (tsubst_expr): Support goto and labels.
6382 * decl.c (define_label): Support minimal parsing.
d11ad92e 6383 * parse.y (simple_stmt): Likewise.
5566b478
MS
6384
6385Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6386
6387 * xref.c (GNU_xref_member): Only define/set var I if
6388 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
6389 used.
6390 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
6391 (GNU_xref_end): Fix call.
6392 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
6393 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
6394
6395 * tree.c (build_exception_variant): Delete unused vars I, A, T,
6396 T2, and CNAME.
6397 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
6398 (mapcar): Delete unused var CODE.
6399 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
6400 (break_out_cleanups): Fix call.
6401 (bot_manip): Likewise.
6402 * call.c (build_method_call): Likewise.
6403 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
6404 Likewise.
6405 * typeck.c (unary_complex_lvalue, build_modify_expr,
6406 convert_for_initialization): Likewise.
6407 * typeck2.c (build_functional_cast): Likewise.
6408 * cp-tree.h (build_cplus_new): Fix prototype.
6409
6410 * repo.c (open_repo_file): Delete unused var Q.
6411 (repo_compile_flags, repo_template_declared,
6412 repo_template_defined, repo_class_defined, repo_inline_used,
6413 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
6414 (repo_get_id, repo_vtable_used): Declare as static.
6415 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
6416 prototypes.
6417
6418Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
6419
6420 * parse.y (pending_inlines): Add function_try_block case.
6421
6422 * pt.c (unify): Fix for template const parms.
6423
6424Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6425
6426 * lex.c (extract_interface_info): Delete forward decl.
6427 (default_copy_constructor_body, default_assign_ref_body): Delete
6428 decls for non-existent functions.
6429 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
6430 (init_lex): Delete setting them.
6431 (cons_up_default_function): Delete unused vars FUNC_BUF,
6432 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
6433 #if 0'd synth code.
6434 (toplevel, expression_obstack): Delete unused extern decls.
6435 (tree_node_kind): Delete unused enum.
6436 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
6437 GATHER_STATISTICS.
6438 (tree_node_kind_names): Delete unused extern decl.
6439 (synth_obstack): Delete unused var.
6440 (init_lex): Don't set it.
6441 (init_parse): Add decl before use.
6442 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
6443 (current_unit_{name, language}): Delete unused vars.
6444 (check_newline): Don't bother setting them, just accept the #pragma.
6445 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
6446 (current_unit_{name, language}): Delete decls.
6447
6448 * search.c: Wrap all of the memoized functions, macros, and
6449 variables inside #ifdef GATHER_STATISTICS.
6450 (lookup_field, lookup_fnfields): Likewise.
6451 (init_search_processing): Likewise.
6452 (reinit_search_statistics): Wrap whole function.
6453 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
6454
6455 * decl.c (finish_function): Only call pop_memoized_context if
6456 GATHER_STATISTICS is defined.
6457 (start_function): Likewise for push_memoized_context.
6458 * class.c (pushclass, popclass): Likewise.
6459
6460 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
6461 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
6462
6463 * cvt.c (cp_convert): Delete unused local var FORM.
6464 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
6465 prototypes.
6466
6467Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
6468
6469 * pt.c (do_poplevel): Oops; really return what we get from
eb66be0e 6470 poplevel this time.
5566b478
MS
6471
6472Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6473
6474 * cp-tree.h (is_aggr_type): Add prototype.
6475
6476 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
6477 * method.c ({push,pop}_cp_function_context): Delete decls.
6478 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
6479 (SetUnexpected, SetTerminate): Delete unused vars.
6480 (init_exception_processing): Don't set SetUnexpected or
6481 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
6482 (output_exception_table_entry): Delete unused array LABEL.
6483 (expand_internal_throw): Delete unused var PARAMS.
6484 (expand_start_catch_block): Delete unused var CLEANUP.
6485 (emit_exception_table): Delete unused var EH_NODE_DECL.
6486 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
6487 GOTO_UNWIND_AND_THROW. Don't set them.
6488 (end_eh_unwinder): Add top decl.
6489 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
6490 (exception_section, push_rtl_perm, do_function_call,
6491 lang_interim_eh, push_eh_cleanup, eh_outer_context,
6492 expand_end_eh_spec, end_eh_unwinder): Declare as static.
6493 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
6494 throw_used): Likewise.
6495 * cp-tree.h (expand_end_eh_spec): Delete prototype.
6496
6497 * search.c (dfs_mark, dfs_mark_vtable_path,
6498 dfs_unmark_vtable_path, dfs_mark_new_vtable,
6499 dfs_unmark_new_vtable, dfs_clear_search_slot,
6500 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
6501 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
6502 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
6503 functions.
6504 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
6505 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
6506 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
6507 Only define #ifdef GATHER_STATISTICS.
6508 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
6509 is defined.
6510 (vbase_decl): Delete var definition.
6511 (init_search): Delete old decl.
6512 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
6513 never actually used.
6514 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
6515 (get_base_distance_recursive): Delete unused fourth arg
6516 BASETYPE_PATH. Fix call .
6517 (get_base_distance): Fix call.
6518 (push_class_decls): Delete unused var ID.
6519 (make_memoized_table_entry): Declare as static.
6520 (breadth_first_search): Declare as static.
6521 (tree_has_any_destructor_p): Declare as static.
6522 (pop_class_decls): Delete unused arg pop_class_decls.
6523 * class.c (popclass): Fix call to pop_class_decls.
6524 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
6525 tree_has_any_destructor_p): Delete prototypes.
6526
6527 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
6528 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
6529 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
6530 (build_user_desc): Delete unused var T.
6531 (build_class_desc): Delete unused vars T and OFF.
6532 (build_t_desc): Delete unused var NAME_STRING.
6533 (build_headof): Make static.
6534 (get_bad_cast_node): Likewise.
6535 (get_def_to_follow): Likewise.
6536 * cp-tree.h (init_type_desc): Add prototype.
6537 (build_headof): Remove prototype.
6538
6539Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
6540
6541 * pt.c (tsubst): Only look for matching decls at file scope for
eb66be0e 6542 non-member functions.
5566b478
MS
6543
6544 * call.c (build_scoped_method_call): Handle scoped destructor
eb66be0e 6545 calls in templates.
5566b478
MS
6546
6547 * decl.c (*_top_level): Also save previous_class_values.
6548
6549 * pt.c (tsubst_expr): Support do {} while loops.
d11ad92e
MS
6550 * parse.y (simple_stmt): Likewise.
6551 * tree.def: Likewise.
5566b478
MS
6552
6553 * method.c (build_overload_identifier): For a class nested in a
eb66be0e
MS
6554 template class, don't mangle in the template parms from our
6555 context.
5566b478
MS
6556
6557 * lex.c, cp-tree.h: Remove support for template instantiations in
eb66be0e 6558 the pending_inlines code.
5566b478
MS
6559 * pt.c: Remove dead functions and unused arguments.
6560 (uses_template_parms): TYPENAME_TYPEs always use template parms.
6561 * parse.y: Stop passing anything to end_template_decl.
6562 * tree.c (print_lang_statistics): Only print tinst info #ifdef
eb66be0e 6563 GATHER_STATISTICS.
5566b478
MS
6564
6565Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6566
6567 * init.c (expand_recursive_init{,_1}): Delete decls.
6568 (sort_member_init): Delete unused var INIT.
6569 (emit_base_init): Delete unused var X.
6570 (build_offset_ref): Delete unused var CNAME.
6571 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
6572 (emit_base_init): Delete unused local var BASE. Delete extern
6573 decl of IN_CHARGE_IDENTIFIER.
6574 (build_delete): Delete unused local var VIRTUAL_SIZE.
6575
6576 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
6577 (build_delete): Fix call.
6578 * decl2.c (delete_sanity): Likewise.
6579 * cp-tree.h (build_vec_delete): Update prototype.
6580
6581 * typeck.c (common_base_type): Delete unused var TMP.
6582 (build_binary_op): Delete local var ARGS_SAVE.
6583 (build_array_ref): Delete unused var ITYPE.
6584 (c_expand_return): Delete unused var USE_TEMP.
6585
6586 * typeck.c (compexcepttypes): Delete unused arg STRICT.
6587 (comptypes): Fix calls.
6588 * decl.c (duplicate_decls): Likewise.
6589 * cp-tree.h (compexcepttypes): Delete extra arg.
6590
6591 * decl2.c (check_classfn): Delete unused second arg CNAME.
6592 * decl.c (start_decl, grokfndecl): Fix calls.
6593 * init.c (do_friend): Likewise.
6594 * cp-tree.h (check_classfn): Update prototype.
6595
6596 * cp-tree.h (signature_error, import_export_vtable,
6597 append_signature_fields, id_in_current_class, mark_used,
6598 copy_assignment_arg_p): Add decls.
6599 * decl2.c (mark_used): Delete decl.
6600
6601 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
6602
6603 * class.c (get_vtable_entry): Diable unused function.
6604 (doing_hard_virtuals): Delete unused static global var.
6605 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
6606 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
6607 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
6608 (modify_one_vtable): Delete unused var OLD_RTTI.
6609 (finish_struct_anon): Delete unused vars OFFSET and X.
6610 (finish_struct_bits): Delete unused var METHOD_VEC.
6611 (get_basefndecls): Delete unused var PURPOSE. Delete unused
6612 for-scope local variable METHODS.
6613
6614 * call.c (user_harshness): Delete unused/unneeded arg PARM.
6615 (ideal_candidate): Delete unused args BASETYPE and PARMS.
6616 (build_method_call): Delete unused args passed into ideal_candidate.
6617 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
6618 * cp-tree.h (synthesize_method): Add decl.
6619
6620 * decl.c (note_level_for_for): Give void return type.
6621 (pushdecl_nonclass_level): Likewise.
6622 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
6623 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
6624 (suspend_binding_level): Delete unused var LEVEL.
6625 (duplicate_decls): Delete unused var CTYPE.
6626 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
6627 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
6628 PTR_ENDLINK.
6629 (grokdeclarator): Delete unused var C.
6630 (grokdeclarator): Delete unused var SIZE_VARIES.
6631 (grokparms): Delete unused var SAW_VOID.
6632 (start_function): Delete unused var OLDDECL.
6633 (cplus_expand_expr_stmt): Delete unused var
6634 REMOVE_IMPLICIT_IMMEDIATELY.
6635
6636 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
6637
6638 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
6639
6640Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
6641
6642 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
d11ad92e 6643 (build_min_nt): Likewise.
5566b478
MS
6644 * pt.c (do_pushlevel): Emit line note.
6645 (do_poplevel): Return what we get from poplevel.
6646 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
6647 * parse.y: Use do_pushlevel and do_poplevel.
6648 * cp-tree.h: Declare do_poplevel.
6649
6650 * cp-tree.h: Declare at_eof.
6651 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
6652 * decl2.c (import_export_decl): Renamed from import_export_inline.
6653 (finish_file): Call it to do interface handling for statics.
6654 * pt.c (tsubst_copy): Call mark_used on variables and functions
eb66be0e 6655 used here.
5566b478
MS
6656
6657 * decl2.c (finish_file): Don't emit statics we can't generate.
6658 * pt.c (instantiate_decl): Don't set interface on instantiations
eb66be0e 6659 we can't generate.
5566b478
MS
6660
6661 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
6662 * tree.c (print_lang_statistics): Print max template depth.
6663 * pt.c (push_tinst_level): Dump entire instantiation context.
6664 (instantiate_class_template): Use it and pop_tinst_level.
d11ad92e 6665 (instantiate_decl): Likewise.
5566b478
MS
6666
6667 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
eb66be0e 6668 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
5566b478
MS
6669
6670Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
6671
6672 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
eb66be0e
MS
6673 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
6674 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
6675 the new template implementation.
5566b478
MS
6676
6677Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6678
6679 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
6680
cffa8729
MS
6681Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
6682
6683 * decl.c (cp_finish_decl): Delay emitting the debug information for
6684 a typedef that has been installed as the canonical typedef, if the
6685 type has not yet been defined.
6686
6687Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
6688
6689 * decl2.c (grokfield): Still call pop_nested_class for access decls.
6690
6691Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6692
6693 * decl.c (lookup_label): Call label_rtx.
6694
6695 * decl.c (make_binding_level): New function.
6696 (pushlevel, pushlevel_class): Call it instead of explicit
6697 duplicate calls to xmalloc.
6698
6699 * decl.c (init_decl_processing): Delete useless build_pointer_type
6700 call.
6701
6702 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
6703 (sizet_ftype_string): Delete variable.
6704 (init_decl_processing): Add built-in functions fabsf, fabsl,
6705 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
6706 variable strlen_ftype, used for strlen.
6707
6708Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
6709
6710 * decl.c (push_to_top_level): Start from current_binding_level
eb66be0e
MS
6711 again for now; the stl hacks depend on g++ being broken in this
6712 way, and it'll be fixed in the template rewrite.
cffa8729
MS
6713
6714 * tree.def: Add USING_DECL.
6715 * decl2.c (do_class_using_decl): Implement.
6716 (grokfield): Pass access decls off to do_class_using_decl instead of
6717 grokdeclarator.
6718 * error.c (dump_decl): Handle USING_DECLs.
6719 * decl.c (grokdeclarator): Remove code for handling access decls.
6720 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
eb66be0e 6721 as access decls for now.
cffa8729
MS
6722 (finish_struct): Don't check USING_DECLs for other uses of the name.
6723
6724 * search.c (get_matching_virtual): Use cp_error_at.
6725
6726Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6727
6728 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
6729 match c-typeck.c.
6730 (self_promoting_args_p): Move the check that TYPE is non-nil
6731 before trying to look at its main variant.
6732 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
6733
6734 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
6735 Delete macros.
6736 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
6737 (do_friend): Delete call to xref_friend.
6738 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
6739
6740 * typeck.c (convert_sequence): #if 0 unused function.
6741
6742 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
6743 be in decl_in_memory_p.
6744 (decl_in_memory_p): Delete decl.
6745 * expr.c (decl_in_memory_p): Delete fn.
6746 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
6747
6748 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
6749
6750Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
6751
6752 * class.c (finish_struct_1): Check for a pure-specifier on a
eb66be0e 6753 non-virtual function here.
cffa8729
MS
6754
6755 * decl2.c (grok_function_init): Don't check whether the function
eb66be0e 6756 is virtual here.
cffa8729
MS
6757 (grokfield): Don't call check_for_override here.
6758
6759 * decl.c (push_to_top_level): Start from inner_binding_level,
eb66be0e 6760 check class_shadowed in class levels.
cffa8729
MS
6761
6762Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
6763
6764 * decl.c (resume_level): Ignore things that don't have names, instead
6765 of core dumping.
6766
6767Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6768
6769 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
6770
6771Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
6772
6773 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
eb66be0e 6774 synthesized dtor.
cffa8729
MS
6775
6776 * parse.y (complete_type_name): Bind global_scope earlier.
d11ad92e 6777 (complex_type_name): Likewise.
cffa8729
MS
6778 (qualified_type_name): Remove.
6779
2ee887f2
MS
6780Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
6781
6782 * decl.c (grokfndecl): Move code that looks for virtuals in base
eb66be0e 6783 classes...
cffa8729 6784 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
6785 (finish_struct_1): Call it.
6786
6787 * cp-tree.h: Declare warn_sign_compare.
6788
6789 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
eb66be0e
MS
6790 rather than extra_warnings to decide whether to warn about
6791 comparison of signed and unsigned.
2ee887f2
MS
6792
6793 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
eb66be0e 6794 implies -Wsign-compare. -Wall doesn't imply -W.
2ee887f2
MS
6795
6796Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
6797
6798 * typeck.c (build_component_ref): Fix to handle anon unions in base
6799 classes as well.
6800
6801Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6802
6803 * class.c (resolves_to_fixed_type_p): Delete code dealing with
6804 a WITH_CLEANUP_EXPR, since we don't generate them any more.
6805 * cvt.c (build_up_reference): Likewise.
6806 * decl.c (grok_reference_init): Likewise.
6807 (cp_finish_decl): Likewise.
6808 * error.c (dump_expr): Likewise.
6809 * tree.c (real_lvalue_p): Likewise.
6810 (lvalue_p): Likewise.
6811 (build_cplus_new): Likewise.
6812 (unsave_expr_now): Likewise.
6813 * typeck.c (unary_complex_lvalue, build_modify_expr,
6814 c_expand_return): Likewise.
6815
6816Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6817
6818 Make the C++ front-end pay attention to attributes for structures.
6819 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
6820 finish_struct_1.
eb66be0e 6821 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
2ee887f2
MS
6822 Take out old round_up_size use and setting the DECL_ALIGN possibly
6823 using it. Take out setting of TYPE_ALIGN to round_up_size, which
6824 can override what the attribute set.
6825 * cp-tree.h (finish_struct): Update prototype.
6826 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
6827 attributes to finish_struct.
6828 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
6829 value down into finish_struct.
6830 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
6831
6832Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
6833
6834 * decl.c (poplevel): Re-word dead for local handling.
6835 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
6836 (cp_finish_decl): If is_for_scope, check for duplicates so
6837 we can disable is_for_scope. Otherwise, preserve_temp_slots.
6838
6839 * lex.c (do_identifier): Use global binding in preference of
6840 dead for local variable.
6841
6842Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
6843
6844 * init.c (initializing_context): Handle anon union changes, the
6845 context where fields of anon unions can be initialized now has to be
6846 found by walking up the TYPE_CONTEXT chain.
6847
6848Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
6849
6850 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
6851 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
6852 (obscure_complex_init): If bss is supported, always set
6853 DECL_INITIAL to error_mark_node.
6854
6855Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6856
6857 * init.c (is_friend): Make sure there's a context before we see if
6858 it's an aggr type.
6859
6860Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
6861
6862 * init.c (is_friend): Classes are not friendly with nested classes.
6863
6864Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
6865
6866 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
6867 and record its result.
6868
9e9ff709
MS
6869Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
6870
6871 * class.c (finish_struct_anon): Switch around code to not move anon
6872 union elements around, nor mess up their contexts, nor offsets,
6873 instead we now build up the right number of COMPONENT_REFs for all
6874 the anon unions that may be present at build_component_ref time.
6875 * typeck.c (lookup_anon_field): New routine to handle field lookup
6876 on fields without names. We find them, based upon their unique type
6877 instead.
6878 * typeck.c (build_component_ref): Allow FIELD_DECL components.
6879 Handle finding components in anonymous unions, and ensure that a
6880 COMPONENT_REF is built for each level as necessary.
6881
6882Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
6883
6884 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
6885 code that ensures that copy ctors are used if appropriate.
6886
6887Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6888
6889 * init.c (build_vec_delete): Only give an error if base isn't an
6890 error_mark_node.
6891
6892Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
6893
6894 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
6895 (yylex): If we see `new', keep slurping.
6896
6897Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
6898
6899 * class.c (finish_struct_1): Move code for handling anon unions...
6900 (finish_struct_anon): to here. Fixup so that we do the offset
6901 calculations right, and so that the fields are physically moved to
6902 the containers's chain.
6903
6904Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6905
6906 * decl.c (grokdeclarator): Avoid trying to get an operand off an
6907 identifier node.
6908
6909Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
6910
6911 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
6912 POINTER_SIZE to agree with expr.c.
6913
6914Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
6915
6916 * search.c (lookup_field): Don't report ambiguities if protect is 0,
6917 instead return NULL_TREE.
6918
6919Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
6920
6921 * class.c (finish_struct_1): Call warn_hidden if we want warnings
6922 about overloaded virtual functions.
6923 (warn_hidden): New routine to warn of virtual functions that are
6924 hidden by other virtual functions, that are not overridden.
6925 (get_basefndecls): New routine, used by warn_hidden.
6926 (mark_overriders): New routine, used by warn_hidden.
6927 * search.c (get_matching_virtual): Remove old warning that just
6928 isn't very useful.
6929
6930Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6931
6932 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
6933
6934 * typeck.c (null_ptr_cst_p): Delete unused fn.
6935 (build_function_call_maybe): Delete unused fn.
6936
6937 * expr.c (extract_init): #if 0 the code after unconditional return 0
6938 for now.
6939
6940 Delete old cadillac code.
6941 * edsel.c: Remove file.
6942 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
6943 * Makefile.in (CXX_OBJS): Delete edsel.o.
6944 (edsel.o): Delete rule.
6945 * cp-tree.h (flag_cadillac): Delete var decl.
6946 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
6947 * decl2.c (flag_cadillac): Delete var definition.
6948 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
6949 (grokfield): Delete code depending on flag_cadillac.
6950 (finish_anon_union): Likewise.
6951 * class.c (finish_struct_1): Likewise.
6952 (pushclass): Likewise.
6953 (popclass): Likewise.
6954 (push_lang_context): Likewise.
6955 (pop_lang_context): Likewise.
6956 * decl.c (init_decl_processing): Likewise.
6957 (start_decl): Likewise.
6958 (cp_finish_decl): Likewise.
6959 (xref_tag): Likewise.
6960 (finish_enum): Likewise.
6961 (start_function): Likewise.
6962 (finish_function): Likewise.
6963 (finish_stmt): Likewise.
6964 * lex.c (lang_init): Likewise.
6965 (check_newline): Likewise.
6966
6967 * lex.c (do_pending_inlines): Delete synthesized method kludge.
6968
6969 Delete defunct, ancient garbage collection implementation.
6970 * rtti.c: New file with the RTTI stuff from gc.c.
6971 * gc.c: Removed file (moved the remaining stuff into rtti.c).
6972 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
6973 (rtti.o): New rule, replacing gc.o.
6974 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
6975 * cp-tree.h: Delete gc-related fn decls.
6976 (DECL_GC_OFFSET): Delete macro.
6977 (flag_gc): Delete extern decl.
6978 * decl.c (current_function_obstack_index): Delete var decl.
6979 (current_function_obstack_usage): Delete var decl.
6980 (start_function): Delete clearing of current_function_obstack_index
6981 and current_function_obstack_usage.
6982 (init_decl_processing): Delete code relying on -fgc.
6983 Delete call to init_gc_processing.
6984 (cp_finish_decl): Delete calls to build_static_gc_entry and
6985 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
6986 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
6987 and to expand_expr of a __gc_main call.
6988 (maybe_gc_cleanup): Delete var decl.
6989 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
6990 * decl2.c (flag_gc): Delete var decl.
6991 (lang_f_options): Delete offering of -fgc.
6992 (lang_decode_option): Delete -fgc and -fno-gc handling.
6993 (get_temp_regvar): Delete gc code.
6994 * init.c (build_new): Delete gc code.
6995 * lex.c (init_lex): Delete checking of flag_gc.
6996
6997 * typeck.c (convert_arguments): Delete gc code.
6998 (build_component_addr): Delete -fgc warning.
6999 (build_modify_expr): Delete gc code.
7000
7001 * decl2.c (build_push_scope): Delete fn.
7002 * cp-tree.h (build_push_scope): Delete decl.
7003
7004 * search.c (clear_search_slots): Delete fn.
7005 * cp-tree.h (clear_search_slots): Delete decl.
7006
7007 * search.c (tree_needs_constructor_p): Delete fn.
7008 * cp-tree.h (tree_needs_constructor_p): Delete decl.
7009
7010 * tree.c (id_cmp): Delete fn.
7011
7012 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
7013 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
7014
7015 * tree.c (decl_value_member): Delete fn.
7016 * cp-tree.h (decl_value_member): Delete decl.
7017
7018 * tree.c (list_hash_lookup_or_cons): Delete fn.
7019 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
7020
7021 * method.c (cplus_exception_name): Delete fn.
7022 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
7023
7024 * spew.c (shift_tokens): Delete fn.
7025
7026Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
7027
7028 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
7029 to cp_finish_decl.
d11ad92e 7030 * parse.y: Likewise.
9e9ff709
MS
7031
7032Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7033
7034 * tree.c (build_cplus_staticfn_type): Delete function definition;
7035 never used.
7036 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
7037
7038 * tree.c (virtual_member): Delete function definition; never used.
7039 * cp-tree.h (virtual_member): Delete decl.
7040
45537677
MS
7041Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
7042
7043 * typeck.c (build_component_ref): Handle getting vbase pointers
7044 out of complex multiple inheritance better.
7045
7046Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
7047
7048 * typeck.c (build_object_ref): Make sure we use the real type, not
7049 any reference type.
7050
7051Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
7052
7053 * tree.c (build_exception_variant): Don't create new types if we
7054 don't have to, also build new types on the right obstack.
7055
7056Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
7057
7058 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
7059 (push_to_top_level): Call it for b->type_shadowed on class binding
7060 levels.
45537677
MS
7061
7062Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
7063
7064 * search.c (expand_upcast_fixups): Fix so that offsets stored in
7065 vbase_offsets are always right. Fixes a problem where virtual base
7066 upcasting and downcasting could be wrong during conversions on this
7067 during virtual function dispatch at ctor/dtor time when dynamic
7068 vtable fixups for deltas are needed. This only sounds easier than
7069 it is. :-)
7070 (fixup_virtual_upcast_offsets): Change to reflect new calling
7071 convention for expand_upcast_fixups.
7072
7073Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7074
7075 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
7076 check that it's usable as the bitfield width.
7077
7078Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7079
7080 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
7081 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
7082 only ever used for functions in it.
7083
7084Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
7085
7086 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
d11ad92e 7087 (nested_type): Likewise.
45537677
MS
7088 (nested_name_specifier): Use lastiddecl.
7089
7090 * decl.c (grokdeclarator): Adjust accordingly.
d11ad92e
MS
7091 * init.c (expand_member_init): Likewise.
7092 * parse.y (base_class): Likewise.
7093 * typeck2.c (build_functional_cast): Likewise.
45537677
MS
7094
7095 * typeck2.c (build_functional_cast): Fill in name after we've
7096 checked for non-aggr type.
7097
be99da77
MS
7098Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
7099
7100 * decl2.c (warn_pointer_arith): Default to on.
7101
7102Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
7103
7104 * lex.c (is_rid): New function.
7105 * decl.c (grokdeclarator): Diagnose reserved words used as
7106 declarator-ids.
7107
7108Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
7109
7110 * tree.c (get_decl_list): Don't lose cv-quals.
7111
7112 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
7113 typespecs used as declarator-ids.
7114
7115Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
7116
7117 * decl.c (poplevel): When poping a level, don't give a warning for
7118 any subblocks that already exist.
7119
7120Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
7121
7122 * typeck.c (build_object_ref): Finish what I started.
7123
7124 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
7125
7126 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
7127
7128 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 7129 scope.
be99da77
MS
7130
7131Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
7132
7133 * decl.c (xref_tag): Handle passing a type in directly.
7134
7135 * parse.y (qualified_type_name): Pull out the type.
d11ad92e 7136 (nested_type): Likewise.
be99da77
MS
7137 Take types directly instead of as identifiers.
7138 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709 7139 as identifiers.
d11ad92e
MS
7140 * decl.c (xref_basetypes): Likewise.
7141 * init.c (expand_member_init): Likewise.
7142 (build_member_call): Likewise.
7143 (build_offset_ref): Likewise.
7144 * typeck2.c (build_scoped_ref): Likewise, remove bogus code.
7145 * method.c (do_build_assign_ref): Likewise.
be99da77
MS
7146 * decl.c (grokdeclarator): Handle a type appearing as the
7147 declarator-id for constructors.
7148 * method.c (do_build_copy_constructor): current_base_init_list now
7149 uses the types directly, not their names.
d11ad92e
MS
7150 * init.c (sort_base_init): Likewise.
7151 (expand_member_init): Likewise.
be99da77 7152 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77 7153
d11ad92e 7154Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com>
be99da77
MS
7155
7156 * tree.c (layout_basetypes): Call build_lang_field_decl instead
7157 of build_lang_decl if first arg is a FIELD_DECL.
be99da77
MS
7158
7159Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7160
7161 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
7162 non-empty.
7163 * except.c (expand_start_catch_block): Set TREE_USED to avoid
7164 warnings about the catch handler.
7165
7166Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
7167
7168 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 7169 expand_target_expr.
be99da77
MS
7170
7171Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7172
7173 Fix access control to use trees rather than integers.
7174 * class.c (access_{default, public, protected, private,
7175 default_virtual, public_virtual, private_virtual}_node): Add
7176 definitions.
7177 (init_class_processing): Do creation of those nodes.
7178 * cp-tree.h (access_type): Delete enum decl.
7179 (access_{default, public, protected, private, default_virtual,
7180 public_virtual, private_virtual}_node): Add decls.
7181 (compute_access): Change return type.
7182 * search.c (compute_access): Have tree return type, instead of enum.
7183 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
7184 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
7185 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
7186 * parse.y (VISSPEC): Make ttype rather than itype.
7187 (base_class_access_list): Likewise.
7188 * *.[cy]: Change all refs of `access_public' to `access_public_node',
7189 etc.
7190 * call.c (build_method_call): Make ACCESS be a tree.
7191 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
7192 * cvt.c (convert_to_aggr): Likewise.
7193 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
7194 Likewise.
7195 * method.c (hack_identifier): Likewise.
7196 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
7197
7198Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
7199
7200 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
7201 frontend, and make it more consistent with respect to
7202 warn_pointer_arith.
7203
7204Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
7205
7206 * decl.c (pushdecl): Check for duplicate parameter names.
7207
7208Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
7209
7210 * decl.c (expand_static_init): Call assemble_external for atexit.
7211
7212Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
7213
7214 * except.c (do_unwind): Remove some generated dead code.
7215 (eh_outer_context): New routine, factor out some common code from
7216 expand_builtin_throw and end_eh_unwinder. Add code to do return
7217 address masking for the PA.
7218 (expand_builtin_throw): Use eh_outer_context instead of open coding
7219 it here.
d11ad92e 7220 (end_eh_unwinder): Likewise.
be99da77
MS
7221
7222Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
7223
7224 * except.c (expand_throw): Call assemble_external for __empty, if we
7225 use it.
7226
21451173
MS
7227Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
7228
7229 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
7230 NORMAL_RETURN_ADDR_OFFSET.
d11ad92e 7231 (end_eh_unwinder): Likewise.
21451173
MS
7232
7233Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
7234
7235 * gc.c (build_dynamic_cast): Make sure we don't cast away const
7236 when dealing with references, and make sure we handle dynamic
7237 casting to a cv qualified reference.
7238
7239Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
7240
7241 * except.c (struct eh_context): New structure top hold eh context
7242 information.
7243 (push_eh_context): New routine.
d11ad92e 7244 (pop_eh_context): Likewise.
21451173 7245 * decl.c (push_cp_function_context): Use them.
d11ad92e 7246 (pop_cp_function_context): Likewise.
21451173
MS
7247
7248Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
7249
7250 * decl2.c (finish_file): Also prune uninteresting functions in the
7251 inline emission loop.
7252
d11ad92e 7253Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com>
21451173
MS
7254
7255 * sig.c (build_signature_table_constructor): Mark functions
7256 in the signature as referenced.
7257
7258Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
7259
7260 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
7261 the inline emission stuff.
7262
72b7eeff
MS
7263Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
7264
7265 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 7266 weak symbols.
72b7eeff
MS
7267 * lang-options.h: Add -f{no-,}weak.
7268 * decl.c (init_decl_processing): If the target does not support weak
7269 symbols, don't use them.
7270 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
7271
7272Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
7273
7274 * init.c (expand_member_init): warning for base init after members.
7275
72b7eeff
MS
7276Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
7277
7278 * cvt.c (build_expr_type_conversion): Don't convert to a reference
7279 type.
7280
7281Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
7282
7283 * method.c (report_type_mismatch): Improve wording for volatile
7284 mismatches.
7285
7286Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
7287
7288 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 7289 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
7290 copy constructors well. The compiler would do bitwise copying,
7291 instead of ctor calling in some cases.
7292
7293Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
7294
7295 * g++.c (my_strerror): Return "cannot access" if errno is 0.
7296 (pfatal_with_name, perror_exec): Don't assume that
7297 the returned value from my_strerror contains no '%'s.
7298 (concat): Remove.
7299 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
7300
7301Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
7302
7303 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
7304 TYPE_METHODS/TREE_CHAIN mean what they used to.
7305 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
7306 instead of TYPE_METHODS.
7307 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
d11ad92e 7308 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
72b7eeff
MS
7309 * cp-tree.h (CLASSTYPE_METHODS): Lose.
7310 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
7311 TYPE_METHODS.
7312 (struct lang_decl): Lose next_method field.
7313 (DECL_NEXT_METHOD): Lose.
7314 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
7315 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
7316 anymore.
7317 (finish_struct_methods): Don't mess with the TREE_CHAINs in
7318 fn_fields.
7319
7320 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
7321 vector.
7322
7323 * call.c (build_method_call): Synthesize here even when not inlining.
d11ad92e 7324 * typeck.c (build_function_call_real): Likewise.
72b7eeff
MS
7325
7326Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
7327
7328 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
7329 == DBX_DEBUG, call dbxout_start_new_source_file and
7330 dbxout_resume_previous_source_file when appropriate.
7331
7332Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
7333
7334 * except.c (start_anon_func): Push to the top level.
7335 (end_anon_func): Pop from the top level.
7336
7337Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
7338
7339 * cp-tree.h (build_cleanup): New routine to build cleanups.
7340 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
7341 call at ctor time and use atexit to run it later.
7342 * decl2.c (build_cleanup): New routine, taken from finish_file.
7343 (finish_file): Use build_cleanup instead, and don't put function
7344 local statics in global dtor list.
7345
7346Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
7347
7348 * except.c (expand_throw): Ensure that we have cleanups, if we try
7349 and expand cleanups.
7350
7351Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
7352
7353 * except.c (expand_throw): Add logic to manage dynamic cleanups for
7354 the EH object.
7355 (expand_end_catch_block): Use the magic of expand_goto, instead of
7356 emit_jump so that we get the cleanup for any catch clause parameter
7357 and the cleanup for the exception object. Update to reflect label
7358 changes.
7359 (push_eh_cleanup): New routine to register a cleanup for an
7360 exception object.
9e9ff709 7361 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
7362 nothing.
7363 (init_exception_processing): Setup empty_fndecl. Setup
7364 saved_cleanup.
7365 (expand_start_catch_block): Update to reflect label changes. Call
7366 push_eh_object to register the cleanup for the EH object.
7367 (start_anon_func): New routine to start building lambda expressions
7368 from trees.
7369 (end_anon_func): New routine to end them.
7370 (struct labelNode): Change so that we can use tree labels, or rtx
7371 labels.
7372 (saved_cleanup): Object to check for dynamic cleanups for the
7373 exception handling object.
7374 (push_label_entry): Change so that we can use tree labels, or rtx
7375 labels.
d11ad92e
MS
7376 (pop_label_entry): Likewise.
7377 (top_label_entry): Likewise.
72b7eeff
MS
7378 (expand_start_all_catch): Use tree label instead of rtx label, so
7379 that we can get the magic of expand_goto.
7380 (expand_end_all_catch): Update to reflect label changes.
7381
7382 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
7383 use UNSAVE_EXPRs.
7384 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
7385 building_cleanup logic, as we now use UNSAVE_EXPRs.
7386 * cp-tree.h (unsave_expr): Declare it.
7387 * decl.c (building_cleanup): Remove.
7388 (maybe_build_cleanup): Remove building_cleanup logic, and use
7389 UNSAVE_EXPR instead.
7390
7391Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
7392
7393 * gc.c (build_t_desc): Update error message to say <typeinfo>.
7394
7395Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7396
7397 * decl.c (pushdecl): Only warn about shadowing a local variable if
7398 warn_shadow is true.
7399
7400Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
7401
7402 * typeck.c (build_binary_op_nodefault): Added warning about
7403 comparisons between different enum types with -Wall, unless
7404 -fenum-int-equiv set.
7405
7406Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
7407
7408 * class.c (finish_struct_1): Skip down to the inner type in
7409 multidimensional arrays. Ensures ctors will be made for types that
7410 need constructing.
7411
7412Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
7413
7414 * decl.c (last_dtor_insn): New to track the last compiler generated
7415 insn in a dtor.
7416 (store_parm_decls): Set it.
7417 (finish_function): Use it to see if the dtor is empty. Avoid doing
7418 vtable setup all the time, if we can.
7419 (struct cp_function): Add last_dtor_insn.
7420 (push_cp_function_context): Save it.
7421 (pop_cp_function_context): Restore it.
7422
7423Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
7424
7425 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 7426 warnings.
72b7eeff
MS
7427
7428Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
7429
7430 * typeck.c (expand_target_expr): Make sure targets get put into the
7431 current temp_slot_level, so that the free_temp_slots call will reuse
7432 them.
7433
7434Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
7435
7436 * class.c (finish_struct_1): Delay delta fixups for virtual bases
7437 until after we have done the hard virtuals, to avoid a bogus `every
7438 virtual function must have a unique final overrider' for virtual
7439 functions that are only overridden by hard virtuals.
7440
7441Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
7442
7443 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 7444 template for a member function.
72b7eeff
MS
7445
7446Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
7447
7448 * g++.c (main): Add handling of -nodefaultlibs.
7449
7450Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
7451
7452 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
7453 distinguish between direct bindings of reference variables, and
7454 indirect bindings of reference variables.
7455 * cvt.c (build_up_reference): Use it.
7456 * typeck.c (convert_arguments): Use it to indicate this is an
7457 indirect binding.
7458 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
7459 as they are unused.
d11ad92e
MS
7460 (expand_static_init): Likewise.
7461 (cplus_expand_expr_stmt): Likewise.
7462 * decl2.c (finish_file): Likewise.
7463 * init.c (perform_member_init): Likewise.
7464 (emit_base_init): Likewise.
7465 (expand_aggr_vbase_init_1): Likewise.
72b7eeff 7466
72b7eeff
MS
7467Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7468
7469 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
7470 get a DECL_LANG_SPECIFIC node.
7471 * cp-tree.h (lang_decl_flags): Add new member `level'.
7472 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
7473 decl_flags level member.
7474
7475Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7476
7477 * call.c (build_method_call): Make sure instance has a
7478 TYPE_LANG_SPECIFIC node before we dive into it.
7479
d11ad92e 7480Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com>
72b7eeff
MS
7481
7482 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
7483
7484Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
7485
7486 * decl.c (duplicate_decls): When smashing decls, smash staticness in
7487 the usual way.
7488
7489Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
7490
7491 * decl.c (poplevel): Handle the merging of subblocks of cleanups
7492 when finishing blocks that have already been created (usually due to
7493 the fixup goto code). Fixes bad debugging information.
7494
7495Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
7496
7497 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
7498 that's not a list of overloaded functions.
7499
7500Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7501
7502 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
7503 before trying to use DECL_ABSTRACT_VIRTUAL_P.
7504
7505Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
7506
7507 * decl2.c (mark_used): New function for hooking into setting of
7508 TREE_USED on decls.
7509 * call.c (build_method_call): Use it.
d11ad92e
MS
7510 * class.c (instantiate_type): Likewise.
7511 * init.c (build_offset_ref): Likewise. Don't call assemble_external
72b7eeff 7512 for all like-named functions.
d11ad92e 7513 * method.c (hack_identifier): Likewise.
72b7eeff
MS
7514 (emit_thunk): Don't call assemble_external.
7515 (make_thunk): Create thunk as a FUNCTION_DECL so that it
7516 gets the right mode and ENCODE_SECTION_INFO works.
7517
7518 * parse.y: Use mark_used. Pass operator names to do_identifier.
7519 * lex.c (do_identifier): Handle operator names.
7520
7521 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
7522
72b7eeff
MS
7523Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7524
7525 * errfn.c: Include stdio.h.
7526 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
7527
7528Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
7529
7530 * typeck2.c (digest_init): Always convert initializers to the
7531 right type.
7532
7533Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
7534
7535 * init.c (member_init_ok_or_else): Don't allow member initializers
7536 for indirect members, as it is invalid.
7537
7538Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7539
7540 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
7541
7542Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
7543
7544 * parse.y (for.init.statement): Catch compound statements inside for
7545 initializations, if we're being pedantic.
7546
7547Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
7548
7549 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
7550 looking for.
7551
7552Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
7553
7554 * error.c (dump_expr): Don't core dump when a boolean expression is
7555 used as a default argument.
7556
7557Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
7558
7559 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 7560 RETURN_IN_MEMORY.
72b7eeff
MS
7561
7562Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
7563
7564 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
7565 BLKmode type that would otherwise be returned in registers.
7566
7567Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7568
7569 * g++.c (WITHLIBC): New macro.
7570 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
7571 saw_libc and pass it at the end if it was set.
7572
7573Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7574
7575 * parse.y (fn.def1): Call split_specs_attrs in
7576 declmods notype_declarator case.
7b8dd497
JL
7577\f
7578Use a consistent time stamp format in ChangeLog entries.
7579Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now.
7580
7581Local Variables:
7582add-log-time-format: current-time-string
7583End:
This page took 0.934421 seconds and 5 git commands to generate.