]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
(L_bb/atexit, onexit): Declarations replaced by #include'ing "gbl-ctors.h".
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
ec255269
MS
1Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
2
3 * pt.c (instantiate_class_template): If we don't have a pattern
4 yet, that's OK.
5 (coerce_template_parms): If we see a local class, bail.
6
7 * decl.c (grok_reference_init): Make sure there's a type before
8 checking its code.
9
10 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
11 (push_template_decl): Ditto.
12
13 * parse.y (named_class_head): Set
14 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
15
16 * decl.c (xref_tag): Diagnose redeclaration of template
17 type-parameter name.
18
19 * error.c (dump_type): Handle anonymous template type parms.
20
21 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
22 TYPE_STUB_DECL.
23 (coerce_template_parms): Ditto.
24
25Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
26
27 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
28 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
29
30Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
31
32 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
33 before trying to get its STUB_DECL.
34 (coerce_template_parms): Ditto.
35
36 * parse.y (template_type_parm): If they didn't use 'class',
37 pretend they did after giving an error.
38
39 * pt.c (coerce_template_parms): Diagnose use of local class.
40
41 * decl.c (grok_reference_init): Use instantiate_type.
42
43 * error.c (dump_expr): Handle TEMPLATE_DECLs.
44
45 * parse.y (named_class_head): Diagnose mismatching types and tags.
46
47 * decl.c (pushdecl): Type decls and class templates clash with
48 artificial type decls, not hide them.
49
50 * decl.c (redeclaration_error_message): Diagnose redefinition of
51 templates properly.
52 (duplicate_decls): Diagnose disallowed overloads for template
53 functions, too.
54
55 * decl.c (start_decl): Call complete_type before checking for a
56 destructor.
57
58 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
59
60 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
61
5566b478
MS
62Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
63
ec255269
MS
64 * decl.c (grok_op_properties): Don't check for operator++(int) in
65 a template.
66
67 * tree.c (perm_manip): Return a copy of variable and function
68 decls with external linkage.
69
70 * tree.def: Change some of the min tree codes to type "1".
71 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
72 * method.c (build_overload_int): Emit something arbitrary for
73 anything but an INTEGER_CST if we're in a template.
74
75 * decl.c (cp_finish_decl): Call complete_type before deciding
76 whether or not to lay out the decl.
77
5566b478
MS
78 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
79
80Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
81
82 * typeck2.c (build_x_arrow): Call complete_type.
83
84 * pt.c (add_pending_template): Broken out.
85 (lookup_template_class): If -fexternal-templates, call it for all
86 the methods of implemented types.
87 (instantiate_class_template): Instead of instantiating them here.
88 (instantiate_decl): Handle -fexternal-templates earlier.
89
90Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
91
92 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
93 memoized lookup stuff inside GATHER_STATISTICS.
94
95Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
96
97 * decl.c (start_decl): Complain about array of incomplete type
98 here.
99 (grokdeclarator): Not here.
100
101 * parse.y (template_parm): Expand full_parm inline so we can set
102 the rule's precedence.
103
104 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
105 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
106 * decl2.c (grokbitfield): Don't check for integer constant here.
107 * class.c (finish_struct_1): Check here.
108
109 * decl.c (define_label): Make the min decl go on permanent_obstack.
110
111 * pt.c (unify): Don't handle CONST_DECLs.
112 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
113 (tsubst_copy): Ditto.
114
115 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
116 CONST_DECL for a template parm.
117
118Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
119
120 * decl.c (grokdeclarator): Complain about array of incomplete type
121 here.
122 (start_decl_1): Not here.
123
124 * pt.c (tsubst): Handle pointer-to-function declarators.
125
126 * method.c (hack_identifier): If pedantic, diagnose local class
127 methods that require a static chain.
128
129 * decl.c (grok_op_properties): No longer static.
130 * cp-tree.h: Declare it.
131 * pt.c (tsubst): Call it for operators.
132 Use tsubst_copy for TREE_VECs.
133
134 * parse.y (template_arg): The expr has precedence like '>'.
135
136Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
137
138 * pt.c (coerce_template_parms): Don't coerce an expression using
139 template parms.
140 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
141 (tsubst): Don't use build_index_2_type if the max_value uses template
142 parms.
143 * method.c (build_overload_int): Emit something arbitrary for an
144 expression using template parms.
145
146 * parse.y (template_close_bracket): New non-terminal to catch use
147 of '>>' instead of '> >' in template class names.
148 (template_type): Use it.
149 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
150
151 * tree.def: Add CAST_EXPR.
152 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
153 CONVERT_EXPR for minimal_parse_mode.
154 * typeck.c (build_c_cast): Ditto.
155 * pt.c (tsubst_copy): Ditto.
156 * decl2.c (build_expr_from_tree): Ditto.
157 * error.c (dump_expr): Ditto.
158
159Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
160
161 * except.c (SetTerminate, SetUnexpected): Put back global vars.
162 (init_exception_processing): Put back decl/init of
163 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
164 fns from libstdc++.
165
166 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
167 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
168 Delete unused fns.
169 * cp-tree.h (declare_uninstantiated_type_level,
170 uninstantiated_type_level_p): Delete prototypes.
171
172Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
173
174 * pt.c (tsubst_expr): Add default return.
175
176Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
177
178 * error.c (fndecl_as_string): Delete unused arg CNAME.
179 * sig.c (build_signature_table_constructor,
180 build_signature_method_call): Fix calls.
181
182 * class.c (the_null_vtable_entry): Delete var definition.
183 (init_class_processing): Delete tree the_null_vtable_entry init.
184 * decl.c (no_print_{functions, builtins}): Declare as static.
185 (__tp_desc_type_node): #if 0 var definition.
186 (init_type_desc): #if 0 init of __tp_desc_type_node.
187 (vb_off_identifier): Move var decl into init_decl_processing.
188 (current_function_assigns_this): Declare as static.
189 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
190 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
191 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
192 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
193 * init.c (BI_header_type, BI_header_size): Declare as static.
194 * pt.c (template_classes): Delete unused var.
195 (add_pending_template): Delete decl for non-existent fn.
196 (lookup_template_class): Delete vars CODE and TAG_CODE.
197 (instantiate_template): Delete unused var TARGS.
198 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
199 Delete decls.
200 (__tp_desc_type_node): #if 0 var decl.
201 (fndecl_as_string): Fix prototype.
202
203Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
204
205 * tree.def: Add GOTO_STMT.
206 * pt.c (tsubst_expr): Support goto and labels.
207 * decl.c (define_label): Support minimal parsing.
208 * parse.y (simple_stmt): Ditto.
209
210Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
211
212 * xref.c (GNU_xref_member): Only define/set var I if
213 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
214 used.
215 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
216 (GNU_xref_end): Fix call.
217 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
218 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
219
220 * tree.c (build_exception_variant): Delete unused vars I, A, T,
221 T2, and CNAME.
222 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
223 (mapcar): Delete unused var CODE.
224 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
225 (break_out_cleanups): Fix call.
226 (bot_manip): Likewise.
227 * call.c (build_method_call): Likewise.
228 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
229 Likewise.
230 * typeck.c (unary_complex_lvalue, build_modify_expr,
231 convert_for_initialization): Likewise.
232 * typeck2.c (build_functional_cast): Likewise.
233 * cp-tree.h (build_cplus_new): Fix prototype.
234
235 * repo.c (open_repo_file): Delete unused var Q.
236 (repo_compile_flags, repo_template_declared,
237 repo_template_defined, repo_class_defined, repo_inline_used,
238 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
239 (repo_get_id, repo_vtable_used): Declare as static.
240 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
241 prototypes.
242
243Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
244
245 * parse.y (pending_inlines): Add function_try_block case.
246
247 * pt.c (unify): Fix for template const parms.
248
249Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
250
251 * lex.c (extract_interface_info): Delete forward decl.
252 (default_copy_constructor_body, default_assign_ref_body): Delete
253 decls for non-existent functions.
254 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
255 (init_lex): Delete setting them.
256 (cons_up_default_function): Delete unused vars FUNC_BUF,
257 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
258 #if 0'd synth code.
259 (toplevel, expression_obstack): Delete unused extern decls.
260 (tree_node_kind): Delete unused enum.
261 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
262 GATHER_STATISTICS.
263 (tree_node_kind_names): Delete unused extern decl.
264 (synth_obstack): Delete unused var.
265 (init_lex): Don't set it.
266 (init_parse): Add decl before use.
267 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
268 (current_unit_{name, language}): Delete unused vars.
269 (check_newline): Don't bother setting them, just accept the #pragma.
270 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
271 (current_unit_{name, language}): Delete decls.
272
273 * search.c: Wrap all of the memoized functions, macros, and
274 variables inside #ifdef GATHER_STATISTICS.
275 (lookup_field, lookup_fnfields): Likewise.
276 (init_search_processing): Likewise.
277 (reinit_search_statistics): Wrap whole function.
278 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
279
280 * decl.c (finish_function): Only call pop_memoized_context if
281 GATHER_STATISTICS is defined.
282 (start_function): Likewise for push_memoized_context.
283 * class.c (pushclass, popclass): Likewise.
284
285 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
286 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
287
288 * cvt.c (cp_convert): Delete unused local var FORM.
289 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
290 prototypes.
291
292Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
293
294 * pt.c (do_poplevel): Oops; really return what we get from
295 poplevel this time.
296
297Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
298
299 * cp-tree.h (is_aggr_type): Add prototype.
300
301 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
302 * method.c ({push,pop}_cp_function_context): Delete decls.
303 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
304 (SetUnexpected, SetTerminate): Delete unused vars.
305 (init_exception_processing): Don't set SetUnexpected or
306 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
307 (output_exception_table_entry): Delete unused array LABEL.
308 (expand_internal_throw): Delete unused var PARAMS.
309 (expand_start_catch_block): Delete unused var CLEANUP.
310 (emit_exception_table): Delete unused var EH_NODE_DECL.
311 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
312 GOTO_UNWIND_AND_THROW. Don't set them.
313 (end_eh_unwinder): Add top decl.
314 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
315 (exception_section, push_rtl_perm, do_function_call,
316 lang_interim_eh, push_eh_cleanup, eh_outer_context,
317 expand_end_eh_spec, end_eh_unwinder): Declare as static.
318 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
319 throw_used): Likewise.
320 * cp-tree.h (expand_end_eh_spec): Delete prototype.
321
322 * search.c (dfs_mark, dfs_mark_vtable_path,
323 dfs_unmark_vtable_path, dfs_mark_new_vtable,
324 dfs_unmark_new_vtable, dfs_clear_search_slot,
325 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
326 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
327 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
328 functions.
329 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
330 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
331 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
332 Only define #ifdef GATHER_STATISTICS.
333 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
334 is defined.
335 (vbase_decl): Delete var definition.
336 (init_search): Delete old decl.
337 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
338 never actually used.
339 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
340 (get_base_distance_recursive): Delete unused fourth arg
341 BASETYPE_PATH. Fix call .
342 (get_base_distance): Fix call.
343 (push_class_decls): Delete unused var ID.
344 (make_memoized_table_entry): Declare as static.
345 (breadth_first_search): Declare as static.
346 (tree_has_any_destructor_p): Declare as static.
347 (pop_class_decls): Delete unused arg pop_class_decls.
348 * class.c (popclass): Fix call to pop_class_decls.
349 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
350 tree_has_any_destructor_p): Delete prototypes.
351
352 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
353 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
354 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
355 (build_user_desc): Delete unused var T.
356 (build_class_desc): Delete unused vars T and OFF.
357 (build_t_desc): Delete unused var NAME_STRING.
358 (build_headof): Make static.
359 (get_bad_cast_node): Likewise.
360 (get_def_to_follow): Likewise.
361 * cp-tree.h (init_type_desc): Add prototype.
362 (build_headof): Remove prototype.
363
364Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
365
366 * pt.c (tsubst): Only look for matching decls at file scope for
367 non-member functions.
368
369 * call.c (build_scoped_method_call): Handle scoped destructor
370 calls in templates.
371
372 * decl.c (*_top_level): Also save previous_class_values.
373
374 * pt.c (tsubst_expr): Support do {} while loops.
375 * parse.y (simple_stmt): Ditto.
376 * tree.def: Ditto.
377
378 * method.c (build_overload_identifier): For a class nested in a
379 template class, don't mangle in the template parms from our
380 context.
381
382 * lex.c, cp-tree.h: Remove support for template instantiations in
383 the pending_inlines code.
384 * pt.c: Remove dead functions and unused arguments.
385 (uses_template_parms): TYPENAME_TYPEs always use template parms.
386 * parse.y: Stop passing anything to end_template_decl.
387 * tree.c (print_lang_statistics): Only print tinst info #ifdef
388 GATHER_STATISTICS.
389
390Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
391
392 * init.c (expand_recursive_init{,_1}): Delete decls.
393 (sort_member_init): Delete unused var INIT.
394 (emit_base_init): Delete unused var X.
395 (build_offset_ref): Delete unused var CNAME.
396 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
397 (emit_base_init): Delete unused local var BASE. Delete extern
398 decl of IN_CHARGE_IDENTIFIER.
399 (build_delete): Delete unused local var VIRTUAL_SIZE.
400
401 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
402 (build_delete): Fix call.
403 * decl2.c (delete_sanity): Likewise.
404 * cp-tree.h (build_vec_delete): Update prototype.
405
406 * typeck.c (common_base_type): Delete unused var TMP.
407 (build_binary_op): Delete local var ARGS_SAVE.
408 (build_array_ref): Delete unused var ITYPE.
409 (c_expand_return): Delete unused var USE_TEMP.
410
411 * typeck.c (compexcepttypes): Delete unused arg STRICT.
412 (comptypes): Fix calls.
413 * decl.c (duplicate_decls): Likewise.
414 * cp-tree.h (compexcepttypes): Delete extra arg.
415
416 * decl2.c (check_classfn): Delete unused second arg CNAME.
417 * decl.c (start_decl, grokfndecl): Fix calls.
418 * init.c (do_friend): Likewise.
419 * cp-tree.h (check_classfn): Update prototype.
420
421 * cp-tree.h (signature_error, import_export_vtable,
422 append_signature_fields, id_in_current_class, mark_used,
423 copy_assignment_arg_p): Add decls.
424 * decl2.c (mark_used): Delete decl.
425
426 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
427
428 * class.c (get_vtable_entry): Diable unused function.
429 (doing_hard_virtuals): Delete unused static global var.
430 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
431 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
432 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
433 (modify_one_vtable): Delete unused var OLD_RTTI.
434 (finish_struct_anon): Delete unused vars OFFSET and X.
435 (finish_struct_bits): Delete unused var METHOD_VEC.
436 (get_basefndecls): Delete unused var PURPOSE. Delete unused
437 for-scope local variable METHODS.
438
439 * call.c (user_harshness): Delete unused/unneeded arg PARM.
440 (ideal_candidate): Delete unused args BASETYPE and PARMS.
441 (build_method_call): Delete unused args passed into ideal_candidate.
442 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
443 * cp-tree.h (synthesize_method): Add decl.
444
445 * decl.c (note_level_for_for): Give void return type.
446 (pushdecl_nonclass_level): Likewise.
447 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
448 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
449 (suspend_binding_level): Delete unused var LEVEL.
450 (duplicate_decls): Delete unused var CTYPE.
451 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
452 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
453 PTR_ENDLINK.
454 (grokdeclarator): Delete unused var C.
455 (grokdeclarator): Delete unused var SIZE_VARIES.
456 (grokparms): Delete unused var SAW_VOID.
457 (start_function): Delete unused var OLDDECL.
458 (cplus_expand_expr_stmt): Delete unused var
459 REMOVE_IMPLICIT_IMMEDIATELY.
460
461 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
462
463 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
464
465Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
466
467 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
468 (build_min_nt): Ditto.
469 * pt.c (do_pushlevel): Emit line note.
470 (do_poplevel): Return what we get from poplevel.
471 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
472 * parse.y: Use do_pushlevel and do_poplevel.
473 * cp-tree.h: Declare do_poplevel.
474
475 * cp-tree.h: Declare at_eof.
476 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
477 * decl2.c (import_export_decl): Renamed from import_export_inline.
478 (finish_file): Call it to do interface handling for statics.
479 * pt.c (tsubst_copy): Call mark_used on variables and functions
480 used here.
481
482 * decl2.c (finish_file): Don't emit statics we can't generate.
483 * pt.c (instantiate_decl): Don't set interface on instantiations
484 we can't generate.
485
486 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
487 * tree.c (print_lang_statistics): Print max template depth.
488 * pt.c (push_tinst_level): Dump entire instantiation context.
489 (instantiate_class_template): Use it and pop_tinst_level.
490 (instantiate_decl): Ditto.
491
492 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
493 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
494
495Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
496
497 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
498 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
499 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
500 the new template implementation.
501
502Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
503
504 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
505
cffa8729
MS
506Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
507
508 * decl.c (cp_finish_decl): Delay emitting the debug information for
509 a typedef that has been installed as the canonical typedef, if the
510 type has not yet been defined.
511
512Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
513
514 * decl2.c (grokfield): Still call pop_nested_class for access decls.
515
516Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
517
518 * decl.c (lookup_label): Call label_rtx.
519
520 * decl.c (make_binding_level): New function.
521 (pushlevel, pushlevel_class): Call it instead of explicit
522 duplicate calls to xmalloc.
523
524 * decl.c (init_decl_processing): Delete useless build_pointer_type
525 call.
526
527 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
528 (sizet_ftype_string): Delete variable.
529 (init_decl_processing): Add built-in functions fabsf, fabsl,
530 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
531 variable strlen_ftype, used for strlen.
532
533Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
534
535 * decl.c (push_to_top_level): Start from current_binding_level
536 again for now; the stl hacks depend on g++ being broken in this
537 way, and it'll be fixed in the template rewrite.
538
539 * tree.def: Add USING_DECL.
540 * decl2.c (do_class_using_decl): Implement.
541 (grokfield): Pass access decls off to do_class_using_decl instead of
542 grokdeclarator.
543 * error.c (dump_decl): Handle USING_DECLs.
544 * decl.c (grokdeclarator): Remove code for handling access decls.
545 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
546 as access decls for now.
547 (finish_struct): Don't check USING_DECLs for other uses of the name.
548
549 * search.c (get_matching_virtual): Use cp_error_at.
550
551Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
552
553 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
554 match c-typeck.c.
555 (self_promoting_args_p): Move the check that TYPE is non-nil
556 before trying to look at its main variant.
557 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
558
559 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
560 Delete macros.
561 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
562 (do_friend): Delete call to xref_friend.
563 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
564
565 * typeck.c (convert_sequence): #if 0 unused function.
566
567 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
568 be in decl_in_memory_p.
569 (decl_in_memory_p): Delete decl.
570 * expr.c (decl_in_memory_p): Delete fn.
571 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
572
573 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
574
575Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
576
577 * class.c (finish_struct_1): Check for a pure-specifier on a
578 non-virtual function here.
579
580 * decl2.c (grok_function_init): Don't check whether the function
581 is virtual here.
582 (grokfield): Don't call check_for_override here.
583
584 * decl.c (push_to_top_level): Start from inner_binding_level,
585 check class_shadowed in class levels.
586
587Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
588
589 * decl.c (resume_level): Ignore things that don't have names, instead
590 of core dumping.
591
592Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
593
594 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
595
596Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
597
598 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
599 synthesized dtor.
600
601 * parse.y (complete_type_name): Bind global_scope earlier.
602 (complex_type_name): Ditto.
603 (qualified_type_name): Remove.
604
2ee887f2
MS
605Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
606
607 * decl.c (grokfndecl): Move code that looks for virtuals in base
608 classes...
cffa8729 609 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
610 (finish_struct_1): Call it.
611
612 * cp-tree.h: Declare warn_sign_compare.
613
614 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
615 rather than extra_warnings to decide whether to warn about
616 comparison of signed and unsigned.
617
618 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
619 implies -Wsign-compare. -Wall doesn't imply -W.
620
621Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
622
623 * typeck.c (build_component_ref): Fix to handle anon unions in base
624 classes as well.
625
626Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
627
628 * class.c (resolves_to_fixed_type_p): Delete code dealing with
629 a WITH_CLEANUP_EXPR, since we don't generate them any more.
630 * cvt.c (build_up_reference): Likewise.
631 * decl.c (grok_reference_init): Likewise.
632 (cp_finish_decl): Likewise.
633 * error.c (dump_expr): Likewise.
634 * tree.c (real_lvalue_p): Likewise.
635 (lvalue_p): Likewise.
636 (build_cplus_new): Likewise.
637 (unsave_expr_now): Likewise.
638 * typeck.c (unary_complex_lvalue, build_modify_expr,
639 c_expand_return): Likewise.
640
641Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
642
643 Make the C++ front-end pay attention to attributes for structures.
644 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
645 finish_struct_1.
646 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
647 Take out old round_up_size use and setting the DECL_ALIGN possibly
648 using it. Take out setting of TYPE_ALIGN to round_up_size, which
649 can override what the attribute set.
650 * cp-tree.h (finish_struct): Update prototype.
651 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
652 attributes to finish_struct.
653 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
654 value down into finish_struct.
655 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
656
657Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
658
659 * decl.c (poplevel): Re-word dead for local handling.
660 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
661 (cp_finish_decl): If is_for_scope, check for duplicates so
662 we can disable is_for_scope. Otherwise, preserve_temp_slots.
663
664 * lex.c (do_identifier): Use global binding in preference of
665 dead for local variable.
666
667Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
668
669 * init.c (initializing_context): Handle anon union changes, the
670 context where fields of anon unions can be initialized now has to be
671 found by walking up the TYPE_CONTEXT chain.
672
673Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
674
675 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
676 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
677 (obscure_complex_init): If bss is supported, always set
678 DECL_INITIAL to error_mark_node.
679
680Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
681
682 * init.c (is_friend): Make sure there's a context before we see if
683 it's an aggr type.
684
685Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
686
687 * init.c (is_friend): Classes are not friendly with nested classes.
688
689Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
690
691 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
692 and record its result.
693
9e9ff709
MS
694Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
695
696 * class.c (finish_struct_anon): Switch around code to not move anon
697 union elements around, nor mess up their contexts, nor offsets,
698 instead we now build up the right number of COMPONENT_REFs for all
699 the anon unions that may be present at build_component_ref time.
700 * typeck.c (lookup_anon_field): New routine to handle field lookup
701 on fields without names. We find them, based upon their unique type
702 instead.
703 * typeck.c (build_component_ref): Allow FIELD_DECL components.
704 Handle finding components in anonymous unions, and ensure that a
705 COMPONENT_REF is built for each level as necessary.
706
707Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
708
709 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
710 code that ensures that copy ctors are used if appropriate.
711
712Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
713
714 * init.c (build_vec_delete): Only give an error if base isn't an
715 error_mark_node.
716
717Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
718
719 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
720 (yylex): If we see `new', keep slurping.
721
722Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
723
724 * class.c (finish_struct_1): Move code for handling anon unions...
725 (finish_struct_anon): to here. Fixup so that we do the offset
726 calculations right, and so that the fields are physically moved to
727 the containers's chain.
728
729Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
730
731 * decl.c (grokdeclarator): Avoid trying to get an operand off an
732 identifier node.
733
734Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
735
736 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
737 POINTER_SIZE to agree with expr.c.
738
739Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
740
741 * search.c (lookup_field): Don't report ambiguities if protect is 0,
742 instead return NULL_TREE.
743
744Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
745
746 * class.c (finish_struct_1): Call warn_hidden if we want warnings
747 about overloaded virtual functions.
748 (warn_hidden): New routine to warn of virtual functions that are
749 hidden by other virtual functions, that are not overridden.
750 (get_basefndecls): New routine, used by warn_hidden.
751 (mark_overriders): New routine, used by warn_hidden.
752 * search.c (get_matching_virtual): Remove old warning that just
753 isn't very useful.
754
755Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
756
757 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
758
759 * typeck.c (null_ptr_cst_p): Delete unused fn.
760 (build_function_call_maybe): Delete unused fn.
761
762 * expr.c (extract_init): #if 0 the code after unconditional return 0
763 for now.
764
765 Delete old cadillac code.
766 * edsel.c: Remove file.
767 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
768 * Makefile.in (CXX_OBJS): Delete edsel.o.
769 (edsel.o): Delete rule.
770 * cp-tree.h (flag_cadillac): Delete var decl.
771 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
772 * decl2.c (flag_cadillac): Delete var definition.
773 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
774 (grokfield): Delete code depending on flag_cadillac.
775 (finish_anon_union): Likewise.
776 * class.c (finish_struct_1): Likewise.
777 (pushclass): Likewise.
778 (popclass): Likewise.
779 (push_lang_context): Likewise.
780 (pop_lang_context): Likewise.
781 * decl.c (init_decl_processing): Likewise.
782 (start_decl): Likewise.
783 (cp_finish_decl): Likewise.
784 (xref_tag): Likewise.
785 (finish_enum): Likewise.
786 (start_function): Likewise.
787 (finish_function): Likewise.
788 (finish_stmt): Likewise.
789 * lex.c (lang_init): Likewise.
790 (check_newline): Likewise.
791
792 * lex.c (do_pending_inlines): Delete synthesized method kludge.
793
794 Delete defunct, ancient garbage collection implementation.
795 * rtti.c: New file with the RTTI stuff from gc.c.
796 * gc.c: Removed file (moved the remaining stuff into rtti.c).
797 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
798 (rtti.o): New rule, replacing gc.o.
799 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
800 * cp-tree.h: Delete gc-related fn decls.
801 (DECL_GC_OFFSET): Delete macro.
802 (flag_gc): Delete extern decl.
803 * decl.c (current_function_obstack_index): Delete var decl.
804 (current_function_obstack_usage): Delete var decl.
805 (start_function): Delete clearing of current_function_obstack_index
806 and current_function_obstack_usage.
807 (init_decl_processing): Delete code relying on -fgc.
808 Delete call to init_gc_processing.
809 (cp_finish_decl): Delete calls to build_static_gc_entry and
810 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
811 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
812 and to expand_expr of a __gc_main call.
813 (maybe_gc_cleanup): Delete var decl.
814 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
815 * decl2.c (flag_gc): Delete var decl.
816 (lang_f_options): Delete offering of -fgc.
817 (lang_decode_option): Delete -fgc and -fno-gc handling.
818 (get_temp_regvar): Delete gc code.
819 * init.c (build_new): Delete gc code.
820 * lex.c (init_lex): Delete checking of flag_gc.
821
822 * typeck.c (convert_arguments): Delete gc code.
823 (build_component_addr): Delete -fgc warning.
824 (build_modify_expr): Delete gc code.
825
826 * decl2.c (build_push_scope): Delete fn.
827 * cp-tree.h (build_push_scope): Delete decl.
828
829 * search.c (clear_search_slots): Delete fn.
830 * cp-tree.h (clear_search_slots): Delete decl.
831
832 * search.c (tree_needs_constructor_p): Delete fn.
833 * cp-tree.h (tree_needs_constructor_p): Delete decl.
834
835 * tree.c (id_cmp): Delete fn.
836
837 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
838 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
839
840 * tree.c (decl_value_member): Delete fn.
841 * cp-tree.h (decl_value_member): Delete decl.
842
843 * tree.c (list_hash_lookup_or_cons): Delete fn.
844 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
845
846 * method.c (cplus_exception_name): Delete fn.
847 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
848
849 * spew.c (shift_tokens): Delete fn.
850
851Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
852
853 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
854 to cp_finish_decl.
855 * parse.y: Ditto.
856
857Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
858
859 * tree.c (build_cplus_staticfn_type): Delete function definition;
860 never used.
861 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
862
863 * tree.c (virtual_member): Delete function definition; never used.
864 * cp-tree.h (virtual_member): Delete decl.
865
45537677
MS
866Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
867
868 * typeck.c (build_component_ref): Handle getting vbase pointers
869 out of complex multiple inheritance better.
870
871Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
872
873 * typeck.c (build_object_ref): Make sure we use the real type, not
874 any reference type.
875
876Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
877
878 * tree.c (build_exception_variant): Don't create new types if we
879 don't have to, also build new types on the right obstack.
880
881Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
882
883 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
884 (push_to_top_level): Call it for b->type_shadowed on class binding
885 levels.
45537677
MS
886
887Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
888
889 * search.c (expand_upcast_fixups): Fix so that offsets stored in
890 vbase_offsets are always right. Fixes a problem where virtual base
891 upcasting and downcasting could be wrong during conversions on this
892 during virtual function dispatch at ctor/dtor time when dynamic
893 vtable fixups for deltas are needed. This only sounds easier than
894 it is. :-)
895 (fixup_virtual_upcast_offsets): Change to reflect new calling
896 convention for expand_upcast_fixups.
897
898Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
899
900 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
901 check that it's usable as the bitfield width.
902
903Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
904
905 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
906 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
907 only ever used for functions in it.
908
909Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
910
911 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
912 (nested_type): Ditto.
913 (nested_name_specifier): Use lastiddecl.
914
915 * decl.c (grokdeclarator): Adjust accordingly.
916 * init.c (expand_member_init): Ditto.
917 * parse.y (base_class): Ditto.
918 * typeck2.c (build_functional_cast): Ditto.
919
920 * typeck2.c (build_functional_cast): Fill in name after we've
921 checked for non-aggr type.
922
be99da77
MS
923Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
924
925 * decl2.c (warn_pointer_arith): Default to on.
926
927Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
928
929 * lex.c (is_rid): New function.
930 * decl.c (grokdeclarator): Diagnose reserved words used as
931 declarator-ids.
932
933Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
934
935 * tree.c (get_decl_list): Don't lose cv-quals.
936
937 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
938 typespecs used as declarator-ids.
939
940Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
941
942 * decl.c (poplevel): When poping a level, don't give a warning for
943 any subblocks that already exist.
944
945Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
946
947 * typeck.c (build_object_ref): Finish what I started.
948
949 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
950
951 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
952
953 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 954 scope.
be99da77
MS
955
956Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
957
958 * decl.c (xref_tag): Handle passing a type in directly.
959
960 * parse.y (qualified_type_name): Pull out the type.
961 (nested_type): Ditto.
962 Take types directly instead of as identifiers.
963 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709
MS
964 as identifiers.
965 * decl.c (xref_basetypes): Ditto.
be99da77
MS
966 * init.c (expand_member_init): Ditto.
967 (build_member_call): Ditto.
968 (build_offset_ref): Ditto.
969 * typeck2.c (build_scoped_ref): Ditto, remove bogus code.
970 * method.c (do_build_assign_ref): Ditto.
971 * decl.c (grokdeclarator): Handle a type appearing as the
972 declarator-id for constructors.
973 * method.c (do_build_copy_constructor): current_base_init_list now
974 uses the types directly, not their names.
975 * init.c (sort_base_init): Ditto.
976 (expand_member_init): Ditto.
977 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77
MS
978
979Mon Jan 15 08:45:01 1996 Jeffrey A Law (law@cygnus.com)
980
981 * tree.c (layout_basetypes): Call build_lang_field_decl instead
982 of build_lang_decl if first arg is a FIELD_DECL.
983 (tree_copy_lang_decl_for_deferred_output): Reverse test for when
984 to copy DECL_MAIN_VARIANT and DECL_CHAIN.
985
986Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
987
988 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
989 non-empty.
990 * except.c (expand_start_catch_block): Set TREE_USED to avoid
991 warnings about the catch handler.
992
993Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
994
995 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 996 expand_target_expr.
be99da77
MS
997
998Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
999
1000 Fix access control to use trees rather than integers.
1001 * class.c (access_{default, public, protected, private,
1002 default_virtual, public_virtual, private_virtual}_node): Add
1003 definitions.
1004 (init_class_processing): Do creation of those nodes.
1005 * cp-tree.h (access_type): Delete enum decl.
1006 (access_{default, public, protected, private, default_virtual,
1007 public_virtual, private_virtual}_node): Add decls.
1008 (compute_access): Change return type.
1009 * search.c (compute_access): Have tree return type, instead of enum.
1010 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
1011 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
1012 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
1013 * parse.y (VISSPEC): Make ttype rather than itype.
1014 (base_class_access_list): Likewise.
1015 * *.[cy]: Change all refs of `access_public' to `access_public_node',
1016 etc.
1017 * call.c (build_method_call): Make ACCESS be a tree.
1018 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
1019 * cvt.c (convert_to_aggr): Likewise.
1020 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
1021 Likewise.
1022 * method.c (hack_identifier): Likewise.
1023 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
1024
1025Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
1026
1027 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
1028 frontend, and make it more consistent with respect to
1029 warn_pointer_arith.
1030
1031Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
1032
1033 * decl.c (pushdecl): Check for duplicate parameter names.
1034
1035Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
1036
1037 * decl.c (expand_static_init): Call assemble_external for atexit.
1038
1039Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
1040
1041 * except.c (do_unwind): Remove some generated dead code.
1042 (eh_outer_context): New routine, factor out some common code from
1043 expand_builtin_throw and end_eh_unwinder. Add code to do return
1044 address masking for the PA.
1045 (expand_builtin_throw): Use eh_outer_context instead of open coding
1046 it here.
1047 (end_eh_unwinder): Ditto.
1048
1049Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
1050
1051 * except.c (expand_throw): Call assemble_external for __empty, if we
1052 use it.
1053
21451173
MS
1054Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
1055
1056 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
1057 NORMAL_RETURN_ADDR_OFFSET.
1058 (end_eh_unwinder): Ditto.
1059
1060Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
1061
1062 * gc.c (build_dynamic_cast): Make sure we don't cast away const
1063 when dealing with references, and make sure we handle dynamic
1064 casting to a cv qualified reference.
1065
1066Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
1067
1068 * except.c (struct eh_context): New structure top hold eh context
1069 information.
1070 (push_eh_context): New routine.
1071 (pop_eh_context): Ditto.
1072 * decl.c (push_cp_function_context): Use them.
1073 (pop_cp_function_context): Ditto.
1074
1075Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
1076
1077 * decl2.c (finish_file): Also prune uninteresting functions in the
1078 inline emission loop.
1079
1080Wed Dec 20 02:32:07 1995 Jeffrey A Law (law@cygnus.com)
1081
1082 * sig.c (build_signature_table_constructor): Mark functions
1083 in the signature as referenced.
1084
1085Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
1086
1087 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
1088 the inline emission stuff.
1089
72b7eeff
MS
1090Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
1091
1092 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 1093 weak symbols.
72b7eeff
MS
1094 * lang-options.h: Add -f{no-,}weak.
1095 * decl.c (init_decl_processing): If the target does not support weak
1096 symbols, don't use them.
1097 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
1098
1099Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
1100
1101 * init.c (expand_member_init): warning for base init after members.
1102
1103Sun Dec 17 22:06:56 1995 Jeffrey A Law (law@cygnus.com)
1104
1105 * tree.c (tree_copy_lang_decl_for_deferred_output): Handle
1106 CONST_DECLs correctly.
1107
1108Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
1109
1110 * cvt.c (build_expr_type_conversion): Don't convert to a reference
1111 type.
1112
1113Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
1114
1115 * method.c (report_type_mismatch): Improve wording for volatile
1116 mismatches.
1117
1118Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
1119
1120 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 1121 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
1122 copy constructors well. The compiler would do bitwise copying,
1123 instead of ctor calling in some cases.
1124
1125Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
1126
1127 * g++.c (my_strerror): Return "cannot access" if errno is 0.
1128 (pfatal_with_name, perror_exec): Don't assume that
1129 the returned value from my_strerror contains no '%'s.
1130 (concat): Remove.
1131 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
1132
1133Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
1134
1135 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
1136 TYPE_METHODS/TREE_CHAIN mean what they used to.
1137 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
1138 instead of TYPE_METHODS.
1139 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
1140 * tree.c (tree_copy_lang_decl_for_deferred_output): Ditto.
1141 * cp-tree.h (CLASSTYPE_METHODS): Lose.
1142 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
1143 TYPE_METHODS.
1144 (struct lang_decl): Lose next_method field.
1145 (DECL_NEXT_METHOD): Lose.
1146 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
1147 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
1148 anymore.
1149 (finish_struct_methods): Don't mess with the TREE_CHAINs in
1150 fn_fields.
1151
1152 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
1153 vector.
1154
1155 * call.c (build_method_call): Synthesize here even when not inlining.
1156 * typeck.c (build_function_call_real): Ditto.
1157
1158Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
1159
1160 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
1161 == DBX_DEBUG, call dbxout_start_new_source_file and
1162 dbxout_resume_previous_source_file when appropriate.
1163
1164Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
1165
1166 * except.c (start_anon_func): Push to the top level.
1167 (end_anon_func): Pop from the top level.
1168
1169Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
1170
1171 * cp-tree.h (build_cleanup): New routine to build cleanups.
1172 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
1173 call at ctor time and use atexit to run it later.
1174 * decl2.c (build_cleanup): New routine, taken from finish_file.
1175 (finish_file): Use build_cleanup instead, and don't put function
1176 local statics in global dtor list.
1177
1178Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
1179
1180 * except.c (expand_throw): Ensure that we have cleanups, if we try
1181 and expand cleanups.
1182
1183Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
1184
1185 * except.c (expand_throw): Add logic to manage dynamic cleanups for
1186 the EH object.
1187 (expand_end_catch_block): Use the magic of expand_goto, instead of
1188 emit_jump so that we get the cleanup for any catch clause parameter
1189 and the cleanup for the exception object. Update to reflect label
1190 changes.
1191 (push_eh_cleanup): New routine to register a cleanup for an
1192 exception object.
9e9ff709 1193 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
1194 nothing.
1195 (init_exception_processing): Setup empty_fndecl. Setup
1196 saved_cleanup.
1197 (expand_start_catch_block): Update to reflect label changes. Call
1198 push_eh_object to register the cleanup for the EH object.
1199 (start_anon_func): New routine to start building lambda expressions
1200 from trees.
1201 (end_anon_func): New routine to end them.
1202 (struct labelNode): Change so that we can use tree labels, or rtx
1203 labels.
1204 (saved_cleanup): Object to check for dynamic cleanups for the
1205 exception handling object.
1206 (push_label_entry): Change so that we can use tree labels, or rtx
1207 labels.
1208 (pop_label_entry): Ditto.
1209 (top_label_entry): Ditto.
1210 (expand_start_all_catch): Use tree label instead of rtx label, so
1211 that we can get the magic of expand_goto.
1212 (expand_end_all_catch): Update to reflect label changes.
1213
1214 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
1215 use UNSAVE_EXPRs.
1216 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
1217 building_cleanup logic, as we now use UNSAVE_EXPRs.
1218 * cp-tree.h (unsave_expr): Declare it.
1219 * decl.c (building_cleanup): Remove.
1220 (maybe_build_cleanup): Remove building_cleanup logic, and use
1221 UNSAVE_EXPR instead.
1222
1223Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
1224
1225 * gc.c (build_t_desc): Update error message to say <typeinfo>.
1226
1227Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1228
1229 * decl.c (pushdecl): Only warn about shadowing a local variable if
1230 warn_shadow is true.
1231
1232Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
1233
1234 * typeck.c (build_binary_op_nodefault): Added warning about
1235 comparisons between different enum types with -Wall, unless
1236 -fenum-int-equiv set.
1237
1238Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
1239
1240 * class.c (finish_struct_1): Skip down to the inner type in
1241 multidimensional arrays. Ensures ctors will be made for types that
1242 need constructing.
1243
1244Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
1245
1246 * decl.c (last_dtor_insn): New to track the last compiler generated
1247 insn in a dtor.
1248 (store_parm_decls): Set it.
1249 (finish_function): Use it to see if the dtor is empty. Avoid doing
1250 vtable setup all the time, if we can.
1251 (struct cp_function): Add last_dtor_insn.
1252 (push_cp_function_context): Save it.
1253 (pop_cp_function_context): Restore it.
1254
1255Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
1256
1257 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 1258 warnings.
72b7eeff
MS
1259
1260Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
1261
1262 * typeck.c (expand_target_expr): Make sure targets get put into the
1263 current temp_slot_level, so that the free_temp_slots call will reuse
1264 them.
1265
1266Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
1267
1268 * class.c (finish_struct_1): Delay delta fixups for virtual bases
1269 until after we have done the hard virtuals, to avoid a bogus `every
1270 virtual function must have a unique final overrider' for virtual
1271 functions that are only overridden by hard virtuals.
1272
1273Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
1274
1275 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 1276 template for a member function.
72b7eeff
MS
1277
1278Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
1279
1280 * g++.c (main): Add handling of -nodefaultlibs.
1281
1282Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
1283
1284 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
1285 distinguish between direct bindings of reference variables, and
1286 indirect bindings of reference variables.
1287 * cvt.c (build_up_reference): Use it.
1288 * typeck.c (convert_arguments): Use it to indicate this is an
1289 indirect binding.
1290 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
1291 as they are unused.
1292 (expand_static_init): Diotto.
1293 (cplus_expand_expr_stmt): Ditto.
1294 * decl2.c (finish_file): Ditto.
1295 * init.c (perform_member_init): Ditto.
1296 (emit_base_init): Ditto.
1297 (expand_aggr_vbase_init_1): Ditto.
1298
1299Fri Nov 10 09:19:31 1995 Jeffrey A Law (law@cygnus.com)
1300
1301 * tree.c (tree_copy_lang_decl_for_deferred_output): Handle
1302 copying of DECL_ARGUMENTS field.
1303 (tree_copy_lang_type_for_deferred_output): Handle disgusting
1304 re-use of TYPE_LANG_SPECIFIC for pointer to member function
1305 type nodes.
1306
1307Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1308
1309 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
1310 get a DECL_LANG_SPECIFIC node.
1311 * cp-tree.h (lang_decl_flags): Add new member `level'.
1312 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
1313 decl_flags level member.
1314
1315Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1316
1317 * call.c (build_method_call): Make sure instance has a
1318 TYPE_LANG_SPECIFIC node before we dive into it.
1319
1320Sat Nov 4 20:01:52 1995 Jason Molenda (crash@phydeaux.cygnus.com)
1321
1322 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
1323
1324Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
1325
1326 * decl.c (duplicate_decls): When smashing decls, smash staticness in
1327 the usual way.
1328
1329Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
1330
1331 * decl.c (poplevel): Handle the merging of subblocks of cleanups
1332 when finishing blocks that have already been created (usually due to
1333 the fixup goto code). Fixes bad debugging information.
1334
1335Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
1336
1337 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
1338 that's not a list of overloaded functions.
1339
1340Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1341
1342 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
1343 before trying to use DECL_ABSTRACT_VIRTUAL_P.
1344
1345Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
1346
1347 * decl2.c (mark_used): New function for hooking into setting of
1348 TREE_USED on decls.
1349 * call.c (build_method_call): Use it.
1350 * class.c (instantiate_type): Ditto.
1351 * init.c (build_offset_ref): Ditto. Don't call assemble_external
1352 for all like-named functions.
1353 * method.c (hack_identifier): Ditto.
1354 (emit_thunk): Don't call assemble_external.
1355 (make_thunk): Create thunk as a FUNCTION_DECL so that it
1356 gets the right mode and ENCODE_SECTION_INFO works.
1357
1358 * parse.y: Use mark_used. Pass operator names to do_identifier.
1359 * lex.c (do_identifier): Handle operator names.
1360
1361 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
1362
1363Thu Oct 26 20:58:59 1995 Jeffrey A Law (law@cygnus.com)
1364
1365 * cp/tree.c (tree_copy_lang_decl_for_deferred_output): Handle
1366 FIELD_DECLs and VAR_DECLs correctly.
1367
1368Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1369
1370 * errfn.c: Include stdio.h.
1371 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
1372
1373Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
1374
1375 * typeck2.c (digest_init): Always convert initializers to the
1376 right type.
1377
1378Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
1379
1380 * init.c (member_init_ok_or_else): Don't allow member initializers
1381 for indirect members, as it is invalid.
1382
1383Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1384
1385 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
1386
1387Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
1388
1389 * parse.y (for.init.statement): Catch compound statements inside for
1390 initializations, if we're being pedantic.
1391
1392Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
1393
1394 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
1395 looking for.
1396
1397Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
1398
1399 * error.c (dump_expr): Don't core dump when a boolean expression is
1400 used as a default argument.
1401
1402Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
1403
1404 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 1405 RETURN_IN_MEMORY.
72b7eeff
MS
1406
1407Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
1408
1409 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
1410 BLKmode type that would otherwise be returned in registers.
1411
1412Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1413
1414 * g++.c (WITHLIBC): New macro.
1415 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
1416 saw_libc and pass it at the end if it was set.
1417
1418Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1419
1420 * parse.y (fn.def1): Call split_specs_attrs in
1421 declmods notype_declarator case.
1422
21451173 1423Sun Nov 26 14:47:42 1995 Richard Kenner <kenner@mole.gnu.ai.mit.edu>
1b898c06
MS
1424
1425 * Version 2.7.2 released.
1426
1427Mon Nov 20 14:05:00 1995 Mike Stump <mrs@cygnus.com>
1428
1429 * g++.c (pfatal_with_name): Add missing third argument to concat.
1430
e7843f33
MS
1431Thu Oct 26 13:59:54 1995 Mike Stump <mrs@cygnus.com>
1432
1433 * init.c (expand_aggr_init): Handle cv qualifiers on the object's
1434 type.
1435
21451173 1436Sat Nov 11 08:25:55 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
07674418
MS
1437
1438 * Version 2.7.1 released.
1439
1440Thu Nov 2 17:02:47 1995 Jason Merrill <jason@yorick.cygnus.com>
1441
1442 * call.c (convert_harshness): Handle references to arrays.
1443
1444Fri Oct 27 14:20:21 1995 Jason Merrill <jason@yorick.cygnus.com>
1445
1446 * typeck.c (comp_target_types): Check multi-level pointer
1447 conversions in both directions.
1448
1449Tue Oct 17 21:39:05 1995 Jason Merrill <jason@yorick.cygnus.com>
1450
1451 * parse.y (explicit_instantiation): Fix 'extern template' with no
1452 return type.
1453
1454Mon Oct 16 14:35:20 1995 Jason Merrill <jason@yorick.cygnus.com>
1455
1456 * parse.y (explicit_instantiation): Support automatic instantiation
1457 of constructors.
1458 (named_class_head_*): Support out-of-class definition of nested
1459 types.
1460
f30432d7
MS
1461Wed Oct 11 12:20:56 1995 Mike Stump <mrs@cygnus.com>
1462
1463 * search.c (envelope_add_decl): New routine. Fix so that
1464 methods are hidden in the same way that other members are.
1465 (dfs_pushdecls): Cleanup and move functionality out of line,
1466 into envelope_add_decl.
1467
1468Tue Oct 10 15:46:01 1995 Mike Stump <mrs@cygnus.com>
1469
1470 * typeck.c (mark_addressable): Only call assemble_external if we
1471 have started the output file.
1472
1473Tue Oct 10 11:27:18 1995 Jason Merrill <jason@yorick.cygnus.com>
1474
1475 * decl.c (start_function): Fix earlier cv-quals change.
1476
1477Mon Oct 9 23:53:05 1995 Mike Stump <mrs@cygnus.com>
1478
1479 * parse.y (complex_direct_notype_declarator): Only push the class if
1480 we are not already in the class.
1481
1482Mon Oct 9 11:22:03 1995 Doug Evans <dje@canuck.cygnus.com>
1483
1484 * decl.c (duplicate_decls): Call merge_machine_decl_attributes.
1485 Update olddecl's attributes too.
1486 (grokdeclarator): #if 0 out call to build_decl_attribute_variant.
1487 * typeck.c (common_type): Call merge_machine_type_attributes.
1488
1489Fri Oct 6 14:44:27 1995 Mike Stump <mrs@cygnus.com>
1490
1491 * typeck.c (mark_addressable): Add missing call to
1492 assemble_external.
1493
1494Wed Oct 4 22:05:23 1995 Jeff Law (law@hurl.cygnus.com
1495
1496 * cp/decl.c (deplicate_decls): Merge in deferred output
1497 status for variables.
1498 * cp/tree.c (tree_copy_lang_decl_for_deferred_output): New
1499 function to copy the g++ specific parts of a DECL node.
1500 (tree_copy_lang_type_for_deferred_output): Similarly for
1501 TYPE nodes.
1502
1503Wed Oct 4 15:06:39 1995 Mike Stump <mrs@cygnus.com>
1504
1505 * decl.c (store_parm_decls): Make sure the unwinder start comes
1506 before the exception specification start.
1507 * except.c (expand_exception_blocks): Make sure the unwinder end
1508 comes after the terminate protected catch clause region and after
1509 the end of the exception specification region.
1510
1511Wed Oct 4 12:47:02 1995 Jason Merrill <jason@yorick.cygnus.com>
1512
1513 * lex.c (real_yylex): Fix identifier case for linemode.
1514 (handle_sysv_pragma): Don't abort when we see a pragma we don't
1515 recognize.
1516
1517Tue Oct 3 14:09:46 1995 Mike Stump <mrs@cygnus.com>
1518
1519 * decl.c (store_parm_decls): Add a call to start_eh_unwinder.
1520 * except.c (init_exception_processing): __throw doesn't take any
1521 arguments.
1522 (expand_builtin_throw): Ditto. Always use Pmode, instead of SImode
1523 for all pointers. Use expand_builtin_return_addr to unwind the
1524 first level off the stack.
1525 (do_unwind): Always use Pmode, instead of SImode for all pointers.
1526 (expand_exception_blocks): Add a call to end_eh_unwinder.
1527 (start_eh_unwinder, end_eh_unwinder): New routines to build machine
1528 independent stack unwinders for function/method calls.
1529
1530Mon Oct 2 17:20:42 1995 Mike Stump <mrs@cygnus.com>
1531
1532 * tree.c (unsave_expr_now): Make sure we process the argument list
1533 of any called functions. Fixes incorrect code generation for
1534 cleanups.
1535
1536Mon Oct 2 13:04:16 1995 Mike Stump <mrs@cygnus.com>
1537
1538 * typeck.c (get_member_function_from_ptrfunc): Save function if it
1539 needs it. Cures core dump on things like (this->*(f()))().
1540
1541Sat Sep 23 22:51:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1542
1543 * decl.c (start_function): Conform to gcc cv-quals convention (no
1544 expression has a cv-qualified type) in RESULT_DECLs.
1545 * method.c (make_thunk): Ditto.
1546
1547Fri Sep 22 10:21:13 1995 Mike Stump <mrs@cygnus.com>
1548
1549 * decl.c (pushtag): Add in the namespace name for the tag.
1550
1551Thu Sep 21 13:11:13 1995 Mike Stump <mrs@cygnus.com>
1552
1553 * parse.y (maybe_base_class_list, base_class_list, base_class,
1554 base_class_access_list): Make sure we see the typenames for base
1555 classes.
1556 * lex.c (see_typename): Instead of failing to see a typename when
1557 there is no next token, perfer a typename, and get the next token.
1558
1559Wed Sep 20 12:35:27 1995 Michael Meissner <meissner@cygnus.com>
1560
1561 * decl.c (init_decl_processing): Add __builtin_expect.
1562
1563Tue Sep 19 16:48:11 1995 Mike Stump <mrs@cygnus.com>
1564
1565 * cvt.c (cp_convert_to_pointer): Don't allow leftover conversions to
1566 or from pointer to member functions, they must all be handled before
1567 this point.
1568
1569Fri Sep 15 17:14:47 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1570
1571 * init.c (resolve_offset_ref): Fix wording of non-static member
1572 being referenced as a static.
1573
1574Fri Sep 15 12:39:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1575
1576 * typeck.c (build_indirect_ref): Only bash pointer if we actually
1577 call build_expr_type_conversion.
1578
1579Thu Sep 14 18:24:56 1995 Jason Merrill <jason@deneb.cygnus.com>
1580
1581 * cvt.c (build_expr_type_conversion): Handle conversion from
1582 reference.
1583 * typeck.c (build_indirect_ref): Avoid infinite recursion.
1584
1585Thu Sep 14 17:23:28 1995 Mike Stump <mrs@cygnus.com>
1586
1587 * decl.c (expand_start_early_try_stmts): New routine to start a try
1588 block at the start of the function, for function-try-blocks.
1589 * cp-tree.h (expand_start_early_try_stmts): Declare it.
1590 * parse.y (function_try_block): Use it, instead of doing it here, as
1591 we don't want to include rtl.h here, as that conflicts with RETURN
1592 in the parser.
1593
1594Wed Sep 13 18:32:24 1995 Mike Stump <mrs@cygnus.com>
1595
1596 * lex.c (reinit_parse_for_block): Support saving inline
1597 function-try-blocks, uses peekyylex.
1598 * parse.y (eat_saved_input): New rule, permit the parser to see that
1599 END_OF_SAVED_INPUT is ok, as it can see this when parsing the
1600 handlers of a function-try-block.
1601 (fndef): Use it.
1602 (component_decl): Make sure TRY and RETURN can come after fn.def2.
1603 * spew.c (peekyylex): New routine to peek at what will come next.
1604
cf54380f
JM
1605Wed Sep 13 16:52:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1606
f30432d7 1607 * typeck.c (comptypes): Tighten up comparisons of template type
9e9ff709 1608 parms.
f30432d7 1609
cf54380f
JM
1610 * decl.c (duplicate_decls): Turn off whining about virtual functions
1611 redeclared inline for now.
1612
f30432d7
MS
1613Wed Sep 13 11:13:40 1995 Mike Stump <mrs@cygnus.com>
1614
1615 * decl.c (store_in_parms): New routine to put things before we
1616 put base inits.
1617 * cp-tree.h (store_in_parms): Declare it.
1618 * decl.c (store_parm_decls): Use it to makr sure the starting of the
1619 eh spec comes before base inits.
1620 (finish_function): Use sequences instead of the obsolete
1621 reorder_insns.
1622 * parse.y (fndef): Enhance readability and maintainability. Update
1623 to include function_try_block syntax.
1624 (function_try_block): Add.
1625
1626Tue Sep 12 17:43:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1627
1628 * call.c (convert_harshness): Use comptypes, not ==, to check if
1629 TYPE and PARMTYPE are equivalent on a function type.
1630
2453e8d1
DR
1631Tue Sep 12 17:31:33 1995 Douglas Rupp (drupp@cs.washington.edu)
1632
1633 * Make-lang.in (cc1plus) : Removed unnecessary $(exeext).
1634
f30432d7
MS
1635Mon Sep 11 23:24:07 1995 Mike Stump <mrs@cygnus.com>
1636
1637 * except.c (expand_throw): Never allocate storage for thrown pointer
1638 to objects.
1639
1640Mon Sep 11 19:36:45 1995 Mike Stump <mrs@cygnus.com>
1641
1642 * except.c (expand_start_catch_block): Pointers to objects come
1643 back from catch matching already dereferenced, don't dereference
1644 again.
1645
1646Mon Sep 11 15:46:28 1995 Mike Stump <mrs@cygnus.com>
1647
1648 * except.c (expand_throw): Only decay the throw expression, don't do
1649 any default conversions. This is so that one can throw and catch
1650 characters, and not have them match integers.
1651
1652Mon Sep 11 13:46:45 1995 Mike Stump <mrs@cygnus.com>
1653
1654 * error.c (dump_aggr_type): Deal with anonymous unions that don't
1655 have a TYPE_NAME.
1656
38267a70
BK
1657Fri Sep 8 20:40:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1658
1659 * lex.c (handle_sysv_pragma): Deal with getting a comma from yylex.
1660
f30432d7
MS
1661Fri Sep 8 15:51:41 1995 Mike Stump <mrs@cygnus.com>
1662
1663 * except.c (expand_end_eh_spec): Handle empty EH specifications.
1664
1665Fri Sep 8 15:27:22 1995 Mike Stump <mrs@cygnus.com>
1666
1667 * cp-tree.h (expand_start_eh_spec): Declare new routine.
1668 (expand_end_eh_spec): Ditto.
1669 * decl.c (store_parm_decls): Call expand_start_eh_spec to process
1670 exception specifications.
1671 * except.c (expand_leftover_cleanups): Remove unused parameter.
1672 (expand_end_catch_block): Ditto.
1673 (expand_exception_blocks): Ditto.
1674 (expand_start_eh_spec): New routine to mark the start of an
1675 exception specification region.
1676 (expand_end_eh_spec): New routine to mark the end of an exception
1677 specification region.
1678 (expand_exception_blocks): Call expand_end_eh_spec to process
1679 exception specifications.
1680
b37d04bc
PB
1681Fri Sep 8 14:40:48 1995 Per Bothner <bothner@kalessin.cygnus.com>
1682
1683 * lex.c (do_identifier): Use global binding in preference of
1684 dead for local variable.
1685
f30432d7
MS
1686Wed Sep 6 19:32:59 1995 Mike Stump <mrs@cygnus.com>
1687
1688 * cp-tree.h (build_exception_variant): Remove used first argument.
1689 * decl.c (duplicate_decls): Ditto.
1690 (grokfndecl): Ditto.
1691 (revert_static_member_fn): Ditto.
1692 * decl2.c (grok_method_quals): Ditto.
1693 * tree.c (build_exception_variant): Ditto.
1694 * typeck.c (common_type): Ditto.
1695 * decl2.c (grokclassfn): After changing the type, call
1696 build_exception_variant, if necessary.
1697
1698Tue Sep 5 15:56:27 1995 Mike Stump <mrs@cygnus.com>
1699
1700 * except.c (expand_throw): Run cleanups for the throw expression.
1701
1702Wed Aug 30 15:24:38 1995 Stephen L. Favor (sfavor@tigger.intecom.com)
1703
1704 * except.c (expand_builtin_throw): Moved gen_label_rtx calls beyond
1705 the store_parm_decls call which does initialization in the emit_*
1706 code concerning label numbering.
1707
1708Thu Aug 31 09:01:07 1995 Mike Stump <mrs@cygnus.com>
1709
1710 * except.c (expand_internal_throw): Let the frontend be responsible
1711 for managing all frontend EH parameters, the backend routine only
1712 needs to deal with backend values. type and value are no longer
1713 passed to __throw.
1714 (init_exception_processing): Ditto.
1715 (expand_start_all_catch): Ditto.
1716 (expand_end_all_catch): Ditto.
1717 (expand_leftover_cleanups): Ditto.
1718 (expand_end_catch_block): Ditto.
1719 (expand_builtin_throw): Ditto.
1720 (expand_throw): Ditto.
1721
1722Tue Aug 29 15:04:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1723
1724 * cp-tree.h (DECL_REAL_CONTEXT): Give the real declaration context
1725 for a decl.
1726 * decl.c (cp_finish_decl): Use it.
1727
1728Tue Aug 29 10:30:27 1995 Mike Stump <mrs@cygnus.com>
1729
1730 * except.c (expand_internal_throw): Oops, almost forgot type and
1731 value are now trees.
1732
1733Mon Aug 28 17:57:45 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1734
1735 Fix the attribute handling to make sure they get noted before we
1736 create the function's RTL, in case they can affect that.
1737 * decl.c (grokfndecl): New arg ATTRLIST. Run
1738 cplus_decl_attributes before creating the decl's rtl.
1739 (grokdeclarator): New arg ATTRLIST, passed down into grokfndecl.
1740 (shadow_tag, groktypename, start_decl, start_method): Pass a
1741 NULL_TREE to grokdeclarator's new last arg.
1742 * decl2.c (grokfield): New arg ATTRLIST, passed into grokdeclarator.
1743 (grokbitfield, grokoptypename): Pass a NULL_TREE to
1744 grokdeclarator's new last arg.
1745 * except.c (expand_start_catch_block): Likewise.
1746 * pt.c (process_template_parm, end_template_decl,
1747 do_function_instantiation): Likewise.
1748 * cp-tree.h (grokfield): Add arg.
1749 (grokdeclarator): Move the prototype from here...
1750 * decl.h: ...to here.
1751 * lex.c (cons_up_default_function): Pass NULL_TREE to grokfield
1752 ATTRLIST argument.
1753 * parse.y: Create a list for the grokfield arg where appropriate,
1754 and pass it down instead of calling cplus_decl_attributes.
1755
1756Mon Aug 28 15:07:24 1995 Mike Stump <mrs@cygnus.com>
1757
1758 * except.c: Always allow turning on exception handling. Allow cross
1759 compilations to use EH.
1760
1761Thu Aug 24 17:39:24 1995 Mike Stump <mrs@cygnus.com>
1762
1763 * except.c (saved_pc, saved_throw_type, saved_throw_value): Use
1764 trees, instead of rtxs, and don't depend on using special machine
1765 dependent registers.
1766 (expand_internal_throw): Ditto.
1767 (init_exception_processing): Ditto.
1768 (expand_start_all_catch): Ditto.
1769 (expand_end_all_catch): Ditto.
1770 (expand_start_catch_block): Ditto.
1771 (expand_leftover_cleanups): Ditto.
1772 (expand_end_catch_block): Ditto.
1773 (expand_builtin_throw): Ditto.
1774 (expand_throw): Ditto.
1775
1776Wed Aug 23 17:25:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1777
1778 * cvt.c (build_expr_type_conversion): Handle conversions to
1779 reference types.
1780
1781Wed Aug 23 15:33:59 1995 Mike Stump <mrs@cygnus.com>
1782
1783 * except.c (do_unwind): Work around backend bug with -fpic.
1784
fb409a19
PB
1785Tue Aug 22 17:20:07 1995 Per Bothner <bothner@kalessin.cygnus.com>
1786
1787 * decl2.c (flag_new_for_scope): Add a new mode that follows ANSI
1788 for-scoping, but supports (and warns about) old programs.
1789 Make the new mode (with value 1) the default.
1790 (lang_f_options): The on-value for flag_new_for_scope is now 2.
1791 * cp-tree.h (DECL_DEAD_FOR_LOCAL, DECL_ERROR_REPORTED): New macros
1792 (DECL_SHADOWED_FOR_VAR): Likewise.
1793 * decl.c (struct binding_level): New fields dead_vars_from_for
1794 and is_for_scope.
1795 (note_level_for_for): New function.
1796 (poplevel): Special processing if is_for_scope.
1797 (pushdecl): Warn if for-scope variable shadows local.
1798 * lex.c (do_identifier): Handle old (non-ANSI) for scoping,
1799 and warn if conflicts.
1800 * parse.y (FOR): Call note_level_for_for.
1801
f30432d7
MS
1802Mon Aug 21 10:28:31 1995 Jason Merrill <jason@deneb.cygnus.com>
1803
1804 * decl2.c (import_export_inline): Class interface hackery does not
1805 apply to synthesized methods.
1806
1807Sun Aug 20 16:29:00 1995 Mike Stump <mrs@cygnus.com>
1808
1809 * search.c (virtual_context): Find the right context more often.
1810 Solves a `recoverable compiler error, fixups for virtual function'
1811 problem.
1812
1813Sun Aug 20 13:53:24 1995 Mike Stump <mrs@cygnus.com>
1814
1815 * except.c (expand_start_all_catch): Ensure that we always transfer
1816 control to the right EH handler, by rethrowing the end label on the
1817 region, instead of hoping we are nested and falling through.
1818 (expand_leftover_cleanups): Ditto.
1819 (end_protect): Since we now rethrow the end label, put a
1820 nop after it, so that outer regions are recognized.
1821 * init.c (build_vec_delete_1): New routine to handle most of vector
1822 deleting, all code moved here from build_vec_delete.
1823 (build_array_eh_cleanup): Use build_vec_delete_1 to do all the real
1824 work.
1825 (expand_vec_init): If the array needs partial destructing, setup an
1826 EH region to handle it.
1827 (build_vec_delete): Move lots of code to build_vec_delete_1, use
1828 build_vec_delete_1 to do the grunt work.
1829
1830Sat Aug 19 14:25:33 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1831
1832 Handle decl attributes properly for function definitions without
1833 previous attribute-loaded declarations.
1834 * decl.c (start_function): New arg ATTRS. Add a call to
1835 cplus_decl_attributes with it before we create the RTL.
1836 * cp-tree.h (start_function): Update prototype.
1837 * parse.y (fn.def1): Pass ATTRS into start_function instead of
1838 trying to call cplus_decl_attributes too late. Pass a NULL_TREE
1839 for other use.
1840 * decl2.c (finish_file): Pass NULL_TREE as fourth arg to
1841 start_function.
1842 * method.c (synthesize_method): Likewise.
1843 * except.c (expand_builtin_throw): Likewise for start on __throw.
1844
1845Sat Aug 19 13:36:08 1995 Mike Stump <mrs@cygnus.com>
1846
1847 * class.c (set_rtti_entry): Turn on -fvtable-thunk -frtti support.
1848 This changes -fvtable-thunks vtable layout, so a recompile will be
1849 necessary, if you use -fvtable-thunks.
1850 (get_vtable_entry): Use n, instead of i to be consistent with the
1851 rest of the compiler.
1852 (get_vtable_entry_n): Ditto.
1853 (add_virtual_function): Add a slot for the tdesc, if -fvtable-thunks
1854 are being used.
1855 (finish_struct_1): Ditto.
1856 (skip_rtti_stuff): New routine to collapse similar code from many
1857 different parts of the compiler. I think I got them all.
1858 (modify_one_vtable): Use it.
1859 (fixup_vtable_deltas1): Ditto.
1860 (override_one_vtable): Ditto.
1861 * decl2.c (mark_vtable_entries): Ditto.
1862 * tree.c (debug_binfo): Ditto.
1863 * search.c (expand_upcast_fixups): Ditto.
1864 (get_abstract_virtuals_1): Ditto. Use virtuals, instead of tmp to
1865 consistent with the rest of the compiler.
1866 (get_abstract_virtuals): Ditto.
1867 * cp-tree.h (skip_rtti_stuff): New routine, declare it.
1868 * gc.c (build_headof): Support -fvtable-thunk and -frtti together.
1869 (build_typeid): Ditto.
1870 (build_classof): Remove old style way of doing rtti. Remove support
1871 for `classof' and `headof'.
1872 * gxx.gperf: Ditto.
1873 * hash.h: Ditto.
1874 * parse.y: Ditto.
1875
1876Fri Aug 18 17:31:58 1995 Jason Merrill <jason@deneb.cygnus.com>
1877
1878 * decl.c (start_function): Clear ctor_label and dtor_label.
1879
1880 * class.c (finish_struct_1): Fix handling of access decls.
1881
1882Tue Aug 15 19:21:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1883
1884 * class.c (finish_struct): Only do minimal processing here, so it
1885 can be used for class template definitions, as well.
1886 (finish_struct_1): New function with the rest of the code.
1887
1888Tue Aug 15 09:46:16 1995 Mike Stump <mrs@cygnus.com>
1889
1890 * class.c (prepare_fresh_vtable): On second though, always build the
1891 offset (see Aug 10 change), unless -fvtable-thunks is given. It
1892 does this by calling the new routine set_rtti_entry.
1893 (finish_struct): Ditto.
1894 (set_rtti_entry): New routine to update the rtti information at the
1895 start of the vtable.
1896
1897Mon Aug 14 12:21:22 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1898
1899 * error.c (dump_decl, case IDENTIFIER_NODE): Only work on a dtor
1900 if it's declared in the C++ language spec.
1901 (dump_function_decl): Likewise.
1902 (dump_function_name): Likewise.
1903 (ident_fndecl): Make sure we got something back from lookup_name.
1904 * decl.c (start_function): Likewise.
1905
1906Fri Aug 11 16:52:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1907
1908 * call.c (build_method_call): Don't call build_new when calling a
1909 constructor without an instance.
1910
1911Thu Aug 10 20:00:17 1995 Mike Stump <mrs@cygnus.com>
1912
1913 * class.c (prepare_fresh_vtable): Always build the offset to the
1914 complete object, as it doesn't cost much. This allows dynamic_cast
1915 to void * to work when -frtti isn't given.
1916 (finish_struct): Ditto.
1917
1918Thu Aug 10 16:31:28 1995 Mike Stump <mrs@cygnus.com>
1919
1920 * except.c (build_eh_type): Split out some functionality to new
1921 routine named build_eh_type_type.
1922 (build_eh_type_type): New routine.
1923 (expand_start_catch_block): Use build_eh_type_type, as we never want
1924 the dynamic type of the catch parameter, just the static type.
1925 Fixes core dumps when -frtti is used and one catchs pointers to
1926 classes.
1927
1928Thu Aug 10 14:55:29 1995 Mike Stump <mrs@cygnus.com>
1929
1930 * except.c (expand_builtin_throw): Since we now use normal calling
1931 conventions for __throw, we have to remove the first layer off the
1932 stack, so that the next context we search for handlers is the outer
1933 context instead of the context that had the call to __throw, if we
1934 don't immediately find the desired context.
1935
1936Tue Aug 8 17:44:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1937
1938 * tree.c (cp_expand_decl_cleanup): Returns int, not tree.
1939 * cp-tree.h: Update.
1940
1941 * parse.y (template_type_parm): Add support for `typename'.
1942
1943Tue Aug 8 12:06:31 1995 Mike Stump <mrs@cygnus.com>
1944
1945 * except.c (expand_internal_throw): New internal routine to throw a
1946 value.
1947 (expand_end_all_catch, expand_leftover_cleanups): All throwers
1948 changed to use `expand_internal_throw' instead of jumping to throw
1949 label.
1950 (expand_end_catch_block, expand_throw): Ditto.
1951 (throw_label): Removed.
1952 (expand_builtin_throw): Changed so that EH parameters are passed by
1953 normal function call conventions. Completes Aug 4th work.
1954
1955Fri Aug 4 17:17:08 1995 Mike Stump <mrs@cygnus.com>
1956
1957 * cp-tree.h (expand_builtin_throw): Declare it.
1958 * decl2.c (finish_file): Call expand_builtin_throw.
1959 * except.c (make_first_label): Remove.
1960 (init_exception_processing): Don't use a LABEL_REF for throw_label,
1961 instead use a SYMBOL_REF, this is so that we don't use LABEL_REFs in
1962 other functions that don't really appear in those functions. This
1963 solves a problem where cc1plus consumed exponential amounts of
1964 memory when -Wall was used.
1965 (expand_end_all_catch, expand_leftover_cleanups,
1966 expand_end_catch_block, expand_throw): Change all uses of
1967 throw_label to match new style.
1968 (do_unwind): Rename parameter to inner_throw_label, as it is now
1969 different from throw_label. Also, assume that our caller will wrap
1970 the passed label with a LABEL_REF, if needed.
1971 (expand_builtin_throw): Make external, change so that the generated
1972 throw is now a real function.
1973 (expand_exception_blocks): Never generate throw code inside another
1974 function.
1975
1976Fri Aug 4 12:20:02 1995 Mike Stump <mrs@cygnus.com>
1977
1978 * decl.c (grokdeclarator): Move checking of mutable const objects
1979 and mutable static objects down, as we might decide during parsing
1980 to unset staticp or constp (for example, when const is part of the
1981 object being pointed to).
1982
1983Thu Aug 3 17:13:43 1995 Mike Stump <mrs@cygnus.com>
1984
1985 * except.c (output_exception_table_entry): Enhance portability to
1986 weird machines.
1987 (emit_exception_table): Ditto.
1988
1989Thu Aug 3 16:41:38 1995 Mike Stump <mrs@cygnus.com>
1990
1991 * typeck.c (build_ptrmemfunc): Handle casting of pointer to
1992 non-virtual member functions.
1993
1994Wed Aug 2 11:58:25 1995 Mike Stump <mrs@cygnus.com>
1995
1996 * gc.c (build_typeid): Strip cv qualifiers so that const T&, T&, T
1997 and const T all match.
1998
1999Wed Aug 2 11:25:33 1995 Mike Stump <mrs@cygnus.com>
2000
2001 * except.c (build_eh_type): Strip cv qualifiers so that const T&,
2002 T&, T and const T all match.
2003
2004Tue Aug 1 14:20:16 1995 Mike Stump <mrs@cygnus.com>
2005
2006 * except.c: Fix up comments, cleanup code and eliminate exceptNode,
2007 exceptStack, exceptstack, push_except_stmts, pop_except_stmts,
2008 new_except_stack, push_last_insn, pop_last_insn, insn_save_node and
2009 InsnSave. Also, numerous speed improvements, and correctness
2010 improvements. Double faulting in all situations should now be
2011 handled correctly.
2012 (expand_start_all_catch): Instead of having many terminate protected
2013 regions, just have one.
2014 (expand_start_catch_block): No longer have to protect
2015 false_label_rtx, as it isn't used for EH region marking.
2016 (expand_end_catch_block): Expand out EH cleanups here by using
2017 expand_leftover_cleanups.
2018 (expand_end_all_catch): Use sequences instead of playing with insn
2019 links directly.
2020 (expand_exception_blocks): Ditto. Also protect all catch clauses
2021 with one terminate region.
2022
2023Mon Jul 31 13:24:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2024
2025 * method.c (report_type_mismatch): Don't talk about an object
2026 parameter for non-methods.
2027
2028Sun Jul 30 13:13:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2029
2030 * class.c (finish_struct): Catch private and protected members of
2031 anonymous unions here.
2032 * decl2.c (finish_anon_union): And here.
2033 * parse.y: Instead of here.
2034
2035 * errfn.c (ARGSLIST): Support passing four args.
2036 * error.c (cv_as_string): New function.
2037 (cp_printers): Add it.
2038 * call.c (build_method_call): Report 'const' at end of pseudo-decl.
2039
2040 * method.c (report_type_mismatch): Deal with a bad_arg of 0.
2041
2042 * init.c (expand_aggr_init): Handle volatile objects, too.
2043
2044Sat Jul 29 13:42:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2045
2046 * decl.c (struct binding_level): Keep list of incomplete decls.
2047 (print_binding_level): Use list_length to count them.
2048 (pushdecl): Build up the list.
2049 (hack_incomplete_structures): Walk it and prune completed decls.
2050
2051Fri Jul 28 15:26:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2052
2053 * typeck.c (comp_target_types): Don't check const and volatile for
2054 function types.
2055 (comp_ptr_ttypes_real): Ditto.
2056
2057Thu Jul 27 15:40:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2058
2059 * typeck.c (comp_target_types): Fix.
2060
2061Thu Jul 27 15:10:48 1995 Mike Stump <mrs@cygnus.com>
2062
2063 * cp-tree.h (unsave_expr_now, build_unsave_expr,
2064 cp_expand_decl_cleanup): Declare new routines.
2065 * decl.c (cp_finish_decl, store_parm_decls,
2066 hack_incomplete_structures): Change all cals from
2067 expand_decl_cleanup to cp_expand_decl_cleanup.
2068 * gc.c (protect_value_from_gc): Ditto.
2069 * expr.c (cplus_expand_expr): Handle UNSAVE_EXPRs.
2070 * tree.c (unsave_expr): New routine to build an UNSAVE_EXPR.
2071 (unsave_expr_now): Backend routine used by tree expander.
2072 (cp_expand_decl_cleanup): Wrap second argument in an UNSAVE_EXPR to
2073 work around a limitation in the backend. The backend uses the
2074 cleanups multiple times, on disjoint control flows, so we cannot
2075 pass unsaved SAVE_EXPRs to the backend.
2076 * tree.def (UNSAVE_EXPR): New tree code.
2077 * typeck.c (c_expand_return): Move goto/return code up inside
2078 conditional, as we don't always want to do this, we only want to do
2079 this when we don't otherwise finish with this control flow.
2080
2081Thu Jul 27 10:38:43 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2082
2083 * parse.y (typespec): Only complain about typeof if we're not
2084 getting it from a system header.
2085
2086Thu Jul 27 10:26:23 1995 Doug Evans <dje@canuck.cygnus.com>
2087
2088 Clean up prefix attribute handling.
2089 * parse.y (reserved_declspecs): Link prefix attributes with declspecs.
2090 (declmods): Likewise.
2091 (all rules that reference typed_declspecs and declmods): Call
2092 split_specs_attrs or strip_attrs to separate declspecs and attrs.
2093 (lang_extdef): Delete resetting of prefix_attributes.
2094 (template_def, notype_declarator rule): Use NULL_TREE for
2095 prefix_attributes.
2096 (condition): Use NULL_TREE for prefix_attributes.
2097 (setattrs): Deleted.
2098 (nomods_initdcl0): Set prefix_attributes to NULL_TREE.
2099 (component_decl): Delete resetting of prefix_attributes.
2100 (component_decl_1, notype_components rule): Use NULL_TREE for
2101 prefix_attributes.
2102 (simple_stmt): Delete resetting of prefix_attributes.
2103
2104Mon Jul 24 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2105
2106 * call.c (convert_harshness): Deal with reference conversions before
2107 others. Actually do array->pointer decay. Call comp_target_types
2108 with pointer types rather than their targets.
2109
2110 * typeck.c (comp_target_types): Avoid assigning D const * to B *.
2111
2112Mon Jul 24 08:54:46 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2113
2114 * pt.c (to_be_restored): Move decl to global scope.
2115
2116Sat Jul 22 12:22:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2117
2118 * decl.c (start_decl): Put back clearing of DECL_IN_AGGR_P.
2119
2120Fri Jul 21 17:09:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2121
2122 * decl.c (grokdeclarator): Downgrade error about 'extern int A::i'
2123 to pedwarn.
2124
2125 * pt.c (instantiate_template): Also avoid instantiation if the
2126 function has already been declared to be a specialization.
2127
2128 * decl2.c (check_classfn): Ignore cname argument, and return the
2129 matching function.
2130
2131 * decl.c (start_decl): Handle declarations of member functions
2132 outside of the class (i.e. specialization declarations).
2133
2134Thu Jul 20 10:34:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2135
2136 * class.c (finish_struct): Don't mess with the type of bitfields.
2137
2138 * various.c: s/TYPE_POINTER_TO/build_pointer_type/.
2139
2140Thu Jul 20 01:43:10 1995 Mike Stump <mrs@cygnus.com>
2141
2142 * init.c (expand_aggr_init): Assume LOOKUP_ONLYCONVERTING if init
2143 is not a parameter list (TREE_LIST).
2144 (expand_default_init): If LOOKUP_ONLYCONVERTING is set, then set
2145 LOOKUP_NO_CONVERSION so that we don't allow two-level conversions,
2146 but don't set it otherwise.
2147
2148Wed Jul 19 20:32:01 1995 Mike Stump <mrs@cygnus.com>
2149
2150 * init.c (expand_default_init): Don't allow two-level conversions
2151 during construction.
2152
2153Wed Jul 19 18:06:37 1995 Mike Stump <mrs@cygnus.com>
2154
2155 * gc.c (build_headof): The type of dyncasting to a pointer to cv
2156 void, should be pointer to cv void.
2157
2158Wed Jul 19 17:25:43 1995 Mike Stump <mrs@cygnus.com>
2159
2160 * gc.c (build_dynamic_cast): Allow casting in const.
2161
2162Wed Jul 19 16:34:27 1995 Mike Stump <mrs@cygnus.com>
2163
2164 * typeck.c (build_const_cast): If we are passed error_mark_node,
2165 return it.
2166
2167Wed Jul 19 15:24:48 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2168
2169 * class.c (push_nested_class): Make sure TYPE is non-nil.
2170
2171 * cvt.c (type_promotes_to): Watch for error_mark_node on the
2172 incoming TYPE.
2173
2174Wed Jul 19 13:23:12 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
f65f5f62
GB
2175
2176 * cp-tree.h (SIGTABLE_VT_OFF_NAME): Renamed from SIGTABLE_OFFSET_NAME.
2177 (SIGTABLE_VB_OFF_NAME): New macro.
2178 (vt_off_identifier): Renamed from offset_identifier.
2179 (vb_off_identifier): Added extern declaration.
2180
2181 * decl.c (vt_off_identifier): Renamed from offset identifier.
2182 (vb_off_identifier): New variable to hold the identifier for the
2183 sigtable field vb_off.
2184 (init_decl_processing): Initialize vb_off_identifier.
2185 Renamed vt_off_identifier from offset_identifier.
2186 * sig.c (build_signature_method_call): Renamed offset_identifier and
2187 local variable offset to vt_off_identifer and vt_off, respecitively.
2188 * sig.c (build_signature_table_constructor): Renamed offset to vt_off.
2189
2190 * decl.c (init_decl_processing): Add vb_off field to
2191 sigtable_entry_type. Reorder fields so that pfn gets properly
2192 aligned at a 64 bit boundary on the Alpha.
2193 * sig.c (build_signature_table_constructor): Build the constructor
2194 according to the new layout. Set the vb_off field to -1 for now.
2195
2196 * decl.c (init_decl_processing): Align sigtable_entry_type on word
2197 boundaries instead of double word boundaries to save space.
2198
f30432d7
MS
2199Tue Jul 18 16:58:37 1995 Mike Stump <mrs@cygnus.com>
2200
2201 * cvt.c (cp_convert): Always call build_cplus_new for a ctor.
2202
2203Tue Jul 18 14:24:53 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2204
2205 * parse.y (opt.component_decl_list): Only forbid private/protected
2206 in anonymous unions. We need to make this know when the type is
2207 defined for an object, to not give the error.
2208
2209Mon Jul 17 14:22:44 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2210
2211 * parse.y (opt.component_decl_list): Don't allow access control
2212 as private or protected for union members.
2213
2214Sun Jul 16 14:01:00 1995 Jim Wilson <wilson@chestnut.cygnus.com>
2215
2216 * lex.c (check_newline): For 'p' case, move goto skipline line to
2217 before end brace for 'pragma'.
2218
2219Fri Jul 7 13:55:58 1995 Mike Stump <mrs@cygnus.com>
2220
2221 * g++.1: Tiny updates.
2222
2223Fri Jul 7 13:05:20 1995 Mike Stump <mrs@cygnus.com>
2224
2225 * decl.c (cp_finish_decl): Only destruct local static variables if
2226 they are constructed, and only construct the first time control
2227 passes completely through its declaration (if not initialized with a
2228 constant-expression).
2229 (expand_static_init): Ditto.
2230
2231Wed Jul 5 14:05:04 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2232
2233 * typeck.c (comptypes, case OFFSET_REF): If either offset basetype
2234 is a TEMPLATE_TYPE_PARM, give a match.
2235
f30432d7
MS
2236Fri Jun 30 15:42:57 1995 Mike Stump <mrs@cygnus.com>
2237
2238 * method.c (build_overload_value): Handle encoding of null pointer
2239 constants (or any pointer with a constant numeric value) for
2240 templates.
2241
42783eab
BK
2242Fri Jun 30 13:45:51 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2243
2244 * call.c (convert_harshness): Add QUAL_CODE when we're faced with
2245 const vs non-const for void conversions.
2246
f30432d7
MS
2247Fri Jun 30 10:19:52 1995 Mike Stump <mrs@cygnus.com>
2248
2249 * except.c (expand_start_all_catch): Fix problem with finding an
2250 outer nested try block when there is no code to separate it from an
2251 inner try block.
2252
2253Fri Jun 30 02:22:26 1995 Mike Stump <mrs@cygnus.com>
2254
2255 * search.c (dfs_pushdecls): Consume 2 or 3 orders of magnitude less
2256 memory please when virtual bases are used.
2257
2258Thu Jun 29 19:03:47 1995 Mike Stump <mrs@cygnus.com>
2259
2260 * class.c (build_vbase_path): Avoid testing things that cannot be
2261 null to see if they are null.
2262 * cvt.c (convert_pointer_to_vbase): Remove code that doesn't work.
2263 * decl.c (finish_function): Pass a type into the new
2264 convert_pointer_to_vbase instead of a binfo.
2265 * search.c (convert_pointer_to_vbase): Rewritten to use get_vbase
2266 and convert_pointer_to_real.
2267 (expand_indirect_vtbls_init): Use convert_pointer_to_vbase instead
2268 of the more cryptic call to get_vbase.
2269
e18923b4 2270Thu Jun 29 09:35:05 1995 Mike Stump <mrs@cygnus.com>
535c9c21
MS
2271
2272 * decl.c (BOOL_TYPE_SIZE): Fix broken SLOW_BYTE_ACCESS check.
2273
f30432d7
MS
2274Thu Jun 29 03:43:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2275
2276 * pt.c (instantiate_template): Don't strip 'this' twice.
2277
2278 * pt.c (coerce_template_parms): Allow null pointer constants.
2279
2280 * decl.c (revert_static_member_fn): But only if DECL_ARGUMENTS is
2281 set.
2282
f30432d7
MS
2283Wed Jun 28 18:39:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2284
2285 * decl.c (revert_static_member_fn): Also remove 'this' from
2286 DECL_ARGUMENTS.
2287 * decl2.c (check_classfn): Don't revert this function until we get a
2288 match.
2289
2290Wed Jun 28 14:07:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2291
2292 * parse.y (component_decl): Clear PREFIX_ATTRIBUTES here.
2293
2294Wed Jun 28 11:05:13 1995 Mike Stump <mrs@cygnus.com>
2295
2296 * decl2.c (finish_file): Handle global vector news.
2297 * init.c (build_new): Encode vector news so that later we will know
2298 how many elements there are.
2299
e18923b4 2300Mon Jun 26 13:38:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
415bfbd0
JM
2301
2302 * expr.c (cplus_expand_expr): Don't mess with temp slots.
2303
f30432d7
MS
2304 * decl2.c (warn_if_unknown_interface): Don't crash if tinst_for_decl
2305 returns null.
2306
2307 * decl2.c (check_classfn): Use revert_static_member_fn.
2308 * decl.c (revert_static_member_fn): Diagnose static member functions
2309 declared const or volatile.
2310
2311 * decl2.c (grokfield): Check for missing default args here, too.
2312 (check_default_args): Function to do the checking.
2313 * decl.c (pushdecl): Use it.
2314
2315 * decl.c (pushdecl): Don't warn about shadowing a member of `this'
2316 if there is no `this'.
2317
2318Sun Jun 25 11:34:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2319
2320 * call.c (build_method_call): Downgrade 'called before definition'
2321 to a warning, as it ought to go away after Monterey.
2322
2323Sat Jun 24 14:18:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2324
2325 * pt.c (coerce_template_parms): Don't do extra checking on pointer
2326 to member arguments.
2327
2328 * class.c (finish_struct): const and reference members don't prevent
2329 a class from being an aggregate.
2330
2331 * class.c (finish_struct): Signatures are always aggregates.
2332
f7d9d4a8
JM
2333Fri Jun 23 17:20:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2334
f30432d7
MS
2335 * decl2.c (check_classfn): Improve error message.
2336
2337 * pt.c (tsubst): Handle PROMOTE_PROTOTYPES.
f7d9d4a8 2338
f7522313
JM
2339Thu Jun 22 01:50:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2340
f30432d7 2341 * typeck.c (comptypes): Don't ignore method quals.
f7522313 2342
f30432d7
MS
2343 * class.c (finish_struct): Non-abstract virtuals are always USED.
2344
2345 * decl.c (build_ptrmemfunc_type): The underlying union type isn't
2346 IS_AGGR_TYPE, either.
2347 * class.c (finish_struct): Use CLASSTYPE_NON_AGGREGATE instead.
2348 * cp-tree.h: Ditto.
2349
2350 * cp-tree.h (lang_type): Add aggregate.
2351 (CLASSTYPE_AGGREGATE): New macro.
2352 (TYPE_NON_AGGREGATE_CLASS): Ditto.
2353 * class.c (finish_struct): Determine whether a class is an
2354 aggregate.
2355 * decl.c (cp_finish_decl): Check TYPE_NON_AGGREGATE_CLASS instead of
2356 TYPE_NEEDS_CONSTRUCTING.
2357 * typeck2.c (digest_init): Check TYPE_NON_AGGREGATE_CLASS for
2358 subobjects, too.
2359
2360 * pt.c (tsubst, PARM_TYPE): Propagate DECL_ARTIFICIAL.
d8f1d487
RK
2361
2362 * decl.c (start_function): For pre-parsed functions, layout all of
2363 the parm decls again.
2364 (grokvardecl): TREE_PUBLIC depends on DECL_THIS_EXTERN, not
2365 DECL_EXTERNAL.
2366
f30432d7
MS
2367 * pt.c (coerce_template_parms): Improve checking for invalid
2368 template parms.
2369
2370Wed Jun 21 12:01:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2371
2372 * decl.c (grokdeclarator): Forbid declaration of a static member
2373 with the same name as its enclosing class.
2374
d8f1d487
RK
2375Mon Jun 19 10:28:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2376
2377 * decl.c (finish_function): Clear current_class_decl.
2378
2379 * typeck.c (build_conditional_expr): Use convert (boolean_type_node
2380 instead of truthvalue_conversion.
2381
2382 * class.c (finish_struct): A data member with the same name as the
2383 class doesn't suppress constructors.
2384
2385Fri Jun 16 18:11:39 1995 Gerald Baumgartner (gb@alexander.cs.purdue.edu)
2386
2387 * decl.c (start_function): If current_class_decl is a signature
2388 pointer, don't dereference it but set C_C_D to current_class_decl.
2389
2390Fri Jun 16 17:06:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2391
2392 * decl.c (duplicate_decls): Complain about virtual functions
2393 redeclared to be inline.
2394
2395Fri Jun 16 13:20:38 1995 Mike Stump <mrs@cygnus.com>
2396
2397 * decl.c (get_unique_name): New routine to name unnamed namespaces.
2398 (push_namespace): Use get_unique_name for naming unnamed namespaces.
2399
d3c89e1f
JM
2400Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2401
d8f1d487 2402 * parse.y: Call cplus_decl_attributes with prefix_attributes where
f30432d7 2403 appropriate.
d8f1d487
RK
2404
2405Wed Jun 14 19:24:49 1995 Mike Stump <mrs@cygnus.com>
2406
2407 * search.c (get_vbase): New routine to switch hierarchies from the
2408 CLASSTYPE_VBASECLASSES to the normal one.
2409 (expand_indirect_vtbls_init): Use get_vbase to figure out how we
2410 want to convert to a vbase pointer.
2411
2412Mon Jun 12 17:50:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2413
2414 * pt.c (instantiate_class_template): Add the new instantiation to
f30432d7 2415 template_classes.
d8f1d487
RK
2416 (do_pending_expansions): Call instantiate_member_templates on all of
2417 the classes in template_classes.
2418
2419Mon Jun 12 12:36:59 1995 Mike Stump <mrs@cygnus.com>
2420
2421 * decl.c (complete_array_type): Fill in the TYPE_DOMAIN of our
2422 TYPE_MAIN_VARIANT if it is not filled in.
2423 * init.c (build_delete): If the TYPE_DOMAIN is not set, give an
2424 error instead of core dumping.
2425
2426Mon Jun 12 10:41:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2427
2428 * call.c (can_convert): Also check for distance > 0.
2429 (can_convert_arg): Ditto.
2430 (user_harshness): Ditto.
2431
2432Fri Jun 9 19:17:21 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2433
2434 * g++.c (MATH_LIBRARY): Provide default.
2435 (main): Always link with the math library if we link with libstdc++.
2436
2437 * decl.c (start_function): Complain about redefinition of a function
2438 even when the pending_inline version is compiled after the other
2439 version.
2440
2441Thu Jun 8 15:44:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2442
2443 * gc.c (build_dynamic_cast): Build up a reference to a parameter of
2444 aggregate type.
2445
d8f1d487
RK
2446Wed Jun 7 15:31:57 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
2447
2448 * init.c (build_vec_delete): Resolve an offset ref before we try to
2449 use it.
2450
2451Wed Jun 7 14:19:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2452
2453 * typeck.c (build_modify_expr): If the class lacks a constructor or
2454 assignment operator, return error_mark_node.
2455 (common_type): Use build_cplus_array_type.
2456
2457Tue Jun 6 09:41:27 1995 Mike Stump <mrs@cygnus.com>
2458
2459 * class.c (dont_allow_type_definitions): New variable set when types
2460 cannot be defined.
2461 (finish_struct): Use it.
2462 * cp-tree.h (dont_allow_type_definitions): Define it.
2463 * parse.y (primary, handler_seq): Set it.
2464
2465Mon Jun 5 18:49:38 1995 Mike Stump <mrs@cygnus.com>
2466
2467 * method.c (build_opfncall): Use DECL_CHAIN, not TREE_CHAIN for
2468 results from lookup_fnfields. Always give warning/error on bad
2469 code.
2470
2471Mon Jun 5 11:39:37 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
2472
2473 * init.c (member_init_ok_or_else): Don't allow initialization of
2474 an ancestor's member from within a constructor.
2475
2476Mon Jun 5 11:20:34 1995 Gerald Baumgartner (gb@alexander.cs.purdue.edu)
2477
2478 * sig.c (build_signature_table_constructor): Use DECL_CONTEXT
2479 instead of DECL_CLASS_CONTEXT for calculating the vfield offset so
2480 abstract virtual functions are handled correctly.
2481
2482 * sig.c (build_signature_table_constructor): Store the correct
2483 delta in signature table entries. It does not yet work for
2484 classes with virtual base classes as implementations of signatures.
2485 (build_signature_method_call): Add the delta to the object_ptr
2486 before generating the function call.
2487
2488 * call.c (build_method_call): Make instance_ptr the signature
2489 pointer itself instead of dereferencing the optr.
2490 * sig.c (build_signature_method_call): Dereference the optr for the
2491 direct and virtual calls.
2492
2493 * sig.c (build_signature_table_constructor): Make the tag for
2494 default implementations -1 instead of 2.
2495 (build_signature_method_call): Change the generated conditional
2496 expression correspondingly.
2497
2498 * sig.c (build_signature_pointer_constructor): Deleted the sorry
2499 message that said we can't handle multiple inheritance for
2500 implementations of signatures
2501 (build_signature_method_call): Use the offset from the sigtable
2502 entry instead of the vptr field from the signature pointer for
2503 building a virtual function call.
2504
2505 * class.c (build_vfn_ref): Deleted signature specific code, we don't
2506 call this function anymore from build_signature_method_call.
2507
2508 * cp-tree.h (SIGNATURE_VPTR_NAME): Deleted. We use the right vptr
2509 field in the object now instead of in the signature pointer/ref.
2510 (build_vptr_ref): Deleted extern declaration.
2511 * sig.c (build_vptr_ref): Deleted.
2512 (build_signature_pointer_or_reference_type): Deleted construction of
2513 the vptr field.
2514 (build_signature_pointer_constructor): Deleted initialization of/
2515 assignment to the vptr field.
2516
2517 * sig.c (build_signature_table_constructor): Convert the signature
2518 table entry fields to their correct types.
2519
2520 * sig.c (build_signature_table_constructor): Don't call digest_init
2521 for the fields of a sigtable entry, it's wasted time.
2522
2523 * sig.c (build_signature_table_constructor): Correctly set the
2524 offset and index fields of a sigtable entry. Build the constructor
2525 the way digest_init does, digest_init can't handle initializing an
2526 anonymous union inside a struct.
2527 (build_signature_method_call): Use the index field instead of the
2528 delta field to get the vtable index.
2529
2530 * decl.c (init_decl_processing): Fix number of fields for building
2531 sigtable_entry_type.
2532
2533 * cp-tree.h (tag_identifier, offset_identifier): Added extern decls.
2534 (SIGTABLE_CODE_NAME): Renamed to SIGTABLE_TAG_NAME.
2535 (SIGTABLE_PFN_NAME): Deleted, we'll use VTABLE_PFN_NAME instead.
2536 * decl.c (tag_identifier, offset_identifier): New variables to
2537 hold the identifiers for the sigtable fields tag and offset.
2538 (init_decl_processing): Initialize these variables.
2539 (init_decl_processing): Use these variables to build the
2540 sigtable_entry_type structure. Rename the code and offset fields
2541 to tag and delta, respectively; add offset and index fields. Changed
2542 types of fields from short_integer_type_node to delta_type_node.
2543 * sig.c (build_signature_table_constructor): Rename code and offset
2544 to tag and delta, respectively.
2545 (build_signature_method_call): Ditto. Use above variables.
2546
d8f1d487
RK
2547Thu Jun 1 17:03:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2548
2549 * decl.c (lookup_name_real): Don't try to look anything up in an
2550 erroneous object.
2551
2552Fri Jun 2 10:30:14 1995 Mike Stump <mrs@cygnus.com>
2553
2554 * method.c (build_overload_int): New routine. Break out
2555 functionality from build_overload_value so we can reuse it.
2556 (build_overload_value): Handle pointer to member functions as value
2557 parameters for templates.
2558 (build_overload_identifier): Since template parameters are shared
2559 among all instantiations, we have to substitute in the real types
2560 in TREE_TYPE (parm).
2561 pt.c (coerce_template_parms): Ditto.
2562 (push_template_decls): Ditto.
2563 (grok_template_type): Deleted as template parameters are shared
2564 among all instantiations.
2565
2566Wed May 31 19:10:32 1995 Mike Stump <mrs@cygnus.com>
2567
2568 * decl.c (grokdeclarator): Always give errors on constant overflow
2569 for array indices.
2570
2571Wed May 31 11:39:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2572
2573 * typeck.c (commonparms): Don't abort if simple_cst_equal returns < 0.
2574 (build_c_cast): Don't tack on a NON_LVALUE_EXPR when casting to
2575 reference type.
2576 (build_indirect_ref): Fix check for *&.
2577
72b7eeff
MS
2578Fri Jun 16 06:54:03 1995 Mike Stump <mrs@cygnus.com>
2579
2580 * Version 2.7.0 released.
2581
2582Fri Jun 16 15:07:29 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
2583
2584 * Make-lang.in (DEMANGLER_PROG): Add LIBS.
2585
2586Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2587
2588 * decl.c (define_function): Don't set DECL_INTERFACE_KNOWN.
2589
2590Wed Jun 7 20:00:31 1995 Mike Stump <mrs@cygnus.com>
2591
2592 * *.[chy]: Change all callers of finish_decl to cp_finish_decl.
2593 * decl.c (finish_decl): New routine to handle call backs from the
2594 mid end (declare_hidden_char_array).
2595
2596Wed Jun 7 19:02:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2597
2598 * decl.c (start_function): Handle setting C_C_D here.
2599 (set_C_C_D): Removed.
2600 (struct saved_scope): Remove class_decl.
2601 (push_to_top_level): Don't save current_class_decl.
2602 (pop_from_top_level): Don't restore current_class_decl or C_C_D.
2603 (struct cp_function): Add C_C_D.
2604 (push_cp_function_context): Save C_C_D.
2605 (pop_cp_function_context): Restore C_C_D.
2606
2607Fri Jun 2 11:05:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2608
2609 * decl.c (set_C_C_D): New function. suspend_momentary before
2610 building C_C_D.
2611 (pop_from_top_level): Call it.
2612 (start_function): Ditto.
2613 (pop_cp_function_context): Ditto.
2614
2615 * class.c, cp-tree.h, decl.c, decl2.c, parse.y: Lose all references
2616 to current_vtable_decl, CLASSTYPE_INST_VAR and CLASSTYPE_VTBL_PTR.
2617
2618 * decl.c (push_cp_function_context): Save current_class_decl.
2619 (pop_cp_function_context): Restore current_class_decl and set C_C_D.
2620 (pop_from_top_level): Don't use CLASSTYPE_INST_VAR to set C_C_D.
2621 (start_function): Ditto.
2622
2623 * class.c (popclass): Don't mess with current_class_decl,
2624 current_vtable_decl, or C_C_D.
2625
2626Mon May 29 12:45:10 1995 Paul Eggert <eggert@twinsun.com>
2627
2628 * Make-lang.in (c++.mostlyclean): Remove $(DEMANGLER_PROG).
2629
b796119f
RK
2630Wed May 24 15:55:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
2631
2632 * decl.c (duplicate_decls): Check simple_cst_equal result against 0.
2633 * decl2.c (finish_anon_union): Likewise.
2634 * method.c (largest_union_member): Likewise.
2635
103894f1
L
2636Wed May 24 14:41:11 1995 H.J. Lu (hjl@nynexst.com)
2637
2638 * Make-lang.in (cxxmain.o): Replace single quotes with backslashes.
2639
fbb47000
RK
2640Mon May 22 17:38:48 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
2641
2642 * Make-lang.in (g++, g++-cross, cc1plus, DEMANGLER_PROG):
2643 Use $@ instead of output name so works even if have .exe.
2644 (cxxmain.o): Use cp if ln -s fails.
2645 (c++.install-man): Use $(exeext) in executable names.
2646 (c++.mostlyclean, stage[1-4]): Use $(objext) in object file names.
2647 * Makefile.in (../cc1plus): Use $(exeext) in name of executable.
2648
878cd289
MS
2649Wed May 24 01:39:03 1995 Jason Merrill <jason@deneb.cygnus.com>
2650
2651 * call.c (build_method_call): parms can be null, duh.
2652
2653Tue May 23 01:32:09 1995 Jason Merrill <jason@deneb.cygnus.com>
2654
2655 * call.c (build_method_call): If convert_arguments failed, just bail.
2656
2657Fri May 19 10:31:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2658
2659 * cvt.c (convert_force): Pass LOOKUP_NORMAL to cp_convert.
2660
2661 * tree.c (copy_to_permanent): Oops.
2662
2663Fri May 19 10:01:07 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
2664
2665 * cp-tree.h (break_out_target_exprs): Add decl.
2666
2667Thu May 18 13:02:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2668
2669 * decl.c (start_function): Move *all* interface handling stuff after
2670 the pushdecl.
2671
2672 * tree.c (mapcar): Renamed from make_deep_copy and generalized.
2673 (perm_manip): Return t if permanent, otherwise 0.
2674 (copy_to_permanent): Use them.
2675 (bot_manip): Helper for break_out_target_exprs.
2676 (break_out_target_exprs): New function. Uses mapcar.
2677
2678 * typeck.c (convert_arguments): Use it.
2679
2680 * method.c (hack_identifier): Use convert_from_reference to
2681 dereference a reference.
2682
2683Wed May 17 17:54:54 1995 Mike Stump <mrs@cygnus.com>
2684
2685 * call.c (convert_harshness): Move reference bashing before pointer
2686 to member bashing.
2687
2688Wed May 17 16:57:53 1995 Mike Stump <mrs@cygnus.com>
2689
2690 * cvt.c (convert_to_reference): Only complain, if complaints are
2691 wanted.
d8f1d487 2692 * typeck.c (build_function_call_real): Ditto. If LOOKUP_SPECULATIVELY
878cd289 2693 is set and something won't work, return NULL_TREE.
d8f1d487 2694 * cvt.c (cp_convert): Ditto. Pass flags down to build_method_call.
878cd289 2695 (convert): Pass LOOKUP_NORMAL to cp_convert.
d8f1d487 2696 * typeck.c (convert_for_assignment): Ditto.
878cd289 2697 (convert_force): Pass LOOKUP_COMPLAIN to cp_convert.
d8f1d487 2698 (convert_arguments): Get out early if we get an error_mark_node.
878cd289
MS
2699 (convert_for_initialization): Use cp_convert instead of convert so
2700 that we can pass flags down.
2701 * cp-tree.h (LOOKUP_SPECULATIVELY): Added documentation.
2702
c19a8067
JM
2703Wed May 17 01:43:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2704
878cd289
MS
2705 * typeck2.c (store_init_value): Don't take the MAIN_VARIANT of the
2706 decl type.
2707
c19a8067
JM
2708 * class.c (finish_struct): Don't complain about a class with no
2709 user-defined constructors but with a member that has no default
2710 constructor, as this is OK for aggregates.
2711
2712 * expr.c (cplus_expand_expr, NEW_EXPR): If this is an explicit
2713 constructor call, mark slot addressable.
2714
eacd15bc
DR
2715Tue May 16 18:37:51 1995 Douglas Rupp (drupp@cs.washington.edu)
2716
2717 * g++.c: Changed WINNT to _WIN32.
2718
a9aedbc2
MS
2719Tue May 16 12:40:16 1995 Jason Merrill <jason@lisa.cygnus.com>
2720
2721 * lex.c (handle_sysv_pragma): Don't use token_buffer.
2722
2723Tue May 16 12:05:26 1995 Mike Stump <mrs@cygnus.com>
2724
2725 * call.c (resolve_scope_to_name): Add initial semantic support for
2726 namespaces.
2727 * class.c (finish_struct): Ditto.
2728 * cp-tree.h (NAMESPACE_LEVEL): Ditto.
2729 * cvt.c (build_up_reference, convert_to_reference): Ditto.
2730 * decl.c (binding_level::namespace_p, suspend_binding_level): Ditto.
2731 (resume_binding_level, toplevel_bindings_p): Ditto
2732 (namespace_bindings_p, declare_namespace_level): Ditto.
2733 (resume_level, push_namespace, pop_namespace): Ditto.
2734 (pop_everything, pushtag, duplicate_decls, pushdecl): Ditto.
2735 (implicitly_declare, lookup_namespace_name, lookup_name_real): Ditto.
2736 (start_decl, make_temporary_for_reference), Ditto.
2737 (obscure_complex_init, finish_decl, expand_static_init): Ditto.
2738 (grokvardecl, grokdeclarator, parmlist_is_exprlist): Ditto.
2739 (store_parm_decls, hack_incomplete_structures): Ditto.
2740 * decl2.c (get_temp_name, finish_anon_union, current_namespace): Ditto.
2741 (push_namespace, pop_namespace, do_namespace_alias): Ditto.
2742 (do_toplevel_using_decl, do_class_using_decl): Ditto.
2743 * error.c (dump_decl): Ditto.
2744 * init.c (build_member_call, build_offset_ref): Ditto.
2745 * lex.c (identifier_type): Ditto.
2746 * parse.y (lang_extdef, using_decl, extdef, component_decl_1): Ditto.
2747 (nested_name_specifier_1): Ditto.
2748 * spew.c (yylex): Ditto.
2749 * tree.def (NAMESPACE_DECL): Ditto.
2750
2751Tue May 16 11:55:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2752
2753 * decl.c (push_overloaded_decl): Return the new decl even if it
2754 can't be pushed.
2755
2756Tue May 16 11:00:37 1995 Jason Merrill <jason@lisa.cygnus.com>
2757
2758 * typeck.c (decay_conversion): Split out from default_conversion.
2759 (default_conversion): Call it.
2760 (build_binary_op): Ditto.
2761 (build_binary_op_nodefault): Use decay_conversion for truth ops.
2762
2763Mon May 15 12:47:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2764
2765 * decl.c (warn_extern_redeclared_static): This is a pedwarn.
2766 (duplicate_decls): Always use the old decl's linkage info. Don't
2767 play with linkage of consts.
2768 (pushdecl): Don't play with linkage of consts.
2769 (redeclaration_error_message): Don't complain about an old public
2770 decl and a new non-public decl here.
2771 (grokvardecl): Handle linkage of consts here.
2772 (grokdeclarator): An 'extern inline' is public. Pass constp to
2773 grokvardecl.
2774 (start_function): Wait until after the pushdecl to do some linkage
2775 stuff.
2776
2777 * decl2.c (import_export_vtable): Make duplicates weak rather than
2778 static if supported.
2779 (import_export_inline): Ditto.
2780 * pt.c (do_pending_expansions): Ditto.
2781
2782 * class.c (build_vbase_path): flag_assume_nonnull_objects only
2783 affects reference conversion.
2784
2785 * init.c (emit_base_init): Build up an RTL_EXPR and add it to
f30432d7 2786 rtl_expr_chain.
a9aedbc2
MS
2787 * decl.c, decl2.c: s/base_init_insns/base_init_expr/.
2788
7154457b
PE
2789Tue May 16 07:06:28 1995 Paul Eggert <eggert@twinsun.com>
2790
2791 * method.c (numeric_output_need_bar): Renamed from misspelling.
2792
45ca9d09
RK
2793 * typeck.c (build_ptrmemfunc): Fix misspellings in messages.
2794
7ab7b006
RK
2795Sun May 14 10:26:22 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2796
2797 * lang-options.h, lang-specs.h: New files.
2798
fd378c9d
JM
2799Thu May 11 00:31:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2800
2801 * typeck.c (default_conversion): Don't check for BLKmode before
2802 pulling out the decl_constant_value.
2803
2804 * decl.c (start_function): Clear named_labels and shadowed_labels.
2805
2806 * typeck.c (build_function_call_real): Also synthesize methods here.
2807
2808Wed May 10 00:55:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2809
2810 * decl2.c (finish_file): Synthesize exported methods before the
2811 reconsider loop.
2812
2813 * parse.y: Move declaration of flag_new_for_scope to file scope.
2814
863adfc0
MS
2815Tue May 9 19:10:33 1995 Mike Stump <mrs@cygnus.com>
2816
2817 * decl2.c: Add flag_new_for_scope for new -ffor-scope flag.
2818 * parse.y (FOR): Conditionalize the pushing and poping of scope for
2819 the for-init-statement upon the new flag_new_for_scope.
2820 * parse.y (try_block): Simplify and use compstmt.
2821
2822Mon May 8 12:41:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2823
2824 * decl.c (define_function): Mark function decl artificial.
2825
2826Sun May 7 00:51:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2827
2828 * parse.y (simple_stmt, FOR): Put back push/pop for condition scope.
2829
2830 * decl2.c (grokclassfn): DECLs don't have cv-qualified types.
2831 * tree.c (build_cplus_method_type): Ditto.
2832
2833 * cp-tree.h (SET_DECL_ARTIFICIAL): Just set DECL_ARTIFICIAL to 1.
2834
2835 * typeck.c (build_function_call_real): If convert_arguments failed,
2836 just bail.
2837 (convert_arguments): If one of the arguments is error_mark_node,
2838 just bail.
2839
2840Sat May 6 02:39:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2841
2842 * decl.c (duplicate_decls): Don't check DECL_NOT_REALLY_EXTERN for
2843 decls that don't include it.
2844
2845Fri May 5 14:23:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2846
2847 * decl.c (duplicate_decls): Decls that have DECL_INTERFACE_KNOWN or
2848 DECL_NOT_REALLY_EXTERN set aren't extern decls.
2849
2850 * typeck.c (build_indirect_ref): Don't call default_conversion for a
2851 parameter of reference_type.
2852 * cvt.c (convert_from_reference): Just use build_indirect_ref.
2853
2854 * pt.c (do_type_instantiation): Only instantiate member functions
2855 that actually come from templates.
2856
2857Fri May 5 09:46:05 1995 Mike Stump <mrs@cygnus.com>
2858
2859 * parse.y: Generalized cleanup of poplevels, and compound statements
2860 and compound statements in try blocks. Rewritten `for' rule so that
2861 the scope of variables declared in the for clause is shortened to
2862 span just to the end of the statement, instead of the whole
2863 containing block.
2864
2865Fri May 5 00:37:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2866
2867 * call.c (convert_harshness): Handle pointers to members better.
2868
2869Thu May 4 16:00:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2870
2871 * decl2.c (delete_sanity): Do access control here.
2872 * init.c (build_delete): Instead of here.
2873
2874 * Make-lang.in: Build c++filt.
2875
2876Wed May 3 02:59:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2877
2878 * decl2.c (cplus_decl_attributes): If we just modified a TYPE_DECL,
2879 update our IDENTIFIER_TYPE_VALUE.
2880
a5894242
MS
2881Fri Apr 28 07:58:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2882
2883 * lex.c (cons_up_default_function): Fix linkage of #pragma
2884 implemented functions.
2885
2886Thu Apr 27 16:56:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2887
2888 * method.c (build_overload_name): Simplify and fix repeated type
2889 folding.
2890
2891 * decl.c (grokdeclarator): Prohibit pointers to void or reference
f30432d7 2892 members.
a5894242
MS
2893
2894Thu Apr 27 09:49:07 1995 Mike Stump <mrs@cygnus.com>
2895
2896 * typeck2.c (process_init_constructor): Make sure initializers are
2897 fully digested.
2898
2899Thu Apr 27 01:11:55 1995 Jason Merrill <jason@python.cygnus.com>
2900
2901 * lex.c (cons_up_default_function): Always defer synthesis.
2902
2903Thu Apr 27 00:20:37 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2904
2905 * decl2.c (mark_inline_for_output): Don't play with pending_inline
2906 stuff.
2907
2908Wed Apr 26 17:48:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2909
2910 * call.c (user_harshness): New function; like build_type_conversion,
2911 but doesn't actually build anything.
2912 (compute_conversion_costs): Use it instead of build_type_conversion.
2913
2914Wed Apr 26 17:11:25 1995 Jason Merrill <jason@deneb.cygnus.com>
2915
2916 * typeck.c (build_function_call_real): Improve error message for
2917 calling a non-function.
2918
2919 * method.c (hack_identifier): Lose check for calling a data member.
2920
2921Wed Apr 26 16:59:13 1995 Mike Stump <mrs@cygnus.com>
2922
2923 * typeck2.c (build_functional_cast): Remove very old cruft.
2924 Seems like good code is generated without it.
2925
2926Wed Apr 26 00:47:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2927
2928 * method.c (do_build_assign_ref): Fix handling of anonymous unions.
2929 (do_build_copy_constructor): Ditto.
2930
2931 * parse.y (simple_stmt, SWITCH): Call {push,pop}_switch.
2932
2933 * decl.c (push_switch): New function.
2934 (pop_switch): Ditto.
2935 (define_case_label): Check for jumping over initialization.
2936
2937 * call.c (build_method_call): Check for an inline function being
2938 called before its definition has been seen.
2939 * typeck.c (build_function_call_real): Ditto.
2940
2941 * decl.c (duplicate_decls): Check for a function being redeclared
2942 inline after its address has been taken.
2943
2944 * typeck.c (build_conditional_expr): Handle related class lvalues.
2945
2946Tue Apr 25 13:20:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2947
2948 * pt.c (do_pending_expansions): Don't expand unused templates.
2949
2950 * parse.y (component_decl): Accept a lone semicolon.
2951
2952Tue Apr 25 00:25:56 1995 Jason Merrill <jason@rtl.cygnus.com>
2953
2954 * call.c (build_method_call): Don't allow an RTL_EXPR to serve as the
2955 object parameter anymore.
2956
2957 * expr.c (cplus_expand_expr): Don't create RTL_EXPRs with no insns.
2958
2959Mon Apr 24 12:35:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2960
2961 * parse.y (simple_stmt, decl case): Clear prefix_attributes.
2962 (lang_extdef): Ditto.
2963
2964 * parse.y (maybe_parmlist): New rule for use in declarators where
2965 this could either be a list of expressions or parameters. Calls
2966 suspend_momentary before deciding which.
2967 (direct_after_type_declarator): Use it.
2968 (complex_direct_notype_declarator): Use it.
2969
2970 * pt.c (tsubst): Propagate attributes const and noreturn.
2971
2972 * typeck.c (build_modify_expr): If warn_synth, call build_opfncall
2973 before doing the default thing.
2974
2db70b29
DE
2975Thu Apr 27 21:49:36 1995 Doug Evans <dje@cygnus.com>
2976
2977 * typeck.c (common_type): Call lookup_attribute instead of
2978 value_member.
2979
91887f0b
RK
2980Tue Apr 25 18:07:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
2981
2982 * Make-lang.in: Change "realclean" to "maintainer-clean".
2983
e8abc66f
MS
2984Sun Apr 23 12:32:38 1995 Mike Stump <mrs@cygnus.com>
2985
2986 * decl2.c (finish_file): Fix broken linked list handling.
2987
2988Fri Apr 21 18:08:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2989
2990 * class.c (finish_base_struct): Don't set TYPE_HAS_COMPLEX_*_REF
2991 as often.
2992 (finish_struct): Ditto.
2993
2994 * various: Use TYPE_HAS_TRIVIAL_* instead of TYPE_HAS_COMPLEX_*.
2995
2996 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): New macro.
2997 (TYPE_HAS_TRIVIAL_ASSIGN_REF): New macro.
2998
2999Fri Apr 21 15:52:22 1995 Jason Merrill <jason@python.cygnus.com>
3000
3001 * typeck.c (c_expand_return): Only expand a returned TARGET_EXPR if
3002 it is of the same type as the return value.
3003
3004Fri Apr 21 03:01:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3005
3006 * decl2.c (finish_file): Reconsider if synthesizing a method wrote
3007 out its assembly.
3008
3009 * typeck.c (convert_for_initialization): Don't call a trivial copy
3010 constructor.
3011
3012 * typeck2.c (store_init_value): Only abort if the type has a
3013 non-trivial copy constructor.
3014
3015 * typeck.c (c_expand_return): If we're returning in a register and
3016 the return value is a TARGET_EXPR, expand it. Only do
3017 expand_aggr_init if we're returning in memory.
3018 (expand_target_expr): Function to expand a TARGET_EXPR.
3019 (build_modify_expr): Use it.
3020
3021 * tree.c (build_cplus_new): Layout the slot.
3022
3023 * expr.c (cplus_expand_expr): Use expand_call to expand the call
3024 under a NEW_EXPR, so the target is not discarded.
3025
3026Thu Apr 20 14:59:31 1995 Mike Stump <mrs@cygnus.com>
3027
3028 * gc.c (build_dynamic_cast): Tighten error checking.
3029
3030Thu Apr 20 11:23:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3031
3032 * expr.c (cplus_expand_expr): Only abort if the returned target is
3033 different from what we expected if the type has a non-trivial copy
3034 constructor.
3035
3036 * decl2.c (cplus_decl_attributes): Attributes applied to a template
3037 really apply to the template's result.
3038
3039 * tree.c (lvalue_p): Check IS_AGGR_TYPE instead of TREE_ADDRESSABLE
3040 to decide whether to consider a CALL_EXPR an lvalue.
3041
3042 * class.c (finish_struct_bits): Only set TREE_ADDRESSABLE if the
3043 type has a non-trivial copy constructor.
3044
3045 * decl.c (start_function): If interface_known, unset
3046 DECL_NOT_REALLY_EXTERN on the function.
3047
3048Wed Apr 19 16:53:13 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3049
3050 * pt.c (do_function_instantiation): Handle explicit instantiation of
3051 member functions.
3052 (do_type_instantiation): Handle 'inline template class foo<int>',
3053 meaning just spit out the vtable.
3054
3055 * lex.c (cons_up_default_function): Set DECL_NOT_REALLY_EXTERN on
3056 the consed functions.
3057
3058 * decl2.c (import_export_inline): Set DECL_INTERFACE_KNOWN.
3059
3060Wed Apr 19 16:28:17 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3061
3062 * call.c, class.c, decl2.c, gc.c, init.c, parse.y, pt.c, search.c,
3063 typeck.c: Include output.h.
3064
3065Wed Apr 19 14:57:21 1995 Gerald Baumgartner (gb@alexander.cs.purdue.edu)
3066
3067 * call.c (build_method_call): Allow a signature member functions to
3068 be called from a default implementation.
3069
3070Wed Apr 19 10:21:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3071
3072 * repo.c (finish_repo): Remember what directory we are in.
3073
3074 * search.c (expand_upcast_fixups): Don't mess with abort_fndecl.
3075
3076 * repo.c: Use obstacks instead of fixed-size buffers. Don't spit
3077 out the second copy of the symbol name. Don't remember COLLECT_GCC.
3078
43f2999d
MS
3079Wed Apr 19 02:32:40 1995 Mike Stump <mrs@cygnus.com>
3080
3081 * search.c (virtual_context): New function to get the virtual
3082 context of a function.
3083 (expand_upcast_fixups): New function to generate runtime vtables.
3084 (fixup_virtual_upcast_offsets): Ditto.
3085 (expand_indirect_vtbls_init): Use fixup_virtual_upcast_offsets to
3086 ensure that the this offsets for upcasts from virtual bases into
3087 other virtual bases or non-virtual bases are correct at construction
3088 time and destruction time.
3089 * class.c (fixup_vtable_deltas): Modify to fixup all offsets in all
3090 vtables in all virtual bases, instead of just one vtable in each
3091 virtual base.
3092 (fixup_vtable_deltas1): Ditto.
3093
44a8d0b3
MS
3094Tue Apr 18 03:57:35 1995 Michael Meissner (meissner@cygnus.com)
3095
3096 * Makefile.in (lex.o): Add dependency on c-pragma.h.
3097
3098 * lex.c (handle_sysv_pragma): Use NULL_PTR and NULL_TREE as
3099 appropriate, instead of 0.
3100
3101Mon Apr 17 12:28:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3102
3103 * decl.c (pushdecl): Use decls_match, not duplicate_decls, for
3104 comparing local and global decls.
3105
3106Fri Apr 14 01:46:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3107
3108 * typeck.c (convert_arguments): Only prohibit passing to ... of
3109 types with non-trivial copy constructors.
3110
3111 * repo.c (repo_template_used): Don't try to mess with no id.
3112
3113Fri Apr 14 23:32:50 1995 Per Bothner <bothner@rtl.cygnus.com>
3114
3115 * decl.c (duplicate_decls): Use cp_warning_at for redundant-decls.
3116
3117Thu Apr 13 15:37:42 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3118
3119 * cp-tree.h (current_tinst_level): Delete declaration, since it's
3120 static inside pt.c.
3121
3122 * typeck.c (build_modify_expr): Catch incompatible array assignment.
3123
3124 * parse.y (attribute_list, attrib): Rewrite actions to feed the
3125 right stuff to decl_attributes.
3126
3127Thu Apr 13 11:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3128
3129 * search.c (dfs_debug_mark): Check for magic virtual like
3130 import_export_vtable.
3131
3132 * typeck.c (build_binary_op_nodefault): Don't call cp_pedwarn with
3133 four args.
3134
3135Wed Apr 12 12:02:57 1995 Jason Merrill <jason@deneb.cygnus.com>
3136
3137 * decl2.c (finish_file): Move prevtable pass before needs_messing_up
3138 decision.
3139
3140Tue Apr 11 11:20:27 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3141
3142 * decl.c (finish_decl): If we're writing out a static data member of
3143 a class, we want the debug info for that class.
3144
3145 * gc.c (build_t_desc): Check linkage of a class properly.
3146
3147 * class.c (finish_struct): Set the 'headof' offset for the main
3148 vtable properly.
3149 (prepare_fresh_vtable): Fix typeinfo pointer here.
3150 (modify_one_vtable): Instead of here.
3151
3152Mon Apr 10 12:15:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3153
3154 * repo.c (repo_get_id): New function to return the interesting
3155 identifier for a repo entity.
3156 (repo_template_used): Use it.
3157 (repo_template_instantiated): Mark the id as chosen.
3158 (init_repo): Record whether or not the id was chosen.
3159 (finish_repo): Note if an id was newly chosen.
3160
3161 * pt.c (do_function_instantiation): Call repo_template_instantiated.
3162 (do_type_instantiation): Ditto. Don't diagnose multiple
3163 instantiation.
3164
3165 * decl2.c (finish_file): Use DECL_NOT_REALLY_EXTERN when deciding
3166 whether or not to synthesize a method.
3167
3168 Undo these changes:
3169 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
3170 * class.c (modify_all_direct_vtables): ditto.
3171 * init.c (expand_direct_vtbls_init): expand more vtables if
3172 flag_rtti is on.
3173
79ff2c6c
MS
3174Sat Apr 8 17:45:41 1995 Mike Stump <mrs@cygnus.com>
3175
3176 * gc.c (build_headof): Use ptrdiff_type_node instead of
3177 integer_type_node on pointer arithmetic.
3178
3179Sat Apr 8 11:57:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3180
3181 * typeck.c (build_modify_expr): Undo previous change.
3182
3183Thu Apr 6 01:23:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3184
3185 * Makefile.in (compiler): Remove ../cc1plus before rebuilding it.
3186
3187 * repo.c (get_base_filename): Put the .rpo file in the directory
3188 with the object file, not the source.
3189
3190 * typeck.c (build_conditional_expr): Handle pmf's better.
3191
3192 * repo.c (finish_repo): Also use ASM_OUTPUT_LABELREF to print out
3193 the name of the symbol.
3194
3195Wed Apr 5 15:24:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3196
3197 * repo.c (open_repo_file): Make repo filename DOS-compliant.
3198 (*): Also write a new repo file if some previously-used
3199 templates are no longer used. Only remember the identifier.
3200
3201 * lex.c (cons_up_default_function): If this function belongs to a
3202 template class, call repo_template_used for it.
3203
3204 * repo.c (repo_template_used): Using a class means using its vtable,
3205 if any.
3206 (finish_repo): Ditto.
3207
3208 * typeck.c (build_modify_expr): Only wrap TARGET_EXPRs in RTL_EXPRs
3209 if the type has a complex copy constructor.
3210
3211 * decl2.c (lang_decode_option): -frepo implies
3212 -fno-implicit-templates.
3213
3214 * decl.c (start_function): Clear current_{base,member}_init_list.
3215
3216 * lex.c (init_lex): Also unset *_eq if ! flag_operator_names.
3217
3218Tue Apr 4 16:11:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3219
3220 * decl.c (struct cp_function): Add {base,member}_init_list.
3221 (push_cp_function_context): Save current_{base,member}_init_list.
3222 (pop_cp_function_context): Restore them.
3223
b19b4a78
MS
3224Mon Apr 3 16:55:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3225
3226 * repo.c (get_base_filename): Take filename parm, fix logic bug.
3227
3228 * typeck.c (build_compound_expr): Do not warn about a compound expr
3229 in which the first expression has no side effects.
3230 (build_x_compound_expr): Warn here instead.
3231 (build_conditional_expr): Don't warn about a conditional expression
3232 between an enum and the type it promotes to.
3233
3234 * init.c (build_new): Handle initialization of arrays of builtins
3235 properly.
3236
3237Mon Apr 3 15:08:04 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3238
3239 * repo.c: Include config.h to get definitions of bcopy and rindex
3240 on systems that don't have them (e.g., SVR4).
3241
3242Mon Apr 3 14:41:55 1995 Mike Stump <mrs@cygnus.com>
3243
3244 * decl2.c (finish_table): Pass NULL_TREE instead of init to
3245 finish_decl so that it won't try and do error checking on the
3246 initializer.
3247
3248Mon Apr 3 10:45:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3249
3250 * repo.c (get_base_filename): Analyze COLLECT_GCC_OPTIONS to
3251 determine whether this compile used -c -o.
3252 (open_repo_file): Use get_base_filename. Remove the extension.
3253 (finish_repo): Spit out the values of main_input_filename,
3254 COLLECT_GCC and COLLECT_GCC_OPTIONS.
3255
3256 * parse.y (structsp): Add TYPENAME_KEYWORD complex_type_name.
3257
faae18ab
MS
3258Sun Apr 2 23:43:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3259
3260 * search.c (compute_access): Don't try to do access control on
3261 nested types.
3262
3263Fri Mar 31 10:14:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3264
3265 * repo.c: New file to handle things repo.
3266
3267 * pt.c (instantiate_template): Call repo_template_used if the
3268 definition is accessible.
3269 (mark_function_instantiated): Split out from
3270 do_function_instantiation.
3271 (mark_class_instantiated): Split out from do_type_instantiation.
3272
3273 * parse.y (template_instantiate_once): Call repo_template_used.
3274
3275 * lex.c (lang_init): Call init_repo.
3276
3277 * decl2.c: Handle flag_use_repository.
3278 (finish_file): Call finish_repo.
3279
3280 * decl.c (start_method): Call repo_template_used if this is a
3281 template method.
3282
3283 * Makefile.in (CXX_OBJS): Add repo.o.
3284 (repo.o): Add dependencies.
3285
3286 * Make-lang.in (CXX_SRCS): Add repo.c.
3287
3288 * decl.c (start_function): If DECL_INTERFACE_KNOWN and
3289 DECL_NOT_REALLY_EXTERN are both set, unset DECL_EXTERNAL.
3290
3291 * typeck.c (build_binary_op_nodefault): Identify the invalid operand
3292 types used.
3293
3294 * decl.c (duplicate_decls): Propagate DECL_NOT_REALLY_EXTERN.
3295
3296Thu Mar 30 17:54:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3297
3298 * typeck.c (build_binary_op_nodefault): Tidy up use of build_type
3299 and result_type. When checking for comparison between signed
3300 and unsigned, use result_type rather than the (possibly shortened)
3301 type of op0. Also, don't warn about equality comparison of a
3302 signed operand to an unsigned constant that fits in the signed
3303 type.
3304
3305 * method.c (do_build_copy_constructor): Reverse
3306 current_base_init_list after we've built it up.
3307
3308Thu Mar 30 14:35:18 1995 Mike Stump <mrs@cygnus.com>
3309
3310 * except.c (build_throw): Never warn about the value of throw not
3311 being used.
3312
3313Thu Mar 30 13:16:54 1995 Mike Stump <mrs@cygnus.com>
3314
3315 * except.c (expand_start_catch_block): Check for bad catch parameter
3316 declarations.
3317
3318Thu Mar 30 13:06:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3319
3320 * decl.c (finish_function): Only set DECL_NOT_REALLY_EXTERN if
3321 DECL_EXTERNAL is not already set.
3322
3323Thu Mar 30 11:26:24 1995 Mike Stump <mrs@cygnus.com>
3324
3325 * method.c (emit_thunk): Let poplevel know that the last level is
3326 for a function so it can create a BLOCK_NODE and set DECL_INITIAL.
3327
3328Thu Mar 30 11:15:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3329
3330 * decl2.c (import_export_inline): Don't set DECL_NOT_REALLY_EXTERN
3331 here.
3332
3333 * decl.c (grokdeclarator): OK, don't abort if we see a decl with
3334 METHOD_TYPE.
3335 (finish_function): Set DECL_EXTERNAL and DECL_NOT_REALLY_EXTERN on
3336 all deferred inlines.
3337
3338Wed Mar 29 19:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3339
3340 * cp-tree.h (DECL_THIS_INLINE): New macro.
3341 (DECL_NOT_REALLY_EXTERN): New macro.
3342 (DECL_THIS_STATIC): New macro.
3343
3344 * decl.c: Lose all references to current_extern_inline. Break
3345 inline semantics into DECL_INLINE for actual inlining and
3346 DECL_THIS_INLINE for the linkage wierdness. Use DECL_THIS_STATIC.
3347 * decl2.c: Use DECL_NOT_REALLY_EXTERN to indicate that we want to
3348 emit an inline here. Associated changes.
3349 * lex.c: Ditto.
3350 * pt.c: Ditto.
3351 * typeck.c: Ditto.
3352
3353 * call.c (build_method_call): Don't bother trying to handle inlines
3354 specially.
3355 * cvt.c (convert_to_aggr): Ditto.
3356
3357 * pt.c (do_function_instantiation): Handle instantiation of
3358 public inlines, too.
3359
3360Wed Mar 29 16:04:25 1995 Mike Stump <mrs@cygnus.com>
3361
3362 * except.c (init_exception_processing): Change the interface for
3363 __throw_type_match and add decl for new rtti matching routine
3364 __throw_type_match_rtti.
3365 (build_eh_type): New routine to build a run time descriptor for the
3366 expression given.
3367 (expand_start_catch_block): Update to use new calling convention for
3368 the matcher.
3369 (expand_throw): Update to use build_eh_type.
3370
08fb8ad0
WL
3371Mon Mar 27 07:14:33 1995 Warner Losh <imp@village.org>
3372
3373 * g++.c: Removed __NetBSD__ from conditional.
3374 Declare strerror if HAVE_STRERROR is defined; otherwise
3375 declare sys_errlist and sys_nerr.
3376 (my_strerror): New function.
3377
71851aaa
MS
3378Tue Mar 28 14:16:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3379
3380 * search.c (get_binfo): Don't try to be so clever.
3381
3382 * tree.c (copy_to_permanent): Also suspend_momentary().
3383
3384 * cvt.c (cp_convert_to_pointer): Hand off to convert_fn_pointer even
3385 if the types are the same.
3386
3387 * decl.c (start_function): Handle extern inlines more like C++ says
f30432d7 3388 we should.
71851aaa
MS
3389
3390 * init.c (build_member_call): Hand constructor calls off to
3391 build_functional_cast.
3392
3393 * typeck2.c (build_functional_cast): Use DECL_NESTED_TYPENAME to get
3394 the name of the type.
3395
3396Tue Mar 28 13:13:56 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3397
3398 * decl.c (grokdeclarator): Check for the decl returned by
3399 grokfndecl to be null before using build_decl_attribute_variant.
3400
3401Mon Mar 27 18:04:41 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3402
3403 * init.c (build_new): Use build_pointer_type instead of
3404 TYPE_POINTER_TO.
3405
7215f9a0
MS
3406Fri Mar 24 12:11:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3407
71851aaa
MS
3408 * typeck.c (build_conditional_expr): Handle pmfs.
3409 (convert_for_assignment): Fix pmf support.
3410
3411 * cvt.c (convert_fn_ptr): Support !flag_vtable_thunks.
3412 (cp_convert_to_pointer): Handle pmfs.
3413 (cp_convert): Pass pmfs to cp_convert_to_pointer.
3414
3415 * typeck.c (common_type): Handle inheritance for pmfs.
3416
3417 * typeck2.c (build_m_component_ref): Do access control.
3418
3419 * typeck.c (comp_target_types): Check for conversion to void *
3420 before checking trickier conversions.
3421
7215f9a0
MS
3422 * decl.c (duplicate_decls): Propagate DECL_ABSTRACT_VIRTUAL_P.
3423
3424 * pt.c (push_tinst_level): Complain if template instantiation depth
3425 is greater than max_tinst_depth.
3426
3427 * typeck.c (common_type): Assume that we can call common_type to
3428 unify the target type of a pointer.
3429
3430Thu Mar 23 00:48:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3431
3432 * decl2.c (finish_file): Don't synthesize methods at
3433 finish_vtable_prevardecl time. Do synthesize methods that are not
3434 used, but are public and not external.
3435
3436 * cvt.c (build_type_conversion): Only give an error if for_sure.
3437
3438 * typeck.c (comp_target_types): Only support pointer conversions if
3439 nptrs > 0.
3440
3441Wed Mar 22 19:30:15 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3442
3443 * init.c (build_new): Catch use of an initializer list where it
3444 shouldn't be.
3445
3446Wed Mar 22 16:21:07 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3447
3448 * init.c (build_new): Wrap alloc_expr in an RTL_EXPR if nelts is
3449 non-constant.
3450
3451 * decl2.c: temp_name_counter is now public.
3452
3453 * decl.c (struct cp_function): Add temp_name_counter field.
3454 (push_cp_function_context): Save it.
3455 (pop_cp_function_context): Restore it.
3456
3457 * typeck.c (common_type): Handle unifying function types, and unify
3458 unmatched things to void* with a compiler_error, rather than
3459 silently like before.
3460
28cbf42c
MS
3461Wed Mar 22 15:10:34 1995 Mike Stump <mrs@cygnus.com>
3462
3463 * decl2.c (finish_prevtable_vardecl, finish_vtable_vardecl): Revert
3464 Brendan's last change and fix latent problem that causes TD entries
3465 to not come out when the things that need them has yet to be
3466 expanded.
3467
3468Wed Mar 22 15:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3469
3470 * typeck.c (build_binary_op_nodefault, comparison ops): Update type0
3471 and type1, since we might have changed op0 or op1.
3472
3473Wed Mar 22 13:33:45 1995 Jason Merrill <jason@python.cygnus.com>
3474
3475 * typeck.c (common_type): Don't mess up templates.
3476
3477Wed Mar 22 04:56:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3478
3479 * typeck.c (common_type): Handle ptms properly. Also handle
3480 T* -> void*.
3481 (build_binary_op_nodefault): New variable build_type controls what
3482 type is given to the expression when it is created. Set this to
3483 boolean_type_node for comparison ops instead of using result_type.
3484 (comp_target_types): Allow T * -> void *.
3485
3486 * cvt.c (cp_convert_to_pointer): Do access control when converting
3487 ptms, too.
3488
3489Tue Mar 21 17:25:06 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3490
3491 * parse.y (extern_lang_string): Catch use of linkage specs that
3492 aren't all naming the same language.
3493
3494 * class.c (finish_struct): Delete accidental duplicate code.
3495
3496Tue Mar 21 14:00:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3497
3498 * typeck.c (build_binary_op_nodefault): Disable pedwarns about
3499 comparing functions and incomplete types.
3500
3501 * decl.c (finish_function): Only unset current_function_decl if
3502 !nested.
3503 (duplicate_decls): Last change went too far; we only want to stop
3504 checking for value/reference ambiguity.
3505
3506Tue Mar 21 01:26:39 1995 Mike Stump <mrs@cygnus.com>
3507
3508 * gc.c (build_generic_desc): Zap the DECL_SIZE so that we can lay it
3509 out fresh, as the new type may be larger.
3510
3511Mon Mar 20 19:01:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3512
3513 * expr.c (extract_init): Try to expand the RTL for the
3514 initialization and figure out what it will look like so we can avoid
3515 run-time initialization. Disabled for now.
3516 (extract_scalar_init): Helper for scalar initialization.
3517 (extract_aggr_init): Helper for aggregate initialization.
3518
3519 * decl.c (duplicate_decls): Don't complain about ambiguous
3520 declarations.
3521 (obscure_complex_init): Now returns a tree. Call extract_init if
3522 we're optimizing and this is a toplevel decl.
3523 (finish_decl): Update accordingly.
3524
3525 * lex.c (check_newline): If we're just changing files (not pushing
3526 or popping), update input_file_stack->name.
3527
3528Mon Mar 20 17:55:04 1995 Mike Stump <mrs@cygnus.com>
3529
3530 * pt.c (type_unification): Only TEMPLATE_DECLs are handled right now
3531 in the transitive unification code.
3532
3533Mon Mar 20 16:07:50 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3534
3535 * decl.c (shadow_tag): Don't allow inline, virtual, or explicit on
3536 non-functions.
3537 (grokdeclarator): Don't allow friends to be defined in local classes.
3538
3539Sat Mar 18 04:03:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3540
3541 * decl2.c (finish_prevtable_vardecl): Use DECL_DECLARED_STATIC
3542 rather than DECL_SAVED_INSNS to decide whether or not this method
3543 was declared inline.
3544
3545 * method.c (synthesize_method): Turn off DECL_INLINE if
3546 function_cannot_inline_p thinks we're too large.
3547
3548 * typeck.c (build_indirect_ref): Use build_expr_type_conversion.
3549
3550Fri Mar 17 17:47:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3551
3552 * class.c (instantiate_type): Handle pmfs.
3553
3554 * typeck.c (convert_for_assignment): Check types when assigning one
3555 pmf to another.
3556
3557 * decl.c (define_label): Fix logic for printing out the name of the
3558 label in an error message.
3559
3560 * error.c (dump_expr): Support ARRAY_REF.
3561
3562Fri Mar 17 17:43:02 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3563
3564 * decl2.c (finish_vtable_vardecl): Call build_t_desc here.
3565 (finish_prevtable_vardecl): Instead of here.
3566
3567Fri Mar 17 14:40:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3568
3569 * decl.c (expand_static_init): Also use expand_aggr_init if the
3570 initializer is a TREE_LIST.
3571 (grokdeclarator): Only pedwarn about extra qualification if -pedantic.
3572
3573 * pt.c (unify): Fix unification of return type.
3574
3575 * expr.c (fixup_result_decl): Use store_expr, rather than
3576 emit_move_insn, to move the return value into the place where
3577 callers will expect it.
3578
3579Thu Mar 16 22:05:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3580
3581 * init.c (build_offset_ref): Call assmble_external on functions.
3582 * typeck.c (build_component_ref): Ditto.
3583
3584Thu Mar 16 20:28:16 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3585
3586 * decl.c (struct saved_scope): Add members base_init_list and
3587 member_init_list.
3588 (push_to_top_level): Save current_base_init_list and
3589 current_member_init_list to them.
3590 (pop_from_top_level): Put it back.
3591
3592Thu Mar 16 19:21:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3593
3594 * pt.c (instantiate_template): Call assemble_external.
3595
3596Thu Mar 16 18:07:54 1995 Brendan Kehoe (brendan@phydeaux.cygnus.com)
3597
3598 * class.c: Include rtl.h, to get NULL_RTX.
3599 (finish_struct): Also zero out DECL_SAVED_INSNS, to avoid problems
3600 on hosts with different sizes for each part of the union.
3601 * tree.c: Also include rtl.h.
3602 (layout_basetypes): Same change for DECL_SAVED_INSNS.
3603
3604Thu Mar 16 13:57:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3605
3606 * pt.c (unify): Fix array domain unification for 64-bit targets.
3607
3608 * decl2.c (finish_file): Push bizarre type decl before walking the
3609 vtables the first time.
3610 (walk_vtables): OK, don't set prev to vars if the vardecl_fn messed
3611 with TREE_CHAIN (prev).
3612
3613 * init.c (emit_base_init): Use convert_pointer_to_real instead of
3614 convert_pointer_to when converting to a direct base.
3615
3616Wed Mar 15 20:26:29 1995 Mike Stump <mrs@cygnus.com>
3617
3618 * pt.c (type_unification): Handle transitive unification better.
3619
3620Wed Mar 15 13:56:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3621
3622 * decl2.c (walk_vtables): Always set prev to vars.
3623 (mark_vtable_entries): Call assemble_external on the vtable entries.
3624
3625 * class.c (finish_struct): Set the vtable's size to NULL_TREE before
f30432d7 3626 calling layout_decl, so that it gets updated properly.
28cbf42c
MS
3627
3628 Finally re-enable dynamic synthesis. This time it works.
3629 * method.c (synthesize_method): Pass decl_function_context (fndecl)
3630 to {push,pop}_cp_function_context.
3631 * decl.c (push_cp_function_context): Now takes a tree argument.
3632 (pop_cp_function_context): Ditto.
3633 * call.c (build_method_call): Enable synthesis.
3634 * lex.c (cons_up_default_function): Ditto.
3635
3636Tue Mar 14 19:14:19 1995 Doug Evans <dje@chestnut.cygnus.com>
3637
3638 * parse.y (setattrs): Chain onto prefix_attributes rather than
3639 setting it.
3640
3641Wed Mar 15 13:00:00 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3642
3643 * decl.c (pushdecl): Check if the type of the VAR_DECL is an
3644 error_mark_node before trying to read TYPE_LANG_SPECIFIC.
3645
b7484fbe
MS
3646Mon Mar 13 21:00:28 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3647
3648 * decl.c (grokdeclarator, case ARRAY_REF): Wrap the exp with fold,
3649 and convert the size and integer_one_node to the index type.
3650
3651Mon Mar 13 08:01:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3652
3653 * typeck.c (get_member_function_from_ptrfunc): Save the instance
3654 argument, and tack it onto the front of the COND_EXPR to make the
3655 semantics come out right. Grab the instance argument from
3656 '*instance_ptrptr', rather than having it passed in separately.
3657
3658 * various: Change various consed-up comparison operations to have
3659 boolean type. Remove the instance argument in calls to
3660 get_member_function_from_ptrfunc.
3661
3662 * error.c (dump_expr): Dump true and false as "true" and "false".
3663
3664 * decl2.c (finish_file): Also set DECL_STATIC_FUNCTION_P on the
3665 global init function.
3666
3667 * decl.c (finish_function): Only set DECL_EXTERNAL here if the
3668 inline function is public.
3669
3670Sat Mar 11 00:58:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3671
3672 * init.c (is_friend): Be more careful about checking
3673 DECL_CLASS_CONTEXT on non-member functions.
3674
3675 * decl2.c (finish_vtable_vardecl): Don't bother calling
3676 assemble_external here.
3677 (prune_vtable_vardecl): New function that just splices out the
3678 vtable decl from the top-level decls.
3679 (import_export_inline): Unset DECL_EXTERNAL at first.
3680 (finish_file): Don't bother calling assemble_external here. Do
3681 splice out all of the vtables.
3682
3683Fri Mar 10 14:42:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3684
3685 * decl.c (finish_function): If we're not emitting the function yet,
3686 call assemble_external for it.
3687
3688 * decl2.c (finish_prevtable_vardecl): Don't call mark_vtable_entries
3689 here.
3690 (finish_vtable_vardecl): Don't do the linkage deduction thing here.
3691 Also don't splice out the current vtable if it is unused.
3692 (finish_file): Move the second walk_vtables and the synthesis check
3693 inside the 'reconsider' loop. Move thunk emission after the
3694 'reconsider' loop.
3695
3696Thu Mar 9 16:28:16 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3697
3698 * pt.c (tsubst): Don't bother calling cp_build_type_variant, since it
3699 was passing bogus values for readonly and volatile from the original
3700 template decl, not the resultant type of the tsubst call.
3701
3702 * class.c (duplicate_tag_error): Use cp_error_at to point out the
3703 previous definition of the tag.
3704
3705Thu Mar 9 10:46:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3706
3707 * decl.c (start_function): Clear base_init_insns and protect_list.
3708 (struct cp_function): Add base_init_insns field.
3709 (push_cp_function_context): Also save base_init_insns.
3710 (pop_cp_function_context): Also restore base_init_insns.
3711
3712Wed Mar 8 13:31:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3713
3714 * init.c (member_init_ok_or_else): Check for initializing a static
3715 member here.
3716 (emit_base_init): Instead of here.
3717
3718Tue Mar 7 16:03:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3719
3720 * call.c (build_method_call): Disable synthesis as needed.
3721 * lex.c (cons_up_default_function): Ditto.
3722
f6abb50a
BK
3723Tue Mar 7 10:14:29 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3724
3725 * parse.y: New rules to allow attributes in a prefix position.
3726 (prefix_attributes): New variable. Pass it into cplus_decl_attributes.
3727 (setattr): New rule.
3728 (reserved_declspecs, declmods): Catch attributes here.
3729 * decl2.c (cplus_decl_attributes): Add PREFIX_ATTRIBUTES argument.
3730 * decl.c (duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to
3731 descendent typedef.
3732 (grokdeclarator): Added code to support machine attributes.
3733 * Makefile.in (stamp-parse): Expect 5 shift/reduce failures.
3734
b7484fbe
MS
3735Mon Mar 6 15:07:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3736
3737 * call.c (build_method_call): Don't synthesize methods outside of a
3738 function.
3739
3740 Make base initialization more re-entrant so that synthesis on the
3741 fly will work (and, eventually, template instantation on the fly).
3742 * init.c (sort_member_init): Don't bother with members that can't be
3743 initialized. Reorganize a bit. Don't initialize base members here.
3744 (sort_base_init): New function, like sort_member_init, but for base
3745 classes. Steals some code from emit_base_init.
3746 (emit_base_init): Simplify. Call sort_{member,base}_init before
3747 doing any initialization, so we don't have to save
3748 current_{member,base}_init_list in push_cp_function_context.
3749 (expand_aggr_vbase_init_1): Adjust for sort_base_init.
3750 (expand_aggr_vbase_init): Simplify.
3751 * decl.c (struct cp_function): Add protect_list field.
3752 (push_cp_function_context): Also save protect_list.
3753 (pop_cp_function_context): Also restore protect_list.
3754 * call.c (build_method_call): Enable synthesis at point of call.
3755 * lex.c (cons_up_default_function): Ditto.
3756
3757 * parse.y: Turn -ansi checks back into -pedantic checks.
3758
3759 * init.c (build_new): Fix -fcheck-new for array new.
3760
3761Sat Mar 4 15:55:42 1995 Fergus Henderson <fjh@cs.mu.oz.au>
3762
3763 * typeck.c (build_compound_expr): warn if left-hand operand of
3764 comma expression has no side-effects.
3765
3766Fri Mar 3 15:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3767
3768 * parse.y (primary): Change 'object qualified_id *' rules to 'object
3769 overqualified_id *'.
3770
3771Fri Mar 3 12:48:17 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3772
3773 * parse.y (unary_expr): Catch doing sizeof an overloaded function.
3774 Make the error look the same as the one we issue in c_sizeof.
3775
3776 * typeck.c (build_binary_op_nodefault): Give an error for trying
3777 to compare a pointer-to-member to `void *'.
3778
3779Fri Mar 3 11:28:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3780
3781 * typeck.c (build_unary_op): Handle bool increment with smoke and
3782 mirrors here, rather than in expand_increment where it belongs,
3783 because Kenner doesn't agree with me.
3784
3785Fri Mar 3 00:08:10 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3786
3787 * decl.c (grokparms): Catch a PARM_DECL being used for a default
3788 argument as well.
3789
3790Thu Mar 2 20:05:54 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3791
3792 * init.c (build_new): Don't allow new on a function type.
3793
3794 * parse.y (primary): Avoid a crash when seeing if the arg is of
3795 the same type as that given for the typespec in an explicit dtor call.
3796
3797Thu Mar 2 00:49:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3798
3799 * decl.c (finish_function): Change test for calling
3800 mark_inline_for_output.
3801
3802Wed Mar 1 11:23:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3803
3804 * typeck.c (build_modify_expr): Complain if
3805 build_default_binary_type_conversion fails.
3806
3807 * init.c (expand_default_init): Handle arguments of unknown type
3808 properly.
3809
3810 * cvt.c (build_expr_type_conversion): Only complain about ambiguity
3811 if 'complain'.
3812 * various: Pass 'complain'.
3813
3814 * typeck.c (comptypes): Be more picky about comparing UPTs.
3815
3816Wed Mar 1 11:03:41 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3817
3818 * decl.c (grokdeclarator): If declarator is null, say that the
3819 type used has an incomplete type.
3820
3821Wed Mar 1 10:06:20 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3822
3823 * pt.c (instantiate_template): Copy the template arguments to the
3824 permanent_obstack. Also use simple_cst_equal to compare them when
3825 looking for a previous instantiation.
3826
3827 * tree.c (make_deep_copy): Support copying INTEGER_TYPEs (assuming
3828 they are array domain types).
3829
3830Tue Feb 28 23:24:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3831
3832 * cp-tree.h: Define WANT_* constants for passing to
3833 build_expr_type_conversion.
3834 * cvt.c (build_expr_type_conversion): New function to build
3835 conversion to one of a group of suitable types.
3836 (build_default_binary_type_conversion): Use it.
3837 * decl2.c (grok_array_decl): Ditto.
3838 * typeck.c (build_unary_op): Ditto.
3839 (build_array_ref): Tidy up a bit.
3840 (build_binary_op): Ditto.
3841
3842Tue Feb 28 19:57:31 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3843
3844 * decl.c (grokdeclarator): Don't allow decl of an argument as `void'.
3845
3846Tue Feb 28 17:23:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3847
3848 * parse.y (typed_declspecs1): Add 'typespec reserved_typespecquals
3849 reserved_declspecs' rule.
3850
3851 * parse.y (expr_or_declarator): Remove notype_qualified_id rule.
3852 (direct_notype_declarator): Ditto.
3853 (complex_direct_notype_declarator): Add notype_qualified_id rule.
3854
3855 * lex.c (real_yylex): Handle :> digraph properly.
3856
3857Tue Feb 28 12:26:29 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3858
3859 * decl.c (grokdeclarator): Check if it's a friend, not if it's
3860 non-virtual, that's being initialized. Move the check up to
3861 before FRIENDP would get cleared. Catch an unnamed var/field
3862 being declared void. Say just `field' instead of `structure field'
3863 in the error message. Only go for the operator name if DECLARATOR
3864 is non-null.
3865
3866Tue Feb 28 00:08:01 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3867
3868 * decl.c (start_function): Complain about abstract return type.
3869 (grokdeclarator): Complain about declaring constructors and
3870 destructors to be const or volatile. Complain about declaring
3871 destructors to be static.
3872
3873 * pt.c (uses_template_parms): Handle pmfs.
3874
3875 * decl.c (grokdeclarator): Don't call variable_size for array bounds
3876 that only depend on template constant parameters.
3877
3878Mon Feb 27 15:38:16 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3879
3880 * error.c (dump_decl): Only look to see if it's a vtable if we
3881 actually have a name to check out.
3882
3883Mon Feb 27 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3884
3885 * cvt.c (convert_to_aggr): Lose misleading shortcut.
3886
3887Sun Feb 26 17:27:32 1995 Doug Evans <dje@canuck.cygnus.com>
3888
3889 * decl.c (set_nested_typename): Always set DECL_IGNORED_P,
3890 not just for dwarf.
3891
3892Sun Feb 26 00:10:18 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3893
3894 * decl.c (grokdeclarator): Don't allow a static member to be
3895 declared `register'.
3896
3897 * init.c (make_friend_class): Move up to a pedwarn for the warning
3898 about a class declaring friends with itself.
3899
3900 * decl.c (grokdeclarator): You can't do `volatile friend class foo'
3901 or `inline friend class foo'. Only try to make a friend out of
3902 TYPE if we didn't already reset it to integer_type_node.
3903
3904Sat Feb 25 22:32:03 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3905
3906 * decl.c (grokdeclarator): Don't allow initialization of a
3907 non-virtual function.
3908
3909 * decl.c (start_function): Do a pedwarn if we're changing `main'
3910 to have an int return type.
3911
3912Sat Feb 25 00:02:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3913
3914 * typeck.c (build_modify_expr): Handle simple assignment from
3915 TARGET_EXPRs by building up an RTL_EXPR to force expansion. Whew.
3916
3917Fri Feb 24 18:27:14 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3918
3919 * decl.c (grokdeclarator): Also don't allow virtual outside of a
3920 class decl for a scope method definition performed at global binding.
3921
3922 * init.c (build_offset_ref): Don't allow creation of an OFFSET_REF
3923 of a bitfield.
3924
3925 * decl.c (grokdeclarator): Don't allow a const to be declared mutable.
3926
3927 * typeck.c (build_binary_op): Return an error_mark_node if either
3928 one of the args turned into an error_mark_node when we tried to
3929 use default_conversion.
3930
3931 * typeck.c (build_unary_op): Forbid using postfix -- on a bool.
3932
3933 * decl.c (grokdeclarator): Allow `signed' and `unsigned' to be
3934 used on `__wchar_t'.
3935
3936Fri Feb 24 13:59:53 1995 Mike Stump <mrs@cygnus.com>
3937
3938 * except.c (end_protect_partials): Do it the right way.
3939
3940Wed Feb 22 15:42:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3941
3942 * typeck.c (build_binary_op_nodefault): Upgrade warning about
3943 comparing distinct pointer types to pedwarn.
3944
3945 * typeck2.c (digest_init): Cope with extra braces.
3946
3947 * typeck.c (build_binary_op_nodefault): Use tree_int_cst_sgn instead
3948 of INT_CST_LT (..., interger_zero_node).
3949
3950Wed Feb 22 14:45:52 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3951
3952 * except.c [!TRY_NEW_EH] (end_protect_partials): Define dummy
3953 function for systems that don't have EH.
3954
3955Tue Feb 21 19:18:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3956
3957 * call.c (can_convert_arg): Like can_convert, but takes an arg as
3958 well.
3959
3960 * pt.c (type_unification): Allow implicit conversions for parameters
3961 that do not depend on template parameters.
3962
1b65f56d
DR
3963Tue Feb 21 18:43:48 1995 Douglas Rupp (drupp@cs.washington.edu)
3964
3965 * Make-lang.in, config-lang.in: ($exeext): New macro.
3966 * Make-lang.in: Try a "cp" if "ln" fails.
3967 * cp-tree.h (decl_attributes): Added argument.
3968 * decl2.c (cplus_decl_attribute): Add arg to decl_attributes.
3969 * cp/g++.c: Added #ifdefs for sys/file.h and process.h for NT.
3970 Modified spawnvp to have to correct number of arguments for OS/2, NT.
3971
b7484fbe
MS
3972Tue Feb 21 18:36:55 1995 Mike Stump <mrs@cygnus.com>
3973
3974 * decl.c (finish_function): Add calls to end_protect_partials to end
3975 the exception region that protects constructors so that partially
3976 constructed objects can be partially destructed when the constructor
3977 throws an exception.
3978 * init.c (perform_member_init, sort_member_init, emit_base_init):
3979 Added support for partially constructed objects.
3980 * init.c (build_partial_cleanup_for): New routine to do partial
3981 cleanups of a base class.
3982 * decl2.c (finish_file): Move the emitting of the exception table
3983 down, after we emit all code that might have exception regions in
3984 them.
3985 * except.c (end_protect_partials, might_have_exceptions_p): New
3986 routines.
3987 (emit_exception_table): Always output table if called.
3988 * cp-tree.h (protect_list, end_protect_partials,
3989 might_have_exceptions_p, emit_exception_table): Added.
3990
3991Tue Feb 21 16:05:59 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3992
3993 * gc.c (build_typeid): Pass a NULL_TREE, not the bogus, unused
3994 address of a local variable.
3995 * class.c (build_vfn_ref): Only try to build the PLUS_EXPR if we
3996 were given a non-null PTR_TO_INSTPTR.
3997
3998Tue Feb 21 01:53:18 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3999
4000 * decl.c (duplicate_decls): Always lay out the merged decl.
4001
4002 * decl2.c (finish_vtable_vardecl): Don't do vtable hack on templates.
4003 (finish_prevtable_vardecl): Ditto.
59be85d7 4004
b7484fbe
MS
4005 * method.c (synthesize_method): Set interface_{unknown,only}
4006 according to the settings for our class, not the file where it comes
4007 from.
59be85d7 4008
b7484fbe 4009Sat Feb 18 12:26:48 1995 Mike Stump <mrs@cygnus.com>
3a887df4 4010
b7484fbe 4011 * except.c: Handle systems that define __i386__ but not __i386.
3a887df4 4012
e3417fcd
MS
4013Fri Feb 17 15:31:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4014
4015 * decl2.c (reparse_decl_as_expr): Support being called without a
4016 type argument.
4017
4018 * parse.y (primary): Add '(' expr_or_declarator ')'. Adds 4 r/r
4019 conflicts. Sigh.
4020
4021Fri Feb 17 12:02:06 1995 Mike Stump <mrs@cygnus.com>
4022
4023 * parse.y (template_def, fndef, fn.def1, return_init, condition,
4024 initdcl0, initdcl, notype_initdcl0, nomods_initdcl0,
4025 component_decl_1, after_type_component_declarator0,
4026 notype_component_declarator0, after_type_component_declarator,
4027 notype_component_declarator, after_type_component_declarator,
4028 full_parm, maybe_raises, exception_specification_opt): Fix up,
4029 include exception_specification_opt maybeasm maybe_attribute and
4030 maybe_init if missing. Rename maybe_raises to
4031 exception_specification_opt to match draft wording. Use maybe_init
4032 to simplify rules.
4033
4034Fri Feb 17 01:54:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4035
4036 * init.c (build_new): Set TREE_NO_UNUSED_WARNING on COMPOUND_EXPRs
4037 built for news of scalar types.
4038
4039Thu Feb 16 17:48:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4040
4041 * typeck.c (build_binary_op_nodefault): Update code for warning
4042 about signed/unsigned comparisons from C frontend. Realize that the
4043 code in the C frontend is, if anything, even more bogus. Fix it.
4044 (build_binary_op): Undo default_conversion if it wasn't useful.
4045
4046 * typeck.c (build_unary_op, ADDR_EXPR): Lose bogus special case for
4047 PRE*CREMENT_EXPR.
4048
4049 * decl2.c (import_export_vtable): Don't try the vtable hack
4050 if the class doesn't have any real non-inline virtual functions.
4051 (finish_vtable_vardecl): Don't bother trying to find a non-inline
4052 virtual function in a non-polymorphic class.
4053 (finish_prevtable_vardecl): Ditto.
4054
4055 * decl2.c (import_export_vtable): Use and set DECL_INTERFACE_KNOWN.
4056
4057 * cp-tree.h (DECL_INTERFACE_KNOWN): Use DECL_LANG_FLAG_5.
4058
4059 * init.c (expand_virtual_init): Always call assemble_external.
4060
4061 * class.c (build_vfn_ref): Always call assemble_external.
4062 (build_vtable): Always call import_export_vtable.
4063 (prepare_fresh_vtable): Ditto.
4064 (add_virtual_function): Don't bother setting TREE_ADDRESSABLE.
4065
8ccc31eb
MS
4066Thu Feb 16 03:28:49 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4067
4068 * class.c (finish_struct): Use TYPE_{MIN,MAX}_VALUE to determine
4069 whether an enumerated type fits in a bitfield.
4070
4071Wed Feb 15 15:38:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4072
4073 * class.c (grow_method): Update method_vec after growing the class
f30432d7 4074 obstack.
8ccc31eb
MS
4075
4076Wed Feb 15 13:42:59 1995 Mike Stump <mrs@cygnus.com>
4077
4078 * parse.y (handler_seq): Push a level for the catch parameters.
4079
4080Wed Feb 15 12:42:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4081
4082 * init.c (emit_base_init): Update BINFO_INHERITANCE_CHAIN on my
4083 bases, in case they've been clobbered.
4084
4085Wed Feb 15 12:07:29 1995 Mike Stump <mrs@cygnus.com>
4086
4087 * class.c (finish_base_struct): Set up BINFO_INHERITANCE_CHAIN here,
4088 so that one day it will always be valid.
4089 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Ditto.
4090
4091 * cp-tree.h (copy_binfo): Removed, unused.
4092 * tree.c (copy_binfo): Ditto.
4093
4094Wed Feb 15 00:05:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4095
4096 * init.c (build_new): Save the allocation before calling
4097 expand_vec_init on it.
4098
4099 * decl.c (finish_enum): The TYPE_PRECISION of the enum type mush
4100 match the TYPE_PRECISION of the underlying type for constant folding
4101 to work.
4102
4103Tue Feb 14 15:31:25 1995 Mike Stump <mrs@cygnus.com>
4104
4105 * except.c (push_eh_entry, expand_start_all_catch,
4106 expand_leftover_cleanups, expand_end_catch_block): Keep track of
4107 the context in which the exception region occurs.
4108 (build_exception_table): If the region was not output, don't output
4109 the entry in the eh table for it.
4110
4111Tue Feb 14 02:15:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4112
4113 * init.c (expand_default_init): Only use a previous constructor call
4114 if it's a call to our constructor. Does the word "Duh" mean
4115 anything to you?
4116
4117 * decl.c (grokparms): Fine, just don't call
4118 convert_for_initialization at all. OK? Happy now?
4119
4120Mon Feb 13 02:23:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4121
4122 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Make sure that the class
4123 method vector has a second element before returning it.
4124
4125 * decl.c (grokparms): Don't strip REFERENCE_TYPE before calling
4126 convert_for_initialization.
4127
4128Sun Feb 12 03:57:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4129
4130 * typeck.c (build_modify_expr): Compare function name to
4131 constructor_name (current_class_type) instead of current_class_name.
4132
4133 * decl.c (grokparms): Don't do anything with the return value of
4134 convert_for_initialization.
4135
4136 * error.c (dump_decl): Also dump_readonly_or_volatile on the decl.
4137
4138 * decl.c (duplicate_decls): Tweak error message.
4139
4140 * typeck.c (build_const_cast): Implement checking.
4141 (build_reinterpret_cast): Implement some checking.
4142
4143 * cp-tree.h (CONV_FORCE_TEMP): Require a new temporary when
4144 converting to the same aggregate type.
4145 (CONV_STATIC_CAST): Include it.
4146 (CONV_C_CAST): Ditto.
4147 * cvt.c (convert_force): Use CONV_C_CAST instead of CONV_OLD_CONVERT.
4148 (cp_convert): Only force a new temporary if CONV_FORCE_TEMP.
4149
4150Fri Feb 10 16:18:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4151
4152 * typeck.c (build_c_cast): Use non_lvalue to tack something on
f30432d7 4153 where necessary.
8ccc31eb
MS
4154
4155 * decl.c (auto_function): Now a function.
4156 * except.c (init_exception_processing): terminate, unexpected,
4157 set_terminate, and set_unexpected have C++ linkage.
4158
4159 * typeck.c (build_unary_op, TRUTH_NOT_EXPR): Use convert instead of
4160 truthvalue_conversion for converting to bool, as it handles
4161 user-defined conversions properly.
4162 (condition_conversion): Ditto.
4163
4164 * except.c (expand_throw): Don't call convert_to_reference.
4165 Pass the correct parameters to build_new.
4166
4167 * method.c (do_build_assign_ref): Don't use access control when
4168 converting to a base reference here.
4169 (do_build_copy_constructor): Or here.
4170
4171 * init.c (build_new): Unset TREE_READONLY on the dereferenced
4172 pointer before assigning to it.
4173
4174 * decl.c (maybe_build_cleanup): Don't bother stripping const here.
4175
4176 * decl2.c (delete_sanity): You can now delete pointer to const.
4177
4178Fri Feb 10 13:28:38 1995 Jason Merrill <jason@python.cygnus.com>
4179
4180 * decl.c (finish_function): Don't rely on actual parameters being
4181 evaluated left-to-right.
4182 * except.c (expand_end_catch_block): Ditto.
4183
4184Fri Feb 10 00:52:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4185
4186 * tree.c (real_lvalue_p): Like lvalue_p, but class temps aren't
4187 considered lvalues.
4188 * cvt.c (convert_to_reference): Use real_lvalue_p instead of
f30432d7 4189 lvalue_p.
8ccc31eb
MS
4190
4191 * cvt.c (build_type_conversion_1): Don't call convert on aggregate
4192 types.
4193 (convert_to_reference): Fix erroneous text substitution.
4194
4195 * typeck2.c (initializer_constant_valid_p): Update from C frontend.
4196 Add new argument to all callers.
4197
4198 * typeck.c (convert_arguments): Check for error_mark_node before
4199 trying to do anything with the actual parameter.
4200
4201 * typeck.c (condition_conversion): Build up a CLEANUP_POINT_EXPR and
4202 fold it.
4203 (bool_truthvalue_conversion): Remove. Fix all callers to call
4204 truthvalue_conversion instead.
4205 (various): Fold CLEANUP_POINT_EXPRs.
4206
4207 * parse.y (conditions): Call condition_conversion rather than
4208 building up a CLEANUP_POINT_EXPR.
4209
4210 * pt.c (end_template_decl): Don't warn_if_unknown_interface here
4211 under -falt-external-templates.
4212
4213Thu Feb 9 05:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4214
4215 * init.c (build_new): Complain about new of const type without
4216 initializer. Other cleanup.
4217
4218 * call.c (compute_conversion_costs): Don't call
4219 build_type_conversion with a reference type; convert to the target
4220 type and check its lvaluetude.
4221 * cvt.c (convert_to_reference): Ditto.
4222
4223 * cvt.c (build_type_conversion_1): There will never be any need to
4224 dereference references here now.
4225
4226Thu Feb 9 00:37:47 1995 Mike Stump <mrs@cygnus.com>
4227
4228 * except.c (expand_builtin_throw): Make sure we only `use' the
4229 value of return_val_rtx.
4230
4231Wed Feb 8 15:45:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4232
4233 * parse.y (structsp): Don't complain about declaring a type being
4234 defined to be a friend.
4235
4236 * decl2.c (warn_if_unknown_interface): Note the template in question
4237 and the point of instantiation, for -falt-external-templates.
4238 * lex.c (reinit_parse_for_method): Pass the decl to
4239 warn_if_unknown_interface.
4240 * pt.c (instantiate_template): Ditto.
4241 (end_template_decl): Ditto.
4242
4243 * decl.c (set_nested_typename): Set IDENTIFIER_TYPE_VALUE on the
4244 nested name again, to make local classes work a bit better.
4245
4246 * typeck.c (build_function_call_real): Dereference reference after
4247 checking for incomplete type.
4248
4249 * init.c (build_new): Accept new of const and volatile types.
4250
4251Wed Feb 8 14:04:16 1995 Jason Merrill <jason@deneb.cygnus.com>
4252
4253 * decl.c (grokdeclarator): Fix error message.
4254
4255Wed Feb 8 03:16:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4256
4257 * typeck.c (convert_for_initialization): Do bash arrays when
4258 converting to a reference to non-array.
4259
4260Tue Feb 7 15:50:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4261
4262 * cvt.c (cp_convert): Don't call convert_to_reference, or
4263 automatically dereference references. Do pass reference conversions
4264 to cp_convert_to_pointer.
4265 (cp_convert_to_pointer): Support references.
4266
4267 * call.c (build_method_call): Don't build up a reference to the
4268 parameter here; let build_overload_call handle that.
4269
4270 * typeck.c (build_c_cast): Call convert_to_reference directly if
4271 converting to a reference type.
4272 * method.c (do_build_copy_constructor): Ditto.
4273 * method.c (do_build_copy_constructor): Ditto.
4274 (do_build_assign_ref): Ditto.
4275
4276 * call.c (build_method_call): Dereference a returned reference.
4277 * typeck.c (build_function_call_real): Ditto.
4278
4279 * decl.c (xref_basetypes): Check for unions with basetypes here.
4280 (xref_tag): Instead of here.
4281
4282 * pt.c (process_template_parm): Template type parm decls are
4283 artificial.
4284
4285Mon Feb 6 04:32:09 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4286
4287 * parse.y (typed_declspecs): Add missing semicolon.
4288 (do_xref_defn): Resurrect.
4289 (named_class_head_sans_basetype): Move template specialization
4290 definition cases to named_class_head_sans_basetype_defn.
4291
4292 * decl2.c (grokfield): Call pushdecl_class_level after setting the
4293 TYPE_NAME, not before.
4294
4295Sun Feb 5 02:50:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4296
4297 * call.c (convert_harshness): Don't call sorry here. Don't allow
4298 conversions between function pointer types if pedantic.
4299
4300 * pt.c (overload_template_name): Pass globalize=1 to xref_tag.
4301
4302 * lex.c (cons_up_default_function): Use the full name for the return
4303 type of op=.
4304
4305 * decl.c (set_nested_typename): Don't worry about anonymous types,
4306 as they already have a unique name.
4307 (pushdecl): Remove redundant set_nested_typename
4308 (xref_tag): Split out base handling into xref_basetypes.
4309
4310 * cp-tree.h (TYPE_INCOMPLETE): New macro; TEMPLATE_TYPE_PARMs are
4311 not considered incomplete even though their definition is unknown.
4312
4313 * decl.c (xref_defn_tag): Lose.
4314 (xref_tag): xref_next_defn = ! globalize.
4315 (pushdecl): Don't set DECL_NESTED_TYPENAME on artificial decls. The
4316 ones that should have it set will have it set by pushtag.
4317 (pushdecl_class_level): Ditto.
4318 (pushtag): Tidy up a bit.
4319 (set_nested_typename): Push a decl for the nested typename from
4320 here, rather than from xref_defn_tag.
4321
4322 * parse.y (do_xref): Lose.
4323 (named_class_head): If we see 'class foo:' we know it's a
4324 definition, so don't worry about base lists for non-definitions.
4325
4326 * pt.c (push_template_decls): Template parm decls are artificial.
4327
4328 * decl.c (duplicate_decls): Restore check for qualifier
4329 disagreement for non-functions.
4330 (decls_match): Remove check for qualifier disagreement.
4331
4332Fri Feb 3 14:58:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4333
4334 * decl.c (grok_reference_init): Convert initializer from
f30432d7 4335 reference.
8ccc31eb
MS
4336 * typeck.c (convert_for_initialization): Ditto.
4337
4338 * decl.c (duplicate_decls): Propagate DECL_NESTED_TYPENAME.
4339
4340 * cvt.c (cp_convert): Don't convert to the same class type by just
4341 tacking on a NOP_EXPR.
4342 (convert_to_reference): Use comp_target_types instead of comptypes
4343 so that we don't allow conversions two levels down.
4344
4345Thu Feb 2 15:07:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4346
4347 * class.c (build_vbase_path): Bash types to make the backend happy.
4348 * cvt.c (build_up_reference): Bash the types bashed by
4349 build_vbase_path to be reference types instead of pointer types.
4350 (convert_to_reference): Ditto.
4351
4352 * typeck.c (build_c_cast): Don't strip NOPs if we're converting to a
4353 reference type.
4354
4355 * parse.y (structsp): Put back error for 'struct B: public A;'.
4356
4357Wed Feb 1 23:02:06 1995 Mike Stump <mrs@cygnus.com>
4358
4359 * except.c: Add support for mips systems that don't define __mips
4360 but do define mips, like Ultrix.
4361
4362Wed Feb 1 22:39:07 1995 Mike Stump <mrs@cygnus.com>
4363
4364 * except.c: Add support for exception handling on the Alpha.
4365
1038f4f9
MS
4366Wed Feb 1 10:12:14 1995 Mike Stump <mrs@cygnus.com>
4367
4368 * decl2.c (finish_file): Fix bug in Jan 31st change.
4369
4370Tue Jan 31 16:59:15 1995 Gerald Baumgartner (gb@lorenzo.cs.purdue.edu)
4371
4372 * sig.c (build_signature_pointer_or_reference_type): Don't set
4373 IS_AGGR_TYPE for signature pointers/reference so expand_default_init
4374 doesn't expect to find a copy constructor.
4375 * call.c (build_method_call): Treat signature pointers/reference
4376 as if IS_AGGR_TYPE were set.
4377
d18c083e
MS
4378Tue Jan 31 13:28:56 1995 Mike Stump <mrs@cygnus.com>
4379
4380 * gc.c (get_typeid): Pawn off error messages to build_t_desc.
4381 (build_t_desc): Inform the user here if they try and build
4382 with -frtti and don't include <typeinfo.h>.
4383
4384 * decl2.c (finish_prevtable_vardecl): Support rescanning.
4385 (finish_file): Move finish_prevtable_vardecl up to before the global
4386 initializers are done as tdecls are initialized in the global
4387 initializer. Also Pick up any new tdecls or vtables needed by
4388 synthesized methods.
4389
4390 * class.c (finish_struct): Simplify. We have to do rtti scanning at
4391 end, so we might as well do all of it there.
4392
4393Tue Jan 31 05:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4394
4395 * call.c (build_method_call): Fix -fthis-is-variable for 32-bit
4396 targets, too.
4397
4398Tue Jan 31 00:11:04 1995 Mike Stump <mrs@cygnus.com>
4399
4400 * decl2.c (finish_prevtable_vardecl): New routine, mostly split from
4401 finish_vtable_vardecl. It has the first half functionality from
4402 that routine.
4403 * decl2.c (finish_vtable_vardecl): Update to not include stuff not
4404 in finish_prevtable_vardecl.
4405 * decl2.c (finish_file): Call finish_prevtable_vardecl.
4406 * gc.c (build_generic_desc): Allow it to be called when not at the
4407 global binding layer, but behave as if we were.
4408 (build_t_desc): Rearrange a bit so that it really works and is
4409 easier to follow.
4410 * class.c (finish_struct): Don't decide on tdecls here, as we have
4411 to wait until the end of the file in general to decide whether or
4412 not they come out.
4413
4414Mon Jan 30 01:00:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4415
4416 * init.c (build_delete): Check access to operator delete before
4417 calling the destructor.
4418 * method.c (build_opfncall, DELETE_EXPR): build_method is allowed to
4419 return error_mark_node.
4420 * call.c (build_method_call): Use the one-argument op delete even if
4421 it's an error.
4422
4423 * init.c (build_new): Fix -fthis-is-variable support.
4424 * call.c (build_method_call): Ditto.
4425
4426 * call.c (convert_harshness): Make conversion from a pointer to bool
4427 worse than conversion to another pointer.
4428
4429Sat Jan 28 16:46:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4430
4431 * init.c (build_new): Check new return value if -fcheck-new.
4432
4433 * lex.c (check_newline): Clear end_of_file when we're done, too.
4434
4435Sat Jan 28 10:38:39 1995 Mike Stump <mrs@cygnus.com>
4436
4437 * decl2.c (finish_vtable_vardecl): Make rtti TD tables follow
4438 vtables whereever they go.
4439
4440 * gc.c (build_t_desc): Remove old way of setting it up, as it wasn't
4441 right.
4442
4443Sat Jan 28 09:10:44 1995 Mike Stump <mrs@cygnus.com>
4444
4445 * decl2.c (finish_vtable_vardecl): Now set the
4446 interface/implementation of vtables on the first virtual function,
4447 if one exists, otherwise we use the old method. This is a major win
4448 in terms of cutting down the size of objects and executables in
4449 terms of text space and data space. Now most of the savings that
4450 #pragma interface/implementation gives is automatic in a fair number
4451 of cases.
4452
4453Sat Jan 28 04:57:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4454
4455 * decl.c (grokdeclarator): Discard the template parameters in a
4456 template constructor declaration so that the function is always
4457 named constructor_name (ctype).
4458
4459 * lex.c (check_newline): Use ungetc to put back the character before
4460 calling HANDLE_PRAGMA.
4461
4462Fri Jan 27 17:23:47 1995 Mike Stump <mrs@cygnus.com>
4463
4464 * decl2.c (check_classfn): If the cname is T<int> and fn_name is T,
4465 make sure we still match them.
4466
4467Fri Jan 27 16:32:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4468
4469 * parse.y: Add END_OF_LINE token.
4470
4471 * lex.c (check_newline): Set linemode when we see a # directive, and
4472 unset it when we're done. Turn all 'return's into 'goto skipline'.
4473 Fix all uses of '\n', since we won't see it anymore. Put back the
4474 character we read before checking for a sysv or target pragma.
4475 (real_yylex): If we see an EOF in linemode, return END_OF_LINE.
4476 (handle_sysv_pragma): Don't look at the input stream; quit when we
4477 see an END_OF_LINE token.
4478
4479 * input.c (getch): Return EOF if we're in line mode and at the end
4480 of a line.
4481 (put_back): Don't put back an EOF.
4482
4483Thu Jan 26 19:26:34 1995 Mike Stump <mrs@cygnus.com>
4484
4485 * except.c (expand_throw): Do the newing of the exception object
4486 before we load the type descriptor or the address so that we don't
4487 wipe any of the values out.
4488
4489Thu Jan 26 19:20:00 1995 Mike Stump <mrs@cygnus.com>
4490
4491 * except.c (init_exception_processing): Don't use r12 on the rs6000.
4492
4493Tue Jan 24 16:36:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4494
4495 * decl.c (grokparms): Don't try to build up a reference at this point.
4496
4497 * typeck2.c (build_functional_cast): Don't assume that a NOP_EXPR
4498 will suffice to convert from integer_zero_node.
4499
b7484fbe
MS
4500Wed Jan 25 15:02:09 1995 David S. Miller (davem@nadzieja.rutgers.edu)
4501
4502 * class.c (instantiate_type): Change error message text.
4503 * typeck2.c (store_init_value): Likewise.
4504
e1cd6e56
MS
4505Mon Jan 23 21:57:14 1995 Mike Stump <mrs@cygnus.com>
4506
4507 * pt.c (tsubst): When we copy a node, don't forget to copy
4508 TREE_CHAIN, we use it later.
4509
4510Mon Jan 23 03:33:47 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4511
4512 * typeck.c (convert_for_assignment): Initialize variable before use.
4513
4514Fri Jan 20 01:17:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4515
4516 * g++.c (main): Link with both libstdc++ and libg++ if called as
4517 something ending with "g++", otherwise only libstdc++. Move -lm to
4518 the end of the line.
4519
4520Thu Jan 19 15:43:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4521
4522 * call.c (build_method_call): Don't mess with 'this' before calling
f30432d7 4523 compute_conversion_costs.
e1cd6e56
MS
4524
4525Wed Jan 18 15:40:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4526
4527 * search.c (get_matching_virtual): Give line number for previous
f30432d7 4528 declaration.
e1cd6e56
MS
4529
4530 * call.c (convert_harshness): Handle conversions to references
4531 better.
4532
4533 * cvt.c (build_up_reference): OK, handle {MIN,MAX}_EXPR *properly*.
4534
4535Wed Jan 18 15:21:38 1995 Mike Stump <mrs@cygnus.com>
4536
4537 * class.c (instantiate_type): Use DECL_CHAIN to walk lists instead,
4538 as the TREE_CHAIN for methods will take us to the next differently
4539 named function, DECL_CHAIN won't.
4540
4541Wed Jan 18 14:26:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4542
4543 * tree.c (lvalue_p): Handle {MIN,MAX}_EXPR.
4544
4545 * decl2.c (lang_decode_option): -Wall implies -Wparentheses.
4546 warn_parentheses defaults to 0.
4547
4548 * decl.c (grokparms): Put back call to require_instantiated_type.
4549
4550Tue Jan 17 19:56:15 1995 Mike Stump <mrs@cygnus.com>
4551
4552 * except.c (exception_section): Use the data section on the rs6000.
4553 Change calling convention for named_section.
4554
4555Wed Jan 17 18:20:57 1994 Fergus Henderson <fjh@munta.cs.mu.oz.au>
4556
f30432d7
MS
4557 * cp-tree.h : Make if (x=0) warn with wall
4558 * parse.y : Make if (x=0) warn with wall
e1cd6e56 4559
255512c1
JM
4560Tue Jan 17 14:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4561
e1cd6e56
MS
4562 * decl.c (BOOL_TYPE_SIZE): BITS_PER_WORD if SLOW_BYTE_ACCESS,
4563 BITS_PER_UNIT otherwise.
4564
4565 * search.c (get_matching_virtual): Don't check the binfo if the
4566 types are the same.
4567
4568 * cvt.c (cp_convert): Just call truthvalue_conversion to convert to
f30432d7 4569 bool.
255512c1
JM
4570
4571Mon Jan 16 13:28:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4572
e1cd6e56
MS
4573 * various: Use boolean_type_node, boolean_true_node,
4574 boolean_false_node.
4575
4576 * search.c (get_matching_virtual): Allow covariant returns that
4577 don't require pointer adjustment.
4578
4579 * typeck.c (build_conditional_expr): Don't call default_conversion
4580 on ifexp.
4581
4582 * cvt.c (build_up_reference): Handle MIN_EXPR and MAX_EXPR.
4583
4584 * decl.c (grokdeclarator): Upgrade warning about &const to pedwarn.
4585
4586Sun Jan 15 22:17:32 1995 dcb@lovat.fmrco.COM (David Binderman)
4587
4588 * pt.c (do_function_instantiation): Free targs once we're done.
255512c1
JM
4589
4590Sun Jan 15 22:17:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4591
e1cd6e56
MS
4592 * decl.c (BOOL_TYPE_SIZE): Defaults to BITS_PER_WORD.
4593 (init_decl_processing): Use BOOL_TYPE_SIZE instead of CHAR_TYPE_SIZE
4594 for bool.
4595
4596Sat Jan 14 05:33:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4597
4598 * decl2.c (finish_file): We need to mess up if there are any
4599 variables in the list, not just if there is one with a constructor.
4600
4601Fri Jan 13 14:42:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4602
4603 * decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR.
4604 (finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR.
4605 (finish_function): Trust rest_of_compilation.
4606
4607 * decl2.c (finish_file): Also call functions designated as static
4608 constructors/destructors.
4609
4610 * decl.c (grokdeclarator): Allow access decls of operator functions.
4611 (grokparms): Only do convert_for_initialization if the initializer
4612 has a type.
4613 (duplicate_decls): Put back push_obstacks_nochange call.
4614
4615 * lex.c (real_yylex): Downgrade complaint about the escape sequence
4616 being too large from pedwarn to warning.
4617
4618 * decl.c (grokdeclarator): Don't complain about long long in system
4619 headers.
4620
4621 * lex.c (real_yylex): Handle digraphs.
4622
4623Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4624
4625 * decl.c (init_decl_processing): -f{no-,}strict-prototype only
4626 affects C linkage declarations now.
4627
4628 * typeck.c (comp_target_types): Grok simple contravariant conversions.
4629 (common_type): t1 and t2 are interchangeable.
4630
4631 * various: Test return value of comp_target_types differently in
4632 different places; it now returns -1 for a contravariant conversion
4633 (which is fine in symmetric cases).
4634
4635 (common_type): Prefer long double to double even when
4636 they have the same precision.
4637
4638 * decl.c (grokparms): Call convert_for_initialization to check
4639 default arguments.
4640
4641 * init.c (build_new): void_type_node has a size (of 0).
4642
4643 * decl.c (decls_match): Also check for agreement of TREE_READONLY
4644 and TREE_THIS_VOLATILE.
4645 (push_class_level_binding): Properly handle shadowing of
4646 nested tags by fields.
4647
4648 * search.c (dfs_pushdecls): Ditto.
4649
4650 * decl2.c (finish_file): Don't second-guess self-initialization.
4651
4652 * cvt.c (convert_to_reference): Work with expr directly, rather than
4653 a copy.
4654
4655 * decl.c (push_overloaded_decl): Only shadow artificial TYPE_DECLs.
4656
4657 * init.c (add_friend): Downgrade duplicate friend message from
4658 pedwarn to warning.
4659
4660 * decl.c (duplicate_decls): Push obstacks before calling common_type.
4661
4662Thu Jan 12 17:15:21 1995 Michael Ben-Gershon <mybg@cs.huji.ac.il>
4663
4664 * except.c (push_eh_entry): set LABEL_PRESERVE_P flag for
4665 exception table labels.
4666 (expand_start_all_catch): Ditto.
4667 (expand_leftover_cleanups): Ditto.
4668 (expand_end_catch_block): Ditto.
4669 * except.c (make_first_label): new function.
4670 (expand_start_all_catch): add a call to make_first_label() before
4671 using a label as a jump destination.
4672 (expand_end_all_catch): Ditto.
4673 (expand_leftover_cleanups): Ditto.
4674 (expand_end_catch_block): Ditto.
4675 (expand_builtin_throw): Ditto.
4676 (expand_throw): Ditto.
4677 * except.c: Add ARM processor support for exception handling.
4678
4679Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4680
4681 (complete_array_type): Copy code from C frontend.
4682
4683 * lex.c (real_yylex): Don't multiply the length of a wide string
4684 literal by WCHAR_BYTES.
4685
4686 * decl.c (pushdecl): Check for redeclaration of wchar_t here.
4687 (duplicate_decls): Instead of here.
4688 (define_label): Complain about a label named wchar_t.
4689 (grokdeclarator): Complain about declarations of
4690 operator-function-ids as non-functions.
4691
4692 * typeck.c (unary_complex_lvalue): Also wrap prefix -- and ++ in
4693 COMPOUND_EXPRs.
4694 (build_unary_op): Wrap unary plus in a NON_LVALUE_EXPR.
4695
4696 * lex.c (real_yylex): Don't skip whitespace when reading the next
4697 character after ->.
4698
4699Wed Jan 11 16:32:49 1995 Mike Stump <mrs@cygnus.com>
4700
4701 * except.c: Allow cc1plus to be built with native compiler on rs6000.
4702 (expand_start_all_catch): Add assemble_external calls for various
4703 routines we call.
4704 (expand_leftover_cleanups): Ditto.
4705 (expand_start_catch_block): Ditto.
4706 (do_unwind): Ditto.
4707 (expand_builtin_throw): Ditto.
4708
4709Wed Jan 11 01:05:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4710
4711 * decl.c (pushtag): Only look for a previous decl in the current
4712 binding level. Use explicit global scope in DECL_NESTED_TYPENAME.
4713
4714 * gxx.gperf: Add __signature__ and __sigof__ keywords.
4715
4716 * decl2.c (lang_decode_option): -ansi does not set flag_no_asm. It
4717 does set flag_no_gnu_keywords and flag_operator_names.
4718
4719 * lex.c (init_lex): 'overload' is not a keyword unless -traditional.
4720 Unset extension keywords if -fno-gnu-keywords.
4721 Allow operator names ('bitand') if -foperator-names.
4722 Never unset 'asm'; -fno-asm only affects 'typeof'.
4723
4724 * decl.c (lookup_name_real): The got_object special lookup only
4725 applies to types.
4726
4727Tue Jan 10 18:07:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4728
4729 * spew.c (yylex): Also use DECL_NESTED_TYPENAME if got_object is set.
4730
4731 * parse.y (primary): Unset got_object after all rules that use the
f30432d7 4732 'object' nonterminal.
e1cd6e56
MS
4733 (object): Set got_object.
4734
4735 * lex.h: Declare got_object.
4736
4737 * decl.c (lookup_name_real): Also lookup names in the context of an
4738 object specified.
4739
4740Tue Jan 10 14:30:30 1995 Mike Stump <mrs@cygnus.com>
4741
4742 * typeck.c (get_member_function_from_ptrfunc): Use ptrdiff_type_node
4743 for things that have to be added to pointers, not size_type. Cures
4744 problems with pointer to members on Alphas.
4745 (build_binary_op_nodefault): Ditto.
4746 (get_delta_difference_: Ditto.
4747 (build_ptrmemfunc): Ditto.
4748
4749Tue Jan 10 01:49:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4750
4751 * decl.c (pushtag): Stick the new decl in TYPE_NAME before pushing
4752 it.
4753
4754 * typeck.c (build_component_ref): Don't build up a COMPONENT_REF
4755 when dealing with overloaded member functions; just act like
4756 build_offset_ref.
4757 (commonparms): Remove misleading comment.
4758
4759 * decl.c (duplicate_decls): Complain about repeated default
4760 arguments here.
4761 (redeclaration_error_message): Instead of here.
4762 (pushdecl): Complain about missing default arguments here.
4763 (grokparms): Instead of here.
4764 (lookup_name_current_level): Also match on DECL_ASSEMBLER_NAME.
4765 (grok_reference_init): Do not complain about missing initializer if
4766 declared 'extern'.
4767
4768 * search.c (lookup_field): Don't return a TYPE_DECL if there is a
4769 function alternative and want_type is not set.
4770
4771Mon Jan 9 18:16:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4772
4773 * decl.c (pushtag): Don't set TYPE_NAME to an identifier. Do push
4774 the decl when the type has no TYPE_NAME.
4775 (lookup_nested_type): Don't assume that type has TYPE_NAME set.
4776 (lookup_name_real): Call lookup_field with want_type =
4777 prefer_type.
4778
4779 * search.c (lookup_field): Handle want_type properly in the presence
4780 of fields with the same name.
4781
4782 * decl.c (set_nested_typename): Set nested name for file-scope types
4783 to include leading ::.
4784 (pushdecl): Set the nested typename if the decl doesn't have one,
4785 rather than if the type's canonical decl doesn't have one.
4786
e1cd6e56
MS
4787Mon Jan 9 03:44:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4788
4789 * typeck.c (convert_for_assignment): Complain about contravariance
4790 violation here.
4791 (comp_target_types): Instead of here.
4792 (build_unary_op): resolve_offset_ref before checking for a valid
4793 type.
4794
4795 * spew.c (yylex): Decrement looking_for_typename after we see a
4796 _DEFN.
4797
4798 * decl.c (pushdecl): Don't install an artificial TYPE_DECL in
f30432d7 4799 IDENTIFIER_LOCAL_VALUE if we already have a decl with that name.
e1cd6e56
MS
4800
4801 * typeck.c (convert_for_assignment): Converting pointers to bool
4802 does not need a cast.
4803
4804Sun Jan 8 18:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4805
4806 * class.c (instantiate_type): Initialize nsubsts parm.
4807
4808 * pt.c (do_function_instantiation): Ditto.
4809
4810Sat Jan 7 14:37:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4811
4812 * pt.c (tsubst): Use TREE_STATIC instead of DECL_INLINE &&
4813 DECL_SAVED_INSNS to determine whether or not we've seen a definition
4814 of this function.
4815 (instantiate_template): Ditto.
4816
4817 * call.c (convert_harshness): Allow const reference binding when
4818 called from the overloading code, but not when called from
4819 can_convert (since it isn't a conversion).
4820 (convert_harshness): Put back some disabled code.
4821
4822Fri Jan 6 14:10:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4823
4824 * call.c (convert_harshness): There is no implicit conversion from
4825 void* to other pointer types (unless the parameter is (void*)0).
4826 (convert_harshness): Non-lvalues do not convert to reference types.
4827
4828 * class.c (finish_struct_methods): Still set
f30432d7 4829 TYPE_HAS_{INT,REAL}_CONVERSION.
e1cd6e56
MS
4830
4831 * call.c (can_convert): Don't use aggregate initialization.
4832
4833 * cp-tree.h: Declare lookup_conversions.
4834
4835Thu Jan 5 21:08:00 1995 Mike Stump <mrs@cygnus.com>
4836
4837 * parse.y (simple_stmt): Fix duplicate case value error messages to
4838 be more readable.
4839
4840Wed Jan 4 16:44:19 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4841
4842 * cvt.c (build_type_conversion): Total rewrite to use
4843 convert_harshness instead of reproducing conversion logic here. Now
4844 much shorter.
4845
4846 * call.c (convert_harshness): Support conversions to bool.
4847 (can_convert): Checks whether a conversion is less harsh
4848 than USER_CODE, for build_type_conversion.
4849
4850 * search.c (add_conversions): Function for passing to dfs_walk which
4851 adds all the type conversion operators in the current type to a list.
4852 (lookup_conversions): Calls dfs_walk with add_conversions and return
4853 the list.
4854 (dfs_walk): Don't require a qfn.
4855
4856 * cp-tree.h: Lose CLASSTYPE_CONVERSIONS hackery.
4857 (CLASSTYPE_FIRST_CONVERSION): Points to elt 1 of CLASSTYPE_METHOD_VEC.
4858
4859 * class.c (finish_struct_bits): Lose CLASSTYPE_CONVERSIONS hackery.
4860 (grow_method): A separate function for building onto the growing
4861 method vector.
4862 (finish_struct_methods): Use it. Put all type conversion operators
4863 right after the constructors. Perhaps we should sort the methods
f30432d7 4864 alphabetically?
e1cd6e56
MS
4865
4866Mon Jan 2 14:42:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4867
4868 * call.c (build_method_call): Lose another misleading shortcut.
4869
4870Fri Dec 30 17:57:30 1994 Mike Stump <mrs@cygnus.com>
4871
4872 * gc.c (build_bltn_desc): Handle bool as a built-in type.
4873
4874Fri Dec 30 14:20:21 1994 Mike Stump <mrs@cygnus.com>
4875
4876 * tree.c (layout_vbasetypes): Ensure that we don't loose alignment
4877 on the complete type because of small virtual bases.
255512c1 4878
8145f082
MS
4879Fri Dec 30 12:22:29 1994 Mike Stump <mrs@cygnus.com>
4880
4881 * decl.c (n_incomplete): Bump n_incomplete up to int to match C
4882 front end.
4883 (pushdecl): Also count decls pushed that are of a type being defined
4884 as incomplete things.
4885 * class.c (finish_struct): Move hack_incomplete_structures up to
4886 just after we set it as not being defined, so that the decls we
4887 build for RTTI don't count as incomplete.
4888
4889Thu Dec 29 18:20:57 1994 Mike Stump <mrs@cygnus.com>
4890
4891 * pt.c (tsubst): Fix problem with defining constructors in templated
4892 classes with virtual bases.
4893
4894Wed Dec 28 08:31:00 1994 Mike Stump <mrs@cygnus.com>
4895
4896 * parse.y (TYPEID): Strip top-level cv-qualifiers on typeid
4897 expressions.
4898 * gc.c (build_typeid): Ditto.
4899
4900Thu Dec 22 17:26:33 1994 Mike Stump <mrs@cygnus.com>
4901
4902 * cvt.c (build_up_reference): Fix breakage introduced on Nov 29,
4903 don't assert on complex AGGR inits.
4904
4905Thu Dec 22 14:32:31 1994 Mike Stump <mrs@cygnus.com>
4906
4907 * method.c (build_overload_value): Handle pointer to members as
4908 template arguments.
4909
4910Thu Dec 22 13:09:07 1994 Mike Stump <mrs@cygnus.com>
4911
4912 * typeck.c (unary_complex_lvalue): Don't call sorry if we know how
4913 to do take the address of a data member for a pointer to data
4914 member.
4915
4916Thu Dec 22 10:04:19 1994 Mike Stump <mrs@cygnus.com>
4917
4918 * decl.c (grokdeclarator): Use the typedef name for linkage if the
4919 type doesn't otherwise have a name.
4920
4921 * decl2.c (grokfield): Ditto.
4922
4923 * class.c (finish_struct): Since we reuse the TYPE_DECL for the
4924 DECL_NAME of enums, structs and classes, we have to avoid trying to
4925 put it in the TYPE_FIELDS again.
4926
4927Wed Dec 21 11:07:05 1994 Mike Stump <mrs@cygnus.com>
4928
4929 * decl2.c (check_classfn): Ignore this parameter on static functions
4930 when checking to see if we match.
4931
4932Tue Dec 20 17:47:02 1994 Mike Stump <mrs@cygnus.com>
4933
4934 * typeck.c (unary_complex_lvalue): Handle address of non-left most
4935 pointers to members by calling get_delta_difference.
4936
5edb8b93
MS
4937Mon Dec 19 22:40:53 1994 Mike Stump <mrs@cygnus.com>
4938
4939 * decl2.c (check_classfn): Don't use decls_match yet, as it modifies
4940 static functions to early.
4941
4942Thu Dec 19 22:37:48 1994 Mike Stump <mrs@cygnus.com>
4943
4944 * method.c (make_thunk): Handle encoding of positive thunk offsets.
4945
4946Sat Dec 17 13:29:50 1994 Doug Evans <dje@canuck.cygnus.com>
4947
4948 * Make-lang.in (.PHONY): Tell GNU make C++ and c++ are phony targets.
4949
6060a796
MS
4950Thu Dec 15 16:32:12 1994 Mike Stump <mrs@cygnus.com>
4951
4952 * decl2.c (check_classfn): Use decls_match to check if this has
4953 already been declared, as the DECL_ASSEMBLER_NAME may have been
4954 changed via asm("new_name").
4955 * decl.c (decls_match): Make public.
4956
4957Thu Dec 15 15:17:55 1994 Mike Stump <mrs@cygnus.com>
4958
4959 * *.[chy] (expand_aggr_init) Add fourth argument to handle
4960 distinction between = init and (init) style of initializations.
4961 * *.[chy] (finish_decl): Add fifth argument to to handle
4962 distinction between = init and (init) style of initializations.
4963
4964Tue Dec 13 19:16:05 1994 Mike Stump <mrs@cygnus.com>
4965
4966 Fix some random `explicit' bugs.
4967
4968 * cvt.c (convert_to_reference): Add third parameter to
4969 convert_force.
4970 (convert_force): Ditto.
4971 * call.c (build_method_call): Ditto.
4972 * decl2.c (setup_vtbl_ptr): Ditto.
4973 * init.c (expand_virtual_init): Ditto.
4974 (build_member_call): Ditto.
4975 (build_delete): Ditto.
4976 (build_vbase_delete): Ditto.
4977 * typeck.c (build_component_addr): Ditto.
4978 (build_c_cast): Ditto.
4979 (build_modify_expr): Ditto.
4980 * cp-tree.h (CONV_NONCONVERTING): Ditto. Add so that we can
4981 distinguish the context in which the conversion appears. Add thrid
4982 argument to build_c_cast.
4983 * cvt.c (cp_convert): Pass whether or not we want to consider
4984 non-converting constructors down to build_method_call.
4985 * decl2.c (reparse_absdcl_as_casts): Add third argument to
4986 build_c_cast.
4987 * gc.c (build_m_desc): Ditto.
4988 * init.c (build_new): Ditto.
4989 * parse.y (expr_no_commas): Ditto.
4990 (primary): Ditto.
4991 * typeck.c (build_x_function_call): Ditto.
4992 (build_static_cast): Ditto.
4993 (build_reinterpret_cast): Ditto.
4994 (build_const_cast): Ditto.
4995 (build_c_cast): Ditto.
4996 (build_ptrmemfunc): Ditto.
4997 * typeck2.c (build_functional_cast): Ditto.
4998 * init.c (expand_aggr_init): Added LOOKUP_ONLYCONVERTING to
4999 expand_aggr_init_1 as inits are converted to the destination type.
5000
5001Tue Dec 13 16:18:57 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5002
5003 * Make-lang.in (cc1plus): Depends on c-pragma.o.
5004
5005 * Makefile.in (OBJ{DEP,}S): Add ../c-pragma.o.
5006
5007 * lex.c (check_newline): If the #pragma is not recognized by g++,
5008 try machine-specific ones too.
5009 (handle_sysv_pragma): Copied from c-lex.c.
5010
5011Mon Dec 12 23:53:06 1994 Mike Stump <mrs@cygnus.com>
5012
5013 * except.c (expand_throw): Fix Dec 6th change, build_new likes a
5014 reference better.
5015
5016Mon Dec 12 18:01:00 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5017
5018 * typeck.c (build_binary_op): Lose checks on TYPE_PTRMEMFUNC_P with
5019 IS_AGGR_TYPE, since now they will not both be set on the same type.
5020
5021 * pt.c (do_pending_expansions): Don't clear TREE_PUBLIC on
5022 instantiations controlled by -fexternal-templates.
5023
5024 * decl.c (duplicate_decls): Don't complain about different values of
5025 __attribute__ ((const)) and ((noreturn)).
5026
81cdf787
DE
5027Fri Dec 9 18:17:37 1994 Doug Evans <dje@cygnus.com>
5028
5029 * Makefile.in (BISONFLAGS): Delete --yacc.
5030 (PARSE_H): Depend on $(PARSE_C), for parallel makes.
5031 (PARSE_C): Undo last patch.
5032
be99da77 5033Fri Dec 2 10:44:36 1994 Mike Stump <mrs@cygnus.com>
30ffea6b 5034
3526f730 5035 * Makefile.in (BISONFLAGS): Add --yacc so that output winds up in
30ffea6b
MS
5036 y.tab.c.
5037
6060a796
MS
5038Thu Dec 8 17:39:46 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5039
5040 * decl.c (finish_decl): Don't call obscure_complex_init for decls
5041 of indeterminate size.
5042
5043Wed Dec 7 16:49:22 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5044
5045 * decl.c (obscure_complex_init): Function to tweak the decl to
5046 prevent expand_decl from tring to initialize it.
5047 (finish_decl): Use it rather than writing the same code in three
5048 different places.
5049
5050 * parse.y (bad_parm): Stop trying to support parms without types.
5051
5052Wed Dec 7 12:06:56 1994 Mike Stump <mrs@cygnus.com>
5053
5054 * decl2.c (grokfield): Make asm specs on static member functions
5055 work.
5056
5057Tue Dec 6 15:43:20 1994 Mike Stump <mrs@cygnus.com>
5058
5059 * except.c (expand_throw): Make a copy of the thrown object.
5060
5061Tue Dec 6 14:16:34 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5062
5063 * parse.y: : has lower precedence than =.
5064
5065Tue Dec 6 12:46:17 1994 Mike Stump <mrs@cygnus.com>
5066
5067 * decl.c (pushdecl): Use DECL_NAME of VAR_DECLs to avoid namespace
5068 manglings.
5069 (grokvardecl): Add namespace into variable name.
5070
5071Tue Dec 6 11:26:55 1994 Mike Stump <mrs@cygnus.com>
5072
5073 * decl2.c (current_namespace_id): New routine to transform a simple
5074 name into a name in a namespace.
5075 * decl.c (grokdeclarator): Use it.
5076 * decl2.c (get_namespace_id): Find the name of the current
5077 namespace.
5078 (push_namespace, pop_namespace): Complete out missing
5079 functionality.
5080
5081Mon Dec 5 17:11:51 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5082
5083 * class.c (finish_struct): Don't use LONG_LONG_TYPE_SIZE, as it may
5084 not be defined. Fix warning message for enums and restore warning
5085 for non-enums.
5086
5087 * decl2.c (push_namespace): Dummy function.
5088 (pop_namespace): Ditto.
5089 (do_namespace_alias): Ditto.
5090 (do_using_decl): Ditto.
5091 (do_using_directive): Ditto.
5092
5093 * parse.y: New token NSNAME for namespace names.
5094 (extdef): Add namespace, using definitions.
5095 (using_decl): New rule for using declarations.
5096 (any_id): New rule for identifiers with any degree of scoping.
5097 (identifier): Add NSNAME.
5098 (notype_identifier): Ditto.
5099 (component_decl): Add using_decl.
5100 (nested_name_specifier): Add NSNAME SCOPE.
5101
5102 * typeck.c (convert_for_assignment): Handle conversions between
5103 enums and bool.
5104
5105 * decl.c (duplicate_decls): Only propagate DECL_MAIN_VARIANT on
5106 FUNCTION_DECLs.
5107
5108Mon Dec 5 13:03:16 1994 Mike Stump <mrs@cygnus.com>
5109
5110 * class.c (finish_struct): Give an error if one tries to declare a
5111 bit-field's size greater than a long long, as the backend will dump.
5112 It is not an error to declare an enum bit-field greater than its
5113 precision. Warn if an enum bit-field is too small to hold all
5114 its values.
5115
5116Mon Dec 5 11:41:50 1994 Mike Stump <mrs@cygnus.com>
5117
5118 * typeck.c (convert_for_assignment): Use cp_convert instead of
5119 convert so that we don't get static casts.
5120
5121Sun Dec 4 11:59:01 1994 Mike Stump <mrs@cygnus.com>
5122
5123 * cvt.c (cp_convert): Don't complain about int->enum conversion if
5124 we are doing static casts.
5125
5126Fri Dec 2 18:32:41 1994 Mike Stump <mrs@cygnus.com>
5127
5128 * error.c (dump_expr): Do something more intelligent with SAVE_EXPRs
5129 when dumping expressions in error messages.
5130
5131Fri Dec 2 17:04:27 1994 Mike Stump <mrs@cygnus.com>
5132
5133 * gc.c (build_dynamic_cast): Change interface to libg++, ensure that
f30432d7 5134 the return type is the right type, and make references work.
6060a796
MS
5135
5136Fri Dec 2 16:36:43 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5137
5138 * decl.c (poplevel): Don't be confused by function-scope
5139 declarations of non-nested functions.
5140 (duplicate_decls): Propagate DECL_MAIN_VARIANT.
5141 (pushdecl): Use duplicate_decls to copy info from old decl into new
5142 function-scope one rather than doing it here.
5143
5144 * decl2.c (mark_inline_for_output): Deal with the DECL_MAIN_VARIANT
5145 of this decl, in case this is a function-scope declaration.
5146
5147 * decl.c (finish_enum): Make sure that the type has the right
5148 precision when we call fixup_*_type.
5149
5150Tue Nov 29 19:12:07 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5151
5152 * cvt.c (build_up_reference): Strip superfluous NOP_EXPRs; we do
5153 want to build up references to rvalues if possible.
5154 (cp_convert): Stick on a NOP_EXPR when converting to the same type.
5155
5156Tue Nov 29 11:28:59 1994 Mike Stump <mrs@cygnus.com>
5157
5158 * parse.y (maybe_raises): Handle throw ().
5159 * parse.y (ansi_raise_identifier): grok type-ids in exception
5160 specifications.
5161 * tree.c (build_exception_variant): Use list compare to check if
5162 two exception specifications match.
5163 * decl.c (duplicate_decls, bad_specifiers): Enhance wording on error
5164 messages.
5165 * call.c (build_method_call): Remove TREE_RAISES.
5166 * cvt.c (convert_to_aggr): Ditto.
5167 * typeck.c (build_function_call_real, convert_arguments): Ditto.
5168 * init.c (expand_aggr_init_1): Ditto.
5169
5170Tue Nov 29 09:50:39 1994 Mike Stump <mrs@cygnus.com>
5171
5172 * except.c: Add support for m68k and mips exception handling
5173 support.
5174
5175Tue Nov 29 08:48:33 1994 Mike Stump <mrs@cygnus.com>
5176
5177 * except.c (expand_end_all_catch): Throw into outer context, if we
5178 fall off end of catch handlers.
5179
db5ae43f
MS
5180Mon Nov 28 16:44:41 1994 Mike Stump <mrs@cygnus.com>
5181
5182 * Makefile.in: Make is easier to decide where parse.[ch] will be
5183 built.
5184
af824546
DE
5185Thu Nov 17 20:11:24 1994 Doug Evans <dje@cygnus.com>
5186
5187 * cp/Make-lang.in (CXX_INSTALL_NAME) Use program_transform_name.
5188 (GXX_INSTALL_NAME) Likewise.
5189 (CXX_CROSS_NAME) Use program_transform_cross_name.
5190 (GXX_CROSS_NAME) Likewise.
5191 (c++.install-man): Use program_transform_name on g++.1.
5192 (c++.uninstall): Likewise.
5193
db5ae43f
MS
5194Mon Nov 28 13:53:03 1994 Mike Stump <mrs@cygnus.com>
5195
5196 * parse.y (THROW): Fix precedence of throw expressions.
5197
5198Mon Nov 28 13:15:16 1994 Mike Stump <mrs@cygnus.com>
5199
5200 * typeck.c (build_unary_op): Allow promotions from bool to int on
5201 unary ~.
5202
5203Sun Nov 27 00:16:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5204
5205 * method.c (build_overload_name): Use DECL_ASSEMBLER_NAME for
5206 classes when appropriate.
5207 (build_overload_nested_name): When dealing with a function context,
5208 use ASM_FORMAT_PRIVATE_NAME to tweak the name of the function to
5209 avoid conflicts between local classes of the same name.
5210
5211Wed Nov 23 17:59:42 1994 Mike Stump <mrs@cygnus.com>
5212
5213 * gxx.gperf, parse.y, lex.h, hash.h, lex.c (init_lex), delc.c
5214 (duplicate_decls, grokdeclarator), cp-tree.h: Add support for
5215 `explicit'.
5216 * cvt.c (convert_to_reference, cp_convert, build_type_conversion_1,
5217 build_type_conversion): Use LOOKUP_ONLYCONVERTING in
5218 build_method_calls so that non-converting constructors are not used.
5219 * call.c (build_method_call): If we shouldn't use a non-converting
5220 constructor, then don't.
5221
5222Wed Nov 23 14:46:56 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5223
5224 * call.c (build_method_call): Don't try to synthesize methods yet.
5225
5226Tue Nov 22 12:45:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
ea943e1d 5227
db5ae43f
MS
5228 * pt.c (push_template_decls): Create CONST_DECLs for template
5229 constant parameters, not VAR_DECLs.
5230
5231Sat Nov 19 15:28:31 1994 Jim Wilson (wilson@chestnut.cygnus.com)
5232
5233 * typeck.c (build_binary_op_nodefault): Can shorten shift only if
5234 shift count is less than size in bits of arg0.
5235
5236Thu Nov 17 15:30:50 1994 Mike Stump <mrs@cygnus.com>
5237
5238 * gxx.gperf, hash.h, lex.c (init_lex, real_yylex), parse.y: Add new
5239 ANSI keywords and, and_eq, bitand, bitor, explicit, namespace, not,
5240 not_eq, or, or_eq, typename, using, xor, xor_eq to g++. Still need
5241 to add support for explicit, namespace, typename, and using, support
5242 for the rest is already in.
5243
db5ae43f
MS
5244Fri Nov 4 19:04:18 1994 Mike Stump <mrs@cygnus.com>
5245
5246 * gc.c (get_bad_cast_node): New routine to support compile time
5247 throws of bad_cast.
5248 * gc.c (build_dynamic_cast): Support throwing of bad_cast at compile
5249 time.
5250
5251Fri Nov 4 11:12:00 1994 Mike Stump <mrs@cygnus.com>
5252
5253 * except.c: Add hppa support.
5254
5255Fri Nov 4 10:50:50 1994 Mike Stump <mrs@cygnus.com>
5256
5257 * except.c: Add rs6000 support.
5258
5259Thu Nov 3 14:24:23 1994 Mike Stump <mrs@cygnus.com>
5260
5261 * except.c (do_unwind): Add i[34]86 support.
5262
5263Thu Nov 3 00:10:46 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5264
5265 * pt.c (do_pending_expansions): Unset TREE_PUBLIC on implicit
5266 instantiations.
5267
5268Wed Nov 2 15:08:24 1994 Kung Hsu (kung@mexican.cygnus.com)
5269
5270 * decl.c (finish_function): emit types used in method parameters
5271 into symbol table.
5272
5273Wed Nov 2 15:05:47 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5274
5275 * pt.c (process_template_parm): Allow pointer to member function
5276 template parameter types.
5277 (uses_template_parms): Handle pointer to member function
5278 CONSTRUCTORs.
5279
5280 * g++.c (main): Cast first argument of bzero to (char *).
5281 Pass -lstdc++ instead of -lg++ unless we are invoked as 'g++'.
5282
5283Mon Oct 31 14:50:48 1994 Kung Hsu (kung@mexican.cygnus.com)
5284
5285 * gc.c (build_dynamic_cast): rewrite to make it work.
5286 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
5287 * class.c (modify_all_direct_vtables): ditto.
5288 * init.c (expand_direct_vtbls_init): expand more vtables if
5289 flag_rtti is on.
5290 * decl.c (init_type_desc): add default return.
5291
5292Tue Oct 25 17:13:09 1994 Kung Hsu (kung@mexican.cygnus.com)
5293
5294 * tree.c (debug_binfo): get rid of the initial size entry of
5295 vtable.
5296 * cp-tree.h: change flag_dossier to flag rtti, define type
5297 descriptor type nodes.
5298 * decl.c (init_type_desc): new function to initialize type
5299 descriptor type nodes.
5300 * decl.c (record_builtin_type): change flag_dossier to flag_rtti.
5301 * lex.c (init_lex): ditto.
5302 * decl.c : change variable flag_dossier to flag_rtti.
5303 * decl.c (duplicate_decls): get rid initial size entry of vtable.
5304 * decl.c (hack_incomplete_structures): take out assert 164.
5305 * search.c (get_abstract_virtuals_1): ditto.
5306 * search.c (dfs_init_vbase_pointers): change CLASSTYPE_DOSSIER to
5307 CLASSTYPE_RTTI.
5308 * parse.y: ditto.
5309 * class.c (prepare_fresh_vtable): for virtual bases, get right
5310 offset.
5311 * class.c (add_virtual_function): change flag_dossier to
5312 flag_rtti.
5313 * class.c (modify_one_vtable): modify the right rtti entry.
5314 * class.c (override_one_vtable): get rid of size entry.
5315 * class.c (finish_struct): change flag_dossier to flag_rtti, and
5316 build extra vtables, build type descriptors for polymorphic
5317 classes.
5318 * gc.c (build_headof): make headof() works correctly with new
5319 rtti.
5320 * gc.c (build_typeid): make this function work with new rtti.
5321 * gc.c (get_typeid): make this function work with new rtti.
5322 * gc.c (build_bltn_desc): new function for new rtti.
5323 * gc.c (build_user_desc): ditto.
5324 * gc.c (build_class_desc): ditto.
5325 * gc.c (build_ptr_desc): ditto.
5326 * gc.c (build_attr_desc): ditto.
5327 * gc.c (build_func_desc): ditto.
5328 * gc.c (build_ptmf_desc): ditto.
5329 * gc.c (build_ptmd_desc): ditto.
5330 * gc.c (build_t_desc): ditto.
5331 * gc.c : comment out old build_t_desc, build_i_desc, build_m_desc.
5332
5333Tue Oct 25 13:37:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5334
5335 * call.c (convert_harshness): Check for TREE_UNSIGNED differences
5336 after checking for integral conversions.
ea943e1d 5337
72b7eeff
MS
5338Wed Nov 30 19:13:50 1994 Mike Stump <mrs@cygnus.com>
5339
5340 * Version 2.6.3 released.
5341
5342Thu Nov 17 10:56:50 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5343
5344 * typeck2.c (build_m_component_ref): Check the basetype of the
5345 member pointer against the main variant of the object type.
5346
5347Mon Nov 14 14:21:52 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5348
5349 * cvt.c (convert_to_reference): Make sure that the original expr
5350 gets its type back when converting a reference.
5351
5352 * method.c (build_overload_name): Clear numeric_outputed_need_bar here.
5353 (build_decl_overload): Instead of here.
5354
5355Tue Nov 8 17:11:24 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5356
5357 * cvt.c (cp_convert): Don't build a TARGET_EXPR if we're not in a
5358 function.
5359
5360 * typeck.c (convert_for_initialization): Handle initialization from
5361 a TARGET_EXPR.
5362
5363Sun Nov 6 01:34:24 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5364
5365 * pt.c (lookup_nested_type_by_name): Fix list-walking logic.
5366 (tsubst): When replacing a TEMPLATE_TYPE_PARM, propagate
5367 TYPE_READONLY and TYPE_VOLATILE from the argument.
5368 (unify): When unifying with a TEMPLATE_TYPE_PARM, remove cv-quals
5369 present in parm from arg.
5370 (type_unification): Strip REFERENCE_TYPE from the argument type.
5371 (unify): Don't strip REFERENCE_TYPE from the argument type.
5372
5373Sat Nov 5 22:42:15 1994 Greg McGary (gkm@magilla.cichlid.com)
5374
5375 * pt.c (do_type_instantiation): Check to see if there's a
5376 IDENTIFIER_TEMPLATE on a class before calling
5377 instantiate_member_templates().
5378
5379Sat Nov 12 06:35:42 1994 Mike Stump <mrs@cygnus.com>
5380
5381 * Version 2.6.2 released.
5382
5383Thu Nov 3 18:48:19 1994 Paul Eggert <eggert@twinsun.com>
5384
5385 * Makefile.in (spew.o, lex.o, pt.o):
5386 Depend on $(srcdir)/parse.h, not parse.h.
5387
5388Tue Nov 1 19:19:41 1994 Mike Stump <mrs@cygnus.com>
5389
5390 * Version 2.6.1 released.
5391
eae89e04
JM
5392Sun Oct 23 13:19:55 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5393
db5ae43f
MS
5394 * decl2.c: Declare flag_access_control.
5395 (struct lang_f_options): Add access-control.
5396 * expr.c (cplus_expand_expr, NEW_EXPR): Unset flag_access_control
5397 for the call to expand_aggr_init to copy the object out of the
5398 pcc_struct_return slot.
5399 * search.c (compute_access): if (!flag_access_control) return
5400 access_public.
eae89e04
JM
5401
5402Fri Oct 21 00:32:54 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5403
db5ae43f
MS
5404 * lex.c (cons_up_default_function): Don't try to defer method
5405 synthesis now.
5406
5407 * decl.c (init_decl_processing): Use __pure_virtual for abort_fndecl
5408 instead of abort, since the OSF/1 dynamic linker doesn't like to see
5409 relocation entries for abort.
eae89e04 5410
db5ae43f
MS
5411 * tree.c (array_type_nelts_total): Use sizetype, not
5412 integer_type_node.
5413 (array_type_nelts_top): Ditto.
5414
5415Thu Oct 20 15:48:27 1994 Mike Stump <mrs@cygnus.com>
5416
5417 * decl.c (grokdeclarator): Added handling for catch parameters
5418 (CATCHPARM).
5419 * except.c (expand_start_catch_block): Use the new CATCHPARM context
5420 instead of NORMAL.
5421 * except.c (expand_throw): Don't let convert_to_reference complain
5422 about what we are doing.
5423
5424Thu Oct 20 12:55:24 1994 Jim Wilson (wilson@cygnus.com)
5425
5426 * method.c (emit_thunk): Call instantiate_virtual_regs.
5427
5428Wed Oct 19 14:15:33 1994 Mike Stump <mrs@cygnus.com>
5429
5430 * except.c (expand_exception_blocks): Make sure throw code doesn't
5431 get put in function that won't be output.
eae89e04
JM
5432
5433Mon Oct 17 18:03:15 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5434
db5ae43f
MS
5435 * decl.c (init_decl_processing): Make alloca a builtin.
5436
5437Thu Oct 27 21:10:25 1994 Craig Burley (craig@burley)
5438
5439 * g++.c (main): Only decrement "added" and set "library" to
5440 NULL when "library" != NULL (just like 940829 fix).
eae89e04 5441
c199879d
MS
5442Mon Oct 17 15:56:11 1994 Mike Stump <mrs@cygnus.com>
5443
5444 * except.c (expand_start_catch_block): Make sure the false label
5445 gets onto the permanent obstack, as it is used for the exception
5446 table.
5447
13306d4f
MS
5448Fri Oct 14 18:54:48 1994 Mike Stump <mrs@cygnus.com>
5449
5450 * class.c (modify_one_vtable): Since the DECL_CONTEXT of fndecl can
5451 be set just below, use current_fndecl instead.
5452
db5ae43f
MS
5453Fri Oct 14 15:12:22 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5454
5455 * init.c (expand_aggr_vbase_init_1): Don't call expand_aggr_init_1
5456 with LOOKUP_SPECULATIVELY.
5457 (expand_default_init): Abort if build_method_call returns NULL_TREE.
5458
5459 * typeck.c (build_modify_expr): Don't just build a MODIFY_EXPR if
5460 the rhs is a TARGET_EXPR.
5461
5462 * parse.y (left_curly): Anonymous types are not affected by #pragma
5463 interface/implementation.
5464
5465 * method.c (synthesize_method): Don't call setup_vtbl_ptr for the
5466 default constructor if it isn't needed.
5467
5468 * lex.c (cons_up_default_function): Do synthesize methods for
5469 anonymous types if necessary.
5470
2f4f907d
JM
5471Thu Oct 13 17:44:55 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5472
db5ae43f 5473 * method.c (build_decl_overload): Set numeric_outputed_need_bar to 0.
2f4f907d
JM
5474
5475Wed Oct 12 13:27:57 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5476
db5ae43f
MS
5477 * typeck.c (build_modify_expr): Understand how to copy an aggregate.
5478
5479 * init.c (expand_default_init): Ditto. Also remove some of the
5480 crufty code that assumes methods will not be synthesized properly.
5481
5482 * lex.c (cons_up_default_function): If the containing type has no
5483 name, these functions should never need to be called, so just
5484 declare them.
2f4f907d 5485
db5ae43f
MS
5486 * lex.c (real_yylex): Use HOST_BITS_PER_WIDE_INT to determine the
5487 bitmask for lexing character constants.
5488
5489 * call.c (build_method_call): Disable code that tries to do tricky
5490 stuff with a default parameter that is a constructor call, but
5491 actually does other tricky stuff that breaks things.
2f4f907d
JM
5492
5493Wed Oct 12 16:14:01 1994 Benoit Belley <belley@cae.ca>
5494
db5ae43f
MS
5495 * decl.c (finish_enum): Disable code which forces enums to be signed,
5496 since this conflicts with their use as bitfields. type_promotes_to
5497 handles promotion of enums of underlying unsigned types to signed
5498 integer types.
2f4f907d
JM
5499
5500Wed Oct 12 13:24:03 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5501
db5ae43f
MS
5502 * cvt.c (type_promotes_to): Also promote enums to long if
5503 appropriate.
2f4f907d 5504
db5ae43f
MS
5505 * typeck.c (default_conversion): Don't expect type_promotes_to to
5506 return a main variant.
2f4f907d
JM
5507
5508Wed Oct 12 12:19:45 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5509
db5ae43f
MS
5510 * call.c (build_scoped_method_call): Don't lose side effects in the
5511 object expression when calling a non-existent destructor.
2f4f907d
JM
5512
5513Fri Sep 2 19:05:21 1994 Rohan Lenard (rjl@iassf.easams.com.au)
5514
db5ae43f
MS
5515 * call.c (build_scoped_method_call): Remove erroneous error message
5516 when destructor call is written as a scoped call.
2f4f907d 5517
252b87c7 5518Tue Oct 11 23:48:31 1994 Jason Merrill (jason@phydeaux.cygnus.com)
db5ae43f
MS
5519
5520 * various: Cast pointer arguments to bzero and bcopy to char *.
252b87c7 5521
13306d4f
MS
5522Tue Oct 11 19:34:32 1994 Mike Stump <mrs@cygnus.com>
5523
5524 * class.c (get_derived_offset): Added a type parameter to limit how
5525 far up the CLASSTYPE_VFIELD_PARENT chain we search.
5526 * class.c (modify_one_vtable, fixup_vtable_deltas): When forming the
5527 offset to put into the vtable for the this parameter, make sure we
5528 don't offset from a parent of the DECL_CONTEXT of the function.
5529
db5ae43f
MS
5530Tue Oct 11 16:10:52 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5531
5532 * pt.c (do_function_instantiation): Set DECL_EXTERNAL and
5533 TREE_STATIC when setting DECL_INTERFACE_KNOWN.
5534 (do_type_instantiation): Ditto.
5535
5536 * lex.c (cons_up_default_function): Set DECL_INTERFACE_KNOWN,
5537 DECL_EXTERNAL and TREE_STATIC as appropriate.
5538
5539 * decl2.c (finish_file): Also synthesize methods that don't have
5540 DECL_EXTERNAL set. Set interface_unknown before doing so.
5541
5542 * decl.c (start_function): If DECL_INTERFACE_KNOWN is set on the
5543 function decl, don't muck with TREE_PUBLIC and DECL_EXTERNAL.
5544
cba8ba35
JM
5545Mon Oct 10 00:56:53 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5546
db5ae43f
MS
5547 * lex.c (cons_up_default_function): Mark methods in a template class
5548 as template instances. Store the values of interface_unknown and
5549 interface_only for do_pending_inlines.
5550 (do_pending_inlines): Use them.
5551
5552 * decl2.c (finish_file): If we haven't seen a definition of a
5553 function declared static, make the decl non-PUBLIC so compile_file
5554 can give an error.
cba8ba35
JM
5555
5556Sun Oct 9 02:42:29 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5557
db5ae43f
MS
5558 * method.c (do_build_copy_constructor): Handle anonymous unions.
5559 (do_build_assign_ref): Ditto.
5560 (largest_union_member): Move from lex.c.
5561
5562Sat Oct 8 14:59:43 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5563
5564 Re-implement g++'s vague linkage independent of TREE_PUBLIC.
5565 * pt.c (instantiate_member_templates): Lose redundant
5566 -fexternal-templates handling.
5567 (tsubst): Set TREE_PUBLIC and DECL_EXTERNAL on new decls. Don't set
5568 TREE_STATIC or DECL_INTERFACE_KNOWN.
5569 (do_pending_expansions): Predicate on DECL_INTERFACE_KNOWN instead
5570 of DECL_EXTERNAL for explicit instantiations.
5571 (do_function_instantiation): Do the new thing.
5572 (do_type_instantiation): Ditto.
5573 (instantiate_template): Deal with member templates defined in a .cc
5574 file with -fexternal-templates.
5575 * except.c (expand_exception_blocks): Use DECL_LINKAGE_KNOWN to
5576 decide whether to stick builtin_throw here.
5577 * decl2.c (import_export_inline): Predicate on DECL_INTERFACE_KNOWN
5578 rather than TREE_PUBLIC. Generally fix rules.
5579 (finish_file): Use DECL_INITIAL to determine whether or not a method
5580 has been synthesized, rather than TREE_ASM_WRITTEN.
5581 * decl.c (warn_extern_redeclared_static): Use DECL_PUBLIC instead of
5582 TREE_PUBLIC.
5583 (pushdecl): Ditto.
5584 (duplicate_decls): Ditto. Deal with DECL_DECLARED_STATIC and
5585 DECL_INTERFACE_KNOWN.
5586 (redeclaration_error_message): Fix checking for conflicting linkage.
5587 (define_function): Set DECL_INTERFACE_KNOWN.
5588 (grokfndecl): Function decls are PUBLIC until we are sure about
5589 their linkage. Set DECL_DECLARED_STATIC as needed.
5590 (start_function): Deal with linkage. Move pushdecl after linkage
5591 magic.
5592 (finish_function): Don't set TREE_ASM_WRITTEN on discarded inlines.
5593 * cp-tree.h (lang_decl_flags): Add interface_known and
5594 declared_static.
5595 (DECL_INTERFACE_KNOWN): New macro.
5596 (DECL_DECLARED_STATIC): New macro.
5597 (DECL_PUBLIC): New macro.
5598
5599 Clean up bogus use of TREE_PUBLIC.
5600 * class.c (alter_access): Fix mistaken use of TREE_PUBLIC (it
5601 doesn't correspond to TREE_PROTECTED and TREE_PRIVATE).
5602 * init.c (do_friend): Don't arbitrarily set TREE_PUBLIC.
cba8ba35
JM
5603
5604Wed Oct 5 13:44:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5605
db5ae43f
MS
5606 * call.c (build_overload_call_real): Don't immediately do
5607 array->pointer conversion.
cba8ba35 5608
db5ae43f
MS
5609 * pt.c (type_unification): If not passing to a reference, strip
5610 cv-quals. Also handle array->pointer conversion.
cba8ba35
JM
5611
5612Tue Oct 4 17:45:37 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5613
db5ae43f
MS
5614 * decl.c (grokdeclarator): Don't warn about applying const to a
5615 const typedef or template type parameter.
5616
5617 * decl2.c (finish_file): Also synthesize methods after walking the
5618 vtables. Ugly ugly ugly.
cba8ba35
JM
5619
5620Mon Oct 3 15:02:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5621
db5ae43f
MS
5622 * various: Remove lingering remnants of old exception handling code.
5623
5624 * decl2.c (finish_file): Synthesize methods before walking the
5625 vtables, so that the vtables get emitted as needed.
5626
5627 * decl.c (shadow_tag): Remove obsolete code for pushing tags and
5628 dealing with exceptions.
5629
5630Mon Oct 3 13:05:27 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
5631
5632 * Make-lang.in (g++-cross): Depend upon version.o and $(LIBDEPS).
5633
5634Mon Oct 3 02:59:28 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5635
5636 * decl2.c (finish_file): Fix inline handling.
cba8ba35
JM
5637
5638Sun Oct 2 00:21:56 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5639
db5ae43f
MS
5640 * decl.c (grokdeclarator): Handle redundant scope even better.
5641 ({push,pop}_cp_function_context): Take toplev parameter.
cba8ba35 5642
db5ae43f
MS
5643 * method.c (synthesize_method): Pass toplev parameter to
5644 {push,pop}_cp_function_context depending on decl_function_context
5645 (fndecl).
cba8ba35 5646
db5ae43f
MS
5647 * typeck.c (build_x_unary_op): Unary & on OFFSET_REFs is always the
5648 built-in version.
cba8ba35 5649
db5ae43f
MS
5650 * method.c (synthesize_method): Don't be confused by __in_chrg
5651 parameter.
b3738072 5652
db5ae43f 5653 * class.c (popclass): Set C_C_D like start_function does.
b3738072 5654
db5ae43f 5655 * decl.c (grokdeclarator): Handle redundant scope better.
81613e43 5656
db5ae43f
MS
5657 * parse.y (expr_or_declarator): Add '(' expr_or_declarator ')' rule.
5658 (direct_notype_declarator): Ditto.
5659 (complex_direct_notype_declarator): Remove it here.
81613e43 5660
db5ae43f 5661Sat Oct 1 21:42:18 1994 Jason Merrill (jason@deneb.cygnus.com)
44c5421f 5662
db5ae43f
MS
5663 * init.c (resolve_offset_ref): Fix types used in resolving .*
5664 expressions.
5665
5666Sat Oct 1 15:18:49 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5667
5668 Beginnings of work to synthesize methods only when needed.
5669 * call.c (build_method_call): Synthesize methods as necessary
5670 (currently never necessary).
5671 * class.c (popclass): Don't try to set C_C_D here, as it'll end up
5672 on the wrong obstack.
5673 * decl.c (push_cp_function_context): Mostly copied from
5674 push_c_function_context.
5675 (pop_cp_function_context): Similarly.
5676 (finish_function): Reverse order of poplevel and pop_nested_class so
5677 that current_class_decl is restored properly.
5678 (start_function): Ditto.
5679 (finish_function): Add parameter 'nested'. Don't call
5680 permanent_allocation if (nested).
5681 * various: Pass extra parameter to finish_function.
5682 * decl2.c (finish_file): Reorganize end-of-file inline handling,
5683 synthesizing methods as necessary.
5684 * lex.c (cons_up_default_function): Call mark_inline_for_output.
5685 Only synthesize methods immediately if #pragma implementation
5686 (currently disabled).
5687 (do_pending_inlines): Call synthesize_method.
5688 * method.c (synthesize_method): New function; all method synthesis
5689 goes through here. Calls do_build_assign_ref and
5690 do_build_copy_constructor.
5691 (build_default_constructor): Remove.
5692 (build_dtor): Ditto.
5693 (build_assign_ref): Rename to do_build_assign_ref and remove stuff
5694 done by synthesize_method.
5695 (build_copy_constructor): Similarly.
44c5421f 5696
eac293a1
MS
5697Thu Sep 29 16:58:52 1994 Mike Stump <mrs@cygnus.com>
5698
5699 * typeck.c (c_expand_return): Use magic so the backend can fixup the
5700 assignment into the return register, so cleanups won't clobber it.
5701
5702Thu Sep 29 13:08:50 1994 Jason Merrill (jason@deneb.cygnus.com)
5703
5704 * method.c (hack_identifier): Don't call assemble_external for
5705 template decls.
5706
5707 * decl.c (finish_decl): Also end temporary allocation if the decl in
5708 question has a type of error_mark_node.
5709
6060a796 5710Wed Sep 28 21:45:00 1994 Mike Stump <mrs@cygnus.com>
eac293a1
MS
5711
5712 * typeck.c (build_modify_expr): When optimizing ?: on lhs, make sure
5713 that if the ?: was a reference type, that the subparts will be also.
5714
5715Wed Sep 28 16:14:04 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5716
5717 * except.c (register_exception_table): Use Pmode, not PTRmode.
5718
5719Fri Sep 23 13:54:27 1994 Jason Merrill (jason@deneb.cygnus.com)
5720
5721 * lex.c (do_pending_inlines): Do method synthesis after the
5722 pending_inlines have been reversed.
5723
f376e137
MS
5724Thu Sep 22 12:53:03 1994 Per Bothner (bothner@kalessin.cygnus.com)
5725
5726 * decl2.c (finish_file): Fix Brendan's fix: Only call
5727 register_exception_table if there is a non-empty exception table.
5728
5729Thu Sep 22 12:03:46 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5730
5731 * decl2.c (finish_file): Only do register_exception_table if
5732 -fhandle-exceptions is being used.
5733
5734Wed Sep 21 19:01:51 1994 Per Bothner (bothner@kalessin.cygnus.com)
5735
5736 * except.c (output_exception_table_entry): Simplify
5737 by using assemble_integer.
5738 (build_exception_table): Change to return a count.
5739 Cleanup to use standard macros, instead of hard-wired
5740 sparc asm format. Don't make __EXCEPTION_TABLE__ global.
5741 (register_exception_table): New function. Generate call to builtin.
5742 * decl2.c (finish_file): Call register_exception_table.
5743 * cp-tree.h (build_exception_table): Fix prototype.
5744
5745Wed Sep 21 13:20:42 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5746
5747 * tree.c (break_out_calls): Don't try to duplicate the DECL_INITIAL.
5748
5749 * decl2.c (delete_sanity): Give an error at trying to delete a
5750 function.
5751
5752Wed Sep 21 11:47:10 1994 Jason Merrill (jason@deneb.cygnus.com)
5753
5754 * lex.c (cons_up_default_function): Mark synthesized destructors
5755 inline.
5756
5757 * decl.c (duplicate_decls): Ignore redeclarations of wchar_t as
5758 something other than __wchar_t, complaining if -pedantic and not in
5759 a system header.
5760
5761Tue Sep 20 09:43:28 1994 Jason Merrill (jason@deneb.cygnus.com)
5762
5763 * decl.c (xref_tag): Set up BINFO_INHERITANCE_CHAIN on base binfos
5764 here.
5765
5766 * typeck.c (build_modify_expr): Require complete type after checking
5767 for error_mark_node.
5768
5769 * call.c (build_method_call): Print parmtypes when complaining of
5770 ambiguous call.
5771
5772 * typeck.c (build_modify_expr): Handle assignment to array from
5773 non-array.
5774
5775 * decl.c (lookup_name_real): Deal with got_scope == error_mark_node.
5776
5777 * call.c (build_method_call): Don't bother with the exact match.
5778
5779Mon Sep 19 00:51:39 1994 Jason Merrill (jason@deneb.cygnus.com)
5780
5781 * init.c (expand_aggr_init): If we munge the type of the variable,
5782 also munge the type of the initializer.
5783
5784 * decl.c (grokdeclarator): Use <= when comparing to RID_LAST_MODIFIER.
5785 (init_decl_processing): Push artificial declaration of wchar_t so
5786 people don't have to declare it before they can use it.
5787
5788 * error.c (cp_line_of): return lineno in lieu of 0.
5789
5790 * typeck.c (convert_for_assignment): Handle conversion of pmfs to
5791 int and bool.
5792 (build_component_ref): Fold the COMPONENT_REF in case it can be
5793 reduced.
5794
5795 * typeck2.c (store_init_value): Don't pedwarn about non-constant
5796 bracketed initializers for automatic variables.
5797
5798Sun Sep 18 10:12:12 1994 Jason Merrill (jason@deneb.cygnus.com)
5799
5800 * error.c (dump_decl): Don't say `typedef enum foo foo'.
5801
5802 * decl.c (start_decl): Don't set TREE_PUBLIC on template decls just
5803 because they're affected by #pragma i/i. We'll deal with that when
5804 they get instantiated.
5805
5806 * typeck.c (build_unary_op): Clean up cruft in ADDR_EXPR case.
5807
5808 * class.c (instantiate_type): Set TREE_CONSTANT on instantiated
5809 ADDR_EXPRs if appropriate.
5810
5811 * decl.c (build_ptrmemfunc_type): Unset IS_AGGR_TYPE on pmf types.
5812
5813 * typeck.c (build_ptrmemfunc): Handle &overloaded_method as an
5814 initializer properly.
5815 * typeck2.c (digest_init): Ditto.
5816
5817 * tree.c (cp_build_type_variant): Like c_build_type_variant, except
5818 it uses build_cplus_array_type.
5819 * *.c: Use cp_build_type_variant instead of c_build_type_variant.
5820
5821 * pt.c (do_type_instantiation): Don't try to instantiate nested
db5ae43f 5822 enums.
f376e137
MS
5823
5824Tue Sep 13 10:56:58 1994 Jason Merrill (jason@deneb.cygnus.com)
5825
5826 * cvt.c (build_up_reference): Handle preincrement and predecrement
db5ae43f 5827 properly.
f376e137
MS
5828
5829Tue Sep 13 09:51:59 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5830
5831 * decl.c (finish_decl): Only lay out the rtl for DECL if it is, in
5832 fact, static.
5833
5834Mon Sep 12 14:40:30 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5835
5836 * decl.c (finish_decl): Lay out the rtl for DECL before doing
5837 grok_reference_init, in case it's static.
5838
5839Mon Sep 12 12:45:38 1994 Jason Merrill (jason@deneb.cygnus.com)
5840
5841 * class.c (finish_struct): Don't synthesize constructors if the
5842 class has a field with the same name as the class. Don't die on
5843 classes with no constructors or destructors. Don't die if the head
5844 and tail of the class are in different files.
5845
5846 * decl.c (grokdeclarator): Don't treat a function pointer field
5847 with the same name as the class as a constructor.
5848
5849Fri Sep 9 13:17:00 1994 Jason Merrill (jason@deneb.cygnus.com)
5850
5851 * typeck.c (build_c_cast): Pull constant values out of their
5852 variables here.
5853
5854 * decl.c (duplicate_decls): Only propagate DECL_CHAIN in
5855 FUNCTION_DECLs and TEMPLATE_DECLs.
5856
5857Thu Sep 8 10:07:48 1994 Jason Merrill (jason@deneb.cygnus.com)
5858
5859 * decl.c (duplicate_decls): Propagate DECL_CHAIN in all DECLs that
5860 have it.
5861
5862 * pt.c (unify): REALs and INTEGERs only unify with their own genus.
5863 (instantiate_member_templates): Don't muck with DECL_EXTERNAL and
5864 TREE_PUBLIC unless -fexternal-templates.
5865
5866Wed Sep 7 13:17:10 1994 Jason Merrill (jason@deneb.cygnus.com)
5867
5868 * pt.c (do_type_instantiation): Call instantiate_member_templates.
5869 Deal with specializations.
5870 (tsubst): Don't stick the mangled name in DECL_NAME for function
5871 instantiations. Don't push them, either.
5872
5873 * decl2.c (grokfield): Move code for generating the
5874 DECL_ASSEMBLER_NAME for static members from here.
5875 * method.c (build_static_name): To here.
5876 * decl.c (grokvardecl): Call build_static_name.
5877 (duplicate_decls): Keep old DECL_ASSEMBLER_NAME.
5878
5879Mon Sep 5 12:49:18 1994 Jason Merrill (jason@deneb.cygnus.com)
5880
5881 * call.c (build_method_call): if -Wsynth, warn when selecting
5882 synthesized op= over user-supplied one cfront would select.
5883 * decl2.c (lang_decode_option): Handle -Wsynth.
5884
5885Fri Sep 2 15:11:59 1994 Jason Merrill (jason@deneb.cygnus.com)
5886
5887 * decl.c (finish_enum): Overhaul to fix several bugs.
5888 (start_enum): Disable useless code.
5889
5890Thu Sep 1 16:04:54 1994 Jason Merrill (jason@deneb.cygnus.com)
5891
5892 * typeck.c (c_expand_return): Warn about returning a reference to a
5893 temporary.
5894 (convert_arguments): Increment argument counter when using default
5895 arguments, too.
5896
5897Wed Aug 31 14:29:22 1994 Jason Merrill (jason@deneb.cygnus.com)
5898
5899 * decl.c (finish_decl): If the type of decl is error_mark_node,
5900 don't bother trying to do anything.
5901
5902 * typeck.c (convert_for_initialization): If the rhs contains a
5903 constructor call, pretend the lhs type needs to be constructed.
5904
5905 * init.c (expand_default_init): If we stick the object inside the
5906 initializer, mark the initializer used.
5907
5908Tue Aug 30 13:50:18 1994 Jason Merrill (jason@deneb.cygnus.com)
5909
5910 * method.c (build_assign_ref): return *this;
5911 (build_assign_ref): Fix base assignment order.
5912 (build_copy_constructor): Fix member init order.
5913
5914Mon Aug 29 13:54:39 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5915
5916 * g++.c (main): Remember to clear out SAW_SPECLANG after we see
5917 its argument.
5918
5919Sat Aug 27 09:36:03 1994 Jason Merrill (jason@deneb.cygnus.com)
5920
5921 * method.c (build_copy_constructor): Also copy virtual bases.
5922
5923Fri Aug 26 17:05:15 1994 Jason Merrill (jason@deneb.cygnus.com)
5924
5925 * lex.c (do_pending_inlines): Clear out pending_inlines before doing
5926 any synthesis. Also first set deja_vu on all pending_inlines.
5927
5928 * method.c (build_assign_ref): Use build_member_call to invoke base
5929 operator=, rather than build_modify_expr. And use
5930 build_reference_type instead of TYPE_REFERENCE_TO.
5931 (build_copy_constructor): Use TYPE_NESTED_NAME to identify the
5932 basetype.
5933
5934 * decl2.c (grokfield): Don't complain about undefined local class
5935 methods.
5936
5937 * class.c (finish_struct): Don't try to synthesize methods here.
5938 * lex.c (do_pending_inlines): Instead, synthesize them here.
5939 (init_lex): Initialize synth_obstack.
5940 (cons_up_default_function): Stick synthesis request on
5941 pending_inlines.
5942
5943Fri Aug 26 12:24:14 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5944
5945 * call.c (build_method_call) [PCC_STATIC_STRUCT_RETURN]: Also
5946 accept an RTL_EXPR in what we're about to use for the instance,
5947 since anything which would end up with pcc_struct_return set
5948 inside cplus_expand_expr.
5949
5950 * cp-tree.h (cons_up_default_function): Note change of prototype.
5951
5952Thu Aug 25 23:05:30 1994 Gerald Baumgartner (gb@cs.purdue.edu)
5953
5954 * class.c (finish_struct): Undid change from Aug 21 testing
5955 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
5956 * parse.y (left_curly): Ditto, undid change from Aug 21.
5957 * decl.c (xref_tag): Undid change from Aug 21, set
5958 CLASSTYPE_INTERFACE correctly, and added comments.
5959
5960Thu Aug 25 00:36:31 1994 Jason Merrill (jason@deneb.cygnus.com)
5961
5962 Rework approach to synthesized methods; don't go through the parser
5963 anymore.
5964 * class.c (finish_struct): Use new synthesis approach.
5965 * lex.c (cons_up_default_function): Now just creates declaration,
5966 not code.
5967 (largest_union_member): #if 0 out.
5968 (default_assign_ref_body): Ditto.
5969 (default_copy_constructor_body): Ditto.
5970 * method.c (build_default_constructor): New function to synthesize X().
5971 (build_copy_constructor): Synthesize X(X&).
5972 (build_assign_ref): Synthesize X::operator=(X&).
5973 (build_dtor): Synthesize ~X().
5974
5975 * error.c (cp_line_of): If we're dealing with an artificial
5976 TYPE_DECL, look at the type instead.
5977
5978Wed Aug 24 11:11:50 1994 Jason Merrill (jason@deneb.cygnus.com)
5979
5980 * init.c (sort_member_init): Check warn_reorder.
5981 * decl2.c (lang_decode_option): Handle -W{no-,}reorder.
5982
5983 * cp-tree.h (CLASSTYPE_SOURCE_LINE): New macro.
5984 * error.c (cp_line_of): Use CLASSTYPE_SOURCE_LINE for aggregates.
5985 * class.c (finish_struct): Set CLASSTYPE_SOURCE_LINE.
5986
6060a796 5987Tue Aug 23 09:28:35 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
5988
5989 * error.c (dump_decl): Improve wording, so that error messages
5990 dont't read template<, class foo>...
5991
5992Mon Aug 22 15:30:51 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5993
5994 * parse.y (label_colon): Also match a TYPENAME as a label name,
5995 since they may have declared a class by that name but have also
5996 tried to have a local label under the same name.
5997
5998 * pt.c (coerce_template_parms): Call cp_error, not cp_error_at,
5999 for the message so they know at what point it was instantiated.
6000
6001Sun Aug 21 23:07:35 1994 Gerald Baumgartner (gb@cs.purdue.edu)
6002
6003 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
6004 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures up to left_curly time.
6005 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 6006 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures down to left_curly time.
f376e137
MS
6007 * parse.y (left_curly): New final resting place for setting
6008 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING for signatures.
6009
6010 * class.c (finish_struct): Don't test for function/field name
6011 conflicts in signatures, since all the fields are compiler-constructed.
6012
6013Fri Aug 19 14:04:47 1994 Kung Hsu (kung@mexican.cygnus.com)
6014
6015 * method.c (build_overload_nested_name): in qualified name
6016 mangling, the template with value instantiation will have numeric
6017 at end and may mixed with the name length of next nested level.
6018 Add a '_' in between.
6019 * method.c (build_overload_name): ditto.
6020 * method.c (build_overload_identifier): ditto.
6021
6060a796 6022Thu Aug 18 16:24:43 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
6023
6024 * error.c (dump_decl): Handle NULL args.
6025
db5ae43f
MS
6026Thu Sep 29 16:15:36 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
6027
6028 * g++.c: Rework last change so it's done like collect.c (and
6029 gcc.c).
6030
6031Wed Sep 14 10:17:27 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
6032
6033 * g++.c: Include <sys/errno.h> in case `errno' is a macro
6034 as permitted by ANSI C.
6035
6060a796 6036Thu Aug 18 12:48:09 1994 Mike Stump <mrs@cygnus.com>
00595019
MS
6037
6038 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
6039 CLASSTYPE_VTABLE_NEEDS_WRITING up to left_curly time.
6040 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 6041 CLASSTYPE_VTABLE_NEEDS_WRITING down to left_curly time.
00595019
MS
6042 * parse.y (left_curly): New final resting place for setting
6043 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
6044
6045Thu Aug 11 11:32:42 1994 H.J. Lu (hjl@nynexst.com)
6046
6047 * g++.c (main): Only decrement "added" and set "library" to
6048 NULL when "library" != NULL.
6049
6050Sat Aug 13 00:14:52 1994 Jason Merrill (jason@deneb.cygnus.com)
6051
6052 * decl.c (grokdeclarator): Don't set TREE_PUBLIC on a function decl
6053 just because its class has a known interface.
6054 (decls_match): Deal with new format of template parms.
6055
6056 * lex.c (cons_up_default_function): Don't play with TREE_PUBLIC and
6057 DECL_EXTERNAL here.
6058
6059Fri Aug 12 01:55:15 1994 Jason Merrill (jason@deneb.cygnus.com)
6060
6061 * decl.c (pushtag): SET_DECL_ARTIFICIAL on gratuitous typedefs.
6062 (xref_defn_tag): Ditto.
6063 (pushdecl): Only allow artificial typedefs to be shadowed.
6064
6065 * init.c (emit_base_init): Pass the right binfos to
6066 expand_aggr_init_1.
6067
6068 * class.c (delete_duplicate_fields_1): Make it work right.
6069 (finish_struct): Catch function/field name conflict.
6070
6071 * decl2.c (check_classfn): Pass the function to cp_error, not just
6072 the name.
6073
6074 * init.c (sort_member_init): Warn when order of member initializers
6075 does not match order of member declarations.
6076 (emit_base_init): Call expand_aggr_init_1 with LOOKUP_PROTECT.
6077
6078 * error.c (dump_expr): Handle lists of functions.
6079
6080 * decl.c (start_function): #pragma interface only affects functions
6081 that would otherwise be static.
6082 (finish_decl): Don't warn about an unused variable if it has both
6083 constructor and destructor, since the 'resource allocation is
6084 initialization' idiom is relatively common.
6085
6086 * typeck.c (comp_target_types): Don't handle TEMPLATE_TYPE_PARMs.
6087 (comp_target_parms): Ditto.
6088 (compparms): Never consider default parms.
6089 (common_base_type): Don't choose a virtual baseclass if there is a
6090 more derived class in common.
6091 (build_conditional_expr): If pedantic, pedwarn about conversion to
6092 common base in conditional expr.
6093
6094 * class.c (instantiate_type): Handle template instantiation better.
6095
6096 * typeck.c (convert_arguments): Don't try to get tricky and convert
6097 to int directly when PROMOTE_PROTOTYPES is set, as it breaks
6098 user-defined conversions.
6099
6100 * lex.c (check_for_missing_semicolon): Also give error at end of
6101 file.
6102
6103 * call.c (build_method_call): Don't promote arrays to pointers here.
6104
6105 * typeck.c (convert_arguments): Don't require the actual parameter
6106 to be of a complete type if the formal parameter is a reference.
6107
6108Thu Aug 11 15:21:40 1994 Jason Merrill (jason@deneb.cygnus.com)
6109
6110 * decl.c (grokdeclarator): Soften 'static' on member function error
6111 to pedwarn.
6112
6113 * init.c (build_new): Don't automatically save rval.
6114 (build_offset_ref): Do field lookup with proper basetype_path.
6115
6116Thu Aug 11 12:46:54 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
6117
6118 * errfn.c (cp_silent): Declare to mark when we should avoid
6119 emitting warnings and errors.
6120 (cp_error): Check it.
6121 (cp_warning): Likewise.
6122 (cp_pedwarn): Likewise.
6123 (cp_compiler_error): Likewise.
6124 (cp_error_at): Likewise.
6125 (cp_warning_at): Likewise.
6126 (cp_pedwarn_at): Likewise.
6127 * call.c (compute_conversion_costs): Set CP_SILENT when we start
6128 out, and make sure we turn it off before we leave.
6129
6130Thu Aug 11 00:02:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6131
6132 * decl2.c (grok_array_decl): Try computing *(A+B) if neither
6133 argument is obviously an array.
6134
6135Wed Aug 10 15:32:04 1994 Jason Merrill (jason@deneb.cygnus.com)
6136
6137 * typeck.c (c_expand_start_case): Do cleanups here.
6138
6139 * parse.y (xcond): Do bool conversion here, too.
6140 (simple_stmt, SWITCH case): Don't do cleanups here.
6141
6142 * decl.c (duplicate_decls): Don't treat builtins that have been
6143 explicitly declared specially.
6144
6145Tue Aug 9 01:16:09 1994 Jason Merrill (jason@deneb.cygnus.com)
6146
6147 * tree.c (make_deep_copy): Support copying pointer, reference,
6148 function, array, offset and method types.
6149
6150 * decl.c (init_decl_processing): Mark exit and abort as
6151 BUILT_IN_NONANSI so that duplicate_decls is kinder about
6152 redeclaration.
6153 (duplicate_decls): Don't give two errors for redeclaring a C
6154 function with the same parms but a different return type.
6155
6156 * parse.y (paren_cond_or_null): Do cleanup and bool conversion here.
6157 (condition): Instead of here.
6158 (simple_stmt, SWITCH case): Also do cleanup here.
6159
6160 * decl2.c (finish_anon_union): Only break out FIELD_DECLs.
6161
6162 * call.c (build_method_call): Don't throw away the side effects of
6163 the object in a call to a non-existent constructor.
6164 * parse.y (primary): Ditto.
6165
6166 * method.c (build_decl_overload): Oop.
6167
6168 * decl2.c (lang_decode_option): Deal with flag_no_nonansi_builtin,
6169 warn about uselessness of specifying -fansi-overloading.
6170
6171 * method.c (build_decl_overload): Treat any non-member new with one
6172 parameter as __builtin_new.
6173
6174 * decl.c (init_decl_processing): Setup built-in meanings of exit,
6175 _exit and abort.
6176
6177Mon Aug 8 15:03:30 1994 Jason Merrill (jason@deneb.cygnus.com)
6178
6179 * error.c (dump_readonly_or_volatile): Put a space between const and
6180 volatile if both apply.
6181
6182 * init.c (perform_member_init): Clean up after this initialization.
6183 (emit_base_init): Clean up after each base init, not after all have
6184 been done.
6185 (expand_aggr_vbase_init_1): Clean up after this init.
6186
6187Sun Aug 7 14:55:05 1994 Jason Merrill (jason@deneb.cygnus.com)
6188
6189 * call.c (build_method_call): Deal with destroying references.
6190
6191 * parse.y (condition): Do bool_truthvalue_conversion here.
6192 (paren_expr_or_null): And here.
6193 (simple_if): Not here.
6194 (simple_stmt): Or here.
6195
6196Sat Aug 6 22:29:45 1994 Jason Merrill (jason@deneb.cygnus.com)
6197
6198 * parse.y (paren_expr_or_null): Wrap the expression in a
6199 CLEANUP_POINT_EXPR.
6200 (condition): Ditto.
6201
6202Sat Aug 6 19:46:37 1994 Rohan Lenard (rjl@easams.com.au)
6203
6204 * call.c (build_scoped_method_call): Fix error message when
6205 destructor call refers to a nonexistent type.
6206
6207Sat Apr 16 22:43:30 1993 Gerald Baumgartner (gb@cs.purdue.edu)
6208
6209 * lex.h (rid): Deleted RID_RAISES, it's never used.
6210 Moved RID_PUBLIC, RID_PRIVATE, RID_PROTECTED, RID_EXCEPTION,
6211 RID_TEMPLATE and RID_SIGNATURE to the end of the enumeration,
6212 they don't need to be touched in `grokdeclarator.'
6213 (RID_LAST_MODIFIER): Defined macro to be RID_MUTABLE.
6214
6215 * decl.c (grokdeclarator): Use RID_LAST_MODIFIER instead of
6216 RID_MAX as loop limit for finding declaration specifiers.
6217
6218Sat Apr 3 21:59:07 1993 Gerald Baumgartner (gb@cs.purdue.edu)
6219
6220 * lex.c (debug_yytranslate): Moved to parse.y since it needs to
6221 access `yytname,' which is static in parse.c.
6222
6223Fri Apr 2 23:36:57 1993 Gerald Baumgarnter (gb@cs.purdue.edu)
6224
6225 * cp-tree.h (GNU_xref_ref): Fixed typo in extern declaration, it
6226 was `GNU_xref_def' instead of `GNU_xref_ref.'
6227
6228Fri Aug 5 14:20:16 1994 Jason Merrill (jason@deneb.cygnus.com)
6229
6230 * pt.c (do_function_instantiation): Don't set TREE_PUBLIC and
6231 DECL_EXTERNAL on 'extern' instantiations; wait until EOF to do that.
6232 (do_type_instantiation): Ditto.
6233
6234 * decl2.c (import_export_inline): Decides at EOF what an inline's
6235 linkage should be.
6236 (finish_file): Call it.
6237
6238 * decl.c (start_function): Don't rely on the settings of TREE_PUBLIC
6239 and DECL_EXTERNAL from do_*_instantiation. Only set
6240 DECL_DEFER_OUTPUT on inlines whose linkage might actually change.
6241 (finish_function): Use DECL_DEFER_OUTPUT to decide which inlines to
6242 mark for later consideration, rather than DECL_FUNCTION_MEMBER_P.
6243
6060a796 6244Fri Aug 5 01:12:20 1994 Mike Stump <mrs@cygnus.com>
a292b002
MS
6245
6246 * class.c (get_class_offset_1, get_class_offset): New routine to
6247 find the offset of the class where a virtual function is defined,
6248 from the complete type.
6249 * class.c (modify_one_vtable, fixup_vtable_deltas): Use
6250 get_class_offset instead of virtual_offset as get_class_offset will
6251 always provide the right answer.
6252 * tree.c (virtual_offset): Remove. It only ever worked some of the
6253 time.
6254
6255Tue Aug 2 12:44:21 1994 Jason Merrill (jason@deneb.cygnus.com)
6256
6257 * call.c (build_method_call): Put back unary_complex_lvalue call
6258 that I thought was redundant.
6259
6260 * typeck.c (c_expand_return): Fix a case I missed before.
6261
6262Sun Jul 31 17:54:02 1994 Jason Merrill (jason@deneb.cygnus.com)
6263
6264 * pt.c (unify): Strip cv-quals from template type arguments (when
6265 'const T*' is matched to 'const char*', that does not mean that T is
6266 'const char').
6267
6268Fri Jul 29 01:03:06 1994 Jason Merrill (jason@deneb.cygnus.com)
6269
6270 * pt.c (do_type_instantiation): Instantiate nested TAGS, not
6271 typedefs. Third time's the charm?
6272
6273 * parse.y (template_parm): Support default template parms.
6274 * pt.c (process_template_parm): Ditto.
6275 (end_template_parm_list): Ditto.
6276 (coerce_template_parms): Ditto.
6277 (mangle_class_name_for_template): Ditto.
6278 (push_template_decls): Ditto.
6279 (unify): Ditto.
6280 * method.c (build_overload_identifier): Ditto.
6281 * error.c (dump_decl): Ditto.
6282
6283Wed Jul 27 17:47:00 1994 Jason Merrill (jason@deneb.cygnus.com)
6284
6285 * pt.c (do_type_instantiation): Only instantiate nested *classes*.
6286
6287Tue Jul 26 13:22:40 1994 Jason Merrill (jason@deneb.cygnus.com)
6288
6289 * search.c (note_debug_info_needed): Also emit debugging information
6290 for the types of fields.
6291
6292Mon Jul 25 00:34:44 1994 Jason Merrill (jason@deneb.cygnus.com)
6293
6294 * pt.c (lookup_template_class): Pass 'template' to
6295 coerce_template_parms instead of 'in_decl', since it's a more
6296 meaningful context.
6297
6298 * typeck.c (c_expand_return): Make sure any cleanups for the return
6299 expression get run.
6300 (build_c_cast): Use CONVERT_EXPR for conversion to void.
6301
6302 * pt.c (do_type_instantiation): Also instantiate nested types.
6303
6304 * typeck.c (convert_for_assignment): Don't die when comparing
6305 pointers with different levels of indirection.
6306
6307 * decl.c (grokdeclarator): The sub-call to grokdeclarator for
6308 class-local typedefs sets DECL_ARGUMENTS, so we need to clear it
6309 out.
6310
6311 * decl2.c (finish_anon_union): Don't die if the union has no
6312 members.
6313
6314 * decl.c (grokdeclarator): Undo changes to declspecs when we're done
6315 so that 'typedef int foo, bar;' will work.
6316
6317 * decl2.c (finish_file): Don't call expand_aggr_init for
6318 non-aggregates.
6319
6320Mon Jul 25 00:03:10 1994 Teemu Torma (tot@trema.fi)
6321
6322 * decl.c (finish_function): We can't inline constructors and
6323 destructors under some conditions with -fpic, but don't unset
6324 DECL_INLINE.
6325
6326Mon Jul 25 00:03:10 1994 Jason Merrill (jason@deneb.cygnus.com)
6327
6328 * typeck.c (build_object_ref): Make sure 'datum' is a valid object.
6329
6330Sun Jul 24 14:19:31 1994 Jason Merrill (jason@deneb.cygnus.com)
6331
6332 * class.c (finish_struct): Don't set DECL_FIELD_BITPOS on
6333 non-fields.
6334 (finish_struct_methods): Use copy_assignment_arg_p.
6335
6336 * cvt.c (cp_convert): If expr is an OFFSET_REF, resolve it instead
6337 of giving an error.
6338
6339 * typeck.c (build_binary_op_nodefault): Don't set result_type if we
6340 don't know how to compare the operands.
6341
6342 * decl.c (grokdeclarator): Avoid seg fault when someone uses '__op'
6343 as a declarator-id in their program. Like the Linux headers do.
6344 Arrgh.
6345
6346 * tree.c (lvalue_p): Treat calls to functions returning objects by
6347 value as lvalues again.
6348
6349 * typeck.c (build_component_addr): Use convert_force to convert the
6350 pointer in case the component type is also a private base class.
6351
6352 * search.c (get_matching_virtual): Fix bogus warning of overloaded
6353 virtual.
6354
6355 * pt.c (overload_template_name): Set DECL_ARTIFICIAL on the created
6356 TYPE_DECL to fix bogus shadowing warnings.
6357
6358Fri Jul 22 01:15:32 1994 Jason Merrill (jason@deneb.cygnus.com)
6359
6360 * init.c (expand_aggr_init_1): const and volatile mismatches do not
6361 prevent a TARGET_EXPR from initializing an object directly.
6362
6363Tue Jul 19 17:55:37 1994 Jason Merrill (jason@deneb.cygnus.com)
6364
6365 * cvt.c (build_up_reference): Allow building up references to
6366 `this', don't warn about making references to artificial variables
6367 (like `this').
6368
6369 * tree.c (lvalue_p): `this' is not an lvalue.
6370
6371 * call.c (build_method_call): Accept using a typedef name (or
6372 template type parameter) for explicit destructor calls.
6373
72b7eeff
MS
6374Thu Jul 14 09:42:23 1994 Mike Stump <mrs@cygnus.com>
6375
6376 * Version 2.6.0 released.
6377
cf17cae3
JM
6378Wed Jul 13 03:57:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6379
a292b002
MS
6380 * method.c (hack_identifier): Put back old code so lists of
6381 non-functions will be handled properly.
a5ef9010 6382
a292b002
MS
6383 * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): #if 0 out; this macro is now
6384 defined in the language-independent tree.h.
cf17cae3 6385
a292b002
MS
6386 * tree.c (count_functions): Avoid bogus warning when compiling this
6387 function.
cf17cae3
JM
6388
6389Mon Jul 11 18:37:20 1994 Jason Merrill (jason@deneb.cygnus.com)
6390
a292b002
MS
6391 * decl.c (grok_reference_init): Always save the initializer of a
6392 reference.
cf17cae3 6393
6060a796 6394Fri Jul 8 17:41:46 1994 Mike Stump <mrs@cygnus.com>
5b605f68
MS
6395
6396 * decl.c (cplus_expand_expr_stmt): Wrap statement expressions inside
6397 CLEANUP_POINT_EXPRs so that the stack slots can be reused.
63c68bb7 6398 (disabled for now)
5b605f68
MS
6399
6400Fri Jul 8 12:59:38 1994 Jason Merrill (jason@deneb.cygnus.com)
6401
6402 * method.c (hack_identifier): Fix for new overloading.
6403
6404 * typeck.c (build_binary_op_nodefault): Don't mess with division by
db5ae43f 6405 zero.
5b605f68
MS
6406
6407Fri Jul 8 13:20:28 1994 Gerald Baumgartner (gb@cs.purdue.edu)
6408
6409 * decl2.c (finish_file): Only call walk_sigtables, if
6410 flag_handle_signatures is turned on, don't waste time otherwise.
6411
6412Fri Jul 8 02:27:41 1994 Jason Merrill (jason@deneb.cygnus.com)
6413
6414 * decl.c (push_overloaded_decl): Don't create overloads of one when
6415 shadowing a class type.
a292b002 6416 * typeck.c (build_x_function_call): Complain about overloads of one.
5b605f68
MS
6417
6418 * decl.c (grokdeclarator): Don't try to treat a char* as a tree.
6419 (grokdeclarator): Fix setting of TREE_STATIC.
6420 (start_decl): Clear DECL_IN_AGGR_P after calling duplicate_decls.
6421
311862c8
GB
6422Thu Jul 7 22:20:46 1994 Gerald Baumgartner (gb@andros.cygnus.com)
6423
6424 * cp-tree.h (walk_sigtables): Created extern declaration.
6425 * decl2.c (walk_sigtables): Created function, patterned after
6426 walk_vtables, even though we only need it to write out sigtables.
6427 (finish_sigtable_vardecl): Created function.
6428 (finish_vtable_vardecl): Changed 0 to NULL_PTR.
6429 (finish_file): Call walk_sigtables.
6430
6431 * sig.c (build_signature_table_constructor): Mark class member
6432 function pointed to from signature table entry as addressable.
6433
5b605f68
MS
6434Thu Jul 7 13:39:37 1994 Jason Merrill (jason@deneb.cygnus.com)
6435
6436 * decl.c (start_decl): Check new decl of static member variable
6437 against the declaration in the class here.
6438 (grokvardecl): Instead of here.
6439
6440 * class.c (prepare_fresh_vtable): Call import_export_vtable if not
6441 -fvtable-thunks.
6442 (build_vtable): Ditto.
6443
6444 * decl2.c (import_export_vtable): Move logic for deciding the
6445 interface of a template class from here.
6446 (import_export_template): To here.
6447 (finish_vtable_vardecl): Call import_export_template before
6448 import_export_vtable.
6449
6060a796 6450Wed Jul 6 20:25:48 1994 Mike Stump <mrs@cygnus.com>
a3b49ccd
MS
6451
6452 * except.c (init_exception_processing): Setup interim_eh_hook to
6453 call lang_interim_eh.
6454 * except.c (do_unwind): Propagate throw object value across
6455 stack unwinding.
6456 * except.c (saved_throw_value): Used to hold the value of the object
6457 being thrown. It is always a reference to the real value.
6458 * except.c (expand_start_catch_block): Add handling for the
6459 value of the exception object.
6460 * except.c (expand_start_catch_block): Add handler for the handler,
6461 so that throws inside the handler go to the outer block.
6462 * except.c (expand_end_catch_block): Ditto.
6463 * parse.y (handler_args): Use parm instead, as the other doesn't yet
6464 handle references correctly.
6465
6466Wed Jul 6 17:55:32 1994 Per Bothner (bothner@kalessin.cygnus.com)
6467
6468 * decl2.c (mark_vtable_entries): If -ftable-thunks, set the
6469 vtable entry properly to abort.
6470
5b605f68
MS
6471Tue Jul 5 14:07:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6472
6473 * typeck.c (build_binary_op_nodefault): Downgrade division by zero
6474 errors to warnings.
6475
6476 * call.c (build_overload_call_real): Handle fnname being a list of
6477 functions.
6478 * typeck.c (build_x_function_call): Pass list of functions to
6479 build_overload_call, not just the name.
6480 * tree.c (count_functions): Complain when called for invalid
6481 argument.
6482
6483 * decl.c (grokdeclarator): Fix settings of TREE_STATIC, TREE_PUBLIC
6484 and DECL_EXTERNAL on static members and initialized const members.
6485 * decl2.c (grokfield): Reflect this change.
6486
9a0e77ba
JM
6487Fri Jul 1 09:35:51 1994 Jason Merrill (jason@deneb.cygnus.com)
6488
6489 * parse.y (init): ANSI C++ does not forbid { }.
6490
6491Thu Jun 30 00:35:22 1994 Jason Merrill (jason@deneb.cygnus.com)
6492
6493 * decl2.c (lang_decode_option): Set warn_nonvdtor along with -Wall.
6494 warn_nonvdtor defaults to off.
6495
6496 * class.c (instantiate_type): Use comptypes rather than relying on
6497 types to satisfy ==.
6498
6499 * decl.c (start_function): Set DECL_DEFER_OUTPUT on all inlines that
6500 might be static.
6501
6502 * tree.c (build_cplus_new): Never build WITH_CLEANUP_EXPRs.
6503
6504 * decl.c (grok_reference_init): Deal with ADDR_EXPRs of TARGET_EXPRs.
6505
6506 * cvt.c (cp_convert): Pass 0 to with_cleanup_p arg of
6507 build_cplus_new.
6508
6509Wed Jun 29 22:31:09 1994 Jason Merrill (jason@deneb.cygnus.com)
6510
6511 * decl2.c (finish_file): Maybe consider static inlines multiple
6512 times, in case they reference each other.
6513
63718c49
GB
6514Tue Jun 28 11:58:38 1994 Gerald Baumgartner (gb@cs.purdue.edu)
6515
6516 * class.c (finish_struct): Don't `cons_up_default_function's
6517 for signatures.
6518 (finish_struct): Handle an empty method_vec correctly.
6519
6520 * decl.c (grokdeclarator): Don't warn about a signature being
6521 empty in a signature pointer declaration if we only saw a
6522 forward declaration of the signature. Changed `warning's into
6523 `cp_warning's.
6524
6525 * sig.c (build_sigtable): Don't die if a null signature table
6526 constructor is returned.
6527 (build_signature_pointer_constructor): If the signature table
6528 constructor is null, the _sptr field is set to a null pointer
6529 and cast to the appropriate type. Make copies of all null
6530 pointers so that the type null_pointer_node doesn't get changed.
6531 (build_signature_table_constructor): Added comments.
6532
6533 * sig.c (build_signature_pointer_constructor): Complain if we
6534 try to assign to/initialize a signature pointer/reference of
6535 an undefined signature.
6536
6537Mon Jun 27 14:05:16 1994 Gerald Baumgartner (gb@cs.purdue.edu)
6538
6539 * typeck2.c (store_init_value): Don't be pedantic about
6540 non-constant initializers of signature tables/pointers/references.
6541
6542Fri Jun 24 16:49:41 1994 Gerald Baumgartner (gb@cs.purdue.edu)
6543
6544 * decl.c (grokdeclarator): If we are grokking an opaque typedef
6545 in a signature, don't complain about it begin static.
6546
6060a796 6547Wed Jun 29 16:44:45 1994 Mike Stump <mrs@cygnus.com>
21474714
MS
6548
6549 Fixes a problem of the this pointer being wrong in virtual calls to
6550 methods that are not overridden in more derived classes.
6551
6552 * class.c (fixup_vtable_delta): New routine. It will fixup the
6553 delta entries in vtables, wheever they need updating.
6554 * class.c (finish_struct): Call the new routine for all virtual
6555 bases, as they can have different offsets, than those used in base
6556 classes that we derive our vtable from.
6557
6558Tue Jun 28 23:49:28 1994 Jason Merrill (jason@deneb.cygnus.com)
6559
6560 * typeck.c (build_binary_op): Use the types before default
6561 conversions in the error message.
6562
6563 * *.c: Use c_build_type_variant instead of build_type_variant where
6564 the type might be an array.
6565
6566 * call.c (build_method_call): Call build_type_variant and
6567 build_reference_type in the right order.
6568 * decl.c (record_builtin_type): Ditto.
6569
6570Wed Jun 29 16:58:53 1994 Jason Merrill (jason@deneb.cygnus.com)
6571
6572 * call.c (build_method_call): Call build_type_variant and
6573 build_reference_type in the right order.
6574 * decl.c (record_builtin_type): Ditto.
6575
6576Tue Jun 28 23:49:28 1994 Jason Merrill (jason@deneb.cygnus.com)
6577
6578 * typeck.c (build_binary_op): Use the types before default
6579 conversions in the error message.
6580
6581 * *.c: Use c_build_type_variant instead of build_type_variant where
6582 the type might be an array.
6583
6584Sat Jun 25 11:50:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6585
6586 * cvt.c (convert_to_reference): Try UDC's before doing the
6587 reinterpret_cast thang, though.
6588
6589Fri Jun 24 01:24:01 1994 Jason Merrill (jason@deneb.cygnus.com)
6590
6591 * typeck.c (c_expand_return): Don't USE the return value location
6592 after we've expanded the jump.
6593
6594 * decl2.c (finish_file): Make sure DECL_SAVED_INSNS is not 0 before
6595 trying to write out an inline.
6596
6597 * cvt.c (build_up_reference): Also do address adjustment when the
6598 target type uses MI.
6599 (convert_to_reference): Try UDCs only after built-in conversions.
6600 (build_type_conversion_1): Don't play games with the argument to the
6601 method.
6602 (build_type_conversion): #if 0 out code for binding to reference.
6603
a3203465
MS
6604Thu Jun 23 00:22:28 1994 Jason Merrill (jason@deneb.cygnus.com)
6605
21474714
MS
6606 * decl2.c (finish_file): Use TREE_SYMBOL_REFERENCED to decide
6607 whether to emit inlines.
6608
a3203465
MS
6609 * decl.c (grokdeclarator): Set explicit_int for decls that just
6610 specify, say, 'long'.
6611
6612 * init.c (do_friend): Do overload C functions (or call pushdecl,
63718c49 6613 anyaway).
a3203465
MS
6614
6615Wed Jun 22 13:40:49 1994 Jason Merrill (jason@deneb.cygnus.com)
6616
6617 * cvt.c (build_up_reference): Don't call readonly_error.
6618 (convert_to_reference): Propagate const and volatile from expr to
6619 its type.
6620
6621 * tree.c (lvalue_p): Random CALL_EXPRs are not lvalues.
6622
6623 * cvt.c (build_up_reference): Break out WITH_CLEANUP_EXPR when
6624 creating a temporary.
6625 (convert_to_reference): Lose excessive and incorrect trickiness.
6626 (cp_convert): Call build_cplus_new with with_cleanup_p set.
6627
6628 * typeck2.c (build_functional_cast): Ditto.
6629
6630Tue Jun 21 17:38:38 1994 Jason Merrill (jason@deneb.cygnus.com)
6631
6632 * decl.c (grokdeclarator): signed, unsigned, long and short all
6633 imply 'int'.
6634
6635 * decl.c (grokdeclarator): Allow "this is a type" syntax.
6636 (grok_reference_init): Simplify and fix.
6637
6638Sun Jun 19 17:08:48 1994 Jason Merrill (jason@deneb.cygnus.com)
6639
6640 * decl.c (grokdeclarator): pedwarn about a typedef that specifies no
6641 type.
6642
6643Sat Jun 18 04:16:50 1994 Jason Merrill (jason@deneb.cygnus.com)
6644
6645 * decl.c (start_function): Move TREE_PUBLIC and DECL_EXTERNAL
6646 tinkering to after call to pushdecl.
6647
6648Fri Jun 17 14:48:28 1994 Jason Merrill (jason@deneb.cygnus.com)
6649
6650 * call.c (build_method_call): Handle destructors for non-aggregate
6651 types properly.
6652
6653Thu Jun 16 16:48:05 1994 Jason Merrill (jason@deneb.cygnus.com)
6654
6655 * call.c (build_method_call): Make sure that the name given for the
6656 destructor matches the constructor_name of the instance.
6657
6658 * pt.c (do_function_instantiation): A non-extern instantiation
6659 overrides a later extern one.
6660 (do_type_instantiation): Ditto.
6661
6662Wed Jun 15 19:34:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6663
6664 * init.c (expand_aggr_init): Use TYPE_MAIN_VARIANT to get the
6665 unqualified array type.
6666
6667 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Tests whether NODE is a
6668 CONSTRUCTOR with no elements.
6669
6670 * decl.c (various): Lose empty_init_node.
6671 (finish_decl): Use EMPTY_CONSTRUCTOR_P, do the empty CONSTRUCTOR
6672 thing depending on the value of DECL_COMMON instead of
6673 flag_conserve_space, do the empty CONSTRUCTOR thing for types that
6674 don't have constructors, don't treat a real empty CONSTRUCTOR
6675 specially.
6676
6677 * typeck2.c (process_init_constructor): Don't treat empty_init_node
6678 specially.
6679
6060a796 6680Wed Jun 15 19:05:25 1994 Mike Stump <mrs@cygnus.com>
a3203465
MS
6681
6682 * class.c (override_one_vtable): Don't forget to merge in an old
6683 overrider when we wanted to reuse a vtable, but couldn't.
6684
6685Wed Jun 15 15:03:16 1994 Jason Merrill (jason@deneb.cygnus.com)
6686
6687 * decl.c (start_decl): Put statics in common again.
6688
6689 * decl.c (grokdeclarator): Return NULL_TREE for an error rather than
6690 setting the type to error_mark_node.
6691
6692 * typeck.c (build_modify_expr): Build up a COMPOUND_EXPR for enum
6693 bitfield assignments.
6694
f0e01782
MS
6695Tue Jun 14 12:23:38 1994 Jason Merrill (jason@deneb.cygnus.com)
6696
6697 * decl.c (grok_op_properties): Const objects can be passed by value.
6698
6699Mon Jun 13 03:10:59 1994 Jason Merrill (jason@deneb.cygnus.com)
6700
6701 * decl2.c (import_export_vtable): Force implicit instantiations to
6702 be interface_only when -fno-implicit-templates.
6703
6704 * decl.c (duplicate_decls): Redeclaring a class template name is an
6705 error.
6706
6707 * pt.c (end_template_decl): Call GNU_xref_decl for class templates.
6708 * xref.c (GNU_xref_decl): Support templates.
6709
6710Sat Jun 11 17:09:05 1994 Jason Merrill (jason@deneb.cygnus.com)
6711
6712 * decl.c (grok_op_properties): Split out checking for whether this
6713 function should suppress the default assignment operator.
6714 * decl2.c (grok_function_init): Ditto.
6715 (copy_assignment_arg_p): New function do do just that.
6716 Now considers virtual assignment operators that take a base as an
6717 argument to count as copy assignment operators.
6718
6719 * search.c (dfs_debug_mark): Lose checks for DWARF_DEBUG and
6720 TREE_ASM_WRITTEN, as they are redundant.
6721
6722 * pt.c (end_template_decl): Don't try to set DECL_CLASS_CONTEXT on a
6723 decl that has no LANG_SPECIFIC part.
6724 (do_type_instantiation): Force the debugging information for this
6725 type to be emitted.
6726
6727 * decl.c (start_decl): Clear up uses of various types of templates
6728 (say sorry for static data members, rather than "invalid template").
6729 (expand_static_init): Fix initialization of static data members of
6730 template classes.
6731
6732Fri Jun 10 00:41:19 1994 Jason Merrill (jason@deneb.cygnus.com)
6733
6734 * decl.c (grokdeclarator): Set DECL_CONTEXT on static data members.
6735
6736 * g++.c (main): Use -xc++-cpp-output for .i files.
6737
6738 * pt.c (tsubst): Give meaningful error about declaring template for
6739 a copy constructor which was not declared in the class template.
6740 (do_type_instantiation): Explicit instantiation before the class
6741 template is an error.
6742 (instantiate_template): Don't die if tsubst returns error_mark_node.
6743
6744Thu Jun 9 19:04:59 1994 Jason Merrill (jason@deneb.cygnus.com)
6745
6746 Don't synthesize the copy assignment operator if the one in a base
6747 class is pure virtual.
6748 * cp-tree.h (TYPE_HAS_ABSTRACT_ASSIGN_REF): New macro to indicate
6749 whether the type has a pure virtual copy assignment operator.
6750 * class.c (finish_base_struct): Don't generate the copy assignment
6751 operator if a base class has a pure virtual one.
6752 * decl.c (grok_op_properties): Add disabled code to set
6753 TYPE_HAS_ABSTRACT_ASSIGN_REF with comment pointing to where it is
6754 actually set.
6755 * decl2.c (grok_function_init): Set TYPE_HAS_ABSTRACT_ASSIGN_REF.
6756
6757 * decl2.c (import_export_vtable): Always treat template
6758 instantiations as if write_virtuals >= 2, and treat implicit
6759 instantiations as external if -fno-implicit-templates.
6760 (finish_file): Output all pending inlines if
6761 flag_keep_inline_functions.
6762
6060a796 6763Wed Jun 8 20:48:02 1994 Mike Stump <mrs@cygnus.com>
f0e01782
MS
6764
6765 * tree.c (layout_vbasetypes): Align virtual base classes inside
6766 complete objects, so that we don't core dump on machines such as
6767 SPARCs when we access members that require larger than normal
6768 alignments, such as a double. Also, we bump up the total alignment
6769 on the complete type, as necessary.
6770
6771Wed Jun 8 16:18:14 1994 Jason Merrill (jason@deneb.cygnus.com)
6772
6773 * gxxint.texi (Free Store): New section with code for examining
6774 cookie.
6775 (Limitations of g++): Remove operator delete entry, since it is no
6776 longer accurate. Fix access control entry.
6777
6778 * typeck.c (build_unary_op): Pedwarn about taking the address of or
6779 incrementing a cast to non-reference type.
6780 (build_modify_expr): Use convert instead of convert_force again.
6781
6782 * search.c (get_base_distance): Use IS_AGGR_TYPE_CODE to check for
6783 class type, not == RECORD_TYPE.
6784
6785 * decl.c (grokdeclarator): Cope with grokfndecl returning NULL_TREE.
6786
6787 * typeck2.c (report_case_error): #if 0 out.
6788 * lex.c (real_yylex): Lose RANGE.
6789 * parse.y: Ditto.
6790
6791Tue Jun 7 18:17:35 1994 Jason Merrill (jason@deneb.cygnus.com)
6792
6793 * parse.y (simple_stmt, case ranges): Use ELLIPSIS instead of RANGE.
6794
6795Mon Jun 6 19:39:57 1994 Jason Merrill (jason@deneb.cygnus.com)
6796
6797 * typeck.c (build_c_cast): Don't shortcut conversions to the same
6798 type. Don't replace consts with their values here, since that's now
6799 done in cp_convert.
6800
6801 * cvt.c (cp_convert): When converting to bool, take
6802 integer_zero_node to false_node and all other INTEGER_CSTs to
6803 true_node.
6804 (build_type_conversion): Don't complain about multiple conversions
6805 to float if we're not really converting.
6806
a0a33927
MS
6807Fri Jun 3 02:10:56 1994 Jason Merrill (jason@deneb.cygnus.com)
6808
f0e01782
MS
6809 Implement 'extern template class A<int>;' syntax for suppressing
6810 specific implicit instantiations.
6811 * cp-tree.h: Update prototypes for do_*_instantiation.
6812 * pt.c (do_pending_expansions): Don't compile 'extern' explicit
6813 instantiations.
6814 (do_function_instantiation): Set DECL_EXTERNAL on 'extern' explicit
6815 instantiations.
6816 (do_type_instantiation): Ditto.
6817 * parse.y (explicit_instantiation): Support 'extern template class
6818 A<int>;' syntax.
6819 * decl.c (start_function): Don't modify the settings of TREE_PUBLIC
6820 and DECL_EXTERNAL on explicit instantiations.
6821
a0a33927
MS
6822 * cvt.c (cp_convert): Replace constants with their values before
6823 converting.
f0e01782 6824 (cp_convert): Consistently use 'e' instead of 'expr'.
a0a33927
MS
6825
6826Thu Jun 2 03:53:30 1994 Jason Merrill (jason@deneb.cygnus.com)
6827
6828 * typeck2.c (build_x_arrow): Resolve OFFSET_REFs first.
6829
6830Wed Jun 1 18:57:35 1994 Jason Merrill (jason@deneb.cygnus.com)
6831
6832 * typeck2.c (digest_init): Handle initializing a pmf with an
6833 overloaded method.
6834 * typeck.c (build_ptrmemfunc): Handle overloaded methods.
6835
6836 * decl.c (pushtag): Use build_decl to make TYPE_DECLs.
6837 (xref_defn_tag): Ditto.
6838 * pt.c (process_template_parm): Ditto.
6839 (lookup_template_class): Ditto.
6840 (push_template_decls): Ditto.
6841 (instantiate_class_template): Ditto.
6842 (create_nested_upt): Ditto.
6843 * class.c (finish_struct): Don't try to set DECL_CLASS_CONTEXT on
6844 TYPE_DECLs.
6845
6846 * typeck.c (convert_arguments): Make sure type is not NULL before
6847 checking its TREE_CODE.
6848
6060a796 6849Wed Jun 1 17:40:39 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
6850
6851 * class.c (get_derived_offset): New routine.
6852 * class.c (finish_base_struct): Make sure we set BINFO_VTABLE and
6853 BINFO_VIRTUALS when we choose a new base class to inherit from.
6854 * class.c (modify_one_vtable): Use get_derived_offset to get the
6855 offset to the most base class subobject that we derived this binfo
6856 from.
6857 * class.c (finish_struct): Move code to calculate the
6858 DECL_FIELD_BITPOS of the vfield up, as we need might need it for
6859 new calls to get_derived_offset in modify_one_vtable.
6860
6861Wed Jun 1 16:50:59 1994 Jason Merrill (jason@deneb.cygnus.com)
6862
6863 * init.c (build_member_call): Use build_pointer_type instead of
6864 TYPE_POINTER_TO.
6865
6866Wed Jun 1 11:11:15 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
6867
6868 * decl.c (grokdeclarator): Make sure we have a DNAME set before we
6869 try to use it in an error.
6870
6060a796 6871Wed Jun 1 09:48:49 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
6872
6873 * typeck.c (convert_arguments, convert_for_initialization): Don't
6874 strip NOP_EXPRs, when we are converting to a reference.
6875
6876Wed Jun 1 01:11:38 1994 Jason Merrill (jason@deneb.cygnus.com)
6877
6878 * typeck.c (build_modify_expr): Don't dereference references when
6879 initializing them.
6880
6881 * decl2.c (grokfield): Don't check for grokdeclarator returning
6882 error_mark_node any more.
6883
6884 * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node.
6885 (start_method): Return void_type_node instead of error_mark_node.
6886
6887 * typeck.c (build_modify_expr): Resolve offset refs earlier.
6888
6889Tue May 31 16:06:58 1994 Jason Merrill (jason@deneb.cygnus.com)
6890
6891 * call.c (build_method_call): Resolve OFFSET_REFs in the object.
6892
6893 * typeck.c (build_modify_expr): Dereference references before trying
6894 to assign to them.
6895
6896 * call.c (build_method_call): Don't confuse type conversion
6897 operators with constructors.
6898 * typeck2.c (build_functional_cast): Just call build_c_cast if there
6899 was only one parameter.
6900 * method.c (build_typename_overload): Don't set
6901 IDENTIFIER_GLOBAL_VALUE on these identifiers.
6902 * decl.c (grok_op_properties): Warn about defining a type conversion
6903 operator that converts to a base class (or reference to it).
6904 * cvt.c (cp_convert): Don't try to use a type conversion operator
6905 when converting to a base class.
6906 (build_type_conversion_1): Don't call constructor_name_full on an
6907 identifier.
6908 * cp-tree.h (DERIVED_FROM_P): Should be self-explanatory.
6909
6910 * decl.c (start_decl): Don't complain that error_mark_node is an
6911 incomplete type.
6912 (finish_decl): Check for type == error_mark_node.
6913
6914Mon May 30 23:38:55 1994 Jason Merrill (jason@deneb.cygnus.com)
6915
6916 * decl.c (start_function): Set DECL_DEFER_OUTPUT on implicit
6917 instantiations and inline members.
6918
6919 * spew.c (yylex): Set looking_for_template if the next token is a '<'.
6920
6921 * lex.h: Declare looking_for_template.
6922
6923 * decl.c (lookup_name_real): Use looking_for_template to arbitrate
6924 between type and template interpretations of an identifier.
6925
6926Sat May 28 04:07:40 1994 Jason Merrill (jason@deneb.cygnus.com)
6927
6928 * pt.c (instantiate_template): Zero out p if we found a
6929 specialization.
6930
6931 * decl.c (grokdeclarator): Elucidate warning.
6932 (grokdeclarator): If pedantic AND -ansi, complain about long long.
6933
6934 Make explicit instantiation work reasonably. It is now appropriate
6935 to deprecate the use of -fexternal-templates.
6936 * pt.c (instantiate_template): Set DECL_TEMPLATE_SPECIALIZATION or
6937 DECL_IMPLICIT_INSTANTIATION on fndecl as appropriate.
6938 (end_template_instantiation): Reflect changes in USE_TEMPLATE
6939 semantics.
6940 (do_pending_expansions): if (!flag_implicit_templates) DECIDE(0);
6941 (do_function_instantiation): Don't set EXPLICIT_INST if
6942 flag_external_templates is set. Do set TREE_PUBLIC and DECL_EXTERN
6943 appropriately otherwise.
6944 (do_type_instantiation): Set interface info for class. Set
6945 TREE_PUBLIC and DECL_EXTERN for methods. Do none of this if
6946 flag_external_templates is set.
6947 * parse.y: Reflect changes in USE_TEMPLATE semantics.
6948 * decl2.c: New flag flag_implicit_templates determines whether or
6949 not implicit instantiations get emitted. This flag currently
6950 defaults to true, and must be true for -fexternal-templates to work.
6951 (finish_file): Consider flag_implement_inlines when
6952 setting DECL_EXTERNAL. Consider flag_implicit_templates when
6953 deciding whether or not to emit a static copy.
6954 * decl.c (start_function): Set TREE_PUBLIC and DECL_EXTERNAL
6955 properly for template instantiations.
6956 (start_method): Set DECL_IMPLICIT_INSTANTIATION on methods of a
6957 template class.
6958 * cp-tree.h (CLASSTYPE_USE_TEMPLATE): Change semantics.
6959 (DECL_USE_TEMPLATE): Parallel macro for FUNCTION and VAR_DECLs.
6960 (various others): Accessor macros for the above.
6961
6962Fri May 27 13:57:40 1994 Jason Merrill (jason@deneb.cygnus.com)
6963
6964 * typeck.c (build_binary_op_nodefault): Division by constant zero is
6965 an error.
6966
6060a796 6967Fri May 27 13:50:15 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
6968
6969 * class.c (override_one_vtable): Don't modify things we don't own.
6970
6971Fri May 27 01:42:58 1994 Jason Merrill (jason@deneb.cygnus.com)
6972
6973 * decl.c (finish_decl): Don't postpone processing the initializer of
6974 a decl with DECL_EXTERNAL set, and do call rest_of_compilation for a
6975 PUBLIC const at toplevel.
6976 (grokdeclarator): pedwarn about initializing non-const or
6977 non-integral statics in the class body.
6978
6979 * decl.c (pushtag): Don't try to set DECL_CLASS_CONTEXT on a
6980 TYPE_DECL.
6981
6982 * call.c (convert_harshness): Dereference reference on rhs before
6983 proceeding, properly grok passing const things to non-const
6984 references.
6985
6986 * typeck.c (build_unary_op): Soften error about taking the address
6987 of main() to a pedwarn.
6988
6989 * lex.c (default_copy_constructor_body): Unambiguously specify base
6990 classes (i.e. A((const class ::A&)_ctor_arg) ).
6991 (default_assign_ref_body): Ditto.
6992
6993Thu May 26 13:13:55 1994 Gerald Baumgartner (gb@mexican.cygnus.com)
6994
6995 * decl2.c (grokfield): Don't complain about local signature
6996 method declaration without definition.
6997
6998 * call.c (convert_harshness): If `type' is a signature pointer
6999 and `parmtype' is a pointer to a signature, just return 0. We
7000 don't really convert in this case; it's a result of making the
7001 `this' parameter of a signature method a signature pointer.
7002
7003 * call.c (build_method_call): Distinguish calling the default copy
7004 constructor of a signature pointer/reference from a signature
7005 member function call.
7006
7007Thu May 26 12:56:25 1994 Jason Merrill (jason@deneb.cygnus.com)
7008
7009 * decl2.c (grokfield): Don't set TREE_PUBLIC on member function
7010 declarations.
7011
7012 * decl.c (duplicate_decls): A previous function declaration as
7013 static overrides a subsequent non-static definition.
7014 (grokdeclarator): Don't set TREE_PUBLIC on inline method
7015 declarations.
7016
7017Wed May 25 14:36:38 1994 Jason Merrill (jason@deneb.cygnus.com)
7018
7019 * decl.c (grokdeclarator): Handle initialization of static const
7020 members.
7021 (finish_decl): Ditto.
7022
7023 * decl2.c (grokfield): Allow initialization of static const members
7024 even when pedantic.
7025
7026 * decl2.c (grokfield): Deal with grokdeclarator returning
7027 error_mark_node.
7028
7029 * decl.c (grok_ctor_properties): Return 0 for A(A) constructor.
7030 (grokfndecl): Check the return value of grok_ctor_properties.
7031 (start_method): Ditto.
7032
7033 * parse.y (absdcl): Expand type_quals inline.
7034
7035Tue May 24 19:10:32 1994 Jason Merrill (jason@deneb.cygnus.com)
7036
7037 * decl.c (pushtag): Use IS_AGGR_TYPE rather than checking for a
7038 RECORD_TYPE.
7039
7040Tue May 24 18:09:16 1994 Per Bothner (bothner@kalessin.cygnus.com)
7041
7042 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
7043 always use "__vt_%s".
7044 * decl2.c (finish_vtable_vardecl): Don't consider abstract virtuals
7045 when looking for a "sentinal" method (to decide on emitting vtables).
7046 * decl2.c (finish_file): Scan all decls for thunks that need
7047 to be emitted.
7048 * decl2.c (finish_vtable_vardecl): Don't bother calling emit_thunk.
7049 * method.c (make_thunk): Use a more meaningful label. If there
7050 exists a matching top-level THUNK_DECL re-use it; otherwise
7051 create a new THUNK_DECL (and declare it).
7052 * method.c (emit_thunk): Make thunk external/public depending
7053 on the underlying method.
7054
7055Tue May 24 00:22:04 1994 Jason Merrill (jason@deneb.cygnus.com)
7056
7057 * pt.c (tsubst): Use lookup_name_nonclass to find guiding decls, not
7058 lookup_name.
7059
7060 * call.c (build_overload_call_real): Don't immediately pick a
7061 function which matches perfectly.
7062
7063 * decl.c (grokdeclarator): Use c_build_type_variant for arrays.
7064 (grokdeclarator): Warn about, and throw away, cv-quals attached to a
7065 reference (like 'int &const j').
7066
7067 * typeck.c (convert_arguments): Don't mess with i for methods.
7068 * call.c (build_method_call): Pass the function decl to
7069 convert_arguments.
7070
7071 * typeck.c (comp_ptr_ttypes_real): New function. Implements the
7072 checking for which multi-level pointer conversions are allowed.
7073 (comp_target_types): Call it.
7074 (convert_for_assignment): Check const parity on the ultimate target
7075 type, too. And make those warnings pedwarns.
7076
7077Mon May 23 14:11:24 1994 Jason Merrill (jason@deneb.cygnus.com)
7078
7079 * error.c (dump_char): Use TARGET_* for character constants.
7080
7081Mon May 23 13:03:03 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7082
7083 * tree.c (debug_no_list_hash): Make static.
7084
7085 * decl.c (decls_match): Say the types don't match if newdecl ends up
7086 with a null type, after we've checked if olddecl does.
7087 (pushdecl): Check if the decls themselves match before looking for
7088 an extern redeclared as static, to avoid inappropriate and incorrect
7089 warnings.
7090
7091Fri May 20 14:04:34 1994 Jason Merrill (jason@deneb.cygnus.com)
7092
7093 * decl.c (grokdeclarator): Make warning about duplicate short, etc.
7094 a pedwarn.
7095
7096 * typeck.c (build_c_cast): Casting to function or method type is an
7097 error.
7098
7099 * class.c (finish_struct): Make warning for anonymous class with no
7100 instances a pedwarn.
7101
7102 * Makefile.in (stamp-parse): Expect a s/r conflict.
7103
7104 * typeck.c (build_modify_expr): pedwarn about using a non-lvalue
7105 cast as an lvalue.
7106
2986ae00
MS
7107Thu May 19 12:08:48 1994 Jason Merrill (jason@deneb.cygnus.com)
7108
7109 * cvt.c (type_promotes_to): Make sure bool promotes to int rather
7110 than unsigned on platforms where sizeof(char)==sizeof(int).
7111
7112Wed May 18 14:27:06 1994 Jason Merrill (jason@deneb.cygnus.com)
7113
7114 * typeck.c (build_c_cast): Tack on a NOP_EXPR when casting to
7115 another variant.
7116 (build_modify_expr): Don't strip NOP_EXPRs, and don't get tricky
7117 and treat them as lvalues.
7118
7119 * decl.c (shadow_tag): Do complain about forward declarations of
7120 enums and empty declarations.
7121 * parse.y: Don't complain about forward declarations of enums and
7122 empty declarations.
7123
7124 * typeck.c (convert_for_assignment): Complain about changing
7125 the signedness of a pointer's target type.
7126
7127 * parse.y (stmt): Move duplicated code for checking case values from
7128 here.
7129 * decl2.c (check_cp_case_value): To here. And add a call to
7130 constant_expression_warning.
7131
7132 * typeck.c (convert_for_assignment): Don't complain about assigning
7133 a negative value to bool.
7134
7135 * decl.c (init_decl_processing): Make bool unsigned.
7136
7137 * class.c (finish_struct): Allow bool bitfields.
7138
2986ae00
MS
7139Wed May 18 12:35:27 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7140
7141 * Make-lang.in (c++.install-man): Get g++.1 from $(srcdir)/cp.
7142
7143Wed May 18 03:28:35 1994 Jason Merrill (jason@deneb.cygnus.com)
7144
7145 * cvt.c (build_type_conversion): Lose special handling of
7146 truthvalues.
7147
7148 * search.c (dfs_pushdecls): Improve shadowing warning.
7149
7150Tue May 17 13:34:46 1994 Jason Merrill (jason@deneb.cygnus.com)
7151
7152 * init.c (build_delete): Throw away const and volatile on `this'.
7153
7154 * decl.c (finish_enum): Put the constants in TYPE_VALUES again,
7155 rather than the enumerators.
7156 (pushtag): s/cdecl/c_decl/g
7157
7158Mon May 16 23:04:01 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
7159
63718c49
GB
7160 * cp/typeck.c (common_type): Attribute merging.
7161 (comp_types): Utilise COMP_TYPE_ATTRIBUTES macro.
2986ae00 7162
63718c49 7163 * cp/parse.y: Revamp attribute parsing.
2986ae00
MS
7164
7165Mon May 16 01:40:34 1994 Jason Merrill (jason@deneb.cygnus.com)
7166
7167 * decl.c (shadow_tag): Also check for inappropriate use of auto and
7168 register.
7169
7170 * method.c (build_overload_name): Clarify that the illegal case is a
7171 pointer or reference to array of unknown bound.
7172
7173 * error.c (dump_type_prefix): Print references to arrays properly.
7174
7175 * typeck.c (various): Be more helpful in pointer
7176 comparison diagnostics.
7177
7178 * tree.c (lvalue_p): MODIFY_EXPRs are lvalues again. Isn't this
7179 fun?
7180
7181 * parse.y: Also catch an error after valid stmts.
7182
7183 * search.c (dfs_init_vbase_pointers): Don't abort because `this' is
7184 const.
7185
7186 * typeck.c (convert_for_initialization): If call to
7187 convert_to_reference generated a diagnostic, print out the parm
7188 number and function decl if any.
7189
7190 * errfn.c (cp_thing): Check atarg1 to determine whether or not we're
7191 specifying a line, not atarg.
7192
7193 * tree.c (build_cplus_method_type): Always make `this' const.
7194
7195 * decl2.c (grokclassfn): If -fthis-is-variable and this function is
7196 a constructor or destructor, make `this' non-const.
7197
7198 * typeck.c (build_modify_expr): Don't warn specially about
7199 assignment to `this' here anymore, since it will be caught by the
7200 usual machinery.
7201
7202 * various: Disallow specific GNU extensions (variable-size arrays,
7203 etc.) when flag_ansi is set, not necessarily when pedantic is set,
7204 so that people can compile with -pedantic-errors for tighter const
7205 checking and such without losing desirable extensions.
7206
7207 * typeck2.c (build_functional_cast): Call build_method_call with
7208 LOOKUP_PROTECT.
7209 (process_init_constructor): Only process FIELD_DECLs.
7210
7211 * decl.c (finish_decl): Also force static consts with no explicit
7212 initializer that need constructing into the data segment.
7213
7214 * init.c (build_delete): Undo last patch, as it interferes with
7215 automatic cleanups.
7216
7217Sat May 14 01:59:31 1994 Jason Merrill (jason@deneb.cygnus.com)
7218
7219 * call.c, class.h, cp-tree.h, cvt.c, decl2.c: Lose old overloading
7220 code.
7221
7222 * init.c (build_delete): pedwarn about using plain delete to delete
7223 an array.
7224
7225Fri May 13 16:45:07 1994 Jason Merrill (jason@deneb.cygnus.com)
7226
7227 * typeck.c (comp_target_types): Be more helpful in contravariance
7228 warnings, and make them pedwarns.
7229
7230 * decl.c (grokdeclarator): Use decl_context to decide whether or not
7231 this is an access declaration.
7232
7233 * class.c (finish_struct_bits): Set TYPE_HAS_INT_CONVERSION if it
7234 has a conversion to enum or bool, too.
7235
6060a796 7236Fri May 13 16:31:27 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
7237
7238 * method.c (emit_thunk): Make declaration for
7239 current_call_is_indirect local (needed for hppa).
7240
7241Fri May 13 16:16:37 1994 Jason Merrill (jason@deneb.cygnus.com)
7242
7243 * pt.c (uses_template_parms): Grok BOOLEAN_TYPE.
7244 (tsubst): Ditto.
7245
6060a796 7246Fri May 13 16:23:32 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
7247
7248 * pt.c (tsubst): If there is already a function for this expansion,
7249 use it.
7250 * pt.c (instantiate_template): Ditto.
7251
7252Fri May 13 10:30:42 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7253
7254 * parse.y (implicitly_scoped_stmt, simple_stmt case): Use
7255 kept_level_p for MARK_ENDS argument to expand_end_bindings, to avoid
7256 generating debug info for unemitted symbols on some systems.
7257
7258 * cp-tree.h (build_static_cast, build_reinterpret_cast,
7259 build_const_cast): Add declarations.
7260
6060a796 7261Fri May 13 09:50:31 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
7262
7263 * search.c (expand_indirect_vtbls_init): Fix breakage from Apr 27
7264 fix. We now try get_binfo, and if that doesn't find what we want,
7265 we go back to the old method, which still sometimes fails.
7266
7267Fri May 13 01:43:18 1994 Jason Merrill (jason@deneb.cygnus.com)
7268
7269 * parse.y (initdcl): Call cplus_decl_attributes on the right
7270 variable.
7271 * decl2.c (cplus_decl_attributes): Don't call decl_attributes for
7272 void_type_node.
7273
7274 * typeck.c (build_binary_op_nodefault): Change result_type for
7275 comparison ops to bool.
7276 (build_binary_op): Convert args of && and || to bool.
7277 * cvt.c (build_default_binary_type_conversion): Convert args of &&
7278 and || to bool.
7279 (build_default_unary_type_conversion): Convert arg of ! to bool.
7280 (type_promotes_to): bool promotes to int.
7281
6060a796 7282Fri May 13 01:43:18 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
7283
7284 Implement the new builtin `bool' type.
7285 * typeck.c (build_binary_op_nodefault): Convert args of && and || to
7286 bool.
7287 (build_unary_op): Convert arg of ! to bool.
7288 * parse.y: Know true and false. Use bool_truthvalue_conversion.
7289 * method.c (build_overload_value): Know bool.
7290 (build_overload_name): Ditto.
7291 * lex.c (init_lex): Set up RID_BOOL.
7292 * gxx.gperf: Add bool, true, false.
7293 * error.c (*): Know bool.
7294 * decl.c (init_decl_processing): Set up bool, true, false.
7295 * cvt.c (cp_convert): Handle conversion to bool.
7296 (build_type_conversion): Ditto.
7297 * *.c: Accept bool where integers and enums are accepted (use
7298 INTEGRAL_CODE_P macro).
7299
8de7634e
RE
7300Thu May 12 19:13:54 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk)
7301
7302 * g++.c: Use #ifdef for __MSDOS__, not #if.
7303
6060a796 7304Thu May 12 18:05:18 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
7305
7306 * decl2.c (lang_f_options): Handle -fshort-temps. -fshort-temps
7307 gives old behavior , and destroys temporaries earlier. Default
7308 behavior now conforms to the ANSI working paper.
7309
7310Thu May 12 14:45:35 1994 Jason Merrill (jason@deneb.cygnus.com)
7311
7312 * typeck.c (build_modify_expr): Understand MODIFY_EXPR as an lvalue.
7313 Use convert_force to convert the result of a recursive call when we
7314 are dealing with a NOP_EXPR. Don't automatically wrap MODIFY_EXPRs
7315 in COMPOUND_EXPRs any more.
7316 (various): Lose pedantic_lvalue_warning.
7317 (unary_complex_lvalue): Understand MODIFY_EXPR.
7318
7319 * cvt.c (convert_to_reference): Allow DECL to be error_mark_node if
7320 we don't know what we're initializing.
7321
7322Wed May 11 01:59:36 1994 Jason Merrill (jason@deneb.cygnus.com)
7323
7324 * cvt.c (convert_to_reference): Modify to use convtype parameter.
7325 Only create temporaries when initializing a reference, not when
7326 casting.
7327 (cp_convert): New main function.
7328 (convert): Call cp_convert.
7329 * cvt.c, decl.c, typeck.c: Fix calls to convert_to_reference.
7330 * cp-tree.h (CONV_*): New constants used by conversion code for
7331 selecting conversions to perform.
7332
7333 * tree.c (lvalue_p): MODIFY_EXPRs are no longer lvalues.
7334
7335 * typeck.c (build_{static,reinterpret,const_cast): Stubs that just
7336 call build_c_cast.
7337 * parse.y: Add {static,reinterpret,const}_cast.
7338 * gxx.gperf: Ditto.
7339
7340 * typeck.c (common_type): Allow methods with basetypes of different
7341 UPTs.
7342 (comptypes): Deal with UPTs.
7343 (build_modify_expr): Wrap all MODIFY_EXPRs in a COMPOUND_EXPR.
7344
7345 * pt.c (end_template_decl): Check for multiple definitions of member
7346 templates.
7347
7348 * call.c (build_method_call): Complain about calling an abstract
7349 virtual from a constructor.
7350
7351 * typeck.c (pointer_int_sum): Check for the integer operand being 0
7352 after checking the validity of the pointer operand.
7353
7354 * typeck2.c (digest_init): Pedwarn about string initializer being
7355 too long.
7356
7357Tue May 10 12:10:28 1994 Jason Merrill (jason@deneb.cygnus.com)
7358
7359 * decl.c (push_overloaded_decl): Only throw away a builtin if the
7360 decl in question is the artificial one.
7361
7362 * parse.y (simple_stmt, switch): Use implicitly_scoped_stmt because
7363 expand_{start,end}_case cannot happen in the middle of a block.
7364
7365 * cvt.c (build_type_conversion_1): Use convert again.
7366
7367Tue May 10 11:52:04 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7368
7369 * typeck2.c (digest_init): Make sure we check for signed and
7370 unsigned chars as well when warning about string initializers.
7371
7372 * init.c (emit_base_init): Check if there's a DECL_NAME on the
7373 member before trying to do an initialization for it.
7374
6060a796 7375Tue May 10 11:34:37 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
7376
7377 * except.c: Don't do anything useful when cross compiling.
7378
7379Tue May 10 03:04:13 1994 Jason Merrill (jason@deneb.cygnus.com)
7380
7381 * decl.c (duplicate_decls): Fix up handling of builtins yet again.
7382 (push_overloaded_decl): Ditto.
7383
7384 * cvt.c (convert): Don't look for void type conversion.
7385
7386Mon May 9 18:05:41 1994 Jason Merrill (jason@deneb.cygnus.com)
7387
7388 * init.c (do_friend): Only do a pushdecl for friends, not
7389 pushdecl_top_level.
7390
7391Mon May 9 13:36:34 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
7392
7393 * decl.c (lookup_name_current_level): Put empty statement after
7394 the label OUT to make the code valid C.
7395
7396Mon May 9 12:20:57 1994 Jason Merrill (jason@deneb.cygnus.com)
7397
7398 * typeck.c (build_binary_op_nodefault): Only complain about
7399 comparing void * and a function pointer if void * is smaller.
7400
7401Sun May 8 01:29:13 1994 Jason Merrill (jason@deneb.cygnus.com)
7402
7403 * decl.c (lookup_name_current_level): Move through temporary binding
7404 levels.
7405
7406 * parse.y (already_scoped_stmt): Revive.
7407 (simple_stmt): Use it again.
7408
7409 * decl.c (poplevel): Always call poplevel recursively if we're
7410 dealing with a temporary binding level.
7411
6060a796 7412Sat May 7 10:52:28 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
7413
7414 * decl.c (finish_decl): Make sure we run cleanups for initial values
7415 of decls. Cures memory leak.
7416 * decl.c (expand_static_init): Ditto for static variables.
7417 * decl2.c (finish_file): Ditto for globals.
7418
7419Sat May 7 03:57:44 1994 Jason Merrill (jason@deneb.cygnus.com)
7420
7421 * typeck.c (commonparms): Don't complain about redefining default
7422 args.
7423
7424 * decl.c (duplicate_decls): Don't complain twice about conflicting
7425 function decls.
7426 (decls_match): Don't look at default args.
7427 (redeclaration_error_message): Complain about redefining default
7428 args.
7429
7430 * call.c (build_overload_call_real): Also deal with guiding
7431 declarations coming BEFORE the template decl.
7432
7433 * pt.c (unify): Allow different parms to have different
7434 cv-qualifiers.
7435 (unify): Allow trivial conversions on non-template parms.
7436
7437Fri May 6 03:53:23 1994 Jason Merrill (jason@deneb.cygnus.com)
7438
7439 * pt.c (tsubst): Support OFFSET_TYPEs.
7440 (unify): Ditto.
7441
7442 * decl2.c (finish_decl_parsing): Call push_nested_class with a type.
7443
7444 * init.c (build_offset_ref): Fix error message.
7445 * search.c (lookup_field): Ditto.
7446
7447 * call.c (build_scoped_method_call): Pass binfo to
7448 build_method_call.
7449 * typeck.c (build_object_ref): Ditto.
7450
7451 * typeck2.c (binfo_or_else): Don't return a _TYPE.
7452
7453 * class.c (finish_struct): Don't complain about re-use of inherited
7454 names or shadowing of type decls.
7455 * decl.c (pushdecl_class_level): Ditto.
7456
7457 * decl.c (finish_enum): Set the type of all the enums.
7458
7459 * class.c (finish_struct): Don't get confused by access decls.
7460
7461 * cp-tree.h (TYPE_MAIN_DECL): New macro to get the _DECL for a
7462 _TYPE. You can stop using TYPE_NAME for that now.
7463
7464 * parse.y: Lose doing_explicit (check $0 instead).
7465 * gxx.gperf: 'template' now has a RID.
7466 * lex.h (rid): Ditto.
7467 * lex.c (init_lex): Set up the RID for 'template'.
7468
7469 * parse.y (type_specifier_seq): typed_typespecs or
7470 nonempty_type_quals. Use it.
7471 (handler_args): Fix bogus syntax.
7472 (raise_identifier{,s}, optional_identifier): Lose.
7473 * except.c (expand_start_catch_block): Use grokdeclarator to parse
7474 the catch variable.
7475 (init_exception_processing): The second argument to
7476 __throw_type_match is ptr_type_node.
7477
7478 Fri May 6 07:18:54 1994 Chip Salzenberg (chip@fin)
7479
7480 [ change propagated from c-decl.c of snapshot 940429 ]
7481 * cp/decl.c (finish_decl): Setting asmspec_tree should not
7482 zero out the old RTL.
7483
6060a796 7484Fri May 6 01:25:38 1994 Mike Stump <mrs@cygnus.com>
8d2733ca
MS
7485
7486 Add alpha exception handling support to the compiler.
7487 Quick and dirty backend in except.c.
7488
7489 * cp/*: Remove most remnants of old exception handling support.
7490 * decl.c (finish_function): Call expand_exception_blocks to put
7491 the exception hanlding blocks at the end of the function.
7492 * dec.c (hack_incomplete_structures): Make sure expand_decl_cleanup
7493 comes after expand_decl_init.
7494 * except.c: Reimplementation.
7495 * expr.c (cplus_expand_expr): Handle THROW_EXPRs.
7496 * lex.c (init_lex): Always have catch, try and throw be reserved
7497 words, so that we may always parse exception handling.
7498 * parse.y: Cleanup to support new interface into exception handling.
7499 * tree.def (THROW_EXPR): Add.
7500
7501Thu May 5 17:35:37 1994 Jason Merrill (jason@deneb.cygnus.com)
7502
7503 * parse.y (simple_stmt, for loops): Use implicitly_scoped_stmt.
7504 (various): Lose .kindof_pushlevel and partially_scoped_stmt.
7505
7506Thu May 5 16:17:27 1994 Kung Hsu (kung@mexican.cygnus.com)
7507
7508 * parse.y (already_scoped_stmt): move expand_end_binding() to
7509 fix the unmatched LBB/LBE in stabs.
7510
7511Thu May 5 14:36:17 1994 Jason Merrill (jason@deneb.cygnus.com)
7512
7513 * decl.c (set_nested_typename): Set TREE_MANGLED on the new
7514 identifiers.
7515 (pushdecl): Check TREE_MANGLED.
7516 (xref_tag): Ditto.
7517 * cp-tree.h (TREE_MANGLED): This identifier is a
7518 DECL_NESTED_TYPENAME (named to allow for future use to denote
7519 mangled function names as well).
7520
7521 Implement inconsistency checking specified in [class.scope0].
7522 * decl.c (lookup_name_real): Don't set ICV here after all.
7523 (finish_enum): Also set the type of the enumerators themselves.
7524 (build_enumerator): Put the CONST_DECL in the list instead of its
7525 initial value.
7526 (pushdecl_class_level): Check inconsistent use of a name in the
7527 class body.
7528 * class.c (finish_struct): Check inconsistent use of a name in the
7529 class body. Don't set DECL_CONTEXT on types here anymore.
7530 * parse.y (qualified_type_name): Note that the identifier has now
7531 been used (as a type) in the class body.
7532 * lex.c (do_identifier): Note that the identifier has now been used
7533 (as a constant) in the class body.
7534 * error.c (dump_decl): Print type and enum decls better.
7535
700f8a87
MS
7536Thu May 5 09:35:35 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7537
7538 * typeck.c (build_modify_expr): Warn about assignment to `this'.
7539
7540Wed May 4 15:55:49 1994 Jason Merrill (jason@deneb.cygnus.com)
7541
7542 * init.c (build_delete): Use the global operator delete when
7543 requested.
7544
7545 * decl.c (lookup_name_real): If we find the type we're looking in a
7546 base class while defining a class, set IDENTIFIER_CLASS_VALUE for
7547 the type.
7548
7549 * class.c (finish_struct): Remove a couple of dependencies on
7550 language linkage.
7551
7552 * decl.c (pushtag): Classes do nest in extern "C" blocks.
7553 (pushdecl): Only set DECL_NESTED_TYPENAME on the canonical one for
7554 the type.
7555 (pushtag): Remove another dependency on the language linkage.
7556
7557 * lex.c (cons_up_default_function): Don't set DECL_CLASS_CONTEXT to
7558 a const-qualified type.
7559
7560 * decl.c (push_overloaded_decl): Throw away built-in decls here.
7561 (duplicate_decls): Instead of here.
7562
7563Wed May 4 15:27:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
7564
7565 * typeck.c (get_member_function_from_ptrfunc): Do The Right
7566 Thing (I hope) if we're using thunks.
7567
7568Wed May 4 13:52:38 1994 Jason Merrill (jason@deneb.cygnus.com)
7569
7570 * parse.y (specialization): aggr template_type_name ';'.
7571 (named_class_head_sans_basetype): Use it.
7572 (explicit_instantiation): Ditto.
7573 (tmpl.2): Revert.
7574
7575 * cvt.c (build_type_conversion_1): Use convert_for_initialization,
7576 rather than convert, to do conversions after the UDC.
7577
7578 * cp-tree.h (SHARED_MEMBER_P): This member is shared between all
7579 instances of the class.
7580
7581 * search.c (lookup_field): If the entity found by two routes is the
7582 same, it's not ambiguous.
7583
7584Wed May 4 12:10:00 1994 Per Bothner (bothner@kalessin.cygnus.com)
7585
7586 * decl.c (lookup_name_real): Check for a NULL TREE_VALUE,
7587 to prevent the compiler from crashing ...
7588
7589Wed May 4 11:19:45 1994 Jason Merrill (jason@deneb.cygnus.com)
7590
7591 * call.c (build_method_call): If we don't have an object, check
7592 basetype_path to figure out where to look up the function.
7593
7594 * typeck.c (convert_for_initialization): Pass TYPE_BINFO (type) to
7595 build_method_call in case exp is NULL_TREE.
7596
7597Tue May 3 16:02:53 1994 Per Bothner (bothner@kalessin.cygnus.com)
7598
7599 Give a vtable entries a unique named type, for the sake of gdb.
7600 * class.c (build_vtable_entry): The addres of a thunk now has
7601 type vtable_entry_type, not ptr_type_node.
7602 * method.c (make_thunk): Fix type of THUNK_DECL.
7603 * class.c (add_virtual_function, override_one_vtable): Use
7604 vfunc_ptr_type_node, instead of ptr_type_node.
7605 * cp-tree.h (vfunc_ptr_type_node): New macro.
7606 * decl.c (init_decl_processing): Make vtable_entry_type
7607 be a unique type of pointer to a unique function type.
7608
7609Tue May 3 09:20:44 1994 Jason Merrill (jason@deneb.cygnus.com)
7610
7611 * parse.y (do_explicit): Sets doing_explicit to 1.
7612 (explicit_instantiation): Use do_explicit rather than TEMPLATE
7613 directly, add "do_explicit error" rule.
7614 (datadef): Set doing_explicit to 0 after an explicit instantiation.
7615 (tmpl.2): Don't instantiate if we see a ';' unless we're doing an
7616 explicit instantiation.
7617 (named_class_head_sans_basetype): Remove aggr template_type_name
7618 ';' again.
7619
7620Mon May 2 23:17:21 1994 Jason Merrill (jason@deneb.cygnus.com)
7621
7622 * search.c (lookup_nested_tag): Lose.
7623
7624 * decl2.c (grokfield): Set DECL_CONTEXT on TYPE_DECLs.
7625 (lookup_name_nonclass): Lose.
7626
7627 * decl.c (poplevel_class): Add force parameter.
7628 (lookup_name_real): Fix handling of explicit scoping which specifies
7629 a class currently being defined. Add 'nonclass' argument.
7630 (lookup_name, lookup_name_nonclass): Shells for lookup_name_real.
7631
7632 * class.c (finish_struct): Don't unset IDENTIFIER_CLASS_VALUEs here.
7633 (popclass): Force clearing of IDENTIFIER_CLASS_VALUEs if we're being
7634 called from finish_struct.
7635
7636Mon May 2 19:06:21 1994 Per Bothner (bothner@kalessin.cygnus.com)
7637
7638 * decl.c (init_decl_processing), cp-tree.h: Removed memptr_type.
7639 (It seeems redundant, given build_ptrmemfunc_type.)
7640 * typeck.c (get_member_function_from_ptrfunc), gc.c (build_headof,
7641 build_classof): Use vtable_entry_type instead of memptr_type.
7642 * method.c (emit_thunk): Call poplevel with functionbody==0
7643 to prevent DECL_INITIAL being set to a BLOCK.
7644
7645Mon May 2 15:02:11 1994 Jason Merrill (jason@deneb.cygnus.com)
7646
7647 * parse.y (named_class_head_sans_basetype): Add "aggr
7648 template_type_name ';'" rule for forward declaration of
7649 specializations.
7650
7651Mon May 2 15:02:11 1994 Jason Merrill (jason@deneb.cygnus.com)
7652
7653 * class.c (instantiate_type): Deal with pmf's.
bfef964b
JM
7654
7655 * Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since
7656 stamp-objlist does.
700f8a87 7657
bfef964b
JM
7658 * Makefile.in (../cc1plus): Depend on OBJDEPS.
7659 (OBJDEPS): Dependency version of OBJS.
7660
700f8a87
MS
7661Mon May 2 12:51:31 1994 Kung Hsu (kung@mexican.cygnus.com)
7662
7663 * search.c (dfs_debug_mark): unmark TYPE_DECL_SUPPRESS_DEBUG, not
7664 DECL_IGNORED_P.
7665
7666Fri Apr 29 12:29:56 1994 Jason Merrill (jason@deneb.cygnus.com)
7667
7668 * class.c (finish_struct): Clear out memory of local tags. And
7669 typedefs.
7670
7671 * decl2.c (grokclassfn): Don't set DECL_CONTEXT to a cv-qualified
7672 type.
7673 * search.c (get_matching_virtual): Be more helpful in error message.
7674
7675 * *: Use DECL_ARTIFICIAL (renamed from DECL_SYNTHESIZED).
7676
7677 * lex.c (default_assign_ref_body): Expect TYPE_NESTED_NAME to work.
7678 (default_copy_constructor_body): Ditto.
7679
7680 * class.c (finish_struct): Don't gratuitously create multiple decls
7681 for nested classes.
7682
7683Thu Apr 28 23:39:38 1994 Jason Merrill (jason@deneb.cygnus.com)
7684
7685 Avoid clobbering the arg types of other functions when reverting
7686 static member functions.
7687 * decl.c (revert_static_member_fn): Rearrange arguments, don't
7688 require values for 'fn' and 'argtypes', add warning to comment
7689 above.
7690 (decls_match): Rearrange arguments in call to rsmf.
7691 (grok_op_properties): Don't pass values for fn and argtypes.
7692 * pt.c (instantiate_template): Don't pass values for fn and argtypes.
7693
15fa00e9
DE
7694Thu Apr 28 16:29:11 1994 Doug Evans (dje@canuck.cygnus.com)
7695
7696 * Make-lang.in (cc1plus): Depend on stamp-objlist.
7697 * Makefile.in (BC_OBJS): Delete.
700f8a87
MS
7698 (OBJS): Cat ../stamp-objlist to get language independent files.
7699 Include ../c-common.o.
15fa00e9
DE
7700 (../cc1plus): Delete reference to BC_OBJS.
7701
700f8a87
MS
7702Thu Apr 28 02:12:08 1994 Jason Merrill (jason@deneb.cygnus.com)
7703
7704 * search.c (compute_access): No really, deal with static members
7705 properly. Would I lie to you?
7706
7707 Implement lexical hiding of function declarations.
7708 * pt.c (tsubst): Use lookup_name to look for function decls to guide
7709 instantiation.
7710 * method.c (build_opfncall): Use lookup_name_nonclass to look for
7711 non-member functions.
7712 * init.c (do_friend): Use lookup_name_nonclass to look for
7713 functions.
7714 * error.c (ident_fndecl): Use lookup_name to look for functions.
7715 * decl2.c (lookup_name_nonclass): New function, skips over
7716 CLASS_VALUE.
7717 * decl.c (struct binding_level): Lose overloads_shadowed field.
7718 (poplevel): Don't deal with overloads_shadowed.
7719 (push_overloaded_decl): Do lexical hiding for functions.
7720 * class.c (instantiate_type): Don't check non-members if we have
7721 members with the same name.
7722 * call.c (build_method_call): Use lookup_name_nonclass instead of
7723 IDENTIFIER_GLOBAL_VALUE to check for non-member functions.
7724 (build_overload_call_real): Ditto.
7725
7726 * decl.c (duplicate_decls): Check for ambiguous overloads here.
7727 (push_overloaded_decl): Instead of here.
7728
7729 * decl.c (pushdecl): Back out Chip's last change.
7730
7731 * decl.c (grok_op_properties): operators cannot be static members.
7732
7733 * cp-tree.h (DECL_SYNTHESIZED): DECL_SOURCE_LINE == 0
7734 (SET_DECL_SYNTHESIZED): DECL_SOURCE_LINE = 0
7735 * lex.c (cons_up_default_function): Use SET_DECL_SYNTHESIZED.
7736
7737 * method.c (do_inline_function_hair): Don't put friends of local
7738 classes into global scope, either.
7739
7740 * typeck2.c (build_functional_cast): Don't look for a function call
7741 interpretation.
7742
6060a796 7743Thu Apr 28 15:19:46 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
7744
7745 * cp-tree.h: disable use of backend EH.
7746
15fa00e9
DE
7747Wed Apr 27 21:01:24 1994 Doug Evans (dje@canuck.cygnus.com)
7748
7749 * Make-lang.in (c++.distdir): mkdir tmp/cp first.
7750 * Makefile.in (INCLUDES): Move definition to same place as
7751 parent makefile.
7752 (ALLOCA): Define.
7753 (OLDAR_FLAGS): Delete.
7754 (OLDCC): Define.
7755 (DIR): Delete.
7756 (CLIB): Define.
7757 (####site): Delete.
7758 (SUBDIR_USE_ALLOCA): Don't use ALLOCA if compiling with gcc.
7759
39211cd5
MS
7760Wed Apr 27 19:10:04 1994 Kung Hsu (kung@mexican.cygnus.com)
7761
7762 * decl.c (xref_tag): not to use strstr(), it's not available on
7763 all platforms.
7764
7765Wed Apr 27 18:10:12 1994 Jason Merrill (jason@deneb.cygnus.com)
7766
7767 * class.c (finish_struct): Resolve yet another class/pmf confusion.
7768
7769 * call.c (build_overload_call_real): Don't take the single-function
7770 shortcut if we're dealing with an overloaded operator.
7771
6060a796 7772Wed Apr 27 17:35:37 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
7773
7774 * search.c (get_base_distance): Search the virtual base class
7775 binfos, incase someone wants to convert to a real virtual base
7776 class.
7777 * search.c (expand_indirect_vtbls_init): Use convert_pointer_to_real
7778 instead of convert_pointer_to, as it now will work.
7779
7780Wed Apr 27 15:36:49 1994 Jason Merrill (jason@deneb.cygnus.com)
7781
7782 * cvt.c (convert_to_reference): Don't complain about casting away
7783 const and volatile.
7784
7785 * typeck.c (build_unary_op): References are too lvalues.
7786
6060a796 7787Wed Apr 27 13:58:05 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
7788
7789 * class.c (override_one_vtable): We have to prepare_fresh_vtable
7790 before we modify it, not after, also, we cannot reuse an old vtable,
7791 once we commit to a new vtable. Implement ambiguous overrides in
7792 virtual bases as abstract. Hack until we make the class
7793 ill-formed.
7794
7795Wed Apr 27 01:17:08 1994 Jason Merrill (jason@deneb.cygnus.com)
7796
7797 * parse.y (unary_expr): Expand new_placement[opt] and
7798 new_initializer[opt] inline.
7799
7800 * search.c (lookup_fnfields): Don't throw away the inheritance
7801 information here, either.
7802 (compute_access): Handle static members properly.
7803
7804 * init.c (build_member_call): Always set basetype_path, and pass it
7805 to lookup_fnfields.
7806
7807 * search.c (lookup_field): Deal properly with the case where
7808 xbasetype is a chain of binfos; don't throw away the inheritance
7809 information.
7810 (compute_access): protected_ok always starts out at 0.
7811
7812 * init.c (resolve_offset_ref): Don't cast `this' to the base type
7813 until we've got our basetype_path.
7814
7815 * cp-tree.h (IS_OVERLOAD_TYPE): aggregate or enum.
7816
7817 * cvt.c (build_up_reference): Use build_pointer_type rather than
7818 TYPE_POINTER_TO.
7819
7820 * call.c (convert_harshness_ansi): Call type_promotes_to for reals
7821 as well.
7822
7823 * cvt.c (type_promotes_to): Retain const and volatile, add
7824 float->double promotion.
7825
7826 * decl.c (grokdeclarator): Don't bash references to arrays into
7827 references to pointers in function parms. Use type_promotes_to.
7828
6060a796 7829Tue Apr 26 23:44:36 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
7830
7831 Finish off Apr 19th work.
7832
7833 * class.c (finish_struct_bits): Rename has_abstract_virtuals to
7834 might_have_abstract_virtuals.
7835 * class.c (strictly_overrides, override_one_vtable,
7836 merge_overrides): New routines to handle virtual base overrides.
7837 * class.c (finish_struct): Call merge_overrides to handle overrides
7838 in virtual bases.
7839
7840Tue Apr 26 12:45:53 1994 Jason Merrill (jason@deneb.cygnus.com)
7841
7842 * typeck.c (build_function_call): Call build_function_call_real with
7843 LOOKUP_NORMAL.
7844
7845 * *: Don't deal with TYPE_EXPRs.
7846
7847 * tree.c (lvalue_p): If the type of the expression is a reference,
7848 it's an lvalue.
7849
7850 * cvt.c (convert_to_reference): Complain about passing const
7851 lvalues to non-const references.
7852 (convert_from_reference): Don't arbitrarily throw away const and
7853 volatile on the target type.
7854
7855 * parse.y: Simplify and fix rules for `new'.
7856
7857 * decl.c (grok_op_properties): operator void is illegal.
7858
7859Mon Apr 25 02:36:28 1994 Jason Merrill (jason@deneb.cygnus.com)
7860
7861 * parse.y (components): Anonymous bitfields can still have declspecs.
7862
7863 * decl.c (pushdecl): Postpone handling of function templates like we
7864 do C functions.
7865
7866 * search.c (expand_indirect_vtbls_init): Fix infinite loop when
7867 convert_pointer_to fails.
7868
7869 * call.c (compute_conversion_costs_ansi): A user-defined conversion
7870 by itself is better than that UDC followed by standard conversions.
7871 Don't treat integers and reals specially.
7872
7873 * cp-tree.h: Declare flag_ansi.
7874
7875 * typeck.c (c_expand_return): pedwarn on return in void function
7876 even if the expression is of type void.
7877 (build_c_cast): Don't do as much checking for casts to void.
7878 (build_modify_expr): pedwarn about array assignment if this code
7879 wasn't generated by the compiler.
7880
7881 * tree.c (lvalue_p): A comma expression is an lvalue if its second
7882 operand is.
7883
7884 * typeck.c (default_conversion): Move code for promoting enums and
7885 ints from here.
7886 * cvt.c (type_promotes_to): To here.
7887 * call.c (convert_harshness_ansi): Use type_promotes_to. Also fix
7888 promotion semantics for reals.
7889
15fa00e9
DE
7890Sun Apr 24 16:52:51 1994 Doug Evans (dje@canuck.cygnus.com)
7891
7892 * Make-lang.in (c++.install-common): Check for g++-cross.
7893 * Makefile.in: Remove Cygnus cruft.
7894 (config.status): Delete.
7895 (RTL_H): Define.
7896 (TREE_H): Use complete pathname, some native makes have minimal
7897 VPATH support.
7898 (*.o): Use complete pathname to headers in parent dir.
7899 (doc, info, dvi): Delete.
7900
700f8a87
MS
7901Sun Apr 24 16:52:51 1994 Doug Evans (dje@canuck.cygnus.com)
7902
7903 * Make-lang.in (c++.install-common): Check for g++-cross.
7904 * Makefile.in: Remove Cygnus cruft.
7905 (config.status): Delete.
7906 (RTL_H): Define.
7907 (TREE_H): Use complete pathname, some native makes have minimal
7908 VPATH support.
7909 (*.o): Use complete pathname to headers in parent dir.
7910 (doc, info, dvi): Delete.
7911
39211cd5
MS
7912Sun Apr 24 00:47:49 1994 Jason Merrill (jason@deneb.cygnus.com)
7913
7914 * decl.c (pushdecl): Avoid redundant warning on redeclaring function
7915 with different return type.
7916 (decls_match): Compare return types strictly.
7917
7918Fri Apr 22 12:55:42 1994 Jason Merrill (jason@deneb.cygnus.com)
7919
7920 * cvt.c (build_type_conversion): Do try to convert through other
7921 pointers. This will fail if the class defines multiple pointer
7922 conversions.
7923
7924 * error.c (dump_type_prefix): Print out pointers to arrays properly.
7925 (dump_type_suffix): Ditto. (was 'int *[]', now 'int (*)[]')
7926
7927 * typeck.c (build_unary_op): Disallow ++/-- on pointers to
7928 incomplete type.
7929
7930 * decl.c (duplicate_decls): Check mismatched TREE_CODES after
7931 checking for shadowing a builtin. If we're redeclaring a builtin
7932 function, bash the old decl to avoid an ambiguous overload.
7933
7934 * cvt.c (convert_to_reference): Don't force arrays to decay here.
7935
7936 * tree.c (lvalue_p): A MODIFY_EXPR is an lvalue.
7937
7938 * decl.c (duplicate_decls): Don't assume that the decls will have
7939 types.
7940
7941 Mon Apr 18 11:35:32 1994 Chip Salzenberg (chip@fin.uucp)
7942
7943 [ cp/* changes propagated from c-* changes in 940318 snapshot ]
7944 * c-decl.c (pushdecl): Warn if type mismatch with another external decl
7945 in a global scope.
7946
7947 Fri Apr 22 06:38:56 1994 Chip Salzenberg (chip@fin.uucp)
7948
7949 * cp/typeck2.c (signature_error): Use cp_error for "%T".
7950
7951 Mon Apr 18 11:59:59 1994 Chip Salzenberg (chip@fin.uucp)
7952
7953 [ cp/* changes propagated from c-* changes in 940415 snapshot ]
7954 * cp/decl.c (duplicate_decls, pushdecl, builtin_function):
7955 Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE.
7956
7957 Mon Apr 18 11:55:18 1994 Chip Salzenberg (chip@fin.uucp)
7958
7959 [ cp/* changes propagated from c-* changes in 940409 snapshot ]
7960 * cp/decl.c (duplicate_decls): Put new type in same obstack as
7961 old ones, or permanent if old ones in different obstacks.
7962
7963 Mon Apr 18 11:48:49 1994 Chip Salzenberg (chip@fin.uucp)
7964
7965 [ cp/* changes propagated from c-* changes in 940401 snapshot ]
7966 * cp/parse.y (attrib): Handle string args as expressions,
7967 merging the two rules. `mode' attribute now takes a string arg.
7968 Delete the rule for an identifier as arg.
7969
7970 Mon Apr 18 11:24:00 1994 Chip Salzenberg (chip@fin.uucp)
7971
7972 [ cp/* changes propagated from c-* changes in 940312 snapshot ]
7973 * cp/typeck.c (pointer_int_sum): Multiplication should be done signed.
7974 (pointer_diff): Likewise the division.
7975
7976 Sun Mar 6 19:43:39 1994 Chip Salzenberg (chip@fin.uucp)
7977
7978 [ cp/* changes propagated from c-* changes in 940304 snapshot ]
7979 * cp/decl.c (finish_decl): Issue warning for large objects,
7980 if requested.
7981
7982 Sat Feb 19 22:20:32 1994 Chip Salzenberg (chip@fin.uucp)
7983
7984 [ cp/* changes propagated from c-* changes in 940218 snapshot ]
7985 * cp/parse.y (attrib): Handle attribute ((section ("string"))).
7986 * cp/decl.c (duplicate_decls): Merge section name into new decl.
7987
7988 Tue Feb 8 09:49:17 1994 Chip Salzenberg (chip@fin.uucp)
7989
7990 [ cp/* changes propagated from c-* changes in 940206 snapshot ]
7991 * cp/typeck.c (signed_or_unsigned_type): Check for any
63718c49 7992 INTEGRAL_TYPE_P not just INTEGER_TYPE.
39211cd5
MS
7993
7994 Mon Dec 6 13:35:31 1993 Norbert Kiesel (norbert@i3.INformatik.rwth-aachen.DE)
7995
7996 * cp/decl.c (finish_enum): Start from 0 when determining precision
7997 for short enums.
7998
7999 Fri Dec 3 17:07:58 1993 Ralph Campbell (ralphc@pyramid.COM)
8000
8001 * cp/parse.y (unary_expr): Look at $1 for tree_code rather than
8002 casting $$.
8003
8004 Wed Nov 17 19:22:09 1993 Chip Salzenberg (chip@fin.uucp)
8005
8006 * cp/typeck.c (build_binary_op_nodefault): Propagate code
8007 from C front-end to optimize unsigned short division.
8008 (build_conditional_expr): Fix bug in "1 ? 42 : (void *) 8".
8009
8010 Wed Nov 17 19:17:18 1993 Chip Salzenberg (chip@fin.uucp)
8011
8012 * cp/call.c (convert_harshness_ansi): Given an (e.g.) char
8013 constant, prefer 'const char &' to 'int'.
8014
8015 Wed Feb 3 13:11:48 1993 Chip Salzenberg (chip@fin.uucp)
8016
8017 * cp/class.c (finish_struct_methods): Handle multiple
8018 constructors in fn_fields list.
8019
8020Fri Apr 22 12:48:10 1994 Kung Hsu (kung@mexican.cygnus.com)
8021
8022 * class.c (finish_struct): use TYPE_DECL_SUPPRESS_DEBUG to flag
8023 types not to be dumped in stabs, like types in #pragma interface.
8024 * decl.c (init_decl_processing): use TYPE_DECL_SUPPRESS_DEBUG to
8025 mark unknown type.
8026
15fa00e9
DE
8027Fri Apr 22 03:27:26 1994 Doug Evans (dje@cygnus.com)
8028
8029 * Language directory reorganization.
8030 See parent makefile.
8031
39211cd5
MS
8032Thu Apr 21 18:27:57 1994 Per Bothner (bothner@kalessin.cygnus.com)
8033
8034 * cp-tree.h (THUNK_DELTA): It is normally negative, so
8035 use signed .i variant of frame_size rather than unsigned .u.
8036 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
8037 use "VT" rather than "vt" due to binary incompatibility.
8038 * class.c (get_vtable_name): Use strlen of VTABLE_NAME_FORMAT,
8039 rather than sizeof, since it is now an expression.
8040 * class.c (modify_one_vtable): Modify to skip initial element
8041 containing a count of the vtable.
8042
7177d104
MS
8043Thu Apr 21 00:09:02 1994 Jason Merrill (jason@deneb.cygnus.com)
8044
8045 * lex.c (check_newline): Force interface_unknown on main input file.
8046
8047 * pt.c (do_pending_expansions): Always emit functions that have been
8048 explicitly instantiated.
8049 (do_function_instantiation): Set DECL_EXPLICITLY_INSTANTIATED.
8050 (do_type_instantiation): Set CLASSTYPE_VTABLE_NEEDS_WRITING and
8051 DECL_EXPLICITLY_INSTANTIATED on all my methods.
8052 * parse.y (explicit_instantiation): Call do_type_instantiation for
8053 types.
8054 * decl2.c (finish_vtable_vardecl): Call import_export_vtable.
8055 * decl.c (start_function): Don't set DECL_EXTERNAL on a function
8056 that has been explicitly instantiated.
8057 * cp-tree.h (DECL_EXPLICITLY_INSTANTIATED): Alias for
8058 DECL_LANG_FLAG_4.
8059 * class.c: Move import_export_vtable to decl2.c, and comment out all
8060 uses.
8061
8062Wed Apr 20 16:51:06 1994 Jason Merrill (jason@deneb.cygnus.com)
8063
8064 * lex.c (process_next_inline): Don't muck with DECL_INLINE.
8065 (do_pending_inlines): Ditto.
8066
6060a796 8067Tue Apr 19 22:25:41 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8068
8069 Reimplement vtable building, and most vtable pointer setting.
8070 Allows for earier maintenance, easier understandability, and most
8071 importantly, correct semantics.
8072
8073 * class.c (build_vtable): Removed unneeded
8074 SET_BINFO_VTABLE_PATH_MARKED.
8075 * class.c (prepare_fresh_vtable): Ditto. Added argument.
8076 * class.c (modify_vtable_entry): General cleanup.
8077 * class.c (related_vslot, is_normal, modify_other_vtable_entries,
8078 modify_vtable_entries): Removed.
8079 * class.c (add_virtual_function): General cleanup.
8080 * class.c (finish_base_struct): Setup BINFO_VTABLE and
8081 BINFO_VIRTUALS as early as we can, so that modify_all_vtables can
8082 work.
8083 * class.c (finish_vtbls): New routine, mostly from
8084 unmark_finished_struct.
8085 * class.c (overrides): New routine.
8086 * class.c (modify_one_vtable): New routine, mostly from
8087 modify_other_vtable_entries and modify_vtable_entries.
8088 * class.c (modify_all_direct_vtables, modify_all_indirect_vtables,
8089 modify_all_vtables): New routines.
8090 * class.c (finish_struct): Added arguemnt to prepare_fresh_vtable
8091 call. General cleanup on how pending_hard_virtuals are handled.
8092 General cleanup on modifying vtables. Use finish_vtbls, instead of
8093 unmark_finished_struct.
8094 * cp-tree.h (init_vtbl_ptrs, expand_direct_vtbls_init,
8095 get_first_matching_virtual, get_matching_virtual,
8096 expand_vbase_vtables_init, expand_indirect_vtbls_init): Update.
8097 * cvt.c (convert_pointer_to_real): cleanup error message.
8098 * decl.c (grokfndecl): General cleanup.
8099 * decl.c (finish_function): Change init_vtbl_ptrs call to
8100 expand_direct_vtbls_init. Change expand_vbase_vtables_init call to
8101 expand_indirect_vtbls_init.
8102 * init.c (expand_virtual_init): Remove unneeded argument.
8103 * init.c (init_vtbl_ptrs): Rename to expand_direct_vtbls_init, added
8104 two arguments to make more general. Made more general. Now can be
8105 used for vtable pointer initialization from virtual bases.
8106 * init.c (emit_base_init): Change expand_vbase_vtables_init call to
8107 expand_indirect_vtbls_init. Change init_vtbl_ptrs call to
8108 expand_direct_vtbls_init.
8109 * init.c (expand_virtual_init): General cleanup.
8110 * init.c (expand_default_init): Change expand_vbase_vtables_init
8111 call to expand_indirect_vtbls_init.
8112 * init.c (expand_recursive_init_1): Change expand_vbase_vtables_init
8113 call to expand_indirect_vtbls_init.
8114 * init.c (expand_recursive_init): Change expand_vbase_vtables_init
8115 call to expand_indirect_vtbls_init.
8116 * search.c (get_first_matching_virtual): Rename to
8117 get_matching_virtual. General cleanup and remove setting of
8118 DECL_CONTEXT. That is now done in a cleaner way in
8119 modify_vtable_entry and add_virtual_function.
8120 * search.c (expand_vbase_vtables_init): Rename to
8121 expand_indirect_vtbls_init. General cleanup. Use
8122 expand_direct_vtbls_init to do hard work. Ensures that _all_ vtable
8123 pointers from virtual bases are set up.
8124 * search.c (bfs_unmark_finished_struct, unmark_finished_struct):
8125 Removed.
8126
8127 * *.[chy]: Remove support for VTABLE_USES_MASK.
8128
8129Tue Apr 19 12:51:59 1994 Jason Merrill (jason@deneb.cygnus.com)
8130
8131 * cvt.c (convert_to_reference): Use NOP_EXPRs to switch between
8132 reference and pointer types instead of bashing the types directly.
8133
8134 * call.c (build_overload_call_real): Use the TREE_CODE to determine
8135 whether the function is overloaded or not, rather than
8136 TREE_OVERLOADED.
8137 * *: Remove all uses of TREE_OVERLOADED.
8138
8139 * decl.c (grokdeclarator): Only complain about initializing const
8140 fields when -ansi or -pedantic.
8141
8142Tue Apr 19 12:42:42 1994 Doug Evans (dje@canuck.cygnus.com)
8143
8144 * cp-tree.h (THUNK_DELTA): frame_size is now a union.
8145
8146Mon Apr 18 00:17:13 1994 Jason Merrill (jason@deneb.cygnus.com)
8147
8148 Do overloading on a block-by-block basis, not function-by-function.
8149 * decl.c: Lose overloads_to_forget.
8150 (struct binding_level): Add overloads_shadowed field.
8151 (poplevel): Restore overloads_shadowed.
8152 (push_overloaded_decl): Use overloads_shadowed instead of
8153 overloads_to_forget.
8154 (finish_function): Don't look at overloads_to_forget.
8155
8156 Copy enum_overflow logic from c-decl.c.
8157 * decl.c (start_enum): Initialize enum_overflow.
8158 (build_enumerator): Use enum_overflow. Also use current_scope().
8159
8160 * search.c (current_scope): Move Brendan's comment from
8161 build_enumerator here.
8162
8163 * typeck.c (convert_for_assignment): Change warnings to pedwarns for
8164 discarding const/volatile.
8165
8166Sat Apr 16 01:18:21 1994 Jason Merrill (jason@deneb.cygnus.com)
8167
8168 * typeck.c (comp_target_parms): Accept TEMPLATE_TYPE_PARMs on the rhs.
8169 (comp_target_types): Ditto.
8170
8171 * decl.c (lookup_name): Don't unset got_scope here.
8172
8173 * spew.c (yylex): Only replace yylval with the TYPE_NESTED_NAME if
8174 got_scope != NULL_TREE.
8175
8176Fri Apr 15 16:36:33 1994 Jason Merrill (jason@deneb.cygnus.com)
8177
8178 Horrible kludge to prevent templates from being instantiated by
8179 their base classes.
8180 * parse.y (template_instantiate_once): Unset TYPE_BEING_DEFINED
8181 before we get to left_curly.
8182 * pt.c (instantiate_class_template): Set TYPE_BEING_DEFINED.
8183
8184 * error.c (dump_decl): If it's a typedef, print out the name of the
8185 decl, not just the underlying type.
8186
8187 * decl.c (pushdecl): If the old duplicate decl was a TYPE_DECL,
8188 update the IDENTIFIER_TYPE_VALUE of its name.
8189
8190 * decl2.c (finish_file): When processing the initializer for a
8191 static member, pretend that the dummy function is a member of the
8192 same class.
8193
8194Fri Apr 15 15:56:35 1994 Kung Hsu (kung@mexican.cygnus.com)
8195
63718c49
GB
8196 * class.c (build_vtable_entry): revert Apr 4 change.
8197 * decl2.c (mark_vtable_entries): replace pure virtual function
8198 decl with abort's.
7177d104
MS
8199
8200Fri Apr 15 13:49:33 1994 Jason Merrill (jason@deneb.cygnus.com)
8201
8202 * typeck.c (build_conditional_expr): Pedwarn on pointer/integer
8203 mismatch, and don't pedwarn on 0/function pointer mismatch.
8204
8205 * typeck2.c (digest_init): Lose code for special handling of unions.
8206 (process_init_constructor): Since they're handled just fine here.
8207 Pedwarn on excess elements.
8208
8209 * decl2.c (grokfield): Complain about local class method declaration
8210 without definition.
8211
8212Fri Apr 15 13:19:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
8213
8214 * method.c (emit_thunk): Add extern declaration for
8215 current_call_is_indirect (needed for hppa).
8216
8217Thu Apr 14 16:12:31 1994 Jason Merrill (jason@deneb.cygnus.com)
8218
8219 Improve local class support; allow classes in different blocks to
8220 have the same name.
8221 * decl.c (pushtag): Support local classes better.
8222 (pushdecl_nonclass_level): New function for pushing mangled decls of
8223 nested types into the appropriate scope.
8224 (xref_defn_tag): Use pushdecl_nonclass_level instead of
8225 pushdecl_top_level.
8226 (grokfndecl): Don't mess with IDENTIFIER_GLOBAL_VALUE for local
8227 class methods.
8228 * method.c (do_inline_function_hair): Ditto.
8229
8230 * class.c (finish_struct): It is legal for a class with no
8231 constructors to have nonstatic const and reference members.
8232
8233Thu Apr 14 07:15:11 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
8234
8235 * decl.c (push_overloaded_decl): Avoid giving errors about
8236 built-ins, since duplicate_decls will have given warnings/errors
8237 for them.
8238
8239Thu Apr 14 03:45:12 1994 Jason Merrill (jason@deneb.cygnus.com)
8240
8241 * cvt.c (convert_to_reference): Warn about casting pointer type to
8242 reference type when this is probably not what they wanted.
8243
8244Wed Apr 13 13:12:35 1994 Per Bothner (bothner@kalessin.cygnus.com)
8245
8246 * decl.c (finish_decl): Don't mindlessly set TREE_USED for
8247 static consts any more (toplev.c has now been modified to
8248 not emit warnings if they are unused).
8249
8250Wed Apr 13 00:22:35 1994 Jason Merrill (jason@deneb.cygnus.com)
8251
8252 * decl.c (grok_op_properties): If op new/delete get here with
8253 METHOD_TYPEs, do a revert_static_member_fn.
8254
8255 * cp-tree.h (IDENTIFIER_CLASS_TYPE_VALUE): Lose.
8256 * init.c (is_aggr_typedef): Don't look at
8257 IDENTIFIER_CLASS_TYPE_VALUE.
8258 (get_aggr_from_typedef): Ditto.
8259 (get_type_value): Ditto.
8260 * call.c (build_scoped_method_call): Don't rely on overloaded
8261 template names having IDENTIFIER_CLASS_VALUE set.
8262
8263 * parse.y (component_decl_1, fn.def2): Revert rules for
8264 constructors.
8265 (component_decl_1, fn.def2): Use $1 instead of $$, since $$ is being
8266 clobbered.
8267
8268 * decl.c (start_function): Only warn about `void main()' if pedantic
8269 || warn_return_type.
8270
8271Tue Apr 12 02:14:17 1994 Jason Merrill (jason@deneb.cygnus.com)
8272
8273 Clean up overloading of the template name.
8274 * class.c (pushclass): overload the template name whenever pushing
8275 into the scope of a template class, not just if it is
8276 uninstantiated.
8277 (popclass): Correspondingly.
8278 * search.c (push_class_decls): Don't overload_template_name.
8279 * pt.c (overload_template_name): Don't set IDENTIFIER_LOCAL_VALUE or
8280 DECL_CONTEXT on things.
8281 * parse.y (left_curly): Don't overload_template_name.
8282 * class.c (finish_struct): Don't undo_template_name_overload.
8283
8284 * method.c (build_opfncall): Only pass one argument to global op
8285 delete.
8286
8287 * call.c (build_method_call): Use TYPE_VEC_DELETE_TAKES_SIZE to
8288 decide how many arguments to use for vec delete.
8289
8290 * decl.c (grok_op_properties): Be consistent in modifying
8291 current_class_type.
8292 (grokdeclarator): Only complain about function decls with no return
8293 type if we're being pedantic.
8294
8295Mon Apr 11 00:10:53 1994 Jason Merrill (jason@deneb.cygnus.com)
8296
8297 Add support for operator new [] and operator delete [].
8298
8299 * tree.def: Add VEC_NEW_EXPR and VEC_DELETE_EXPR.
8300 * ptree.c (print_lang_type): Indicate vec new/delete.
8301 * parse.y: Support vec new/delete.
8302 * method.c (build_decl_overload): Deal with vec new/delete.
8303 (build_opfncall): Ditto.
8304 * lex.c (init_lex): Set up values of ansi_opname and opname_tab for
8305 vec new/delete. vec new uses "__vn", and vec delete uses "__vd".
8306 * init.c (init_init_processing): Set up BIVN and BIVD.
8307 (do_friend): Don't clean up after mistaken setting of TREE_GETS_NEW,
8308 since it doesn't happen any more.
8309 (build_new): Support vec new. Always call something.
8310 (build_x_delete): Support vec delete.
8311 (build_vec_delete): Lose dtor_dummy argument, add use_global_delete,
8312 and pass it to build_x_delete.
8313 * decl2.c (delete_sanity): Don't change behavior by whether or not
8314 the type has a destructor. Pass use_global_delete to
8315 build_vec_delete.
8316 (coerce_delete_type): Make sure that the type returned has a first
8317 argument of ptr_type_node.
8318 * decl.c (init_decl_processing): Also declare the global vec
8319 new/delete.
8320 (grokdeclarator): Also force vec new/delete to be static.
8321 (grok_op_properties): Note presence of vec new/delete, and play with
8322 their args. If vec delete takes the optional size_t argument, set
8323 TYPE_VEC_DELETE_TAKES_SIZE.
8324 * cp-tree.h (TYPE_GETS_{REG,VEC}_DELETE): New macros to simplify
8325 checking for one delete or the other.
8326 (lang_type): gets_new and gets_delete are now two bits long. The
8327 low bit is for the non-array version. Lose gets_placed_new.
8328 (TYPE_VEC_DELETE_TAKES_SIZE): New macro indicating that the vec
8329 delete defined by this class wants to know how much space it is
8330 deleting.
8331 (TYPE_VEC_NEW_USES_COOKIE): New macro to indicate when vec new must
8332 add a header containing the number of elements in the vector; i.e.
8333 when the elements need to be destroyed or vec delete wants to know
8334 the size.
8335 * class.c (finish_struct_methods): Also check for overloading vec
8336 delete.
8337 * call.c (build_method_call): Also delete second argument for vec
8338 delete.
8339
8340 * decl.c (grokdeclarator): Correct complaints again.
8341 (grokdeclarator): Fix segfault on null declarator.
8342 (decls_match): Also accept redeclaration with no arguments if both
8343 declarations were in C context. Bash TREE_TYPE (newdecl) here.
8344 (duplicate_decls): Instead of here.
8345
8346 * parse.y (nested_name_specifier_1): Lose rules for dealing with
8347 syntax errors nicely, since they break parsing of 'const i;'.
8348
8349 * decl.c (lookup_name): if (got_scope == current_class_type)
8350 val = IDENTIFIER_CLASS_VALUE (name).
8351
8352 * search.c (lookup_nested_tag): Look in enclosing classes, too.
8353
8354 * spew.c (yylex): Only look one character ahead when checking for a
8355 SCOPE.
8356
8357 * lex.c (check_newline): Read first nonwhite char before
8358 incrementing lineno.
8359
8360 * decl.c (grokdeclarator): Don't claim that typedefs are variables
8361 in warning.
8362
8363 * parse.y: Divide up uses of unqualified_id into
8364 notype_unqualified_id and unqualified_id, so that TYPENAME can be
8365 used as an identifier after an object.
8366
8367 * class.c (push_nested_class): Don't push into non-class scope.
8368
8369 * decl.c (grokdeclarator): If an identifier could be a type
8370 conversion operator, but has no associated type, it's not a type
8371 conversion operator.
8372
8373 * pt.c (unify): Check for equality of constants better.
8374
8375 * decl.c (grokdeclarator): Don't complain about access decls.
8376
8377Sun Apr 10 02:39:55 1994 Jason Merrill (jason@deneb.cygnus.com)
8378
8379 * decl.c (grokdeclarator): pedwarn about data definitions without
8380 types here.
8381
8382 * parse.y (datadef): Don't pedwarn about decls without types here,
8383 since that is valid for functions.
8384 (fn.def2, component_decl): Support constructors with declmods again.
8385 (nomods_initdecls): For decls without any mods, so that we don't try
8386 to get declspecs from some arbitrary $0.
8387
8388 * search.c (lookup_field): Use cp_error.
8389
8390 * parse.y (nested_name_specifier_1): Don't check aggr/non-aggr type
8391 here; it breaks destructors for non-aggr types.
8392
8393 * decl.c (lookup_name): Only look for TYPE_DECLs in base classes of
8394 a type being defined, like the comment says.
8395 If got_scope is not an aggregate, just return NULL_TREE.
8396
8397 * pt.c (create_nested_upt): Kung's code for creating types nested
8398 within uninstantiated templates now lives here (it used to live in
8399 hack_more_ids). It needs to be expanded.
8400
8401 * parse.y: Stop calling see_typename so much.
8402
8403 * decl.c (lookup_name): Deal with TTPs and UPTs.
8404
8405 * lex.c (real_yylex): Don't set looking_for_typename just because we
8406 saw a 'new'.
8407 (dont_see_typename): #if 0 out.
8408
8409 * spew.c (yylex): Increment looking_for_typename if the next
8410 character is SCOPE, rather than setting it to 1; this way, the value
8411 from seeing an aggr specifier will not be lost. This kinda relies
8412 on looking_for_typename never being < 0, which is now true.
8413
8414 * parse.y (nested_name_specifier_1): Accept TEMPLATE_TYPE_PARMs,
8415 too.
8416 (named_class_head_sans_basetype): Accept template types, too. Oops.
8417
8418Fri Apr 8 16:39:35 1994 Jason Merrill (jason@deneb.cygnus.com)
8419
8420 * decl2.c (reparse_decl_as_expr1): Handle SCOPE_REFs.
8421
8422 * parse.y: Lose START_DECLARATOR.
8423
8424 * search.c (lookup_nested_tag): New function to scan CLASSTYPE_TAGS
8425 for a class.
8426
8427 * parse.y: Simplify fn.def2 and component_decl. Support 'enum
8428 A::foo' syntax. Catch invalid scopes better.
8429
8430 * parse.y, lex.c: lose TYPENAME_COLON.
8431
8432 * decl2.c (groktypefield): #if 0 out.
8433
8434 * decl.c (lookup_name): If the type denoted by got_scope is
8435 currently being defined, look in CLASSTYPE_TAGS rather than FIELDS.
8436
8437 * class.c (push_nested_class): Don't try to push into
8438 error_mark_node.
8439
8440Fri Apr 8 07:26:36 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
8441
8442 * Makefile.in (stamp-parse): Update count of conflicts to 33.
8443
8444Thu Apr 7 17:47:53 1994 Jason Merrill (jason@deneb.cygnus.com)
8445
8446 A saner implementation of nested types that treats template types
8447 no differently from non-template types. There are still some
8448 shortcomings of our system; most notably, it is difficult to look
8449 for a nested type that is hidden by another name, because of the way
8450 we keep track of hidden types. But this shouldn't be a problem for
8451 just about anyone. Perhaps lookup_field should be fixed up a bit.
8452
8453 * spew.c: Moved handling of nested types/scoping from the lexer
8454 into the parser. Removed variable template_type_seen_before_scope.
8455 Removed functions frob_identifier, hack_more_ids, and various cruft
8456 that was #if 0'd out in the past, reducing the size of the file from
8457 1146 lines to 450 lines. We can't quite do away with spew.c yet,
8458 though; we still need it for do_aggr () and checking for SCOPE after
8459 the current identifier. And setting lastiddecl.
8460
8461 * parse.y: Moved handling of nested types/scoping from the lexer
8462 into the parser, using a new global variable `got_scope'. Reduced
8463 the number of states by 53. Implemented all uses of explicit global
8464 scope. Removed terminals SCOPED_TYPENAME and SCOPED_NAME. Removed
8465 nonterminals tmpl.1, scoped_base_class, id_scope, typename_scope,
8466 scoped_typename. Added nonterminals nested_type,
8467 qualified_type_name, complete_type_name, qualified_id, ptr_to_mem,
8468 nested_name_specifier, global_scope, overqualified_id, type_name.
8469 Changed many others. Added 9 new reduce/reduce conflicts, which are
8470 nested type parallels of 9 that were already in the grammar for
8471 non-nested types. Eight of the now 33 conflicts should be removed
8472 in the process of resolving the late binding between variable and
8473 function decls.
8474
8475 * gxxint.texi (Parser): Update.
8476
8477 * cp-tree.h (IS_AGGR_TYPE_CODE): Add UNINSTANTIATED_P_TYPE.
8478
8479 * lex.h: Add decl for got_scope.
8480
8481 * lex.c (see_typename): Claim to be the lexer when calling
8482 lookup_name.
8483
8484 * decl.c (lookup_name): When called from the lexer, look at
8485 got_scope and looking_at_typename; otherwise don't.
8486
6060a796 8487Thu Apr 7 22:05:47 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8488
8489 31th Cygnus<->FSF merge.
8490
8491Thu Apr 7 17:47:53 1994 Jason Merrill (jason@deneb.cygnus.com)
8492
8493 * decl2.c (mark_vtable_entries): Call this to mark all the
8494 entries in the vtable addressable.
8495 (finish_decl_parsing): Handle SCOPE_REFs.
8496
8497 * decl.c (decls_match): Always call compparms with strict == 1.
8498 Handle the special case of C function redecl here.
8499 (duplicate_decls): Only keep the old type if the new decl takes no
8500 arguments.
8501
8502 * typeck.c (compparms): Also allow t1 to be ... if strict == 0.
8503
6060a796 8504Thu Apr 7 16:17:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8505
8506 * class.c (build_vtable_entry): Fix breakage introduced Apr 5
8507 17:48:41.
8508
8509Wed Apr 6 16:05:10 1994 Per Bothner (bothner@kalessin.cygnus.com)
8510
8511 * init.c (build_virtual_init), search.c (build_vbase_vtables_init),
8512 ch-tree.h: Every place these functions were called, the result was
8513 immediately passed to expand_expr_stmt. Reduce redundancy by
8514 calling expand_expr_init *inside* these functions. These
8515 makes for a simpler interface, and we don't have to build
8516 compound expressions. Hence, rename these function to:
8517 expand_virtual_init and expand_vbase_vtables_init respectively.
8518 * init.c, decl.c: Change callers of these functions.
8519 * init.c, cp-tree.h (expand_virtual_init): Make static.
8520
8521 * decl2.c (finish_file): Check TREE_PUBLIC||TREE_ADDRESSABLE
8522 rather than DECL_SAVED_INSNS before emitting inlines.
8523
8524Wed Apr 6 13:06:39 1994 Jason Merrill (jason@deneb.cygnus.com)
8525
8526 * spew.c (init_spew): #if 0 out stuff used by arbitrate_lookup.
8527
8528 * decl.c (duplicate_decls): If this is a new declaration of an
8529 extern "C" function, keep the type (for the argtypes).
8530 (redeclaration_error_message): Don't check DECL_LANGUAGE here.
8531 (decls_match): Call compparms with a value of strict dependent on
8532 the value of strict_prototypes for DECL_LANGUAGE (oldecl).
8533
8534 * typeck.c (compparms): ... is only equivalent to non-promoting
8535 parms if we're not being strict.
8536
8537 * parse.y (empty_parms): Don't check flag_ansi || pedantic here.
8538
8539 * decl.c (init_decl_processing): if (flag_ansi || pedantic)
8540 strict_prototypes_lang_c = strict_prototypes_lang_cplusplus;
8541
8542 * decl2.c (grok_function_init): Don't set DECL_INITIAL on pure
8543 virtuals.
8544
8545Tue Apr 5 17:48:41 1994 Per Bothner (bothner@kalessin.cygnus.com)
8546
8547 Support for implementing vtables with thunks.
8548 * tree.def (THUNK_DECL): New TREE_CODE.
8549 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY), tree.c
8550 (fnaddr_from_vtable_entry): Handle flag_vtable_thunks case.
8551 * cp-tree.h (memptr_type): New variable.
8552 * class.c (build_vtable_entry): Build thunk if necessary.
8553 * class.c (build_vfn_ref): If using thunks, don't need
8554 to add delta field from vtable (there is none!).
8555 * decl.c: Add memptr_type as well as vtable_entry_type.
8556 If using thunks, the latter is just ptr_type_node.
8557 * gc.c, typeck.c: Use memptr_typeChange, not vtable_entry_type.
8558 * decl2.c (finish_vtable_vardecl): Handle thunks.
8559 * expr.c (cplus_expand_expr): Support THUNK_DECL.
8560
8561 * decl.c (grokdeclarator): Set DECL_THIS_EXTERN if "extern".
8562 * decl.c (start_function): Set current_extern_inline based on
8563 DECL_THIS_EXTERN, not TREE_PUBLIC.
8564 * decl.c (finish_function): Call mark_inline_for_output if needed,
8565
8566 Improve intelligence about when to emit inlines.
8567 * cp-tree.h (lang_decl_flags): New field saved_inline.
8568 * cp-tree.h (DECL_SAVED_INLINE): New macro.
8569 * class.c (add_virtual_function): Don't set TREE_ADDRESSABLE.
8570 * decl.h, decl.c (pending_addressable_inlines): Removed.
8571 * decl2.c (pending_addressable_inlines): Renamed to saved_inlines.
8572 * decl2.c (mark_inline_for_output): Do nothing if
8573 DECL_SAVED_INLINE; otherwise set it (and add to saved_inlines list).
8574 * decl2.c (finish_vtable_vardecl): SET_CLASSTYPE_INTERFACE_KNOWN
8575 and set CLASSTYPE_INTERFACE_ONLY if there is a non-inline virtual.
8576 * decl2.c (finish_file): Writing out inlines later, so we can
8577 also handle the ones needed for vtbales.
8578 * decl2.c (write_vtable_entries, finish_vtable_typedecl): Removed.
8579
8580 * cp-tree.h, class.c, decl2.c, search.c: Remove -fvtable-hack
8581 and flag_vtable_hack. Use -fvtable-thunks and flag_vtable_thunks
8582 instead. (The rationale is that these optimizations both break binary
8583 compatibility, but should become the default in a future release.)
8584
6060a796 8585Wed Apr 6 10:53:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8586
8587 * class.c (modify_vtable_entries): Never reset the DECL_CONTEXT
8588 of a fndecl, as we might not be from that vfield.
8589
8590Tue Apr 5 17:43:35 1994 Kung Hsu (kung@mexican.cygnus.com)
8591
8592 * class.c (add_virtual_function): fix bug for pure virtual, so
8593 that DECL_VINDEX of the dummy decl copied won't be error.
8594 (see also Apr 4 change)
8595
8596Tue Apr 5 17:23:45 1994 Per Bothner (bothner@kalessin.cygnus.com)
8597
8598 * typeck.c (c_expand_return): Before checking that we're not
8599 returning the address of a local, make sure it's a VAR_DECL.
8600 (And don't worry about it being a TREE_LIST.)
8601
8602Tue Apr 5 13:26:42 1994 Jason Merrill (jason@deneb.cygnus.com)
8603
8604 * parse.y (YYDEBUG): Always define.
8605 * lex.c (YYDEBUG): Ditto.
8606
8607Mon Apr 4 11:28:17 1994 Kung Hsu (kung@mexican.cygnus.com)
8608
8609 * class.c (finish_struct): backup out the change below, put the
8610 new change for the same purpose. The change below breaks code.
8611
8612 * class.c (finish_struct): if pure virtual, copy node and make
8613 RTL point to abort, then put in virtual table.
8614 * decl2.c (grok_function_iit): reinstate Mar 31 change.
8615
8616Sat Apr 2 03:12:58 1994 Jason Merrill (jason@deneb.cygnus.com)
8617
8618 * init.c (build_new): pedwarn about newing const and volatile
8619 types.
8620
8621 * tree.c (get_identifier_list): Only do the special handling
8622 thing if we're dealing with the main variant of the record type.
8623
8624 * cvt.c (convert_to_reference): When converting between
8625 compatible reference types, use the pointer conversion machinery.
8626 Don't just blindly overwrite the old type.
8627
8628Fri Apr 1 17:14:42 1994 Jason Merrill (jason@deneb.cygnus.com)
8629
8630 * call.c (build_method_call): When looking at global functions,
8631 be sure to use instance_ptr for the first argument, not some version
8632 of it that has been cast to a base class. Also do this before
8633 comparing candidates.
8634
8635Thu Mar 31 19:50:35 1994 Jason Merrill (jason@deneb.cygnus.com)
8636
8637 * call.c (build_method_call): Constructors can be called for
8638 const objects.
8639
8640Thu Mar 31 16:20:16 1994 Kung Hsu (kung@mexican.cygnus.com)
8641
8642 * decl2.c (grok_func_init): do not abort as rtl for pur virtual
8643 fucntions. They can be defined somewhere else.
8644
8645Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
8646
8647 * decl.c (init_decl_processing): Declare __builtin_return_address
8648 and __builtin_frame_address for C++ as well.
8649
6060a796 8650Thu Mar 31 12:35:49 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8651
8652 * typeck2.c (store_init_value): Integral constant variables are
8653 always constant, even when doing -fpic.
8654
8655Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
8656
8657 * decl.c (redeclaration_error_message): Pass the types to
8658 comptypes.
8659
6060a796 8660Wed Mar 30 21:29:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8661
8662 Cures incorrect errors about pure virtuals in a class, when they
8663 have been overridden in a derived class.
8664
8665 * search.c (get_abstract_virtuals): Reimplement.
8666 * search.c (get_abstract_virtuals_1): New routine.
8667
8668Wed Mar 30 14:10:04 1994 Jason Merrill (jason@deneb.cygnus.com)
8669
8670 * pt.c (push_template_decls): Make the pushed level pseudo
8671 global.
8672
8673 * parse.y (extdefs): Don't pop everything if the current binding
8674 level is pseudo_global.
8675
8676 * decl.c (pop_everything): Stop on reaching a pseudo-global
8677 binding level.
8678
8679 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Change to more reliable test.
8680
8681 * decl.c (duplicate_decls): Only copy DECL_SOURCE_{FILE_LINE} if
8682 the old decl actually had an initializer.
8683
8684 * {various}: Clean up gcc -W complaints.
8685
8686 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Currently defined to be
8687 (DECL_CONTEXT (NODE) != NULL_TREE).
8688
8689 * parse.y (lang_extdef): Call pop_everything if necessary.
8690
8691 * decl.c (pop_everything): New function for popping binding
8692 levels left over after a syntax error.
8693 (pushdecl): Use DECL_FUNCTION_MEMBER_P to decide whether or not
8694 a function is a member.
8695
6060a796 8696Wed Mar 30 14:20:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8697
8698 Cures calling a more base base class function, when a more derived
8699 base class member should be called in some MI situations.
8700
8701 * search.c (make_binfo): Use more the more specialized base
63718c49
GB
8702 binfos from the binfo given as the second argument to make_binfo,
8703 instead of the unspecialized ones from the TYPE_BINFO.
7177d104
MS
8704 * class.c (finish_base_struct): Ditto, update callers.
8705 * search.c (dfs_get_vbase_types): Ditto.
8706 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Ditto.
8707 * decl.c (xref_tag): Use NULL_TREE instead of 0.
8708 * lex.c (make_lang_type): Ditto.
8709
8710Wed Mar 30 14:10:04 1994 Jason Merrill (jason@deneb.cygnus.com)
8711
8712 * decl.c (pushdecl): If pushing a C-linkage function, only do a
8713 push_overloaded_decl.
8714 (duplicate_decls): Standard overloading does not shadow built-ins.
8715
8716Tue Mar 29 00:54:18 1994 Jason Merrill (jason@deneb.cygnus.com)
8717
8718 * pt.c (end_template_decl): Don't call push_overloaded_decl.
8719
8720 * init.c (do_friend): Don't call push_overloaded_decl.
8721
8722 * decl.c (pushdecl): Call push_overloaded_decl for functions and
8723 function templates.
8724 (duplicate_decls): functions and function templates are not
8725 duplicates, but don't complain about calling this function to
8726 compare them.
8727 (push_overloaded_decl): Don't deal with linkage. Call
8728 duplicate_decls.
8729 (redeclaration_error_message): Deal with linkage.
8730
8731 * decl.c (start_function): If push_overloaded_decl returns an
8732 older version of the function, deal with it.
8733
8734 * decl.c (start_function): Be sure only to push_overloaded_decl
8735 for non-members.
8736
8737 * decl.c (grokfndecl): Put back clearing of DECL_CHAIN for
8738 methods.
8739 (start_function): Lose broken and redundant code for checking old
8740 decl.
8741
8742 * init.c (add_friend): Give line numbers of both friend decls
8743 when warning about re-friending.
8744
8745 * pt.c (tsubst): Use comptypes rather than == to compare the
8746 types of the method as declared and as defined, since default
8747 parameters may be different.
8748
8749 * call.c (build_method_call): Use brendan's candidate printing
8750 routine.
8751
8752 * decl.c (start_method): Methods defined in the class body are
8753 inline whether or not it's a template class.
8754
8755Mon Mar 28 16:39:26 1994 Jason Merrill (jason@deneb.cygnus.com)
8756
8757 * parse.y (initdcl0): Add "extern" to current_declspecs if
8758 have_extern_spec && ! used_extern_spcec.
8759
8760 * tree.c (really_overloaded_fn): A fn with more than one
8761 overload.
8762
8763 * pt.c (end_template_decl): Use really_overloaded_fn.
8764
8765 * decl.c (duplicate_decls): When smashing a decl into a previous
8766 definition, keep the old file and line.
8767 Don't deal with overloaded functions.
8768 Lose old code for checking arg types of functions.
8769 Check for overloaded C functions.
8770 (pushdecl): Deal with overloaded functions.
8771 (start_decl): Expect pushdecl to return an appropriate function decl.
8772 (start_function): Ditto.
8773 (push_overloaded_decl): Don't check for overloaded C functions.
8774
8775 * *.c: Stop using DECL_OVERLOADED, it being archaic.
8776 TREE_OVERLOADED should probably go, too.
8777
8778Mon Mar 28 14:00:45 1994 Ron Guilmette (rfg@netcom.com)
8779
8780 * typeck.c (comp_target_types): Call comp_target_parms with
8781 strict == 1.
8782
8783Sun Mar 27 00:07:45 1994 Jason Merrill (jason@deneb.cygnus.com)
8784
8785 * parse.y (empty_parms): Don't parse () as (...) in extern "C"
8786 sections if we're compiling with -ansi or -pedantic.
8787
8788 * decl.c (decls_match): Don't treat (int) and (int&) as matching.
8789
8790 * decl2.c (grokfield): Don't pedwarn twice about initializing
8791 field.
8792
8793 * decl.c (push_overloaded_decl): Warn about shadowing
8794 constructor.
8795 (redeclaration_error_message): Don't allow 'int a; int a;'
8796
8797 * cvt.c (build_up_reference): Only check for valid upcast if
8798 LOOKUP_PROTECT is set, not just any flag.
8799
8800Fri Mar 25 01:22:31 1994 Jason Merrill (jason@deneb.cygnus.com)
8801
8802 * lex.c (check_newline): When we see a #pragma implementation,
8803 also set it for the main input file.
8804
8805 * init.c (build_new): Convert array size argument to size_t.
8806
8807 * parse.y (primary): If we're doing a parenthesized type-id, call
8808 groktypename before passing it to build_new.
8809
8810 * call.c (build_method_call): Deal properly with const and
8811 volatile for instances of reference type.
8812
8813 * decl.c (store_return_init): Change 'if (pedantic) error' to 'if
8814 (pedantic) pedwarn'.
8815
8816 * decl.c (grokdeclarator): Don't complain about putting `static'
8817 and `inline' on template function decls.
8818
8819Thu Mar 24 23:18:19 1994 Jason Merrill (jason@deneb.cygnus.com)
8820
8821 * call.c (build_method_call): Preserve const & volatile on
8822 `this'.
8823
6060a796 8824Thu Mar 24 16:21:52 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8825
8826 * init.c (build_new, build_vec_delete): Use global new and delete
8827 for arrays.
8828 * decl2.c (delete_sanity): Ditto.
8829
8830Thu Mar 24 02:10:46 1994 Jason Merrill (jason@deneb.cygnus.com)
8831
8832 * cvt.c (convert_to_reference): If i is an lvalue,
8833 (int &)i -> *(int*)&i, as per 5.2.8p9 of the latest WP.
8834 (convert_force): Call convert_to_reference with LOOKUP_COMPLAIN.
8835
8836Wed Mar 23 17:45:37 1994 Jason Merrill (jason@deneb.cygnus.com)
8837
8838 * decl.c (duplicate_decls): Also propagate DECL_TEMPLATE_MEMBERS
8839 and DECL_TEMPLATE_INSTANTIATIONS.
8840
8841 * init.c (build_new): Handle array typedefs properly.
8842
6060a796 8843Wed Mar 23 18:23:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8844
8845 30th Cygnus<->FSF merge.
8846
6060a796 8847Wed Mar 23 00:46:24 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8848
8849 * class.c (modify_vtable_entries): Avoid running off the end of the
8850 virtuals list when processing a virtual destructor.
8851 * class.c (get_vtable_entry): Ditto.
8852
8853Wed Mar 23 00:23:59 1994 Jason Merrill (jason@deneb.cygnus.com)
8854
8855 * decl.c (duplicate_decls): If two template decls don't match,
8856 just return 0.
8857
8858Tue Mar 22 23:49:41 1994 Jason Merrill (jason@deneb.cygnus.com)
8859
8860 * typeck.c (convert_for_assignment): Don't pedwarn about
8861 converting function pointer to void *.
8862
6060a796 8863Tue Mar 22 22:23:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8864
8865 Major revamp of pointer to member functions. Cures major
8866 nonfunctionality when used in casts, and MI situations.
8867
8868 * cvt.c (convert_force): Update call site of build_ptrmemfunc.
8869 * typeck.c (convert_for_assignment): Ditto.
8870 * typeck2.c (digest_init): Ditto.
8871 * typeck2.c (process_init_constructor): Simplify by moving code into
8872 digest_init.
8873 * typeck2.c (digest_init): Do default_conversions on init value, if
8874 we are processing pointer to member functions.
8875 * class.c (get_vfield_offset): Now non-static. Convert bit offset
8876 into byte offset.
8877 * cp-tree.h (get_vfield_offset): Ditto.
8878 * typeck.c (get_member_function_from_ptrfunc): Convert down to right
8879 instance, before fetching vtable pointer.
8880 * typeck.c (get_delta_difference): New routine.
8881 * typeck.c (build_ptrmemfunc): Revamp to handle casting better, also
8882 get vtable pointer out of right subobject.
8883
6060a796 8884Tue Mar 22 17:56:48 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8885
8886 * search.c (get_binfo): Return NULL instead of aborting, when
8887 passed a UNION_TYPE.
8888
8889Tue Mar 22 12:44:54 1994 Jason Merrill (jason@deneb.cygnus.com)
8890
8891 These patches implement handling of redefinition/redeclaration of
8892 templates.
8893
8894 * typeck.c (comptypes): Simplify. All TEMPLATE_TYPE_PARMs are
8895 considered compatible.
8896
8897 * parse.y (template_def): Pass defn argument to end_template_decl.
8898
8899 * pt.c (end_template_decl): Add defn argument. Check for
8900 redefinition. Simplify.
8901
8902 * error.c (OB_UNPUT): New macro, to remove mistakes.
8903 (aggr_variety): Subroutine of dump_aggr_type.
8904
8905 * decl.c (decls_match): Support templates.
8906 (duplicate_decls): No longer static. Don't try to lay out template
8907 decls.
8908 (pushdecl): Simplify.
8909
8910 * cp-tree.h (DECL_TEMPLATE_MEMBERS): Use DECL_SIZE instead of
8911 DECL_INITIAL.
8912
8913Mon Mar 21 11:46:55 1994 Jason Merrill (jason@deneb.cygnus.com)
8914
8915 * error.c (dump_decl): Support class template decls.
8916 (dump_type): Don't adorn template type parms.
8917
8918 * decl.c (duplicate_decls): Save DECL_TEMPLATE_INFO from old decl
8919 if it was a definition.
8920 (redeclaration_error_message): Do the cp_error thang, and reject
8921 redefinition of templates.
8922
8923Mon Mar 21 19:36:06 1994 Per Bothner (bothner@kalessin.cygnus.com)
8924
8925 * decl.c (grokdeclarator): Set TREE_PUBLIC for METHOD_TYPE
8926 in FIELD context, when appropriate. Also,
8927 CLASSTYPE_INTERFACE_ONLY is irrelevant to setting TREE_PUBLIC.
8928 Also, simplify check for bogus return specifiers.
8929
8930Mon Mar 21 11:46:55 1994 Jason Merrill (jason@deneb.cygnus.com)
8931
8932 * parse.y (after_type_declarator1): Expand type_quals.
8933 (notype_declarator1): Ditto.
8934 (absdcl1): Ditto.
8935
8936Sat Mar 19 01:05:17 1994 Jason Merrill (jason@deneb.cygnus.com)
8937
8938 * decl.c (grokdeclarator): Treat class-local typedefs like static
8939 members; i.e. 'typedef int f();' means that f is a function type,
8940 not a method type.
8941
8942 * parse.y (decl): Change direct_* back to *.
8943 (type_id): Change direct_abstract_declarator to absdcl.
8944 (direct_declarator, direct_initdecls, direct_initdcl0): Remove again.
8945
8946Fri Mar 18 12:47:59 1994 Jason Merrill (jason@deneb.cygnus.com)
8947
8948 These two patches fix crashes on instantiating a template inside a
8949 function with C linkage or containing labels.
8950
8951 * class.c (current_lang_stacksize): No longer static.
8952
8953 * decl.c (struct saved_scope): Add lang_base, lang_stack,
8954 lang_name, lang_stacksize, and named_labels.
8955 (push_to_top_level): Save them.
8956 (pop_from_top_level): Restore them.
8957
8958 * gxxint.texi (Parser): Update.
8959
8960 These two patches finish moving the task of expr/declarator
8961 ambiguity resolution from the lexer to the parser, and add one more
8962 r/r conflict. START_DECLARATOR can now be nuked.
8963
8964 * parse.y (decl): Add "direct_" in typespec X rules.
8965 (direct_declarator): New nonterminal for
8966 direct_after_type_declarator and direct_notype_declarator.
8967 (direct_initdecls): Like initdecls, but uses direct_initdcl0.
8968 (direct_initdcl0): Like initdcl0, but uses direct_declarator.
8969 (named_parm): Add typespec direct_declarator rule.
8970
8971 * spew.c (yylex): #if 0 out START_DECLARATOR insertion.
8972
8973 These two patches disable some excessive cleverness on the part of
8974 g++; a non-class declaration always hides a class declaration in the
8975 same scope, and g++ was trying to unhide it depending on the
8976 enclosing expression.
8977
8978 * spew.c (arbitrate_lookup): #if 0 out.
8979
8980 * decl.c (lookup_name): Never call arbitrate_lookup.
8981
8982 * parse.y (complex_notype_declarator1): Add '*'
8983 complex_notype_declarator1 and '&' complex_notype_declarator1 rules.
8984
8985 * parse.y (complex_direct_notype_declarator): Restore id_scope
8986 see_typename TYPENAME rule, remove all other rules beginning with
8987 those tokens.
8988 (notype_unqualified_id): Add '~' see_typename IDENTIFIER rule.
8989
8990Thu Mar 17 17:30:01 1994 Jason Merrill (jason@deneb.cygnus.com)
8991
8992 These changes fix the compiler's handling of the functional cast/
8993 object declaration ambiguities in section 6.8 of the ARM. They also
8994 add 11 reduce/reduce conflicts. Sigh.
8995
8996 * parse.y: Add precedence decls for OPERATOR and '~'.
8997 (notype_unqualified_id): New nonterminal, encompasses all of the
8998 ANSI unqualified-id nonterminal except TYPENAMEs.
8999 (expr_or_declarator): New nonterminal to delay parsing of code like
9000 `int (*a)'.
9001 (primary): Use notype_unqualified_id.
9002 (decl): Add typespec initdecls ';' and typespec declarator ';'
9003 rules.
9004 (initdcl0): Deal with the above.
9005 (complex_notype_declarator1): A notype_declarator that is not also
9006 an expr_or_declarator.
9007 (complex_direct_notype_declarator): A direct_notype_declarator that
9008 doesn't conflict with expr_or_declarator. Use
9009 notype_unqualified_id. Remove id_scope see_typename TYPENAME rule.
9010 (functional_cast): New nonterminal, for the three functional cast
9011 rules. So that they can be moved after
9012 complex_direct_notype_declarator.
9013 (see_typename): Don't accept type_quals any more.
9014
9015 * decl2.c (reparse_decl_as_expr): New function to deal with parse
9016 nodes for code like `int (*a)++;'.
9017 (reparse_decl_as_expr1): Recursive subroutine of the above.
9018 (finish_decl_parsing): New function to deal with parse nodes for
9019 code like `int (*a);'. See the difference?
9020
6060a796 9021Thu Mar 17 12:16:10 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9022
9023 These changes break binary compatibility in code with classes
9024 that use virtual bases.
9025
9026 * search.c (dfs_get_vbase_types): Simplify and correct to make
9027 sure virtual bases are initialized in dfs ordering.
9028 * search.c (get_vbase_types): Simplify and make readable.
9029
9030Thu Mar 17 12:01:10 1994 Jason Merrill (jason@deneb.cygnus.com)
9031
9032 * parse.y: s/ typename / type_id /g
9033
9034Wed Mar 16 17:42:52 1994 Kung Hsu (kung@mexican.cygnus.com)
9035
9036 * parse.y (typespec): add SCOPE TYPENAME for global scoped
9037 type. e.g. ::B x.
9038
9039 * decl.c (complete_array_type): fix a bug that in -pendantic
9040 mode even there's no initializer, it will continue to build
9041 default index.
9042
9043Wed Mar 16 17:43:07 1994 Jason Merrill (jason@deneb.cygnus.com)
9044
9045 * parse.y (direct_notype_declarator): Add PTYPENAME rule, remove
9046 all of the scoped PTYPENAME rules.
9047
6060a796 9048Wed Mar 16 16:39:02 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9049
9050 * init.c (build_offset_ref): The value of A::typedef_name is
9051 always the TYPE_DECL, and never an error.
9052
9053Tue Mar 15 20:02:35 1994 Jason Merrill (jason@deneb.cygnus.com)
9054
9055 * search.c (get_base_distance_recursive): Two binfos can only
9056 represent the same object if they are both via_virtual.
9057
9058 * class.c (finish_base_struct): Check vbases for ambiguity, too.
9059
9060 * search.c (get_vbase_types): Accept binfo argument, too.
9061
9062Tue Mar 15 19:22:05 1994 Kung Hsu (kung@mexican.cygnus.com)
9063
9064 * decl.c (complete_array_type): complete TYPE_DOMAIN of the
9065 initializer also, because back-end requires it.
9066
9067Tue Mar 15 15:33:31 1994 Jason Merrill (jason@deneb.cygnus.com)
9068
9069 * error.c (dump_expr): Support member functions (which show up as
9070 OFFSET_REFs).
9071
6060a796 9072Mon Mar 14 16:24:36 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9073
9074 * init.c (build_new): Set the return type of multidimensional
9075 news correctly.
9076
9077Fri Mar 11 15:35:39 1994 Kung Hsu (kung@mexican.cygnus.com)
9078
9079 * call.c (build_method_call): if basetype not equal to type
9080 of the instance, use the type of the instance in building
9081 destructor.
9082
9083Thu Mar 10 17:07:10 1994 Kung Hsu (kung@mexican.cygnus.com)
9084
9085 * parse.y (direct_notype_declarator): add push_nested_type for
9086 'template_type SCOPED_NAME' rule.
9087
9088Tue Mar 8 00:19:58 1994 Jason Merrill (jason@deneb.cygnus.com)
9089
9090 * parse.y (parm): Add typed_declspec1 {absdcl, epsilon} rules.
9091
9092Sat Mar 5 04:47:48 1994 Jason Merrill (jason@deneb.cygnus.com)
9093
9094 * parse.y (regcast_or_absdcl): New nonterminal to implement late
9095 reduction of constructs like `int ((int)(int)(int))'.
9096 (cast_expr): Use it.
9097 (sub_cast_expr): Everything that can come after a cast.
9098 (typed_declspecs1): typed_declspecs that are not typed_typespecs.
9099 (direct_after_type_declarator): Lose PAREN_STAR_PAREN rule.
9100 (direct_abstract_declarator): Replace '(' parmlist ')' rule with
9101 '(' complex_parmlist ')' and regcast_or_absdcl.
9102 (parmlist): Split
9103 (complex_parmlist): Parmlists that are not also typenames.
9104 (parms_comma): Enabler.
9105 (named_parm): A parm that is not also a typename. Use declarator
9106 rather than dont_see_typename abs_or_notype_decl. Expand
9107 typed_declspecs inline.
9108 (abs_or_notype_decl): Lose.
9109 (dont_see_typename): Comment out.
9110 (bad_parm): Break out abs_or_notype_decl into two rules.
9111
9112Fri Mar 4 18:22:39 1994 Jason Merrill (jason@deneb.cygnus.com)
9113
9114 * decl2.c (reparse_decl_as_casts): New function to change parse
9115 nodes for `(int)(int)(int)' from "function taking int and returning
9116 function taking int and returning function taking int" to "... cast
9117 to int, cast to int, cast to int".
9118
9119 * decl2.c (reparse_decl_as_expr): Recursive function to change
9120 parse nodes for `A()()' from "function returning function returning
9121 A" to "A().operator()".
9122
9123 * parse.y (primary): Replace `typespec LEFT_RIGHT' rule with
9124 `typespec fcast_or_absdcl' rule.
9125 (fcast_or_absdcl): New nonterminal to implement late reduction of
9126 constructs like `A()()()()'.
9127 (typename): Replace `typespec absdcl1' rule with
9128 `typespec direct_abstract_declarator' rule.
9129 (direct_abstract_declarator): Replace `LEFT_RIGHT type_quals' rule
9130 with `fcast_or_absdcl type_quals' rule.
9131
6060a796 9132Fri Mar 4 16:18:03 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9133
9134 * tree.c (lvalue_p): Improve OFFSET_REF handling, so that it
9135 matches Section 5.5.
9136
9137Fri Mar 4 14:01:59 1994 Jason Merrill (jason@deneb.cygnus.com)
9138
9139 * error.c (dump_type_prefix): Don't print basetype twice for
9140 pmfs.
9141
6060a796 9142Fri Mar 4 13:24:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9143
9144 * typeck.c (convert_arguments): Handle setHandler(A::handlerFn)
9145 so that it is like setHandler(&A::handlerFn). Cures an `invalid
9146 lvalue in unary `&''.
9147
9148Fri Mar 4 11:15:59 1994 Jason Merrill (jason@deneb.cygnus.com)
9149
9150 * gxxint.texi (Copying Objects): New section discussing default
9151 op= problems with virtual inheritance.
9152
9153 * decl2.c (grokoptypename): Just does grokdeclarator and
9154 build_typename_overload, since the parser can't call grokdeclarator
9155 directly.
9156
9157 * method.c (build_typename_overload): Set IDENTIFIER_GLOBAL_VALUE
9158 and TREE_TYPE on generated identifiers.
9159
9160 * decl.c (grokdeclarator): Don't deal with TYPE_EXPRs anymore.
9161
9162 * parse.y (parm): Convert `const char *' to `__opPCc' here.
9163
9164 * error.c (dump_decl): Say sorry rather than my_friendly_aborting
9165 if we can't figure out what to do.
9166 (dump_type*): Ditto.
9167
9168 * typeck2.c (build_m_component_ref): 'component' is an expr, not
9169 a decl. Also move the IS_AGGR_TYPE check after the stripping of
9170 REFERENCE_TYPE.
9171
6060a796 9172Fri Mar 4 04:46:05 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9173
9174 * call.c (build_method_call): Handle b->setHandler(A::handlerFn)
9175 so that it is like b->setHandler(&A::handlerFn). Cures an `invalid
9176 lvalue in unary `&''.
9177
9178Thu Mar 3 12:38:15 1994 Jason Merrill (jason@deneb.cygnus.com)
9179
9180 * parse.y: Add precedence specification for START_DECLARATOR.
9181 (type_quals): Move before primary.
9182 (typename): Move before typed_declspecs, add 'typespec absdcl1' rule.
9183
9184 * decl2.c (grokoptypename): Lose.
9185
9186 * decl.c (grokdeclarator): Parse TYPE_EXPRs in the initial scan,
9187 rather than waiting until later.
9188
9189Wed Mar 2 14:12:23 1994 Jason Merrill (jason@deneb.cygnus.com)
9190
9191 * parse.y (unary_expr): Use 'typename' in 'new' rules, rather
9192 than expanding it inline.
9193 (typename): Expand empty option of (former) absdcl inline.
9194 (abs_or_notype_decl): Ditto.
9195 (absdcl): Lose empty rule.
9196 (conversion_declarator): New nonterminal for 'typename' of 'operator
9197 typename'.
9198 (operator_name): Use it instead of absdcl.
9199
9200 * parse.y: Add precedence declarations for SCOPED_TYPENAME,
9201 TYPEOF, and SIGOF.
9202 (typed_declspecs): Accept typed_typespecs, rather than typespec
9203 directly. Add rules with reserved_typespecquals.
9204 (reserved_declspecs): Don't accept typespecqual_reserved at the
9205 beginning of the list. The typed_declspecs rule will deal with this
9206 omission.
9207 (declmods): Accept nonempty_type_quals, rather than TYPE_QUAL
9208 directly.
9209
9210 * parse.y (direct_notype_declarator,
9211 direct_after_type_declarator, direct_abstract_declarator): Split up
9212 the declarator1 nonterminals to match the draft standard and avoid
9213 ambiguities.
9214 (new_type_id, new_declarator, direct_new_declarator,
9215 new_member_declarator): New nonterminals to implement the subset of
9216 'typename' allowed in new expressions.
9217 (unary_expr): Use new_type_id instead of typename.
9218 (after_type_declarator1, absdcl1): Fix semantics of member pointers.
9219 (abs_member_declarator, after_type_member_declarator): Lose.
9220
9221 * parse.y (absdcl1): Don't require parens around
9222 abs_member_declarator.
9223 (abs_member_declarator): Lose see_typename from rules.
9224 (after_type_member_declarator): Ditto.
9225
9226 * tree.c (get_identifier_list): New function, containing code
9227 previously duplicated in get_decl_list and list_hash_lookup_or_cons.
9228 (get_decl_list): Use it.
9229 (list_hash_lookup_or_cons): Ditto.
9230
9231 * parse.y (typed_declspecs, declmods): It's not necessary to hash
9232 the declspecs on class_obstack, so don't. This way typed_typespecs
9233 can reduce to typed_declspecs.
9234
9235Wed Mar 2 14:29:18 1994 Jason Merrill (jason@cygnus.com)
9236
9237 * cvt.c (build_up_reference): If we aren't checking visibility,
9238 also allow base->derived conversions.
9239
9240Mon Feb 28 15:14:29 1994 Per Bothner (bothner@kalessin.cygnus.com)
9241
9242 * typeck.c (build_c_cast): Remove bogus hack when converting
9243 to a reference type.
9244
9245 * cp-tree.h (lang_decl::vbase_init_list, DECL_VBASE_INIT_LIST):
9246 Removed, not used.
9247 (lang_stype::methods, lang_decl::next_method): New fields.
9248 (CLASSTYPE_METHODS, DECL_NEXT_METHOD): New macros.
9249 * decl.c (duplicate_decls): Preserve DECL_NEXT_METHOD.
9250
9251 * cp-tree.h, decl2.c (flag_vtable_hack): New flag.
9252 * decl2.c (finish_vtable_vardecl): If flag_vtable_hack,
9253 and !CLASSTYPE_INTERFACE_KNOWN, try to use the presence of
9254 a non-inline virtual function to control emitting of vtables.
9255 * class.c (finish_struct): Build CLASSTYPE_METHODS list.
9256 * search.c (build_vbase_vtables_init): Don't assemble_external
9257 (yet) if flag_vtable_hack.
9258 * class.c (build_vfn_ref): Ditto.
9259
9260Mon Feb 28 14:54:13 1994 Jason Merrill (jason@deneb.cygnus.com)
9261
9262 * parse.y (component_decl): Don't include "typed_declspecs
9263 declarator ';'" speedup, since it breaks enums.
9264
9265Fri Feb 25 15:43:44 1994 Per Bothner (bothner@kalessin.cygnus.com)
9266
9267 * class.c (finish_struct): Minor optimization for building
9268 fn_fields list.
9269
9270Fri Feb 25 15:23:42 1994 Jason Merrill (jason@deneb.cygnus.com)
9271
9272 * decl.c (start_function): Fix detection of function overloading.
9273
6060a796 9274Thu Feb 24 22:26:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9275
9276 * lex.c (check_newline): #pragma interface can take a string
9277 argument, just like #pragma implementation. #pragma implementation
9278 checks for garbage on the line, line #pragma interface does. Main
9279 input files do not auto implement like named files, #pragma
9280 implementation must be used explicitly.
9281
9282Thu Feb 24 17:09:01 1994 Jason Merrill (jason@deneb.cygnus.com)
9283
9284 * parse.y (components): Handle list of one again.
9285 (notype_components): Ditto.
9286 (after_type_declarator1): Take maybe_raises out again.
9287
9288 * gxxint.texi (Parser): Document additional r/r conflict.
9289
9290Wed Feb 23 14:42:55 1994 Jason Merrill (jason@deneb.cygnus.com)
9291
9292 * gxxint.texi (Parser): Add node.
9293
9294 * Makefile.in (stamp-parse): Update expected conflict count.
9295
9296 * parse.y (various): Replace "declmods declarator" with "declmods
9297 notype_declarator". The comment saying that "declmods declarator ';'"
9298 corresponds to "int i;" was wrong; it corresponds to "const i;".
9299 (component_decl): Add "typed_declspecs declarator ';'" rule; this
9300 *does* correspond to "int i;". Change "declmods components" to
9301 "declmods notype_components".
9302 (components): Don't deal with a list of one anymore.
9303 (notype_components): New nonterminal, corresponds to notype_declarator.
9304 ({after_,no}type_component_decl{,0}): More new nonterminals.
9305 ({after_,no}type_declarator): Fold in START_DECLARATOR token.
9306 Eliminates four reduce/reduce conflicts.
9307
9308 (expr): Depend on nontrivial_exprlist instead of nonnull_exprlist.
9309 (nontrivial_exprlist): New nonterminal: A list of at least two
9310 expr_no_commas's.
9311 (nonnull_exprlist): Depend on nontrival_exprlist.
9312 Eliminates four reduce/reduce conflicts.
9313
9314 (named_class_head): Move intermediate code block into separate
9315 nonterminal so that we can stick %prec EMPTY on it.
9316
9317 Add more %prec EMPTY's to eliminate remaining shift/reduce
9318 conflicts.
9319
9320 (after_type_declarator): Add maybe_raises to fndecl rules.
9321 (after_type_declarator_no_typename): Remove.
9322 For correctness.
9323
9324 Document remaining reduce/reduce conflicts.
9325
9326Tue Feb 22 12:10:32 1994 Jason Merrill (jason@deneb.cygnus.com)
9327
9328 * search.c (get_base_distance): Only bash BINFO_INHERITANCE_CHAIN
9329 (TYPE_BINFO (type)) if we care about the path.
9330
9331 * tree.c (lvalue_p): A COND_EXPR is an lvalue if both of the
9332 options are.
9333
6060a796 9334Mon Feb 21 19:59:40 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9335
9336 * Makefile.in (mostlyclean): lex.c is a source file, don't
9337 remove.
9338
9339Sat Feb 19 01:27:14 1994 Jason Merrill (jason@deneb.cygnus.com)
9340
9341 * parse.y: Eliminate 20 shift/reduce conflicts.
9342
9343Fri Feb 18 11:49:42 1994 Jason Merrill (jason@deneb.cygnus.com)
9344
9345 * pt.c (type_unification): Add subr argument; if set, it means
9346 that we are calling ourselves recursively, so a partial match is OK.
9347 (unify): Support pointers to methods and functions.
9348 (tsubst): Support method pointers.
9349 * decl.c (build_ptrmemfunc_type): No longer static, so that
9350 tsubst can get at it.
9351
9352 * init.c (is_aggr_typedef): Pretend template type parms are
9353 aggregates.
9354 * decl2.c (build_push_scope): If cname refers to a template type
9355 parm, just grin and nod.
9356
9357 * call.c (build_overload_call_real): Pass subr argument to
9358 type_unification.
9359 * pt.c (do_function_instantiation): Ditto.
9360 * class.c (instantiate_type): Ditto.
9361
9362 * search.c (get_base_distance): If BINFO is a binfo, use it and
9363 don't mess with its BINFO_INHERITANCE_CHAIN.
9364
9365 * cvt.c (convert_to_reference): Fix temporary generation.
9366 If ambiguous, return error_mark_node.
9367
9368 * init.c (build_new): Put back some necessary code.
9369
9370Thu Feb 17 15:39:47 1994 Jason Merrill (jason@deneb.cygnus.com)
9371
9372 * init.c (build_new): Deal with array types properly.
9373
9374 * search.c (get_binfo): Become a shell for get_base_distance.
9375 (get_binfo_recursive): Lose.
9376 (get_base_distance_recursive): Find the path to the via_virtual base
9377 that provides the most access.
9378 (get_base_distance): Ditto.
9379
9380 * parse.y (explicit_instantiation): Syntax is 'template class
9381 A<int>', not 'template A<int>'.
9382
9383 * typeck.c (convert_for_initialization): Remove bogus warning.
9384
9385 * parse.y (datadef): Revert patch of Oct 27.
9386
9387Thu Feb 17 15:12:29 1994 Per Bothner (bothner@kalessin.cygnus.com)
9388
9389 * class.c (build_vfn_ref): Cast delta field to ptrdiff_type_node,
9390 rather than integer_type_node. Does wonders for the Alpha.
9391
9392Thu Feb 17 13:36:21 1994 Jason Merrill (jason@deneb.cygnus.com)
9393
9394 * decl.c (build_ptrmemfunc_type): Make sure that the pmf type
9395 goes onto the same obstack as its target type.
9396
9397Wed Feb 16 00:34:46 1994 Jason Merrill (jason@deneb.cygnus.com)
9398
9399 * cvt.c (convert_to_reference): If converting via constructor
9400 on local level, go back to build_cplus_new approach.
9401
9402 * tree.c (build_cplus_new): If with_cleanup_p, set cleanup slot
9403 to error_mark_node to prevent expand_expr from building a cleanup
9404 for this variable.
9405
9406 * lex.c (default_assign_ref_body): Return *this from the memcpy
9407 version, too.
9408
9409 * decl.c (grok_reference_init): Just return if called with
9410 error_mark_node, don't worry about initializing non-const reference
9411 with temporary.
9412
9413 * cvt.c (convert_to_reference): Do the right thing for
9414 non-aggregate reference conversions, pedwarn when generating a
9415 non-const reference to a temporary.
9416
9417 * class.c (finish_struct): TYPE_HAS_COMPLEX_{INIT,ASSIGN}_REF and
9418 TYPE_NEEDS_CONSTRUCTING all depend on TYPE_USES_VIRTUAL_BASECLASSES
9419 again.
9420
9421Tue Feb 15 19:47:19 1994 Jason Merrill (jason@deneb.cygnus.com)
9422
9423 * decl.c (grok_reference_init): Pawn off a lot of the work on
9424 convert_to_reference. Generally do the right thing.
9425
9426 * cvt.c (convert_to_reference): Conform to the initial comment;
9427 i.e. don't create temps if decl != error_mark_node. Handle
9428 cleanups better for temps that do get created. Don't pretend
9429 that we can use an 'A' to initialize a 'const double &' just by
9430 tacking on a NOP_EXPR. Support LOOKUP_SPECULATIVELY.
9431
9432 * call.c (build_method_call): Set TREE_HAS_CONSTRUCTOR on
9433 constructor calls.
9434
9435Mon Feb 14 14:50:17 1994 Jason Merrill (jason@deneb.cygnus.com)
9436
9437 * decl.c (grok_reference_init): Make a temporary for initializing
9438 const reference from constant expression.
9439
9440Mon Feb 14 11:31:31 1994 Per Bothner (bothner@kalessin.cygnus.com)
9441
9442 * cp-tree.h, decl.c (set_identifier_local_value): Deleted function.
9443 * decl.c (pushdecl): Define decl in correct binding_level
9444 (which isn't always the inner_binding_level).
9445
9446 * cvt.c (build_up_reference): Don't ever call expand_aggr_init.
9447 It's ugly, and I don't think it's the right thing to do.
9448
9449 * cp-tree.h, class.c, decl.c, decl2.c, sp/search.c:
9450 Remove NEW_CLASS_SCOPING, assuming it is always 1.
9451 * decl.c (pop_decl_level): Removed; manually inlined.
9452
9453Sun Feb 13 19:04:56 1994 Jason Merrill (jason@deneb.cygnus.com)
9454
9455 * class.h (candidate): Add basetypes field.
9456
9457 * call.c (build_method_call): Do access checking after choosing a
9458 function, not before.
9459
9460 * Makefile.in (cvt.o, call.o, method.o): Depend on class.h.
9461 (mostlyclean): Remove ../cc1plus.
9462
9463Fri Feb 11 11:52:26 1994 Jason Merrill (jason@deneb.cygnus.com)
9464
9465 * class.c (finish_struct): Don't allow adjusting access to a field
9466 of a base class if a local field has the same name.
9467
9468 * error.c (dump_type_prefix): Output basetype for METHOD_TYPEs.
9469
9470hu Jan 13 17:55:51 EST 1994 Gnanasekaran Swaminathan (gs4t@virginia.edu)
9471
63718c49 9472 * cp-tree.h (DESTRUCTOR_NAME_P): do not confuse AUTO_TEMP names
7177d104
MS
9473 with destructor names when either NO_DOLLAR_IN_LABEL or
9474 NO_DOT_IN_LABEL are not defined.
9475
9476 Now `template <class T, T f(T&), const T*> class A {...}' works.
9477
9478 * pt.c (grok_template_type): substitute template parm types
9479 with actual types in complex type as well.
9480 (coerce_template_parms): update the grok_template_type ()
9481 function call.
9482
9483 * pt.c (tsubst): Traverse method list using DECL_CHAIN.
9484
9485 * decl.c (grok_op_properties): Allow operator++/-- to have
9486 default arguments.
9487
9488 * typeck2.c (store_init_value): Don't abort when called to
9489 initialize a type that needs constructing with a CONSTRUCTOR.
9490
9491 * init.c (expand_aggr_init_1, CONSTRUCTOR case): If
9492 store_init_value fails, build and expand an INIT_EXPR. If
9493 store_init_value succeeds, call expand_decl_init.
9494
6060a796 9495Fri Feb 11 02:49:23 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9496
9497 * class.c (build_vbase_path): Use complete_type_p instead of
9498 resolves_to_fixed_type_p to determine if the virtual bases are in
9499 their right place for the type of expr. Cures problem of thinking a
9500 virtual base class is one place, when it is in fact someplace else.
9501
6060a796 9502Fri Feb 11 00:26:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9503
9504 * init.c (resolve_offset_ref): Make sure we first convert to
9505 intermediate type, if given, when dealing with members off `this'.
9506 Solves an incorrrect `type `foo' is not a base type for type
9507 `multiple'' when it is infact, a base type.
9508
6060a796 9509Thu Feb 10 21:49:35 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9510
9511 * class.c (modify_other_vtable_entries): Use get_binfo, instead
9512 of binfo_value. Solves problem with compiler giving a `base class
9513 `B' ambiguous in binfo_value (compiler error)' on complex MI
9514 herarchies, when a virtual function is first defied in a virtual
9515 base class.
9516
6060a796 9517Thu Feb 10 17:19:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9518
9519 * class.c (build_vbase_path): Don't complain about ambiguous
9520 intermediate conversion when converting down to a virtual base
9521 class, even if they might seem to be ambiguous.
9522
9523Thu Feb 10 12:18:26 1994 Jason Merrill (jason@deneb.cygnus.com)
9524
9525 * typeck2.c (build_functional_cast): #if 0 out constructor
9526 inheritance code, improve error messages.
9527
9528 * class.c (finish_base_struct): Complain about base with only
9529 non-default constructors in derived class with no constructors.
9530
9531 * decl.c (grokdeclarator): Fix detection of virtual new/delete.
9532
6060a796 9533Wed Feb 9 22:02:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9534
9535 * search.c (build_mi_virtuals, add_mi_virtuals,
9536 report_ambiguous_mi_virtuals): Removed unneeded code.
9537 * class.c (finish_struct_bits): Ditto.
9538
9539Wed Feb 9 11:27:17 1994 Jason Merrill (jason@deneb.cygnus.com)
9540
9541 * pt.c (end_template_instantiation): Push decl before
9542 pop_from_top_level.
9543
9544 * typeck2.c (build_m_component_ref): Make sure datum is of
9545 aggregate type.
9546
9547 * init.c (get_type_value): New function, returns
9548 IDENTIFIER_TYPE_VALUE or IDENTIFIER_CLASS_TYPE_VALUE or NULL_TREE.
9549
9550 * call.c (build_method_call): Don't die on call to destructor for
9551 non-type.
9552
9553 * decl.c (grokdeclarator): Complain about virtual op new and op
9554 delete, make static virtuals unvirtual instead of unstatic.
9555
9556 * typeck.c (build_c_cast): Also call default_conversion on
9557 methods.
9558
9559 * decl.c (grokdeclarator): Don't complain about anonymous
9560 bitfields.
9561
9562 * parse.y (simple_stmt, for loops): Move the continue point after
9563 the cleanups.
9564
9565 * class.c (finish_struct): Fix setting of
9566 TYPE_HAS_COMPLEX_INIT_REF.
9567
9568Tue Feb 8 13:21:40 1994 Jason Merrill (jason@deneb.cygnus.com)
9569
9570 * init.c (build_new): Deal with `new double (1)'.
9571
9572 * class.c (finish_struct): TYPE_HAS_COMPLEX_*_REF are supersets of
9573 TYPE_HAS_REAL_*_REF, but TYPE_HAS_COMPLEX_INIT_REF is independent of
9574 TYPE_NEEDS_CONSTRUCTING.
9575
9576 * decl.c (duplicate_decls): Propagate access decls.
9577
9578 * typeck2.c (process_init_constructor): Accept empty_init_node
9579 for initializing unions.
9580
9581 * class.c, lex.c, cp-tree.h: Use
9582 TYPE_HAS_COMPLEX_ASSIGN_REF where TYPE_HAS_REAL_ASSIGN_REF was used
9583 before, use TYPE_HAS_COMPLEX_INIT_REF for TYPE_NEEDS_CONSTRUCTING in
9584 some places.
9585
9586 * decl.c (finish_decl): Don't complain about uninitialized const
9587 if it was initialized before.
9588
9589Mon Feb 7 18:12:34 1994 Jason Merrill (jason@deneb.cygnus.com)
9590
9591 * lex.c (default_assign_ref_body): Don't deal with vbases for
9592 now.
9593
9594 * decl.c (finish_decl): Fix reversed logic for objects and other
9595 things that need to be constructed but have no initializer.
9596
9597 * class.c (finish_struct): Don't set TYPE_HAS_* flags that are
9598 set by grok_op_properties or finish_decl.
9599
9600 * decl.c: Don't warn about extern redeclared inline unless
9601 -Wextern-inline is given.
9602 * decl2.c (lang_decode_option): Ditto.
9603 * cp-tree.h: Ditto.
9604
9605Mon Feb 7 17:29:24 1994 Per Bothner (bothner@kalessin.cygnus.com)
9606
9607 * decl.c (pushdecl_with_scope): Fix thinko. Add forward
9608 declaration.
9609
9610 * decl.c (pushdecl_with_scope): New function.
9611 * decl.c (pushdecl_top_level): Use new function.
9612 * decl.c (pushtag): Initialize newdecl.
9613 * decl.c (pushtag): Push new type decl into correct scope.
9614
9615Mon Feb 7 14:42:03 1994 Jason Merrill (jason@deneb.cygnus.com)
9616
9617 * call.c, cvt.c, init.c, search.c, cp-tree.h:
9618 Eradicate LOOKUP_PROTECTED_OK.
9619
9620Mon Feb 7 13:57:19 1994 Per Bothner (bothner@kalessin.cygnus.com)
9621
9622 * decl.c (pushtag, xref_tag), cp-tree.h: Add extra parameter
9623 'globalize' to signify implicit declarations.
9624 * decl.c (globalize_nested_type, maybe_globalize_type): Removed.
9625 * decl.c (set_identifier_type_value_with_scope): New function.
9626 * decl.c (set_identifier_local_value): Simplify.
9627 * spew.c (yylex, do_addr): Modify to return a _DEFN if a
9628 forward declaration (followed by ';' and not preceded by 'friend').
9629 * class.c, decl.c, except.c, init.c, parse.y,
9630 pt.c, search.c: Add new argument to calls to xref_tag and
9631 pushtag.
9632
9633Mon Feb 7 00:22:59 1994 Jason Merrill (jason@deneb.cygnus.com)
9634
9635 * cp-tree.h (ACCESSIBLY_UNIQUELY_DERIVED_P): New macro, means what
9636 ACCESSIBLY_DERIVED_FROM_P meant before.
9637 (ACCESSIBLY_DERIVED_FROM_P): Now disregards ambiguity.
9638
9639 * cvt.c (build_up_reference): Call get_binfo with PROTECT == 1.
9640
9641 * search.c (get_base_distance_recursive): Members and friends of
9642 a class X can implicitly convert an X* to a pointer to a private or
9643 protected immediate base class of X.
9644 (get_binfo_recursive): Ditto.
9645 (get_base_distance): Ignore ambiguity if PROTECT < 0.
9646 (get_binfo): Lose multiple values of PROTECT.
9647 (compute_access): Protected is OK if the start of the
9648 search is an accessible base class of current_class_type.
9649
9650 * method.c (build_opfncall): Do check access on operator new here.
9651
9652 * decl.c (finish_function): Don't check access on operator new
9653 here.
9654
9655Sun Feb 6 14:06:58 1994 Jason Merrill (jason@deneb.cygnus.com)
9656
9657 * decl.c (xref_tag): The base of a derived struct is NOT always
9658 public. Duh.
9659
9660 * pt.c (do_explicit_instantiation): New function, called from
9661 parser to do explicit function instantiation.
9662 (type_unification): Allow the args list to be terminated with
9663 void_list_node.
9664 (do_pending_expansions): Look at i->interface for non-member
9665 templates.
9666
9667 * parse.y (datadef): Move explicit_instantiation here.
9668 (structsp): From here.
9669 (datadef): Complain about `int;'.
9670
9671Sun Feb 6 12:33:18 1994 Per Bothner (bothner@kalessin.cygnus.com)
9672
9673 * pt.c (end_template_instantiation), cp-tree.h: Remove unused
9674 second parameter, and simplify first from a TREE_LIST where
9675 we only care about its TREE_VALUE to just the value (an IDENTIFIER).
9676 * pt.c (instantiate_member_templates): Simplify argument list
9677 from a TREE_LIST to just an IDENTIFIER.
9678 * lex.c (yyprint): PRE_PARSED_CLASS_DECL is now just an IDENTIFIER.
9679 * parse.y (template_instantiate_once): Simplify accordingly.
9680 * decl.c (inner_binding_level): New. Use various places to
9681 simplify.
9682
9683Sun Feb 6 02:49:37 1994 Jason Merrill (jason@deneb.cygnus.com)
9684
9685 * typeck2.c (build_functional_cast): int() -> int(0).
9686
9687Sat Feb 5 00:53:21 1994 Jason Merrill (jason@deneb.cygnus.com)
9688
9689 * class.c (finish_struct): Don't do a bitwise copy for op= if the
9690 class has a virtual function table.
9691
9692 * typeck.c (convert_for_initialization): Restore warnings about
9693 not using defined op=. Should really be my_friendly_aborts, I
9694 s'pose.
9695
9696Fri Feb 4 14:21:00 1994 Jason Merrill (jason@deneb.cygnus.com)
9697
9698 * class.c (finish_struct): Tidy up conditions for doing bitwise
9699 copies of objects.
9700
9701 * decl.c (build_default_constructor): #if 0 out.
9702
9703 * *: Eradicate TYPE_GETS_{ASSIGNMENT,ASSIGN_REF,CONST_ASSIGN_REF,
9704 CONST_INIT_REF}, TYPE_HAS_REAL_CONSTRUCTOR.
9705
9706 * decl.c (grokdeclarator): Don't return void_type_node for
9707 friends being defined here.
9708
9709 * init.c (perform_member_init): Only do the init if it's useful.
9710
9711 * lex.c (default_copy_constructor_body): If we don't need to do
9712 memberwise init, just call __builtin_memcpy.
9713 (default_assign_ref_body): Ditto.
9714
9715 * decl.c (grokdeclarator): If friendp && virtualp, friendp = 0.
9716
6060a796 9717Fri Feb 4 13:02:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9718
9719 * lex.c (reinit_parse_for_method, cons_up_default_function):
9720 Don't give warn_if_unknown_interface warning when it came from a
9721 system header file.
9722 * pt.c (end_template_decl, instantiate_template): Ditto.
9723 * decl.c (start_decl): Ditto.
9724
9725Fri Feb 4 00:41:21 1994 Jason Merrill (jason@deneb.cygnus.com)
9726
9727 * decl.c (grokdeclarator): Don't try to set TYPE_WAS_ANONYMOUS on
9728 enums.
9729
9730 * decl2.c (constructor_name_full): Use IS_AGGR_TYPE_CODE instead of
9731 IS_AGGR_TYPE, since we don't know it's a type.
9732
9733Thu Feb 3 11:36:46 1994 Jason Merrill (jason@deneb.cygnus.com)
9734
9735 * decl.c (grokdeclarator): Don't complain about anonymous unions.
9736
9737 * cp-tree.h (TYPE_WAS_ANONYMOUS): This struct was originally
9738 anonymous, but had a name given to it by a typedef.
9739
9740 * decl.c (grokdeclarator): When renaming an anonymous struct, set
9741 TYPE_WAS_ANONYMOUS.
9742
9743 * decl2.c (constructor_name_full): Use TYPE_WAS_ANONYMOUS.
9744
9745 * cp-tree.h (DECL_UNDEFINED_FRIENDS): #if 0 out.
9746
9747 * init.c (xref_friend): Don't set up DECL_UNDEFINED_FRIENDS.
9748 (embrace_waiting_friends): Don't use DECL_UNDEFINED_FRIENDS.
9749
9750 * decl.c (grokdeclarator): Set TYPE_NESTED_NAME properly on nested
9751 anonymous structs that get typedef'd.
9752
9753 * decl.c (grokdeclarator): Always return void_type_node for
9754 friends.
9755
9756 * error.c (dump_function_decl): Don't use DECL_CLASS_CONTEXT for
9757 friends.
9758 (dump_function_decl): Don't print out default args for
9759 a function used in an expression.
9760
9761 * decl.c (grokdeclarator): Give error on abstract declarator used
9762 in an invalid context (i.e. `void (*)();').
9763
9764 * error.c (cp_line_of): Support _TYPE nodes.
9765 (cp_file_of): Ditto.
9766
9767 * cvt.c (build_up_reference): Don't abort if passed a SAVE_EXPR;
9768 it can happen for the RHS of an assignment stmt where the LHS is
9769 a COND_EXPR.
9770
9771 * init.c (expand_aggr_init_1): Deal with bracketed initializer
9772 lists properly.
9773
9774 * class.c (finish_struct): Deal with enumerators and typedefs
9775 again.
9776
9777Wed Feb 2 11:30:22 1994 Jason Merrill (jason@deneb.cygnus.com)
9778
9779 * class.c (finish_struct): Tidy up loop over fields.
9780
9781 * errfn.c (cp_thing): Don't advance twice after a format.
9782
9783 * class.c (finish_struct): Complain about needing a constructor
9784 if a member has only non-default constructors, and don't try to
9785 generate a default constructor.
9786
9787 * decl.c (finish_decl): Also do the constructor thing if
9788 TYPE_NEEDS_CONSTRUCTING is set (for arrays).
9789
9790 * search.c (unuse_fields): New function: mark all fields in this
9791 type unused.
9792 (dfs_unuse_fields): Helper function.
9793
9794 * class.c (pushclass): If the new class is the same as the old
9795 class, still unuse the fields.
9796 (unuse_fields): Move to search.c.
9797
9798 * decl.c (grok_op_properties): Add friendp argument.
9799 (grokfndecl): Pass it.
9800 (start_method): Ditto.
9801
9802 * decl2.c (delete_sanity): Add use_global_delete parameter to catch
9803 ::delete calls.
9804
9805 * parse.y (unary_expr): Pass new parameter to delete_sanity.
9806
9807 * lex.c (default_copy_constructor_body): Don't choke if the union
9808 has no fields.
9809 (default_assign_ref_body): Ditto.
9810
9811 * call.c (compute_conversion_costs_ansi): Do the right thing for
9812 ellipsis matches.
9813
9814 * decl.c (push_to_top_level): Optimize.
9815
9816 * decl.c (start_function): Look for the lexical scope of a friend
9817 in DECL_CLASS_CONTEXT.
9818
9819 * init.c (do_friend): Set DECL_CLASS_CONTEXT on global friends.
9820
9821Tue Feb 1 15:59:24 1994 Jason Merrill (jason@deneb.cygnus.com)
9822
9823 * cp-tree.h (TREE_GETS_PLACED_NEW): New macro.
9824
9825 * init.c (init_init_processing): Don't assign BIN/BID to the
9826 IDENTIFIER_GLOBAL_VALUEs of their respective operators.
9827 (build_new): Check TREE_GETS_PLACED_NEW.
9828
9829 * decl.c (grok_op_properties): Don't set TREE_GETS_NEW for a decl of
9830 op new with placement, set TREE_GETS_PLACED_NEW.
9831
9832 * cp-tree.h (ANON_UNION_P): New macro. Applies to decls.
9833
9834 * class.c (finish_struct): Don't treat anonymous unions like
9835 other aggregate members. Do synthesize methods for unions without
9836 a name, since they may or may not be "anonymous unions".
9837
9838 * decl2.c (grok_x_components): Wipe out memory of synthesized methods
9839 in anonymous unions.
9840
9841 * lex.c (default_copy_constructor_body): Support unions.
9842 (default_assign_ref_body): Ditto.
9843
9844Mon Jan 31 12:07:30 1994 Jason Merrill (jason@deneb.cygnus.com)
9845
9846 * cp-tree.h: Fix documentation of LOOKUP_GLOBAL, add prototypes.
9847
9848 * error.c (args_as_string): New function (%A), like type_as_string
9849 except NULL_TREE -> "..."
9850
9851 * call.c (build_overload_call_real): Fix for new overloading.
9852
9853 * decl.c (grok_op_properties): Set all of the TYPE_OVERLOADS_* flags
9854 here.
9855
9856 * parse.y (operator_name): Instead of here.
9857
9858 * typeck2.c (build_functional_cast): Treat a TREE_LIST as a list
9859 of functions.
9860
9861 * call.c (build_overload_call_real): Support LOOKUP_SPECULATIVELY.
9862
9863 * method.c (build_opfncall): Don't need to massage return value
9864 any more, call build_overload_call with all flags.
9865
9866 * typeck.c (build_x_binary_op): Put back speculative call to
9867 build_opfncall.
9868 (build_x_unary_op): Ditto.
9869 (build_x_conditional_expr): Ditto.
9870
6060a796 9871Mon Jan 31 10:00:30 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9872
9873 * cvt.c (build_type_conversion_1): Change call to pedwarn into
9874 warning, and conditionalize upon warn_cast_qual.
9875
9876Fri Jan 28 11:48:15 1994 Jason Merrill (jason@deneb.cygnus.com)
9877
9878 * search.c (lookup_field): If xbasetype is a binfo, copy it to
9879 avoid clobbering its inheritance info.
9880
9881 * call.c (build_method_call): Don't overwrite basetype_path with
9882 TYPE_BINFO (inst_ptr_basetype) if they have the same type.
9883
9884 * search.c (compute_access): Fix handling of protected inheritance
9885 and friendship with the enclosing class.
9886
9887 * typeck2.c (store_init_value): Allow passing of TREE_CHAIN for
9888 initialization of arbitrary variable.
9889
9890 * typeck2.c (build_functional_cast): Only try calling a method if
9891 one exists.
9892
9893 * decl.c (grokdeclarator): Move handling of constructor syntax
9894 initialization into first loop for generality.
9895 (parmlist_is_random): Lose.
9896
9897 * lex.c (cons_up_default_function): Set TREE_PARMLIST on arguments
9898 to default function.
9899
9900Thu Jan 27 19:26:51 1994 Jason Merrill (jason@deneb.cygnus.com)
9901
9902 * decl.c (grokparms): Abort if we get called with something we don't
9903 expect.
9904
6060a796 9905Thu Jan 27 17:37:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9906
9907 * call.c (build_overload_call_real): Change argument complain to
9908 flags to match style of rest of code. Pass it down to
9909 build_function_call_real as necessary.
9910 * call.c (build_overload_call, build_overload_call_maybe): Change
9911 argument complain to flags to match style of rest of code.
9912 * cp-tree.h (build_function_call_real): Added fourth flags
9913 argument.
9914 * cvt.c (convert_to_reference): Only give warning messages, if
9915 LOOKUP_COMPLAIN is set.
9916 * typeck.c (build_x_function_call): Change simple complain
9917 argument to build_overload_call_maybe and build_overload_call, to
9918 LOOKUP_COMPLAIN to match style of rest of code.
9919 * typeck2.c (build_functional_cast): Ditto.
9920 * typeck.c (build_function_call_real): Add flags, so that we can
9921 not complain, if we don't want to complain. Complain about
9922 arguments, if we are complaining, otherwise don't.
9923 * typeck.c (build_function_call, build_function_call_maybe):
9924 Stick in flags argument.
9925 * typeck.c (build_x_binary_op, build_x_unary_op,
9926 build_x_conditional_expr, build_x_compound_expr): Follow style of
9927 build_x_indirect_ref, as it is more correct and more common.
9928
9929Thu Jan 27 14:36:20 1994 Jason Merrill (jason@deneb.cygnus.com)
9930
9931 * call.c (build_method_call): Don't check for being called with
9932 a pointer.
9933
9934 * decl2.c (finish_file): Don't play with DECL_CLASS_CONTEXT for the
9935 static initializer function.
9936
9937 * init.c (build_member_call): Use convert_force here, too.
9938
9939 * search.c (compute_access): Only treat static members specially
9940 if they are referenced directly.
9941
9942Wed Jan 26 18:28:14 1994 Jason Merrill (jason@deneb.cygnus.com)
9943
9944 * gxxint.texi (Access Control): New node.
9945
9946 * search.c (current_scope): New function; returns whichever of
9947 current_class_type and current_function_decl is the most nested.
9948 (compute_access): Total overhaul to make it clearer and more
9949 correct. Don't use the cache for now; in the only situation where
9950 it was used before, it gained nothing. This frees up three of the
9951 DECL_LANG_FLAGs for possible other use!
9952
9953 * cp-tree.h: #if 0 out DECL_PUBLIC & friends.
9954
9955 * typeck.c (build_component_ref_1): Don't check DECL_PUBLIC.
9956
9957 * call.c (build_method_call): Use convert_force to cast `this' --
9958 rely on the access checking for the method itself.
9959
9960 * init.c (is_friend): Do the nesting thing, handle types. I am
9961 my own friend.
9962 (is_friend_type): Become a shell for is_friend.
9963 (add_friend): Never stick in ctype.
9964 Why are the friendship functions in init.c, anyway?
9965
6060a796 9966Wed Jan 26 17:50:00 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9967
9968 * cvt.c (build_type_conversion_1): Don't conditionalize call to
9969 pedwarn upon pedantic.
9970
6060a796 9971Wed Jan 26 17:20:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9972
9973 * cvt.c (convert_to_reference): Add 8.4.3 checking so that one
9974 gets a warning if one tries to initialize a non-const & from a
9975 non-lvalue.
9976 * cvt.c (convert_to_reference): Use %P format for argument
9977 numbers in warnings.
9978
6060a796 9979Wed Jan 26 14:35:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9980
9981 * init.c (build_delete): Follow style in call.c to construct the
9982 virtual call to the desctructor, as that code is right. Fixes a
9983 problem of the compiler saying a pointer conversion is ambiguous.
9984
9985Wed Jan 26 11:28:14 1994 Jason Merrill (jason@deneb.cygnus.com)
9986
9987 * cp-tree.h (VTABLE_NAME_P): Change other occurrence of
9988 VTABLE_NAME_FORMAT to VTABLE_NAME.
9989
9990 * *: s/visibility/access/g
9991
9992Tue Jan 25 18:39:12 1994 Jason Merrill (jason@deneb.cygnus.com)
9993
9994 * typeck.c (build_modify_expr): Don't smash references if INIT_EXPR.
9995
6060a796 9996Tue Jan 25 13:54:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9997
9998 * init.c (build_delete): Back out Jan 17th & 18th pacthes, as
9999 they break libg++.
10000
10001Tue Jan 25 13:11:45 1994 Jason Merrill (jason@deneb.cygnus.com)
10002
10003 * decl.c (duplicate_decls): Fix pointer arithmetic.
10004
10005Mon Jan 24 15:50:06 1994 Chip Salzenberg (chip@fin.uucp)
10006
10007 [ cp-* changes propagated from c-* changes in 940114 snapshot ]
10008 * cp-parse.y (maybe_attribute): Allow multiple __attribute__
10009 clauses on a declaration.
10010
10011Mon Jan 24 17:06:23 1994 Jason Merrill (jason@deneb.cygnus.com)
10012
10013 * class.c (finish_struct): Do synthesize methods for anon
10014 structs, just not unions.
10015
10016Mon Jan 24 13:50:13 1994 Kung Hsu (kung@mexican.cygnus.com)
10017
10018 * decl.c (xref_tag): handle anonymous nested type.
10019 * decl.c (globalize_nested_type): add no globalize bit check.
10020 * spew.c (hack_more_ids) : templated nested decl not push top
10021 level.
10022
10023 * parse.y : get rid of 'goto do_components'. It is much better
10024 for debugging.
10025
10026 * decl.c (is_anon_name): get rid of the function and use the
10027 macro ANON_AGGRNAME_P.
10028 * pt.c : ditto.
10029
10030Fri Jan 21 14:06:02 1994 Jason Merrill (jason@deneb.cygnus.com)
10031
10032 * class.c (finish_struct): Don't synthesize any methods for
10033 anonymous structs/unions.
10034
10035 * typeck.c (build_modify_expr): Don't treat pmf's as class objects.
10036
10037Thu Jan 20 18:56:46 1994 Jason Merrill (jason@deneb.cygnus.com)
10038
10039 * method.c (build_opfncall): Call build_indirect_ref on
10040 synthesized instance for operator delete.
10041
10042 * pt.c (type_unification): Don't abort if called with a list of
10043 types in ARGS.
10044
10045 * class.c (instantiate_type): Deal with function templates.
10046
10047Thu Jan 20 16:55:35 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
10048
10049 * Makefile.in (CC): Default to cc not gcc.
10050
10051Thu Jan 20 13:47:54 1994 Jason Merrill (jason@deneb.cygnus.com)
10052
10053 * typeck.c (build_modify_expr): Call constructor if appropriate.
10054
10055 * decl.c (push_to_top_level): Clear out class-level bindings cache.
10056
10057Wed Jan 19 13:51:22 1994 Jason Merrill (jason@deneb.cygnus.com)
10058
10059 * call.c (resolve_scope_to_name): Work recursively (previously only
10060 looked down one level).
10061
10062 * lex.c (do_pending_inlines): If we're still dealing with the last
10063 batch of inlines, don't start working on a new one.
10064
10065 * Makefile.in (stamp-parse): Update conflict count.
10066 (TAGS): Fix.
10067
10068 * parse.y (explicit_instantiation): New rule; implements
10069 'template A<int>' syntax (though not 'template foo(int)' yet).
10070 (structsp): Add explicit_instantiation.
10071
10072Tue Jan 18 13:53:05 1994 Jason Merrill (jason@deneb.cygnus.com)
10073
10074 * class.c (finish_struct, etc.): Simplify decision to synthesize
10075 a destructor.
10076
10077 * call.c, class.c, cp-tree.h, decl.c, init.c,
10078 ptree.c, search.c, typeck.c, typeck2.c: Nuke
10079 TYPE_NEEDS_CONSTRUCTOR (change all calls to TYPE_NEEDS_CONSTRUCTING).
10080 * init.c (expand_aggr_init_1): Don't try non-constructor methods
10081 of initializing objects.
10082 (build_new): Don't try other methods if the constructor lookup fails.
10083
10084 * class.c (finish_base_struct): Set cant_have_default_ctor and
10085 cant_synth_copy_ctor properly.
10086 (finish_struct): Ditto.
10087
10088Mon Jan 17 13:58:18 1994 Jason Merrill (jason@deneb.cygnus.com)
10089
10090 * typeck.c (build_modify_expr_1): #if 0 out again.
10091 (build_modify_expr): #if 0 out memberwise init code again.
10092
10093 * lex.c (default_copy_constructor_body): Be const-correct.
10094 (default_assign_ref_body): Ditto.
10095
10096 * init.c (perform_member_init): Use TYPE_HAS_CONSTRUCTOR to decide
10097 whether or not to use it, rather than TYPE_NEEDS_CONSTRUCTING.
10098 (expand_aggr_init): Disable silent conversion from initializer list
10099 to list of args for a constructor.
10100
10101 * class.c (base_info): Lose needs_default_ctor.
10102 (finish_base_struct): Ditto.
10103 (finish_struct): Ditto.
10104
10105 * decl.c (init_decl_processing): Don't turn off flag_default_inline
10106 just because flag_no_inline is on.
10107 (finish_decl): Use TYPE_HAS_CONSTRUCTOR to decide to use
10108 constructor.
10109
10110 * class.c (finish_struct): Synthesize default ctor whenever
10111 allowed.
10112
10113 * Makefile.in (TAGS): Don't try to run etags on cp-parse.y.
10114
6060a796 10115Sat Jan 15 18:34:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10116
10117 * Makefile.in, configure: Handle the C++ front-end in a
10118 subdirectory.
10119 * cp-*: Move C++ front-end to cp/*.
10120
10121Fri Jan 14 14:09:37 1994 Jason Merrill (jason@deneb.cygnus.com)
10122
10123 * cp-typeck.c (build_function_call_real): Modify to match other
10124 instances of taking the address of the function.
10125
10126 * cp-class.c (finish_struct): Set TYPE_HAS_REAL_CONSTRUCTOR to 1 if
10127 there are non-synthesized constructors.
10128 Only set TYPE_NEEDS_CONSTRUCTOR if TYPE_HAS_REAL_CONSTRUCTOR.
10129 Always generate copy constructor if possible.
10130
10131 * cp-tree.h (lang_type): Add has_real_constructor bitfield.
10132 (TYPE_HAS_REAL_CONSTRUCTOR): Define.
10133
10134 * cp-lex.c (default_copy_constructor_body): Use init syntax
10135 for all bases.
10136
10137 * cp-type2.c (store_init_value): Only give error for initializer list
10138 if TYPE_HAS_REAL_CONSTRUCTOR.
10139
10140Thu Jan 13 15:38:29 1994 Jason Merrill (jason@deneb.cygnus.com)
10141
10142 * cp-tree.h (DECL_SYNTHESIZED): Add defn.
10143 (lang_decl): Add synthesized bitfield to decl_flags.
10144
10145 * cp-lex.c (cons_up_default_function): Use DECL_SYNTHESIZED to mark
10146 artificial methods, rather than a line # of 0.
10147
10148Fri Jan 14 18:25:29 1994 Kung Hsu (kung@mexican.cygnus.com)
10149
10150 * cp-decl (xref_tag): fix a bug in conflict type.
10151 * cp-parse.y : add SCOPED_NAME for uninstantiated template nested
10152 type reference.
10153 * cp-spew.c (yylex) : generated SCOPED_NAME token.
10154 * cp-lex.c (yyprint): handle SCOPED_NAME.
10155
6060a796 10156Fri Jan 14 17:00:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10157
10158 * cp-decl.c (pushdecl): Revert patch from Jan 11 19:33:03, as it is
10159 not right.
10160
10161Thu Jan 13 14:00:35 1994 Kung Hsu (kung@mexican.cygnus.com)
10162
10163 * cp-decl2.c (grok_x_components): fix a bug that enum type does not
10164 have type_flags.
10165
6060a796 10166Thu Jan 13 11:39:34 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10167
10168 Ensure that all vtable pointers are initialized with all the right
10169 values.
10170
10171 * cp-class.c (is_normal): Changed to reflect new meaning of
10172 CLASSTYPE_VFIELD_PARENT.
10173 * cp-class.c (maybe_fixup_vptrs): Use of
10174 CLASSTYPE_NEEDS_VIRTUAL_REINIT here is misguided. Use
10175 BINFO_MODIFIED instead.
10176 * cp-class.c (finish_struct): Changed to reflect new meaning of
10177 CLASSTYPE_VFIELD_PARENT.
10178 * cp-decl.c (get_binfo_from_vfield): Removed, unneeded now.
10179 * cp-decl.c (finish_function): Use init_vtbl_ptrs, instead of open
10180 coding it here.
10181 * cp-init.c (init_vfields): Changed name to init_vtbl_ptrs, and
10182 re-implement.
10183 * cp-init.c (emit_base_init): Use new name init_vtbl_ptrs.
10184 * cp-tree.h (vfield_parent): Changed to integer.
10185 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Changed docs to reflect new
10186 meaning.
10187 * cp-tree.h (init_vtbl_ptrs): Added init_vtbl_ptrs.
10188
10189Wed Jan 12 18:24:16 1994 Kung Hsu (kung@mexican.cygnus.com)
10190
10191 * cp-decl.c (xref_tag): re-implement globalize nested type.
10192 * cp-decl2.c (grok_x_components): ditto.
10193 * cp-parse.y: ditto.
10194 * cp-tree.h (lang_type): add no_globalize bit in type_flags.
10195
10196Wed Jan 12 14:08:09 1994 Jason Merrill (jason@deneb.cygnus.com)
10197
10198 * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC on friend
10199 decls with a definition attached.
10200
10201 * cp-typeck.c (build_modify_expr): Undo previous change in the case
10202 of INIT_EXPRs.
10203
10204Tue Jan 11 19:33:03 1994 Jason Merrill (jason@deneb.cygnus.com)
10205
10206 * cp-typeck.c (build_modify_expr): Replace code for generating
10207 assignment semantics for classes with an error.
10208 (build_modify_expr_1): #if 0 out.
10209
10210 * cp-decl.c (pushdecl): Patch bogus design of pushdecl
10211 behavior for overloaded functions (it doesn't push anything).
10212
10213 * cp-class.c (finish_struct): When generating default op=,
10214 set TYPE_HAS_ASSIGNMENT.
10215
6060a796 10216Mon Jan 10 18:48:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10217
10218 * cp-cvt.c (convert): Make {double, clashing enum} -> enum
10219 invalid.
10220 * cp-typeck.c (convert_for_assignment): Simplify.
10221 * cp-decl2.c (warn_enum_clash): Removed.
10222 * invoke.texi (-Wenum-clash): Removed.
10223 * toplev.c (-Wenum-clash): Removed.
10224
10225Mon Jan 10 17:48:37 1994 Kung Hsu (kung@mexican.cygnus.com)
10226
10227 * cp-decl.c (finish_decl): fix incorrect popclass call.
10228
10229 * cp-decl.c (is_anon_name): new function, check whether the name
10230 is anonymous name generated by compiler.
10231 * cp-decl.c (grokdeclarator): allow nested SCOPE_REF
10232 * cp-spew.c (hack_more_ids): handle nested type in template.
10233 * cp-parse.y : handle nested type reference in uninstantiated
10234 template.
10235 * cp-call.c (build_method_call): handle uninstantiated template
10236 case.
10237 * cp-pt.c (search_nested_type_in_tmpl): new function, search nested
10238 type in template.
10239 * cp-pt.c (lookup_nested_type_by_name): new function, lookup nested
10240 type by name.
10241 * cp-pt.c (tsubst): handle nested type search by name.
10242
10243Mon Jan 10 14:32:18 1994 Jason Merrill (jason@deneb.cygnus.com)
10244
10245 * cp-init.c (build_member_call): Propagate qualifiers to new type.
10246
10247 * cp-call.c (build_method_call): Count functions the new way.
10248
10249Fri Jan 7 19:03:26 1994 Jason Merrill (jason@deneb.cygnus.com)
10250
10251 * cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for nested classes,
10252 too.
10253
10254Tue Jan 4 16:45:51 1994 Kung Hsu (kung@cirdan.cygnus.com)
10255
10256 * cp-parse.y: change to handle whether to globalize nested class.
10257 * cp-decl.c(xref_tag, maybe_globalize_type): Ditto.
10258
10259Mon Jan 3 22:22:32 1994 Gerald Baumgartner (gb@cygnus.com)
10260
10261 * Makefile.in cp-call.c cp-class.c cp-cvt.c cp-decl.c cp-decl2.c
10262 cp-error.c cp-init.c cp-lex.c cp-lex.h cp-method.c cp-parse.y
10263 cp-spew.c cp-tree.c cp-tree.h cp-type2.c cp-typeck.c cp-xref.c
10264 gplus.gperf toplev.c: Incorporated C++ signature extension.
10265 * cp-sig.c: New file, contains most of signature processing.
10266 * cp-hash.h: Regenerated from gplus.gperf.
10267
10268 * gcc.1 g++.1: Added explanation for the `-fhandle-signatures'
10269 and `-fno-handle-signatures' command line flags.
10270
10271 * gcc.texi: Changed the last-modification date.
10272 * invoke.texi: Added `-fhandle-signatures' in the list of
10273 C++ language options. Added explanation for this option.
10274
6060a796 10275Tue Dec 28 21:10:03 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10276
10277 * cp-init.c (expand_vec_init): Remove comptypes test, as it is too
10278 harsh here.
10279
6060a796 10280Tue Dec 28 13:42:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10281
10282 * cp-pt.c (do_pending_expansions): Decide to expand a template
10283 member function, based upon it's class type, not the class type of
10284 the first place it was declared.
10285
6060a796 10286Tue Dec 28 05:42:31 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10287
10288 * cp-class.c (is_normal): New routine, use to determine when the
10289 given binfo is the normal one. (The one that should have the simple
10290 vtable name.)
10291 * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
10292 to check if two fndecls are `the same'. Sometimes this routine can
10293 modify the main vtable, and normal should be 1, in that case, so use
10294 is_normal() to determine if this is the main vtable for the class.
10295 Don't recurse down virtual bases, as they are shared, and we take
10296 care of them elsewhere.
10297 * cp-class.c (modify_vtable_entries): If we have already updated the
10298 vtable with the new virtual, don't do it again.
10299 * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
10300 appropriate. Do virtual function overriding in virtual bases, after
10301 normal overriding, so that the base function list in DECL_VINDEX is
10302 not overridden, before we have a chance to run through the list.
10303 Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
10304 Make sure we pass the right address into modify_vtable_entries.
10305 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
10306 binfo is the one that has the vtable that we based our vtable on.
10307
10308Fri Dec 24 09:40:52 1993 Michael Tiemann (tiemann@blues.cygnus.com)
10309
10310 * cp-typeck.c (c_expand_start_case): Use default_conversion to
10311 convert expression from reference type if necessary.
10312
10313Wed Dec 22 17:58:43 1993 Jason Merrill (jason@deneb.cygnus.com)
10314
10315 * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
10316 trying to read its TREE_VALUE.
10317
10318 * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
10319 (finish_struct): Instead of here.
10320
10321Tue Dec 21 14:34:25 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10322
10323 * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
10324 have TYPE_PTRMEMFUNC_P set before we try to build its
10325 CLASSTYPE_ID_AS_LIST.
10326 (get_decl_list): Likewise, when trying to read it.
10327
10328 * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
10329 (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
10330
10331Mon Dec 20 13:35:03 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10332
10333 * cp-typeck.c (rationalize_conditional_expr): New function.
10334 (unary_complex_lvalue): Use it.
10335 (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
10336 with build_unary_op won't cut it. Don't wrap the COND_EXPR with a
10337 SAVE_EXPR either.
10338
10339 * cp-decl2.c (explicit_warn_return_type): Deleted variable.
10340 (lang_decode_option): Set warn_return_type, not explicit_*, for
10341 -Wreturn-type and -Wall. This is what rest_of_compilation uses to
10342 decide if it should go into jump_optimize or not.
10343 * cp-tree.h (explicit_warn_return_type): Deleted.
10344 * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
10345 (finish_function): Also complain about no return in a non-void fn if
10346 we're being pedantic (don't rely on use of -Wreturn-type).
10347
10348Fri Dec 17 15:45:46 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10349
10350 * cp-decl.c (grokdeclarator): Forbid declaration of a function as
10351 static if it's being done inside another function.
10352
10353 * cp-search.c (compute_visibility): Check for friendship both ways.
10354
10355Fri Dec 17 14:28:25 1993 Jason Merrill (jason@deneb.cygnus.com)
10356
10357 * cp-cvt.c (build_default_binary_type_conversion): Make error
10358 messages more helpful.
10359
10360 * cp-error.c (op_as_string): New function, returns "operator =="
10361 given EQ_EXPR or suchlike.
10362
10363Fri Dec 17 13:28:11 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10364
10365 * cp-call.c (print_n_candidates): New function.
10366 (build_overload_call_real): Use it when we complain about a call
10367 being ambiguous.
10368
10369Fri Dec 17 12:41:17 1993 Jason Merrill (jason@deneb.cygnus.com)
10370
10371 * cp-call.c (build_method_call): Fix checking for static call
10372 context.
10373
10374 * cp-method.c (build_opfncall): Call build_indirect_ref on argument
10375 to operator new.
10376
10377 * cp-init.c (build_new): Don't mess with rval when building
10378 indirect ref.
10379
10380Thu Dec 16 16:48:05 1993 Kung Hsu (kung@cirdan.cygnus.com)
10381
10382 * cp-lex.c (default_assign_ref_body): add check when TYPE_NESTED_
10383 NAME(type) may not be exist. It's not a problem for old compiler.
10384
10385Thu Dec 16 14:46:06 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10386
10387 * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
10388 never used for anything.
10389 (struct lang_type, member type_flags): Delete field
10390 `alters_visibility', and up `dummy' by 1.
10391 * cp-class.c (finish_base_struct): Delete code that copies the
10392 setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
10393 (finish_struct): Delete code that sets it.
10394
10395Thu Dec 16 14:44:39 1993 Jason Merrill (jason@deneb.cygnus.com)
10396
10397 * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
10398 build_method_call that I messed up before.
10399
10400 * cp-search.c (get_base_distance): If protect > 1, allow immediate
10401 private base.
10402
10403 * cp-class.c (finish_base_struct): Set cant_synth_* correctly.
10404 (finish_struct): Ditto. Well, nigh-correctly; it won't deal
10405 properly with the case where a class contains an object of an
10406 ambiguous base class which has a protected op=. Should be fixed
10407 when the access control code gets overhauled.
10408 (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.
10409
10410Thu Dec 16 12:17:06 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10411
10412 * cp-lex.c (real_yylex): Turn the code back on that deals with
10413 __FUNCTION__ and __PRETTY_FUNCTION__. Don't use lookup_name, to
10414 avoid the ambiguity problems that led to it being turned off in the
10415 first place.
10416
10417 * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
10418 to see if something is a method.
10419
6060a796 10420Wed Dec 15 18:35:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10421
10422 * cp-typeck.c (build_modify_expr): Avoid error messages on small
10423 enum bit fields.
10424 * cp-typeck.c (convert_for_assignment): Add missing argument to
10425 cp_warning and cp_pedwarn calls.
10426
10427Wed Dec 15 18:25:32 1993 Jason Merrill (jason@deneb.cygnus.com)
10428
10429 * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
10430 initializers; it's just anachronistic.
10431
10432 * cp-decl.c (finish_decl): Don't require external-linkage arrays
10433 to have a complete type at declaration time when pedantic.
10434
10435Tue Dec 14 11:37:23 1993 Jason Merrill (jason@deneb.cygnus.com)
10436
10437 * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.
10438
10439 * cp-call.c (build_method_call): Don't dereference pointer given
10440 as instance.
10441
10442 * cp-decl.c (finish_function): Don't pass pointer to
10443 build_method_call.
10444 (finish_function): Ditto.
10445
10446 * cp-typeck.c (build_x_function_call): Ditto.
10447
10448 * cp-method.c (build_component_type_expr): Ditto.
10449
10450 * cp-init.c (build_member_call): Ditto.
10451 (build_new): Ditto.
10452
10453Mon Dec 13 18:04:33 1993 Kung Hsu (kung@cirdan.cygnus.com)
10454
10455 * cp-decl.c (xref_tag): fix regression created by changes made
10456 in Dec. 7 1993.
10457 * cp-decl.c (xref_defn_tag): fix parallel nested class problem.
10458
10459Fri Dec 10 12:40:25 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10460
10461 * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
10462 out the final evaluation of the function, so we can see if ELLIPSIS,
10463 USER, and EVIL were set at the end.
10464
10465 * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
10466 only go for setting TRIVIAL_CODE if we are dealing with types that
10467 are compatible.
10468
6060a796 10469Thu Dec 9 18:27:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10470
10471 * cp-decl.c (flag_huge_objects): New flag to allow large objects.
10472 * toplev.c (lang_options): Ditto.
10473 * cp-decl2.c (flag_huge_objects, lang_f_options): Ditto.
10474 * cp-decl.c (delta_type_node): New type for delta entries.
10475 * cp-tree.h (delta_type_node): Ditto.
10476 * cp-decl.c (init_decl_processing): Setup delta_type_node.
10477 * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
10478 delta_type_node instead of short_integer_type_node.
10479 * cp-class.c (build_vtable_entry): Ditto.
10480
10481Thu Dec 9 16:19:05 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10482
10483 * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
10484 NO_{DOLLAR,DOT} macro checks, so it always gets defined.
10485 (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
10486
6060a796 10487Wed Dec 8 17:38:06 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10488
10489 * cp-decl.c (finish_decl): Make sure things that can go into
10490 "common", do go into common, if -fcommon is given.
10491
10492Wed Dec 8 13:01:54 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10493
63718c49
GB
10494 * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
10495 (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
10496 argument matching diagnostics to make instantly clear what the
10497 compiler is doing.
7177d104
MS
10498
10499 * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
10500 then check to see if the penalty was increased due to
10501 signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.
10502
10503Tue Dec 7 18:29:14 1993 Kung Hsu (kung@cirdan.cygnus.com)
10504
10505 * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
10506 problem.
10507
10508Tue Dec 7 16:09:34 1993 Jason Merrill (jason@deneb.cygnus.com)
10509
10510 * cp-class.c (finish_struct): Before synthesizing methods, if no
10511 methods have yet been declared then set nonprivate_method. Don't
10512 set non_private method after synthesizing a method.
10513
10514 * cp-lex.c (extract_interface_info): If flag_alt_external_templates
10515 is set, tie emitted code to the location of template instantiation,
10516 rather than definition.
10517
10518 * cp-tree.h: Declare flag_alt_external_templates.
10519
10520 * cp-decl2.c (lang_decode_option): Support -falt-external-templates.
10521
10522 * toplev.c (lang_options): Ditto.
10523
9e9ff709 10524Mon Oct 4 12:50:02 1993 Chip Salzenberg (chip@fin.uucp)
7177d104 10525
63718c49
GB
10526 [changes propagated from 930810 snapshot]
10527 * cp-decl.c (init_decl_processing): Make long long available for use
10528 as SIZE_TYPE and PTRDIFF_TYPE.
10529 (finish_decl): Allow file-scope static incomplete array.
10530 (grokdeclarator): Don't pass on const and volatile fron function
10531 value type to function type.
10532 Warn here for volatile fn returning non-void type.
10533 * cp-parse.y (attrib): Accept attributes `volatile' with alias
10534 `noreturn', and `const'.
10535 * cp-typeck.c (default_conversion): Don't lose const and volatile.
10536 (build_binary_op_nodefault): Generate pedantic warning for comparison
10537 of complete pointer type with incomplete pointer type.
10538 (build_c_cast): Be careful that null pointer constant be INTEGER_CST.
7177d104
MS
10539
10540Tue Dec 7 10:46:48 1993 Jason Merrill (jason@deneb.cygnus.com)
10541
10542 * cp-init.c (expand_vec_init): When creating a temporary for copying
10543 arrays, use the type of the source, not the target.
10544
10545 * cp-cvt.c (convert): Pass an argument for errtype to
10546 convert_to_reference.
10547
10548 * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
10549 methods, -> and `this'.
10550
10551Mon Dec 6 17:12:33 1993 Jason Merrill (jason@deneb.cygnus.com)
10552
10553 * cp-error.c (parm_as_string): New function; returns `this' or arg
10554 number. Corresponds to %P.
10555 (dump_expr): Deal with method calls.
10556
10557 * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
10558 * cp-typeck.c (convert_for_assignment): Ditto.
10559 (warn_for_assignment): Lose.
10560
10561Mon Dec 6 11:33:35 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10562
10563 * cp-call.c (ideal_candidate_ansi): Delete code that was never
10564 doing anything useful. Instead, sort once, and DO NOT wipe
10565 out any codes with EVIL_CODE, since that's what we use as a
10566 marker for the end of the list of candidates.
10567
10568 * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.
10569
10570Mon Dec 6 12:49:17 1993 Jason Merrill (jason@deneb.cygnus.com)
10571
10572 * cp-init.c (get_aggr_from_typedef): New function, like
10573 is_aggr_typedef but returns the _TYPE.
10574
10575 * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.
10576
10577Sun Dec 5 18:12:48 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10578
10579 * cp-lex.c (readescape): Pedwarn when a hex escape is out of range.
10580
10581Thu Nov 25 23:50:19 1993 Chip Salzenberg (chip@fin.uucp)
10582
10583 Delay language context change until beginning of next decl.
10584
10585 * cp-lex.h (c_header_level): Removed.
10586 (pending_lang_change): Declared.
10587 * cp-lex.c (c_header_level): Renamed from in_c_header, made static.
10588 (pending_lang_change): Defined.
10589 (check_newline): Rework code that recognizes line number and
10590 filename changes. Instead of pushing and popping lang context,
10591 increment and decrement pending_lang_change.
10592 (do_pending_lang_change): Push and pop lang context according
10593 to value of pending_lang_change.
10594 * cp-parse.y (extdefs): Use lang_extdef instead of extdef.
10595 (extdef): Same as extdef, but call do_pending_lang_change() first.
10596
10597Mon Nov 15 15:39:15 1993 Chip Salzenberg (chip@fin.uucp)
10598
10599 * cp-typeck.c (build_binary_op_nodefault): Warn for ordered
10600 compare of ptr with 0 only if pedantic in both cases.
10601
10602Thu Nov 25 13:31:37 1993 Chip Salzenberg (chip@fin.uucp)
10603
10604 Reinstate the below patch, which got lost in the Cygnus merge:
10605 Tue Nov 23 13:59:24 1993 Hallvard B Furuseth (hbf@durin.uio.no)
10606 * cp-parse.y (maybe_type_qual): Don't fail to set $$.
10607
10608Wed Nov 17 19:03:30 1993 Chip Salzenberg (chip@fin.uucp)
10609
10610 * cp-parse.y (attrib): Allow "ident(ident)" like the C front end.
10611
10612Fri Oct 22 20:43:37 1993 Paul Eggert (eggert@twinsun.com)
10613
10614 * cp-lex.c (real_yylex): Diagnose floating point constants
10615 that are too large.
10616
10617Wed Nov 17 19:10:37 1993 Chip Salzenberg (chip@fin.uucp)
10618
10619 * cp-type2.c (build_functional_cast): ARM page 16: When a class
10620 and an object, function or enumerator are declared in the same
10621 scope with the same name, the class name is hidden.
10622
10623Wed Nov 17 19:07:18 1993 Chip Salzenberg (chip@fin.uucp)
10624
10625 * cp-call.c (convert_harshness_ansi): Distinguish float, double,
10626 and long double from each other when overloading.
10627 (compute_conversion_costs_{ansi,old}, build_method_call,
10628 build_overlay_call_real, convert_to_aggr): Always set and
10629 always use H_LEN member of candidate structure.
10630
10631Mon Oct 11 23:10:53 1993 Chip Salzenberg (chip@fin.uucp)
10632
10633 * cp-decl.c (duplicate_decls): Note redeclarations of library
10634 functions, and generate distinct warnings for them.
10635
10636Mon Oct 4 12:26:49 1993 Chip Salzenberg (chip@fin.uucp)
10637
10638 Support format warnings in G++.
10639
10640 * cp-tree.h: Protect against multiple inclusion.
10641 Declare all public functions in c-common.c (copy from c-tree.h).
10642 (STDIO_PROTO): Define.
10643 (warn_format): Declare.
10644 (record_format_info): Remove declaration.
10645 * cp-decl.c (init_decl_processing): Call init_function_format_info.
10646 * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
10647 * cp-typeck.c (build_function_call_real): Call check_function_format.
10648 (record_format_info): Remove -- obsolete stub.
10649
10650Sat Jul 24 12:04:29 1993 Chip Salzenberg (chip@fin.uucp)
10651
10652 * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
10653 following an extern one (for -Wredundant-decls).
10654 * cp-parse.y (primary): In statement expression case, if compstmt
10655 returns something other than a BLOCK, return it unchanged.
10656
10657Thu Dec 2 20:44:58 1993 Chip Salzenberg (chip@fin.uucp)
10658
10659 * cp-decl.c (warn_extern_redeclared_static): New function made
10660 from code extracted from pushdecl.
10661 (duplicate_decls, pushdecl): Call new function.
10662 (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
10663 to be a TREE_LIST when function is declared in 'extern "C" {}'.
10664
10665Fri Dec 3 16:01:10 1993 Jason Merrill (jason@deneb.cygnus.com)
10666
10667 * cp-class.c (duplicate_tag_error): Use cp_error.
10668 (finish_base_struct): Check for ambiguity with direct base, and don't
10669 generate op= or copy ctor if it exists.
10670
10671Fri Dec 3 15:32:34 1993 Kung Hsu (kung@cirdan.cygnus.com)
10672
10673 * cp-init.c (expand_member_init): when initializer name is null,
10674 don't try to build it now because emit_base_init will handle it.
10675
10676Fri Dec 3 12:28:59 1993 Jason Merrill (jason@deneb.cygnus.com)
10677
10678 * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
10679 code such as ExceptionHandler::operator=.
10680
10681Fri Dec 3 10:32:08 1993 Jason Merrill (jason@deneb.cygnus.com)
10682
10683 * cp-decl.c (grokdeclarator): Don't try to print out dname when
10684 complaining about arrays of references if decl_context==TYPENAME,
10685 since it will be null.
10686
10687 * cp-decl2.c: Default to flag_ansi_overloading.
10688
10689Thu Dec 2 18:05:56 1993 Kung Hsu (kung@cirdan.cygnus.com)
10690
10691 * cp-call.c (build_method_call): use binfo from instance if it's
10692 different from binfo (basetype_path) passed from above.
10693
10694Thu Dec 2 12:48:36 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10695
10696Wed Nov 17 19:14:29 1993 Chip Salzenberg (chip@fin.uucp)
10697
10698 cp-error.c (dump_expr): Use unsigned chars to output a
10699 TREE_REAL_CST in hex.
10700
10701Thu Dec 2 11:05:48 1993 Jason Merrill (jason@deneb.cygnus.com)
10702
10703 * cp-class.c (finish_struct): Fix typo in setting
10704 cant_synth_asn_ref.
10705
10706 * cp-tree.h (TYPE_NESTED_NAME): New macro, does
10707 DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).
10708
10709 * cp-lex.c (default_copy_constructor_body): Change
10710 DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
10711 (default_assign_ref_body): Ditto.
10712 (default_copy_constructor_body): Call operator= explicitly for
10713 base classes that have no constructor.
10714
10715Thu Dec 2 10:47:15 1993 Michael Tiemann (tiemann@blues.cygnus.com)
10716
10717 * cp-call.c (build_method_call): If the instance variable is
10718 converted to error_mark_node when we're trying to convert it to the
10719 base type of a method we're looking up, return error_mark_node.
10720
10721Thu Dec 2 10:41:16 1993 Torbjorn Granlund (tege@cygnus.com)
10722
10723 * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
10724 cases, tests for unsigned operands by peeking inside a NOP_EXPR.
10725
10726Wed Dec 1 13:33:34 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10727
10728 * cp-call.c (compute_conversion_costs_ansi): Use the size of struct
10729 harshness_code, not the size of short, for clearing out the
10730 ansi_harshness.
10731
10732 * cp-call.c (print_candidates): New function.
10733 (build_method_call): When we had some candidates, but didn't get a
10734 usable match, don't report that we got an error with the first
10735 candidate. Instead, say there were no matches, and list the
10736 candidates with print_candidates. In the second pass, make sure we
10737 clear out ever_seen, so we can accurately count the number of
10738 functions that qualified.
10739
10740Wed Dec 1 09:53:59 1993 Torbjorn Granlund (tege@cygnus.com)
10741
10742 * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
10743 only if op1 is known to be != -1.
10744 (build_binary_op_nodefault): Handle *_DIV_EXPR likewise.
10745
10746Tue Nov 30 14:07:26 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10747
10748 * cp-method.c (hack_identifier): If the field itself is private, and
10749 not from a private base class, say so.
10750
10751Mon Nov 29 03:00:56 1993 Jason Merrill (jason@deneb.cygnus.com)
10752
10753 * cp-decl.c (grokdeclarator): Always warn on initialization of
10754 const member.
10755
10756Wed Nov 24 00:49:35 1993 Jason Merrill (jason@deneb.cygnus.com)
10757
10758 * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
10759 (finish_base_struct): Set cant_synth_asn_ref properly.
10760
10761 * cp-lex.c (cons_up_default_function): Add section for operator=.
10762 (default_assign_ref_body): New function, mostly cribbed from
10763 default_copy_constructor_body.
10764
10765 * cp-class.c (base_info): Add members cant_synth_copy_ctor,
10766 cant_synth_asn_ref, no_const_asn_ref.
10767 (finish_base_struct): Update no_const_asn_ref, note that you should
10768 update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
10769 (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
10770 initialize them properly. Set no_const_asn_ref properly. Set
10771 cant_synth_* in some of the situations where they should be set.
10772 Propagate TYPE_GETS_ASSIGN_REF. Use cant_synth_copy_ctor. Add call
10773 to cons_up_default_function for operator=.
10774
6060a796 10775Tue Nov 23 20:24:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10776
10777 * cp-cvt.c (convert_force): Add code to perform casting of pointer
10778 to member function types.
10779 * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
10780 when the conversion should be done, regardless.
10781 * cp-tree.h (build_ptrmemfunc): Ditto.
10782 * cp-type2.c (digest_init): Ditto.
10783 * cp-typeck.c (convert_for_assignment): Ditto.
10784
10785Tue Nov 23 18:06:58 1993 Jason Merrill (jason@deneb.cygnus.com)
10786
10787 * cp-error.c (dump_expr): Do the right thing for variables of
10788 reference type.
10789
10790 * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
10791 and its kin properly.
10792 (xref_tag): Propagate TYPE_GETS_ASSIGN_REF.
10793
6060a796 10794Tue Nov 23 12:26:13 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10795
10796 * cp-method.c (build_opfncall): Don't count pointer to member
10797 functions as aggregates here, as we don't want to look up methods in
10798 them. The compiler would core dump if we did, as they don't have
10799 normal names.
10800 * cp-typeck.c (build_indirect_ref): Improve wording on error
10801 message.
10802
10803Mon Nov 22 14:22:23 1993 Jason Merrill (jason@deneb.cygnus.com)
10804
10805 * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
10806 (since it's supported in other compiler bits).
10807
10808 * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
10809 argument.
10810
10811 * cp-error.c (dump_function_decl): Don't print return type for
10812 constructors and destructors.
10813
10814 * cp-cvt.c (cp_convert_to_pointer): Import code from
10815 convert_to_pointer so we can return error_mark_node in the case of an
10816 error, and to allow more meaningful error messages.
10817 (build_type_conversion): Don't go through void* when trying
10818 to convert to a pointer type.
10819
10820 * cp-decl.c (grokfndecl): Move call to grok_op_properties back
10821 after grokclassfn so that it's dealing with the right decl.
63718c49 10822 (grok_op_properties): Don't assert !methodp for op new and op delete.
7177d104
MS
10823
10824 * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
10825 no uses of it in the compiler).
10826
10827 * cp-call.c (build_scoped_method_call): Fix for destructors of simple
10828 types.
10829 (build_method_call): Ditto.
10830
10831Fri Nov 19 12:59:38 1993 Jason Merrill (jason@deneb.cygnus.com)
10832
10833 * cp-tree.c (count_functions): Abstraction function.
10834
10835 * cp-call.c (build_overload_call_real): Deal with new overloading
10836 properly, remove dead code.
10837
10838 * gcc.c (default_compilers): Generate and use .ii files in the
10839 intermediate stage of compiling C++ source.
10840
10841Fri Nov 19 11:26:09 1993 Jim Wilson (wilson@sphagnum.cygnus.com)
10842
10843 * cp-expr.c (cplus_expand_expr): Make call_target a valid memory
10844 address before using it, so it can be later safely compared.
10845
10846Fri Nov 12 15:30:27 1993 Jason Merrill (jason@deneb.cygnus.com)
10847
10848 * cp-pt.c (tsubst): Deal with new overloading.
10849
10850 * cp-typeck.c (fntype_p): is the arg function type?
10851 (comp_target_parms): pedwarn on conversion from (anything) to (...).
10852 (build_x_function_call): Deal with new overloading.
10853
10854 * cp-tree.c (decl_list_length): Deal with new overloading.
10855 (decl_value_member): Like value_member, but for DECL_CHAINs.
10856
10857 * cp-decl.c (duplicate_decls): Deal with new overloading.
10858 (start_decl): Ditto.
10859
10860 * cp-class.c (instantiate_type): Deal with new overloading.
10861
10862 * cp-call.c (convert_harshness_ansi): Deal with new overloading.
10863 (convert_harshness_old): Deal with new overloading.
10864 (build_overload_call_real): Ditto.
10865
10866Mon Nov 8 13:50:49 1993 Jason Merrill (jason@deneb.cygnus.com)
10867
10868 * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
10869 if unambiguous, NULL_TREE otherwise.
10870 (get_first_fn): Returns the first appropriate FUNCTION_DECL.
10871 (is_overloaded_fn): Returns whether or not the passed tree is
10872 a function or list of functions.
10873
10874 * cp-init.c (init_init_processing): use `get_first_fn' to find
10875 the FUNCTION_DEFN for new and delete.
10876
10877 * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
10878 code size in half (I spit on special cases).
10879
10880Tue Sep 7 20:03:33 1993 Jason Merrill (jason@deneb.cygnus.com)
10881
10882 * cp-decl.c: Allow references and template type parameters as well
This page took 1.165961 seconds and 5 git commands to generate.