]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
optabs.c (emit_cmp_insn): Immediately copy the return value from the library call...
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
5566b478
MS
1Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2
3 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
4
5Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
6
7 * typeck2.c (build_x_arrow): Call complete_type.
8
9 * pt.c (add_pending_template): Broken out.
10 (lookup_template_class): If -fexternal-templates, call it for all
11 the methods of implemented types.
12 (instantiate_class_template): Instead of instantiating them here.
13 (instantiate_decl): Handle -fexternal-templates earlier.
14
15Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
16
17 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
18 memoized lookup stuff inside GATHER_STATISTICS.
19
20Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
21
22 * decl.c (start_decl): Complain about array of incomplete type
23 here.
24 (grokdeclarator): Not here.
25
26 * parse.y (template_parm): Expand full_parm inline so we can set
27 the rule's precedence.
28
29 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
30 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
31 * decl2.c (grokbitfield): Don't check for integer constant here.
32 * class.c (finish_struct_1): Check here.
33
34 * decl.c (define_label): Make the min decl go on permanent_obstack.
35
36 * pt.c (unify): Don't handle CONST_DECLs.
37 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
38 (tsubst_copy): Ditto.
39
40 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
41 CONST_DECL for a template parm.
42
43Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
44
45 * decl.c (grokdeclarator): Complain about array of incomplete type
46 here.
47 (start_decl_1): Not here.
48
49 * pt.c (tsubst): Handle pointer-to-function declarators.
50
51 * method.c (hack_identifier): If pedantic, diagnose local class
52 methods that require a static chain.
53
54 * decl.c (grok_op_properties): No longer static.
55 * cp-tree.h: Declare it.
56 * pt.c (tsubst): Call it for operators.
57 Use tsubst_copy for TREE_VECs.
58
59 * parse.y (template_arg): The expr has precedence like '>'.
60
61Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
62
63 * pt.c (coerce_template_parms): Don't coerce an expression using
64 template parms.
65 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
66 (tsubst): Don't use build_index_2_type if the max_value uses template
67 parms.
68 * method.c (build_overload_int): Emit something arbitrary for an
69 expression using template parms.
70
71 * parse.y (template_close_bracket): New non-terminal to catch use
72 of '>>' instead of '> >' in template class names.
73 (template_type): Use it.
74 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
75
76 * tree.def: Add CAST_EXPR.
77 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
78 CONVERT_EXPR for minimal_parse_mode.
79 * typeck.c (build_c_cast): Ditto.
80 * pt.c (tsubst_copy): Ditto.
81 * decl2.c (build_expr_from_tree): Ditto.
82 * error.c (dump_expr): Ditto.
83
84Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
85
86 * except.c (SetTerminate, SetUnexpected): Put back global vars.
87 (init_exception_processing): Put back decl/init of
88 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
89 fns from libstdc++.
90
91 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
92 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
93 Delete unused fns.
94 * cp-tree.h (declare_uninstantiated_type_level,
95 uninstantiated_type_level_p): Delete prototypes.
96
97Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
98
99 * pt.c (tsubst_expr): Add default return.
100
101Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
102
103 * error.c (fndecl_as_string): Delete unused arg CNAME.
104 * sig.c (build_signature_table_constructor,
105 build_signature_method_call): Fix calls.
106
107 * class.c (the_null_vtable_entry): Delete var definition.
108 (init_class_processing): Delete tree the_null_vtable_entry init.
109 * decl.c (no_print_{functions, builtins}): Declare as static.
110 (__tp_desc_type_node): #if 0 var definition.
111 (init_type_desc): #if 0 init of __tp_desc_type_node.
112 (vb_off_identifier): Move var decl into init_decl_processing.
113 (current_function_assigns_this): Declare as static.
114 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
115 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
116 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
117 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
118 * init.c (BI_header_type, BI_header_size): Declare as static.
119 * pt.c (template_classes): Delete unused var.
120 (add_pending_template): Delete decl for non-existent fn.
121 (lookup_template_class): Delete vars CODE and TAG_CODE.
122 (instantiate_template): Delete unused var TARGS.
123 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
124 Delete decls.
125 (__tp_desc_type_node): #if 0 var decl.
126 (fndecl_as_string): Fix prototype.
127
128Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
129
130 * tree.def: Add GOTO_STMT.
131 * pt.c (tsubst_expr): Support goto and labels.
132 * decl.c (define_label): Support minimal parsing.
133 * parse.y (simple_stmt): Ditto.
134
135Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
136
137 * xref.c (GNU_xref_member): Only define/set var I if
138 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
139 used.
140 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
141 (GNU_xref_end): Fix call.
142 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
143 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
144
145 * tree.c (build_exception_variant): Delete unused vars I, A, T,
146 T2, and CNAME.
147 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
148 (mapcar): Delete unused var CODE.
149 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
150 (break_out_cleanups): Fix call.
151 (bot_manip): Likewise.
152 * call.c (build_method_call): Likewise.
153 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
154 Likewise.
155 * typeck.c (unary_complex_lvalue, build_modify_expr,
156 convert_for_initialization): Likewise.
157 * typeck2.c (build_functional_cast): Likewise.
158 * cp-tree.h (build_cplus_new): Fix prototype.
159
160 * repo.c (open_repo_file): Delete unused var Q.
161 (repo_compile_flags, repo_template_declared,
162 repo_template_defined, repo_class_defined, repo_inline_used,
163 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
164 (repo_get_id, repo_vtable_used): Declare as static.
165 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
166 prototypes.
167
168Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
169
170 * parse.y (pending_inlines): Add function_try_block case.
171
172 * pt.c (unify): Fix for template const parms.
173
174Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
175
176 * lex.c (extract_interface_info): Delete forward decl.
177 (default_copy_constructor_body, default_assign_ref_body): Delete
178 decls for non-existent functions.
179 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
180 (init_lex): Delete setting them.
181 (cons_up_default_function): Delete unused vars FUNC_BUF,
182 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
183 #if 0'd synth code.
184 (toplevel, expression_obstack): Delete unused extern decls.
185 (tree_node_kind): Delete unused enum.
186 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
187 GATHER_STATISTICS.
188 (tree_node_kind_names): Delete unused extern decl.
189 (synth_obstack): Delete unused var.
190 (init_lex): Don't set it.
191 (init_parse): Add decl before use.
192 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
193 (current_unit_{name, language}): Delete unused vars.
194 (check_newline): Don't bother setting them, just accept the #pragma.
195 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
196 (current_unit_{name, language}): Delete decls.
197
198 * search.c: Wrap all of the memoized functions, macros, and
199 variables inside #ifdef GATHER_STATISTICS.
200 (lookup_field, lookup_fnfields): Likewise.
201 (init_search_processing): Likewise.
202 (reinit_search_statistics): Wrap whole function.
203 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
204
205 * decl.c (finish_function): Only call pop_memoized_context if
206 GATHER_STATISTICS is defined.
207 (start_function): Likewise for push_memoized_context.
208 * class.c (pushclass, popclass): Likewise.
209
210 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
211 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
212
213 * cvt.c (cp_convert): Delete unused local var FORM.
214 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
215 prototypes.
216
217Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
218
219 * pt.c (do_poplevel): Oops; really return what we get from
220 poplevel this time.
221
222Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
223
224 * cp-tree.h (is_aggr_type): Add prototype.
225
226 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
227 * method.c ({push,pop}_cp_function_context): Delete decls.
228 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
229 (SetUnexpected, SetTerminate): Delete unused vars.
230 (init_exception_processing): Don't set SetUnexpected or
231 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
232 (output_exception_table_entry): Delete unused array LABEL.
233 (expand_internal_throw): Delete unused var PARAMS.
234 (expand_start_catch_block): Delete unused var CLEANUP.
235 (emit_exception_table): Delete unused var EH_NODE_DECL.
236 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
237 GOTO_UNWIND_AND_THROW. Don't set them.
238 (end_eh_unwinder): Add top decl.
239 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
240 (exception_section, push_rtl_perm, do_function_call,
241 lang_interim_eh, push_eh_cleanup, eh_outer_context,
242 expand_end_eh_spec, end_eh_unwinder): Declare as static.
243 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
244 throw_used): Likewise.
245 * cp-tree.h (expand_end_eh_spec): Delete prototype.
246
247 * search.c (dfs_mark, dfs_mark_vtable_path,
248 dfs_unmark_vtable_path, dfs_mark_new_vtable,
249 dfs_unmark_new_vtable, dfs_clear_search_slot,
250 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
251 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
252 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
253 functions.
254 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
255 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
256 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
257 Only define #ifdef GATHER_STATISTICS.
258 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
259 is defined.
260 (vbase_decl): Delete var definition.
261 (init_search): Delete old decl.
262 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
263 never actually used.
264 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
265 (get_base_distance_recursive): Delete unused fourth arg
266 BASETYPE_PATH. Fix call .
267 (get_base_distance): Fix call.
268 (push_class_decls): Delete unused var ID.
269 (make_memoized_table_entry): Declare as static.
270 (breadth_first_search): Declare as static.
271 (tree_has_any_destructor_p): Declare as static.
272 (pop_class_decls): Delete unused arg pop_class_decls.
273 * class.c (popclass): Fix call to pop_class_decls.
274 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
275 tree_has_any_destructor_p): Delete prototypes.
276
277 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
278 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
279 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
280 (build_user_desc): Delete unused var T.
281 (build_class_desc): Delete unused vars T and OFF.
282 (build_t_desc): Delete unused var NAME_STRING.
283 (build_headof): Make static.
284 (get_bad_cast_node): Likewise.
285 (get_def_to_follow): Likewise.
286 * cp-tree.h (init_type_desc): Add prototype.
287 (build_headof): Remove prototype.
288
289Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
290
291 * pt.c (tsubst): Only look for matching decls at file scope for
292 non-member functions.
293
294 * call.c (build_scoped_method_call): Handle scoped destructor
295 calls in templates.
296
297 * decl.c (*_top_level): Also save previous_class_values.
298
299 * pt.c (tsubst_expr): Support do {} while loops.
300 * parse.y (simple_stmt): Ditto.
301 * tree.def: Ditto.
302
303 * method.c (build_overload_identifier): For a class nested in a
304 template class, don't mangle in the template parms from our
305 context.
306
307 * lex.c, cp-tree.h: Remove support for template instantiations in
308 the pending_inlines code.
309 * pt.c: Remove dead functions and unused arguments.
310 (uses_template_parms): TYPENAME_TYPEs always use template parms.
311 * parse.y: Stop passing anything to end_template_decl.
312 * tree.c (print_lang_statistics): Only print tinst info #ifdef
313 GATHER_STATISTICS.
314
315Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
316
317 * init.c (expand_recursive_init{,_1}): Delete decls.
318 (sort_member_init): Delete unused var INIT.
319 (emit_base_init): Delete unused var X.
320 (build_offset_ref): Delete unused var CNAME.
321 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
322 (emit_base_init): Delete unused local var BASE. Delete extern
323 decl of IN_CHARGE_IDENTIFIER.
324 (build_delete): Delete unused local var VIRTUAL_SIZE.
325
326 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
327 (build_delete): Fix call.
328 * decl2.c (delete_sanity): Likewise.
329 * cp-tree.h (build_vec_delete): Update prototype.
330
331 * typeck.c (common_base_type): Delete unused var TMP.
332 (build_binary_op): Delete local var ARGS_SAVE.
333 (build_array_ref): Delete unused var ITYPE.
334 (c_expand_return): Delete unused var USE_TEMP.
335
336 * typeck.c (compexcepttypes): Delete unused arg STRICT.
337 (comptypes): Fix calls.
338 * decl.c (duplicate_decls): Likewise.
339 * cp-tree.h (compexcepttypes): Delete extra arg.
340
341 * decl2.c (check_classfn): Delete unused second arg CNAME.
342 * decl.c (start_decl, grokfndecl): Fix calls.
343 * init.c (do_friend): Likewise.
344 * cp-tree.h (check_classfn): Update prototype.
345
346 * cp-tree.h (signature_error, import_export_vtable,
347 append_signature_fields, id_in_current_class, mark_used,
348 copy_assignment_arg_p): Add decls.
349 * decl2.c (mark_used): Delete decl.
350
351 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
352
353 * class.c (get_vtable_entry): Diable unused function.
354 (doing_hard_virtuals): Delete unused static global var.
355 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
356 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
357 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
358 (modify_one_vtable): Delete unused var OLD_RTTI.
359 (finish_struct_anon): Delete unused vars OFFSET and X.
360 (finish_struct_bits): Delete unused var METHOD_VEC.
361 (get_basefndecls): Delete unused var PURPOSE. Delete unused
362 for-scope local variable METHODS.
363
364 * call.c (user_harshness): Delete unused/unneeded arg PARM.
365 (ideal_candidate): Delete unused args BASETYPE and PARMS.
366 (build_method_call): Delete unused args passed into ideal_candidate.
367 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
368 * cp-tree.h (synthesize_method): Add decl.
369
370 * decl.c (note_level_for_for): Give void return type.
371 (pushdecl_nonclass_level): Likewise.
372 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
373 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
374 (suspend_binding_level): Delete unused var LEVEL.
375 (duplicate_decls): Delete unused var CTYPE.
376 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
377 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
378 PTR_ENDLINK.
379 (grokdeclarator): Delete unused var C.
380 (grokdeclarator): Delete unused var SIZE_VARIES.
381 (grokparms): Delete unused var SAW_VOID.
382 (start_function): Delete unused var OLDDECL.
383 (cplus_expand_expr_stmt): Delete unused var
384 REMOVE_IMPLICIT_IMMEDIATELY.
385
386 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
387
388 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
389
390Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
391
392 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
393 (build_min_nt): Ditto.
394 * pt.c (do_pushlevel): Emit line note.
395 (do_poplevel): Return what we get from poplevel.
396 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
397 * parse.y: Use do_pushlevel and do_poplevel.
398 * cp-tree.h: Declare do_poplevel.
399
400 * cp-tree.h: Declare at_eof.
401 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
402 * decl2.c (import_export_decl): Renamed from import_export_inline.
403 (finish_file): Call it to do interface handling for statics.
404 * pt.c (tsubst_copy): Call mark_used on variables and functions
405 used here.
406
407 * decl2.c (finish_file): Don't emit statics we can't generate.
408 * pt.c (instantiate_decl): Don't set interface on instantiations
409 we can't generate.
410
411 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
412 * tree.c (print_lang_statistics): Print max template depth.
413 * pt.c (push_tinst_level): Dump entire instantiation context.
414 (instantiate_class_template): Use it and pop_tinst_level.
415 (instantiate_decl): Ditto.
416
417 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
418 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
419
420Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
421
422 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
423 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
424 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
425 the new template implementation.
426
427Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
428
429 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
430
cffa8729
MS
431Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
432
433 * decl.c (cp_finish_decl): Delay emitting the debug information for
434 a typedef that has been installed as the canonical typedef, if the
435 type has not yet been defined.
436
437Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
438
439 * decl2.c (grokfield): Still call pop_nested_class for access decls.
440
441Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
442
443 * decl.c (lookup_label): Call label_rtx.
444
445 * decl.c (make_binding_level): New function.
446 (pushlevel, pushlevel_class): Call it instead of explicit
447 duplicate calls to xmalloc.
448
449 * decl.c (init_decl_processing): Delete useless build_pointer_type
450 call.
451
452 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
453 (sizet_ftype_string): Delete variable.
454 (init_decl_processing): Add built-in functions fabsf, fabsl,
455 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
456 variable strlen_ftype, used for strlen.
457
458Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
459
460 * decl.c (push_to_top_level): Start from current_binding_level
461 again for now; the stl hacks depend on g++ being broken in this
462 way, and it'll be fixed in the template rewrite.
463
464 * tree.def: Add USING_DECL.
465 * decl2.c (do_class_using_decl): Implement.
466 (grokfield): Pass access decls off to do_class_using_decl instead of
467 grokdeclarator.
468 * error.c (dump_decl): Handle USING_DECLs.
469 * decl.c (grokdeclarator): Remove code for handling access decls.
470 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
471 as access decls for now.
472 (finish_struct): Don't check USING_DECLs for other uses of the name.
473
474 * search.c (get_matching_virtual): Use cp_error_at.
475
476Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
477
478 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
479 match c-typeck.c.
480 (self_promoting_args_p): Move the check that TYPE is non-nil
481 before trying to look at its main variant.
482 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
483
484 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
485 Delete macros.
486 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
487 (do_friend): Delete call to xref_friend.
488 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
489
490 * typeck.c (convert_sequence): #if 0 unused function.
491
492 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
493 be in decl_in_memory_p.
494 (decl_in_memory_p): Delete decl.
495 * expr.c (decl_in_memory_p): Delete fn.
496 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
497
498 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
499
500Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
501
502 * class.c (finish_struct_1): Check for a pure-specifier on a
503 non-virtual function here.
504
505 * decl2.c (grok_function_init): Don't check whether the function
506 is virtual here.
507 (grokfield): Don't call check_for_override here.
508
509 * decl.c (push_to_top_level): Start from inner_binding_level,
510 check class_shadowed in class levels.
511
512Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
513
514 * decl.c (resume_level): Ignore things that don't have names, instead
515 of core dumping.
516
517Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
518
519 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
520
521Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
522
523 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
524 synthesized dtor.
525
526 * parse.y (complete_type_name): Bind global_scope earlier.
527 (complex_type_name): Ditto.
528 (qualified_type_name): Remove.
529
2ee887f2
MS
530Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
531
532 * decl.c (grokfndecl): Move code that looks for virtuals in base
533 classes...
cffa8729 534 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
535 (finish_struct_1): Call it.
536
537 * cp-tree.h: Declare warn_sign_compare.
538
539 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
540 rather than extra_warnings to decide whether to warn about
541 comparison of signed and unsigned.
542
543 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
544 implies -Wsign-compare. -Wall doesn't imply -W.
545
546Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
547
548 * typeck.c (build_component_ref): Fix to handle anon unions in base
549 classes as well.
550
551Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
552
553 * class.c (resolves_to_fixed_type_p): Delete code dealing with
554 a WITH_CLEANUP_EXPR, since we don't generate them any more.
555 * cvt.c (build_up_reference): Likewise.
556 * decl.c (grok_reference_init): Likewise.
557 (cp_finish_decl): Likewise.
558 * error.c (dump_expr): Likewise.
559 * tree.c (real_lvalue_p): Likewise.
560 (lvalue_p): Likewise.
561 (build_cplus_new): Likewise.
562 (unsave_expr_now): Likewise.
563 * typeck.c (unary_complex_lvalue, build_modify_expr,
564 c_expand_return): Likewise.
565
566Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
567
568 Make the C++ front-end pay attention to attributes for structures.
569 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
570 finish_struct_1.
571 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
572 Take out old round_up_size use and setting the DECL_ALIGN possibly
573 using it. Take out setting of TYPE_ALIGN to round_up_size, which
574 can override what the attribute set.
575 * cp-tree.h (finish_struct): Update prototype.
576 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
577 attributes to finish_struct.
578 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
579 value down into finish_struct.
580 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
581
582Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
583
584 * decl.c (poplevel): Re-word dead for local handling.
585 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
586 (cp_finish_decl): If is_for_scope, check for duplicates so
587 we can disable is_for_scope. Otherwise, preserve_temp_slots.
588
589 * lex.c (do_identifier): Use global binding in preference of
590 dead for local variable.
591
592Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
593
594 * init.c (initializing_context): Handle anon union changes, the
595 context where fields of anon unions can be initialized now has to be
596 found by walking up the TYPE_CONTEXT chain.
597
598Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
599
600 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
601 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
602 (obscure_complex_init): If bss is supported, always set
603 DECL_INITIAL to error_mark_node.
604
605Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
606
607 * init.c (is_friend): Make sure there's a context before we see if
608 it's an aggr type.
609
610Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
611
612 * init.c (is_friend): Classes are not friendly with nested classes.
613
614Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
615
616 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
617 and record its result.
618
9e9ff709
MS
619Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
620
621 * class.c (finish_struct_anon): Switch around code to not move anon
622 union elements around, nor mess up their contexts, nor offsets,
623 instead we now build up the right number of COMPONENT_REFs for all
624 the anon unions that may be present at build_component_ref time.
625 * typeck.c (lookup_anon_field): New routine to handle field lookup
626 on fields without names. We find them, based upon their unique type
627 instead.
628 * typeck.c (build_component_ref): Allow FIELD_DECL components.
629 Handle finding components in anonymous unions, and ensure that a
630 COMPONENT_REF is built for each level as necessary.
631
632Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
633
634 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
635 code that ensures that copy ctors are used if appropriate.
636
637Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
638
639 * init.c (build_vec_delete): Only give an error if base isn't an
640 error_mark_node.
641
642Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
643
644 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
645 (yylex): If we see `new', keep slurping.
646
647Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
648
649 * class.c (finish_struct_1): Move code for handling anon unions...
650 (finish_struct_anon): to here. Fixup so that we do the offset
651 calculations right, and so that the fields are physically moved to
652 the containers's chain.
653
654Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
655
656 * decl.c (grokdeclarator): Avoid trying to get an operand off an
657 identifier node.
658
659Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
660
661 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
662 POINTER_SIZE to agree with expr.c.
663
664Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
665
666 * search.c (lookup_field): Don't report ambiguities if protect is 0,
667 instead return NULL_TREE.
668
669Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
670
671 * class.c (finish_struct_1): Call warn_hidden if we want warnings
672 about overloaded virtual functions.
673 (warn_hidden): New routine to warn of virtual functions that are
674 hidden by other virtual functions, that are not overridden.
675 (get_basefndecls): New routine, used by warn_hidden.
676 (mark_overriders): New routine, used by warn_hidden.
677 * search.c (get_matching_virtual): Remove old warning that just
678 isn't very useful.
679
680Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
681
682 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
683
684 * typeck.c (null_ptr_cst_p): Delete unused fn.
685 (build_function_call_maybe): Delete unused fn.
686
687 * expr.c (extract_init): #if 0 the code after unconditional return 0
688 for now.
689
690 Delete old cadillac code.
691 * edsel.c: Remove file.
692 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
693 * Makefile.in (CXX_OBJS): Delete edsel.o.
694 (edsel.o): Delete rule.
695 * cp-tree.h (flag_cadillac): Delete var decl.
696 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
697 * decl2.c (flag_cadillac): Delete var definition.
698 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
699 (grokfield): Delete code depending on flag_cadillac.
700 (finish_anon_union): Likewise.
701 * class.c (finish_struct_1): Likewise.
702 (pushclass): Likewise.
703 (popclass): Likewise.
704 (push_lang_context): Likewise.
705 (pop_lang_context): Likewise.
706 * decl.c (init_decl_processing): Likewise.
707 (start_decl): Likewise.
708 (cp_finish_decl): Likewise.
709 (xref_tag): Likewise.
710 (finish_enum): Likewise.
711 (start_function): Likewise.
712 (finish_function): Likewise.
713 (finish_stmt): Likewise.
714 * lex.c (lang_init): Likewise.
715 (check_newline): Likewise.
716
717 * lex.c (do_pending_inlines): Delete synthesized method kludge.
718
719 Delete defunct, ancient garbage collection implementation.
720 * rtti.c: New file with the RTTI stuff from gc.c.
721 * gc.c: Removed file (moved the remaining stuff into rtti.c).
722 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
723 (rtti.o): New rule, replacing gc.o.
724 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
725 * cp-tree.h: Delete gc-related fn decls.
726 (DECL_GC_OFFSET): Delete macro.
727 (flag_gc): Delete extern decl.
728 * decl.c (current_function_obstack_index): Delete var decl.
729 (current_function_obstack_usage): Delete var decl.
730 (start_function): Delete clearing of current_function_obstack_index
731 and current_function_obstack_usage.
732 (init_decl_processing): Delete code relying on -fgc.
733 Delete call to init_gc_processing.
734 (cp_finish_decl): Delete calls to build_static_gc_entry and
735 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
736 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
737 and to expand_expr of a __gc_main call.
738 (maybe_gc_cleanup): Delete var decl.
739 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
740 * decl2.c (flag_gc): Delete var decl.
741 (lang_f_options): Delete offering of -fgc.
742 (lang_decode_option): Delete -fgc and -fno-gc handling.
743 (get_temp_regvar): Delete gc code.
744 * init.c (build_new): Delete gc code.
745 * lex.c (init_lex): Delete checking of flag_gc.
746
747 * typeck.c (convert_arguments): Delete gc code.
748 (build_component_addr): Delete -fgc warning.
749 (build_modify_expr): Delete gc code.
750
751 * decl2.c (build_push_scope): Delete fn.
752 * cp-tree.h (build_push_scope): Delete decl.
753
754 * search.c (clear_search_slots): Delete fn.
755 * cp-tree.h (clear_search_slots): Delete decl.
756
757 * search.c (tree_needs_constructor_p): Delete fn.
758 * cp-tree.h (tree_needs_constructor_p): Delete decl.
759
760 * tree.c (id_cmp): Delete fn.
761
762 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
763 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
764
765 * tree.c (decl_value_member): Delete fn.
766 * cp-tree.h (decl_value_member): Delete decl.
767
768 * tree.c (list_hash_lookup_or_cons): Delete fn.
769 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
770
771 * method.c (cplus_exception_name): Delete fn.
772 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
773
774 * spew.c (shift_tokens): Delete fn.
775
776Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
777
778 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
779 to cp_finish_decl.
780 * parse.y: Ditto.
781
782Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
783
784 * tree.c (build_cplus_staticfn_type): Delete function definition;
785 never used.
786 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
787
788 * tree.c (virtual_member): Delete function definition; never used.
789 * cp-tree.h (virtual_member): Delete decl.
790
45537677
MS
791Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
792
793 * typeck.c (build_component_ref): Handle getting vbase pointers
794 out of complex multiple inheritance better.
795
796Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
797
798 * typeck.c (build_object_ref): Make sure we use the real type, not
799 any reference type.
800
801Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
802
803 * tree.c (build_exception_variant): Don't create new types if we
804 don't have to, also build new types on the right obstack.
805
806Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
807
808 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
809 (push_to_top_level): Call it for b->type_shadowed on class binding
810 levels.
45537677
MS
811
812Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
813
814 * search.c (expand_upcast_fixups): Fix so that offsets stored in
815 vbase_offsets are always right. Fixes a problem where virtual base
816 upcasting and downcasting could be wrong during conversions on this
817 during virtual function dispatch at ctor/dtor time when dynamic
818 vtable fixups for deltas are needed. This only sounds easier than
819 it is. :-)
820 (fixup_virtual_upcast_offsets): Change to reflect new calling
821 convention for expand_upcast_fixups.
822
823Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
824
825 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
826 check that it's usable as the bitfield width.
827
828Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
829
830 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
831 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
832 only ever used for functions in it.
833
834Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
835
836 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
837 (nested_type): Ditto.
838 (nested_name_specifier): Use lastiddecl.
839
840 * decl.c (grokdeclarator): Adjust accordingly.
841 * init.c (expand_member_init): Ditto.
842 * parse.y (base_class): Ditto.
843 * typeck2.c (build_functional_cast): Ditto.
844
845 * typeck2.c (build_functional_cast): Fill in name after we've
846 checked for non-aggr type.
847
be99da77
MS
848Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
849
850 * decl2.c (warn_pointer_arith): Default to on.
851
852Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
853
854 * lex.c (is_rid): New function.
855 * decl.c (grokdeclarator): Diagnose reserved words used as
856 declarator-ids.
857
858Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
859
860 * tree.c (get_decl_list): Don't lose cv-quals.
861
862 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
863 typespecs used as declarator-ids.
864
865Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
866
867 * decl.c (poplevel): When poping a level, don't give a warning for
868 any subblocks that already exist.
869
870Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
871
872 * typeck.c (build_object_ref): Finish what I started.
873
874 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
875
876 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
877
878 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 879 scope.
be99da77
MS
880
881Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
882
883 * decl.c (xref_tag): Handle passing a type in directly.
884
885 * parse.y (qualified_type_name): Pull out the type.
886 (nested_type): Ditto.
887 Take types directly instead of as identifiers.
888 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709
MS
889 as identifiers.
890 * decl.c (xref_basetypes): Ditto.
be99da77
MS
891 * init.c (expand_member_init): Ditto.
892 (build_member_call): Ditto.
893 (build_offset_ref): Ditto.
894 * typeck2.c (build_scoped_ref): Ditto, remove bogus code.
895 * method.c (do_build_assign_ref): Ditto.
896 * decl.c (grokdeclarator): Handle a type appearing as the
897 declarator-id for constructors.
898 * method.c (do_build_copy_constructor): current_base_init_list now
899 uses the types directly, not their names.
900 * init.c (sort_base_init): Ditto.
901 (expand_member_init): Ditto.
902 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77
MS
903
904Mon Jan 15 08:45:01 1996 Jeffrey A Law (law@cygnus.com)
905
906 * tree.c (layout_basetypes): Call build_lang_field_decl instead
907 of build_lang_decl if first arg is a FIELD_DECL.
908 (tree_copy_lang_decl_for_deferred_output): Reverse test for when
909 to copy DECL_MAIN_VARIANT and DECL_CHAIN.
910
911Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
912
913 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
914 non-empty.
915 * except.c (expand_start_catch_block): Set TREE_USED to avoid
916 warnings about the catch handler.
917
918Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
919
920 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 921 expand_target_expr.
be99da77
MS
922
923Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
924
925 Fix access control to use trees rather than integers.
926 * class.c (access_{default, public, protected, private,
927 default_virtual, public_virtual, private_virtual}_node): Add
928 definitions.
929 (init_class_processing): Do creation of those nodes.
930 * cp-tree.h (access_type): Delete enum decl.
931 (access_{default, public, protected, private, default_virtual,
932 public_virtual, private_virtual}_node): Add decls.
933 (compute_access): Change return type.
934 * search.c (compute_access): Have tree return type, instead of enum.
935 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
936 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
937 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
938 * parse.y (VISSPEC): Make ttype rather than itype.
939 (base_class_access_list): Likewise.
940 * *.[cy]: Change all refs of `access_public' to `access_public_node',
941 etc.
942 * call.c (build_method_call): Make ACCESS be a tree.
943 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
944 * cvt.c (convert_to_aggr): Likewise.
945 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
946 Likewise.
947 * method.c (hack_identifier): Likewise.
948 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
949
950Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
951
952 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
953 frontend, and make it more consistent with respect to
954 warn_pointer_arith.
955
956Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
957
958 * decl.c (pushdecl): Check for duplicate parameter names.
959
960Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
961
962 * decl.c (expand_static_init): Call assemble_external for atexit.
963
964Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
965
966 * except.c (do_unwind): Remove some generated dead code.
967 (eh_outer_context): New routine, factor out some common code from
968 expand_builtin_throw and end_eh_unwinder. Add code to do return
969 address masking for the PA.
970 (expand_builtin_throw): Use eh_outer_context instead of open coding
971 it here.
972 (end_eh_unwinder): Ditto.
973
974Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
975
976 * except.c (expand_throw): Call assemble_external for __empty, if we
977 use it.
978
21451173
MS
979Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
980
981 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
982 NORMAL_RETURN_ADDR_OFFSET.
983 (end_eh_unwinder): Ditto.
984
985Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
986
987 * gc.c (build_dynamic_cast): Make sure we don't cast away const
988 when dealing with references, and make sure we handle dynamic
989 casting to a cv qualified reference.
990
991Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
992
993 * except.c (struct eh_context): New structure top hold eh context
994 information.
995 (push_eh_context): New routine.
996 (pop_eh_context): Ditto.
997 * decl.c (push_cp_function_context): Use them.
998 (pop_cp_function_context): Ditto.
999
1000Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
1001
1002 * decl2.c (finish_file): Also prune uninteresting functions in the
1003 inline emission loop.
1004
1005Wed Dec 20 02:32:07 1995 Jeffrey A Law (law@cygnus.com)
1006
1007 * sig.c (build_signature_table_constructor): Mark functions
1008 in the signature as referenced.
1009
1010Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
1011
1012 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
1013 the inline emission stuff.
1014
72b7eeff
MS
1015Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
1016
1017 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 1018 weak symbols.
72b7eeff
MS
1019 * lang-options.h: Add -f{no-,}weak.
1020 * decl.c (init_decl_processing): If the target does not support weak
1021 symbols, don't use them.
1022 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
1023
1024Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
1025
1026 * init.c (expand_member_init): warning for base init after members.
1027
1028Sun Dec 17 22:06:56 1995 Jeffrey A Law (law@cygnus.com)
1029
1030 * tree.c (tree_copy_lang_decl_for_deferred_output): Handle
1031 CONST_DECLs correctly.
1032
1033Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
1034
1035 * cvt.c (build_expr_type_conversion): Don't convert to a reference
1036 type.
1037
1038Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
1039
1040 * method.c (report_type_mismatch): Improve wording for volatile
1041 mismatches.
1042
1043Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
1044
1045 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 1046 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
1047 copy constructors well. The compiler would do bitwise copying,
1048 instead of ctor calling in some cases.
1049
1050Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
1051
1052 * g++.c (my_strerror): Return "cannot access" if errno is 0.
1053 (pfatal_with_name, perror_exec): Don't assume that
1054 the returned value from my_strerror contains no '%'s.
1055 (concat): Remove.
1056 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
1057
1058Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
1059
1060 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
1061 TYPE_METHODS/TREE_CHAIN mean what they used to.
1062 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
1063 instead of TYPE_METHODS.
1064 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
1065 * tree.c (tree_copy_lang_decl_for_deferred_output): Ditto.
1066 * cp-tree.h (CLASSTYPE_METHODS): Lose.
1067 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
1068 TYPE_METHODS.
1069 (struct lang_decl): Lose next_method field.
1070 (DECL_NEXT_METHOD): Lose.
1071 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
1072 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
1073 anymore.
1074 (finish_struct_methods): Don't mess with the TREE_CHAINs in
1075 fn_fields.
1076
1077 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
1078 vector.
1079
1080 * call.c (build_method_call): Synthesize here even when not inlining.
1081 * typeck.c (build_function_call_real): Ditto.
1082
1083Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
1084
1085 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
1086 == DBX_DEBUG, call dbxout_start_new_source_file and
1087 dbxout_resume_previous_source_file when appropriate.
1088
1089Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
1090
1091 * except.c (start_anon_func): Push to the top level.
1092 (end_anon_func): Pop from the top level.
1093
1094Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
1095
1096 * cp-tree.h (build_cleanup): New routine to build cleanups.
1097 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
1098 call at ctor time and use atexit to run it later.
1099 * decl2.c (build_cleanup): New routine, taken from finish_file.
1100 (finish_file): Use build_cleanup instead, and don't put function
1101 local statics in global dtor list.
1102
1103Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
1104
1105 * except.c (expand_throw): Ensure that we have cleanups, if we try
1106 and expand cleanups.
1107
1108Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
1109
1110 * except.c (expand_throw): Add logic to manage dynamic cleanups for
1111 the EH object.
1112 (expand_end_catch_block): Use the magic of expand_goto, instead of
1113 emit_jump so that we get the cleanup for any catch clause parameter
1114 and the cleanup for the exception object. Update to reflect label
1115 changes.
1116 (push_eh_cleanup): New routine to register a cleanup for an
1117 exception object.
9e9ff709 1118 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
1119 nothing.
1120 (init_exception_processing): Setup empty_fndecl. Setup
1121 saved_cleanup.
1122 (expand_start_catch_block): Update to reflect label changes. Call
1123 push_eh_object to register the cleanup for the EH object.
1124 (start_anon_func): New routine to start building lambda expressions
1125 from trees.
1126 (end_anon_func): New routine to end them.
1127 (struct labelNode): Change so that we can use tree labels, or rtx
1128 labels.
1129 (saved_cleanup): Object to check for dynamic cleanups for the
1130 exception handling object.
1131 (push_label_entry): Change so that we can use tree labels, or rtx
1132 labels.
1133 (pop_label_entry): Ditto.
1134 (top_label_entry): Ditto.
1135 (expand_start_all_catch): Use tree label instead of rtx label, so
1136 that we can get the magic of expand_goto.
1137 (expand_end_all_catch): Update to reflect label changes.
1138
1139 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
1140 use UNSAVE_EXPRs.
1141 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
1142 building_cleanup logic, as we now use UNSAVE_EXPRs.
1143 * cp-tree.h (unsave_expr): Declare it.
1144 * decl.c (building_cleanup): Remove.
1145 (maybe_build_cleanup): Remove building_cleanup logic, and use
1146 UNSAVE_EXPR instead.
1147
1148Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
1149
1150 * gc.c (build_t_desc): Update error message to say <typeinfo>.
1151
1152Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1153
1154 * decl.c (pushdecl): Only warn about shadowing a local variable if
1155 warn_shadow is true.
1156
1157Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
1158
1159 * typeck.c (build_binary_op_nodefault): Added warning about
1160 comparisons between different enum types with -Wall, unless
1161 -fenum-int-equiv set.
1162
1163Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
1164
1165 * class.c (finish_struct_1): Skip down to the inner type in
1166 multidimensional arrays. Ensures ctors will be made for types that
1167 need constructing.
1168
1169Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
1170
1171 * decl.c (last_dtor_insn): New to track the last compiler generated
1172 insn in a dtor.
1173 (store_parm_decls): Set it.
1174 (finish_function): Use it to see if the dtor is empty. Avoid doing
1175 vtable setup all the time, if we can.
1176 (struct cp_function): Add last_dtor_insn.
1177 (push_cp_function_context): Save it.
1178 (pop_cp_function_context): Restore it.
1179
1180Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
1181
1182 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 1183 warnings.
72b7eeff
MS
1184
1185Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
1186
1187 * typeck.c (expand_target_expr): Make sure targets get put into the
1188 current temp_slot_level, so that the free_temp_slots call will reuse
1189 them.
1190
1191Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
1192
1193 * class.c (finish_struct_1): Delay delta fixups for virtual bases
1194 until after we have done the hard virtuals, to avoid a bogus `every
1195 virtual function must have a unique final overrider' for virtual
1196 functions that are only overridden by hard virtuals.
1197
1198Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
1199
1200 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 1201 template for a member function.
72b7eeff
MS
1202
1203Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
1204
1205 * g++.c (main): Add handling of -nodefaultlibs.
1206
1207Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
1208
1209 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
1210 distinguish between direct bindings of reference variables, and
1211 indirect bindings of reference variables.
1212 * cvt.c (build_up_reference): Use it.
1213 * typeck.c (convert_arguments): Use it to indicate this is an
1214 indirect binding.
1215 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
1216 as they are unused.
1217 (expand_static_init): Diotto.
1218 (cplus_expand_expr_stmt): Ditto.
1219 * decl2.c (finish_file): Ditto.
1220 * init.c (perform_member_init): Ditto.
1221 (emit_base_init): Ditto.
1222 (expand_aggr_vbase_init_1): Ditto.
1223
1224Fri Nov 10 09:19:31 1995 Jeffrey A Law (law@cygnus.com)
1225
1226 * tree.c (tree_copy_lang_decl_for_deferred_output): Handle
1227 copying of DECL_ARGUMENTS field.
1228 (tree_copy_lang_type_for_deferred_output): Handle disgusting
1229 re-use of TYPE_LANG_SPECIFIC for pointer to member function
1230 type nodes.
1231
1232Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1233
1234 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
1235 get a DECL_LANG_SPECIFIC node.
1236 * cp-tree.h (lang_decl_flags): Add new member `level'.
1237 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
1238 decl_flags level member.
1239
1240Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1241
1242 * call.c (build_method_call): Make sure instance has a
1243 TYPE_LANG_SPECIFIC node before we dive into it.
1244
1245Sat Nov 4 20:01:52 1995 Jason Molenda (crash@phydeaux.cygnus.com)
1246
1247 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
1248
1249Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
1250
1251 * decl.c (duplicate_decls): When smashing decls, smash staticness in
1252 the usual way.
1253
1254Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
1255
1256 * decl.c (poplevel): Handle the merging of subblocks of cleanups
1257 when finishing blocks that have already been created (usually due to
1258 the fixup goto code). Fixes bad debugging information.
1259
1260Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
1261
1262 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
1263 that's not a list of overloaded functions.
1264
1265Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1266
1267 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
1268 before trying to use DECL_ABSTRACT_VIRTUAL_P.
1269
1270Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
1271
1272 * decl2.c (mark_used): New function for hooking into setting of
1273 TREE_USED on decls.
1274 * call.c (build_method_call): Use it.
1275 * class.c (instantiate_type): Ditto.
1276 * init.c (build_offset_ref): Ditto. Don't call assemble_external
1277 for all like-named functions.
1278 * method.c (hack_identifier): Ditto.
1279 (emit_thunk): Don't call assemble_external.
1280 (make_thunk): Create thunk as a FUNCTION_DECL so that it
1281 gets the right mode and ENCODE_SECTION_INFO works.
1282
1283 * parse.y: Use mark_used. Pass operator names to do_identifier.
1284 * lex.c (do_identifier): Handle operator names.
1285
1286 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
1287
1288Thu Oct 26 20:58:59 1995 Jeffrey A Law (law@cygnus.com)
1289
1290 * cp/tree.c (tree_copy_lang_decl_for_deferred_output): Handle
1291 FIELD_DECLs and VAR_DECLs correctly.
1292
1293Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1294
1295 * errfn.c: Include stdio.h.
1296 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
1297
1298Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
1299
1300 * typeck2.c (digest_init): Always convert initializers to the
1301 right type.
1302
1303Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
1304
1305 * init.c (member_init_ok_or_else): Don't allow member initializers
1306 for indirect members, as it is invalid.
1307
1308Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1309
1310 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
1311
1312Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
1313
1314 * parse.y (for.init.statement): Catch compound statements inside for
1315 initializations, if we're being pedantic.
1316
1317Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
1318
1319 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
1320 looking for.
1321
1322Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
1323
1324 * error.c (dump_expr): Don't core dump when a boolean expression is
1325 used as a default argument.
1326
1327Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
1328
1329 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 1330 RETURN_IN_MEMORY.
72b7eeff
MS
1331
1332Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
1333
1334 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
1335 BLKmode type that would otherwise be returned in registers.
1336
1337Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1338
1339 * g++.c (WITHLIBC): New macro.
1340 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
1341 saw_libc and pass it at the end if it was set.
1342
1343Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1344
1345 * parse.y (fn.def1): Call split_specs_attrs in
1346 declmods notype_declarator case.
1347
21451173 1348Sun Nov 26 14:47:42 1995 Richard Kenner <kenner@mole.gnu.ai.mit.edu>
1b898c06
MS
1349
1350 * Version 2.7.2 released.
1351
1352Mon Nov 20 14:05:00 1995 Mike Stump <mrs@cygnus.com>
1353
1354 * g++.c (pfatal_with_name): Add missing third argument to concat.
1355
e7843f33
MS
1356Thu Oct 26 13:59:54 1995 Mike Stump <mrs@cygnus.com>
1357
1358 * init.c (expand_aggr_init): Handle cv qualifiers on the object's
1359 type.
1360
21451173 1361Sat Nov 11 08:25:55 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
07674418
MS
1362
1363 * Version 2.7.1 released.
1364
1365Thu Nov 2 17:02:47 1995 Jason Merrill <jason@yorick.cygnus.com>
1366
1367 * call.c (convert_harshness): Handle references to arrays.
1368
1369Fri Oct 27 14:20:21 1995 Jason Merrill <jason@yorick.cygnus.com>
1370
1371 * typeck.c (comp_target_types): Check multi-level pointer
1372 conversions in both directions.
1373
1374Tue Oct 17 21:39:05 1995 Jason Merrill <jason@yorick.cygnus.com>
1375
1376 * parse.y (explicit_instantiation): Fix 'extern template' with no
1377 return type.
1378
1379Mon Oct 16 14:35:20 1995 Jason Merrill <jason@yorick.cygnus.com>
1380
1381 * parse.y (explicit_instantiation): Support automatic instantiation
1382 of constructors.
1383 (named_class_head_*): Support out-of-class definition of nested
1384 types.
1385
f30432d7
MS
1386Wed Oct 11 12:20:56 1995 Mike Stump <mrs@cygnus.com>
1387
1388 * search.c (envelope_add_decl): New routine. Fix so that
1389 methods are hidden in the same way that other members are.
1390 (dfs_pushdecls): Cleanup and move functionality out of line,
1391 into envelope_add_decl.
1392
1393Tue Oct 10 15:46:01 1995 Mike Stump <mrs@cygnus.com>
1394
1395 * typeck.c (mark_addressable): Only call assemble_external if we
1396 have started the output file.
1397
1398Tue Oct 10 11:27:18 1995 Jason Merrill <jason@yorick.cygnus.com>
1399
1400 * decl.c (start_function): Fix earlier cv-quals change.
1401
1402Mon Oct 9 23:53:05 1995 Mike Stump <mrs@cygnus.com>
1403
1404 * parse.y (complex_direct_notype_declarator): Only push the class if
1405 we are not already in the class.
1406
1407Mon Oct 9 11:22:03 1995 Doug Evans <dje@canuck.cygnus.com>
1408
1409 * decl.c (duplicate_decls): Call merge_machine_decl_attributes.
1410 Update olddecl's attributes too.
1411 (grokdeclarator): #if 0 out call to build_decl_attribute_variant.
1412 * typeck.c (common_type): Call merge_machine_type_attributes.
1413
1414Fri Oct 6 14:44:27 1995 Mike Stump <mrs@cygnus.com>
1415
1416 * typeck.c (mark_addressable): Add missing call to
1417 assemble_external.
1418
1419Wed Oct 4 22:05:23 1995 Jeff Law (law@hurl.cygnus.com
1420
1421 * cp/decl.c (deplicate_decls): Merge in deferred output
1422 status for variables.
1423 * cp/tree.c (tree_copy_lang_decl_for_deferred_output): New
1424 function to copy the g++ specific parts of a DECL node.
1425 (tree_copy_lang_type_for_deferred_output): Similarly for
1426 TYPE nodes.
1427
1428Wed Oct 4 15:06:39 1995 Mike Stump <mrs@cygnus.com>
1429
1430 * decl.c (store_parm_decls): Make sure the unwinder start comes
1431 before the exception specification start.
1432 * except.c (expand_exception_blocks): Make sure the unwinder end
1433 comes after the terminate protected catch clause region and after
1434 the end of the exception specification region.
1435
1436Wed Oct 4 12:47:02 1995 Jason Merrill <jason@yorick.cygnus.com>
1437
1438 * lex.c (real_yylex): Fix identifier case for linemode.
1439 (handle_sysv_pragma): Don't abort when we see a pragma we don't
1440 recognize.
1441
1442Tue Oct 3 14:09:46 1995 Mike Stump <mrs@cygnus.com>
1443
1444 * decl.c (store_parm_decls): Add a call to start_eh_unwinder.
1445 * except.c (init_exception_processing): __throw doesn't take any
1446 arguments.
1447 (expand_builtin_throw): Ditto. Always use Pmode, instead of SImode
1448 for all pointers. Use expand_builtin_return_addr to unwind the
1449 first level off the stack.
1450 (do_unwind): Always use Pmode, instead of SImode for all pointers.
1451 (expand_exception_blocks): Add a call to end_eh_unwinder.
1452 (start_eh_unwinder, end_eh_unwinder): New routines to build machine
1453 independent stack unwinders for function/method calls.
1454
1455Mon Oct 2 17:20:42 1995 Mike Stump <mrs@cygnus.com>
1456
1457 * tree.c (unsave_expr_now): Make sure we process the argument list
1458 of any called functions. Fixes incorrect code generation for
1459 cleanups.
1460
1461Mon Oct 2 13:04:16 1995 Mike Stump <mrs@cygnus.com>
1462
1463 * typeck.c (get_member_function_from_ptrfunc): Save function if it
1464 needs it. Cures core dump on things like (this->*(f()))().
1465
1466Sat Sep 23 22:51:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1467
1468 * decl.c (start_function): Conform to gcc cv-quals convention (no
1469 expression has a cv-qualified type) in RESULT_DECLs.
1470 * method.c (make_thunk): Ditto.
1471
1472Fri Sep 22 10:21:13 1995 Mike Stump <mrs@cygnus.com>
1473
1474 * decl.c (pushtag): Add in the namespace name for the tag.
1475
1476Thu Sep 21 13:11:13 1995 Mike Stump <mrs@cygnus.com>
1477
1478 * parse.y (maybe_base_class_list, base_class_list, base_class,
1479 base_class_access_list): Make sure we see the typenames for base
1480 classes.
1481 * lex.c (see_typename): Instead of failing to see a typename when
1482 there is no next token, perfer a typename, and get the next token.
1483
1484Wed Sep 20 12:35:27 1995 Michael Meissner <meissner@cygnus.com>
1485
1486 * decl.c (init_decl_processing): Add __builtin_expect.
1487
1488Tue Sep 19 16:48:11 1995 Mike Stump <mrs@cygnus.com>
1489
1490 * cvt.c (cp_convert_to_pointer): Don't allow leftover conversions to
1491 or from pointer to member functions, they must all be handled before
1492 this point.
1493
1494Fri Sep 15 17:14:47 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1495
1496 * init.c (resolve_offset_ref): Fix wording of non-static member
1497 being referenced as a static.
1498
1499Fri Sep 15 12:39:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1500
1501 * typeck.c (build_indirect_ref): Only bash pointer if we actually
1502 call build_expr_type_conversion.
1503
1504Thu Sep 14 18:24:56 1995 Jason Merrill <jason@deneb.cygnus.com>
1505
1506 * cvt.c (build_expr_type_conversion): Handle conversion from
1507 reference.
1508 * typeck.c (build_indirect_ref): Avoid infinite recursion.
1509
1510Thu Sep 14 17:23:28 1995 Mike Stump <mrs@cygnus.com>
1511
1512 * decl.c (expand_start_early_try_stmts): New routine to start a try
1513 block at the start of the function, for function-try-blocks.
1514 * cp-tree.h (expand_start_early_try_stmts): Declare it.
1515 * parse.y (function_try_block): Use it, instead of doing it here, as
1516 we don't want to include rtl.h here, as that conflicts with RETURN
1517 in the parser.
1518
1519Wed Sep 13 18:32:24 1995 Mike Stump <mrs@cygnus.com>
1520
1521 * lex.c (reinit_parse_for_block): Support saving inline
1522 function-try-blocks, uses peekyylex.
1523 * parse.y (eat_saved_input): New rule, permit the parser to see that
1524 END_OF_SAVED_INPUT is ok, as it can see this when parsing the
1525 handlers of a function-try-block.
1526 (fndef): Use it.
1527 (component_decl): Make sure TRY and RETURN can come after fn.def2.
1528 * spew.c (peekyylex): New routine to peek at what will come next.
1529
cf54380f
JM
1530Wed Sep 13 16:52:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1531
f30432d7 1532 * typeck.c (comptypes): Tighten up comparisons of template type
9e9ff709 1533 parms.
f30432d7 1534
cf54380f
JM
1535 * decl.c (duplicate_decls): Turn off whining about virtual functions
1536 redeclared inline for now.
1537
f30432d7
MS
1538Wed Sep 13 11:13:40 1995 Mike Stump <mrs@cygnus.com>
1539
1540 * decl.c (store_in_parms): New routine to put things before we
1541 put base inits.
1542 * cp-tree.h (store_in_parms): Declare it.
1543 * decl.c (store_parm_decls): Use it to makr sure the starting of the
1544 eh spec comes before base inits.
1545 (finish_function): Use sequences instead of the obsolete
1546 reorder_insns.
1547 * parse.y (fndef): Enhance readability and maintainability. Update
1548 to include function_try_block syntax.
1549 (function_try_block): Add.
1550
1551Tue Sep 12 17:43:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1552
1553 * call.c (convert_harshness): Use comptypes, not ==, to check if
1554 TYPE and PARMTYPE are equivalent on a function type.
1555
2453e8d1
DR
1556Tue Sep 12 17:31:33 1995 Douglas Rupp (drupp@cs.washington.edu)
1557
1558 * Make-lang.in (cc1plus) : Removed unnecessary $(exeext).
1559
f30432d7
MS
1560Mon Sep 11 23:24:07 1995 Mike Stump <mrs@cygnus.com>
1561
1562 * except.c (expand_throw): Never allocate storage for thrown pointer
1563 to objects.
1564
1565Mon Sep 11 19:36:45 1995 Mike Stump <mrs@cygnus.com>
1566
1567 * except.c (expand_start_catch_block): Pointers to objects come
1568 back from catch matching already dereferenced, don't dereference
1569 again.
1570
1571Mon Sep 11 15:46:28 1995 Mike Stump <mrs@cygnus.com>
1572
1573 * except.c (expand_throw): Only decay the throw expression, don't do
1574 any default conversions. This is so that one can throw and catch
1575 characters, and not have them match integers.
1576
1577Mon Sep 11 13:46:45 1995 Mike Stump <mrs@cygnus.com>
1578
1579 * error.c (dump_aggr_type): Deal with anonymous unions that don't
1580 have a TYPE_NAME.
1581
38267a70
BK
1582Fri Sep 8 20:40:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1583
1584 * lex.c (handle_sysv_pragma): Deal with getting a comma from yylex.
1585
f30432d7
MS
1586Fri Sep 8 15:51:41 1995 Mike Stump <mrs@cygnus.com>
1587
1588 * except.c (expand_end_eh_spec): Handle empty EH specifications.
1589
1590Fri Sep 8 15:27:22 1995 Mike Stump <mrs@cygnus.com>
1591
1592 * cp-tree.h (expand_start_eh_spec): Declare new routine.
1593 (expand_end_eh_spec): Ditto.
1594 * decl.c (store_parm_decls): Call expand_start_eh_spec to process
1595 exception specifications.
1596 * except.c (expand_leftover_cleanups): Remove unused parameter.
1597 (expand_end_catch_block): Ditto.
1598 (expand_exception_blocks): Ditto.
1599 (expand_start_eh_spec): New routine to mark the start of an
1600 exception specification region.
1601 (expand_end_eh_spec): New routine to mark the end of an exception
1602 specification region.
1603 (expand_exception_blocks): Call expand_end_eh_spec to process
1604 exception specifications.
1605
b37d04bc
PB
1606Fri Sep 8 14:40:48 1995 Per Bothner <bothner@kalessin.cygnus.com>
1607
1608 * lex.c (do_identifier): Use global binding in preference of
1609 dead for local variable.
1610
f30432d7
MS
1611Wed Sep 6 19:32:59 1995 Mike Stump <mrs@cygnus.com>
1612
1613 * cp-tree.h (build_exception_variant): Remove used first argument.
1614 * decl.c (duplicate_decls): Ditto.
1615 (grokfndecl): Ditto.
1616 (revert_static_member_fn): Ditto.
1617 * decl2.c (grok_method_quals): Ditto.
1618 * tree.c (build_exception_variant): Ditto.
1619 * typeck.c (common_type): Ditto.
1620 * decl2.c (grokclassfn): After changing the type, call
1621 build_exception_variant, if necessary.
1622
1623Tue Sep 5 15:56:27 1995 Mike Stump <mrs@cygnus.com>
1624
1625 * except.c (expand_throw): Run cleanups for the throw expression.
1626
1627Wed Aug 30 15:24:38 1995 Stephen L. Favor (sfavor@tigger.intecom.com)
1628
1629 * except.c (expand_builtin_throw): Moved gen_label_rtx calls beyond
1630 the store_parm_decls call which does initialization in the emit_*
1631 code concerning label numbering.
1632
1633Thu Aug 31 09:01:07 1995 Mike Stump <mrs@cygnus.com>
1634
1635 * except.c (expand_internal_throw): Let the frontend be responsible
1636 for managing all frontend EH parameters, the backend routine only
1637 needs to deal with backend values. type and value are no longer
1638 passed to __throw.
1639 (init_exception_processing): Ditto.
1640 (expand_start_all_catch): Ditto.
1641 (expand_end_all_catch): Ditto.
1642 (expand_leftover_cleanups): Ditto.
1643 (expand_end_catch_block): Ditto.
1644 (expand_builtin_throw): Ditto.
1645 (expand_throw): Ditto.
1646
1647Tue Aug 29 15:04:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1648
1649 * cp-tree.h (DECL_REAL_CONTEXT): Give the real declaration context
1650 for a decl.
1651 * decl.c (cp_finish_decl): Use it.
1652
1653Tue Aug 29 10:30:27 1995 Mike Stump <mrs@cygnus.com>
1654
1655 * except.c (expand_internal_throw): Oops, almost forgot type and
1656 value are now trees.
1657
1658Mon Aug 28 17:57:45 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1659
1660 Fix the attribute handling to make sure they get noted before we
1661 create the function's RTL, in case they can affect that.
1662 * decl.c (grokfndecl): New arg ATTRLIST. Run
1663 cplus_decl_attributes before creating the decl's rtl.
1664 (grokdeclarator): New arg ATTRLIST, passed down into grokfndecl.
1665 (shadow_tag, groktypename, start_decl, start_method): Pass a
1666 NULL_TREE to grokdeclarator's new last arg.
1667 * decl2.c (grokfield): New arg ATTRLIST, passed into grokdeclarator.
1668 (grokbitfield, grokoptypename): Pass a NULL_TREE to
1669 grokdeclarator's new last arg.
1670 * except.c (expand_start_catch_block): Likewise.
1671 * pt.c (process_template_parm, end_template_decl,
1672 do_function_instantiation): Likewise.
1673 * cp-tree.h (grokfield): Add arg.
1674 (grokdeclarator): Move the prototype from here...
1675 * decl.h: ...to here.
1676 * lex.c (cons_up_default_function): Pass NULL_TREE to grokfield
1677 ATTRLIST argument.
1678 * parse.y: Create a list for the grokfield arg where appropriate,
1679 and pass it down instead of calling cplus_decl_attributes.
1680
1681Mon Aug 28 15:07:24 1995 Mike Stump <mrs@cygnus.com>
1682
1683 * except.c: Always allow turning on exception handling. Allow cross
1684 compilations to use EH.
1685
1686Thu Aug 24 17:39:24 1995 Mike Stump <mrs@cygnus.com>
1687
1688 * except.c (saved_pc, saved_throw_type, saved_throw_value): Use
1689 trees, instead of rtxs, and don't depend on using special machine
1690 dependent registers.
1691 (expand_internal_throw): Ditto.
1692 (init_exception_processing): Ditto.
1693 (expand_start_all_catch): Ditto.
1694 (expand_end_all_catch): Ditto.
1695 (expand_start_catch_block): Ditto.
1696 (expand_leftover_cleanups): Ditto.
1697 (expand_end_catch_block): Ditto.
1698 (expand_builtin_throw): Ditto.
1699 (expand_throw): Ditto.
1700
1701Wed Aug 23 17:25:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1702
1703 * cvt.c (build_expr_type_conversion): Handle conversions to
1704 reference types.
1705
1706Wed Aug 23 15:33:59 1995 Mike Stump <mrs@cygnus.com>
1707
1708 * except.c (do_unwind): Work around backend bug with -fpic.
1709
fb409a19
PB
1710Tue Aug 22 17:20:07 1995 Per Bothner <bothner@kalessin.cygnus.com>
1711
1712 * decl2.c (flag_new_for_scope): Add a new mode that follows ANSI
1713 for-scoping, but supports (and warns about) old programs.
1714 Make the new mode (with value 1) the default.
1715 (lang_f_options): The on-value for flag_new_for_scope is now 2.
1716 * cp-tree.h (DECL_DEAD_FOR_LOCAL, DECL_ERROR_REPORTED): New macros
1717 (DECL_SHADOWED_FOR_VAR): Likewise.
1718 * decl.c (struct binding_level): New fields dead_vars_from_for
1719 and is_for_scope.
1720 (note_level_for_for): New function.
1721 (poplevel): Special processing if is_for_scope.
1722 (pushdecl): Warn if for-scope variable shadows local.
1723 * lex.c (do_identifier): Handle old (non-ANSI) for scoping,
1724 and warn if conflicts.
1725 * parse.y (FOR): Call note_level_for_for.
1726
f30432d7
MS
1727Mon Aug 21 10:28:31 1995 Jason Merrill <jason@deneb.cygnus.com>
1728
1729 * decl2.c (import_export_inline): Class interface hackery does not
1730 apply to synthesized methods.
1731
1732Sun Aug 20 16:29:00 1995 Mike Stump <mrs@cygnus.com>
1733
1734 * search.c (virtual_context): Find the right context more often.
1735 Solves a `recoverable compiler error, fixups for virtual function'
1736 problem.
1737
1738Sun Aug 20 13:53:24 1995 Mike Stump <mrs@cygnus.com>
1739
1740 * except.c (expand_start_all_catch): Ensure that we always transfer
1741 control to the right EH handler, by rethrowing the end label on the
1742 region, instead of hoping we are nested and falling through.
1743 (expand_leftover_cleanups): Ditto.
1744 (end_protect): Since we now rethrow the end label, put a
1745 nop after it, so that outer regions are recognized.
1746 * init.c (build_vec_delete_1): New routine to handle most of vector
1747 deleting, all code moved here from build_vec_delete.
1748 (build_array_eh_cleanup): Use build_vec_delete_1 to do all the real
1749 work.
1750 (expand_vec_init): If the array needs partial destructing, setup an
1751 EH region to handle it.
1752 (build_vec_delete): Move lots of code to build_vec_delete_1, use
1753 build_vec_delete_1 to do the grunt work.
1754
1755Sat Aug 19 14:25:33 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1756
1757 Handle decl attributes properly for function definitions without
1758 previous attribute-loaded declarations.
1759 * decl.c (start_function): New arg ATTRS. Add a call to
1760 cplus_decl_attributes with it before we create the RTL.
1761 * cp-tree.h (start_function): Update prototype.
1762 * parse.y (fn.def1): Pass ATTRS into start_function instead of
1763 trying to call cplus_decl_attributes too late. Pass a NULL_TREE
1764 for other use.
1765 * decl2.c (finish_file): Pass NULL_TREE as fourth arg to
1766 start_function.
1767 * method.c (synthesize_method): Likewise.
1768 * except.c (expand_builtin_throw): Likewise for start on __throw.
1769
1770Sat Aug 19 13:36:08 1995 Mike Stump <mrs@cygnus.com>
1771
1772 * class.c (set_rtti_entry): Turn on -fvtable-thunk -frtti support.
1773 This changes -fvtable-thunks vtable layout, so a recompile will be
1774 necessary, if you use -fvtable-thunks.
1775 (get_vtable_entry): Use n, instead of i to be consistent with the
1776 rest of the compiler.
1777 (get_vtable_entry_n): Ditto.
1778 (add_virtual_function): Add a slot for the tdesc, if -fvtable-thunks
1779 are being used.
1780 (finish_struct_1): Ditto.
1781 (skip_rtti_stuff): New routine to collapse similar code from many
1782 different parts of the compiler. I think I got them all.
1783 (modify_one_vtable): Use it.
1784 (fixup_vtable_deltas1): Ditto.
1785 (override_one_vtable): Ditto.
1786 * decl2.c (mark_vtable_entries): Ditto.
1787 * tree.c (debug_binfo): Ditto.
1788 * search.c (expand_upcast_fixups): Ditto.
1789 (get_abstract_virtuals_1): Ditto. Use virtuals, instead of tmp to
1790 consistent with the rest of the compiler.
1791 (get_abstract_virtuals): Ditto.
1792 * cp-tree.h (skip_rtti_stuff): New routine, declare it.
1793 * gc.c (build_headof): Support -fvtable-thunk and -frtti together.
1794 (build_typeid): Ditto.
1795 (build_classof): Remove old style way of doing rtti. Remove support
1796 for `classof' and `headof'.
1797 * gxx.gperf: Ditto.
1798 * hash.h: Ditto.
1799 * parse.y: Ditto.
1800
1801Fri Aug 18 17:31:58 1995 Jason Merrill <jason@deneb.cygnus.com>
1802
1803 * decl.c (start_function): Clear ctor_label and dtor_label.
1804
1805 * class.c (finish_struct_1): Fix handling of access decls.
1806
1807Tue Aug 15 19:21:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1808
1809 * class.c (finish_struct): Only do minimal processing here, so it
1810 can be used for class template definitions, as well.
1811 (finish_struct_1): New function with the rest of the code.
1812
1813Tue Aug 15 09:46:16 1995 Mike Stump <mrs@cygnus.com>
1814
1815 * class.c (prepare_fresh_vtable): On second though, always build the
1816 offset (see Aug 10 change), unless -fvtable-thunks is given. It
1817 does this by calling the new routine set_rtti_entry.
1818 (finish_struct): Ditto.
1819 (set_rtti_entry): New routine to update the rtti information at the
1820 start of the vtable.
1821
1822Mon Aug 14 12:21:22 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
1823
1824 * error.c (dump_decl, case IDENTIFIER_NODE): Only work on a dtor
1825 if it's declared in the C++ language spec.
1826 (dump_function_decl): Likewise.
1827 (dump_function_name): Likewise.
1828 (ident_fndecl): Make sure we got something back from lookup_name.
1829 * decl.c (start_function): Likewise.
1830
1831Fri Aug 11 16:52:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1832
1833 * call.c (build_method_call): Don't call build_new when calling a
1834 constructor without an instance.
1835
1836Thu Aug 10 20:00:17 1995 Mike Stump <mrs@cygnus.com>
1837
1838 * class.c (prepare_fresh_vtable): Always build the offset to the
1839 complete object, as it doesn't cost much. This allows dynamic_cast
1840 to void * to work when -frtti isn't given.
1841 (finish_struct): Ditto.
1842
1843Thu Aug 10 16:31:28 1995 Mike Stump <mrs@cygnus.com>
1844
1845 * except.c (build_eh_type): Split out some functionality to new
1846 routine named build_eh_type_type.
1847 (build_eh_type_type): New routine.
1848 (expand_start_catch_block): Use build_eh_type_type, as we never want
1849 the dynamic type of the catch parameter, just the static type.
1850 Fixes core dumps when -frtti is used and one catchs pointers to
1851 classes.
1852
1853Thu Aug 10 14:55:29 1995 Mike Stump <mrs@cygnus.com>
1854
1855 * except.c (expand_builtin_throw): Since we now use normal calling
1856 conventions for __throw, we have to remove the first layer off the
1857 stack, so that the next context we search for handlers is the outer
1858 context instead of the context that had the call to __throw, if we
1859 don't immediately find the desired context.
1860
1861Tue Aug 8 17:44:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1862
1863 * tree.c (cp_expand_decl_cleanup): Returns int, not tree.
1864 * cp-tree.h: Update.
1865
1866 * parse.y (template_type_parm): Add support for `typename'.
1867
1868Tue Aug 8 12:06:31 1995 Mike Stump <mrs@cygnus.com>
1869
1870 * except.c (expand_internal_throw): New internal routine to throw a
1871 value.
1872 (expand_end_all_catch, expand_leftover_cleanups): All throwers
1873 changed to use `expand_internal_throw' instead of jumping to throw
1874 label.
1875 (expand_end_catch_block, expand_throw): Ditto.
1876 (throw_label): Removed.
1877 (expand_builtin_throw): Changed so that EH parameters are passed by
1878 normal function call conventions. Completes Aug 4th work.
1879
1880Fri Aug 4 17:17:08 1995 Mike Stump <mrs@cygnus.com>
1881
1882 * cp-tree.h (expand_builtin_throw): Declare it.
1883 * decl2.c (finish_file): Call expand_builtin_throw.
1884 * except.c (make_first_label): Remove.
1885 (init_exception_processing): Don't use a LABEL_REF for throw_label,
1886 instead use a SYMBOL_REF, this is so that we don't use LABEL_REFs in
1887 other functions that don't really appear in those functions. This
1888 solves a problem where cc1plus consumed exponential amounts of
1889 memory when -Wall was used.
1890 (expand_end_all_catch, expand_leftover_cleanups,
1891 expand_end_catch_block, expand_throw): Change all uses of
1892 throw_label to match new style.
1893 (do_unwind): Rename parameter to inner_throw_label, as it is now
1894 different from throw_label. Also, assume that our caller will wrap
1895 the passed label with a LABEL_REF, if needed.
1896 (expand_builtin_throw): Make external, change so that the generated
1897 throw is now a real function.
1898 (expand_exception_blocks): Never generate throw code inside another
1899 function.
1900
1901Fri Aug 4 12:20:02 1995 Mike Stump <mrs@cygnus.com>
1902
1903 * decl.c (grokdeclarator): Move checking of mutable const objects
1904 and mutable static objects down, as we might decide during parsing
1905 to unset staticp or constp (for example, when const is part of the
1906 object being pointed to).
1907
1908Thu Aug 3 17:13:43 1995 Mike Stump <mrs@cygnus.com>
1909
1910 * except.c (output_exception_table_entry): Enhance portability to
1911 weird machines.
1912 (emit_exception_table): Ditto.
1913
1914Thu Aug 3 16:41:38 1995 Mike Stump <mrs@cygnus.com>
1915
1916 * typeck.c (build_ptrmemfunc): Handle casting of pointer to
1917 non-virtual member functions.
1918
1919Wed Aug 2 11:58:25 1995 Mike Stump <mrs@cygnus.com>
1920
1921 * gc.c (build_typeid): Strip cv qualifiers so that const T&, T&, T
1922 and const T all match.
1923
1924Wed Aug 2 11:25:33 1995 Mike Stump <mrs@cygnus.com>
1925
1926 * except.c (build_eh_type): Strip cv qualifiers so that const T&,
1927 T&, T and const T all match.
1928
1929Tue Aug 1 14:20:16 1995 Mike Stump <mrs@cygnus.com>
1930
1931 * except.c: Fix up comments, cleanup code and eliminate exceptNode,
1932 exceptStack, exceptstack, push_except_stmts, pop_except_stmts,
1933 new_except_stack, push_last_insn, pop_last_insn, insn_save_node and
1934 InsnSave. Also, numerous speed improvements, and correctness
1935 improvements. Double faulting in all situations should now be
1936 handled correctly.
1937 (expand_start_all_catch): Instead of having many terminate protected
1938 regions, just have one.
1939 (expand_start_catch_block): No longer have to protect
1940 false_label_rtx, as it isn't used for EH region marking.
1941 (expand_end_catch_block): Expand out EH cleanups here by using
1942 expand_leftover_cleanups.
1943 (expand_end_all_catch): Use sequences instead of playing with insn
1944 links directly.
1945 (expand_exception_blocks): Ditto. Also protect all catch clauses
1946 with one terminate region.
1947
1948Mon Jul 31 13:24:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1949
1950 * method.c (report_type_mismatch): Don't talk about an object
1951 parameter for non-methods.
1952
1953Sun Jul 30 13:13:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1954
1955 * class.c (finish_struct): Catch private and protected members of
1956 anonymous unions here.
1957 * decl2.c (finish_anon_union): And here.
1958 * parse.y: Instead of here.
1959
1960 * errfn.c (ARGSLIST): Support passing four args.
1961 * error.c (cv_as_string): New function.
1962 (cp_printers): Add it.
1963 * call.c (build_method_call): Report 'const' at end of pseudo-decl.
1964
1965 * method.c (report_type_mismatch): Deal with a bad_arg of 0.
1966
1967 * init.c (expand_aggr_init): Handle volatile objects, too.
1968
1969Sat Jul 29 13:42:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1970
1971 * decl.c (struct binding_level): Keep list of incomplete decls.
1972 (print_binding_level): Use list_length to count them.
1973 (pushdecl): Build up the list.
1974 (hack_incomplete_structures): Walk it and prune completed decls.
1975
1976Fri Jul 28 15:26:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1977
1978 * typeck.c (comp_target_types): Don't check const and volatile for
1979 function types.
1980 (comp_ptr_ttypes_real): Ditto.
1981
1982Thu Jul 27 15:40:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
1983
1984 * typeck.c (comp_target_types): Fix.
1985
1986Thu Jul 27 15:10:48 1995 Mike Stump <mrs@cygnus.com>
1987
1988 * cp-tree.h (unsave_expr_now, build_unsave_expr,
1989 cp_expand_decl_cleanup): Declare new routines.
1990 * decl.c (cp_finish_decl, store_parm_decls,
1991 hack_incomplete_structures): Change all cals from
1992 expand_decl_cleanup to cp_expand_decl_cleanup.
1993 * gc.c (protect_value_from_gc): Ditto.
1994 * expr.c (cplus_expand_expr): Handle UNSAVE_EXPRs.
1995 * tree.c (unsave_expr): New routine to build an UNSAVE_EXPR.
1996 (unsave_expr_now): Backend routine used by tree expander.
1997 (cp_expand_decl_cleanup): Wrap second argument in an UNSAVE_EXPR to
1998 work around a limitation in the backend. The backend uses the
1999 cleanups multiple times, on disjoint control flows, so we cannot
2000 pass unsaved SAVE_EXPRs to the backend.
2001 * tree.def (UNSAVE_EXPR): New tree code.
2002 * typeck.c (c_expand_return): Move goto/return code up inside
2003 conditional, as we don't always want to do this, we only want to do
2004 this when we don't otherwise finish with this control flow.
2005
2006Thu Jul 27 10:38:43 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2007
2008 * parse.y (typespec): Only complain about typeof if we're not
2009 getting it from a system header.
2010
2011Thu Jul 27 10:26:23 1995 Doug Evans <dje@canuck.cygnus.com>
2012
2013 Clean up prefix attribute handling.
2014 * parse.y (reserved_declspecs): Link prefix attributes with declspecs.
2015 (declmods): Likewise.
2016 (all rules that reference typed_declspecs and declmods): Call
2017 split_specs_attrs or strip_attrs to separate declspecs and attrs.
2018 (lang_extdef): Delete resetting of prefix_attributes.
2019 (template_def, notype_declarator rule): Use NULL_TREE for
2020 prefix_attributes.
2021 (condition): Use NULL_TREE for prefix_attributes.
2022 (setattrs): Deleted.
2023 (nomods_initdcl0): Set prefix_attributes to NULL_TREE.
2024 (component_decl): Delete resetting of prefix_attributes.
2025 (component_decl_1, notype_components rule): Use NULL_TREE for
2026 prefix_attributes.
2027 (simple_stmt): Delete resetting of prefix_attributes.
2028
2029Mon Jul 24 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2030
2031 * call.c (convert_harshness): Deal with reference conversions before
2032 others. Actually do array->pointer decay. Call comp_target_types
2033 with pointer types rather than their targets.
2034
2035 * typeck.c (comp_target_types): Avoid assigning D const * to B *.
2036
2037Mon Jul 24 08:54:46 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2038
2039 * pt.c (to_be_restored): Move decl to global scope.
2040
2041Sat Jul 22 12:22:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2042
2043 * decl.c (start_decl): Put back clearing of DECL_IN_AGGR_P.
2044
2045Fri Jul 21 17:09:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2046
2047 * decl.c (grokdeclarator): Downgrade error about 'extern int A::i'
2048 to pedwarn.
2049
2050 * pt.c (instantiate_template): Also avoid instantiation if the
2051 function has already been declared to be a specialization.
2052
2053 * decl2.c (check_classfn): Ignore cname argument, and return the
2054 matching function.
2055
2056 * decl.c (start_decl): Handle declarations of member functions
2057 outside of the class (i.e. specialization declarations).
2058
2059Thu Jul 20 10:34:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2060
2061 * class.c (finish_struct): Don't mess with the type of bitfields.
2062
2063 * various.c: s/TYPE_POINTER_TO/build_pointer_type/.
2064
2065Thu Jul 20 01:43:10 1995 Mike Stump <mrs@cygnus.com>
2066
2067 * init.c (expand_aggr_init): Assume LOOKUP_ONLYCONVERTING if init
2068 is not a parameter list (TREE_LIST).
2069 (expand_default_init): If LOOKUP_ONLYCONVERTING is set, then set
2070 LOOKUP_NO_CONVERSION so that we don't allow two-level conversions,
2071 but don't set it otherwise.
2072
2073Wed Jul 19 20:32:01 1995 Mike Stump <mrs@cygnus.com>
2074
2075 * init.c (expand_default_init): Don't allow two-level conversions
2076 during construction.
2077
2078Wed Jul 19 18:06:37 1995 Mike Stump <mrs@cygnus.com>
2079
2080 * gc.c (build_headof): The type of dyncasting to a pointer to cv
2081 void, should be pointer to cv void.
2082
2083Wed Jul 19 17:25:43 1995 Mike Stump <mrs@cygnus.com>
2084
2085 * gc.c (build_dynamic_cast): Allow casting in const.
2086
2087Wed Jul 19 16:34:27 1995 Mike Stump <mrs@cygnus.com>
2088
2089 * typeck.c (build_const_cast): If we are passed error_mark_node,
2090 return it.
2091
2092Wed Jul 19 15:24:48 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2093
2094 * class.c (push_nested_class): Make sure TYPE is non-nil.
2095
2096 * cvt.c (type_promotes_to): Watch for error_mark_node on the
2097 incoming TYPE.
2098
2099Wed Jul 19 13:23:12 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
f65f5f62
GB
2100
2101 * cp-tree.h (SIGTABLE_VT_OFF_NAME): Renamed from SIGTABLE_OFFSET_NAME.
2102 (SIGTABLE_VB_OFF_NAME): New macro.
2103 (vt_off_identifier): Renamed from offset_identifier.
2104 (vb_off_identifier): Added extern declaration.
2105
2106 * decl.c (vt_off_identifier): Renamed from offset identifier.
2107 (vb_off_identifier): New variable to hold the identifier for the
2108 sigtable field vb_off.
2109 (init_decl_processing): Initialize vb_off_identifier.
2110 Renamed vt_off_identifier from offset_identifier.
2111 * sig.c (build_signature_method_call): Renamed offset_identifier and
2112 local variable offset to vt_off_identifer and vt_off, respecitively.
2113 * sig.c (build_signature_table_constructor): Renamed offset to vt_off.
2114
2115 * decl.c (init_decl_processing): Add vb_off field to
2116 sigtable_entry_type. Reorder fields so that pfn gets properly
2117 aligned at a 64 bit boundary on the Alpha.
2118 * sig.c (build_signature_table_constructor): Build the constructor
2119 according to the new layout. Set the vb_off field to -1 for now.
2120
2121 * decl.c (init_decl_processing): Align sigtable_entry_type on word
2122 boundaries instead of double word boundaries to save space.
2123
f30432d7
MS
2124Tue Jul 18 16:58:37 1995 Mike Stump <mrs@cygnus.com>
2125
2126 * cvt.c (cp_convert): Always call build_cplus_new for a ctor.
2127
2128Tue Jul 18 14:24:53 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2129
2130 * parse.y (opt.component_decl_list): Only forbid private/protected
2131 in anonymous unions. We need to make this know when the type is
2132 defined for an object, to not give the error.
2133
2134Mon Jul 17 14:22:44 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2135
2136 * parse.y (opt.component_decl_list): Don't allow access control
2137 as private or protected for union members.
2138
2139Sun Jul 16 14:01:00 1995 Jim Wilson <wilson@chestnut.cygnus.com>
2140
2141 * lex.c (check_newline): For 'p' case, move goto skipline line to
2142 before end brace for 'pragma'.
2143
2144Fri Jul 7 13:55:58 1995 Mike Stump <mrs@cygnus.com>
2145
2146 * g++.1: Tiny updates.
2147
2148Fri Jul 7 13:05:20 1995 Mike Stump <mrs@cygnus.com>
2149
2150 * decl.c (cp_finish_decl): Only destruct local static variables if
2151 they are constructed, and only construct the first time control
2152 passes completely through its declaration (if not initialized with a
2153 constant-expression).
2154 (expand_static_init): Ditto.
2155
2156Wed Jul 5 14:05:04 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2157
2158 * typeck.c (comptypes, case OFFSET_REF): If either offset basetype
2159 is a TEMPLATE_TYPE_PARM, give a match.
2160
f30432d7
MS
2161Fri Jun 30 15:42:57 1995 Mike Stump <mrs@cygnus.com>
2162
2163 * method.c (build_overload_value): Handle encoding of null pointer
2164 constants (or any pointer with a constant numeric value) for
2165 templates.
2166
42783eab
BK
2167Fri Jun 30 13:45:51 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2168
2169 * call.c (convert_harshness): Add QUAL_CODE when we're faced with
2170 const vs non-const for void conversions.
2171
f30432d7
MS
2172Fri Jun 30 10:19:52 1995 Mike Stump <mrs@cygnus.com>
2173
2174 * except.c (expand_start_all_catch): Fix problem with finding an
2175 outer nested try block when there is no code to separate it from an
2176 inner try block.
2177
2178Fri Jun 30 02:22:26 1995 Mike Stump <mrs@cygnus.com>
2179
2180 * search.c (dfs_pushdecls): Consume 2 or 3 orders of magnitude less
2181 memory please when virtual bases are used.
2182
2183Thu Jun 29 19:03:47 1995 Mike Stump <mrs@cygnus.com>
2184
2185 * class.c (build_vbase_path): Avoid testing things that cannot be
2186 null to see if they are null.
2187 * cvt.c (convert_pointer_to_vbase): Remove code that doesn't work.
2188 * decl.c (finish_function): Pass a type into the new
2189 convert_pointer_to_vbase instead of a binfo.
2190 * search.c (convert_pointer_to_vbase): Rewritten to use get_vbase
2191 and convert_pointer_to_real.
2192 (expand_indirect_vtbls_init): Use convert_pointer_to_vbase instead
2193 of the more cryptic call to get_vbase.
2194
e18923b4 2195Thu Jun 29 09:35:05 1995 Mike Stump <mrs@cygnus.com>
535c9c21
MS
2196
2197 * decl.c (BOOL_TYPE_SIZE): Fix broken SLOW_BYTE_ACCESS check.
2198
f30432d7
MS
2199Thu Jun 29 03:43:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2200
2201 * pt.c (instantiate_template): Don't strip 'this' twice.
2202
2203 * pt.c (coerce_template_parms): Allow null pointer constants.
2204
2205 * decl.c (revert_static_member_fn): But only if DECL_ARGUMENTS is
2206 set.
2207
f30432d7
MS
2208Wed Jun 28 18:39:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2209
2210 * decl.c (revert_static_member_fn): Also remove 'this' from
2211 DECL_ARGUMENTS.
2212 * decl2.c (check_classfn): Don't revert this function until we get a
2213 match.
2214
2215Wed Jun 28 14:07:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2216
2217 * parse.y (component_decl): Clear PREFIX_ATTRIBUTES here.
2218
2219Wed Jun 28 11:05:13 1995 Mike Stump <mrs@cygnus.com>
2220
2221 * decl2.c (finish_file): Handle global vector news.
2222 * init.c (build_new): Encode vector news so that later we will know
2223 how many elements there are.
2224
e18923b4 2225Mon Jun 26 13:38:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
415bfbd0
JM
2226
2227 * expr.c (cplus_expand_expr): Don't mess with temp slots.
2228
f30432d7
MS
2229 * decl2.c (warn_if_unknown_interface): Don't crash if tinst_for_decl
2230 returns null.
2231
2232 * decl2.c (check_classfn): Use revert_static_member_fn.
2233 * decl.c (revert_static_member_fn): Diagnose static member functions
2234 declared const or volatile.
2235
2236 * decl2.c (grokfield): Check for missing default args here, too.
2237 (check_default_args): Function to do the checking.
2238 * decl.c (pushdecl): Use it.
2239
2240 * decl.c (pushdecl): Don't warn about shadowing a member of `this'
2241 if there is no `this'.
2242
2243Sun Jun 25 11:34:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2244
2245 * call.c (build_method_call): Downgrade 'called before definition'
2246 to a warning, as it ought to go away after Monterey.
2247
2248Sat Jun 24 14:18:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2249
2250 * pt.c (coerce_template_parms): Don't do extra checking on pointer
2251 to member arguments.
2252
2253 * class.c (finish_struct): const and reference members don't prevent
2254 a class from being an aggregate.
2255
2256 * class.c (finish_struct): Signatures are always aggregates.
2257
f7d9d4a8
JM
2258Fri Jun 23 17:20:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2259
f30432d7
MS
2260 * decl2.c (check_classfn): Improve error message.
2261
2262 * pt.c (tsubst): Handle PROMOTE_PROTOTYPES.
f7d9d4a8 2263
f7522313
JM
2264Thu Jun 22 01:50:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2265
f30432d7 2266 * typeck.c (comptypes): Don't ignore method quals.
f7522313 2267
f30432d7
MS
2268 * class.c (finish_struct): Non-abstract virtuals are always USED.
2269
2270 * decl.c (build_ptrmemfunc_type): The underlying union type isn't
2271 IS_AGGR_TYPE, either.
2272 * class.c (finish_struct): Use CLASSTYPE_NON_AGGREGATE instead.
2273 * cp-tree.h: Ditto.
2274
2275 * cp-tree.h (lang_type): Add aggregate.
2276 (CLASSTYPE_AGGREGATE): New macro.
2277 (TYPE_NON_AGGREGATE_CLASS): Ditto.
2278 * class.c (finish_struct): Determine whether a class is an
2279 aggregate.
2280 * decl.c (cp_finish_decl): Check TYPE_NON_AGGREGATE_CLASS instead of
2281 TYPE_NEEDS_CONSTRUCTING.
2282 * typeck2.c (digest_init): Check TYPE_NON_AGGREGATE_CLASS for
2283 subobjects, too.
2284
2285 * pt.c (tsubst, PARM_TYPE): Propagate DECL_ARTIFICIAL.
d8f1d487
RK
2286
2287 * decl.c (start_function): For pre-parsed functions, layout all of
2288 the parm decls again.
2289 (grokvardecl): TREE_PUBLIC depends on DECL_THIS_EXTERN, not
2290 DECL_EXTERNAL.
2291
f30432d7
MS
2292 * pt.c (coerce_template_parms): Improve checking for invalid
2293 template parms.
2294
2295Wed Jun 21 12:01:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
2296
2297 * decl.c (grokdeclarator): Forbid declaration of a static member
2298 with the same name as its enclosing class.
2299
d8f1d487
RK
2300Mon Jun 19 10:28:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2301
2302 * decl.c (finish_function): Clear current_class_decl.
2303
2304 * typeck.c (build_conditional_expr): Use convert (boolean_type_node
2305 instead of truthvalue_conversion.
2306
2307 * class.c (finish_struct): A data member with the same name as the
2308 class doesn't suppress constructors.
2309
2310Fri Jun 16 18:11:39 1995 Gerald Baumgartner (gb@alexander.cs.purdue.edu)
2311
2312 * decl.c (start_function): If current_class_decl is a signature
2313 pointer, don't dereference it but set C_C_D to current_class_decl.
2314
2315Fri Jun 16 17:06:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2316
2317 * decl.c (duplicate_decls): Complain about virtual functions
2318 redeclared to be inline.
2319
2320Fri Jun 16 13:20:38 1995 Mike Stump <mrs@cygnus.com>
2321
2322 * decl.c (get_unique_name): New routine to name unnamed namespaces.
2323 (push_namespace): Use get_unique_name for naming unnamed namespaces.
2324
d3c89e1f
JM
2325Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2326
d8f1d487 2327 * parse.y: Call cplus_decl_attributes with prefix_attributes where
f30432d7 2328 appropriate.
d8f1d487
RK
2329
2330Wed Jun 14 19:24:49 1995 Mike Stump <mrs@cygnus.com>
2331
2332 * search.c (get_vbase): New routine to switch hierarchies from the
2333 CLASSTYPE_VBASECLASSES to the normal one.
2334 (expand_indirect_vtbls_init): Use get_vbase to figure out how we
2335 want to convert to a vbase pointer.
2336
2337Mon Jun 12 17:50:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2338
2339 * pt.c (instantiate_class_template): Add the new instantiation to
f30432d7 2340 template_classes.
d8f1d487
RK
2341 (do_pending_expansions): Call instantiate_member_templates on all of
2342 the classes in template_classes.
2343
2344Mon Jun 12 12:36:59 1995 Mike Stump <mrs@cygnus.com>
2345
2346 * decl.c (complete_array_type): Fill in the TYPE_DOMAIN of our
2347 TYPE_MAIN_VARIANT if it is not filled in.
2348 * init.c (build_delete): If the TYPE_DOMAIN is not set, give an
2349 error instead of core dumping.
2350
2351Mon Jun 12 10:41:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2352
2353 * call.c (can_convert): Also check for distance > 0.
2354 (can_convert_arg): Ditto.
2355 (user_harshness): Ditto.
2356
2357Fri Jun 9 19:17:21 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2358
2359 * g++.c (MATH_LIBRARY): Provide default.
2360 (main): Always link with the math library if we link with libstdc++.
2361
2362 * decl.c (start_function): Complain about redefinition of a function
2363 even when the pending_inline version is compiled after the other
2364 version.
2365
2366Thu Jun 8 15:44:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2367
2368 * gc.c (build_dynamic_cast): Build up a reference to a parameter of
2369 aggregate type.
2370
d8f1d487
RK
2371Wed Jun 7 15:31:57 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
2372
2373 * init.c (build_vec_delete): Resolve an offset ref before we try to
2374 use it.
2375
2376Wed Jun 7 14:19:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2377
2378 * typeck.c (build_modify_expr): If the class lacks a constructor or
2379 assignment operator, return error_mark_node.
2380 (common_type): Use build_cplus_array_type.
2381
2382Tue Jun 6 09:41:27 1995 Mike Stump <mrs@cygnus.com>
2383
2384 * class.c (dont_allow_type_definitions): New variable set when types
2385 cannot be defined.
2386 (finish_struct): Use it.
2387 * cp-tree.h (dont_allow_type_definitions): Define it.
2388 * parse.y (primary, handler_seq): Set it.
2389
2390Mon Jun 5 18:49:38 1995 Mike Stump <mrs@cygnus.com>
2391
2392 * method.c (build_opfncall): Use DECL_CHAIN, not TREE_CHAIN for
2393 results from lookup_fnfields. Always give warning/error on bad
2394 code.
2395
2396Mon Jun 5 11:39:37 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
2397
2398 * init.c (member_init_ok_or_else): Don't allow initialization of
2399 an ancestor's member from within a constructor.
2400
2401Mon Jun 5 11:20:34 1995 Gerald Baumgartner (gb@alexander.cs.purdue.edu)
2402
2403 * sig.c (build_signature_table_constructor): Use DECL_CONTEXT
2404 instead of DECL_CLASS_CONTEXT for calculating the vfield offset so
2405 abstract virtual functions are handled correctly.
2406
2407 * sig.c (build_signature_table_constructor): Store the correct
2408 delta in signature table entries. It does not yet work for
2409 classes with virtual base classes as implementations of signatures.
2410 (build_signature_method_call): Add the delta to the object_ptr
2411 before generating the function call.
2412
2413 * call.c (build_method_call): Make instance_ptr the signature
2414 pointer itself instead of dereferencing the optr.
2415 * sig.c (build_signature_method_call): Dereference the optr for the
2416 direct and virtual calls.
2417
2418 * sig.c (build_signature_table_constructor): Make the tag for
2419 default implementations -1 instead of 2.
2420 (build_signature_method_call): Change the generated conditional
2421 expression correspondingly.
2422
2423 * sig.c (build_signature_pointer_constructor): Deleted the sorry
2424 message that said we can't handle multiple inheritance for
2425 implementations of signatures
2426 (build_signature_method_call): Use the offset from the sigtable
2427 entry instead of the vptr field from the signature pointer for
2428 building a virtual function call.
2429
2430 * class.c (build_vfn_ref): Deleted signature specific code, we don't
2431 call this function anymore from build_signature_method_call.
2432
2433 * cp-tree.h (SIGNATURE_VPTR_NAME): Deleted. We use the right vptr
2434 field in the object now instead of in the signature pointer/ref.
2435 (build_vptr_ref): Deleted extern declaration.
2436 * sig.c (build_vptr_ref): Deleted.
2437 (build_signature_pointer_or_reference_type): Deleted construction of
2438 the vptr field.
2439 (build_signature_pointer_constructor): Deleted initialization of/
2440 assignment to the vptr field.
2441
2442 * sig.c (build_signature_table_constructor): Convert the signature
2443 table entry fields to their correct types.
2444
2445 * sig.c (build_signature_table_constructor): Don't call digest_init
2446 for the fields of a sigtable entry, it's wasted time.
2447
2448 * sig.c (build_signature_table_constructor): Correctly set the
2449 offset and index fields of a sigtable entry. Build the constructor
2450 the way digest_init does, digest_init can't handle initializing an
2451 anonymous union inside a struct.
2452 (build_signature_method_call): Use the index field instead of the
2453 delta field to get the vtable index.
2454
2455 * decl.c (init_decl_processing): Fix number of fields for building
2456 sigtable_entry_type.
2457
2458 * cp-tree.h (tag_identifier, offset_identifier): Added extern decls.
2459 (SIGTABLE_CODE_NAME): Renamed to SIGTABLE_TAG_NAME.
2460 (SIGTABLE_PFN_NAME): Deleted, we'll use VTABLE_PFN_NAME instead.
2461 * decl.c (tag_identifier, offset_identifier): New variables to
2462 hold the identifiers for the sigtable fields tag and offset.
2463 (init_decl_processing): Initialize these variables.
2464 (init_decl_processing): Use these variables to build the
2465 sigtable_entry_type structure. Rename the code and offset fields
2466 to tag and delta, respectively; add offset and index fields. Changed
2467 types of fields from short_integer_type_node to delta_type_node.
2468 * sig.c (build_signature_table_constructor): Rename code and offset
2469 to tag and delta, respectively.
2470 (build_signature_method_call): Ditto. Use above variables.
2471
d8f1d487
RK
2472Thu Jun 1 17:03:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2473
2474 * decl.c (lookup_name_real): Don't try to look anything up in an
2475 erroneous object.
2476
2477Fri Jun 2 10:30:14 1995 Mike Stump <mrs@cygnus.com>
2478
2479 * method.c (build_overload_int): New routine. Break out
2480 functionality from build_overload_value so we can reuse it.
2481 (build_overload_value): Handle pointer to member functions as value
2482 parameters for templates.
2483 (build_overload_identifier): Since template parameters are shared
2484 among all instantiations, we have to substitute in the real types
2485 in TREE_TYPE (parm).
2486 pt.c (coerce_template_parms): Ditto.
2487 (push_template_decls): Ditto.
2488 (grok_template_type): Deleted as template parameters are shared
2489 among all instantiations.
2490
2491Wed May 31 19:10:32 1995 Mike Stump <mrs@cygnus.com>
2492
2493 * decl.c (grokdeclarator): Always give errors on constant overflow
2494 for array indices.
2495
2496Wed May 31 11:39:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2497
2498 * typeck.c (commonparms): Don't abort if simple_cst_equal returns < 0.
2499 (build_c_cast): Don't tack on a NON_LVALUE_EXPR when casting to
2500 reference type.
2501 (build_indirect_ref): Fix check for *&.
2502
72b7eeff
MS
2503Fri Jun 16 06:54:03 1995 Mike Stump <mrs@cygnus.com>
2504
2505 * Version 2.7.0 released.
2506
2507Fri Jun 16 15:07:29 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
2508
2509 * Make-lang.in (DEMANGLER_PROG): Add LIBS.
2510
2511Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2512
2513 * decl.c (define_function): Don't set DECL_INTERFACE_KNOWN.
2514
2515Wed Jun 7 20:00:31 1995 Mike Stump <mrs@cygnus.com>
2516
2517 * *.[chy]: Change all callers of finish_decl to cp_finish_decl.
2518 * decl.c (finish_decl): New routine to handle call backs from the
2519 mid end (declare_hidden_char_array).
2520
2521Wed Jun 7 19:02:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2522
2523 * decl.c (start_function): Handle setting C_C_D here.
2524 (set_C_C_D): Removed.
2525 (struct saved_scope): Remove class_decl.
2526 (push_to_top_level): Don't save current_class_decl.
2527 (pop_from_top_level): Don't restore current_class_decl or C_C_D.
2528 (struct cp_function): Add C_C_D.
2529 (push_cp_function_context): Save C_C_D.
2530 (pop_cp_function_context): Restore C_C_D.
2531
2532Fri Jun 2 11:05:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2533
2534 * decl.c (set_C_C_D): New function. suspend_momentary before
2535 building C_C_D.
2536 (pop_from_top_level): Call it.
2537 (start_function): Ditto.
2538 (pop_cp_function_context): Ditto.
2539
2540 * class.c, cp-tree.h, decl.c, decl2.c, parse.y: Lose all references
2541 to current_vtable_decl, CLASSTYPE_INST_VAR and CLASSTYPE_VTBL_PTR.
2542
2543 * decl.c (push_cp_function_context): Save current_class_decl.
2544 (pop_cp_function_context): Restore current_class_decl and set C_C_D.
2545 (pop_from_top_level): Don't use CLASSTYPE_INST_VAR to set C_C_D.
2546 (start_function): Ditto.
2547
2548 * class.c (popclass): Don't mess with current_class_decl,
2549 current_vtable_decl, or C_C_D.
2550
2551Mon May 29 12:45:10 1995 Paul Eggert <eggert@twinsun.com>
2552
2553 * Make-lang.in (c++.mostlyclean): Remove $(DEMANGLER_PROG).
2554
b796119f
RK
2555Wed May 24 15:55:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
2556
2557 * decl.c (duplicate_decls): Check simple_cst_equal result against 0.
2558 * decl2.c (finish_anon_union): Likewise.
2559 * method.c (largest_union_member): Likewise.
2560
103894f1
L
2561Wed May 24 14:41:11 1995 H.J. Lu (hjl@nynexst.com)
2562
2563 * Make-lang.in (cxxmain.o): Replace single quotes with backslashes.
2564
fbb47000
RK
2565Mon May 22 17:38:48 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
2566
2567 * Make-lang.in (g++, g++-cross, cc1plus, DEMANGLER_PROG):
2568 Use $@ instead of output name so works even if have .exe.
2569 (cxxmain.o): Use cp if ln -s fails.
2570 (c++.install-man): Use $(exeext) in executable names.
2571 (c++.mostlyclean, stage[1-4]): Use $(objext) in object file names.
2572 * Makefile.in (../cc1plus): Use $(exeext) in name of executable.
2573
878cd289
MS
2574Wed May 24 01:39:03 1995 Jason Merrill <jason@deneb.cygnus.com>
2575
2576 * call.c (build_method_call): parms can be null, duh.
2577
2578Tue May 23 01:32:09 1995 Jason Merrill <jason@deneb.cygnus.com>
2579
2580 * call.c (build_method_call): If convert_arguments failed, just bail.
2581
2582Fri May 19 10:31:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2583
2584 * cvt.c (convert_force): Pass LOOKUP_NORMAL to cp_convert.
2585
2586 * tree.c (copy_to_permanent): Oops.
2587
2588Fri May 19 10:01:07 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
2589
2590 * cp-tree.h (break_out_target_exprs): Add decl.
2591
2592Thu May 18 13:02:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2593
2594 * decl.c (start_function): Move *all* interface handling stuff after
2595 the pushdecl.
2596
2597 * tree.c (mapcar): Renamed from make_deep_copy and generalized.
2598 (perm_manip): Return t if permanent, otherwise 0.
2599 (copy_to_permanent): Use them.
2600 (bot_manip): Helper for break_out_target_exprs.
2601 (break_out_target_exprs): New function. Uses mapcar.
2602
2603 * typeck.c (convert_arguments): Use it.
2604
2605 * method.c (hack_identifier): Use convert_from_reference to
2606 dereference a reference.
2607
2608Wed May 17 17:54:54 1995 Mike Stump <mrs@cygnus.com>
2609
2610 * call.c (convert_harshness): Move reference bashing before pointer
2611 to member bashing.
2612
2613Wed May 17 16:57:53 1995 Mike Stump <mrs@cygnus.com>
2614
2615 * cvt.c (convert_to_reference): Only complain, if complaints are
2616 wanted.
d8f1d487 2617 * typeck.c (build_function_call_real): Ditto. If LOOKUP_SPECULATIVELY
878cd289 2618 is set and something won't work, return NULL_TREE.
d8f1d487 2619 * cvt.c (cp_convert): Ditto. Pass flags down to build_method_call.
878cd289 2620 (convert): Pass LOOKUP_NORMAL to cp_convert.
d8f1d487 2621 * typeck.c (convert_for_assignment): Ditto.
878cd289 2622 (convert_force): Pass LOOKUP_COMPLAIN to cp_convert.
d8f1d487 2623 (convert_arguments): Get out early if we get an error_mark_node.
878cd289
MS
2624 (convert_for_initialization): Use cp_convert instead of convert so
2625 that we can pass flags down.
2626 * cp-tree.h (LOOKUP_SPECULATIVELY): Added documentation.
2627
c19a8067
JM
2628Wed May 17 01:43:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2629
878cd289
MS
2630 * typeck2.c (store_init_value): Don't take the MAIN_VARIANT of the
2631 decl type.
2632
c19a8067
JM
2633 * class.c (finish_struct): Don't complain about a class with no
2634 user-defined constructors but with a member that has no default
2635 constructor, as this is OK for aggregates.
2636
2637 * expr.c (cplus_expand_expr, NEW_EXPR): If this is an explicit
2638 constructor call, mark slot addressable.
2639
eacd15bc
DR
2640Tue May 16 18:37:51 1995 Douglas Rupp (drupp@cs.washington.edu)
2641
2642 * g++.c: Changed WINNT to _WIN32.
2643
a9aedbc2
MS
2644Tue May 16 12:40:16 1995 Jason Merrill <jason@lisa.cygnus.com>
2645
2646 * lex.c (handle_sysv_pragma): Don't use token_buffer.
2647
2648Tue May 16 12:05:26 1995 Mike Stump <mrs@cygnus.com>
2649
2650 * call.c (resolve_scope_to_name): Add initial semantic support for
2651 namespaces.
2652 * class.c (finish_struct): Ditto.
2653 * cp-tree.h (NAMESPACE_LEVEL): Ditto.
2654 * cvt.c (build_up_reference, convert_to_reference): Ditto.
2655 * decl.c (binding_level::namespace_p, suspend_binding_level): Ditto.
2656 (resume_binding_level, toplevel_bindings_p): Ditto
2657 (namespace_bindings_p, declare_namespace_level): Ditto.
2658 (resume_level, push_namespace, pop_namespace): Ditto.
2659 (pop_everything, pushtag, duplicate_decls, pushdecl): Ditto.
2660 (implicitly_declare, lookup_namespace_name, lookup_name_real): Ditto.
2661 (start_decl, make_temporary_for_reference), Ditto.
2662 (obscure_complex_init, finish_decl, expand_static_init): Ditto.
2663 (grokvardecl, grokdeclarator, parmlist_is_exprlist): Ditto.
2664 (store_parm_decls, hack_incomplete_structures): Ditto.
2665 * decl2.c (get_temp_name, finish_anon_union, current_namespace): Ditto.
2666 (push_namespace, pop_namespace, do_namespace_alias): Ditto.
2667 (do_toplevel_using_decl, do_class_using_decl): Ditto.
2668 * error.c (dump_decl): Ditto.
2669 * init.c (build_member_call, build_offset_ref): Ditto.
2670 * lex.c (identifier_type): Ditto.
2671 * parse.y (lang_extdef, using_decl, extdef, component_decl_1): Ditto.
2672 (nested_name_specifier_1): Ditto.
2673 * spew.c (yylex): Ditto.
2674 * tree.def (NAMESPACE_DECL): Ditto.
2675
2676Tue May 16 11:55:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2677
2678 * decl.c (push_overloaded_decl): Return the new decl even if it
2679 can't be pushed.
2680
2681Tue May 16 11:00:37 1995 Jason Merrill <jason@lisa.cygnus.com>
2682
2683 * typeck.c (decay_conversion): Split out from default_conversion.
2684 (default_conversion): Call it.
2685 (build_binary_op): Ditto.
2686 (build_binary_op_nodefault): Use decay_conversion for truth ops.
2687
2688Mon May 15 12:47:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2689
2690 * decl.c (warn_extern_redeclared_static): This is a pedwarn.
2691 (duplicate_decls): Always use the old decl's linkage info. Don't
2692 play with linkage of consts.
2693 (pushdecl): Don't play with linkage of consts.
2694 (redeclaration_error_message): Don't complain about an old public
2695 decl and a new non-public decl here.
2696 (grokvardecl): Handle linkage of consts here.
2697 (grokdeclarator): An 'extern inline' is public. Pass constp to
2698 grokvardecl.
2699 (start_function): Wait until after the pushdecl to do some linkage
2700 stuff.
2701
2702 * decl2.c (import_export_vtable): Make duplicates weak rather than
2703 static if supported.
2704 (import_export_inline): Ditto.
2705 * pt.c (do_pending_expansions): Ditto.
2706
2707 * class.c (build_vbase_path): flag_assume_nonnull_objects only
2708 affects reference conversion.
2709
2710 * init.c (emit_base_init): Build up an RTL_EXPR and add it to
f30432d7 2711 rtl_expr_chain.
a9aedbc2
MS
2712 * decl.c, decl2.c: s/base_init_insns/base_init_expr/.
2713
7154457b
PE
2714Tue May 16 07:06:28 1995 Paul Eggert <eggert@twinsun.com>
2715
2716 * method.c (numeric_output_need_bar): Renamed from misspelling.
2717
45ca9d09
RK
2718 * typeck.c (build_ptrmemfunc): Fix misspellings in messages.
2719
7ab7b006
RK
2720Sun May 14 10:26:22 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2721
2722 * lang-options.h, lang-specs.h: New files.
2723
fd378c9d
JM
2724Thu May 11 00:31:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2725
2726 * typeck.c (default_conversion): Don't check for BLKmode before
2727 pulling out the decl_constant_value.
2728
2729 * decl.c (start_function): Clear named_labels and shadowed_labels.
2730
2731 * typeck.c (build_function_call_real): Also synthesize methods here.
2732
2733Wed May 10 00:55:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2734
2735 * decl2.c (finish_file): Synthesize exported methods before the
2736 reconsider loop.
2737
2738 * parse.y: Move declaration of flag_new_for_scope to file scope.
2739
863adfc0
MS
2740Tue May 9 19:10:33 1995 Mike Stump <mrs@cygnus.com>
2741
2742 * decl2.c: Add flag_new_for_scope for new -ffor-scope flag.
2743 * parse.y (FOR): Conditionalize the pushing and poping of scope for
2744 the for-init-statement upon the new flag_new_for_scope.
2745 * parse.y (try_block): Simplify and use compstmt.
2746
2747Mon May 8 12:41:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2748
2749 * decl.c (define_function): Mark function decl artificial.
2750
2751Sun May 7 00:51:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2752
2753 * parse.y (simple_stmt, FOR): Put back push/pop for condition scope.
2754
2755 * decl2.c (grokclassfn): DECLs don't have cv-qualified types.
2756 * tree.c (build_cplus_method_type): Ditto.
2757
2758 * cp-tree.h (SET_DECL_ARTIFICIAL): Just set DECL_ARTIFICIAL to 1.
2759
2760 * typeck.c (build_function_call_real): If convert_arguments failed,
2761 just bail.
2762 (convert_arguments): If one of the arguments is error_mark_node,
2763 just bail.
2764
2765Sat May 6 02:39:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2766
2767 * decl.c (duplicate_decls): Don't check DECL_NOT_REALLY_EXTERN for
2768 decls that don't include it.
2769
2770Fri May 5 14:23:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2771
2772 * decl.c (duplicate_decls): Decls that have DECL_INTERFACE_KNOWN or
2773 DECL_NOT_REALLY_EXTERN set aren't extern decls.
2774
2775 * typeck.c (build_indirect_ref): Don't call default_conversion for a
2776 parameter of reference_type.
2777 * cvt.c (convert_from_reference): Just use build_indirect_ref.
2778
2779 * pt.c (do_type_instantiation): Only instantiate member functions
2780 that actually come from templates.
2781
2782Fri May 5 09:46:05 1995 Mike Stump <mrs@cygnus.com>
2783
2784 * parse.y: Generalized cleanup of poplevels, and compound statements
2785 and compound statements in try blocks. Rewritten `for' rule so that
2786 the scope of variables declared in the for clause is shortened to
2787 span just to the end of the statement, instead of the whole
2788 containing block.
2789
2790Fri May 5 00:37:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2791
2792 * call.c (convert_harshness): Handle pointers to members better.
2793
2794Thu May 4 16:00:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2795
2796 * decl2.c (delete_sanity): Do access control here.
2797 * init.c (build_delete): Instead of here.
2798
2799 * Make-lang.in: Build c++filt.
2800
2801Wed May 3 02:59:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2802
2803 * decl2.c (cplus_decl_attributes): If we just modified a TYPE_DECL,
2804 update our IDENTIFIER_TYPE_VALUE.
2805
a5894242
MS
2806Fri Apr 28 07:58:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2807
2808 * lex.c (cons_up_default_function): Fix linkage of #pragma
2809 implemented functions.
2810
2811Thu Apr 27 16:56:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2812
2813 * method.c (build_overload_name): Simplify and fix repeated type
2814 folding.
2815
2816 * decl.c (grokdeclarator): Prohibit pointers to void or reference
f30432d7 2817 members.
a5894242
MS
2818
2819Thu Apr 27 09:49:07 1995 Mike Stump <mrs@cygnus.com>
2820
2821 * typeck2.c (process_init_constructor): Make sure initializers are
2822 fully digested.
2823
2824Thu Apr 27 01:11:55 1995 Jason Merrill <jason@python.cygnus.com>
2825
2826 * lex.c (cons_up_default_function): Always defer synthesis.
2827
2828Thu Apr 27 00:20:37 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2829
2830 * decl2.c (mark_inline_for_output): Don't play with pending_inline
2831 stuff.
2832
2833Wed Apr 26 17:48:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2834
2835 * call.c (user_harshness): New function; like build_type_conversion,
2836 but doesn't actually build anything.
2837 (compute_conversion_costs): Use it instead of build_type_conversion.
2838
2839Wed Apr 26 17:11:25 1995 Jason Merrill <jason@deneb.cygnus.com>
2840
2841 * typeck.c (build_function_call_real): Improve error message for
2842 calling a non-function.
2843
2844 * method.c (hack_identifier): Lose check for calling a data member.
2845
2846Wed Apr 26 16:59:13 1995 Mike Stump <mrs@cygnus.com>
2847
2848 * typeck2.c (build_functional_cast): Remove very old cruft.
2849 Seems like good code is generated without it.
2850
2851Wed Apr 26 00:47:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2852
2853 * method.c (do_build_assign_ref): Fix handling of anonymous unions.
2854 (do_build_copy_constructor): Ditto.
2855
2856 * parse.y (simple_stmt, SWITCH): Call {push,pop}_switch.
2857
2858 * decl.c (push_switch): New function.
2859 (pop_switch): Ditto.
2860 (define_case_label): Check for jumping over initialization.
2861
2862 * call.c (build_method_call): Check for an inline function being
2863 called before its definition has been seen.
2864 * typeck.c (build_function_call_real): Ditto.
2865
2866 * decl.c (duplicate_decls): Check for a function being redeclared
2867 inline after its address has been taken.
2868
2869 * typeck.c (build_conditional_expr): Handle related class lvalues.
2870
2871Tue Apr 25 13:20:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2872
2873 * pt.c (do_pending_expansions): Don't expand unused templates.
2874
2875 * parse.y (component_decl): Accept a lone semicolon.
2876
2877Tue Apr 25 00:25:56 1995 Jason Merrill <jason@rtl.cygnus.com>
2878
2879 * call.c (build_method_call): Don't allow an RTL_EXPR to serve as the
2880 object parameter anymore.
2881
2882 * expr.c (cplus_expand_expr): Don't create RTL_EXPRs with no insns.
2883
2884Mon Apr 24 12:35:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2885
2886 * parse.y (simple_stmt, decl case): Clear prefix_attributes.
2887 (lang_extdef): Ditto.
2888
2889 * parse.y (maybe_parmlist): New rule for use in declarators where
2890 this could either be a list of expressions or parameters. Calls
2891 suspend_momentary before deciding which.
2892 (direct_after_type_declarator): Use it.
2893 (complex_direct_notype_declarator): Use it.
2894
2895 * pt.c (tsubst): Propagate attributes const and noreturn.
2896
2897 * typeck.c (build_modify_expr): If warn_synth, call build_opfncall
2898 before doing the default thing.
2899
2db70b29
DE
2900Thu Apr 27 21:49:36 1995 Doug Evans <dje@cygnus.com>
2901
2902 * typeck.c (common_type): Call lookup_attribute instead of
2903 value_member.
2904
91887f0b
RK
2905Tue Apr 25 18:07:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
2906
2907 * Make-lang.in: Change "realclean" to "maintainer-clean".
2908
e8abc66f
MS
2909Sun Apr 23 12:32:38 1995 Mike Stump <mrs@cygnus.com>
2910
2911 * decl2.c (finish_file): Fix broken linked list handling.
2912
2913Fri Apr 21 18:08:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2914
2915 * class.c (finish_base_struct): Don't set TYPE_HAS_COMPLEX_*_REF
2916 as often.
2917 (finish_struct): Ditto.
2918
2919 * various: Use TYPE_HAS_TRIVIAL_* instead of TYPE_HAS_COMPLEX_*.
2920
2921 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): New macro.
2922 (TYPE_HAS_TRIVIAL_ASSIGN_REF): New macro.
2923
2924Fri Apr 21 15:52:22 1995 Jason Merrill <jason@python.cygnus.com>
2925
2926 * typeck.c (c_expand_return): Only expand a returned TARGET_EXPR if
2927 it is of the same type as the return value.
2928
2929Fri Apr 21 03:01:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2930
2931 * decl2.c (finish_file): Reconsider if synthesizing a method wrote
2932 out its assembly.
2933
2934 * typeck.c (convert_for_initialization): Don't call a trivial copy
2935 constructor.
2936
2937 * typeck2.c (store_init_value): Only abort if the type has a
2938 non-trivial copy constructor.
2939
2940 * typeck.c (c_expand_return): If we're returning in a register and
2941 the return value is a TARGET_EXPR, expand it. Only do
2942 expand_aggr_init if we're returning in memory.
2943 (expand_target_expr): Function to expand a TARGET_EXPR.
2944 (build_modify_expr): Use it.
2945
2946 * tree.c (build_cplus_new): Layout the slot.
2947
2948 * expr.c (cplus_expand_expr): Use expand_call to expand the call
2949 under a NEW_EXPR, so the target is not discarded.
2950
2951Thu Apr 20 14:59:31 1995 Mike Stump <mrs@cygnus.com>
2952
2953 * gc.c (build_dynamic_cast): Tighten error checking.
2954
2955Thu Apr 20 11:23:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2956
2957 * expr.c (cplus_expand_expr): Only abort if the returned target is
2958 different from what we expected if the type has a non-trivial copy
2959 constructor.
2960
2961 * decl2.c (cplus_decl_attributes): Attributes applied to a template
2962 really apply to the template's result.
2963
2964 * tree.c (lvalue_p): Check IS_AGGR_TYPE instead of TREE_ADDRESSABLE
2965 to decide whether to consider a CALL_EXPR an lvalue.
2966
2967 * class.c (finish_struct_bits): Only set TREE_ADDRESSABLE if the
2968 type has a non-trivial copy constructor.
2969
2970 * decl.c (start_function): If interface_known, unset
2971 DECL_NOT_REALLY_EXTERN on the function.
2972
2973Wed Apr 19 16:53:13 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2974
2975 * pt.c (do_function_instantiation): Handle explicit instantiation of
2976 member functions.
2977 (do_type_instantiation): Handle 'inline template class foo<int>',
2978 meaning just spit out the vtable.
2979
2980 * lex.c (cons_up_default_function): Set DECL_NOT_REALLY_EXTERN on
2981 the consed functions.
2982
2983 * decl2.c (import_export_inline): Set DECL_INTERFACE_KNOWN.
2984
2985Wed Apr 19 16:28:17 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
2986
2987 * call.c, class.c, decl2.c, gc.c, init.c, parse.y, pt.c, search.c,
2988 typeck.c: Include output.h.
2989
2990Wed Apr 19 14:57:21 1995 Gerald Baumgartner (gb@alexander.cs.purdue.edu)
2991
2992 * call.c (build_method_call): Allow a signature member functions to
2993 be called from a default implementation.
2994
2995Wed Apr 19 10:21:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
2996
2997 * repo.c (finish_repo): Remember what directory we are in.
2998
2999 * search.c (expand_upcast_fixups): Don't mess with abort_fndecl.
3000
3001 * repo.c: Use obstacks instead of fixed-size buffers. Don't spit
3002 out the second copy of the symbol name. Don't remember COLLECT_GCC.
3003
43f2999d
MS
3004Wed Apr 19 02:32:40 1995 Mike Stump <mrs@cygnus.com>
3005
3006 * search.c (virtual_context): New function to get the virtual
3007 context of a function.
3008 (expand_upcast_fixups): New function to generate runtime vtables.
3009 (fixup_virtual_upcast_offsets): Ditto.
3010 (expand_indirect_vtbls_init): Use fixup_virtual_upcast_offsets to
3011 ensure that the this offsets for upcasts from virtual bases into
3012 other virtual bases or non-virtual bases are correct at construction
3013 time and destruction time.
3014 * class.c (fixup_vtable_deltas): Modify to fixup all offsets in all
3015 vtables in all virtual bases, instead of just one vtable in each
3016 virtual base.
3017 (fixup_vtable_deltas1): Ditto.
3018
44a8d0b3
MS
3019Tue Apr 18 03:57:35 1995 Michael Meissner (meissner@cygnus.com)
3020
3021 * Makefile.in (lex.o): Add dependency on c-pragma.h.
3022
3023 * lex.c (handle_sysv_pragma): Use NULL_PTR and NULL_TREE as
3024 appropriate, instead of 0.
3025
3026Mon Apr 17 12:28:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3027
3028 * decl.c (pushdecl): Use decls_match, not duplicate_decls, for
3029 comparing local and global decls.
3030
3031Fri Apr 14 01:46:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3032
3033 * typeck.c (convert_arguments): Only prohibit passing to ... of
3034 types with non-trivial copy constructors.
3035
3036 * repo.c (repo_template_used): Don't try to mess with no id.
3037
3038Fri Apr 14 23:32:50 1995 Per Bothner <bothner@rtl.cygnus.com>
3039
3040 * decl.c (duplicate_decls): Use cp_warning_at for redundant-decls.
3041
3042Thu Apr 13 15:37:42 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3043
3044 * cp-tree.h (current_tinst_level): Delete declaration, since it's
3045 static inside pt.c.
3046
3047 * typeck.c (build_modify_expr): Catch incompatible array assignment.
3048
3049 * parse.y (attribute_list, attrib): Rewrite actions to feed the
3050 right stuff to decl_attributes.
3051
3052Thu Apr 13 11:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3053
3054 * search.c (dfs_debug_mark): Check for magic virtual like
3055 import_export_vtable.
3056
3057 * typeck.c (build_binary_op_nodefault): Don't call cp_pedwarn with
3058 four args.
3059
3060Wed Apr 12 12:02:57 1995 Jason Merrill <jason@deneb.cygnus.com>
3061
3062 * decl2.c (finish_file): Move prevtable pass before needs_messing_up
3063 decision.
3064
3065Tue Apr 11 11:20:27 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3066
3067 * decl.c (finish_decl): If we're writing out a static data member of
3068 a class, we want the debug info for that class.
3069
3070 * gc.c (build_t_desc): Check linkage of a class properly.
3071
3072 * class.c (finish_struct): Set the 'headof' offset for the main
3073 vtable properly.
3074 (prepare_fresh_vtable): Fix typeinfo pointer here.
3075 (modify_one_vtable): Instead of here.
3076
3077Mon Apr 10 12:15:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3078
3079 * repo.c (repo_get_id): New function to return the interesting
3080 identifier for a repo entity.
3081 (repo_template_used): Use it.
3082 (repo_template_instantiated): Mark the id as chosen.
3083 (init_repo): Record whether or not the id was chosen.
3084 (finish_repo): Note if an id was newly chosen.
3085
3086 * pt.c (do_function_instantiation): Call repo_template_instantiated.
3087 (do_type_instantiation): Ditto. Don't diagnose multiple
3088 instantiation.
3089
3090 * decl2.c (finish_file): Use DECL_NOT_REALLY_EXTERN when deciding
3091 whether or not to synthesize a method.
3092
3093 Undo these changes:
3094 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
3095 * class.c (modify_all_direct_vtables): ditto.
3096 * init.c (expand_direct_vtbls_init): expand more vtables if
3097 flag_rtti is on.
3098
79ff2c6c
MS
3099Sat Apr 8 17:45:41 1995 Mike Stump <mrs@cygnus.com>
3100
3101 * gc.c (build_headof): Use ptrdiff_type_node instead of
3102 integer_type_node on pointer arithmetic.
3103
3104Sat Apr 8 11:57:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3105
3106 * typeck.c (build_modify_expr): Undo previous change.
3107
3108Thu Apr 6 01:23:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3109
3110 * Makefile.in (compiler): Remove ../cc1plus before rebuilding it.
3111
3112 * repo.c (get_base_filename): Put the .rpo file in the directory
3113 with the object file, not the source.
3114
3115 * typeck.c (build_conditional_expr): Handle pmf's better.
3116
3117 * repo.c (finish_repo): Also use ASM_OUTPUT_LABELREF to print out
3118 the name of the symbol.
3119
3120Wed Apr 5 15:24:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3121
3122 * repo.c (open_repo_file): Make repo filename DOS-compliant.
3123 (*): Also write a new repo file if some previously-used
3124 templates are no longer used. Only remember the identifier.
3125
3126 * lex.c (cons_up_default_function): If this function belongs to a
3127 template class, call repo_template_used for it.
3128
3129 * repo.c (repo_template_used): Using a class means using its vtable,
3130 if any.
3131 (finish_repo): Ditto.
3132
3133 * typeck.c (build_modify_expr): Only wrap TARGET_EXPRs in RTL_EXPRs
3134 if the type has a complex copy constructor.
3135
3136 * decl2.c (lang_decode_option): -frepo implies
3137 -fno-implicit-templates.
3138
3139 * decl.c (start_function): Clear current_{base,member}_init_list.
3140
3141 * lex.c (init_lex): Also unset *_eq if ! flag_operator_names.
3142
3143Tue Apr 4 16:11:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3144
3145 * decl.c (struct cp_function): Add {base,member}_init_list.
3146 (push_cp_function_context): Save current_{base,member}_init_list.
3147 (pop_cp_function_context): Restore them.
3148
b19b4a78
MS
3149Mon Apr 3 16:55:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3150
3151 * repo.c (get_base_filename): Take filename parm, fix logic bug.
3152
3153 * typeck.c (build_compound_expr): Do not warn about a compound expr
3154 in which the first expression has no side effects.
3155 (build_x_compound_expr): Warn here instead.
3156 (build_conditional_expr): Don't warn about a conditional expression
3157 between an enum and the type it promotes to.
3158
3159 * init.c (build_new): Handle initialization of arrays of builtins
3160 properly.
3161
3162Mon Apr 3 15:08:04 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3163
3164 * repo.c: Include config.h to get definitions of bcopy and rindex
3165 on systems that don't have them (e.g., SVR4).
3166
3167Mon Apr 3 14:41:55 1995 Mike Stump <mrs@cygnus.com>
3168
3169 * decl2.c (finish_table): Pass NULL_TREE instead of init to
3170 finish_decl so that it won't try and do error checking on the
3171 initializer.
3172
3173Mon Apr 3 10:45:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3174
3175 * repo.c (get_base_filename): Analyze COLLECT_GCC_OPTIONS to
3176 determine whether this compile used -c -o.
3177 (open_repo_file): Use get_base_filename. Remove the extension.
3178 (finish_repo): Spit out the values of main_input_filename,
3179 COLLECT_GCC and COLLECT_GCC_OPTIONS.
3180
3181 * parse.y (structsp): Add TYPENAME_KEYWORD complex_type_name.
3182
faae18ab
MS
3183Sun Apr 2 23:43:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3184
3185 * search.c (compute_access): Don't try to do access control on
3186 nested types.
3187
3188Fri Mar 31 10:14:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3189
3190 * repo.c: New file to handle things repo.
3191
3192 * pt.c (instantiate_template): Call repo_template_used if the
3193 definition is accessible.
3194 (mark_function_instantiated): Split out from
3195 do_function_instantiation.
3196 (mark_class_instantiated): Split out from do_type_instantiation.
3197
3198 * parse.y (template_instantiate_once): Call repo_template_used.
3199
3200 * lex.c (lang_init): Call init_repo.
3201
3202 * decl2.c: Handle flag_use_repository.
3203 (finish_file): Call finish_repo.
3204
3205 * decl.c (start_method): Call repo_template_used if this is a
3206 template method.
3207
3208 * Makefile.in (CXX_OBJS): Add repo.o.
3209 (repo.o): Add dependencies.
3210
3211 * Make-lang.in (CXX_SRCS): Add repo.c.
3212
3213 * decl.c (start_function): If DECL_INTERFACE_KNOWN and
3214 DECL_NOT_REALLY_EXTERN are both set, unset DECL_EXTERNAL.
3215
3216 * typeck.c (build_binary_op_nodefault): Identify the invalid operand
3217 types used.
3218
3219 * decl.c (duplicate_decls): Propagate DECL_NOT_REALLY_EXTERN.
3220
3221Thu Mar 30 17:54:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3222
3223 * typeck.c (build_binary_op_nodefault): Tidy up use of build_type
3224 and result_type. When checking for comparison between signed
3225 and unsigned, use result_type rather than the (possibly shortened)
3226 type of op0. Also, don't warn about equality comparison of a
3227 signed operand to an unsigned constant that fits in the signed
3228 type.
3229
3230 * method.c (do_build_copy_constructor): Reverse
3231 current_base_init_list after we've built it up.
3232
3233Thu Mar 30 14:35:18 1995 Mike Stump <mrs@cygnus.com>
3234
3235 * except.c (build_throw): Never warn about the value of throw not
3236 being used.
3237
3238Thu Mar 30 13:16:54 1995 Mike Stump <mrs@cygnus.com>
3239
3240 * except.c (expand_start_catch_block): Check for bad catch parameter
3241 declarations.
3242
3243Thu Mar 30 13:06:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3244
3245 * decl.c (finish_function): Only set DECL_NOT_REALLY_EXTERN if
3246 DECL_EXTERNAL is not already set.
3247
3248Thu Mar 30 11:26:24 1995 Mike Stump <mrs@cygnus.com>
3249
3250 * method.c (emit_thunk): Let poplevel know that the last level is
3251 for a function so it can create a BLOCK_NODE and set DECL_INITIAL.
3252
3253Thu Mar 30 11:15:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3254
3255 * decl2.c (import_export_inline): Don't set DECL_NOT_REALLY_EXTERN
3256 here.
3257
3258 * decl.c (grokdeclarator): OK, don't abort if we see a decl with
3259 METHOD_TYPE.
3260 (finish_function): Set DECL_EXTERNAL and DECL_NOT_REALLY_EXTERN on
3261 all deferred inlines.
3262
3263Wed Mar 29 19:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3264
3265 * cp-tree.h (DECL_THIS_INLINE): New macro.
3266 (DECL_NOT_REALLY_EXTERN): New macro.
3267 (DECL_THIS_STATIC): New macro.
3268
3269 * decl.c: Lose all references to current_extern_inline. Break
3270 inline semantics into DECL_INLINE for actual inlining and
3271 DECL_THIS_INLINE for the linkage wierdness. Use DECL_THIS_STATIC.
3272 * decl2.c: Use DECL_NOT_REALLY_EXTERN to indicate that we want to
3273 emit an inline here. Associated changes.
3274 * lex.c: Ditto.
3275 * pt.c: Ditto.
3276 * typeck.c: Ditto.
3277
3278 * call.c (build_method_call): Don't bother trying to handle inlines
3279 specially.
3280 * cvt.c (convert_to_aggr): Ditto.
3281
3282 * pt.c (do_function_instantiation): Handle instantiation of
3283 public inlines, too.
3284
3285Wed Mar 29 16:04:25 1995 Mike Stump <mrs@cygnus.com>
3286
3287 * except.c (init_exception_processing): Change the interface for
3288 __throw_type_match and add decl for new rtti matching routine
3289 __throw_type_match_rtti.
3290 (build_eh_type): New routine to build a run time descriptor for the
3291 expression given.
3292 (expand_start_catch_block): Update to use new calling convention for
3293 the matcher.
3294 (expand_throw): Update to use build_eh_type.
3295
08fb8ad0
WL
3296Mon Mar 27 07:14:33 1995 Warner Losh <imp@village.org>
3297
3298 * g++.c: Removed __NetBSD__ from conditional.
3299 Declare strerror if HAVE_STRERROR is defined; otherwise
3300 declare sys_errlist and sys_nerr.
3301 (my_strerror): New function.
3302
71851aaa
MS
3303Tue Mar 28 14:16:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3304
3305 * search.c (get_binfo): Don't try to be so clever.
3306
3307 * tree.c (copy_to_permanent): Also suspend_momentary().
3308
3309 * cvt.c (cp_convert_to_pointer): Hand off to convert_fn_pointer even
3310 if the types are the same.
3311
3312 * decl.c (start_function): Handle extern inlines more like C++ says
f30432d7 3313 we should.
71851aaa
MS
3314
3315 * init.c (build_member_call): Hand constructor calls off to
3316 build_functional_cast.
3317
3318 * typeck2.c (build_functional_cast): Use DECL_NESTED_TYPENAME to get
3319 the name of the type.
3320
3321Tue Mar 28 13:13:56 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3322
3323 * decl.c (grokdeclarator): Check for the decl returned by
3324 grokfndecl to be null before using build_decl_attribute_variant.
3325
3326Mon Mar 27 18:04:41 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3327
3328 * init.c (build_new): Use build_pointer_type instead of
3329 TYPE_POINTER_TO.
3330
7215f9a0
MS
3331Fri Mar 24 12:11:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3332
71851aaa
MS
3333 * typeck.c (build_conditional_expr): Handle pmfs.
3334 (convert_for_assignment): Fix pmf support.
3335
3336 * cvt.c (convert_fn_ptr): Support !flag_vtable_thunks.
3337 (cp_convert_to_pointer): Handle pmfs.
3338 (cp_convert): Pass pmfs to cp_convert_to_pointer.
3339
3340 * typeck.c (common_type): Handle inheritance for pmfs.
3341
3342 * typeck2.c (build_m_component_ref): Do access control.
3343
3344 * typeck.c (comp_target_types): Check for conversion to void *
3345 before checking trickier conversions.
3346
7215f9a0
MS
3347 * decl.c (duplicate_decls): Propagate DECL_ABSTRACT_VIRTUAL_P.
3348
3349 * pt.c (push_tinst_level): Complain if template instantiation depth
3350 is greater than max_tinst_depth.
3351
3352 * typeck.c (common_type): Assume that we can call common_type to
3353 unify the target type of a pointer.
3354
3355Thu Mar 23 00:48:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3356
3357 * decl2.c (finish_file): Don't synthesize methods at
3358 finish_vtable_prevardecl time. Do synthesize methods that are not
3359 used, but are public and not external.
3360
3361 * cvt.c (build_type_conversion): Only give an error if for_sure.
3362
3363 * typeck.c (comp_target_types): Only support pointer conversions if
3364 nptrs > 0.
3365
3366Wed Mar 22 19:30:15 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3367
3368 * init.c (build_new): Catch use of an initializer list where it
3369 shouldn't be.
3370
3371Wed Mar 22 16:21:07 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3372
3373 * init.c (build_new): Wrap alloc_expr in an RTL_EXPR if nelts is
3374 non-constant.
3375
3376 * decl2.c: temp_name_counter is now public.
3377
3378 * decl.c (struct cp_function): Add temp_name_counter field.
3379 (push_cp_function_context): Save it.
3380 (pop_cp_function_context): Restore it.
3381
3382 * typeck.c (common_type): Handle unifying function types, and unify
3383 unmatched things to void* with a compiler_error, rather than
3384 silently like before.
3385
28cbf42c
MS
3386Wed Mar 22 15:10:34 1995 Mike Stump <mrs@cygnus.com>
3387
3388 * decl2.c (finish_prevtable_vardecl, finish_vtable_vardecl): Revert
3389 Brendan's last change and fix latent problem that causes TD entries
3390 to not come out when the things that need them has yet to be
3391 expanded.
3392
3393Wed Mar 22 15:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3394
3395 * typeck.c (build_binary_op_nodefault, comparison ops): Update type0
3396 and type1, since we might have changed op0 or op1.
3397
3398Wed Mar 22 13:33:45 1995 Jason Merrill <jason@python.cygnus.com>
3399
3400 * typeck.c (common_type): Don't mess up templates.
3401
3402Wed Mar 22 04:56:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3403
3404 * typeck.c (common_type): Handle ptms properly. Also handle
3405 T* -> void*.
3406 (build_binary_op_nodefault): New variable build_type controls what
3407 type is given to the expression when it is created. Set this to
3408 boolean_type_node for comparison ops instead of using result_type.
3409 (comp_target_types): Allow T * -> void *.
3410
3411 * cvt.c (cp_convert_to_pointer): Do access control when converting
3412 ptms, too.
3413
3414Tue Mar 21 17:25:06 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3415
3416 * parse.y (extern_lang_string): Catch use of linkage specs that
3417 aren't all naming the same language.
3418
3419 * class.c (finish_struct): Delete accidental duplicate code.
3420
3421Tue Mar 21 14:00:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3422
3423 * typeck.c (build_binary_op_nodefault): Disable pedwarns about
3424 comparing functions and incomplete types.
3425
3426 * decl.c (finish_function): Only unset current_function_decl if
3427 !nested.
3428 (duplicate_decls): Last change went too far; we only want to stop
3429 checking for value/reference ambiguity.
3430
3431Tue Mar 21 01:26:39 1995 Mike Stump <mrs@cygnus.com>
3432
3433 * gc.c (build_generic_desc): Zap the DECL_SIZE so that we can lay it
3434 out fresh, as the new type may be larger.
3435
3436Mon Mar 20 19:01:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3437
3438 * expr.c (extract_init): Try to expand the RTL for the
3439 initialization and figure out what it will look like so we can avoid
3440 run-time initialization. Disabled for now.
3441 (extract_scalar_init): Helper for scalar initialization.
3442 (extract_aggr_init): Helper for aggregate initialization.
3443
3444 * decl.c (duplicate_decls): Don't complain about ambiguous
3445 declarations.
3446 (obscure_complex_init): Now returns a tree. Call extract_init if
3447 we're optimizing and this is a toplevel decl.
3448 (finish_decl): Update accordingly.
3449
3450 * lex.c (check_newline): If we're just changing files (not pushing
3451 or popping), update input_file_stack->name.
3452
3453Mon Mar 20 17:55:04 1995 Mike Stump <mrs@cygnus.com>
3454
3455 * pt.c (type_unification): Only TEMPLATE_DECLs are handled right now
3456 in the transitive unification code.
3457
3458Mon Mar 20 16:07:50 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3459
3460 * decl.c (shadow_tag): Don't allow inline, virtual, or explicit on
3461 non-functions.
3462 (grokdeclarator): Don't allow friends to be defined in local classes.
3463
3464Sat Mar 18 04:03:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3465
3466 * decl2.c (finish_prevtable_vardecl): Use DECL_DECLARED_STATIC
3467 rather than DECL_SAVED_INSNS to decide whether or not this method
3468 was declared inline.
3469
3470 * method.c (synthesize_method): Turn off DECL_INLINE if
3471 function_cannot_inline_p thinks we're too large.
3472
3473 * typeck.c (build_indirect_ref): Use build_expr_type_conversion.
3474
3475Fri Mar 17 17:47:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3476
3477 * class.c (instantiate_type): Handle pmfs.
3478
3479 * typeck.c (convert_for_assignment): Check types when assigning one
3480 pmf to another.
3481
3482 * decl.c (define_label): Fix logic for printing out the name of the
3483 label in an error message.
3484
3485 * error.c (dump_expr): Support ARRAY_REF.
3486
3487Fri Mar 17 17:43:02 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3488
3489 * decl2.c (finish_vtable_vardecl): Call build_t_desc here.
3490 (finish_prevtable_vardecl): Instead of here.
3491
3492Fri Mar 17 14:40:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3493
3494 * decl.c (expand_static_init): Also use expand_aggr_init if the
3495 initializer is a TREE_LIST.
3496 (grokdeclarator): Only pedwarn about extra qualification if -pedantic.
3497
3498 * pt.c (unify): Fix unification of return type.
3499
3500 * expr.c (fixup_result_decl): Use store_expr, rather than
3501 emit_move_insn, to move the return value into the place where
3502 callers will expect it.
3503
3504Thu Mar 16 22:05:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3505
3506 * init.c (build_offset_ref): Call assmble_external on functions.
3507 * typeck.c (build_component_ref): Ditto.
3508
3509Thu Mar 16 20:28:16 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3510
3511 * decl.c (struct saved_scope): Add members base_init_list and
3512 member_init_list.
3513 (push_to_top_level): Save current_base_init_list and
3514 current_member_init_list to them.
3515 (pop_from_top_level): Put it back.
3516
3517Thu Mar 16 19:21:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3518
3519 * pt.c (instantiate_template): Call assemble_external.
3520
3521Thu Mar 16 18:07:54 1995 Brendan Kehoe (brendan@phydeaux.cygnus.com)
3522
3523 * class.c: Include rtl.h, to get NULL_RTX.
3524 (finish_struct): Also zero out DECL_SAVED_INSNS, to avoid problems
3525 on hosts with different sizes for each part of the union.
3526 * tree.c: Also include rtl.h.
3527 (layout_basetypes): Same change for DECL_SAVED_INSNS.
3528
3529Thu Mar 16 13:57:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3530
3531 * pt.c (unify): Fix array domain unification for 64-bit targets.
3532
3533 * decl2.c (finish_file): Push bizarre type decl before walking the
3534 vtables the first time.
3535 (walk_vtables): OK, don't set prev to vars if the vardecl_fn messed
3536 with TREE_CHAIN (prev).
3537
3538 * init.c (emit_base_init): Use convert_pointer_to_real instead of
3539 convert_pointer_to when converting to a direct base.
3540
3541Wed Mar 15 20:26:29 1995 Mike Stump <mrs@cygnus.com>
3542
3543 * pt.c (type_unification): Handle transitive unification better.
3544
3545Wed Mar 15 13:56:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3546
3547 * decl2.c (walk_vtables): Always set prev to vars.
3548 (mark_vtable_entries): Call assemble_external on the vtable entries.
3549
3550 * class.c (finish_struct): Set the vtable's size to NULL_TREE before
f30432d7 3551 calling layout_decl, so that it gets updated properly.
28cbf42c
MS
3552
3553 Finally re-enable dynamic synthesis. This time it works.
3554 * method.c (synthesize_method): Pass decl_function_context (fndecl)
3555 to {push,pop}_cp_function_context.
3556 * decl.c (push_cp_function_context): Now takes a tree argument.
3557 (pop_cp_function_context): Ditto.
3558 * call.c (build_method_call): Enable synthesis.
3559 * lex.c (cons_up_default_function): Ditto.
3560
3561Tue Mar 14 19:14:19 1995 Doug Evans <dje@chestnut.cygnus.com>
3562
3563 * parse.y (setattrs): Chain onto prefix_attributes rather than
3564 setting it.
3565
3566Wed Mar 15 13:00:00 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3567
3568 * decl.c (pushdecl): Check if the type of the VAR_DECL is an
3569 error_mark_node before trying to read TYPE_LANG_SPECIFIC.
3570
b7484fbe
MS
3571Mon Mar 13 21:00:28 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3572
3573 * decl.c (grokdeclarator, case ARRAY_REF): Wrap the exp with fold,
3574 and convert the size and integer_one_node to the index type.
3575
3576Mon Mar 13 08:01:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3577
3578 * typeck.c (get_member_function_from_ptrfunc): Save the instance
3579 argument, and tack it onto the front of the COND_EXPR to make the
3580 semantics come out right. Grab the instance argument from
3581 '*instance_ptrptr', rather than having it passed in separately.
3582
3583 * various: Change various consed-up comparison operations to have
3584 boolean type. Remove the instance argument in calls to
3585 get_member_function_from_ptrfunc.
3586
3587 * error.c (dump_expr): Dump true and false as "true" and "false".
3588
3589 * decl2.c (finish_file): Also set DECL_STATIC_FUNCTION_P on the
3590 global init function.
3591
3592 * decl.c (finish_function): Only set DECL_EXTERNAL here if the
3593 inline function is public.
3594
3595Sat Mar 11 00:58:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3596
3597 * init.c (is_friend): Be more careful about checking
3598 DECL_CLASS_CONTEXT on non-member functions.
3599
3600 * decl2.c (finish_vtable_vardecl): Don't bother calling
3601 assemble_external here.
3602 (prune_vtable_vardecl): New function that just splices out the
3603 vtable decl from the top-level decls.
3604 (import_export_inline): Unset DECL_EXTERNAL at first.
3605 (finish_file): Don't bother calling assemble_external here. Do
3606 splice out all of the vtables.
3607
3608Fri Mar 10 14:42:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3609
3610 * decl.c (finish_function): If we're not emitting the function yet,
3611 call assemble_external for it.
3612
3613 * decl2.c (finish_prevtable_vardecl): Don't call mark_vtable_entries
3614 here.
3615 (finish_vtable_vardecl): Don't do the linkage deduction thing here.
3616 Also don't splice out the current vtable if it is unused.
3617 (finish_file): Move the second walk_vtables and the synthesis check
3618 inside the 'reconsider' loop. Move thunk emission after the
3619 'reconsider' loop.
3620
3621Thu Mar 9 16:28:16 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3622
3623 * pt.c (tsubst): Don't bother calling cp_build_type_variant, since it
3624 was passing bogus values for readonly and volatile from the original
3625 template decl, not the resultant type of the tsubst call.
3626
3627 * class.c (duplicate_tag_error): Use cp_error_at to point out the
3628 previous definition of the tag.
3629
3630Thu Mar 9 10:46:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3631
3632 * decl.c (start_function): Clear base_init_insns and protect_list.
3633 (struct cp_function): Add base_init_insns field.
3634 (push_cp_function_context): Also save base_init_insns.
3635 (pop_cp_function_context): Also restore base_init_insns.
3636
3637Wed Mar 8 13:31:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3638
3639 * init.c (member_init_ok_or_else): Check for initializing a static
3640 member here.
3641 (emit_base_init): Instead of here.
3642
3643Tue Mar 7 16:03:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3644
3645 * call.c (build_method_call): Disable synthesis as needed.
3646 * lex.c (cons_up_default_function): Ditto.
3647
f6abb50a
BK
3648Tue Mar 7 10:14:29 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3649
3650 * parse.y: New rules to allow attributes in a prefix position.
3651 (prefix_attributes): New variable. Pass it into cplus_decl_attributes.
3652 (setattr): New rule.
3653 (reserved_declspecs, declmods): Catch attributes here.
3654 * decl2.c (cplus_decl_attributes): Add PREFIX_ATTRIBUTES argument.
3655 * decl.c (duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to
3656 descendent typedef.
3657 (grokdeclarator): Added code to support machine attributes.
3658 * Makefile.in (stamp-parse): Expect 5 shift/reduce failures.
3659
b7484fbe
MS
3660Mon Mar 6 15:07:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3661
3662 * call.c (build_method_call): Don't synthesize methods outside of a
3663 function.
3664
3665 Make base initialization more re-entrant so that synthesis on the
3666 fly will work (and, eventually, template instantation on the fly).
3667 * init.c (sort_member_init): Don't bother with members that can't be
3668 initialized. Reorganize a bit. Don't initialize base members here.
3669 (sort_base_init): New function, like sort_member_init, but for base
3670 classes. Steals some code from emit_base_init.
3671 (emit_base_init): Simplify. Call sort_{member,base}_init before
3672 doing any initialization, so we don't have to save
3673 current_{member,base}_init_list in push_cp_function_context.
3674 (expand_aggr_vbase_init_1): Adjust for sort_base_init.
3675 (expand_aggr_vbase_init): Simplify.
3676 * decl.c (struct cp_function): Add protect_list field.
3677 (push_cp_function_context): Also save protect_list.
3678 (pop_cp_function_context): Also restore protect_list.
3679 * call.c (build_method_call): Enable synthesis at point of call.
3680 * lex.c (cons_up_default_function): Ditto.
3681
3682 * parse.y: Turn -ansi checks back into -pedantic checks.
3683
3684 * init.c (build_new): Fix -fcheck-new for array new.
3685
3686Sat Mar 4 15:55:42 1995 Fergus Henderson <fjh@cs.mu.oz.au>
3687
3688 * typeck.c (build_compound_expr): warn if left-hand operand of
3689 comma expression has no side-effects.
3690
3691Fri Mar 3 15:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3692
3693 * parse.y (primary): Change 'object qualified_id *' rules to 'object
3694 overqualified_id *'.
3695
3696Fri Mar 3 12:48:17 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3697
3698 * parse.y (unary_expr): Catch doing sizeof an overloaded function.
3699 Make the error look the same as the one we issue in c_sizeof.
3700
3701 * typeck.c (build_binary_op_nodefault): Give an error for trying
3702 to compare a pointer-to-member to `void *'.
3703
3704Fri Mar 3 11:28:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3705
3706 * typeck.c (build_unary_op): Handle bool increment with smoke and
3707 mirrors here, rather than in expand_increment where it belongs,
3708 because Kenner doesn't agree with me.
3709
3710Fri Mar 3 00:08:10 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3711
3712 * decl.c (grokparms): Catch a PARM_DECL being used for a default
3713 argument as well.
3714
3715Thu Mar 2 20:05:54 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3716
3717 * init.c (build_new): Don't allow new on a function type.
3718
3719 * parse.y (primary): Avoid a crash when seeing if the arg is of
3720 the same type as that given for the typespec in an explicit dtor call.
3721
3722Thu Mar 2 00:49:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3723
3724 * decl.c (finish_function): Change test for calling
3725 mark_inline_for_output.
3726
3727Wed Mar 1 11:23:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3728
3729 * typeck.c (build_modify_expr): Complain if
3730 build_default_binary_type_conversion fails.
3731
3732 * init.c (expand_default_init): Handle arguments of unknown type
3733 properly.
3734
3735 * cvt.c (build_expr_type_conversion): Only complain about ambiguity
3736 if 'complain'.
3737 * various: Pass 'complain'.
3738
3739 * typeck.c (comptypes): Be more picky about comparing UPTs.
3740
3741Wed Mar 1 11:03:41 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3742
3743 * decl.c (grokdeclarator): If declarator is null, say that the
3744 type used has an incomplete type.
3745
3746Wed Mar 1 10:06:20 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3747
3748 * pt.c (instantiate_template): Copy the template arguments to the
3749 permanent_obstack. Also use simple_cst_equal to compare them when
3750 looking for a previous instantiation.
3751
3752 * tree.c (make_deep_copy): Support copying INTEGER_TYPEs (assuming
3753 they are array domain types).
3754
3755Tue Feb 28 23:24:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3756
3757 * cp-tree.h: Define WANT_* constants for passing to
3758 build_expr_type_conversion.
3759 * cvt.c (build_expr_type_conversion): New function to build
3760 conversion to one of a group of suitable types.
3761 (build_default_binary_type_conversion): Use it.
3762 * decl2.c (grok_array_decl): Ditto.
3763 * typeck.c (build_unary_op): Ditto.
3764 (build_array_ref): Tidy up a bit.
3765 (build_binary_op): Ditto.
3766
3767Tue Feb 28 19:57:31 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3768
3769 * decl.c (grokdeclarator): Don't allow decl of an argument as `void'.
3770
3771Tue Feb 28 17:23:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3772
3773 * parse.y (typed_declspecs1): Add 'typespec reserved_typespecquals
3774 reserved_declspecs' rule.
3775
3776 * parse.y (expr_or_declarator): Remove notype_qualified_id rule.
3777 (direct_notype_declarator): Ditto.
3778 (complex_direct_notype_declarator): Add notype_qualified_id rule.
3779
3780 * lex.c (real_yylex): Handle :> digraph properly.
3781
3782Tue Feb 28 12:26:29 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3783
3784 * decl.c (grokdeclarator): Check if it's a friend, not if it's
3785 non-virtual, that's being initialized. Move the check up to
3786 before FRIENDP would get cleared. Catch an unnamed var/field
3787 being declared void. Say just `field' instead of `structure field'
3788 in the error message. Only go for the operator name if DECLARATOR
3789 is non-null.
3790
3791Tue Feb 28 00:08:01 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3792
3793 * decl.c (start_function): Complain about abstract return type.
3794 (grokdeclarator): Complain about declaring constructors and
3795 destructors to be const or volatile. Complain about declaring
3796 destructors to be static.
3797
3798 * pt.c (uses_template_parms): Handle pmfs.
3799
3800 * decl.c (grokdeclarator): Don't call variable_size for array bounds
3801 that only depend on template constant parameters.
3802
3803Mon Feb 27 15:38:16 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3804
3805 * error.c (dump_decl): Only look to see if it's a vtable if we
3806 actually have a name to check out.
3807
3808Mon Feb 27 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3809
3810 * cvt.c (convert_to_aggr): Lose misleading shortcut.
3811
3812Sun Feb 26 17:27:32 1995 Doug Evans <dje@canuck.cygnus.com>
3813
3814 * decl.c (set_nested_typename): Always set DECL_IGNORED_P,
3815 not just for dwarf.
3816
3817Sun Feb 26 00:10:18 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3818
3819 * decl.c (grokdeclarator): Don't allow a static member to be
3820 declared `register'.
3821
3822 * init.c (make_friend_class): Move up to a pedwarn for the warning
3823 about a class declaring friends with itself.
3824
3825 * decl.c (grokdeclarator): You can't do `volatile friend class foo'
3826 or `inline friend class foo'. Only try to make a friend out of
3827 TYPE if we didn't already reset it to integer_type_node.
3828
3829Sat Feb 25 22:32:03 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3830
3831 * decl.c (grokdeclarator): Don't allow initialization of a
3832 non-virtual function.
3833
3834 * decl.c (start_function): Do a pedwarn if we're changing `main'
3835 to have an int return type.
3836
3837Sat Feb 25 00:02:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3838
3839 * typeck.c (build_modify_expr): Handle simple assignment from
3840 TARGET_EXPRs by building up an RTL_EXPR to force expansion. Whew.
3841
3842Fri Feb 24 18:27:14 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3843
3844 * decl.c (grokdeclarator): Also don't allow virtual outside of a
3845 class decl for a scope method definition performed at global binding.
3846
3847 * init.c (build_offset_ref): Don't allow creation of an OFFSET_REF
3848 of a bitfield.
3849
3850 * decl.c (grokdeclarator): Don't allow a const to be declared mutable.
3851
3852 * typeck.c (build_binary_op): Return an error_mark_node if either
3853 one of the args turned into an error_mark_node when we tried to
3854 use default_conversion.
3855
3856 * typeck.c (build_unary_op): Forbid using postfix -- on a bool.
3857
3858 * decl.c (grokdeclarator): Allow `signed' and `unsigned' to be
3859 used on `__wchar_t'.
3860
3861Fri Feb 24 13:59:53 1995 Mike Stump <mrs@cygnus.com>
3862
3863 * except.c (end_protect_partials): Do it the right way.
3864
3865Wed Feb 22 15:42:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3866
3867 * typeck.c (build_binary_op_nodefault): Upgrade warning about
3868 comparing distinct pointer types to pedwarn.
3869
3870 * typeck2.c (digest_init): Cope with extra braces.
3871
3872 * typeck.c (build_binary_op_nodefault): Use tree_int_cst_sgn instead
3873 of INT_CST_LT (..., interger_zero_node).
3874
3875Wed Feb 22 14:45:52 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3876
3877 * except.c [!TRY_NEW_EH] (end_protect_partials): Define dummy
3878 function for systems that don't have EH.
3879
3880Tue Feb 21 19:18:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3881
3882 * call.c (can_convert_arg): Like can_convert, but takes an arg as
3883 well.
3884
3885 * pt.c (type_unification): Allow implicit conversions for parameters
3886 that do not depend on template parameters.
3887
1b65f56d
DR
3888Tue Feb 21 18:43:48 1995 Douglas Rupp (drupp@cs.washington.edu)
3889
3890 * Make-lang.in, config-lang.in: ($exeext): New macro.
3891 * Make-lang.in: Try a "cp" if "ln" fails.
3892 * cp-tree.h (decl_attributes): Added argument.
3893 * decl2.c (cplus_decl_attribute): Add arg to decl_attributes.
3894 * cp/g++.c: Added #ifdefs for sys/file.h and process.h for NT.
3895 Modified spawnvp to have to correct number of arguments for OS/2, NT.
3896
b7484fbe
MS
3897Tue Feb 21 18:36:55 1995 Mike Stump <mrs@cygnus.com>
3898
3899 * decl.c (finish_function): Add calls to end_protect_partials to end
3900 the exception region that protects constructors so that partially
3901 constructed objects can be partially destructed when the constructor
3902 throws an exception.
3903 * init.c (perform_member_init, sort_member_init, emit_base_init):
3904 Added support for partially constructed objects.
3905 * init.c (build_partial_cleanup_for): New routine to do partial
3906 cleanups of a base class.
3907 * decl2.c (finish_file): Move the emitting of the exception table
3908 down, after we emit all code that might have exception regions in
3909 them.
3910 * except.c (end_protect_partials, might_have_exceptions_p): New
3911 routines.
3912 (emit_exception_table): Always output table if called.
3913 * cp-tree.h (protect_list, end_protect_partials,
3914 might_have_exceptions_p, emit_exception_table): Added.
3915
3916Tue Feb 21 16:05:59 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
3917
3918 * gc.c (build_typeid): Pass a NULL_TREE, not the bogus, unused
3919 address of a local variable.
3920 * class.c (build_vfn_ref): Only try to build the PLUS_EXPR if we
3921 were given a non-null PTR_TO_INSTPTR.
3922
3923Tue Feb 21 01:53:18 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3924
3925 * decl.c (duplicate_decls): Always lay out the merged decl.
3926
3927 * decl2.c (finish_vtable_vardecl): Don't do vtable hack on templates.
3928 (finish_prevtable_vardecl): Ditto.
59be85d7 3929
b7484fbe
MS
3930 * method.c (synthesize_method): Set interface_{unknown,only}
3931 according to the settings for our class, not the file where it comes
3932 from.
59be85d7 3933
b7484fbe 3934Sat Feb 18 12:26:48 1995 Mike Stump <mrs@cygnus.com>
3a887df4 3935
b7484fbe 3936 * except.c: Handle systems that define __i386__ but not __i386.
3a887df4 3937
e3417fcd
MS
3938Fri Feb 17 15:31:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3939
3940 * decl2.c (reparse_decl_as_expr): Support being called without a
3941 type argument.
3942
3943 * parse.y (primary): Add '(' expr_or_declarator ')'. Adds 4 r/r
3944 conflicts. Sigh.
3945
3946Fri Feb 17 12:02:06 1995 Mike Stump <mrs@cygnus.com>
3947
3948 * parse.y (template_def, fndef, fn.def1, return_init, condition,
3949 initdcl0, initdcl, notype_initdcl0, nomods_initdcl0,
3950 component_decl_1, after_type_component_declarator0,
3951 notype_component_declarator0, after_type_component_declarator,
3952 notype_component_declarator, after_type_component_declarator,
3953 full_parm, maybe_raises, exception_specification_opt): Fix up,
3954 include exception_specification_opt maybeasm maybe_attribute and
3955 maybe_init if missing. Rename maybe_raises to
3956 exception_specification_opt to match draft wording. Use maybe_init
3957 to simplify rules.
3958
3959Fri Feb 17 01:54:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3960
3961 * init.c (build_new): Set TREE_NO_UNUSED_WARNING on COMPOUND_EXPRs
3962 built for news of scalar types.
3963
3964Thu Feb 16 17:48:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3965
3966 * typeck.c (build_binary_op_nodefault): Update code for warning
3967 about signed/unsigned comparisons from C frontend. Realize that the
3968 code in the C frontend is, if anything, even more bogus. Fix it.
3969 (build_binary_op): Undo default_conversion if it wasn't useful.
3970
3971 * typeck.c (build_unary_op, ADDR_EXPR): Lose bogus special case for
3972 PRE*CREMENT_EXPR.
3973
3974 * decl2.c (import_export_vtable): Don't try the vtable hack
3975 if the class doesn't have any real non-inline virtual functions.
3976 (finish_vtable_vardecl): Don't bother trying to find a non-inline
3977 virtual function in a non-polymorphic class.
3978 (finish_prevtable_vardecl): Ditto.
3979
3980 * decl2.c (import_export_vtable): Use and set DECL_INTERFACE_KNOWN.
3981
3982 * cp-tree.h (DECL_INTERFACE_KNOWN): Use DECL_LANG_FLAG_5.
3983
3984 * init.c (expand_virtual_init): Always call assemble_external.
3985
3986 * class.c (build_vfn_ref): Always call assemble_external.
3987 (build_vtable): Always call import_export_vtable.
3988 (prepare_fresh_vtable): Ditto.
3989 (add_virtual_function): Don't bother setting TREE_ADDRESSABLE.
3990
8ccc31eb
MS
3991Thu Feb 16 03:28:49 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3992
3993 * class.c (finish_struct): Use TYPE_{MIN,MAX}_VALUE to determine
3994 whether an enumerated type fits in a bitfield.
3995
3996Wed Feb 15 15:38:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3997
3998 * class.c (grow_method): Update method_vec after growing the class
f30432d7 3999 obstack.
8ccc31eb
MS
4000
4001Wed Feb 15 13:42:59 1995 Mike Stump <mrs@cygnus.com>
4002
4003 * parse.y (handler_seq): Push a level for the catch parameters.
4004
4005Wed Feb 15 12:42:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4006
4007 * init.c (emit_base_init): Update BINFO_INHERITANCE_CHAIN on my
4008 bases, in case they've been clobbered.
4009
4010Wed Feb 15 12:07:29 1995 Mike Stump <mrs@cygnus.com>
4011
4012 * class.c (finish_base_struct): Set up BINFO_INHERITANCE_CHAIN here,
4013 so that one day it will always be valid.
4014 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Ditto.
4015
4016 * cp-tree.h (copy_binfo): Removed, unused.
4017 * tree.c (copy_binfo): Ditto.
4018
4019Wed Feb 15 00:05:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4020
4021 * init.c (build_new): Save the allocation before calling
4022 expand_vec_init on it.
4023
4024 * decl.c (finish_enum): The TYPE_PRECISION of the enum type mush
4025 match the TYPE_PRECISION of the underlying type for constant folding
4026 to work.
4027
4028Tue Feb 14 15:31:25 1995 Mike Stump <mrs@cygnus.com>
4029
4030 * except.c (push_eh_entry, expand_start_all_catch,
4031 expand_leftover_cleanups, expand_end_catch_block): Keep track of
4032 the context in which the exception region occurs.
4033 (build_exception_table): If the region was not output, don't output
4034 the entry in the eh table for it.
4035
4036Tue Feb 14 02:15:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4037
4038 * init.c (expand_default_init): Only use a previous constructor call
4039 if it's a call to our constructor. Does the word "Duh" mean
4040 anything to you?
4041
4042 * decl.c (grokparms): Fine, just don't call
4043 convert_for_initialization at all. OK? Happy now?
4044
4045Mon Feb 13 02:23:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4046
4047 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Make sure that the class
4048 method vector has a second element before returning it.
4049
4050 * decl.c (grokparms): Don't strip REFERENCE_TYPE before calling
4051 convert_for_initialization.
4052
4053Sun Feb 12 03:57:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4054
4055 * typeck.c (build_modify_expr): Compare function name to
4056 constructor_name (current_class_type) instead of current_class_name.
4057
4058 * decl.c (grokparms): Don't do anything with the return value of
4059 convert_for_initialization.
4060
4061 * error.c (dump_decl): Also dump_readonly_or_volatile on the decl.
4062
4063 * decl.c (duplicate_decls): Tweak error message.
4064
4065 * typeck.c (build_const_cast): Implement checking.
4066 (build_reinterpret_cast): Implement some checking.
4067
4068 * cp-tree.h (CONV_FORCE_TEMP): Require a new temporary when
4069 converting to the same aggregate type.
4070 (CONV_STATIC_CAST): Include it.
4071 (CONV_C_CAST): Ditto.
4072 * cvt.c (convert_force): Use CONV_C_CAST instead of CONV_OLD_CONVERT.
4073 (cp_convert): Only force a new temporary if CONV_FORCE_TEMP.
4074
4075Fri Feb 10 16:18:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4076
4077 * typeck.c (build_c_cast): Use non_lvalue to tack something on
f30432d7 4078 where necessary.
8ccc31eb
MS
4079
4080 * decl.c (auto_function): Now a function.
4081 * except.c (init_exception_processing): terminate, unexpected,
4082 set_terminate, and set_unexpected have C++ linkage.
4083
4084 * typeck.c (build_unary_op, TRUTH_NOT_EXPR): Use convert instead of
4085 truthvalue_conversion for converting to bool, as it handles
4086 user-defined conversions properly.
4087 (condition_conversion): Ditto.
4088
4089 * except.c (expand_throw): Don't call convert_to_reference.
4090 Pass the correct parameters to build_new.
4091
4092 * method.c (do_build_assign_ref): Don't use access control when
4093 converting to a base reference here.
4094 (do_build_copy_constructor): Or here.
4095
4096 * init.c (build_new): Unset TREE_READONLY on the dereferenced
4097 pointer before assigning to it.
4098
4099 * decl.c (maybe_build_cleanup): Don't bother stripping const here.
4100
4101 * decl2.c (delete_sanity): You can now delete pointer to const.
4102
4103Fri Feb 10 13:28:38 1995 Jason Merrill <jason@python.cygnus.com>
4104
4105 * decl.c (finish_function): Don't rely on actual parameters being
4106 evaluated left-to-right.
4107 * except.c (expand_end_catch_block): Ditto.
4108
4109Fri Feb 10 00:52:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4110
4111 * tree.c (real_lvalue_p): Like lvalue_p, but class temps aren't
4112 considered lvalues.
4113 * cvt.c (convert_to_reference): Use real_lvalue_p instead of
f30432d7 4114 lvalue_p.
8ccc31eb
MS
4115
4116 * cvt.c (build_type_conversion_1): Don't call convert on aggregate
4117 types.
4118 (convert_to_reference): Fix erroneous text substitution.
4119
4120 * typeck2.c (initializer_constant_valid_p): Update from C frontend.
4121 Add new argument to all callers.
4122
4123 * typeck.c (convert_arguments): Check for error_mark_node before
4124 trying to do anything with the actual parameter.
4125
4126 * typeck.c (condition_conversion): Build up a CLEANUP_POINT_EXPR and
4127 fold it.
4128 (bool_truthvalue_conversion): Remove. Fix all callers to call
4129 truthvalue_conversion instead.
4130 (various): Fold CLEANUP_POINT_EXPRs.
4131
4132 * parse.y (conditions): Call condition_conversion rather than
4133 building up a CLEANUP_POINT_EXPR.
4134
4135 * pt.c (end_template_decl): Don't warn_if_unknown_interface here
4136 under -falt-external-templates.
4137
4138Thu Feb 9 05:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4139
4140 * init.c (build_new): Complain about new of const type without
4141 initializer. Other cleanup.
4142
4143 * call.c (compute_conversion_costs): Don't call
4144 build_type_conversion with a reference type; convert to the target
4145 type and check its lvaluetude.
4146 * cvt.c (convert_to_reference): Ditto.
4147
4148 * cvt.c (build_type_conversion_1): There will never be any need to
4149 dereference references here now.
4150
4151Thu Feb 9 00:37:47 1995 Mike Stump <mrs@cygnus.com>
4152
4153 * except.c (expand_builtin_throw): Make sure we only `use' the
4154 value of return_val_rtx.
4155
4156Wed Feb 8 15:45:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4157
4158 * parse.y (structsp): Don't complain about declaring a type being
4159 defined to be a friend.
4160
4161 * decl2.c (warn_if_unknown_interface): Note the template in question
4162 and the point of instantiation, for -falt-external-templates.
4163 * lex.c (reinit_parse_for_method): Pass the decl to
4164 warn_if_unknown_interface.
4165 * pt.c (instantiate_template): Ditto.
4166 (end_template_decl): Ditto.
4167
4168 * decl.c (set_nested_typename): Set IDENTIFIER_TYPE_VALUE on the
4169 nested name again, to make local classes work a bit better.
4170
4171 * typeck.c (build_function_call_real): Dereference reference after
4172 checking for incomplete type.
4173
4174 * init.c (build_new): Accept new of const and volatile types.
4175
4176Wed Feb 8 14:04:16 1995 Jason Merrill <jason@deneb.cygnus.com>
4177
4178 * decl.c (grokdeclarator): Fix error message.
4179
4180Wed Feb 8 03:16:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4181
4182 * typeck.c (convert_for_initialization): Do bash arrays when
4183 converting to a reference to non-array.
4184
4185Tue Feb 7 15:50:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4186
4187 * cvt.c (cp_convert): Don't call convert_to_reference, or
4188 automatically dereference references. Do pass reference conversions
4189 to cp_convert_to_pointer.
4190 (cp_convert_to_pointer): Support references.
4191
4192 * call.c (build_method_call): Don't build up a reference to the
4193 parameter here; let build_overload_call handle that.
4194
4195 * typeck.c (build_c_cast): Call convert_to_reference directly if
4196 converting to a reference type.
4197 * method.c (do_build_copy_constructor): Ditto.
4198 * method.c (do_build_copy_constructor): Ditto.
4199 (do_build_assign_ref): Ditto.
4200
4201 * call.c (build_method_call): Dereference a returned reference.
4202 * typeck.c (build_function_call_real): Ditto.
4203
4204 * decl.c (xref_basetypes): Check for unions with basetypes here.
4205 (xref_tag): Instead of here.
4206
4207 * pt.c (process_template_parm): Template type parm decls are
4208 artificial.
4209
4210Mon Feb 6 04:32:09 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4211
4212 * parse.y (typed_declspecs): Add missing semicolon.
4213 (do_xref_defn): Resurrect.
4214 (named_class_head_sans_basetype): Move template specialization
4215 definition cases to named_class_head_sans_basetype_defn.
4216
4217 * decl2.c (grokfield): Call pushdecl_class_level after setting the
4218 TYPE_NAME, not before.
4219
4220Sun Feb 5 02:50:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4221
4222 * call.c (convert_harshness): Don't call sorry here. Don't allow
4223 conversions between function pointer types if pedantic.
4224
4225 * pt.c (overload_template_name): Pass globalize=1 to xref_tag.
4226
4227 * lex.c (cons_up_default_function): Use the full name for the return
4228 type of op=.
4229
4230 * decl.c (set_nested_typename): Don't worry about anonymous types,
4231 as they already have a unique name.
4232 (pushdecl): Remove redundant set_nested_typename
4233 (xref_tag): Split out base handling into xref_basetypes.
4234
4235 * cp-tree.h (TYPE_INCOMPLETE): New macro; TEMPLATE_TYPE_PARMs are
4236 not considered incomplete even though their definition is unknown.
4237
4238 * decl.c (xref_defn_tag): Lose.
4239 (xref_tag): xref_next_defn = ! globalize.
4240 (pushdecl): Don't set DECL_NESTED_TYPENAME on artificial decls. The
4241 ones that should have it set will have it set by pushtag.
4242 (pushdecl_class_level): Ditto.
4243 (pushtag): Tidy up a bit.
4244 (set_nested_typename): Push a decl for the nested typename from
4245 here, rather than from xref_defn_tag.
4246
4247 * parse.y (do_xref): Lose.
4248 (named_class_head): If we see 'class foo:' we know it's a
4249 definition, so don't worry about base lists for non-definitions.
4250
4251 * pt.c (push_template_decls): Template parm decls are artificial.
4252
4253 * decl.c (duplicate_decls): Restore check for qualifier
4254 disagreement for non-functions.
4255 (decls_match): Remove check for qualifier disagreement.
4256
4257Fri Feb 3 14:58:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4258
4259 * decl.c (grok_reference_init): Convert initializer from
f30432d7 4260 reference.
8ccc31eb
MS
4261 * typeck.c (convert_for_initialization): Ditto.
4262
4263 * decl.c (duplicate_decls): Propagate DECL_NESTED_TYPENAME.
4264
4265 * cvt.c (cp_convert): Don't convert to the same class type by just
4266 tacking on a NOP_EXPR.
4267 (convert_to_reference): Use comp_target_types instead of comptypes
4268 so that we don't allow conversions two levels down.
4269
4270Thu Feb 2 15:07:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4271
4272 * class.c (build_vbase_path): Bash types to make the backend happy.
4273 * cvt.c (build_up_reference): Bash the types bashed by
4274 build_vbase_path to be reference types instead of pointer types.
4275 (convert_to_reference): Ditto.
4276
4277 * typeck.c (build_c_cast): Don't strip NOPs if we're converting to a
4278 reference type.
4279
4280 * parse.y (structsp): Put back error for 'struct B: public A;'.
4281
4282Wed Feb 1 23:02:06 1995 Mike Stump <mrs@cygnus.com>
4283
4284 * except.c: Add support for mips systems that don't define __mips
4285 but do define mips, like Ultrix.
4286
4287Wed Feb 1 22:39:07 1995 Mike Stump <mrs@cygnus.com>
4288
4289 * except.c: Add support for exception handling on the Alpha.
4290
1038f4f9
MS
4291Wed Feb 1 10:12:14 1995 Mike Stump <mrs@cygnus.com>
4292
4293 * decl2.c (finish_file): Fix bug in Jan 31st change.
4294
4295Tue Jan 31 16:59:15 1995 Gerald Baumgartner (gb@lorenzo.cs.purdue.edu)
4296
4297 * sig.c (build_signature_pointer_or_reference_type): Don't set
4298 IS_AGGR_TYPE for signature pointers/reference so expand_default_init
4299 doesn't expect to find a copy constructor.
4300 * call.c (build_method_call): Treat signature pointers/reference
4301 as if IS_AGGR_TYPE were set.
4302
d18c083e
MS
4303Tue Jan 31 13:28:56 1995 Mike Stump <mrs@cygnus.com>
4304
4305 * gc.c (get_typeid): Pawn off error messages to build_t_desc.
4306 (build_t_desc): Inform the user here if they try and build
4307 with -frtti and don't include <typeinfo.h>.
4308
4309 * decl2.c (finish_prevtable_vardecl): Support rescanning.
4310 (finish_file): Move finish_prevtable_vardecl up to before the global
4311 initializers are done as tdecls are initialized in the global
4312 initializer. Also Pick up any new tdecls or vtables needed by
4313 synthesized methods.
4314
4315 * class.c (finish_struct): Simplify. We have to do rtti scanning at
4316 end, so we might as well do all of it there.
4317
4318Tue Jan 31 05:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4319
4320 * call.c (build_method_call): Fix -fthis-is-variable for 32-bit
4321 targets, too.
4322
4323Tue Jan 31 00:11:04 1995 Mike Stump <mrs@cygnus.com>
4324
4325 * decl2.c (finish_prevtable_vardecl): New routine, mostly split from
4326 finish_vtable_vardecl. It has the first half functionality from
4327 that routine.
4328 * decl2.c (finish_vtable_vardecl): Update to not include stuff not
4329 in finish_prevtable_vardecl.
4330 * decl2.c (finish_file): Call finish_prevtable_vardecl.
4331 * gc.c (build_generic_desc): Allow it to be called when not at the
4332 global binding layer, but behave as if we were.
4333 (build_t_desc): Rearrange a bit so that it really works and is
4334 easier to follow.
4335 * class.c (finish_struct): Don't decide on tdecls here, as we have
4336 to wait until the end of the file in general to decide whether or
4337 not they come out.
4338
4339Mon Jan 30 01:00:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4340
4341 * init.c (build_delete): Check access to operator delete before
4342 calling the destructor.
4343 * method.c (build_opfncall, DELETE_EXPR): build_method is allowed to
4344 return error_mark_node.
4345 * call.c (build_method_call): Use the one-argument op delete even if
4346 it's an error.
4347
4348 * init.c (build_new): Fix -fthis-is-variable support.
4349 * call.c (build_method_call): Ditto.
4350
4351 * call.c (convert_harshness): Make conversion from a pointer to bool
4352 worse than conversion to another pointer.
4353
4354Sat Jan 28 16:46:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4355
4356 * init.c (build_new): Check new return value if -fcheck-new.
4357
4358 * lex.c (check_newline): Clear end_of_file when we're done, too.
4359
4360Sat Jan 28 10:38:39 1995 Mike Stump <mrs@cygnus.com>
4361
4362 * decl2.c (finish_vtable_vardecl): Make rtti TD tables follow
4363 vtables whereever they go.
4364
4365 * gc.c (build_t_desc): Remove old way of setting it up, as it wasn't
4366 right.
4367
4368Sat Jan 28 09:10:44 1995 Mike Stump <mrs@cygnus.com>
4369
4370 * decl2.c (finish_vtable_vardecl): Now set the
4371 interface/implementation of vtables on the first virtual function,
4372 if one exists, otherwise we use the old method. This is a major win
4373 in terms of cutting down the size of objects and executables in
4374 terms of text space and data space. Now most of the savings that
4375 #pragma interface/implementation gives is automatic in a fair number
4376 of cases.
4377
4378Sat Jan 28 04:57:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4379
4380 * decl.c (grokdeclarator): Discard the template parameters in a
4381 template constructor declaration so that the function is always
4382 named constructor_name (ctype).
4383
4384 * lex.c (check_newline): Use ungetc to put back the character before
4385 calling HANDLE_PRAGMA.
4386
4387Fri Jan 27 17:23:47 1995 Mike Stump <mrs@cygnus.com>
4388
4389 * decl2.c (check_classfn): If the cname is T<int> and fn_name is T,
4390 make sure we still match them.
4391
4392Fri Jan 27 16:32:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4393
4394 * parse.y: Add END_OF_LINE token.
4395
4396 * lex.c (check_newline): Set linemode when we see a # directive, and
4397 unset it when we're done. Turn all 'return's into 'goto skipline'.
4398 Fix all uses of '\n', since we won't see it anymore. Put back the
4399 character we read before checking for a sysv or target pragma.
4400 (real_yylex): If we see an EOF in linemode, return END_OF_LINE.
4401 (handle_sysv_pragma): Don't look at the input stream; quit when we
4402 see an END_OF_LINE token.
4403
4404 * input.c (getch): Return EOF if we're in line mode and at the end
4405 of a line.
4406 (put_back): Don't put back an EOF.
4407
4408Thu Jan 26 19:26:34 1995 Mike Stump <mrs@cygnus.com>
4409
4410 * except.c (expand_throw): Do the newing of the exception object
4411 before we load the type descriptor or the address so that we don't
4412 wipe any of the values out.
4413
4414Thu Jan 26 19:20:00 1995 Mike Stump <mrs@cygnus.com>
4415
4416 * except.c (init_exception_processing): Don't use r12 on the rs6000.
4417
4418Tue Jan 24 16:36:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4419
4420 * decl.c (grokparms): Don't try to build up a reference at this point.
4421
4422 * typeck2.c (build_functional_cast): Don't assume that a NOP_EXPR
4423 will suffice to convert from integer_zero_node.
4424
b7484fbe
MS
4425Wed Jan 25 15:02:09 1995 David S. Miller (davem@nadzieja.rutgers.edu)
4426
4427 * class.c (instantiate_type): Change error message text.
4428 * typeck2.c (store_init_value): Likewise.
4429
e1cd6e56
MS
4430Mon Jan 23 21:57:14 1995 Mike Stump <mrs@cygnus.com>
4431
4432 * pt.c (tsubst): When we copy a node, don't forget to copy
4433 TREE_CHAIN, we use it later.
4434
4435Mon Jan 23 03:33:47 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4436
4437 * typeck.c (convert_for_assignment): Initialize variable before use.
4438
4439Fri Jan 20 01:17:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4440
4441 * g++.c (main): Link with both libstdc++ and libg++ if called as
4442 something ending with "g++", otherwise only libstdc++. Move -lm to
4443 the end of the line.
4444
4445Thu Jan 19 15:43:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4446
4447 * call.c (build_method_call): Don't mess with 'this' before calling
f30432d7 4448 compute_conversion_costs.
e1cd6e56
MS
4449
4450Wed Jan 18 15:40:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4451
4452 * search.c (get_matching_virtual): Give line number for previous
f30432d7 4453 declaration.
e1cd6e56
MS
4454
4455 * call.c (convert_harshness): Handle conversions to references
4456 better.
4457
4458 * cvt.c (build_up_reference): OK, handle {MIN,MAX}_EXPR *properly*.
4459
4460Wed Jan 18 15:21:38 1995 Mike Stump <mrs@cygnus.com>
4461
4462 * class.c (instantiate_type): Use DECL_CHAIN to walk lists instead,
4463 as the TREE_CHAIN for methods will take us to the next differently
4464 named function, DECL_CHAIN won't.
4465
4466Wed Jan 18 14:26:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4467
4468 * tree.c (lvalue_p): Handle {MIN,MAX}_EXPR.
4469
4470 * decl2.c (lang_decode_option): -Wall implies -Wparentheses.
4471 warn_parentheses defaults to 0.
4472
4473 * decl.c (grokparms): Put back call to require_instantiated_type.
4474
4475Tue Jan 17 19:56:15 1995 Mike Stump <mrs@cygnus.com>
4476
4477 * except.c (exception_section): Use the data section on the rs6000.
4478 Change calling convention for named_section.
4479
4480Wed Jan 17 18:20:57 1994 Fergus Henderson <fjh@munta.cs.mu.oz.au>
4481
f30432d7
MS
4482 * cp-tree.h : Make if (x=0) warn with wall
4483 * parse.y : Make if (x=0) warn with wall
e1cd6e56 4484
255512c1
JM
4485Tue Jan 17 14:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4486
e1cd6e56
MS
4487 * decl.c (BOOL_TYPE_SIZE): BITS_PER_WORD if SLOW_BYTE_ACCESS,
4488 BITS_PER_UNIT otherwise.
4489
4490 * search.c (get_matching_virtual): Don't check the binfo if the
4491 types are the same.
4492
4493 * cvt.c (cp_convert): Just call truthvalue_conversion to convert to
f30432d7 4494 bool.
255512c1
JM
4495
4496Mon Jan 16 13:28:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4497
e1cd6e56
MS
4498 * various: Use boolean_type_node, boolean_true_node,
4499 boolean_false_node.
4500
4501 * search.c (get_matching_virtual): Allow covariant returns that
4502 don't require pointer adjustment.
4503
4504 * typeck.c (build_conditional_expr): Don't call default_conversion
4505 on ifexp.
4506
4507 * cvt.c (build_up_reference): Handle MIN_EXPR and MAX_EXPR.
4508
4509 * decl.c (grokdeclarator): Upgrade warning about &const to pedwarn.
4510
4511Sun Jan 15 22:17:32 1995 dcb@lovat.fmrco.COM (David Binderman)
4512
4513 * pt.c (do_function_instantiation): Free targs once we're done.
255512c1
JM
4514
4515Sun Jan 15 22:17:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4516
e1cd6e56
MS
4517 * decl.c (BOOL_TYPE_SIZE): Defaults to BITS_PER_WORD.
4518 (init_decl_processing): Use BOOL_TYPE_SIZE instead of CHAR_TYPE_SIZE
4519 for bool.
4520
4521Sat Jan 14 05:33:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4522
4523 * decl2.c (finish_file): We need to mess up if there are any
4524 variables in the list, not just if there is one with a constructor.
4525
4526Fri Jan 13 14:42:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4527
4528 * decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR.
4529 (finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR.
4530 (finish_function): Trust rest_of_compilation.
4531
4532 * decl2.c (finish_file): Also call functions designated as static
4533 constructors/destructors.
4534
4535 * decl.c (grokdeclarator): Allow access decls of operator functions.
4536 (grokparms): Only do convert_for_initialization if the initializer
4537 has a type.
4538 (duplicate_decls): Put back push_obstacks_nochange call.
4539
4540 * lex.c (real_yylex): Downgrade complaint about the escape sequence
4541 being too large from pedwarn to warning.
4542
4543 * decl.c (grokdeclarator): Don't complain about long long in system
4544 headers.
4545
4546 * lex.c (real_yylex): Handle digraphs.
4547
4548Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4549
4550 * decl.c (init_decl_processing): -f{no-,}strict-prototype only
4551 affects C linkage declarations now.
4552
4553 * typeck.c (comp_target_types): Grok simple contravariant conversions.
4554 (common_type): t1 and t2 are interchangeable.
4555
4556 * various: Test return value of comp_target_types differently in
4557 different places; it now returns -1 for a contravariant conversion
4558 (which is fine in symmetric cases).
4559
4560 (common_type): Prefer long double to double even when
4561 they have the same precision.
4562
4563 * decl.c (grokparms): Call convert_for_initialization to check
4564 default arguments.
4565
4566 * init.c (build_new): void_type_node has a size (of 0).
4567
4568 * decl.c (decls_match): Also check for agreement of TREE_READONLY
4569 and TREE_THIS_VOLATILE.
4570 (push_class_level_binding): Properly handle shadowing of
4571 nested tags by fields.
4572
4573 * search.c (dfs_pushdecls): Ditto.
4574
4575 * decl2.c (finish_file): Don't second-guess self-initialization.
4576
4577 * cvt.c (convert_to_reference): Work with expr directly, rather than
4578 a copy.
4579
4580 * decl.c (push_overloaded_decl): Only shadow artificial TYPE_DECLs.
4581
4582 * init.c (add_friend): Downgrade duplicate friend message from
4583 pedwarn to warning.
4584
4585 * decl.c (duplicate_decls): Push obstacks before calling common_type.
4586
4587Thu Jan 12 17:15:21 1995 Michael Ben-Gershon <mybg@cs.huji.ac.il>
4588
4589 * except.c (push_eh_entry): set LABEL_PRESERVE_P flag for
4590 exception table labels.
4591 (expand_start_all_catch): Ditto.
4592 (expand_leftover_cleanups): Ditto.
4593 (expand_end_catch_block): Ditto.
4594 * except.c (make_first_label): new function.
4595 (expand_start_all_catch): add a call to make_first_label() before
4596 using a label as a jump destination.
4597 (expand_end_all_catch): Ditto.
4598 (expand_leftover_cleanups): Ditto.
4599 (expand_end_catch_block): Ditto.
4600 (expand_builtin_throw): Ditto.
4601 (expand_throw): Ditto.
4602 * except.c: Add ARM processor support for exception handling.
4603
4604Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4605
4606 (complete_array_type): Copy code from C frontend.
4607
4608 * lex.c (real_yylex): Don't multiply the length of a wide string
4609 literal by WCHAR_BYTES.
4610
4611 * decl.c (pushdecl): Check for redeclaration of wchar_t here.
4612 (duplicate_decls): Instead of here.
4613 (define_label): Complain about a label named wchar_t.
4614 (grokdeclarator): Complain about declarations of
4615 operator-function-ids as non-functions.
4616
4617 * typeck.c (unary_complex_lvalue): Also wrap prefix -- and ++ in
4618 COMPOUND_EXPRs.
4619 (build_unary_op): Wrap unary plus in a NON_LVALUE_EXPR.
4620
4621 * lex.c (real_yylex): Don't skip whitespace when reading the next
4622 character after ->.
4623
4624Wed Jan 11 16:32:49 1995 Mike Stump <mrs@cygnus.com>
4625
4626 * except.c: Allow cc1plus to be built with native compiler on rs6000.
4627 (expand_start_all_catch): Add assemble_external calls for various
4628 routines we call.
4629 (expand_leftover_cleanups): Ditto.
4630 (expand_start_catch_block): Ditto.
4631 (do_unwind): Ditto.
4632 (expand_builtin_throw): Ditto.
4633
4634Wed Jan 11 01:05:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4635
4636 * decl.c (pushtag): Only look for a previous decl in the current
4637 binding level. Use explicit global scope in DECL_NESTED_TYPENAME.
4638
4639 * gxx.gperf: Add __signature__ and __sigof__ keywords.
4640
4641 * decl2.c (lang_decode_option): -ansi does not set flag_no_asm. It
4642 does set flag_no_gnu_keywords and flag_operator_names.
4643
4644 * lex.c (init_lex): 'overload' is not a keyword unless -traditional.
4645 Unset extension keywords if -fno-gnu-keywords.
4646 Allow operator names ('bitand') if -foperator-names.
4647 Never unset 'asm'; -fno-asm only affects 'typeof'.
4648
4649 * decl.c (lookup_name_real): The got_object special lookup only
4650 applies to types.
4651
4652Tue Jan 10 18:07:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4653
4654 * spew.c (yylex): Also use DECL_NESTED_TYPENAME if got_object is set.
4655
4656 * parse.y (primary): Unset got_object after all rules that use the
f30432d7 4657 'object' nonterminal.
e1cd6e56
MS
4658 (object): Set got_object.
4659
4660 * lex.h: Declare got_object.
4661
4662 * decl.c (lookup_name_real): Also lookup names in the context of an
4663 object specified.
4664
4665Tue Jan 10 14:30:30 1995 Mike Stump <mrs@cygnus.com>
4666
4667 * typeck.c (get_member_function_from_ptrfunc): Use ptrdiff_type_node
4668 for things that have to be added to pointers, not size_type. Cures
4669 problems with pointer to members on Alphas.
4670 (build_binary_op_nodefault): Ditto.
4671 (get_delta_difference_: Ditto.
4672 (build_ptrmemfunc): Ditto.
4673
4674Tue Jan 10 01:49:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4675
4676 * decl.c (pushtag): Stick the new decl in TYPE_NAME before pushing
4677 it.
4678
4679 * typeck.c (build_component_ref): Don't build up a COMPONENT_REF
4680 when dealing with overloaded member functions; just act like
4681 build_offset_ref.
4682 (commonparms): Remove misleading comment.
4683
4684 * decl.c (duplicate_decls): Complain about repeated default
4685 arguments here.
4686 (redeclaration_error_message): Instead of here.
4687 (pushdecl): Complain about missing default arguments here.
4688 (grokparms): Instead of here.
4689 (lookup_name_current_level): Also match on DECL_ASSEMBLER_NAME.
4690 (grok_reference_init): Do not complain about missing initializer if
4691 declared 'extern'.
4692
4693 * search.c (lookup_field): Don't return a TYPE_DECL if there is a
4694 function alternative and want_type is not set.
4695
4696Mon Jan 9 18:16:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4697
4698 * decl.c (pushtag): Don't set TYPE_NAME to an identifier. Do push
4699 the decl when the type has no TYPE_NAME.
4700 (lookup_nested_type): Don't assume that type has TYPE_NAME set.
4701 (lookup_name_real): Call lookup_field with want_type =
4702 prefer_type.
4703
4704 * search.c (lookup_field): Handle want_type properly in the presence
4705 of fields with the same name.
4706
4707 * decl.c (set_nested_typename): Set nested name for file-scope types
4708 to include leading ::.
4709 (pushdecl): Set the nested typename if the decl doesn't have one,
4710 rather than if the type's canonical decl doesn't have one.
4711
e1cd6e56
MS
4712Mon Jan 9 03:44:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4713
4714 * typeck.c (convert_for_assignment): Complain about contravariance
4715 violation here.
4716 (comp_target_types): Instead of here.
4717 (build_unary_op): resolve_offset_ref before checking for a valid
4718 type.
4719
4720 * spew.c (yylex): Decrement looking_for_typename after we see a
4721 _DEFN.
4722
4723 * decl.c (pushdecl): Don't install an artificial TYPE_DECL in
f30432d7 4724 IDENTIFIER_LOCAL_VALUE if we already have a decl with that name.
e1cd6e56
MS
4725
4726 * typeck.c (convert_for_assignment): Converting pointers to bool
4727 does not need a cast.
4728
4729Sun Jan 8 18:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4730
4731 * class.c (instantiate_type): Initialize nsubsts parm.
4732
4733 * pt.c (do_function_instantiation): Ditto.
4734
4735Sat Jan 7 14:37:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4736
4737 * pt.c (tsubst): Use TREE_STATIC instead of DECL_INLINE &&
4738 DECL_SAVED_INSNS to determine whether or not we've seen a definition
4739 of this function.
4740 (instantiate_template): Ditto.
4741
4742 * call.c (convert_harshness): Allow const reference binding when
4743 called from the overloading code, but not when called from
4744 can_convert (since it isn't a conversion).
4745 (convert_harshness): Put back some disabled code.
4746
4747Fri Jan 6 14:10:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4748
4749 * call.c (convert_harshness): There is no implicit conversion from
4750 void* to other pointer types (unless the parameter is (void*)0).
4751 (convert_harshness): Non-lvalues do not convert to reference types.
4752
4753 * class.c (finish_struct_methods): Still set
f30432d7 4754 TYPE_HAS_{INT,REAL}_CONVERSION.
e1cd6e56
MS
4755
4756 * call.c (can_convert): Don't use aggregate initialization.
4757
4758 * cp-tree.h: Declare lookup_conversions.
4759
4760Thu Jan 5 21:08:00 1995 Mike Stump <mrs@cygnus.com>
4761
4762 * parse.y (simple_stmt): Fix duplicate case value error messages to
4763 be more readable.
4764
4765Wed Jan 4 16:44:19 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4766
4767 * cvt.c (build_type_conversion): Total rewrite to use
4768 convert_harshness instead of reproducing conversion logic here. Now
4769 much shorter.
4770
4771 * call.c (convert_harshness): Support conversions to bool.
4772 (can_convert): Checks whether a conversion is less harsh
4773 than USER_CODE, for build_type_conversion.
4774
4775 * search.c (add_conversions): Function for passing to dfs_walk which
4776 adds all the type conversion operators in the current type to a list.
4777 (lookup_conversions): Calls dfs_walk with add_conversions and return
4778 the list.
4779 (dfs_walk): Don't require a qfn.
4780
4781 * cp-tree.h: Lose CLASSTYPE_CONVERSIONS hackery.
4782 (CLASSTYPE_FIRST_CONVERSION): Points to elt 1 of CLASSTYPE_METHOD_VEC.
4783
4784 * class.c (finish_struct_bits): Lose CLASSTYPE_CONVERSIONS hackery.
4785 (grow_method): A separate function for building onto the growing
4786 method vector.
4787 (finish_struct_methods): Use it. Put all type conversion operators
4788 right after the constructors. Perhaps we should sort the methods
f30432d7 4789 alphabetically?
e1cd6e56
MS
4790
4791Mon Jan 2 14:42:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4792
4793 * call.c (build_method_call): Lose another misleading shortcut.
4794
4795Fri Dec 30 17:57:30 1994 Mike Stump <mrs@cygnus.com>
4796
4797 * gc.c (build_bltn_desc): Handle bool as a built-in type.
4798
4799Fri Dec 30 14:20:21 1994 Mike Stump <mrs@cygnus.com>
4800
4801 * tree.c (layout_vbasetypes): Ensure that we don't loose alignment
4802 on the complete type because of small virtual bases.
255512c1 4803
8145f082
MS
4804Fri Dec 30 12:22:29 1994 Mike Stump <mrs@cygnus.com>
4805
4806 * decl.c (n_incomplete): Bump n_incomplete up to int to match C
4807 front end.
4808 (pushdecl): Also count decls pushed that are of a type being defined
4809 as incomplete things.
4810 * class.c (finish_struct): Move hack_incomplete_structures up to
4811 just after we set it as not being defined, so that the decls we
4812 build for RTTI don't count as incomplete.
4813
4814Thu Dec 29 18:20:57 1994 Mike Stump <mrs@cygnus.com>
4815
4816 * pt.c (tsubst): Fix problem with defining constructors in templated
4817 classes with virtual bases.
4818
4819Wed Dec 28 08:31:00 1994 Mike Stump <mrs@cygnus.com>
4820
4821 * parse.y (TYPEID): Strip top-level cv-qualifiers on typeid
4822 expressions.
4823 * gc.c (build_typeid): Ditto.
4824
4825Thu Dec 22 17:26:33 1994 Mike Stump <mrs@cygnus.com>
4826
4827 * cvt.c (build_up_reference): Fix breakage introduced on Nov 29,
4828 don't assert on complex AGGR inits.
4829
4830Thu Dec 22 14:32:31 1994 Mike Stump <mrs@cygnus.com>
4831
4832 * method.c (build_overload_value): Handle pointer to members as
4833 template arguments.
4834
4835Thu Dec 22 13:09:07 1994 Mike Stump <mrs@cygnus.com>
4836
4837 * typeck.c (unary_complex_lvalue): Don't call sorry if we know how
4838 to do take the address of a data member for a pointer to data
4839 member.
4840
4841Thu Dec 22 10:04:19 1994 Mike Stump <mrs@cygnus.com>
4842
4843 * decl.c (grokdeclarator): Use the typedef name for linkage if the
4844 type doesn't otherwise have a name.
4845
4846 * decl2.c (grokfield): Ditto.
4847
4848 * class.c (finish_struct): Since we reuse the TYPE_DECL for the
4849 DECL_NAME of enums, structs and classes, we have to avoid trying to
4850 put it in the TYPE_FIELDS again.
4851
4852Wed Dec 21 11:07:05 1994 Mike Stump <mrs@cygnus.com>
4853
4854 * decl2.c (check_classfn): Ignore this parameter on static functions
4855 when checking to see if we match.
4856
4857Tue Dec 20 17:47:02 1994 Mike Stump <mrs@cygnus.com>
4858
4859 * typeck.c (unary_complex_lvalue): Handle address of non-left most
4860 pointers to members by calling get_delta_difference.
4861
5edb8b93
MS
4862Mon Dec 19 22:40:53 1994 Mike Stump <mrs@cygnus.com>
4863
4864 * decl2.c (check_classfn): Don't use decls_match yet, as it modifies
4865 static functions to early.
4866
4867Thu Dec 19 22:37:48 1994 Mike Stump <mrs@cygnus.com>
4868
4869 * method.c (make_thunk): Handle encoding of positive thunk offsets.
4870
4871Sat Dec 17 13:29:50 1994 Doug Evans <dje@canuck.cygnus.com>
4872
4873 * Make-lang.in (.PHONY): Tell GNU make C++ and c++ are phony targets.
4874
6060a796
MS
4875Thu Dec 15 16:32:12 1994 Mike Stump <mrs@cygnus.com>
4876
4877 * decl2.c (check_classfn): Use decls_match to check if this has
4878 already been declared, as the DECL_ASSEMBLER_NAME may have been
4879 changed via asm("new_name").
4880 * decl.c (decls_match): Make public.
4881
4882Thu Dec 15 15:17:55 1994 Mike Stump <mrs@cygnus.com>
4883
4884 * *.[chy] (expand_aggr_init) Add fourth argument to handle
4885 distinction between = init and (init) style of initializations.
4886 * *.[chy] (finish_decl): Add fifth argument to to handle
4887 distinction between = init and (init) style of initializations.
4888
4889Tue Dec 13 19:16:05 1994 Mike Stump <mrs@cygnus.com>
4890
4891 Fix some random `explicit' bugs.
4892
4893 * cvt.c (convert_to_reference): Add third parameter to
4894 convert_force.
4895 (convert_force): Ditto.
4896 * call.c (build_method_call): Ditto.
4897 * decl2.c (setup_vtbl_ptr): Ditto.
4898 * init.c (expand_virtual_init): Ditto.
4899 (build_member_call): Ditto.
4900 (build_delete): Ditto.
4901 (build_vbase_delete): Ditto.
4902 * typeck.c (build_component_addr): Ditto.
4903 (build_c_cast): Ditto.
4904 (build_modify_expr): Ditto.
4905 * cp-tree.h (CONV_NONCONVERTING): Ditto. Add so that we can
4906 distinguish the context in which the conversion appears. Add thrid
4907 argument to build_c_cast.
4908 * cvt.c (cp_convert): Pass whether or not we want to consider
4909 non-converting constructors down to build_method_call.
4910 * decl2.c (reparse_absdcl_as_casts): Add third argument to
4911 build_c_cast.
4912 * gc.c (build_m_desc): Ditto.
4913 * init.c (build_new): Ditto.
4914 * parse.y (expr_no_commas): Ditto.
4915 (primary): Ditto.
4916 * typeck.c (build_x_function_call): Ditto.
4917 (build_static_cast): Ditto.
4918 (build_reinterpret_cast): Ditto.
4919 (build_const_cast): Ditto.
4920 (build_c_cast): Ditto.
4921 (build_ptrmemfunc): Ditto.
4922 * typeck2.c (build_functional_cast): Ditto.
4923 * init.c (expand_aggr_init): Added LOOKUP_ONLYCONVERTING to
4924 expand_aggr_init_1 as inits are converted to the destination type.
4925
4926Tue Dec 13 16:18:57 1994 Jason Merrill <jason@phydeaux.cygnus.com>
4927
4928 * Make-lang.in (cc1plus): Depends on c-pragma.o.
4929
4930 * Makefile.in (OBJ{DEP,}S): Add ../c-pragma.o.
4931
4932 * lex.c (check_newline): If the #pragma is not recognized by g++,
4933 try machine-specific ones too.
4934 (handle_sysv_pragma): Copied from c-lex.c.
4935
4936Mon Dec 12 23:53:06 1994 Mike Stump <mrs@cygnus.com>
4937
4938 * except.c (expand_throw): Fix Dec 6th change, build_new likes a
4939 reference better.
4940
4941Mon Dec 12 18:01:00 1994 Jason Merrill <jason@phydeaux.cygnus.com>
4942
4943 * typeck.c (build_binary_op): Lose checks on TYPE_PTRMEMFUNC_P with
4944 IS_AGGR_TYPE, since now they will not both be set on the same type.
4945
4946 * pt.c (do_pending_expansions): Don't clear TREE_PUBLIC on
4947 instantiations controlled by -fexternal-templates.
4948
4949 * decl.c (duplicate_decls): Don't complain about different values of
4950 __attribute__ ((const)) and ((noreturn)).
4951
81cdf787
DE
4952Fri Dec 9 18:17:37 1994 Doug Evans <dje@cygnus.com>
4953
4954 * Makefile.in (BISONFLAGS): Delete --yacc.
4955 (PARSE_H): Depend on $(PARSE_C), for parallel makes.
4956 (PARSE_C): Undo last patch.
4957
be99da77 4958Fri Dec 2 10:44:36 1994 Mike Stump <mrs@cygnus.com>
30ffea6b 4959
3526f730 4960 * Makefile.in (BISONFLAGS): Add --yacc so that output winds up in
30ffea6b
MS
4961 y.tab.c.
4962
6060a796
MS
4963Thu Dec 8 17:39:46 1994 Jason Merrill <jason@phydeaux.cygnus.com>
4964
4965 * decl.c (finish_decl): Don't call obscure_complex_init for decls
4966 of indeterminate size.
4967
4968Wed Dec 7 16:49:22 1994 Jason Merrill <jason@phydeaux.cygnus.com>
4969
4970 * decl.c (obscure_complex_init): Function to tweak the decl to
4971 prevent expand_decl from tring to initialize it.
4972 (finish_decl): Use it rather than writing the same code in three
4973 different places.
4974
4975 * parse.y (bad_parm): Stop trying to support parms without types.
4976
4977Wed Dec 7 12:06:56 1994 Mike Stump <mrs@cygnus.com>
4978
4979 * decl2.c (grokfield): Make asm specs on static member functions
4980 work.
4981
4982Tue Dec 6 15:43:20 1994 Mike Stump <mrs@cygnus.com>
4983
4984 * except.c (expand_throw): Make a copy of the thrown object.
4985
4986Tue Dec 6 14:16:34 1994 Jason Merrill <jason@phydeaux.cygnus.com>
4987
4988 * parse.y: : has lower precedence than =.
4989
4990Tue Dec 6 12:46:17 1994 Mike Stump <mrs@cygnus.com>
4991
4992 * decl.c (pushdecl): Use DECL_NAME of VAR_DECLs to avoid namespace
4993 manglings.
4994 (grokvardecl): Add namespace into variable name.
4995
4996Tue Dec 6 11:26:55 1994 Mike Stump <mrs@cygnus.com>
4997
4998 * decl2.c (current_namespace_id): New routine to transform a simple
4999 name into a name in a namespace.
5000 * decl.c (grokdeclarator): Use it.
5001 * decl2.c (get_namespace_id): Find the name of the current
5002 namespace.
5003 (push_namespace, pop_namespace): Complete out missing
5004 functionality.
5005
5006Mon Dec 5 17:11:51 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5007
5008 * class.c (finish_struct): Don't use LONG_LONG_TYPE_SIZE, as it may
5009 not be defined. Fix warning message for enums and restore warning
5010 for non-enums.
5011
5012 * decl2.c (push_namespace): Dummy function.
5013 (pop_namespace): Ditto.
5014 (do_namespace_alias): Ditto.
5015 (do_using_decl): Ditto.
5016 (do_using_directive): Ditto.
5017
5018 * parse.y: New token NSNAME for namespace names.
5019 (extdef): Add namespace, using definitions.
5020 (using_decl): New rule for using declarations.
5021 (any_id): New rule for identifiers with any degree of scoping.
5022 (identifier): Add NSNAME.
5023 (notype_identifier): Ditto.
5024 (component_decl): Add using_decl.
5025 (nested_name_specifier): Add NSNAME SCOPE.
5026
5027 * typeck.c (convert_for_assignment): Handle conversions between
5028 enums and bool.
5029
5030 * decl.c (duplicate_decls): Only propagate DECL_MAIN_VARIANT on
5031 FUNCTION_DECLs.
5032
5033Mon Dec 5 13:03:16 1994 Mike Stump <mrs@cygnus.com>
5034
5035 * class.c (finish_struct): Give an error if one tries to declare a
5036 bit-field's size greater than a long long, as the backend will dump.
5037 It is not an error to declare an enum bit-field greater than its
5038 precision. Warn if an enum bit-field is too small to hold all
5039 its values.
5040
5041Mon Dec 5 11:41:50 1994 Mike Stump <mrs@cygnus.com>
5042
5043 * typeck.c (convert_for_assignment): Use cp_convert instead of
5044 convert so that we don't get static casts.
5045
5046Sun Dec 4 11:59:01 1994 Mike Stump <mrs@cygnus.com>
5047
5048 * cvt.c (cp_convert): Don't complain about int->enum conversion if
5049 we are doing static casts.
5050
5051Fri Dec 2 18:32:41 1994 Mike Stump <mrs@cygnus.com>
5052
5053 * error.c (dump_expr): Do something more intelligent with SAVE_EXPRs
5054 when dumping expressions in error messages.
5055
5056Fri Dec 2 17:04:27 1994 Mike Stump <mrs@cygnus.com>
5057
5058 * gc.c (build_dynamic_cast): Change interface to libg++, ensure that
f30432d7 5059 the return type is the right type, and make references work.
6060a796
MS
5060
5061Fri Dec 2 16:36:43 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5062
5063 * decl.c (poplevel): Don't be confused by function-scope
5064 declarations of non-nested functions.
5065 (duplicate_decls): Propagate DECL_MAIN_VARIANT.
5066 (pushdecl): Use duplicate_decls to copy info from old decl into new
5067 function-scope one rather than doing it here.
5068
5069 * decl2.c (mark_inline_for_output): Deal with the DECL_MAIN_VARIANT
5070 of this decl, in case this is a function-scope declaration.
5071
5072 * decl.c (finish_enum): Make sure that the type has the right
5073 precision when we call fixup_*_type.
5074
5075Tue Nov 29 19:12:07 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5076
5077 * cvt.c (build_up_reference): Strip superfluous NOP_EXPRs; we do
5078 want to build up references to rvalues if possible.
5079 (cp_convert): Stick on a NOP_EXPR when converting to the same type.
5080
5081Tue Nov 29 11:28:59 1994 Mike Stump <mrs@cygnus.com>
5082
5083 * parse.y (maybe_raises): Handle throw ().
5084 * parse.y (ansi_raise_identifier): grok type-ids in exception
5085 specifications.
5086 * tree.c (build_exception_variant): Use list compare to check if
5087 two exception specifications match.
5088 * decl.c (duplicate_decls, bad_specifiers): Enhance wording on error
5089 messages.
5090 * call.c (build_method_call): Remove TREE_RAISES.
5091 * cvt.c (convert_to_aggr): Ditto.
5092 * typeck.c (build_function_call_real, convert_arguments): Ditto.
5093 * init.c (expand_aggr_init_1): Ditto.
5094
5095Tue Nov 29 09:50:39 1994 Mike Stump <mrs@cygnus.com>
5096
5097 * except.c: Add support for m68k and mips exception handling
5098 support.
5099
5100Tue Nov 29 08:48:33 1994 Mike Stump <mrs@cygnus.com>
5101
5102 * except.c (expand_end_all_catch): Throw into outer context, if we
5103 fall off end of catch handlers.
5104
db5ae43f
MS
5105Mon Nov 28 16:44:41 1994 Mike Stump <mrs@cygnus.com>
5106
5107 * Makefile.in: Make is easier to decide where parse.[ch] will be
5108 built.
5109
af824546
DE
5110Thu Nov 17 20:11:24 1994 Doug Evans <dje@cygnus.com>
5111
5112 * cp/Make-lang.in (CXX_INSTALL_NAME) Use program_transform_name.
5113 (GXX_INSTALL_NAME) Likewise.
5114 (CXX_CROSS_NAME) Use program_transform_cross_name.
5115 (GXX_CROSS_NAME) Likewise.
5116 (c++.install-man): Use program_transform_name on g++.1.
5117 (c++.uninstall): Likewise.
5118
db5ae43f
MS
5119Mon Nov 28 13:53:03 1994 Mike Stump <mrs@cygnus.com>
5120
5121 * parse.y (THROW): Fix precedence of throw expressions.
5122
5123Mon Nov 28 13:15:16 1994 Mike Stump <mrs@cygnus.com>
5124
5125 * typeck.c (build_unary_op): Allow promotions from bool to int on
5126 unary ~.
5127
5128Sun Nov 27 00:16:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5129
5130 * method.c (build_overload_name): Use DECL_ASSEMBLER_NAME for
5131 classes when appropriate.
5132 (build_overload_nested_name): When dealing with a function context,
5133 use ASM_FORMAT_PRIVATE_NAME to tweak the name of the function to
5134 avoid conflicts between local classes of the same name.
5135
5136Wed Nov 23 17:59:42 1994 Mike Stump <mrs@cygnus.com>
5137
5138 * gxx.gperf, parse.y, lex.h, hash.h, lex.c (init_lex), delc.c
5139 (duplicate_decls, grokdeclarator), cp-tree.h: Add support for
5140 `explicit'.
5141 * cvt.c (convert_to_reference, cp_convert, build_type_conversion_1,
5142 build_type_conversion): Use LOOKUP_ONLYCONVERTING in
5143 build_method_calls so that non-converting constructors are not used.
5144 * call.c (build_method_call): If we shouldn't use a non-converting
5145 constructor, then don't.
5146
5147Wed Nov 23 14:46:56 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5148
5149 * call.c (build_method_call): Don't try to synthesize methods yet.
5150
5151Tue Nov 22 12:45:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
ea943e1d 5152
db5ae43f
MS
5153 * pt.c (push_template_decls): Create CONST_DECLs for template
5154 constant parameters, not VAR_DECLs.
5155
5156Sat Nov 19 15:28:31 1994 Jim Wilson (wilson@chestnut.cygnus.com)
5157
5158 * typeck.c (build_binary_op_nodefault): Can shorten shift only if
5159 shift count is less than size in bits of arg0.
5160
5161Thu Nov 17 15:30:50 1994 Mike Stump <mrs@cygnus.com>
5162
5163 * gxx.gperf, hash.h, lex.c (init_lex, real_yylex), parse.y: Add new
5164 ANSI keywords and, and_eq, bitand, bitor, explicit, namespace, not,
5165 not_eq, or, or_eq, typename, using, xor, xor_eq to g++. Still need
5166 to add support for explicit, namespace, typename, and using, support
5167 for the rest is already in.
5168
db5ae43f
MS
5169Fri Nov 4 19:04:18 1994 Mike Stump <mrs@cygnus.com>
5170
5171 * gc.c (get_bad_cast_node): New routine to support compile time
5172 throws of bad_cast.
5173 * gc.c (build_dynamic_cast): Support throwing of bad_cast at compile
5174 time.
5175
5176Fri Nov 4 11:12:00 1994 Mike Stump <mrs@cygnus.com>
5177
5178 * except.c: Add hppa support.
5179
5180Fri Nov 4 10:50:50 1994 Mike Stump <mrs@cygnus.com>
5181
5182 * except.c: Add rs6000 support.
5183
5184Thu Nov 3 14:24:23 1994 Mike Stump <mrs@cygnus.com>
5185
5186 * except.c (do_unwind): Add i[34]86 support.
5187
5188Thu Nov 3 00:10:46 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5189
5190 * pt.c (do_pending_expansions): Unset TREE_PUBLIC on implicit
5191 instantiations.
5192
5193Wed Nov 2 15:08:24 1994 Kung Hsu (kung@mexican.cygnus.com)
5194
5195 * decl.c (finish_function): emit types used in method parameters
5196 into symbol table.
5197
5198Wed Nov 2 15:05:47 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5199
5200 * pt.c (process_template_parm): Allow pointer to member function
5201 template parameter types.
5202 (uses_template_parms): Handle pointer to member function
5203 CONSTRUCTORs.
5204
5205 * g++.c (main): Cast first argument of bzero to (char *).
5206 Pass -lstdc++ instead of -lg++ unless we are invoked as 'g++'.
5207
5208Mon Oct 31 14:50:48 1994 Kung Hsu (kung@mexican.cygnus.com)
5209
5210 * gc.c (build_dynamic_cast): rewrite to make it work.
5211 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
5212 * class.c (modify_all_direct_vtables): ditto.
5213 * init.c (expand_direct_vtbls_init): expand more vtables if
5214 flag_rtti is on.
5215 * decl.c (init_type_desc): add default return.
5216
5217Tue Oct 25 17:13:09 1994 Kung Hsu (kung@mexican.cygnus.com)
5218
5219 * tree.c (debug_binfo): get rid of the initial size entry of
5220 vtable.
5221 * cp-tree.h: change flag_dossier to flag rtti, define type
5222 descriptor type nodes.
5223 * decl.c (init_type_desc): new function to initialize type
5224 descriptor type nodes.
5225 * decl.c (record_builtin_type): change flag_dossier to flag_rtti.
5226 * lex.c (init_lex): ditto.
5227 * decl.c : change variable flag_dossier to flag_rtti.
5228 * decl.c (duplicate_decls): get rid initial size entry of vtable.
5229 * decl.c (hack_incomplete_structures): take out assert 164.
5230 * search.c (get_abstract_virtuals_1): ditto.
5231 * search.c (dfs_init_vbase_pointers): change CLASSTYPE_DOSSIER to
5232 CLASSTYPE_RTTI.
5233 * parse.y: ditto.
5234 * class.c (prepare_fresh_vtable): for virtual bases, get right
5235 offset.
5236 * class.c (add_virtual_function): change flag_dossier to
5237 flag_rtti.
5238 * class.c (modify_one_vtable): modify the right rtti entry.
5239 * class.c (override_one_vtable): get rid of size entry.
5240 * class.c (finish_struct): change flag_dossier to flag_rtti, and
5241 build extra vtables, build type descriptors for polymorphic
5242 classes.
5243 * gc.c (build_headof): make headof() works correctly with new
5244 rtti.
5245 * gc.c (build_typeid): make this function work with new rtti.
5246 * gc.c (get_typeid): make this function work with new rtti.
5247 * gc.c (build_bltn_desc): new function for new rtti.
5248 * gc.c (build_user_desc): ditto.
5249 * gc.c (build_class_desc): ditto.
5250 * gc.c (build_ptr_desc): ditto.
5251 * gc.c (build_attr_desc): ditto.
5252 * gc.c (build_func_desc): ditto.
5253 * gc.c (build_ptmf_desc): ditto.
5254 * gc.c (build_ptmd_desc): ditto.
5255 * gc.c (build_t_desc): ditto.
5256 * gc.c : comment out old build_t_desc, build_i_desc, build_m_desc.
5257
5258Tue Oct 25 13:37:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5259
5260 * call.c (convert_harshness): Check for TREE_UNSIGNED differences
5261 after checking for integral conversions.
ea943e1d 5262
72b7eeff
MS
5263Wed Nov 30 19:13:50 1994 Mike Stump <mrs@cygnus.com>
5264
5265 * Version 2.6.3 released.
5266
5267Thu Nov 17 10:56:50 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5268
5269 * typeck2.c (build_m_component_ref): Check the basetype of the
5270 member pointer against the main variant of the object type.
5271
5272Mon Nov 14 14:21:52 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5273
5274 * cvt.c (convert_to_reference): Make sure that the original expr
5275 gets its type back when converting a reference.
5276
5277 * method.c (build_overload_name): Clear numeric_outputed_need_bar here.
5278 (build_decl_overload): Instead of here.
5279
5280Tue Nov 8 17:11:24 1994 Jason Merrill <jason@phydeaux.cygnus.com>
5281
5282 * cvt.c (cp_convert): Don't build a TARGET_EXPR if we're not in a
5283 function.
5284
5285 * typeck.c (convert_for_initialization): Handle initialization from
5286 a TARGET_EXPR.
5287
5288Sun Nov 6 01:34:24 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5289
5290 * pt.c (lookup_nested_type_by_name): Fix list-walking logic.
5291 (tsubst): When replacing a TEMPLATE_TYPE_PARM, propagate
5292 TYPE_READONLY and TYPE_VOLATILE from the argument.
5293 (unify): When unifying with a TEMPLATE_TYPE_PARM, remove cv-quals
5294 present in parm from arg.
5295 (type_unification): Strip REFERENCE_TYPE from the argument type.
5296 (unify): Don't strip REFERENCE_TYPE from the argument type.
5297
5298Sat Nov 5 22:42:15 1994 Greg McGary (gkm@magilla.cichlid.com)
5299
5300 * pt.c (do_type_instantiation): Check to see if there's a
5301 IDENTIFIER_TEMPLATE on a class before calling
5302 instantiate_member_templates().
5303
5304Sat Nov 12 06:35:42 1994 Mike Stump <mrs@cygnus.com>
5305
5306 * Version 2.6.2 released.
5307
5308Thu Nov 3 18:48:19 1994 Paul Eggert <eggert@twinsun.com>
5309
5310 * Makefile.in (spew.o, lex.o, pt.o):
5311 Depend on $(srcdir)/parse.h, not parse.h.
5312
5313Tue Nov 1 19:19:41 1994 Mike Stump <mrs@cygnus.com>
5314
5315 * Version 2.6.1 released.
5316
eae89e04
JM
5317Sun Oct 23 13:19:55 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5318
db5ae43f
MS
5319 * decl2.c: Declare flag_access_control.
5320 (struct lang_f_options): Add access-control.
5321 * expr.c (cplus_expand_expr, NEW_EXPR): Unset flag_access_control
5322 for the call to expand_aggr_init to copy the object out of the
5323 pcc_struct_return slot.
5324 * search.c (compute_access): if (!flag_access_control) return
5325 access_public.
eae89e04
JM
5326
5327Fri Oct 21 00:32:54 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5328
db5ae43f
MS
5329 * lex.c (cons_up_default_function): Don't try to defer method
5330 synthesis now.
5331
5332 * decl.c (init_decl_processing): Use __pure_virtual for abort_fndecl
5333 instead of abort, since the OSF/1 dynamic linker doesn't like to see
5334 relocation entries for abort.
eae89e04 5335
db5ae43f
MS
5336 * tree.c (array_type_nelts_total): Use sizetype, not
5337 integer_type_node.
5338 (array_type_nelts_top): Ditto.
5339
5340Thu Oct 20 15:48:27 1994 Mike Stump <mrs@cygnus.com>
5341
5342 * decl.c (grokdeclarator): Added handling for catch parameters
5343 (CATCHPARM).
5344 * except.c (expand_start_catch_block): Use the new CATCHPARM context
5345 instead of NORMAL.
5346 * except.c (expand_throw): Don't let convert_to_reference complain
5347 about what we are doing.
5348
5349Thu Oct 20 12:55:24 1994 Jim Wilson (wilson@cygnus.com)
5350
5351 * method.c (emit_thunk): Call instantiate_virtual_regs.
5352
5353Wed Oct 19 14:15:33 1994 Mike Stump <mrs@cygnus.com>
5354
5355 * except.c (expand_exception_blocks): Make sure throw code doesn't
5356 get put in function that won't be output.
eae89e04
JM
5357
5358Mon Oct 17 18:03:15 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5359
db5ae43f
MS
5360 * decl.c (init_decl_processing): Make alloca a builtin.
5361
5362Thu Oct 27 21:10:25 1994 Craig Burley (craig@burley)
5363
5364 * g++.c (main): Only decrement "added" and set "library" to
5365 NULL when "library" != NULL (just like 940829 fix).
eae89e04 5366
c199879d
MS
5367Mon Oct 17 15:56:11 1994 Mike Stump <mrs@cygnus.com>
5368
5369 * except.c (expand_start_catch_block): Make sure the false label
5370 gets onto the permanent obstack, as it is used for the exception
5371 table.
5372
13306d4f
MS
5373Fri Oct 14 18:54:48 1994 Mike Stump <mrs@cygnus.com>
5374
5375 * class.c (modify_one_vtable): Since the DECL_CONTEXT of fndecl can
5376 be set just below, use current_fndecl instead.
5377
db5ae43f
MS
5378Fri Oct 14 15:12:22 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5379
5380 * init.c (expand_aggr_vbase_init_1): Don't call expand_aggr_init_1
5381 with LOOKUP_SPECULATIVELY.
5382 (expand_default_init): Abort if build_method_call returns NULL_TREE.
5383
5384 * typeck.c (build_modify_expr): Don't just build a MODIFY_EXPR if
5385 the rhs is a TARGET_EXPR.
5386
5387 * parse.y (left_curly): Anonymous types are not affected by #pragma
5388 interface/implementation.
5389
5390 * method.c (synthesize_method): Don't call setup_vtbl_ptr for the
5391 default constructor if it isn't needed.
5392
5393 * lex.c (cons_up_default_function): Do synthesize methods for
5394 anonymous types if necessary.
5395
2f4f907d
JM
5396Thu Oct 13 17:44:55 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5397
db5ae43f 5398 * method.c (build_decl_overload): Set numeric_outputed_need_bar to 0.
2f4f907d
JM
5399
5400Wed Oct 12 13:27:57 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5401
db5ae43f
MS
5402 * typeck.c (build_modify_expr): Understand how to copy an aggregate.
5403
5404 * init.c (expand_default_init): Ditto. Also remove some of the
5405 crufty code that assumes methods will not be synthesized properly.
5406
5407 * lex.c (cons_up_default_function): If the containing type has no
5408 name, these functions should never need to be called, so just
5409 declare them.
2f4f907d 5410
db5ae43f
MS
5411 * lex.c (real_yylex): Use HOST_BITS_PER_WIDE_INT to determine the
5412 bitmask for lexing character constants.
5413
5414 * call.c (build_method_call): Disable code that tries to do tricky
5415 stuff with a default parameter that is a constructor call, but
5416 actually does other tricky stuff that breaks things.
2f4f907d
JM
5417
5418Wed Oct 12 16:14:01 1994 Benoit Belley <belley@cae.ca>
5419
db5ae43f
MS
5420 * decl.c (finish_enum): Disable code which forces enums to be signed,
5421 since this conflicts with their use as bitfields. type_promotes_to
5422 handles promotion of enums of underlying unsigned types to signed
5423 integer types.
2f4f907d
JM
5424
5425Wed Oct 12 13:24:03 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5426
db5ae43f
MS
5427 * cvt.c (type_promotes_to): Also promote enums to long if
5428 appropriate.
2f4f907d 5429
db5ae43f
MS
5430 * typeck.c (default_conversion): Don't expect type_promotes_to to
5431 return a main variant.
2f4f907d
JM
5432
5433Wed Oct 12 12:19:45 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5434
db5ae43f
MS
5435 * call.c (build_scoped_method_call): Don't lose side effects in the
5436 object expression when calling a non-existent destructor.
2f4f907d
JM
5437
5438Fri Sep 2 19:05:21 1994 Rohan Lenard (rjl@iassf.easams.com.au)
5439
db5ae43f
MS
5440 * call.c (build_scoped_method_call): Remove erroneous error message
5441 when destructor call is written as a scoped call.
2f4f907d 5442
252b87c7 5443Tue Oct 11 23:48:31 1994 Jason Merrill (jason@phydeaux.cygnus.com)
db5ae43f
MS
5444
5445 * various: Cast pointer arguments to bzero and bcopy to char *.
252b87c7 5446
13306d4f
MS
5447Tue Oct 11 19:34:32 1994 Mike Stump <mrs@cygnus.com>
5448
5449 * class.c (get_derived_offset): Added a type parameter to limit how
5450 far up the CLASSTYPE_VFIELD_PARENT chain we search.
5451 * class.c (modify_one_vtable, fixup_vtable_deltas): When forming the
5452 offset to put into the vtable for the this parameter, make sure we
5453 don't offset from a parent of the DECL_CONTEXT of the function.
5454
db5ae43f
MS
5455Tue Oct 11 16:10:52 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5456
5457 * pt.c (do_function_instantiation): Set DECL_EXTERNAL and
5458 TREE_STATIC when setting DECL_INTERFACE_KNOWN.
5459 (do_type_instantiation): Ditto.
5460
5461 * lex.c (cons_up_default_function): Set DECL_INTERFACE_KNOWN,
5462 DECL_EXTERNAL and TREE_STATIC as appropriate.
5463
5464 * decl2.c (finish_file): Also synthesize methods that don't have
5465 DECL_EXTERNAL set. Set interface_unknown before doing so.
5466
5467 * decl.c (start_function): If DECL_INTERFACE_KNOWN is set on the
5468 function decl, don't muck with TREE_PUBLIC and DECL_EXTERNAL.
5469
cba8ba35
JM
5470Mon Oct 10 00:56:53 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5471
db5ae43f
MS
5472 * lex.c (cons_up_default_function): Mark methods in a template class
5473 as template instances. Store the values of interface_unknown and
5474 interface_only for do_pending_inlines.
5475 (do_pending_inlines): Use them.
5476
5477 * decl2.c (finish_file): If we haven't seen a definition of a
5478 function declared static, make the decl non-PUBLIC so compile_file
5479 can give an error.
cba8ba35
JM
5480
5481Sun Oct 9 02:42:29 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5482
db5ae43f
MS
5483 * method.c (do_build_copy_constructor): Handle anonymous unions.
5484 (do_build_assign_ref): Ditto.
5485 (largest_union_member): Move from lex.c.
5486
5487Sat Oct 8 14:59:43 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5488
5489 Re-implement g++'s vague linkage independent of TREE_PUBLIC.
5490 * pt.c (instantiate_member_templates): Lose redundant
5491 -fexternal-templates handling.
5492 (tsubst): Set TREE_PUBLIC and DECL_EXTERNAL on new decls. Don't set
5493 TREE_STATIC or DECL_INTERFACE_KNOWN.
5494 (do_pending_expansions): Predicate on DECL_INTERFACE_KNOWN instead
5495 of DECL_EXTERNAL for explicit instantiations.
5496 (do_function_instantiation): Do the new thing.
5497 (do_type_instantiation): Ditto.
5498 (instantiate_template): Deal with member templates defined in a .cc
5499 file with -fexternal-templates.
5500 * except.c (expand_exception_blocks): Use DECL_LINKAGE_KNOWN to
5501 decide whether to stick builtin_throw here.
5502 * decl2.c (import_export_inline): Predicate on DECL_INTERFACE_KNOWN
5503 rather than TREE_PUBLIC. Generally fix rules.
5504 (finish_file): Use DECL_INITIAL to determine whether or not a method
5505 has been synthesized, rather than TREE_ASM_WRITTEN.
5506 * decl.c (warn_extern_redeclared_static): Use DECL_PUBLIC instead of
5507 TREE_PUBLIC.
5508 (pushdecl): Ditto.
5509 (duplicate_decls): Ditto. Deal with DECL_DECLARED_STATIC and
5510 DECL_INTERFACE_KNOWN.
5511 (redeclaration_error_message): Fix checking for conflicting linkage.
5512 (define_function): Set DECL_INTERFACE_KNOWN.
5513 (grokfndecl): Function decls are PUBLIC until we are sure about
5514 their linkage. Set DECL_DECLARED_STATIC as needed.
5515 (start_function): Deal with linkage. Move pushdecl after linkage
5516 magic.
5517 (finish_function): Don't set TREE_ASM_WRITTEN on discarded inlines.
5518 * cp-tree.h (lang_decl_flags): Add interface_known and
5519 declared_static.
5520 (DECL_INTERFACE_KNOWN): New macro.
5521 (DECL_DECLARED_STATIC): New macro.
5522 (DECL_PUBLIC): New macro.
5523
5524 Clean up bogus use of TREE_PUBLIC.
5525 * class.c (alter_access): Fix mistaken use of TREE_PUBLIC (it
5526 doesn't correspond to TREE_PROTECTED and TREE_PRIVATE).
5527 * init.c (do_friend): Don't arbitrarily set TREE_PUBLIC.
cba8ba35
JM
5528
5529Wed Oct 5 13:44:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5530
db5ae43f
MS
5531 * call.c (build_overload_call_real): Don't immediately do
5532 array->pointer conversion.
cba8ba35 5533
db5ae43f
MS
5534 * pt.c (type_unification): If not passing to a reference, strip
5535 cv-quals. Also handle array->pointer conversion.
cba8ba35
JM
5536
5537Tue Oct 4 17:45:37 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5538
db5ae43f
MS
5539 * decl.c (grokdeclarator): Don't warn about applying const to a
5540 const typedef or template type parameter.
5541
5542 * decl2.c (finish_file): Also synthesize methods after walking the
5543 vtables. Ugly ugly ugly.
cba8ba35
JM
5544
5545Mon Oct 3 15:02:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5546
db5ae43f
MS
5547 * various: Remove lingering remnants of old exception handling code.
5548
5549 * decl2.c (finish_file): Synthesize methods before walking the
5550 vtables, so that the vtables get emitted as needed.
5551
5552 * decl.c (shadow_tag): Remove obsolete code for pushing tags and
5553 dealing with exceptions.
5554
5555Mon Oct 3 13:05:27 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
5556
5557 * Make-lang.in (g++-cross): Depend upon version.o and $(LIBDEPS).
5558
5559Mon Oct 3 02:59:28 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5560
5561 * decl2.c (finish_file): Fix inline handling.
cba8ba35
JM
5562
5563Sun Oct 2 00:21:56 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5564
db5ae43f
MS
5565 * decl.c (grokdeclarator): Handle redundant scope even better.
5566 ({push,pop}_cp_function_context): Take toplev parameter.
cba8ba35 5567
db5ae43f
MS
5568 * method.c (synthesize_method): Pass toplev parameter to
5569 {push,pop}_cp_function_context depending on decl_function_context
5570 (fndecl).
cba8ba35 5571
db5ae43f
MS
5572 * typeck.c (build_x_unary_op): Unary & on OFFSET_REFs is always the
5573 built-in version.
cba8ba35 5574
db5ae43f
MS
5575 * method.c (synthesize_method): Don't be confused by __in_chrg
5576 parameter.
b3738072 5577
db5ae43f 5578 * class.c (popclass): Set C_C_D like start_function does.
b3738072 5579
db5ae43f 5580 * decl.c (grokdeclarator): Handle redundant scope better.
81613e43 5581
db5ae43f
MS
5582 * parse.y (expr_or_declarator): Add '(' expr_or_declarator ')' rule.
5583 (direct_notype_declarator): Ditto.
5584 (complex_direct_notype_declarator): Remove it here.
81613e43 5585
db5ae43f 5586Sat Oct 1 21:42:18 1994 Jason Merrill (jason@deneb.cygnus.com)
44c5421f 5587
db5ae43f
MS
5588 * init.c (resolve_offset_ref): Fix types used in resolving .*
5589 expressions.
5590
5591Sat Oct 1 15:18:49 1994 Jason Merrill (jason@phydeaux.cygnus.com)
5592
5593 Beginnings of work to synthesize methods only when needed.
5594 * call.c (build_method_call): Synthesize methods as necessary
5595 (currently never necessary).
5596 * class.c (popclass): Don't try to set C_C_D here, as it'll end up
5597 on the wrong obstack.
5598 * decl.c (push_cp_function_context): Mostly copied from
5599 push_c_function_context.
5600 (pop_cp_function_context): Similarly.
5601 (finish_function): Reverse order of poplevel and pop_nested_class so
5602 that current_class_decl is restored properly.
5603 (start_function): Ditto.
5604 (finish_function): Add parameter 'nested'. Don't call
5605 permanent_allocation if (nested).
5606 * various: Pass extra parameter to finish_function.
5607 * decl2.c (finish_file): Reorganize end-of-file inline handling,
5608 synthesizing methods as necessary.
5609 * lex.c (cons_up_default_function): Call mark_inline_for_output.
5610 Only synthesize methods immediately if #pragma implementation
5611 (currently disabled).
5612 (do_pending_inlines): Call synthesize_method.
5613 * method.c (synthesize_method): New function; all method synthesis
5614 goes through here. Calls do_build_assign_ref and
5615 do_build_copy_constructor.
5616 (build_default_constructor): Remove.
5617 (build_dtor): Ditto.
5618 (build_assign_ref): Rename to do_build_assign_ref and remove stuff
5619 done by synthesize_method.
5620 (build_copy_constructor): Similarly.
44c5421f 5621
eac293a1
MS
5622Thu Sep 29 16:58:52 1994 Mike Stump <mrs@cygnus.com>
5623
5624 * typeck.c (c_expand_return): Use magic so the backend can fixup the
5625 assignment into the return register, so cleanups won't clobber it.
5626
5627Thu Sep 29 13:08:50 1994 Jason Merrill (jason@deneb.cygnus.com)
5628
5629 * method.c (hack_identifier): Don't call assemble_external for
5630 template decls.
5631
5632 * decl.c (finish_decl): Also end temporary allocation if the decl in
5633 question has a type of error_mark_node.
5634
6060a796 5635Wed Sep 28 21:45:00 1994 Mike Stump <mrs@cygnus.com>
eac293a1
MS
5636
5637 * typeck.c (build_modify_expr): When optimizing ?: on lhs, make sure
5638 that if the ?: was a reference type, that the subparts will be also.
5639
5640Wed Sep 28 16:14:04 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5641
5642 * except.c (register_exception_table): Use Pmode, not PTRmode.
5643
5644Fri Sep 23 13:54:27 1994 Jason Merrill (jason@deneb.cygnus.com)
5645
5646 * lex.c (do_pending_inlines): Do method synthesis after the
5647 pending_inlines have been reversed.
5648
f376e137
MS
5649Thu Sep 22 12:53:03 1994 Per Bothner (bothner@kalessin.cygnus.com)
5650
5651 * decl2.c (finish_file): Fix Brendan's fix: Only call
5652 register_exception_table if there is a non-empty exception table.
5653
5654Thu Sep 22 12:03:46 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5655
5656 * decl2.c (finish_file): Only do register_exception_table if
5657 -fhandle-exceptions is being used.
5658
5659Wed Sep 21 19:01:51 1994 Per Bothner (bothner@kalessin.cygnus.com)
5660
5661 * except.c (output_exception_table_entry): Simplify
5662 by using assemble_integer.
5663 (build_exception_table): Change to return a count.
5664 Cleanup to use standard macros, instead of hard-wired
5665 sparc asm format. Don't make __EXCEPTION_TABLE__ global.
5666 (register_exception_table): New function. Generate call to builtin.
5667 * decl2.c (finish_file): Call register_exception_table.
5668 * cp-tree.h (build_exception_table): Fix prototype.
5669
5670Wed Sep 21 13:20:42 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5671
5672 * tree.c (break_out_calls): Don't try to duplicate the DECL_INITIAL.
5673
5674 * decl2.c (delete_sanity): Give an error at trying to delete a
5675 function.
5676
5677Wed Sep 21 11:47:10 1994 Jason Merrill (jason@deneb.cygnus.com)
5678
5679 * lex.c (cons_up_default_function): Mark synthesized destructors
5680 inline.
5681
5682 * decl.c (duplicate_decls): Ignore redeclarations of wchar_t as
5683 something other than __wchar_t, complaining if -pedantic and not in
5684 a system header.
5685
5686Tue Sep 20 09:43:28 1994 Jason Merrill (jason@deneb.cygnus.com)
5687
5688 * decl.c (xref_tag): Set up BINFO_INHERITANCE_CHAIN on base binfos
5689 here.
5690
5691 * typeck.c (build_modify_expr): Require complete type after checking
5692 for error_mark_node.
5693
5694 * call.c (build_method_call): Print parmtypes when complaining of
5695 ambiguous call.
5696
5697 * typeck.c (build_modify_expr): Handle assignment to array from
5698 non-array.
5699
5700 * decl.c (lookup_name_real): Deal with got_scope == error_mark_node.
5701
5702 * call.c (build_method_call): Don't bother with the exact match.
5703
5704Mon Sep 19 00:51:39 1994 Jason Merrill (jason@deneb.cygnus.com)
5705
5706 * init.c (expand_aggr_init): If we munge the type of the variable,
5707 also munge the type of the initializer.
5708
5709 * decl.c (grokdeclarator): Use <= when comparing to RID_LAST_MODIFIER.
5710 (init_decl_processing): Push artificial declaration of wchar_t so
5711 people don't have to declare it before they can use it.
5712
5713 * error.c (cp_line_of): return lineno in lieu of 0.
5714
5715 * typeck.c (convert_for_assignment): Handle conversion of pmfs to
5716 int and bool.
5717 (build_component_ref): Fold the COMPONENT_REF in case it can be
5718 reduced.
5719
5720 * typeck2.c (store_init_value): Don't pedwarn about non-constant
5721 bracketed initializers for automatic variables.
5722
5723Sun Sep 18 10:12:12 1994 Jason Merrill (jason@deneb.cygnus.com)
5724
5725 * error.c (dump_decl): Don't say `typedef enum foo foo'.
5726
5727 * decl.c (start_decl): Don't set TREE_PUBLIC on template decls just
5728 because they're affected by #pragma i/i. We'll deal with that when
5729 they get instantiated.
5730
5731 * typeck.c (build_unary_op): Clean up cruft in ADDR_EXPR case.
5732
5733 * class.c (instantiate_type): Set TREE_CONSTANT on instantiated
5734 ADDR_EXPRs if appropriate.
5735
5736 * decl.c (build_ptrmemfunc_type): Unset IS_AGGR_TYPE on pmf types.
5737
5738 * typeck.c (build_ptrmemfunc): Handle &overloaded_method as an
5739 initializer properly.
5740 * typeck2.c (digest_init): Ditto.
5741
5742 * tree.c (cp_build_type_variant): Like c_build_type_variant, except
5743 it uses build_cplus_array_type.
5744 * *.c: Use cp_build_type_variant instead of c_build_type_variant.
5745
5746 * pt.c (do_type_instantiation): Don't try to instantiate nested
db5ae43f 5747 enums.
f376e137
MS
5748
5749Tue Sep 13 10:56:58 1994 Jason Merrill (jason@deneb.cygnus.com)
5750
5751 * cvt.c (build_up_reference): Handle preincrement and predecrement
db5ae43f 5752 properly.
f376e137
MS
5753
5754Tue Sep 13 09:51:59 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5755
5756 * decl.c (finish_decl): Only lay out the rtl for DECL if it is, in
5757 fact, static.
5758
5759Mon Sep 12 14:40:30 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5760
5761 * decl.c (finish_decl): Lay out the rtl for DECL before doing
5762 grok_reference_init, in case it's static.
5763
5764Mon Sep 12 12:45:38 1994 Jason Merrill (jason@deneb.cygnus.com)
5765
5766 * class.c (finish_struct): Don't synthesize constructors if the
5767 class has a field with the same name as the class. Don't die on
5768 classes with no constructors or destructors. Don't die if the head
5769 and tail of the class are in different files.
5770
5771 * decl.c (grokdeclarator): Don't treat a function pointer field
5772 with the same name as the class as a constructor.
5773
5774Fri Sep 9 13:17:00 1994 Jason Merrill (jason@deneb.cygnus.com)
5775
5776 * typeck.c (build_c_cast): Pull constant values out of their
5777 variables here.
5778
5779 * decl.c (duplicate_decls): Only propagate DECL_CHAIN in
5780 FUNCTION_DECLs and TEMPLATE_DECLs.
5781
5782Thu Sep 8 10:07:48 1994 Jason Merrill (jason@deneb.cygnus.com)
5783
5784 * decl.c (duplicate_decls): Propagate DECL_CHAIN in all DECLs that
5785 have it.
5786
5787 * pt.c (unify): REALs and INTEGERs only unify with their own genus.
5788 (instantiate_member_templates): Don't muck with DECL_EXTERNAL and
5789 TREE_PUBLIC unless -fexternal-templates.
5790
5791Wed Sep 7 13:17:10 1994 Jason Merrill (jason@deneb.cygnus.com)
5792
5793 * pt.c (do_type_instantiation): Call instantiate_member_templates.
5794 Deal with specializations.
5795 (tsubst): Don't stick the mangled name in DECL_NAME for function
5796 instantiations. Don't push them, either.
5797
5798 * decl2.c (grokfield): Move code for generating the
5799 DECL_ASSEMBLER_NAME for static members from here.
5800 * method.c (build_static_name): To here.
5801 * decl.c (grokvardecl): Call build_static_name.
5802 (duplicate_decls): Keep old DECL_ASSEMBLER_NAME.
5803
5804Mon Sep 5 12:49:18 1994 Jason Merrill (jason@deneb.cygnus.com)
5805
5806 * call.c (build_method_call): if -Wsynth, warn when selecting
5807 synthesized op= over user-supplied one cfront would select.
5808 * decl2.c (lang_decode_option): Handle -Wsynth.
5809
5810Fri Sep 2 15:11:59 1994 Jason Merrill (jason@deneb.cygnus.com)
5811
5812 * decl.c (finish_enum): Overhaul to fix several bugs.
5813 (start_enum): Disable useless code.
5814
5815Thu Sep 1 16:04:54 1994 Jason Merrill (jason@deneb.cygnus.com)
5816
5817 * typeck.c (c_expand_return): Warn about returning a reference to a
5818 temporary.
5819 (convert_arguments): Increment argument counter when using default
5820 arguments, too.
5821
5822Wed Aug 31 14:29:22 1994 Jason Merrill (jason@deneb.cygnus.com)
5823
5824 * decl.c (finish_decl): If the type of decl is error_mark_node,
5825 don't bother trying to do anything.
5826
5827 * typeck.c (convert_for_initialization): If the rhs contains a
5828 constructor call, pretend the lhs type needs to be constructed.
5829
5830 * init.c (expand_default_init): If we stick the object inside the
5831 initializer, mark the initializer used.
5832
5833Tue Aug 30 13:50:18 1994 Jason Merrill (jason@deneb.cygnus.com)
5834
5835 * method.c (build_assign_ref): return *this;
5836 (build_assign_ref): Fix base assignment order.
5837 (build_copy_constructor): Fix member init order.
5838
5839Mon Aug 29 13:54:39 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5840
5841 * g++.c (main): Remember to clear out SAW_SPECLANG after we see
5842 its argument.
5843
5844Sat Aug 27 09:36:03 1994 Jason Merrill (jason@deneb.cygnus.com)
5845
5846 * method.c (build_copy_constructor): Also copy virtual bases.
5847
5848Fri Aug 26 17:05:15 1994 Jason Merrill (jason@deneb.cygnus.com)
5849
5850 * lex.c (do_pending_inlines): Clear out pending_inlines before doing
5851 any synthesis. Also first set deja_vu on all pending_inlines.
5852
5853 * method.c (build_assign_ref): Use build_member_call to invoke base
5854 operator=, rather than build_modify_expr. And use
5855 build_reference_type instead of TYPE_REFERENCE_TO.
5856 (build_copy_constructor): Use TYPE_NESTED_NAME to identify the
5857 basetype.
5858
5859 * decl2.c (grokfield): Don't complain about undefined local class
5860 methods.
5861
5862 * class.c (finish_struct): Don't try to synthesize methods here.
5863 * lex.c (do_pending_inlines): Instead, synthesize them here.
5864 (init_lex): Initialize synth_obstack.
5865 (cons_up_default_function): Stick synthesis request on
5866 pending_inlines.
5867
5868Fri Aug 26 12:24:14 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5869
5870 * call.c (build_method_call) [PCC_STATIC_STRUCT_RETURN]: Also
5871 accept an RTL_EXPR in what we're about to use for the instance,
5872 since anything which would end up with pcc_struct_return set
5873 inside cplus_expand_expr.
5874
5875 * cp-tree.h (cons_up_default_function): Note change of prototype.
5876
5877Thu Aug 25 23:05:30 1994 Gerald Baumgartner (gb@cs.purdue.edu)
5878
5879 * class.c (finish_struct): Undid change from Aug 21 testing
5880 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
5881 * parse.y (left_curly): Ditto, undid change from Aug 21.
5882 * decl.c (xref_tag): Undid change from Aug 21, set
5883 CLASSTYPE_INTERFACE correctly, and added comments.
5884
5885Thu Aug 25 00:36:31 1994 Jason Merrill (jason@deneb.cygnus.com)
5886
5887 Rework approach to synthesized methods; don't go through the parser
5888 anymore.
5889 * class.c (finish_struct): Use new synthesis approach.
5890 * lex.c (cons_up_default_function): Now just creates declaration,
5891 not code.
5892 (largest_union_member): #if 0 out.
5893 (default_assign_ref_body): Ditto.
5894 (default_copy_constructor_body): Ditto.
5895 * method.c (build_default_constructor): New function to synthesize X().
5896 (build_copy_constructor): Synthesize X(X&).
5897 (build_assign_ref): Synthesize X::operator=(X&).
5898 (build_dtor): Synthesize ~X().
5899
5900 * error.c (cp_line_of): If we're dealing with an artificial
5901 TYPE_DECL, look at the type instead.
5902
5903Wed Aug 24 11:11:50 1994 Jason Merrill (jason@deneb.cygnus.com)
5904
5905 * init.c (sort_member_init): Check warn_reorder.
5906 * decl2.c (lang_decode_option): Handle -W{no-,}reorder.
5907
5908 * cp-tree.h (CLASSTYPE_SOURCE_LINE): New macro.
5909 * error.c (cp_line_of): Use CLASSTYPE_SOURCE_LINE for aggregates.
5910 * class.c (finish_struct): Set CLASSTYPE_SOURCE_LINE.
5911
6060a796 5912Tue Aug 23 09:28:35 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
5913
5914 * error.c (dump_decl): Improve wording, so that error messages
5915 dont't read template<, class foo>...
5916
5917Mon Aug 22 15:30:51 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
5918
5919 * parse.y (label_colon): Also match a TYPENAME as a label name,
5920 since they may have declared a class by that name but have also
5921 tried to have a local label under the same name.
5922
5923 * pt.c (coerce_template_parms): Call cp_error, not cp_error_at,
5924 for the message so they know at what point it was instantiated.
5925
5926Sun Aug 21 23:07:35 1994 Gerald Baumgartner (gb@cs.purdue.edu)
5927
5928 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
5929 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures up to left_curly time.
5930 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 5931 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures down to left_curly time.
f376e137
MS
5932 * parse.y (left_curly): New final resting place for setting
5933 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING for signatures.
5934
5935 * class.c (finish_struct): Don't test for function/field name
5936 conflicts in signatures, since all the fields are compiler-constructed.
5937
5938Fri Aug 19 14:04:47 1994 Kung Hsu (kung@mexican.cygnus.com)
5939
5940 * method.c (build_overload_nested_name): in qualified name
5941 mangling, the template with value instantiation will have numeric
5942 at end and may mixed with the name length of next nested level.
5943 Add a '_' in between.
5944 * method.c (build_overload_name): ditto.
5945 * method.c (build_overload_identifier): ditto.
5946
6060a796 5947Thu Aug 18 16:24:43 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
5948
5949 * error.c (dump_decl): Handle NULL args.
5950
db5ae43f
MS
5951Thu Sep 29 16:15:36 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
5952
5953 * g++.c: Rework last change so it's done like collect.c (and
5954 gcc.c).
5955
5956Wed Sep 14 10:17:27 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
5957
5958 * g++.c: Include <sys/errno.h> in case `errno' is a macro
5959 as permitted by ANSI C.
5960
6060a796 5961Thu Aug 18 12:48:09 1994 Mike Stump <mrs@cygnus.com>
00595019
MS
5962
5963 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
5964 CLASSTYPE_VTABLE_NEEDS_WRITING up to left_curly time.
5965 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 5966 CLASSTYPE_VTABLE_NEEDS_WRITING down to left_curly time.
00595019
MS
5967 * parse.y (left_curly): New final resting place for setting
5968 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
5969
5970Thu Aug 11 11:32:42 1994 H.J. Lu (hjl@nynexst.com)
5971
5972 * g++.c (main): Only decrement "added" and set "library" to
5973 NULL when "library" != NULL.
5974
5975Sat Aug 13 00:14:52 1994 Jason Merrill (jason@deneb.cygnus.com)
5976
5977 * decl.c (grokdeclarator): Don't set TREE_PUBLIC on a function decl
5978 just because its class has a known interface.
5979 (decls_match): Deal with new format of template parms.
5980
5981 * lex.c (cons_up_default_function): Don't play with TREE_PUBLIC and
5982 DECL_EXTERNAL here.
5983
5984Fri Aug 12 01:55:15 1994 Jason Merrill (jason@deneb.cygnus.com)
5985
5986 * decl.c (pushtag): SET_DECL_ARTIFICIAL on gratuitous typedefs.
5987 (xref_defn_tag): Ditto.
5988 (pushdecl): Only allow artificial typedefs to be shadowed.
5989
5990 * init.c (emit_base_init): Pass the right binfos to
5991 expand_aggr_init_1.
5992
5993 * class.c (delete_duplicate_fields_1): Make it work right.
5994 (finish_struct): Catch function/field name conflict.
5995
5996 * decl2.c (check_classfn): Pass the function to cp_error, not just
5997 the name.
5998
5999 * init.c (sort_member_init): Warn when order of member initializers
6000 does not match order of member declarations.
6001 (emit_base_init): Call expand_aggr_init_1 with LOOKUP_PROTECT.
6002
6003 * error.c (dump_expr): Handle lists of functions.
6004
6005 * decl.c (start_function): #pragma interface only affects functions
6006 that would otherwise be static.
6007 (finish_decl): Don't warn about an unused variable if it has both
6008 constructor and destructor, since the 'resource allocation is
6009 initialization' idiom is relatively common.
6010
6011 * typeck.c (comp_target_types): Don't handle TEMPLATE_TYPE_PARMs.
6012 (comp_target_parms): Ditto.
6013 (compparms): Never consider default parms.
6014 (common_base_type): Don't choose a virtual baseclass if there is a
6015 more derived class in common.
6016 (build_conditional_expr): If pedantic, pedwarn about conversion to
6017 common base in conditional expr.
6018
6019 * class.c (instantiate_type): Handle template instantiation better.
6020
6021 * typeck.c (convert_arguments): Don't try to get tricky and convert
6022 to int directly when PROMOTE_PROTOTYPES is set, as it breaks
6023 user-defined conversions.
6024
6025 * lex.c (check_for_missing_semicolon): Also give error at end of
6026 file.
6027
6028 * call.c (build_method_call): Don't promote arrays to pointers here.
6029
6030 * typeck.c (convert_arguments): Don't require the actual parameter
6031 to be of a complete type if the formal parameter is a reference.
6032
6033Thu Aug 11 15:21:40 1994 Jason Merrill (jason@deneb.cygnus.com)
6034
6035 * decl.c (grokdeclarator): Soften 'static' on member function error
6036 to pedwarn.
6037
6038 * init.c (build_new): Don't automatically save rval.
6039 (build_offset_ref): Do field lookup with proper basetype_path.
6040
6041Thu Aug 11 12:46:54 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
6042
6043 * errfn.c (cp_silent): Declare to mark when we should avoid
6044 emitting warnings and errors.
6045 (cp_error): Check it.
6046 (cp_warning): Likewise.
6047 (cp_pedwarn): Likewise.
6048 (cp_compiler_error): Likewise.
6049 (cp_error_at): Likewise.
6050 (cp_warning_at): Likewise.
6051 (cp_pedwarn_at): Likewise.
6052 * call.c (compute_conversion_costs): Set CP_SILENT when we start
6053 out, and make sure we turn it off before we leave.
6054
6055Thu Aug 11 00:02:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6056
6057 * decl2.c (grok_array_decl): Try computing *(A+B) if neither
6058 argument is obviously an array.
6059
6060Wed Aug 10 15:32:04 1994 Jason Merrill (jason@deneb.cygnus.com)
6061
6062 * typeck.c (c_expand_start_case): Do cleanups here.
6063
6064 * parse.y (xcond): Do bool conversion here, too.
6065 (simple_stmt, SWITCH case): Don't do cleanups here.
6066
6067 * decl.c (duplicate_decls): Don't treat builtins that have been
6068 explicitly declared specially.
6069
6070Tue Aug 9 01:16:09 1994 Jason Merrill (jason@deneb.cygnus.com)
6071
6072 * tree.c (make_deep_copy): Support copying pointer, reference,
6073 function, array, offset and method types.
6074
6075 * decl.c (init_decl_processing): Mark exit and abort as
6076 BUILT_IN_NONANSI so that duplicate_decls is kinder about
6077 redeclaration.
6078 (duplicate_decls): Don't give two errors for redeclaring a C
6079 function with the same parms but a different return type.
6080
6081 * parse.y (paren_cond_or_null): Do cleanup and bool conversion here.
6082 (condition): Instead of here.
6083 (simple_stmt, SWITCH case): Also do cleanup here.
6084
6085 * decl2.c (finish_anon_union): Only break out FIELD_DECLs.
6086
6087 * call.c (build_method_call): Don't throw away the side effects of
6088 the object in a call to a non-existent constructor.
6089 * parse.y (primary): Ditto.
6090
6091 * method.c (build_decl_overload): Oop.
6092
6093 * decl2.c (lang_decode_option): Deal with flag_no_nonansi_builtin,
6094 warn about uselessness of specifying -fansi-overloading.
6095
6096 * method.c (build_decl_overload): Treat any non-member new with one
6097 parameter as __builtin_new.
6098
6099 * decl.c (init_decl_processing): Setup built-in meanings of exit,
6100 _exit and abort.
6101
6102Mon Aug 8 15:03:30 1994 Jason Merrill (jason@deneb.cygnus.com)
6103
6104 * error.c (dump_readonly_or_volatile): Put a space between const and
6105 volatile if both apply.
6106
6107 * init.c (perform_member_init): Clean up after this initialization.
6108 (emit_base_init): Clean up after each base init, not after all have
6109 been done.
6110 (expand_aggr_vbase_init_1): Clean up after this init.
6111
6112Sun Aug 7 14:55:05 1994 Jason Merrill (jason@deneb.cygnus.com)
6113
6114 * call.c (build_method_call): Deal with destroying references.
6115
6116 * parse.y (condition): Do bool_truthvalue_conversion here.
6117 (paren_expr_or_null): And here.
6118 (simple_if): Not here.
6119 (simple_stmt): Or here.
6120
6121Sat Aug 6 22:29:45 1994 Jason Merrill (jason@deneb.cygnus.com)
6122
6123 * parse.y (paren_expr_or_null): Wrap the expression in a
6124 CLEANUP_POINT_EXPR.
6125 (condition): Ditto.
6126
6127Sat Aug 6 19:46:37 1994 Rohan Lenard (rjl@easams.com.au)
6128
6129 * call.c (build_scoped_method_call): Fix error message when
6130 destructor call refers to a nonexistent type.
6131
6132Sat Apr 16 22:43:30 1993 Gerald Baumgartner (gb@cs.purdue.edu)
6133
6134 * lex.h (rid): Deleted RID_RAISES, it's never used.
6135 Moved RID_PUBLIC, RID_PRIVATE, RID_PROTECTED, RID_EXCEPTION,
6136 RID_TEMPLATE and RID_SIGNATURE to the end of the enumeration,
6137 they don't need to be touched in `grokdeclarator.'
6138 (RID_LAST_MODIFIER): Defined macro to be RID_MUTABLE.
6139
6140 * decl.c (grokdeclarator): Use RID_LAST_MODIFIER instead of
6141 RID_MAX as loop limit for finding declaration specifiers.
6142
6143Sat Apr 3 21:59:07 1993 Gerald Baumgartner (gb@cs.purdue.edu)
6144
6145 * lex.c (debug_yytranslate): Moved to parse.y since it needs to
6146 access `yytname,' which is static in parse.c.
6147
6148Fri Apr 2 23:36:57 1993 Gerald Baumgarnter (gb@cs.purdue.edu)
6149
6150 * cp-tree.h (GNU_xref_ref): Fixed typo in extern declaration, it
6151 was `GNU_xref_def' instead of `GNU_xref_ref.'
6152
6153Fri Aug 5 14:20:16 1994 Jason Merrill (jason@deneb.cygnus.com)
6154
6155 * pt.c (do_function_instantiation): Don't set TREE_PUBLIC and
6156 DECL_EXTERNAL on 'extern' instantiations; wait until EOF to do that.
6157 (do_type_instantiation): Ditto.
6158
6159 * decl2.c (import_export_inline): Decides at EOF what an inline's
6160 linkage should be.
6161 (finish_file): Call it.
6162
6163 * decl.c (start_function): Don't rely on the settings of TREE_PUBLIC
6164 and DECL_EXTERNAL from do_*_instantiation. Only set
6165 DECL_DEFER_OUTPUT on inlines whose linkage might actually change.
6166 (finish_function): Use DECL_DEFER_OUTPUT to decide which inlines to
6167 mark for later consideration, rather than DECL_FUNCTION_MEMBER_P.
6168
6060a796 6169Fri Aug 5 01:12:20 1994 Mike Stump <mrs@cygnus.com>
a292b002
MS
6170
6171 * class.c (get_class_offset_1, get_class_offset): New routine to
6172 find the offset of the class where a virtual function is defined,
6173 from the complete type.
6174 * class.c (modify_one_vtable, fixup_vtable_deltas): Use
6175 get_class_offset instead of virtual_offset as get_class_offset will
6176 always provide the right answer.
6177 * tree.c (virtual_offset): Remove. It only ever worked some of the
6178 time.
6179
6180Tue Aug 2 12:44:21 1994 Jason Merrill (jason@deneb.cygnus.com)
6181
6182 * call.c (build_method_call): Put back unary_complex_lvalue call
6183 that I thought was redundant.
6184
6185 * typeck.c (c_expand_return): Fix a case I missed before.
6186
6187Sun Jul 31 17:54:02 1994 Jason Merrill (jason@deneb.cygnus.com)
6188
6189 * pt.c (unify): Strip cv-quals from template type arguments (when
6190 'const T*' is matched to 'const char*', that does not mean that T is
6191 'const char').
6192
6193Fri Jul 29 01:03:06 1994 Jason Merrill (jason@deneb.cygnus.com)
6194
6195 * pt.c (do_type_instantiation): Instantiate nested TAGS, not
6196 typedefs. Third time's the charm?
6197
6198 * parse.y (template_parm): Support default template parms.
6199 * pt.c (process_template_parm): Ditto.
6200 (end_template_parm_list): Ditto.
6201 (coerce_template_parms): Ditto.
6202 (mangle_class_name_for_template): Ditto.
6203 (push_template_decls): Ditto.
6204 (unify): Ditto.
6205 * method.c (build_overload_identifier): Ditto.
6206 * error.c (dump_decl): Ditto.
6207
6208Wed Jul 27 17:47:00 1994 Jason Merrill (jason@deneb.cygnus.com)
6209
6210 * pt.c (do_type_instantiation): Only instantiate nested *classes*.
6211
6212Tue Jul 26 13:22:40 1994 Jason Merrill (jason@deneb.cygnus.com)
6213
6214 * search.c (note_debug_info_needed): Also emit debugging information
6215 for the types of fields.
6216
6217Mon Jul 25 00:34:44 1994 Jason Merrill (jason@deneb.cygnus.com)
6218
6219 * pt.c (lookup_template_class): Pass 'template' to
6220 coerce_template_parms instead of 'in_decl', since it's a more
6221 meaningful context.
6222
6223 * typeck.c (c_expand_return): Make sure any cleanups for the return
6224 expression get run.
6225 (build_c_cast): Use CONVERT_EXPR for conversion to void.
6226
6227 * pt.c (do_type_instantiation): Also instantiate nested types.
6228
6229 * typeck.c (convert_for_assignment): Don't die when comparing
6230 pointers with different levels of indirection.
6231
6232 * decl.c (grokdeclarator): The sub-call to grokdeclarator for
6233 class-local typedefs sets DECL_ARGUMENTS, so we need to clear it
6234 out.
6235
6236 * decl2.c (finish_anon_union): Don't die if the union has no
6237 members.
6238
6239 * decl.c (grokdeclarator): Undo changes to declspecs when we're done
6240 so that 'typedef int foo, bar;' will work.
6241
6242 * decl2.c (finish_file): Don't call expand_aggr_init for
6243 non-aggregates.
6244
6245Mon Jul 25 00:03:10 1994 Teemu Torma (tot@trema.fi)
6246
6247 * decl.c (finish_function): We can't inline constructors and
6248 destructors under some conditions with -fpic, but don't unset
6249 DECL_INLINE.
6250
6251Mon Jul 25 00:03:10 1994 Jason Merrill (jason@deneb.cygnus.com)
6252
6253 * typeck.c (build_object_ref): Make sure 'datum' is a valid object.
6254
6255Sun Jul 24 14:19:31 1994 Jason Merrill (jason@deneb.cygnus.com)
6256
6257 * class.c (finish_struct): Don't set DECL_FIELD_BITPOS on
6258 non-fields.
6259 (finish_struct_methods): Use copy_assignment_arg_p.
6260
6261 * cvt.c (cp_convert): If expr is an OFFSET_REF, resolve it instead
6262 of giving an error.
6263
6264 * typeck.c (build_binary_op_nodefault): Don't set result_type if we
6265 don't know how to compare the operands.
6266
6267 * decl.c (grokdeclarator): Avoid seg fault when someone uses '__op'
6268 as a declarator-id in their program. Like the Linux headers do.
6269 Arrgh.
6270
6271 * tree.c (lvalue_p): Treat calls to functions returning objects by
6272 value as lvalues again.
6273
6274 * typeck.c (build_component_addr): Use convert_force to convert the
6275 pointer in case the component type is also a private base class.
6276
6277 * search.c (get_matching_virtual): Fix bogus warning of overloaded
6278 virtual.
6279
6280 * pt.c (overload_template_name): Set DECL_ARTIFICIAL on the created
6281 TYPE_DECL to fix bogus shadowing warnings.
6282
6283Fri Jul 22 01:15:32 1994 Jason Merrill (jason@deneb.cygnus.com)
6284
6285 * init.c (expand_aggr_init_1): const and volatile mismatches do not
6286 prevent a TARGET_EXPR from initializing an object directly.
6287
6288Tue Jul 19 17:55:37 1994 Jason Merrill (jason@deneb.cygnus.com)
6289
6290 * cvt.c (build_up_reference): Allow building up references to
6291 `this', don't warn about making references to artificial variables
6292 (like `this').
6293
6294 * tree.c (lvalue_p): `this' is not an lvalue.
6295
6296 * call.c (build_method_call): Accept using a typedef name (or
6297 template type parameter) for explicit destructor calls.
6298
72b7eeff
MS
6299Thu Jul 14 09:42:23 1994 Mike Stump <mrs@cygnus.com>
6300
6301 * Version 2.6.0 released.
6302
cf17cae3
JM
6303Wed Jul 13 03:57:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6304
a292b002
MS
6305 * method.c (hack_identifier): Put back old code so lists of
6306 non-functions will be handled properly.
a5ef9010 6307
a292b002
MS
6308 * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): #if 0 out; this macro is now
6309 defined in the language-independent tree.h.
cf17cae3 6310
a292b002
MS
6311 * tree.c (count_functions): Avoid bogus warning when compiling this
6312 function.
cf17cae3
JM
6313
6314Mon Jul 11 18:37:20 1994 Jason Merrill (jason@deneb.cygnus.com)
6315
a292b002
MS
6316 * decl.c (grok_reference_init): Always save the initializer of a
6317 reference.
cf17cae3 6318
6060a796 6319Fri Jul 8 17:41:46 1994 Mike Stump <mrs@cygnus.com>
5b605f68
MS
6320
6321 * decl.c (cplus_expand_expr_stmt): Wrap statement expressions inside
6322 CLEANUP_POINT_EXPRs so that the stack slots can be reused.
63c68bb7 6323 (disabled for now)
5b605f68
MS
6324
6325Fri Jul 8 12:59:38 1994 Jason Merrill (jason@deneb.cygnus.com)
6326
6327 * method.c (hack_identifier): Fix for new overloading.
6328
6329 * typeck.c (build_binary_op_nodefault): Don't mess with division by
db5ae43f 6330 zero.
5b605f68
MS
6331
6332Fri Jul 8 13:20:28 1994 Gerald Baumgartner (gb@cs.purdue.edu)
6333
6334 * decl2.c (finish_file): Only call walk_sigtables, if
6335 flag_handle_signatures is turned on, don't waste time otherwise.
6336
6337Fri Jul 8 02:27:41 1994 Jason Merrill (jason@deneb.cygnus.com)
6338
6339 * decl.c (push_overloaded_decl): Don't create overloads of one when
6340 shadowing a class type.
a292b002 6341 * typeck.c (build_x_function_call): Complain about overloads of one.
5b605f68
MS
6342
6343 * decl.c (grokdeclarator): Don't try to treat a char* as a tree.
6344 (grokdeclarator): Fix setting of TREE_STATIC.
6345 (start_decl): Clear DECL_IN_AGGR_P after calling duplicate_decls.
6346
311862c8
GB
6347Thu Jul 7 22:20:46 1994 Gerald Baumgartner (gb@andros.cygnus.com)
6348
6349 * cp-tree.h (walk_sigtables): Created extern declaration.
6350 * decl2.c (walk_sigtables): Created function, patterned after
6351 walk_vtables, even though we only need it to write out sigtables.
6352 (finish_sigtable_vardecl): Created function.
6353 (finish_vtable_vardecl): Changed 0 to NULL_PTR.
6354 (finish_file): Call walk_sigtables.
6355
6356 * sig.c (build_signature_table_constructor): Mark class member
6357 function pointed to from signature table entry as addressable.
6358
5b605f68
MS
6359Thu Jul 7 13:39:37 1994 Jason Merrill (jason@deneb.cygnus.com)
6360
6361 * decl.c (start_decl): Check new decl of static member variable
6362 against the declaration in the class here.
6363 (grokvardecl): Instead of here.
6364
6365 * class.c (prepare_fresh_vtable): Call import_export_vtable if not
6366 -fvtable-thunks.
6367 (build_vtable): Ditto.
6368
6369 * decl2.c (import_export_vtable): Move logic for deciding the
6370 interface of a template class from here.
6371 (import_export_template): To here.
6372 (finish_vtable_vardecl): Call import_export_template before
6373 import_export_vtable.
6374
6060a796 6375Wed Jul 6 20:25:48 1994 Mike Stump <mrs@cygnus.com>
a3b49ccd
MS
6376
6377 * except.c (init_exception_processing): Setup interim_eh_hook to
6378 call lang_interim_eh.
6379 * except.c (do_unwind): Propagate throw object value across
6380 stack unwinding.
6381 * except.c (saved_throw_value): Used to hold the value of the object
6382 being thrown. It is always a reference to the real value.
6383 * except.c (expand_start_catch_block): Add handling for the
6384 value of the exception object.
6385 * except.c (expand_start_catch_block): Add handler for the handler,
6386 so that throws inside the handler go to the outer block.
6387 * except.c (expand_end_catch_block): Ditto.
6388 * parse.y (handler_args): Use parm instead, as the other doesn't yet
6389 handle references correctly.
6390
6391Wed Jul 6 17:55:32 1994 Per Bothner (bothner@kalessin.cygnus.com)
6392
6393 * decl2.c (mark_vtable_entries): If -ftable-thunks, set the
6394 vtable entry properly to abort.
6395
5b605f68
MS
6396Tue Jul 5 14:07:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6397
6398 * typeck.c (build_binary_op_nodefault): Downgrade division by zero
6399 errors to warnings.
6400
6401 * call.c (build_overload_call_real): Handle fnname being a list of
6402 functions.
6403 * typeck.c (build_x_function_call): Pass list of functions to
6404 build_overload_call, not just the name.
6405 * tree.c (count_functions): Complain when called for invalid
6406 argument.
6407
6408 * decl.c (grokdeclarator): Fix settings of TREE_STATIC, TREE_PUBLIC
6409 and DECL_EXTERNAL on static members and initialized const members.
6410 * decl2.c (grokfield): Reflect this change.
6411
9a0e77ba
JM
6412Fri Jul 1 09:35:51 1994 Jason Merrill (jason@deneb.cygnus.com)
6413
6414 * parse.y (init): ANSI C++ does not forbid { }.
6415
6416Thu Jun 30 00:35:22 1994 Jason Merrill (jason@deneb.cygnus.com)
6417
6418 * decl2.c (lang_decode_option): Set warn_nonvdtor along with -Wall.
6419 warn_nonvdtor defaults to off.
6420
6421 * class.c (instantiate_type): Use comptypes rather than relying on
6422 types to satisfy ==.
6423
6424 * decl.c (start_function): Set DECL_DEFER_OUTPUT on all inlines that
6425 might be static.
6426
6427 * tree.c (build_cplus_new): Never build WITH_CLEANUP_EXPRs.
6428
6429 * decl.c (grok_reference_init): Deal with ADDR_EXPRs of TARGET_EXPRs.
6430
6431 * cvt.c (cp_convert): Pass 0 to with_cleanup_p arg of
6432 build_cplus_new.
6433
6434Wed Jun 29 22:31:09 1994 Jason Merrill (jason@deneb.cygnus.com)
6435
6436 * decl2.c (finish_file): Maybe consider static inlines multiple
6437 times, in case they reference each other.
6438
63718c49
GB
6439Tue Jun 28 11:58:38 1994 Gerald Baumgartner (gb@cs.purdue.edu)
6440
6441 * class.c (finish_struct): Don't `cons_up_default_function's
6442 for signatures.
6443 (finish_struct): Handle an empty method_vec correctly.
6444
6445 * decl.c (grokdeclarator): Don't warn about a signature being
6446 empty in a signature pointer declaration if we only saw a
6447 forward declaration of the signature. Changed `warning's into
6448 `cp_warning's.
6449
6450 * sig.c (build_sigtable): Don't die if a null signature table
6451 constructor is returned.
6452 (build_signature_pointer_constructor): If the signature table
6453 constructor is null, the _sptr field is set to a null pointer
6454 and cast to the appropriate type. Make copies of all null
6455 pointers so that the type null_pointer_node doesn't get changed.
6456 (build_signature_table_constructor): Added comments.
6457
6458 * sig.c (build_signature_pointer_constructor): Complain if we
6459 try to assign to/initialize a signature pointer/reference of
6460 an undefined signature.
6461
6462Mon Jun 27 14:05:16 1994 Gerald Baumgartner (gb@cs.purdue.edu)
6463
6464 * typeck2.c (store_init_value): Don't be pedantic about
6465 non-constant initializers of signature tables/pointers/references.
6466
6467Fri Jun 24 16:49:41 1994 Gerald Baumgartner (gb@cs.purdue.edu)
6468
6469 * decl.c (grokdeclarator): If we are grokking an opaque typedef
6470 in a signature, don't complain about it begin static.
6471
6060a796 6472Wed Jun 29 16:44:45 1994 Mike Stump <mrs@cygnus.com>
21474714
MS
6473
6474 Fixes a problem of the this pointer being wrong in virtual calls to
6475 methods that are not overridden in more derived classes.
6476
6477 * class.c (fixup_vtable_delta): New routine. It will fixup the
6478 delta entries in vtables, wheever they need updating.
6479 * class.c (finish_struct): Call the new routine for all virtual
6480 bases, as they can have different offsets, than those used in base
6481 classes that we derive our vtable from.
6482
6483Tue Jun 28 23:49:28 1994 Jason Merrill (jason@deneb.cygnus.com)
6484
6485 * typeck.c (build_binary_op): Use the types before default
6486 conversions in the error message.
6487
6488 * *.c: Use c_build_type_variant instead of build_type_variant where
6489 the type might be an array.
6490
6491 * call.c (build_method_call): Call build_type_variant and
6492 build_reference_type in the right order.
6493 * decl.c (record_builtin_type): Ditto.
6494
6495Wed Jun 29 16:58:53 1994 Jason Merrill (jason@deneb.cygnus.com)
6496
6497 * call.c (build_method_call): Call build_type_variant and
6498 build_reference_type in the right order.
6499 * decl.c (record_builtin_type): Ditto.
6500
6501Tue Jun 28 23:49:28 1994 Jason Merrill (jason@deneb.cygnus.com)
6502
6503 * typeck.c (build_binary_op): Use the types before default
6504 conversions in the error message.
6505
6506 * *.c: Use c_build_type_variant instead of build_type_variant where
6507 the type might be an array.
6508
6509Sat Jun 25 11:50:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6510
6511 * cvt.c (convert_to_reference): Try UDC's before doing the
6512 reinterpret_cast thang, though.
6513
6514Fri Jun 24 01:24:01 1994 Jason Merrill (jason@deneb.cygnus.com)
6515
6516 * typeck.c (c_expand_return): Don't USE the return value location
6517 after we've expanded the jump.
6518
6519 * decl2.c (finish_file): Make sure DECL_SAVED_INSNS is not 0 before
6520 trying to write out an inline.
6521
6522 * cvt.c (build_up_reference): Also do address adjustment when the
6523 target type uses MI.
6524 (convert_to_reference): Try UDCs only after built-in conversions.
6525 (build_type_conversion_1): Don't play games with the argument to the
6526 method.
6527 (build_type_conversion): #if 0 out code for binding to reference.
6528
a3203465
MS
6529Thu Jun 23 00:22:28 1994 Jason Merrill (jason@deneb.cygnus.com)
6530
21474714
MS
6531 * decl2.c (finish_file): Use TREE_SYMBOL_REFERENCED to decide
6532 whether to emit inlines.
6533
a3203465
MS
6534 * decl.c (grokdeclarator): Set explicit_int for decls that just
6535 specify, say, 'long'.
6536
6537 * init.c (do_friend): Do overload C functions (or call pushdecl,
63718c49 6538 anyaway).
a3203465
MS
6539
6540Wed Jun 22 13:40:49 1994 Jason Merrill (jason@deneb.cygnus.com)
6541
6542 * cvt.c (build_up_reference): Don't call readonly_error.
6543 (convert_to_reference): Propagate const and volatile from expr to
6544 its type.
6545
6546 * tree.c (lvalue_p): Random CALL_EXPRs are not lvalues.
6547
6548 * cvt.c (build_up_reference): Break out WITH_CLEANUP_EXPR when
6549 creating a temporary.
6550 (convert_to_reference): Lose excessive and incorrect trickiness.
6551 (cp_convert): Call build_cplus_new with with_cleanup_p set.
6552
6553 * typeck2.c (build_functional_cast): Ditto.
6554
6555Tue Jun 21 17:38:38 1994 Jason Merrill (jason@deneb.cygnus.com)
6556
6557 * decl.c (grokdeclarator): signed, unsigned, long and short all
6558 imply 'int'.
6559
6560 * decl.c (grokdeclarator): Allow "this is a type" syntax.
6561 (grok_reference_init): Simplify and fix.
6562
6563Sun Jun 19 17:08:48 1994 Jason Merrill (jason@deneb.cygnus.com)
6564
6565 * decl.c (grokdeclarator): pedwarn about a typedef that specifies no
6566 type.
6567
6568Sat Jun 18 04:16:50 1994 Jason Merrill (jason@deneb.cygnus.com)
6569
6570 * decl.c (start_function): Move TREE_PUBLIC and DECL_EXTERNAL
6571 tinkering to after call to pushdecl.
6572
6573Fri Jun 17 14:48:28 1994 Jason Merrill (jason@deneb.cygnus.com)
6574
6575 * call.c (build_method_call): Handle destructors for non-aggregate
6576 types properly.
6577
6578Thu Jun 16 16:48:05 1994 Jason Merrill (jason@deneb.cygnus.com)
6579
6580 * call.c (build_method_call): Make sure that the name given for the
6581 destructor matches the constructor_name of the instance.
6582
6583 * pt.c (do_function_instantiation): A non-extern instantiation
6584 overrides a later extern one.
6585 (do_type_instantiation): Ditto.
6586
6587Wed Jun 15 19:34:54 1994 Jason Merrill (jason@deneb.cygnus.com)
6588
6589 * init.c (expand_aggr_init): Use TYPE_MAIN_VARIANT to get the
6590 unqualified array type.
6591
6592 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Tests whether NODE is a
6593 CONSTRUCTOR with no elements.
6594
6595 * decl.c (various): Lose empty_init_node.
6596 (finish_decl): Use EMPTY_CONSTRUCTOR_P, do the empty CONSTRUCTOR
6597 thing depending on the value of DECL_COMMON instead of
6598 flag_conserve_space, do the empty CONSTRUCTOR thing for types that
6599 don't have constructors, don't treat a real empty CONSTRUCTOR
6600 specially.
6601
6602 * typeck2.c (process_init_constructor): Don't treat empty_init_node
6603 specially.
6604
6060a796 6605Wed Jun 15 19:05:25 1994 Mike Stump <mrs@cygnus.com>
a3203465
MS
6606
6607 * class.c (override_one_vtable): Don't forget to merge in an old
6608 overrider when we wanted to reuse a vtable, but couldn't.
6609
6610Wed Jun 15 15:03:16 1994 Jason Merrill (jason@deneb.cygnus.com)
6611
6612 * decl.c (start_decl): Put statics in common again.
6613
6614 * decl.c (grokdeclarator): Return NULL_TREE for an error rather than
6615 setting the type to error_mark_node.
6616
6617 * typeck.c (build_modify_expr): Build up a COMPOUND_EXPR for enum
6618 bitfield assignments.
6619
f0e01782
MS
6620Tue Jun 14 12:23:38 1994 Jason Merrill (jason@deneb.cygnus.com)
6621
6622 * decl.c (grok_op_properties): Const objects can be passed by value.
6623
6624Mon Jun 13 03:10:59 1994 Jason Merrill (jason@deneb.cygnus.com)
6625
6626 * decl2.c (import_export_vtable): Force implicit instantiations to
6627 be interface_only when -fno-implicit-templates.
6628
6629 * decl.c (duplicate_decls): Redeclaring a class template name is an
6630 error.
6631
6632 * pt.c (end_template_decl): Call GNU_xref_decl for class templates.
6633 * xref.c (GNU_xref_decl): Support templates.
6634
6635Sat Jun 11 17:09:05 1994 Jason Merrill (jason@deneb.cygnus.com)
6636
6637 * decl.c (grok_op_properties): Split out checking for whether this
6638 function should suppress the default assignment operator.
6639 * decl2.c (grok_function_init): Ditto.
6640 (copy_assignment_arg_p): New function do do just that.
6641 Now considers virtual assignment operators that take a base as an
6642 argument to count as copy assignment operators.
6643
6644 * search.c (dfs_debug_mark): Lose checks for DWARF_DEBUG and
6645 TREE_ASM_WRITTEN, as they are redundant.
6646
6647 * pt.c (end_template_decl): Don't try to set DECL_CLASS_CONTEXT on a
6648 decl that has no LANG_SPECIFIC part.
6649 (do_type_instantiation): Force the debugging information for this
6650 type to be emitted.
6651
6652 * decl.c (start_decl): Clear up uses of various types of templates
6653 (say sorry for static data members, rather than "invalid template").
6654 (expand_static_init): Fix initialization of static data members of
6655 template classes.
6656
6657Fri Jun 10 00:41:19 1994 Jason Merrill (jason@deneb.cygnus.com)
6658
6659 * decl.c (grokdeclarator): Set DECL_CONTEXT on static data members.
6660
6661 * g++.c (main): Use -xc++-cpp-output for .i files.
6662
6663 * pt.c (tsubst): Give meaningful error about declaring template for
6664 a copy constructor which was not declared in the class template.
6665 (do_type_instantiation): Explicit instantiation before the class
6666 template is an error.
6667 (instantiate_template): Don't die if tsubst returns error_mark_node.
6668
6669Thu Jun 9 19:04:59 1994 Jason Merrill (jason@deneb.cygnus.com)
6670
6671 Don't synthesize the copy assignment operator if the one in a base
6672 class is pure virtual.
6673 * cp-tree.h (TYPE_HAS_ABSTRACT_ASSIGN_REF): New macro to indicate
6674 whether the type has a pure virtual copy assignment operator.
6675 * class.c (finish_base_struct): Don't generate the copy assignment
6676 operator if a base class has a pure virtual one.
6677 * decl.c (grok_op_properties): Add disabled code to set
6678 TYPE_HAS_ABSTRACT_ASSIGN_REF with comment pointing to where it is
6679 actually set.
6680 * decl2.c (grok_function_init): Set TYPE_HAS_ABSTRACT_ASSIGN_REF.
6681
6682 * decl2.c (import_export_vtable): Always treat template
6683 instantiations as if write_virtuals >= 2, and treat implicit
6684 instantiations as external if -fno-implicit-templates.
6685 (finish_file): Output all pending inlines if
6686 flag_keep_inline_functions.
6687
6060a796 6688Wed Jun 8 20:48:02 1994 Mike Stump <mrs@cygnus.com>
f0e01782
MS
6689
6690 * tree.c (layout_vbasetypes): Align virtual base classes inside
6691 complete objects, so that we don't core dump on machines such as
6692 SPARCs when we access members that require larger than normal
6693 alignments, such as a double. Also, we bump up the total alignment
6694 on the complete type, as necessary.
6695
6696Wed Jun 8 16:18:14 1994 Jason Merrill (jason@deneb.cygnus.com)
6697
6698 * gxxint.texi (Free Store): New section with code for examining
6699 cookie.
6700 (Limitations of g++): Remove operator delete entry, since it is no
6701 longer accurate. Fix access control entry.
6702
6703 * typeck.c (build_unary_op): Pedwarn about taking the address of or
6704 incrementing a cast to non-reference type.
6705 (build_modify_expr): Use convert instead of convert_force again.
6706
6707 * search.c (get_base_distance): Use IS_AGGR_TYPE_CODE to check for
6708 class type, not == RECORD_TYPE.
6709
6710 * decl.c (grokdeclarator): Cope with grokfndecl returning NULL_TREE.
6711
6712 * typeck2.c (report_case_error): #if 0 out.
6713 * lex.c (real_yylex): Lose RANGE.
6714 * parse.y: Ditto.
6715
6716Tue Jun 7 18:17:35 1994 Jason Merrill (jason@deneb.cygnus.com)
6717
6718 * parse.y (simple_stmt, case ranges): Use ELLIPSIS instead of RANGE.
6719
6720Mon Jun 6 19:39:57 1994 Jason Merrill (jason@deneb.cygnus.com)
6721
6722 * typeck.c (build_c_cast): Don't shortcut conversions to the same
6723 type. Don't replace consts with their values here, since that's now
6724 done in cp_convert.
6725
6726 * cvt.c (cp_convert): When converting to bool, take
6727 integer_zero_node to false_node and all other INTEGER_CSTs to
6728 true_node.
6729 (build_type_conversion): Don't complain about multiple conversions
6730 to float if we're not really converting.
6731
a0a33927
MS
6732Fri Jun 3 02:10:56 1994 Jason Merrill (jason@deneb.cygnus.com)
6733
f0e01782
MS
6734 Implement 'extern template class A<int>;' syntax for suppressing
6735 specific implicit instantiations.
6736 * cp-tree.h: Update prototypes for do_*_instantiation.
6737 * pt.c (do_pending_expansions): Don't compile 'extern' explicit
6738 instantiations.
6739 (do_function_instantiation): Set DECL_EXTERNAL on 'extern' explicit
6740 instantiations.
6741 (do_type_instantiation): Ditto.
6742 * parse.y (explicit_instantiation): Support 'extern template class
6743 A<int>;' syntax.
6744 * decl.c (start_function): Don't modify the settings of TREE_PUBLIC
6745 and DECL_EXTERNAL on explicit instantiations.
6746
a0a33927
MS
6747 * cvt.c (cp_convert): Replace constants with their values before
6748 converting.
f0e01782 6749 (cp_convert): Consistently use 'e' instead of 'expr'.
a0a33927
MS
6750
6751Thu Jun 2 03:53:30 1994 Jason Merrill (jason@deneb.cygnus.com)
6752
6753 * typeck2.c (build_x_arrow): Resolve OFFSET_REFs first.
6754
6755Wed Jun 1 18:57:35 1994 Jason Merrill (jason@deneb.cygnus.com)
6756
6757 * typeck2.c (digest_init): Handle initializing a pmf with an
6758 overloaded method.
6759 * typeck.c (build_ptrmemfunc): Handle overloaded methods.
6760
6761 * decl.c (pushtag): Use build_decl to make TYPE_DECLs.
6762 (xref_defn_tag): Ditto.
6763 * pt.c (process_template_parm): Ditto.
6764 (lookup_template_class): Ditto.
6765 (push_template_decls): Ditto.
6766 (instantiate_class_template): Ditto.
6767 (create_nested_upt): Ditto.
6768 * class.c (finish_struct): Don't try to set DECL_CLASS_CONTEXT on
6769 TYPE_DECLs.
6770
6771 * typeck.c (convert_arguments): Make sure type is not NULL before
6772 checking its TREE_CODE.
6773
6060a796 6774Wed Jun 1 17:40:39 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
6775
6776 * class.c (get_derived_offset): New routine.
6777 * class.c (finish_base_struct): Make sure we set BINFO_VTABLE and
6778 BINFO_VIRTUALS when we choose a new base class to inherit from.
6779 * class.c (modify_one_vtable): Use get_derived_offset to get the
6780 offset to the most base class subobject that we derived this binfo
6781 from.
6782 * class.c (finish_struct): Move code to calculate the
6783 DECL_FIELD_BITPOS of the vfield up, as we need might need it for
6784 new calls to get_derived_offset in modify_one_vtable.
6785
6786Wed Jun 1 16:50:59 1994 Jason Merrill (jason@deneb.cygnus.com)
6787
6788 * init.c (build_member_call): Use build_pointer_type instead of
6789 TYPE_POINTER_TO.
6790
6791Wed Jun 1 11:11:15 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
6792
6793 * decl.c (grokdeclarator): Make sure we have a DNAME set before we
6794 try to use it in an error.
6795
6060a796 6796Wed Jun 1 09:48:49 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
6797
6798 * typeck.c (convert_arguments, convert_for_initialization): Don't
6799 strip NOP_EXPRs, when we are converting to a reference.
6800
6801Wed Jun 1 01:11:38 1994 Jason Merrill (jason@deneb.cygnus.com)
6802
6803 * typeck.c (build_modify_expr): Don't dereference references when
6804 initializing them.
6805
6806 * decl2.c (grokfield): Don't check for grokdeclarator returning
6807 error_mark_node any more.
6808
6809 * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node.
6810 (start_method): Return void_type_node instead of error_mark_node.
6811
6812 * typeck.c (build_modify_expr): Resolve offset refs earlier.
6813
6814Tue May 31 16:06:58 1994 Jason Merrill (jason@deneb.cygnus.com)
6815
6816 * call.c (build_method_call): Resolve OFFSET_REFs in the object.
6817
6818 * typeck.c (build_modify_expr): Dereference references before trying
6819 to assign to them.
6820
6821 * call.c (build_method_call): Don't confuse type conversion
6822 operators with constructors.
6823 * typeck2.c (build_functional_cast): Just call build_c_cast if there
6824 was only one parameter.
6825 * method.c (build_typename_overload): Don't set
6826 IDENTIFIER_GLOBAL_VALUE on these identifiers.
6827 * decl.c (grok_op_properties): Warn about defining a type conversion
6828 operator that converts to a base class (or reference to it).
6829 * cvt.c (cp_convert): Don't try to use a type conversion operator
6830 when converting to a base class.
6831 (build_type_conversion_1): Don't call constructor_name_full on an
6832 identifier.
6833 * cp-tree.h (DERIVED_FROM_P): Should be self-explanatory.
6834
6835 * decl.c (start_decl): Don't complain that error_mark_node is an
6836 incomplete type.
6837 (finish_decl): Check for type == error_mark_node.
6838
6839Mon May 30 23:38:55 1994 Jason Merrill (jason@deneb.cygnus.com)
6840
6841 * decl.c (start_function): Set DECL_DEFER_OUTPUT on implicit
6842 instantiations and inline members.
6843
6844 * spew.c (yylex): Set looking_for_template if the next token is a '<'.
6845
6846 * lex.h: Declare looking_for_template.
6847
6848 * decl.c (lookup_name_real): Use looking_for_template to arbitrate
6849 between type and template interpretations of an identifier.
6850
6851Sat May 28 04:07:40 1994 Jason Merrill (jason@deneb.cygnus.com)
6852
6853 * pt.c (instantiate_template): Zero out p if we found a
6854 specialization.
6855
6856 * decl.c (grokdeclarator): Elucidate warning.
6857 (grokdeclarator): If pedantic AND -ansi, complain about long long.
6858
6859 Make explicit instantiation work reasonably. It is now appropriate
6860 to deprecate the use of -fexternal-templates.
6861 * pt.c (instantiate_template): Set DECL_TEMPLATE_SPECIALIZATION or
6862 DECL_IMPLICIT_INSTANTIATION on fndecl as appropriate.
6863 (end_template_instantiation): Reflect changes in USE_TEMPLATE
6864 semantics.
6865 (do_pending_expansions): if (!flag_implicit_templates) DECIDE(0);
6866 (do_function_instantiation): Don't set EXPLICIT_INST if
6867 flag_external_templates is set. Do set TREE_PUBLIC and DECL_EXTERN
6868 appropriately otherwise.
6869 (do_type_instantiation): Set interface info for class. Set
6870 TREE_PUBLIC and DECL_EXTERN for methods. Do none of this if
6871 flag_external_templates is set.
6872 * parse.y: Reflect changes in USE_TEMPLATE semantics.
6873 * decl2.c: New flag flag_implicit_templates determines whether or
6874 not implicit instantiations get emitted. This flag currently
6875 defaults to true, and must be true for -fexternal-templates to work.
6876 (finish_file): Consider flag_implement_inlines when
6877 setting DECL_EXTERNAL. Consider flag_implicit_templates when
6878 deciding whether or not to emit a static copy.
6879 * decl.c (start_function): Set TREE_PUBLIC and DECL_EXTERNAL
6880 properly for template instantiations.
6881 (start_method): Set DECL_IMPLICIT_INSTANTIATION on methods of a
6882 template class.
6883 * cp-tree.h (CLASSTYPE_USE_TEMPLATE): Change semantics.
6884 (DECL_USE_TEMPLATE): Parallel macro for FUNCTION and VAR_DECLs.
6885 (various others): Accessor macros for the above.
6886
6887Fri May 27 13:57:40 1994 Jason Merrill (jason@deneb.cygnus.com)
6888
6889 * typeck.c (build_binary_op_nodefault): Division by constant zero is
6890 an error.
6891
6060a796 6892Fri May 27 13:50:15 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
6893
6894 * class.c (override_one_vtable): Don't modify things we don't own.
6895
6896Fri May 27 01:42:58 1994 Jason Merrill (jason@deneb.cygnus.com)
6897
6898 * decl.c (finish_decl): Don't postpone processing the initializer of
6899 a decl with DECL_EXTERNAL set, and do call rest_of_compilation for a
6900 PUBLIC const at toplevel.
6901 (grokdeclarator): pedwarn about initializing non-const or
6902 non-integral statics in the class body.
6903
6904 * decl.c (pushtag): Don't try to set DECL_CLASS_CONTEXT on a
6905 TYPE_DECL.
6906
6907 * call.c (convert_harshness): Dereference reference on rhs before
6908 proceeding, properly grok passing const things to non-const
6909 references.
6910
6911 * typeck.c (build_unary_op): Soften error about taking the address
6912 of main() to a pedwarn.
6913
6914 * lex.c (default_copy_constructor_body): Unambiguously specify base
6915 classes (i.e. A((const class ::A&)_ctor_arg) ).
6916 (default_assign_ref_body): Ditto.
6917
6918Thu May 26 13:13:55 1994 Gerald Baumgartner (gb@mexican.cygnus.com)
6919
6920 * decl2.c (grokfield): Don't complain about local signature
6921 method declaration without definition.
6922
6923 * call.c (convert_harshness): If `type' is a signature pointer
6924 and `parmtype' is a pointer to a signature, just return 0. We
6925 don't really convert in this case; it's a result of making the
6926 `this' parameter of a signature method a signature pointer.
6927
6928 * call.c (build_method_call): Distinguish calling the default copy
6929 constructor of a signature pointer/reference from a signature
6930 member function call.
6931
6932Thu May 26 12:56:25 1994 Jason Merrill (jason@deneb.cygnus.com)
6933
6934 * decl2.c (grokfield): Don't set TREE_PUBLIC on member function
6935 declarations.
6936
6937 * decl.c (duplicate_decls): A previous function declaration as
6938 static overrides a subsequent non-static definition.
6939 (grokdeclarator): Don't set TREE_PUBLIC on inline method
6940 declarations.
6941
6942Wed May 25 14:36:38 1994 Jason Merrill (jason@deneb.cygnus.com)
6943
6944 * decl.c (grokdeclarator): Handle initialization of static const
6945 members.
6946 (finish_decl): Ditto.
6947
6948 * decl2.c (grokfield): Allow initialization of static const members
6949 even when pedantic.
6950
6951 * decl2.c (grokfield): Deal with grokdeclarator returning
6952 error_mark_node.
6953
6954 * decl.c (grok_ctor_properties): Return 0 for A(A) constructor.
6955 (grokfndecl): Check the return value of grok_ctor_properties.
6956 (start_method): Ditto.
6957
6958 * parse.y (absdcl): Expand type_quals inline.
6959
6960Tue May 24 19:10:32 1994 Jason Merrill (jason@deneb.cygnus.com)
6961
6962 * decl.c (pushtag): Use IS_AGGR_TYPE rather than checking for a
6963 RECORD_TYPE.
6964
6965Tue May 24 18:09:16 1994 Per Bothner (bothner@kalessin.cygnus.com)
6966
6967 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
6968 always use "__vt_%s".
6969 * decl2.c (finish_vtable_vardecl): Don't consider abstract virtuals
6970 when looking for a "sentinal" method (to decide on emitting vtables).
6971 * decl2.c (finish_file): Scan all decls for thunks that need
6972 to be emitted.
6973 * decl2.c (finish_vtable_vardecl): Don't bother calling emit_thunk.
6974 * method.c (make_thunk): Use a more meaningful label. If there
6975 exists a matching top-level THUNK_DECL re-use it; otherwise
6976 create a new THUNK_DECL (and declare it).
6977 * method.c (emit_thunk): Make thunk external/public depending
6978 on the underlying method.
6979
6980Tue May 24 00:22:04 1994 Jason Merrill (jason@deneb.cygnus.com)
6981
6982 * pt.c (tsubst): Use lookup_name_nonclass to find guiding decls, not
6983 lookup_name.
6984
6985 * call.c (build_overload_call_real): Don't immediately pick a
6986 function which matches perfectly.
6987
6988 * decl.c (grokdeclarator): Use c_build_type_variant for arrays.
6989 (grokdeclarator): Warn about, and throw away, cv-quals attached to a
6990 reference (like 'int &const j').
6991
6992 * typeck.c (convert_arguments): Don't mess with i for methods.
6993 * call.c (build_method_call): Pass the function decl to
6994 convert_arguments.
6995
6996 * typeck.c (comp_ptr_ttypes_real): New function. Implements the
6997 checking for which multi-level pointer conversions are allowed.
6998 (comp_target_types): Call it.
6999 (convert_for_assignment): Check const parity on the ultimate target
7000 type, too. And make those warnings pedwarns.
7001
7002Mon May 23 14:11:24 1994 Jason Merrill (jason@deneb.cygnus.com)
7003
7004 * error.c (dump_char): Use TARGET_* for character constants.
7005
7006Mon May 23 13:03:03 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7007
7008 * tree.c (debug_no_list_hash): Make static.
7009
7010 * decl.c (decls_match): Say the types don't match if newdecl ends up
7011 with a null type, after we've checked if olddecl does.
7012 (pushdecl): Check if the decls themselves match before looking for
7013 an extern redeclared as static, to avoid inappropriate and incorrect
7014 warnings.
7015
7016Fri May 20 14:04:34 1994 Jason Merrill (jason@deneb.cygnus.com)
7017
7018 * decl.c (grokdeclarator): Make warning about duplicate short, etc.
7019 a pedwarn.
7020
7021 * typeck.c (build_c_cast): Casting to function or method type is an
7022 error.
7023
7024 * class.c (finish_struct): Make warning for anonymous class with no
7025 instances a pedwarn.
7026
7027 * Makefile.in (stamp-parse): Expect a s/r conflict.
7028
7029 * typeck.c (build_modify_expr): pedwarn about using a non-lvalue
7030 cast as an lvalue.
7031
2986ae00
MS
7032Thu May 19 12:08:48 1994 Jason Merrill (jason@deneb.cygnus.com)
7033
7034 * cvt.c (type_promotes_to): Make sure bool promotes to int rather
7035 than unsigned on platforms where sizeof(char)==sizeof(int).
7036
7037Wed May 18 14:27:06 1994 Jason Merrill (jason@deneb.cygnus.com)
7038
7039 * typeck.c (build_c_cast): Tack on a NOP_EXPR when casting to
7040 another variant.
7041 (build_modify_expr): Don't strip NOP_EXPRs, and don't get tricky
7042 and treat them as lvalues.
7043
7044 * decl.c (shadow_tag): Do complain about forward declarations of
7045 enums and empty declarations.
7046 * parse.y: Don't complain about forward declarations of enums and
7047 empty declarations.
7048
7049 * typeck.c (convert_for_assignment): Complain about changing
7050 the signedness of a pointer's target type.
7051
7052 * parse.y (stmt): Move duplicated code for checking case values from
7053 here.
7054 * decl2.c (check_cp_case_value): To here. And add a call to
7055 constant_expression_warning.
7056
7057 * typeck.c (convert_for_assignment): Don't complain about assigning
7058 a negative value to bool.
7059
7060 * decl.c (init_decl_processing): Make bool unsigned.
7061
7062 * class.c (finish_struct): Allow bool bitfields.
7063
2986ae00
MS
7064Wed May 18 12:35:27 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7065
7066 * Make-lang.in (c++.install-man): Get g++.1 from $(srcdir)/cp.
7067
7068Wed May 18 03:28:35 1994 Jason Merrill (jason@deneb.cygnus.com)
7069
7070 * cvt.c (build_type_conversion): Lose special handling of
7071 truthvalues.
7072
7073 * search.c (dfs_pushdecls): Improve shadowing warning.
7074
7075Tue May 17 13:34:46 1994 Jason Merrill (jason@deneb.cygnus.com)
7076
7077 * init.c (build_delete): Throw away const and volatile on `this'.
7078
7079 * decl.c (finish_enum): Put the constants in TYPE_VALUES again,
7080 rather than the enumerators.
7081 (pushtag): s/cdecl/c_decl/g
7082
7083Mon May 16 23:04:01 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
7084
63718c49
GB
7085 * cp/typeck.c (common_type): Attribute merging.
7086 (comp_types): Utilise COMP_TYPE_ATTRIBUTES macro.
2986ae00 7087
63718c49 7088 * cp/parse.y: Revamp attribute parsing.
2986ae00
MS
7089
7090Mon May 16 01:40:34 1994 Jason Merrill (jason@deneb.cygnus.com)
7091
7092 * decl.c (shadow_tag): Also check for inappropriate use of auto and
7093 register.
7094
7095 * method.c (build_overload_name): Clarify that the illegal case is a
7096 pointer or reference to array of unknown bound.
7097
7098 * error.c (dump_type_prefix): Print references to arrays properly.
7099
7100 * typeck.c (various): Be more helpful in pointer
7101 comparison diagnostics.
7102
7103 * tree.c (lvalue_p): MODIFY_EXPRs are lvalues again. Isn't this
7104 fun?
7105
7106 * parse.y: Also catch an error after valid stmts.
7107
7108 * search.c (dfs_init_vbase_pointers): Don't abort because `this' is
7109 const.
7110
7111 * typeck.c (convert_for_initialization): If call to
7112 convert_to_reference generated a diagnostic, print out the parm
7113 number and function decl if any.
7114
7115 * errfn.c (cp_thing): Check atarg1 to determine whether or not we're
7116 specifying a line, not atarg.
7117
7118 * tree.c (build_cplus_method_type): Always make `this' const.
7119
7120 * decl2.c (grokclassfn): If -fthis-is-variable and this function is
7121 a constructor or destructor, make `this' non-const.
7122
7123 * typeck.c (build_modify_expr): Don't warn specially about
7124 assignment to `this' here anymore, since it will be caught by the
7125 usual machinery.
7126
7127 * various: Disallow specific GNU extensions (variable-size arrays,
7128 etc.) when flag_ansi is set, not necessarily when pedantic is set,
7129 so that people can compile with -pedantic-errors for tighter const
7130 checking and such without losing desirable extensions.
7131
7132 * typeck2.c (build_functional_cast): Call build_method_call with
7133 LOOKUP_PROTECT.
7134 (process_init_constructor): Only process FIELD_DECLs.
7135
7136 * decl.c (finish_decl): Also force static consts with no explicit
7137 initializer that need constructing into the data segment.
7138
7139 * init.c (build_delete): Undo last patch, as it interferes with
7140 automatic cleanups.
7141
7142Sat May 14 01:59:31 1994 Jason Merrill (jason@deneb.cygnus.com)
7143
7144 * call.c, class.h, cp-tree.h, cvt.c, decl2.c: Lose old overloading
7145 code.
7146
7147 * init.c (build_delete): pedwarn about using plain delete to delete
7148 an array.
7149
7150Fri May 13 16:45:07 1994 Jason Merrill (jason@deneb.cygnus.com)
7151
7152 * typeck.c (comp_target_types): Be more helpful in contravariance
7153 warnings, and make them pedwarns.
7154
7155 * decl.c (grokdeclarator): Use decl_context to decide whether or not
7156 this is an access declaration.
7157
7158 * class.c (finish_struct_bits): Set TYPE_HAS_INT_CONVERSION if it
7159 has a conversion to enum or bool, too.
7160
6060a796 7161Fri May 13 16:31:27 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
7162
7163 * method.c (emit_thunk): Make declaration for
7164 current_call_is_indirect local (needed for hppa).
7165
7166Fri May 13 16:16:37 1994 Jason Merrill (jason@deneb.cygnus.com)
7167
7168 * pt.c (uses_template_parms): Grok BOOLEAN_TYPE.
7169 (tsubst): Ditto.
7170
6060a796 7171Fri May 13 16:23:32 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
7172
7173 * pt.c (tsubst): If there is already a function for this expansion,
7174 use it.
7175 * pt.c (instantiate_template): Ditto.
7176
7177Fri May 13 10:30:42 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7178
7179 * parse.y (implicitly_scoped_stmt, simple_stmt case): Use
7180 kept_level_p for MARK_ENDS argument to expand_end_bindings, to avoid
7181 generating debug info for unemitted symbols on some systems.
7182
7183 * cp-tree.h (build_static_cast, build_reinterpret_cast,
7184 build_const_cast): Add declarations.
7185
6060a796 7186Fri May 13 09:50:31 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
7187
7188 * search.c (expand_indirect_vtbls_init): Fix breakage from Apr 27
7189 fix. We now try get_binfo, and if that doesn't find what we want,
7190 we go back to the old method, which still sometimes fails.
7191
7192Fri May 13 01:43:18 1994 Jason Merrill (jason@deneb.cygnus.com)
7193
7194 * parse.y (initdcl): Call cplus_decl_attributes on the right
7195 variable.
7196 * decl2.c (cplus_decl_attributes): Don't call decl_attributes for
7197 void_type_node.
7198
7199 * typeck.c (build_binary_op_nodefault): Change result_type for
7200 comparison ops to bool.
7201 (build_binary_op): Convert args of && and || to bool.
7202 * cvt.c (build_default_binary_type_conversion): Convert args of &&
7203 and || to bool.
7204 (build_default_unary_type_conversion): Convert arg of ! to bool.
7205 (type_promotes_to): bool promotes to int.
7206
6060a796 7207Fri May 13 01:43:18 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
7208
7209 Implement the new builtin `bool' type.
7210 * typeck.c (build_binary_op_nodefault): Convert args of && and || to
7211 bool.
7212 (build_unary_op): Convert arg of ! to bool.
7213 * parse.y: Know true and false. Use bool_truthvalue_conversion.
7214 * method.c (build_overload_value): Know bool.
7215 (build_overload_name): Ditto.
7216 * lex.c (init_lex): Set up RID_BOOL.
7217 * gxx.gperf: Add bool, true, false.
7218 * error.c (*): Know bool.
7219 * decl.c (init_decl_processing): Set up bool, true, false.
7220 * cvt.c (cp_convert): Handle conversion to bool.
7221 (build_type_conversion): Ditto.
7222 * *.c: Accept bool where integers and enums are accepted (use
7223 INTEGRAL_CODE_P macro).
7224
8de7634e
RE
7225Thu May 12 19:13:54 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk)
7226
7227 * g++.c: Use #ifdef for __MSDOS__, not #if.
7228
6060a796 7229Thu May 12 18:05:18 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
7230
7231 * decl2.c (lang_f_options): Handle -fshort-temps. -fshort-temps
7232 gives old behavior , and destroys temporaries earlier. Default
7233 behavior now conforms to the ANSI working paper.
7234
7235Thu May 12 14:45:35 1994 Jason Merrill (jason@deneb.cygnus.com)
7236
7237 * typeck.c (build_modify_expr): Understand MODIFY_EXPR as an lvalue.
7238 Use convert_force to convert the result of a recursive call when we
7239 are dealing with a NOP_EXPR. Don't automatically wrap MODIFY_EXPRs
7240 in COMPOUND_EXPRs any more.
7241 (various): Lose pedantic_lvalue_warning.
7242 (unary_complex_lvalue): Understand MODIFY_EXPR.
7243
7244 * cvt.c (convert_to_reference): Allow DECL to be error_mark_node if
7245 we don't know what we're initializing.
7246
7247Wed May 11 01:59:36 1994 Jason Merrill (jason@deneb.cygnus.com)
7248
7249 * cvt.c (convert_to_reference): Modify to use convtype parameter.
7250 Only create temporaries when initializing a reference, not when
7251 casting.
7252 (cp_convert): New main function.
7253 (convert): Call cp_convert.
7254 * cvt.c, decl.c, typeck.c: Fix calls to convert_to_reference.
7255 * cp-tree.h (CONV_*): New constants used by conversion code for
7256 selecting conversions to perform.
7257
7258 * tree.c (lvalue_p): MODIFY_EXPRs are no longer lvalues.
7259
7260 * typeck.c (build_{static,reinterpret,const_cast): Stubs that just
7261 call build_c_cast.
7262 * parse.y: Add {static,reinterpret,const}_cast.
7263 * gxx.gperf: Ditto.
7264
7265 * typeck.c (common_type): Allow methods with basetypes of different
7266 UPTs.
7267 (comptypes): Deal with UPTs.
7268 (build_modify_expr): Wrap all MODIFY_EXPRs in a COMPOUND_EXPR.
7269
7270 * pt.c (end_template_decl): Check for multiple definitions of member
7271 templates.
7272
7273 * call.c (build_method_call): Complain about calling an abstract
7274 virtual from a constructor.
7275
7276 * typeck.c (pointer_int_sum): Check for the integer operand being 0
7277 after checking the validity of the pointer operand.
7278
7279 * typeck2.c (digest_init): Pedwarn about string initializer being
7280 too long.
7281
7282Tue May 10 12:10:28 1994 Jason Merrill (jason@deneb.cygnus.com)
7283
7284 * decl.c (push_overloaded_decl): Only throw away a builtin if the
7285 decl in question is the artificial one.
7286
7287 * parse.y (simple_stmt, switch): Use implicitly_scoped_stmt because
7288 expand_{start,end}_case cannot happen in the middle of a block.
7289
7290 * cvt.c (build_type_conversion_1): Use convert again.
7291
7292Tue May 10 11:52:04 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7293
7294 * typeck2.c (digest_init): Make sure we check for signed and
7295 unsigned chars as well when warning about string initializers.
7296
7297 * init.c (emit_base_init): Check if there's a DECL_NAME on the
7298 member before trying to do an initialization for it.
7299
6060a796 7300Tue May 10 11:34:37 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
7301
7302 * except.c: Don't do anything useful when cross compiling.
7303
7304Tue May 10 03:04:13 1994 Jason Merrill (jason@deneb.cygnus.com)
7305
7306 * decl.c (duplicate_decls): Fix up handling of builtins yet again.
7307 (push_overloaded_decl): Ditto.
7308
7309 * cvt.c (convert): Don't look for void type conversion.
7310
7311Mon May 9 18:05:41 1994 Jason Merrill (jason@deneb.cygnus.com)
7312
7313 * init.c (do_friend): Only do a pushdecl for friends, not
7314 pushdecl_top_level.
7315
7316Mon May 9 13:36:34 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
7317
7318 * decl.c (lookup_name_current_level): Put empty statement after
7319 the label OUT to make the code valid C.
7320
7321Mon May 9 12:20:57 1994 Jason Merrill (jason@deneb.cygnus.com)
7322
7323 * typeck.c (build_binary_op_nodefault): Only complain about
7324 comparing void * and a function pointer if void * is smaller.
7325
7326Sun May 8 01:29:13 1994 Jason Merrill (jason@deneb.cygnus.com)
7327
7328 * decl.c (lookup_name_current_level): Move through temporary binding
7329 levels.
7330
7331 * parse.y (already_scoped_stmt): Revive.
7332 (simple_stmt): Use it again.
7333
7334 * decl.c (poplevel): Always call poplevel recursively if we're
7335 dealing with a temporary binding level.
7336
6060a796 7337Sat May 7 10:52:28 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
7338
7339 * decl.c (finish_decl): Make sure we run cleanups for initial values
7340 of decls. Cures memory leak.
7341 * decl.c (expand_static_init): Ditto for static variables.
7342 * decl2.c (finish_file): Ditto for globals.
7343
7344Sat May 7 03:57:44 1994 Jason Merrill (jason@deneb.cygnus.com)
7345
7346 * typeck.c (commonparms): Don't complain about redefining default
7347 args.
7348
7349 * decl.c (duplicate_decls): Don't complain twice about conflicting
7350 function decls.
7351 (decls_match): Don't look at default args.
7352 (redeclaration_error_message): Complain about redefining default
7353 args.
7354
7355 * call.c (build_overload_call_real): Also deal with guiding
7356 declarations coming BEFORE the template decl.
7357
7358 * pt.c (unify): Allow different parms to have different
7359 cv-qualifiers.
7360 (unify): Allow trivial conversions on non-template parms.
7361
7362Fri May 6 03:53:23 1994 Jason Merrill (jason@deneb.cygnus.com)
7363
7364 * pt.c (tsubst): Support OFFSET_TYPEs.
7365 (unify): Ditto.
7366
7367 * decl2.c (finish_decl_parsing): Call push_nested_class with a type.
7368
7369 * init.c (build_offset_ref): Fix error message.
7370 * search.c (lookup_field): Ditto.
7371
7372 * call.c (build_scoped_method_call): Pass binfo to
7373 build_method_call.
7374 * typeck.c (build_object_ref): Ditto.
7375
7376 * typeck2.c (binfo_or_else): Don't return a _TYPE.
7377
7378 * class.c (finish_struct): Don't complain about re-use of inherited
7379 names or shadowing of type decls.
7380 * decl.c (pushdecl_class_level): Ditto.
7381
7382 * decl.c (finish_enum): Set the type of all the enums.
7383
7384 * class.c (finish_struct): Don't get confused by access decls.
7385
7386 * cp-tree.h (TYPE_MAIN_DECL): New macro to get the _DECL for a
7387 _TYPE. You can stop using TYPE_NAME for that now.
7388
7389 * parse.y: Lose doing_explicit (check $0 instead).
7390 * gxx.gperf: 'template' now has a RID.
7391 * lex.h (rid): Ditto.
7392 * lex.c (init_lex): Set up the RID for 'template'.
7393
7394 * parse.y (type_specifier_seq): typed_typespecs or
7395 nonempty_type_quals. Use it.
7396 (handler_args): Fix bogus syntax.
7397 (raise_identifier{,s}, optional_identifier): Lose.
7398 * except.c (expand_start_catch_block): Use grokdeclarator to parse
7399 the catch variable.
7400 (init_exception_processing): The second argument to
7401 __throw_type_match is ptr_type_node.
7402
7403 Fri May 6 07:18:54 1994 Chip Salzenberg (chip@fin)
7404
7405 [ change propagated from c-decl.c of snapshot 940429 ]
7406 * cp/decl.c (finish_decl): Setting asmspec_tree should not
7407 zero out the old RTL.
7408
6060a796 7409Fri May 6 01:25:38 1994 Mike Stump <mrs@cygnus.com>
8d2733ca
MS
7410
7411 Add alpha exception handling support to the compiler.
7412 Quick and dirty backend in except.c.
7413
7414 * cp/*: Remove most remnants of old exception handling support.
7415 * decl.c (finish_function): Call expand_exception_blocks to put
7416 the exception hanlding blocks at the end of the function.
7417 * dec.c (hack_incomplete_structures): Make sure expand_decl_cleanup
7418 comes after expand_decl_init.
7419 * except.c: Reimplementation.
7420 * expr.c (cplus_expand_expr): Handle THROW_EXPRs.
7421 * lex.c (init_lex): Always have catch, try and throw be reserved
7422 words, so that we may always parse exception handling.
7423 * parse.y: Cleanup to support new interface into exception handling.
7424 * tree.def (THROW_EXPR): Add.
7425
7426Thu May 5 17:35:37 1994 Jason Merrill (jason@deneb.cygnus.com)
7427
7428 * parse.y (simple_stmt, for loops): Use implicitly_scoped_stmt.
7429 (various): Lose .kindof_pushlevel and partially_scoped_stmt.
7430
7431Thu May 5 16:17:27 1994 Kung Hsu (kung@mexican.cygnus.com)
7432
7433 * parse.y (already_scoped_stmt): move expand_end_binding() to
7434 fix the unmatched LBB/LBE in stabs.
7435
7436Thu May 5 14:36:17 1994 Jason Merrill (jason@deneb.cygnus.com)
7437
7438 * decl.c (set_nested_typename): Set TREE_MANGLED on the new
7439 identifiers.
7440 (pushdecl): Check TREE_MANGLED.
7441 (xref_tag): Ditto.
7442 * cp-tree.h (TREE_MANGLED): This identifier is a
7443 DECL_NESTED_TYPENAME (named to allow for future use to denote
7444 mangled function names as well).
7445
7446 Implement inconsistency checking specified in [class.scope0].
7447 * decl.c (lookup_name_real): Don't set ICV here after all.
7448 (finish_enum): Also set the type of the enumerators themselves.
7449 (build_enumerator): Put the CONST_DECL in the list instead of its
7450 initial value.
7451 (pushdecl_class_level): Check inconsistent use of a name in the
7452 class body.
7453 * class.c (finish_struct): Check inconsistent use of a name in the
7454 class body. Don't set DECL_CONTEXT on types here anymore.
7455 * parse.y (qualified_type_name): Note that the identifier has now
7456 been used (as a type) in the class body.
7457 * lex.c (do_identifier): Note that the identifier has now been used
7458 (as a constant) in the class body.
7459 * error.c (dump_decl): Print type and enum decls better.
7460
700f8a87
MS
7461Thu May 5 09:35:35 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7462
7463 * typeck.c (build_modify_expr): Warn about assignment to `this'.
7464
7465Wed May 4 15:55:49 1994 Jason Merrill (jason@deneb.cygnus.com)
7466
7467 * init.c (build_delete): Use the global operator delete when
7468 requested.
7469
7470 * decl.c (lookup_name_real): If we find the type we're looking in a
7471 base class while defining a class, set IDENTIFIER_CLASS_VALUE for
7472 the type.
7473
7474 * class.c (finish_struct): Remove a couple of dependencies on
7475 language linkage.
7476
7477 * decl.c (pushtag): Classes do nest in extern "C" blocks.
7478 (pushdecl): Only set DECL_NESTED_TYPENAME on the canonical one for
7479 the type.
7480 (pushtag): Remove another dependency on the language linkage.
7481
7482 * lex.c (cons_up_default_function): Don't set DECL_CLASS_CONTEXT to
7483 a const-qualified type.
7484
7485 * decl.c (push_overloaded_decl): Throw away built-in decls here.
7486 (duplicate_decls): Instead of here.
7487
7488Wed May 4 15:27:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
7489
7490 * typeck.c (get_member_function_from_ptrfunc): Do The Right
7491 Thing (I hope) if we're using thunks.
7492
7493Wed May 4 13:52:38 1994 Jason Merrill (jason@deneb.cygnus.com)
7494
7495 * parse.y (specialization): aggr template_type_name ';'.
7496 (named_class_head_sans_basetype): Use it.
7497 (explicit_instantiation): Ditto.
7498 (tmpl.2): Revert.
7499
7500 * cvt.c (build_type_conversion_1): Use convert_for_initialization,
7501 rather than convert, to do conversions after the UDC.
7502
7503 * cp-tree.h (SHARED_MEMBER_P): This member is shared between all
7504 instances of the class.
7505
7506 * search.c (lookup_field): If the entity found by two routes is the
7507 same, it's not ambiguous.
7508
7509Wed May 4 12:10:00 1994 Per Bothner (bothner@kalessin.cygnus.com)
7510
7511 * decl.c (lookup_name_real): Check for a NULL TREE_VALUE,
7512 to prevent the compiler from crashing ...
7513
7514Wed May 4 11:19:45 1994 Jason Merrill (jason@deneb.cygnus.com)
7515
7516 * call.c (build_method_call): If we don't have an object, check
7517 basetype_path to figure out where to look up the function.
7518
7519 * typeck.c (convert_for_initialization): Pass TYPE_BINFO (type) to
7520 build_method_call in case exp is NULL_TREE.
7521
7522Tue May 3 16:02:53 1994 Per Bothner (bothner@kalessin.cygnus.com)
7523
7524 Give a vtable entries a unique named type, for the sake of gdb.
7525 * class.c (build_vtable_entry): The addres of a thunk now has
7526 type vtable_entry_type, not ptr_type_node.
7527 * method.c (make_thunk): Fix type of THUNK_DECL.
7528 * class.c (add_virtual_function, override_one_vtable): Use
7529 vfunc_ptr_type_node, instead of ptr_type_node.
7530 * cp-tree.h (vfunc_ptr_type_node): New macro.
7531 * decl.c (init_decl_processing): Make vtable_entry_type
7532 be a unique type of pointer to a unique function type.
7533
7534Tue May 3 09:20:44 1994 Jason Merrill (jason@deneb.cygnus.com)
7535
7536 * parse.y (do_explicit): Sets doing_explicit to 1.
7537 (explicit_instantiation): Use do_explicit rather than TEMPLATE
7538 directly, add "do_explicit error" rule.
7539 (datadef): Set doing_explicit to 0 after an explicit instantiation.
7540 (tmpl.2): Don't instantiate if we see a ';' unless we're doing an
7541 explicit instantiation.
7542 (named_class_head_sans_basetype): Remove aggr template_type_name
7543 ';' again.
7544
7545Mon May 2 23:17:21 1994 Jason Merrill (jason@deneb.cygnus.com)
7546
7547 * search.c (lookup_nested_tag): Lose.
7548
7549 * decl2.c (grokfield): Set DECL_CONTEXT on TYPE_DECLs.
7550 (lookup_name_nonclass): Lose.
7551
7552 * decl.c (poplevel_class): Add force parameter.
7553 (lookup_name_real): Fix handling of explicit scoping which specifies
7554 a class currently being defined. Add 'nonclass' argument.
7555 (lookup_name, lookup_name_nonclass): Shells for lookup_name_real.
7556
7557 * class.c (finish_struct): Don't unset IDENTIFIER_CLASS_VALUEs here.
7558 (popclass): Force clearing of IDENTIFIER_CLASS_VALUEs if we're being
7559 called from finish_struct.
7560
7561Mon May 2 19:06:21 1994 Per Bothner (bothner@kalessin.cygnus.com)
7562
7563 * decl.c (init_decl_processing), cp-tree.h: Removed memptr_type.
7564 (It seeems redundant, given build_ptrmemfunc_type.)
7565 * typeck.c (get_member_function_from_ptrfunc), gc.c (build_headof,
7566 build_classof): Use vtable_entry_type instead of memptr_type.
7567 * method.c (emit_thunk): Call poplevel with functionbody==0
7568 to prevent DECL_INITIAL being set to a BLOCK.
7569
7570Mon May 2 15:02:11 1994 Jason Merrill (jason@deneb.cygnus.com)
7571
7572 * parse.y (named_class_head_sans_basetype): Add "aggr
7573 template_type_name ';'" rule for forward declaration of
7574 specializations.
7575
7576Mon May 2 15:02:11 1994 Jason Merrill (jason@deneb.cygnus.com)
7577
7578 * class.c (instantiate_type): Deal with pmf's.
bfef964b
JM
7579
7580 * Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since
7581 stamp-objlist does.
700f8a87 7582
bfef964b
JM
7583 * Makefile.in (../cc1plus): Depend on OBJDEPS.
7584 (OBJDEPS): Dependency version of OBJS.
7585
700f8a87
MS
7586Mon May 2 12:51:31 1994 Kung Hsu (kung@mexican.cygnus.com)
7587
7588 * search.c (dfs_debug_mark): unmark TYPE_DECL_SUPPRESS_DEBUG, not
7589 DECL_IGNORED_P.
7590
7591Fri Apr 29 12:29:56 1994 Jason Merrill (jason@deneb.cygnus.com)
7592
7593 * class.c (finish_struct): Clear out memory of local tags. And
7594 typedefs.
7595
7596 * decl2.c (grokclassfn): Don't set DECL_CONTEXT to a cv-qualified
7597 type.
7598 * search.c (get_matching_virtual): Be more helpful in error message.
7599
7600 * *: Use DECL_ARTIFICIAL (renamed from DECL_SYNTHESIZED).
7601
7602 * lex.c (default_assign_ref_body): Expect TYPE_NESTED_NAME to work.
7603 (default_copy_constructor_body): Ditto.
7604
7605 * class.c (finish_struct): Don't gratuitously create multiple decls
7606 for nested classes.
7607
7608Thu Apr 28 23:39:38 1994 Jason Merrill (jason@deneb.cygnus.com)
7609
7610 Avoid clobbering the arg types of other functions when reverting
7611 static member functions.
7612 * decl.c (revert_static_member_fn): Rearrange arguments, don't
7613 require values for 'fn' and 'argtypes', add warning to comment
7614 above.
7615 (decls_match): Rearrange arguments in call to rsmf.
7616 (grok_op_properties): Don't pass values for fn and argtypes.
7617 * pt.c (instantiate_template): Don't pass values for fn and argtypes.
7618
15fa00e9
DE
7619Thu Apr 28 16:29:11 1994 Doug Evans (dje@canuck.cygnus.com)
7620
7621 * Make-lang.in (cc1plus): Depend on stamp-objlist.
7622 * Makefile.in (BC_OBJS): Delete.
700f8a87
MS
7623 (OBJS): Cat ../stamp-objlist to get language independent files.
7624 Include ../c-common.o.
15fa00e9
DE
7625 (../cc1plus): Delete reference to BC_OBJS.
7626
700f8a87
MS
7627Thu Apr 28 02:12:08 1994 Jason Merrill (jason@deneb.cygnus.com)
7628
7629 * search.c (compute_access): No really, deal with static members
7630 properly. Would I lie to you?
7631
7632 Implement lexical hiding of function declarations.
7633 * pt.c (tsubst): Use lookup_name to look for function decls to guide
7634 instantiation.
7635 * method.c (build_opfncall): Use lookup_name_nonclass to look for
7636 non-member functions.
7637 * init.c (do_friend): Use lookup_name_nonclass to look for
7638 functions.
7639 * error.c (ident_fndecl): Use lookup_name to look for functions.
7640 * decl2.c (lookup_name_nonclass): New function, skips over
7641 CLASS_VALUE.
7642 * decl.c (struct binding_level): Lose overloads_shadowed field.
7643 (poplevel): Don't deal with overloads_shadowed.
7644 (push_overloaded_decl): Do lexical hiding for functions.
7645 * class.c (instantiate_type): Don't check non-members if we have
7646 members with the same name.
7647 * call.c (build_method_call): Use lookup_name_nonclass instead of
7648 IDENTIFIER_GLOBAL_VALUE to check for non-member functions.
7649 (build_overload_call_real): Ditto.
7650
7651 * decl.c (duplicate_decls): Check for ambiguous overloads here.
7652 (push_overloaded_decl): Instead of here.
7653
7654 * decl.c (pushdecl): Back out Chip's last change.
7655
7656 * decl.c (grok_op_properties): operators cannot be static members.
7657
7658 * cp-tree.h (DECL_SYNTHESIZED): DECL_SOURCE_LINE == 0
7659 (SET_DECL_SYNTHESIZED): DECL_SOURCE_LINE = 0
7660 * lex.c (cons_up_default_function): Use SET_DECL_SYNTHESIZED.
7661
7662 * method.c (do_inline_function_hair): Don't put friends of local
7663 classes into global scope, either.
7664
7665 * typeck2.c (build_functional_cast): Don't look for a function call
7666 interpretation.
7667
6060a796 7668Thu Apr 28 15:19:46 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
7669
7670 * cp-tree.h: disable use of backend EH.
7671
15fa00e9
DE
7672Wed Apr 27 21:01:24 1994 Doug Evans (dje@canuck.cygnus.com)
7673
7674 * Make-lang.in (c++.distdir): mkdir tmp/cp first.
7675 * Makefile.in (INCLUDES): Move definition to same place as
7676 parent makefile.
7677 (ALLOCA): Define.
7678 (OLDAR_FLAGS): Delete.
7679 (OLDCC): Define.
7680 (DIR): Delete.
7681 (CLIB): Define.
7682 (####site): Delete.
7683 (SUBDIR_USE_ALLOCA): Don't use ALLOCA if compiling with gcc.
7684
39211cd5
MS
7685Wed Apr 27 19:10:04 1994 Kung Hsu (kung@mexican.cygnus.com)
7686
7687 * decl.c (xref_tag): not to use strstr(), it's not available on
7688 all platforms.
7689
7690Wed Apr 27 18:10:12 1994 Jason Merrill (jason@deneb.cygnus.com)
7691
7692 * class.c (finish_struct): Resolve yet another class/pmf confusion.
7693
7694 * call.c (build_overload_call_real): Don't take the single-function
7695 shortcut if we're dealing with an overloaded operator.
7696
6060a796 7697Wed Apr 27 17:35:37 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
7698
7699 * search.c (get_base_distance): Search the virtual base class
7700 binfos, incase someone wants to convert to a real virtual base
7701 class.
7702 * search.c (expand_indirect_vtbls_init): Use convert_pointer_to_real
7703 instead of convert_pointer_to, as it now will work.
7704
7705Wed Apr 27 15:36:49 1994 Jason Merrill (jason@deneb.cygnus.com)
7706
7707 * cvt.c (convert_to_reference): Don't complain about casting away
7708 const and volatile.
7709
7710 * typeck.c (build_unary_op): References are too lvalues.
7711
6060a796 7712Wed Apr 27 13:58:05 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
7713
7714 * class.c (override_one_vtable): We have to prepare_fresh_vtable
7715 before we modify it, not after, also, we cannot reuse an old vtable,
7716 once we commit to a new vtable. Implement ambiguous overrides in
7717 virtual bases as abstract. Hack until we make the class
7718 ill-formed.
7719
7720Wed Apr 27 01:17:08 1994 Jason Merrill (jason@deneb.cygnus.com)
7721
7722 * parse.y (unary_expr): Expand new_placement[opt] and
7723 new_initializer[opt] inline.
7724
7725 * search.c (lookup_fnfields): Don't throw away the inheritance
7726 information here, either.
7727 (compute_access): Handle static members properly.
7728
7729 * init.c (build_member_call): Always set basetype_path, and pass it
7730 to lookup_fnfields.
7731
7732 * search.c (lookup_field): Deal properly with the case where
7733 xbasetype is a chain of binfos; don't throw away the inheritance
7734 information.
7735 (compute_access): protected_ok always starts out at 0.
7736
7737 * init.c (resolve_offset_ref): Don't cast `this' to the base type
7738 until we've got our basetype_path.
7739
7740 * cp-tree.h (IS_OVERLOAD_TYPE): aggregate or enum.
7741
7742 * cvt.c (build_up_reference): Use build_pointer_type rather than
7743 TYPE_POINTER_TO.
7744
7745 * call.c (convert_harshness_ansi): Call type_promotes_to for reals
7746 as well.
7747
7748 * cvt.c (type_promotes_to): Retain const and volatile, add
7749 float->double promotion.
7750
7751 * decl.c (grokdeclarator): Don't bash references to arrays into
7752 references to pointers in function parms. Use type_promotes_to.
7753
6060a796 7754Tue Apr 26 23:44:36 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
7755
7756 Finish off Apr 19th work.
7757
7758 * class.c (finish_struct_bits): Rename has_abstract_virtuals to
7759 might_have_abstract_virtuals.
7760 * class.c (strictly_overrides, override_one_vtable,
7761 merge_overrides): New routines to handle virtual base overrides.
7762 * class.c (finish_struct): Call merge_overrides to handle overrides
7763 in virtual bases.
7764
7765Tue Apr 26 12:45:53 1994 Jason Merrill (jason@deneb.cygnus.com)
7766
7767 * typeck.c (build_function_call): Call build_function_call_real with
7768 LOOKUP_NORMAL.
7769
7770 * *: Don't deal with TYPE_EXPRs.
7771
7772 * tree.c (lvalue_p): If the type of the expression is a reference,
7773 it's an lvalue.
7774
7775 * cvt.c (convert_to_reference): Complain about passing const
7776 lvalues to non-const references.
7777 (convert_from_reference): Don't arbitrarily throw away const and
7778 volatile on the target type.
7779
7780 * parse.y: Simplify and fix rules for `new'.
7781
7782 * decl.c (grok_op_properties): operator void is illegal.
7783
7784Mon Apr 25 02:36:28 1994 Jason Merrill (jason@deneb.cygnus.com)
7785
7786 * parse.y (components): Anonymous bitfields can still have declspecs.
7787
7788 * decl.c (pushdecl): Postpone handling of function templates like we
7789 do C functions.
7790
7791 * search.c (expand_indirect_vtbls_init): Fix infinite loop when
7792 convert_pointer_to fails.
7793
7794 * call.c (compute_conversion_costs_ansi): A user-defined conversion
7795 by itself is better than that UDC followed by standard conversions.
7796 Don't treat integers and reals specially.
7797
7798 * cp-tree.h: Declare flag_ansi.
7799
7800 * typeck.c (c_expand_return): pedwarn on return in void function
7801 even if the expression is of type void.
7802 (build_c_cast): Don't do as much checking for casts to void.
7803 (build_modify_expr): pedwarn about array assignment if this code
7804 wasn't generated by the compiler.
7805
7806 * tree.c (lvalue_p): A comma expression is an lvalue if its second
7807 operand is.
7808
7809 * typeck.c (default_conversion): Move code for promoting enums and
7810 ints from here.
7811 * cvt.c (type_promotes_to): To here.
7812 * call.c (convert_harshness_ansi): Use type_promotes_to. Also fix
7813 promotion semantics for reals.
7814
15fa00e9
DE
7815Sun Apr 24 16:52:51 1994 Doug Evans (dje@canuck.cygnus.com)
7816
7817 * Make-lang.in (c++.install-common): Check for g++-cross.
7818 * Makefile.in: Remove Cygnus cruft.
7819 (config.status): Delete.
7820 (RTL_H): Define.
7821 (TREE_H): Use complete pathname, some native makes have minimal
7822 VPATH support.
7823 (*.o): Use complete pathname to headers in parent dir.
7824 (doc, info, dvi): Delete.
7825
700f8a87
MS
7826Sun Apr 24 16:52:51 1994 Doug Evans (dje@canuck.cygnus.com)
7827
7828 * Make-lang.in (c++.install-common): Check for g++-cross.
7829 * Makefile.in: Remove Cygnus cruft.
7830 (config.status): Delete.
7831 (RTL_H): Define.
7832 (TREE_H): Use complete pathname, some native makes have minimal
7833 VPATH support.
7834 (*.o): Use complete pathname to headers in parent dir.
7835 (doc, info, dvi): Delete.
7836
39211cd5
MS
7837Sun Apr 24 00:47:49 1994 Jason Merrill (jason@deneb.cygnus.com)
7838
7839 * decl.c (pushdecl): Avoid redundant warning on redeclaring function
7840 with different return type.
7841 (decls_match): Compare return types strictly.
7842
7843Fri Apr 22 12:55:42 1994 Jason Merrill (jason@deneb.cygnus.com)
7844
7845 * cvt.c (build_type_conversion): Do try to convert through other
7846 pointers. This will fail if the class defines multiple pointer
7847 conversions.
7848
7849 * error.c (dump_type_prefix): Print out pointers to arrays properly.
7850 (dump_type_suffix): Ditto. (was 'int *[]', now 'int (*)[]')
7851
7852 * typeck.c (build_unary_op): Disallow ++/-- on pointers to
7853 incomplete type.
7854
7855 * decl.c (duplicate_decls): Check mismatched TREE_CODES after
7856 checking for shadowing a builtin. If we're redeclaring a builtin
7857 function, bash the old decl to avoid an ambiguous overload.
7858
7859 * cvt.c (convert_to_reference): Don't force arrays to decay here.
7860
7861 * tree.c (lvalue_p): A MODIFY_EXPR is an lvalue.
7862
7863 * decl.c (duplicate_decls): Don't assume that the decls will have
7864 types.
7865
7866 Mon Apr 18 11:35:32 1994 Chip Salzenberg (chip@fin.uucp)
7867
7868 [ cp/* changes propagated from c-* changes in 940318 snapshot ]
7869 * c-decl.c (pushdecl): Warn if type mismatch with another external decl
7870 in a global scope.
7871
7872 Fri Apr 22 06:38:56 1994 Chip Salzenberg (chip@fin.uucp)
7873
7874 * cp/typeck2.c (signature_error): Use cp_error for "%T".
7875
7876 Mon Apr 18 11:59:59 1994 Chip Salzenberg (chip@fin.uucp)
7877
7878 [ cp/* changes propagated from c-* changes in 940415 snapshot ]
7879 * cp/decl.c (duplicate_decls, pushdecl, builtin_function):
7880 Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE.
7881
7882 Mon Apr 18 11:55:18 1994 Chip Salzenberg (chip@fin.uucp)
7883
7884 [ cp/* changes propagated from c-* changes in 940409 snapshot ]
7885 * cp/decl.c (duplicate_decls): Put new type in same obstack as
7886 old ones, or permanent if old ones in different obstacks.
7887
7888 Mon Apr 18 11:48:49 1994 Chip Salzenberg (chip@fin.uucp)
7889
7890 [ cp/* changes propagated from c-* changes in 940401 snapshot ]
7891 * cp/parse.y (attrib): Handle string args as expressions,
7892 merging the two rules. `mode' attribute now takes a string arg.
7893 Delete the rule for an identifier as arg.
7894
7895 Mon Apr 18 11:24:00 1994 Chip Salzenberg (chip@fin.uucp)
7896
7897 [ cp/* changes propagated from c-* changes in 940312 snapshot ]
7898 * cp/typeck.c (pointer_int_sum): Multiplication should be done signed.
7899 (pointer_diff): Likewise the division.
7900
7901 Sun Mar 6 19:43:39 1994 Chip Salzenberg (chip@fin.uucp)
7902
7903 [ cp/* changes propagated from c-* changes in 940304 snapshot ]
7904 * cp/decl.c (finish_decl): Issue warning for large objects,
7905 if requested.
7906
7907 Sat Feb 19 22:20:32 1994 Chip Salzenberg (chip@fin.uucp)
7908
7909 [ cp/* changes propagated from c-* changes in 940218 snapshot ]
7910 * cp/parse.y (attrib): Handle attribute ((section ("string"))).
7911 * cp/decl.c (duplicate_decls): Merge section name into new decl.
7912
7913 Tue Feb 8 09:49:17 1994 Chip Salzenberg (chip@fin.uucp)
7914
7915 [ cp/* changes propagated from c-* changes in 940206 snapshot ]
7916 * cp/typeck.c (signed_or_unsigned_type): Check for any
63718c49 7917 INTEGRAL_TYPE_P not just INTEGER_TYPE.
39211cd5
MS
7918
7919 Mon Dec 6 13:35:31 1993 Norbert Kiesel (norbert@i3.INformatik.rwth-aachen.DE)
7920
7921 * cp/decl.c (finish_enum): Start from 0 when determining precision
7922 for short enums.
7923
7924 Fri Dec 3 17:07:58 1993 Ralph Campbell (ralphc@pyramid.COM)
7925
7926 * cp/parse.y (unary_expr): Look at $1 for tree_code rather than
7927 casting $$.
7928
7929 Wed Nov 17 19:22:09 1993 Chip Salzenberg (chip@fin.uucp)
7930
7931 * cp/typeck.c (build_binary_op_nodefault): Propagate code
7932 from C front-end to optimize unsigned short division.
7933 (build_conditional_expr): Fix bug in "1 ? 42 : (void *) 8".
7934
7935 Wed Nov 17 19:17:18 1993 Chip Salzenberg (chip@fin.uucp)
7936
7937 * cp/call.c (convert_harshness_ansi): Given an (e.g.) char
7938 constant, prefer 'const char &' to 'int'.
7939
7940 Wed Feb 3 13:11:48 1993 Chip Salzenberg (chip@fin.uucp)
7941
7942 * cp/class.c (finish_struct_methods): Handle multiple
7943 constructors in fn_fields list.
7944
7945Fri Apr 22 12:48:10 1994 Kung Hsu (kung@mexican.cygnus.com)
7946
7947 * class.c (finish_struct): use TYPE_DECL_SUPPRESS_DEBUG to flag
7948 types not to be dumped in stabs, like types in #pragma interface.
7949 * decl.c (init_decl_processing): use TYPE_DECL_SUPPRESS_DEBUG to
7950 mark unknown type.
7951
15fa00e9
DE
7952Fri Apr 22 03:27:26 1994 Doug Evans (dje@cygnus.com)
7953
7954 * Language directory reorganization.
7955 See parent makefile.
7956
39211cd5
MS
7957Thu Apr 21 18:27:57 1994 Per Bothner (bothner@kalessin.cygnus.com)
7958
7959 * cp-tree.h (THUNK_DELTA): It is normally negative, so
7960 use signed .i variant of frame_size rather than unsigned .u.
7961 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
7962 use "VT" rather than "vt" due to binary incompatibility.
7963 * class.c (get_vtable_name): Use strlen of VTABLE_NAME_FORMAT,
7964 rather than sizeof, since it is now an expression.
7965 * class.c (modify_one_vtable): Modify to skip initial element
7966 containing a count of the vtable.
7967
7177d104
MS
7968Thu Apr 21 00:09:02 1994 Jason Merrill (jason@deneb.cygnus.com)
7969
7970 * lex.c (check_newline): Force interface_unknown on main input file.
7971
7972 * pt.c (do_pending_expansions): Always emit functions that have been
7973 explicitly instantiated.
7974 (do_function_instantiation): Set DECL_EXPLICITLY_INSTANTIATED.
7975 (do_type_instantiation): Set CLASSTYPE_VTABLE_NEEDS_WRITING and
7976 DECL_EXPLICITLY_INSTANTIATED on all my methods.
7977 * parse.y (explicit_instantiation): Call do_type_instantiation for
7978 types.
7979 * decl2.c (finish_vtable_vardecl): Call import_export_vtable.
7980 * decl.c (start_function): Don't set DECL_EXTERNAL on a function
7981 that has been explicitly instantiated.
7982 * cp-tree.h (DECL_EXPLICITLY_INSTANTIATED): Alias for
7983 DECL_LANG_FLAG_4.
7984 * class.c: Move import_export_vtable to decl2.c, and comment out all
7985 uses.
7986
7987Wed Apr 20 16:51:06 1994 Jason Merrill (jason@deneb.cygnus.com)
7988
7989 * lex.c (process_next_inline): Don't muck with DECL_INLINE.
7990 (do_pending_inlines): Ditto.
7991
6060a796 7992Tue Apr 19 22:25:41 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
7993
7994 Reimplement vtable building, and most vtable pointer setting.
7995 Allows for earier maintenance, easier understandability, and most
7996 importantly, correct semantics.
7997
7998 * class.c (build_vtable): Removed unneeded
7999 SET_BINFO_VTABLE_PATH_MARKED.
8000 * class.c (prepare_fresh_vtable): Ditto. Added argument.
8001 * class.c (modify_vtable_entry): General cleanup.
8002 * class.c (related_vslot, is_normal, modify_other_vtable_entries,
8003 modify_vtable_entries): Removed.
8004 * class.c (add_virtual_function): General cleanup.
8005 * class.c (finish_base_struct): Setup BINFO_VTABLE and
8006 BINFO_VIRTUALS as early as we can, so that modify_all_vtables can
8007 work.
8008 * class.c (finish_vtbls): New routine, mostly from
8009 unmark_finished_struct.
8010 * class.c (overrides): New routine.
8011 * class.c (modify_one_vtable): New routine, mostly from
8012 modify_other_vtable_entries and modify_vtable_entries.
8013 * class.c (modify_all_direct_vtables, modify_all_indirect_vtables,
8014 modify_all_vtables): New routines.
8015 * class.c (finish_struct): Added arguemnt to prepare_fresh_vtable
8016 call. General cleanup on how pending_hard_virtuals are handled.
8017 General cleanup on modifying vtables. Use finish_vtbls, instead of
8018 unmark_finished_struct.
8019 * cp-tree.h (init_vtbl_ptrs, expand_direct_vtbls_init,
8020 get_first_matching_virtual, get_matching_virtual,
8021 expand_vbase_vtables_init, expand_indirect_vtbls_init): Update.
8022 * cvt.c (convert_pointer_to_real): cleanup error message.
8023 * decl.c (grokfndecl): General cleanup.
8024 * decl.c (finish_function): Change init_vtbl_ptrs call to
8025 expand_direct_vtbls_init. Change expand_vbase_vtables_init call to
8026 expand_indirect_vtbls_init.
8027 * init.c (expand_virtual_init): Remove unneeded argument.
8028 * init.c (init_vtbl_ptrs): Rename to expand_direct_vtbls_init, added
8029 two arguments to make more general. Made more general. Now can be
8030 used for vtable pointer initialization from virtual bases.
8031 * init.c (emit_base_init): Change expand_vbase_vtables_init call to
8032 expand_indirect_vtbls_init. Change init_vtbl_ptrs call to
8033 expand_direct_vtbls_init.
8034 * init.c (expand_virtual_init): General cleanup.
8035 * init.c (expand_default_init): Change expand_vbase_vtables_init
8036 call to expand_indirect_vtbls_init.
8037 * init.c (expand_recursive_init_1): Change expand_vbase_vtables_init
8038 call to expand_indirect_vtbls_init.
8039 * init.c (expand_recursive_init): Change expand_vbase_vtables_init
8040 call to expand_indirect_vtbls_init.
8041 * search.c (get_first_matching_virtual): Rename to
8042 get_matching_virtual. General cleanup and remove setting of
8043 DECL_CONTEXT. That is now done in a cleaner way in
8044 modify_vtable_entry and add_virtual_function.
8045 * search.c (expand_vbase_vtables_init): Rename to
8046 expand_indirect_vtbls_init. General cleanup. Use
8047 expand_direct_vtbls_init to do hard work. Ensures that _all_ vtable
8048 pointers from virtual bases are set up.
8049 * search.c (bfs_unmark_finished_struct, unmark_finished_struct):
8050 Removed.
8051
8052 * *.[chy]: Remove support for VTABLE_USES_MASK.
8053
8054Tue Apr 19 12:51:59 1994 Jason Merrill (jason@deneb.cygnus.com)
8055
8056 * cvt.c (convert_to_reference): Use NOP_EXPRs to switch between
8057 reference and pointer types instead of bashing the types directly.
8058
8059 * call.c (build_overload_call_real): Use the TREE_CODE to determine
8060 whether the function is overloaded or not, rather than
8061 TREE_OVERLOADED.
8062 * *: Remove all uses of TREE_OVERLOADED.
8063
8064 * decl.c (grokdeclarator): Only complain about initializing const
8065 fields when -ansi or -pedantic.
8066
8067Tue Apr 19 12:42:42 1994 Doug Evans (dje@canuck.cygnus.com)
8068
8069 * cp-tree.h (THUNK_DELTA): frame_size is now a union.
8070
8071Mon Apr 18 00:17:13 1994 Jason Merrill (jason@deneb.cygnus.com)
8072
8073 Do overloading on a block-by-block basis, not function-by-function.
8074 * decl.c: Lose overloads_to_forget.
8075 (struct binding_level): Add overloads_shadowed field.
8076 (poplevel): Restore overloads_shadowed.
8077 (push_overloaded_decl): Use overloads_shadowed instead of
8078 overloads_to_forget.
8079 (finish_function): Don't look at overloads_to_forget.
8080
8081 Copy enum_overflow logic from c-decl.c.
8082 * decl.c (start_enum): Initialize enum_overflow.
8083 (build_enumerator): Use enum_overflow. Also use current_scope().
8084
8085 * search.c (current_scope): Move Brendan's comment from
8086 build_enumerator here.
8087
8088 * typeck.c (convert_for_assignment): Change warnings to pedwarns for
8089 discarding const/volatile.
8090
8091Sat Apr 16 01:18:21 1994 Jason Merrill (jason@deneb.cygnus.com)
8092
8093 * typeck.c (comp_target_parms): Accept TEMPLATE_TYPE_PARMs on the rhs.
8094 (comp_target_types): Ditto.
8095
8096 * decl.c (lookup_name): Don't unset got_scope here.
8097
8098 * spew.c (yylex): Only replace yylval with the TYPE_NESTED_NAME if
8099 got_scope != NULL_TREE.
8100
8101Fri Apr 15 16:36:33 1994 Jason Merrill (jason@deneb.cygnus.com)
8102
8103 Horrible kludge to prevent templates from being instantiated by
8104 their base classes.
8105 * parse.y (template_instantiate_once): Unset TYPE_BEING_DEFINED
8106 before we get to left_curly.
8107 * pt.c (instantiate_class_template): Set TYPE_BEING_DEFINED.
8108
8109 * error.c (dump_decl): If it's a typedef, print out the name of the
8110 decl, not just the underlying type.
8111
8112 * decl.c (pushdecl): If the old duplicate decl was a TYPE_DECL,
8113 update the IDENTIFIER_TYPE_VALUE of its name.
8114
8115 * decl2.c (finish_file): When processing the initializer for a
8116 static member, pretend that the dummy function is a member of the
8117 same class.
8118
8119Fri Apr 15 15:56:35 1994 Kung Hsu (kung@mexican.cygnus.com)
8120
63718c49
GB
8121 * class.c (build_vtable_entry): revert Apr 4 change.
8122 * decl2.c (mark_vtable_entries): replace pure virtual function
8123 decl with abort's.
7177d104
MS
8124
8125Fri Apr 15 13:49:33 1994 Jason Merrill (jason@deneb.cygnus.com)
8126
8127 * typeck.c (build_conditional_expr): Pedwarn on pointer/integer
8128 mismatch, and don't pedwarn on 0/function pointer mismatch.
8129
8130 * typeck2.c (digest_init): Lose code for special handling of unions.
8131 (process_init_constructor): Since they're handled just fine here.
8132 Pedwarn on excess elements.
8133
8134 * decl2.c (grokfield): Complain about local class method declaration
8135 without definition.
8136
8137Fri Apr 15 13:19:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
8138
8139 * method.c (emit_thunk): Add extern declaration for
8140 current_call_is_indirect (needed for hppa).
8141
8142Thu Apr 14 16:12:31 1994 Jason Merrill (jason@deneb.cygnus.com)
8143
8144 Improve local class support; allow classes in different blocks to
8145 have the same name.
8146 * decl.c (pushtag): Support local classes better.
8147 (pushdecl_nonclass_level): New function for pushing mangled decls of
8148 nested types into the appropriate scope.
8149 (xref_defn_tag): Use pushdecl_nonclass_level instead of
8150 pushdecl_top_level.
8151 (grokfndecl): Don't mess with IDENTIFIER_GLOBAL_VALUE for local
8152 class methods.
8153 * method.c (do_inline_function_hair): Ditto.
8154
8155 * class.c (finish_struct): It is legal for a class with no
8156 constructors to have nonstatic const and reference members.
8157
8158Thu Apr 14 07:15:11 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
8159
8160 * decl.c (push_overloaded_decl): Avoid giving errors about
8161 built-ins, since duplicate_decls will have given warnings/errors
8162 for them.
8163
8164Thu Apr 14 03:45:12 1994 Jason Merrill (jason@deneb.cygnus.com)
8165
8166 * cvt.c (convert_to_reference): Warn about casting pointer type to
8167 reference type when this is probably not what they wanted.
8168
8169Wed Apr 13 13:12:35 1994 Per Bothner (bothner@kalessin.cygnus.com)
8170
8171 * decl.c (finish_decl): Don't mindlessly set TREE_USED for
8172 static consts any more (toplev.c has now been modified to
8173 not emit warnings if they are unused).
8174
8175Wed Apr 13 00:22:35 1994 Jason Merrill (jason@deneb.cygnus.com)
8176
8177 * decl.c (grok_op_properties): If op new/delete get here with
8178 METHOD_TYPEs, do a revert_static_member_fn.
8179
8180 * cp-tree.h (IDENTIFIER_CLASS_TYPE_VALUE): Lose.
8181 * init.c (is_aggr_typedef): Don't look at
8182 IDENTIFIER_CLASS_TYPE_VALUE.
8183 (get_aggr_from_typedef): Ditto.
8184 (get_type_value): Ditto.
8185 * call.c (build_scoped_method_call): Don't rely on overloaded
8186 template names having IDENTIFIER_CLASS_VALUE set.
8187
8188 * parse.y (component_decl_1, fn.def2): Revert rules for
8189 constructors.
8190 (component_decl_1, fn.def2): Use $1 instead of $$, since $$ is being
8191 clobbered.
8192
8193 * decl.c (start_function): Only warn about `void main()' if pedantic
8194 || warn_return_type.
8195
8196Tue Apr 12 02:14:17 1994 Jason Merrill (jason@deneb.cygnus.com)
8197
8198 Clean up overloading of the template name.
8199 * class.c (pushclass): overload the template name whenever pushing
8200 into the scope of a template class, not just if it is
8201 uninstantiated.
8202 (popclass): Correspondingly.
8203 * search.c (push_class_decls): Don't overload_template_name.
8204 * pt.c (overload_template_name): Don't set IDENTIFIER_LOCAL_VALUE or
8205 DECL_CONTEXT on things.
8206 * parse.y (left_curly): Don't overload_template_name.
8207 * class.c (finish_struct): Don't undo_template_name_overload.
8208
8209 * method.c (build_opfncall): Only pass one argument to global op
8210 delete.
8211
8212 * call.c (build_method_call): Use TYPE_VEC_DELETE_TAKES_SIZE to
8213 decide how many arguments to use for vec delete.
8214
8215 * decl.c (grok_op_properties): Be consistent in modifying
8216 current_class_type.
8217 (grokdeclarator): Only complain about function decls with no return
8218 type if we're being pedantic.
8219
8220Mon Apr 11 00:10:53 1994 Jason Merrill (jason@deneb.cygnus.com)
8221
8222 Add support for operator new [] and operator delete [].
8223
8224 * tree.def: Add VEC_NEW_EXPR and VEC_DELETE_EXPR.
8225 * ptree.c (print_lang_type): Indicate vec new/delete.
8226 * parse.y: Support vec new/delete.
8227 * method.c (build_decl_overload): Deal with vec new/delete.
8228 (build_opfncall): Ditto.
8229 * lex.c (init_lex): Set up values of ansi_opname and opname_tab for
8230 vec new/delete. vec new uses "__vn", and vec delete uses "__vd".
8231 * init.c (init_init_processing): Set up BIVN and BIVD.
8232 (do_friend): Don't clean up after mistaken setting of TREE_GETS_NEW,
8233 since it doesn't happen any more.
8234 (build_new): Support vec new. Always call something.
8235 (build_x_delete): Support vec delete.
8236 (build_vec_delete): Lose dtor_dummy argument, add use_global_delete,
8237 and pass it to build_x_delete.
8238 * decl2.c (delete_sanity): Don't change behavior by whether or not
8239 the type has a destructor. Pass use_global_delete to
8240 build_vec_delete.
8241 (coerce_delete_type): Make sure that the type returned has a first
8242 argument of ptr_type_node.
8243 * decl.c (init_decl_processing): Also declare the global vec
8244 new/delete.
8245 (grokdeclarator): Also force vec new/delete to be static.
8246 (grok_op_properties): Note presence of vec new/delete, and play with
8247 their args. If vec delete takes the optional size_t argument, set
8248 TYPE_VEC_DELETE_TAKES_SIZE.
8249 * cp-tree.h (TYPE_GETS_{REG,VEC}_DELETE): New macros to simplify
8250 checking for one delete or the other.
8251 (lang_type): gets_new and gets_delete are now two bits long. The
8252 low bit is for the non-array version. Lose gets_placed_new.
8253 (TYPE_VEC_DELETE_TAKES_SIZE): New macro indicating that the vec
8254 delete defined by this class wants to know how much space it is
8255 deleting.
8256 (TYPE_VEC_NEW_USES_COOKIE): New macro to indicate when vec new must
8257 add a header containing the number of elements in the vector; i.e.
8258 when the elements need to be destroyed or vec delete wants to know
8259 the size.
8260 * class.c (finish_struct_methods): Also check for overloading vec
8261 delete.
8262 * call.c (build_method_call): Also delete second argument for vec
8263 delete.
8264
8265 * decl.c (grokdeclarator): Correct complaints again.
8266 (grokdeclarator): Fix segfault on null declarator.
8267 (decls_match): Also accept redeclaration with no arguments if both
8268 declarations were in C context. Bash TREE_TYPE (newdecl) here.
8269 (duplicate_decls): Instead of here.
8270
8271 * parse.y (nested_name_specifier_1): Lose rules for dealing with
8272 syntax errors nicely, since they break parsing of 'const i;'.
8273
8274 * decl.c (lookup_name): if (got_scope == current_class_type)
8275 val = IDENTIFIER_CLASS_VALUE (name).
8276
8277 * search.c (lookup_nested_tag): Look in enclosing classes, too.
8278
8279 * spew.c (yylex): Only look one character ahead when checking for a
8280 SCOPE.
8281
8282 * lex.c (check_newline): Read first nonwhite char before
8283 incrementing lineno.
8284
8285 * decl.c (grokdeclarator): Don't claim that typedefs are variables
8286 in warning.
8287
8288 * parse.y: Divide up uses of unqualified_id into
8289 notype_unqualified_id and unqualified_id, so that TYPENAME can be
8290 used as an identifier after an object.
8291
8292 * class.c (push_nested_class): Don't push into non-class scope.
8293
8294 * decl.c (grokdeclarator): If an identifier could be a type
8295 conversion operator, but has no associated type, it's not a type
8296 conversion operator.
8297
8298 * pt.c (unify): Check for equality of constants better.
8299
8300 * decl.c (grokdeclarator): Don't complain about access decls.
8301
8302Sun Apr 10 02:39:55 1994 Jason Merrill (jason@deneb.cygnus.com)
8303
8304 * decl.c (grokdeclarator): pedwarn about data definitions without
8305 types here.
8306
8307 * parse.y (datadef): Don't pedwarn about decls without types here,
8308 since that is valid for functions.
8309 (fn.def2, component_decl): Support constructors with declmods again.
8310 (nomods_initdecls): For decls without any mods, so that we don't try
8311 to get declspecs from some arbitrary $0.
8312
8313 * search.c (lookup_field): Use cp_error.
8314
8315 * parse.y (nested_name_specifier_1): Don't check aggr/non-aggr type
8316 here; it breaks destructors for non-aggr types.
8317
8318 * decl.c (lookup_name): Only look for TYPE_DECLs in base classes of
8319 a type being defined, like the comment says.
8320 If got_scope is not an aggregate, just return NULL_TREE.
8321
8322 * pt.c (create_nested_upt): Kung's code for creating types nested
8323 within uninstantiated templates now lives here (it used to live in
8324 hack_more_ids). It needs to be expanded.
8325
8326 * parse.y: Stop calling see_typename so much.
8327
8328 * decl.c (lookup_name): Deal with TTPs and UPTs.
8329
8330 * lex.c (real_yylex): Don't set looking_for_typename just because we
8331 saw a 'new'.
8332 (dont_see_typename): #if 0 out.
8333
8334 * spew.c (yylex): Increment looking_for_typename if the next
8335 character is SCOPE, rather than setting it to 1; this way, the value
8336 from seeing an aggr specifier will not be lost. This kinda relies
8337 on looking_for_typename never being < 0, which is now true.
8338
8339 * parse.y (nested_name_specifier_1): Accept TEMPLATE_TYPE_PARMs,
8340 too.
8341 (named_class_head_sans_basetype): Accept template types, too. Oops.
8342
8343Fri Apr 8 16:39:35 1994 Jason Merrill (jason@deneb.cygnus.com)
8344
8345 * decl2.c (reparse_decl_as_expr1): Handle SCOPE_REFs.
8346
8347 * parse.y: Lose START_DECLARATOR.
8348
8349 * search.c (lookup_nested_tag): New function to scan CLASSTYPE_TAGS
8350 for a class.
8351
8352 * parse.y: Simplify fn.def2 and component_decl. Support 'enum
8353 A::foo' syntax. Catch invalid scopes better.
8354
8355 * parse.y, lex.c: lose TYPENAME_COLON.
8356
8357 * decl2.c (groktypefield): #if 0 out.
8358
8359 * decl.c (lookup_name): If the type denoted by got_scope is
8360 currently being defined, look in CLASSTYPE_TAGS rather than FIELDS.
8361
8362 * class.c (push_nested_class): Don't try to push into
8363 error_mark_node.
8364
8365Fri Apr 8 07:26:36 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
8366
8367 * Makefile.in (stamp-parse): Update count of conflicts to 33.
8368
8369Thu Apr 7 17:47:53 1994 Jason Merrill (jason@deneb.cygnus.com)
8370
8371 A saner implementation of nested types that treats template types
8372 no differently from non-template types. There are still some
8373 shortcomings of our system; most notably, it is difficult to look
8374 for a nested type that is hidden by another name, because of the way
8375 we keep track of hidden types. But this shouldn't be a problem for
8376 just about anyone. Perhaps lookup_field should be fixed up a bit.
8377
8378 * spew.c: Moved handling of nested types/scoping from the lexer
8379 into the parser. Removed variable template_type_seen_before_scope.
8380 Removed functions frob_identifier, hack_more_ids, and various cruft
8381 that was #if 0'd out in the past, reducing the size of the file from
8382 1146 lines to 450 lines. We can't quite do away with spew.c yet,
8383 though; we still need it for do_aggr () and checking for SCOPE after
8384 the current identifier. And setting lastiddecl.
8385
8386 * parse.y: Moved handling of nested types/scoping from the lexer
8387 into the parser, using a new global variable `got_scope'. Reduced
8388 the number of states by 53. Implemented all uses of explicit global
8389 scope. Removed terminals SCOPED_TYPENAME and SCOPED_NAME. Removed
8390 nonterminals tmpl.1, scoped_base_class, id_scope, typename_scope,
8391 scoped_typename. Added nonterminals nested_type,
8392 qualified_type_name, complete_type_name, qualified_id, ptr_to_mem,
8393 nested_name_specifier, global_scope, overqualified_id, type_name.
8394 Changed many others. Added 9 new reduce/reduce conflicts, which are
8395 nested type parallels of 9 that were already in the grammar for
8396 non-nested types. Eight of the now 33 conflicts should be removed
8397 in the process of resolving the late binding between variable and
8398 function decls.
8399
8400 * gxxint.texi (Parser): Update.
8401
8402 * cp-tree.h (IS_AGGR_TYPE_CODE): Add UNINSTANTIATED_P_TYPE.
8403
8404 * lex.h: Add decl for got_scope.
8405
8406 * lex.c (see_typename): Claim to be the lexer when calling
8407 lookup_name.
8408
8409 * decl.c (lookup_name): When called from the lexer, look at
8410 got_scope and looking_at_typename; otherwise don't.
8411
6060a796 8412Thu Apr 7 22:05:47 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8413
8414 31th Cygnus<->FSF merge.
8415
8416Thu Apr 7 17:47:53 1994 Jason Merrill (jason@deneb.cygnus.com)
8417
8418 * decl2.c (mark_vtable_entries): Call this to mark all the
8419 entries in the vtable addressable.
8420 (finish_decl_parsing): Handle SCOPE_REFs.
8421
8422 * decl.c (decls_match): Always call compparms with strict == 1.
8423 Handle the special case of C function redecl here.
8424 (duplicate_decls): Only keep the old type if the new decl takes no
8425 arguments.
8426
8427 * typeck.c (compparms): Also allow t1 to be ... if strict == 0.
8428
6060a796 8429Thu Apr 7 16:17:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8430
8431 * class.c (build_vtable_entry): Fix breakage introduced Apr 5
8432 17:48:41.
8433
8434Wed Apr 6 16:05:10 1994 Per Bothner (bothner@kalessin.cygnus.com)
8435
8436 * init.c (build_virtual_init), search.c (build_vbase_vtables_init),
8437 ch-tree.h: Every place these functions were called, the result was
8438 immediately passed to expand_expr_stmt. Reduce redundancy by
8439 calling expand_expr_init *inside* these functions. These
8440 makes for a simpler interface, and we don't have to build
8441 compound expressions. Hence, rename these function to:
8442 expand_virtual_init and expand_vbase_vtables_init respectively.
8443 * init.c, decl.c: Change callers of these functions.
8444 * init.c, cp-tree.h (expand_virtual_init): Make static.
8445
8446 * decl2.c (finish_file): Check TREE_PUBLIC||TREE_ADDRESSABLE
8447 rather than DECL_SAVED_INSNS before emitting inlines.
8448
8449Wed Apr 6 13:06:39 1994 Jason Merrill (jason@deneb.cygnus.com)
8450
8451 * spew.c (init_spew): #if 0 out stuff used by arbitrate_lookup.
8452
8453 * decl.c (duplicate_decls): If this is a new declaration of an
8454 extern "C" function, keep the type (for the argtypes).
8455 (redeclaration_error_message): Don't check DECL_LANGUAGE here.
8456 (decls_match): Call compparms with a value of strict dependent on
8457 the value of strict_prototypes for DECL_LANGUAGE (oldecl).
8458
8459 * typeck.c (compparms): ... is only equivalent to non-promoting
8460 parms if we're not being strict.
8461
8462 * parse.y (empty_parms): Don't check flag_ansi || pedantic here.
8463
8464 * decl.c (init_decl_processing): if (flag_ansi || pedantic)
8465 strict_prototypes_lang_c = strict_prototypes_lang_cplusplus;
8466
8467 * decl2.c (grok_function_init): Don't set DECL_INITIAL on pure
8468 virtuals.
8469
8470Tue Apr 5 17:48:41 1994 Per Bothner (bothner@kalessin.cygnus.com)
8471
8472 Support for implementing vtables with thunks.
8473 * tree.def (THUNK_DECL): New TREE_CODE.
8474 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY), tree.c
8475 (fnaddr_from_vtable_entry): Handle flag_vtable_thunks case.
8476 * cp-tree.h (memptr_type): New variable.
8477 * class.c (build_vtable_entry): Build thunk if necessary.
8478 * class.c (build_vfn_ref): If using thunks, don't need
8479 to add delta field from vtable (there is none!).
8480 * decl.c: Add memptr_type as well as vtable_entry_type.
8481 If using thunks, the latter is just ptr_type_node.
8482 * gc.c, typeck.c: Use memptr_typeChange, not vtable_entry_type.
8483 * decl2.c (finish_vtable_vardecl): Handle thunks.
8484 * expr.c (cplus_expand_expr): Support THUNK_DECL.
8485
8486 * decl.c (grokdeclarator): Set DECL_THIS_EXTERN if "extern".
8487 * decl.c (start_function): Set current_extern_inline based on
8488 DECL_THIS_EXTERN, not TREE_PUBLIC.
8489 * decl.c (finish_function): Call mark_inline_for_output if needed,
8490
8491 Improve intelligence about when to emit inlines.
8492 * cp-tree.h (lang_decl_flags): New field saved_inline.
8493 * cp-tree.h (DECL_SAVED_INLINE): New macro.
8494 * class.c (add_virtual_function): Don't set TREE_ADDRESSABLE.
8495 * decl.h, decl.c (pending_addressable_inlines): Removed.
8496 * decl2.c (pending_addressable_inlines): Renamed to saved_inlines.
8497 * decl2.c (mark_inline_for_output): Do nothing if
8498 DECL_SAVED_INLINE; otherwise set it (and add to saved_inlines list).
8499 * decl2.c (finish_vtable_vardecl): SET_CLASSTYPE_INTERFACE_KNOWN
8500 and set CLASSTYPE_INTERFACE_ONLY if there is a non-inline virtual.
8501 * decl2.c (finish_file): Writing out inlines later, so we can
8502 also handle the ones needed for vtbales.
8503 * decl2.c (write_vtable_entries, finish_vtable_typedecl): Removed.
8504
8505 * cp-tree.h, class.c, decl2.c, search.c: Remove -fvtable-hack
8506 and flag_vtable_hack. Use -fvtable-thunks and flag_vtable_thunks
8507 instead. (The rationale is that these optimizations both break binary
8508 compatibility, but should become the default in a future release.)
8509
6060a796 8510Wed Apr 6 10:53:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8511
8512 * class.c (modify_vtable_entries): Never reset the DECL_CONTEXT
8513 of a fndecl, as we might not be from that vfield.
8514
8515Tue Apr 5 17:43:35 1994 Kung Hsu (kung@mexican.cygnus.com)
8516
8517 * class.c (add_virtual_function): fix bug for pure virtual, so
8518 that DECL_VINDEX of the dummy decl copied won't be error.
8519 (see also Apr 4 change)
8520
8521Tue Apr 5 17:23:45 1994 Per Bothner (bothner@kalessin.cygnus.com)
8522
8523 * typeck.c (c_expand_return): Before checking that we're not
8524 returning the address of a local, make sure it's a VAR_DECL.
8525 (And don't worry about it being a TREE_LIST.)
8526
8527Tue Apr 5 13:26:42 1994 Jason Merrill (jason@deneb.cygnus.com)
8528
8529 * parse.y (YYDEBUG): Always define.
8530 * lex.c (YYDEBUG): Ditto.
8531
8532Mon Apr 4 11:28:17 1994 Kung Hsu (kung@mexican.cygnus.com)
8533
8534 * class.c (finish_struct): backup out the change below, put the
8535 new change for the same purpose. The change below breaks code.
8536
8537 * class.c (finish_struct): if pure virtual, copy node and make
8538 RTL point to abort, then put in virtual table.
8539 * decl2.c (grok_function_iit): reinstate Mar 31 change.
8540
8541Sat Apr 2 03:12:58 1994 Jason Merrill (jason@deneb.cygnus.com)
8542
8543 * init.c (build_new): pedwarn about newing const and volatile
8544 types.
8545
8546 * tree.c (get_identifier_list): Only do the special handling
8547 thing if we're dealing with the main variant of the record type.
8548
8549 * cvt.c (convert_to_reference): When converting between
8550 compatible reference types, use the pointer conversion machinery.
8551 Don't just blindly overwrite the old type.
8552
8553Fri Apr 1 17:14:42 1994 Jason Merrill (jason@deneb.cygnus.com)
8554
8555 * call.c (build_method_call): When looking at global functions,
8556 be sure to use instance_ptr for the first argument, not some version
8557 of it that has been cast to a base class. Also do this before
8558 comparing candidates.
8559
8560Thu Mar 31 19:50:35 1994 Jason Merrill (jason@deneb.cygnus.com)
8561
8562 * call.c (build_method_call): Constructors can be called for
8563 const objects.
8564
8565Thu Mar 31 16:20:16 1994 Kung Hsu (kung@mexican.cygnus.com)
8566
8567 * decl2.c (grok_func_init): do not abort as rtl for pur virtual
8568 fucntions. They can be defined somewhere else.
8569
8570Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
8571
8572 * decl.c (init_decl_processing): Declare __builtin_return_address
8573 and __builtin_frame_address for C++ as well.
8574
6060a796 8575Thu Mar 31 12:35:49 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8576
8577 * typeck2.c (store_init_value): Integral constant variables are
8578 always constant, even when doing -fpic.
8579
8580Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
8581
8582 * decl.c (redeclaration_error_message): Pass the types to
8583 comptypes.
8584
6060a796 8585Wed Mar 30 21:29:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8586
8587 Cures incorrect errors about pure virtuals in a class, when they
8588 have been overridden in a derived class.
8589
8590 * search.c (get_abstract_virtuals): Reimplement.
8591 * search.c (get_abstract_virtuals_1): New routine.
8592
8593Wed Mar 30 14:10:04 1994 Jason Merrill (jason@deneb.cygnus.com)
8594
8595 * pt.c (push_template_decls): Make the pushed level pseudo
8596 global.
8597
8598 * parse.y (extdefs): Don't pop everything if the current binding
8599 level is pseudo_global.
8600
8601 * decl.c (pop_everything): Stop on reaching a pseudo-global
8602 binding level.
8603
8604 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Change to more reliable test.
8605
8606 * decl.c (duplicate_decls): Only copy DECL_SOURCE_{FILE_LINE} if
8607 the old decl actually had an initializer.
8608
8609 * {various}: Clean up gcc -W complaints.
8610
8611 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Currently defined to be
8612 (DECL_CONTEXT (NODE) != NULL_TREE).
8613
8614 * parse.y (lang_extdef): Call pop_everything if necessary.
8615
8616 * decl.c (pop_everything): New function for popping binding
8617 levels left over after a syntax error.
8618 (pushdecl): Use DECL_FUNCTION_MEMBER_P to decide whether or not
8619 a function is a member.
8620
6060a796 8621Wed Mar 30 14:20:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8622
8623 Cures calling a more base base class function, when a more derived
8624 base class member should be called in some MI situations.
8625
8626 * search.c (make_binfo): Use more the more specialized base
63718c49
GB
8627 binfos from the binfo given as the second argument to make_binfo,
8628 instead of the unspecialized ones from the TYPE_BINFO.
7177d104
MS
8629 * class.c (finish_base_struct): Ditto, update callers.
8630 * search.c (dfs_get_vbase_types): Ditto.
8631 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Ditto.
8632 * decl.c (xref_tag): Use NULL_TREE instead of 0.
8633 * lex.c (make_lang_type): Ditto.
8634
8635Wed Mar 30 14:10:04 1994 Jason Merrill (jason@deneb.cygnus.com)
8636
8637 * decl.c (pushdecl): If pushing a C-linkage function, only do a
8638 push_overloaded_decl.
8639 (duplicate_decls): Standard overloading does not shadow built-ins.
8640
8641Tue Mar 29 00:54:18 1994 Jason Merrill (jason@deneb.cygnus.com)
8642
8643 * pt.c (end_template_decl): Don't call push_overloaded_decl.
8644
8645 * init.c (do_friend): Don't call push_overloaded_decl.
8646
8647 * decl.c (pushdecl): Call push_overloaded_decl for functions and
8648 function templates.
8649 (duplicate_decls): functions and function templates are not
8650 duplicates, but don't complain about calling this function to
8651 compare them.
8652 (push_overloaded_decl): Don't deal with linkage. Call
8653 duplicate_decls.
8654 (redeclaration_error_message): Deal with linkage.
8655
8656 * decl.c (start_function): If push_overloaded_decl returns an
8657 older version of the function, deal with it.
8658
8659 * decl.c (start_function): Be sure only to push_overloaded_decl
8660 for non-members.
8661
8662 * decl.c (grokfndecl): Put back clearing of DECL_CHAIN for
8663 methods.
8664 (start_function): Lose broken and redundant code for checking old
8665 decl.
8666
8667 * init.c (add_friend): Give line numbers of both friend decls
8668 when warning about re-friending.
8669
8670 * pt.c (tsubst): Use comptypes rather than == to compare the
8671 types of the method as declared and as defined, since default
8672 parameters may be different.
8673
8674 * call.c (build_method_call): Use brendan's candidate printing
8675 routine.
8676
8677 * decl.c (start_method): Methods defined in the class body are
8678 inline whether or not it's a template class.
8679
8680Mon Mar 28 16:39:26 1994 Jason Merrill (jason@deneb.cygnus.com)
8681
8682 * parse.y (initdcl0): Add "extern" to current_declspecs if
8683 have_extern_spec && ! used_extern_spcec.
8684
8685 * tree.c (really_overloaded_fn): A fn with more than one
8686 overload.
8687
8688 * pt.c (end_template_decl): Use really_overloaded_fn.
8689
8690 * decl.c (duplicate_decls): When smashing a decl into a previous
8691 definition, keep the old file and line.
8692 Don't deal with overloaded functions.
8693 Lose old code for checking arg types of functions.
8694 Check for overloaded C functions.
8695 (pushdecl): Deal with overloaded functions.
8696 (start_decl): Expect pushdecl to return an appropriate function decl.
8697 (start_function): Ditto.
8698 (push_overloaded_decl): Don't check for overloaded C functions.
8699
8700 * *.c: Stop using DECL_OVERLOADED, it being archaic.
8701 TREE_OVERLOADED should probably go, too.
8702
8703Mon Mar 28 14:00:45 1994 Ron Guilmette (rfg@netcom.com)
8704
8705 * typeck.c (comp_target_types): Call comp_target_parms with
8706 strict == 1.
8707
8708Sun Mar 27 00:07:45 1994 Jason Merrill (jason@deneb.cygnus.com)
8709
8710 * parse.y (empty_parms): Don't parse () as (...) in extern "C"
8711 sections if we're compiling with -ansi or -pedantic.
8712
8713 * decl.c (decls_match): Don't treat (int) and (int&) as matching.
8714
8715 * decl2.c (grokfield): Don't pedwarn twice about initializing
8716 field.
8717
8718 * decl.c (push_overloaded_decl): Warn about shadowing
8719 constructor.
8720 (redeclaration_error_message): Don't allow 'int a; int a;'
8721
8722 * cvt.c (build_up_reference): Only check for valid upcast if
8723 LOOKUP_PROTECT is set, not just any flag.
8724
8725Fri Mar 25 01:22:31 1994 Jason Merrill (jason@deneb.cygnus.com)
8726
8727 * lex.c (check_newline): When we see a #pragma implementation,
8728 also set it for the main input file.
8729
8730 * init.c (build_new): Convert array size argument to size_t.
8731
8732 * parse.y (primary): If we're doing a parenthesized type-id, call
8733 groktypename before passing it to build_new.
8734
8735 * call.c (build_method_call): Deal properly with const and
8736 volatile for instances of reference type.
8737
8738 * decl.c (store_return_init): Change 'if (pedantic) error' to 'if
8739 (pedantic) pedwarn'.
8740
8741 * decl.c (grokdeclarator): Don't complain about putting `static'
8742 and `inline' on template function decls.
8743
8744Thu Mar 24 23:18:19 1994 Jason Merrill (jason@deneb.cygnus.com)
8745
8746 * call.c (build_method_call): Preserve const & volatile on
8747 `this'.
8748
6060a796 8749Thu Mar 24 16:21:52 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8750
8751 * init.c (build_new, build_vec_delete): Use global new and delete
8752 for arrays.
8753 * decl2.c (delete_sanity): Ditto.
8754
8755Thu Mar 24 02:10:46 1994 Jason Merrill (jason@deneb.cygnus.com)
8756
8757 * cvt.c (convert_to_reference): If i is an lvalue,
8758 (int &)i -> *(int*)&i, as per 5.2.8p9 of the latest WP.
8759 (convert_force): Call convert_to_reference with LOOKUP_COMPLAIN.
8760
8761Wed Mar 23 17:45:37 1994 Jason Merrill (jason@deneb.cygnus.com)
8762
8763 * decl.c (duplicate_decls): Also propagate DECL_TEMPLATE_MEMBERS
8764 and DECL_TEMPLATE_INSTANTIATIONS.
8765
8766 * init.c (build_new): Handle array typedefs properly.
8767
6060a796 8768Wed Mar 23 18:23:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8769
8770 30th Cygnus<->FSF merge.
8771
6060a796 8772Wed Mar 23 00:46:24 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8773
8774 * class.c (modify_vtable_entries): Avoid running off the end of the
8775 virtuals list when processing a virtual destructor.
8776 * class.c (get_vtable_entry): Ditto.
8777
8778Wed Mar 23 00:23:59 1994 Jason Merrill (jason@deneb.cygnus.com)
8779
8780 * decl.c (duplicate_decls): If two template decls don't match,
8781 just return 0.
8782
8783Tue Mar 22 23:49:41 1994 Jason Merrill (jason@deneb.cygnus.com)
8784
8785 * typeck.c (convert_for_assignment): Don't pedwarn about
8786 converting function pointer to void *.
8787
6060a796 8788Tue Mar 22 22:23:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8789
8790 Major revamp of pointer to member functions. Cures major
8791 nonfunctionality when used in casts, and MI situations.
8792
8793 * cvt.c (convert_force): Update call site of build_ptrmemfunc.
8794 * typeck.c (convert_for_assignment): Ditto.
8795 * typeck2.c (digest_init): Ditto.
8796 * typeck2.c (process_init_constructor): Simplify by moving code into
8797 digest_init.
8798 * typeck2.c (digest_init): Do default_conversions on init value, if
8799 we are processing pointer to member functions.
8800 * class.c (get_vfield_offset): Now non-static. Convert bit offset
8801 into byte offset.
8802 * cp-tree.h (get_vfield_offset): Ditto.
8803 * typeck.c (get_member_function_from_ptrfunc): Convert down to right
8804 instance, before fetching vtable pointer.
8805 * typeck.c (get_delta_difference): New routine.
8806 * typeck.c (build_ptrmemfunc): Revamp to handle casting better, also
8807 get vtable pointer out of right subobject.
8808
6060a796 8809Tue Mar 22 17:56:48 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8810
8811 * search.c (get_binfo): Return NULL instead of aborting, when
8812 passed a UNION_TYPE.
8813
8814Tue Mar 22 12:44:54 1994 Jason Merrill (jason@deneb.cygnus.com)
8815
8816 These patches implement handling of redefinition/redeclaration of
8817 templates.
8818
8819 * typeck.c (comptypes): Simplify. All TEMPLATE_TYPE_PARMs are
8820 considered compatible.
8821
8822 * parse.y (template_def): Pass defn argument to end_template_decl.
8823
8824 * pt.c (end_template_decl): Add defn argument. Check for
8825 redefinition. Simplify.
8826
8827 * error.c (OB_UNPUT): New macro, to remove mistakes.
8828 (aggr_variety): Subroutine of dump_aggr_type.
8829
8830 * decl.c (decls_match): Support templates.
8831 (duplicate_decls): No longer static. Don't try to lay out template
8832 decls.
8833 (pushdecl): Simplify.
8834
8835 * cp-tree.h (DECL_TEMPLATE_MEMBERS): Use DECL_SIZE instead of
8836 DECL_INITIAL.
8837
8838Mon Mar 21 11:46:55 1994 Jason Merrill (jason@deneb.cygnus.com)
8839
8840 * error.c (dump_decl): Support class template decls.
8841 (dump_type): Don't adorn template type parms.
8842
8843 * decl.c (duplicate_decls): Save DECL_TEMPLATE_INFO from old decl
8844 if it was a definition.
8845 (redeclaration_error_message): Do the cp_error thang, and reject
8846 redefinition of templates.
8847
8848Mon Mar 21 19:36:06 1994 Per Bothner (bothner@kalessin.cygnus.com)
8849
8850 * decl.c (grokdeclarator): Set TREE_PUBLIC for METHOD_TYPE
8851 in FIELD context, when appropriate. Also,
8852 CLASSTYPE_INTERFACE_ONLY is irrelevant to setting TREE_PUBLIC.
8853 Also, simplify check for bogus return specifiers.
8854
8855Mon Mar 21 11:46:55 1994 Jason Merrill (jason@deneb.cygnus.com)
8856
8857 * parse.y (after_type_declarator1): Expand type_quals.
8858 (notype_declarator1): Ditto.
8859 (absdcl1): Ditto.
8860
8861Sat Mar 19 01:05:17 1994 Jason Merrill (jason@deneb.cygnus.com)
8862
8863 * decl.c (grokdeclarator): Treat class-local typedefs like static
8864 members; i.e. 'typedef int f();' means that f is a function type,
8865 not a method type.
8866
8867 * parse.y (decl): Change direct_* back to *.
8868 (type_id): Change direct_abstract_declarator to absdcl.
8869 (direct_declarator, direct_initdecls, direct_initdcl0): Remove again.
8870
8871Fri Mar 18 12:47:59 1994 Jason Merrill (jason@deneb.cygnus.com)
8872
8873 These two patches fix crashes on instantiating a template inside a
8874 function with C linkage or containing labels.
8875
8876 * class.c (current_lang_stacksize): No longer static.
8877
8878 * decl.c (struct saved_scope): Add lang_base, lang_stack,
8879 lang_name, lang_stacksize, and named_labels.
8880 (push_to_top_level): Save them.
8881 (pop_from_top_level): Restore them.
8882
8883 * gxxint.texi (Parser): Update.
8884
8885 These two patches finish moving the task of expr/declarator
8886 ambiguity resolution from the lexer to the parser, and add one more
8887 r/r conflict. START_DECLARATOR can now be nuked.
8888
8889 * parse.y (decl): Add "direct_" in typespec X rules.
8890 (direct_declarator): New nonterminal for
8891 direct_after_type_declarator and direct_notype_declarator.
8892 (direct_initdecls): Like initdecls, but uses direct_initdcl0.
8893 (direct_initdcl0): Like initdcl0, but uses direct_declarator.
8894 (named_parm): Add typespec direct_declarator rule.
8895
8896 * spew.c (yylex): #if 0 out START_DECLARATOR insertion.
8897
8898 These two patches disable some excessive cleverness on the part of
8899 g++; a non-class declaration always hides a class declaration in the
8900 same scope, and g++ was trying to unhide it depending on the
8901 enclosing expression.
8902
8903 * spew.c (arbitrate_lookup): #if 0 out.
8904
8905 * decl.c (lookup_name): Never call arbitrate_lookup.
8906
8907 * parse.y (complex_notype_declarator1): Add '*'
8908 complex_notype_declarator1 and '&' complex_notype_declarator1 rules.
8909
8910 * parse.y (complex_direct_notype_declarator): Restore id_scope
8911 see_typename TYPENAME rule, remove all other rules beginning with
8912 those tokens.
8913 (notype_unqualified_id): Add '~' see_typename IDENTIFIER rule.
8914
8915Thu Mar 17 17:30:01 1994 Jason Merrill (jason@deneb.cygnus.com)
8916
8917 These changes fix the compiler's handling of the functional cast/
8918 object declaration ambiguities in section 6.8 of the ARM. They also
8919 add 11 reduce/reduce conflicts. Sigh.
8920
8921 * parse.y: Add precedence decls for OPERATOR and '~'.
8922 (notype_unqualified_id): New nonterminal, encompasses all of the
8923 ANSI unqualified-id nonterminal except TYPENAMEs.
8924 (expr_or_declarator): New nonterminal to delay parsing of code like
8925 `int (*a)'.
8926 (primary): Use notype_unqualified_id.
8927 (decl): Add typespec initdecls ';' and typespec declarator ';'
8928 rules.
8929 (initdcl0): Deal with the above.
8930 (complex_notype_declarator1): A notype_declarator that is not also
8931 an expr_or_declarator.
8932 (complex_direct_notype_declarator): A direct_notype_declarator that
8933 doesn't conflict with expr_or_declarator. Use
8934 notype_unqualified_id. Remove id_scope see_typename TYPENAME rule.
8935 (functional_cast): New nonterminal, for the three functional cast
8936 rules. So that they can be moved after
8937 complex_direct_notype_declarator.
8938 (see_typename): Don't accept type_quals any more.
8939
8940 * decl2.c (reparse_decl_as_expr): New function to deal with parse
8941 nodes for code like `int (*a)++;'.
8942 (reparse_decl_as_expr1): Recursive subroutine of the above.
8943 (finish_decl_parsing): New function to deal with parse nodes for
8944 code like `int (*a);'. See the difference?
8945
6060a796 8946Thu Mar 17 12:16:10 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8947
8948 These changes break binary compatibility in code with classes
8949 that use virtual bases.
8950
8951 * search.c (dfs_get_vbase_types): Simplify and correct to make
8952 sure virtual bases are initialized in dfs ordering.
8953 * search.c (get_vbase_types): Simplify and make readable.
8954
8955Thu Mar 17 12:01:10 1994 Jason Merrill (jason@deneb.cygnus.com)
8956
8957 * parse.y: s/ typename / type_id /g
8958
8959Wed Mar 16 17:42:52 1994 Kung Hsu (kung@mexican.cygnus.com)
8960
8961 * parse.y (typespec): add SCOPE TYPENAME for global scoped
8962 type. e.g. ::B x.
8963
8964 * decl.c (complete_array_type): fix a bug that in -pendantic
8965 mode even there's no initializer, it will continue to build
8966 default index.
8967
8968Wed Mar 16 17:43:07 1994 Jason Merrill (jason@deneb.cygnus.com)
8969
8970 * parse.y (direct_notype_declarator): Add PTYPENAME rule, remove
8971 all of the scoped PTYPENAME rules.
8972
6060a796 8973Wed Mar 16 16:39:02 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8974
8975 * init.c (build_offset_ref): The value of A::typedef_name is
8976 always the TYPE_DECL, and never an error.
8977
8978Tue Mar 15 20:02:35 1994 Jason Merrill (jason@deneb.cygnus.com)
8979
8980 * search.c (get_base_distance_recursive): Two binfos can only
8981 represent the same object if they are both via_virtual.
8982
8983 * class.c (finish_base_struct): Check vbases for ambiguity, too.
8984
8985 * search.c (get_vbase_types): Accept binfo argument, too.
8986
8987Tue Mar 15 19:22:05 1994 Kung Hsu (kung@mexican.cygnus.com)
8988
8989 * decl.c (complete_array_type): complete TYPE_DOMAIN of the
8990 initializer also, because back-end requires it.
8991
8992Tue Mar 15 15:33:31 1994 Jason Merrill (jason@deneb.cygnus.com)
8993
8994 * error.c (dump_expr): Support member functions (which show up as
8995 OFFSET_REFs).
8996
6060a796 8997Mon Mar 14 16:24:36 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
8998
8999 * init.c (build_new): Set the return type of multidimensional
9000 news correctly.
9001
9002Fri Mar 11 15:35:39 1994 Kung Hsu (kung@mexican.cygnus.com)
9003
9004 * call.c (build_method_call): if basetype not equal to type
9005 of the instance, use the type of the instance in building
9006 destructor.
9007
9008Thu Mar 10 17:07:10 1994 Kung Hsu (kung@mexican.cygnus.com)
9009
9010 * parse.y (direct_notype_declarator): add push_nested_type for
9011 'template_type SCOPED_NAME' rule.
9012
9013Tue Mar 8 00:19:58 1994 Jason Merrill (jason@deneb.cygnus.com)
9014
9015 * parse.y (parm): Add typed_declspec1 {absdcl, epsilon} rules.
9016
9017Sat Mar 5 04:47:48 1994 Jason Merrill (jason@deneb.cygnus.com)
9018
9019 * parse.y (regcast_or_absdcl): New nonterminal to implement late
9020 reduction of constructs like `int ((int)(int)(int))'.
9021 (cast_expr): Use it.
9022 (sub_cast_expr): Everything that can come after a cast.
9023 (typed_declspecs1): typed_declspecs that are not typed_typespecs.
9024 (direct_after_type_declarator): Lose PAREN_STAR_PAREN rule.
9025 (direct_abstract_declarator): Replace '(' parmlist ')' rule with
9026 '(' complex_parmlist ')' and regcast_or_absdcl.
9027 (parmlist): Split
9028 (complex_parmlist): Parmlists that are not also typenames.
9029 (parms_comma): Enabler.
9030 (named_parm): A parm that is not also a typename. Use declarator
9031 rather than dont_see_typename abs_or_notype_decl. Expand
9032 typed_declspecs inline.
9033 (abs_or_notype_decl): Lose.
9034 (dont_see_typename): Comment out.
9035 (bad_parm): Break out abs_or_notype_decl into two rules.
9036
9037Fri Mar 4 18:22:39 1994 Jason Merrill (jason@deneb.cygnus.com)
9038
9039 * decl2.c (reparse_decl_as_casts): New function to change parse
9040 nodes for `(int)(int)(int)' from "function taking int and returning
9041 function taking int and returning function taking int" to "... cast
9042 to int, cast to int, cast to int".
9043
9044 * decl2.c (reparse_decl_as_expr): Recursive function to change
9045 parse nodes for `A()()' from "function returning function returning
9046 A" to "A().operator()".
9047
9048 * parse.y (primary): Replace `typespec LEFT_RIGHT' rule with
9049 `typespec fcast_or_absdcl' rule.
9050 (fcast_or_absdcl): New nonterminal to implement late reduction of
9051 constructs like `A()()()()'.
9052 (typename): Replace `typespec absdcl1' rule with
9053 `typespec direct_abstract_declarator' rule.
9054 (direct_abstract_declarator): Replace `LEFT_RIGHT type_quals' rule
9055 with `fcast_or_absdcl type_quals' rule.
9056
6060a796 9057Fri Mar 4 16:18:03 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9058
9059 * tree.c (lvalue_p): Improve OFFSET_REF handling, so that it
9060 matches Section 5.5.
9061
9062Fri Mar 4 14:01:59 1994 Jason Merrill (jason@deneb.cygnus.com)
9063
9064 * error.c (dump_type_prefix): Don't print basetype twice for
9065 pmfs.
9066
6060a796 9067Fri Mar 4 13:24:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9068
9069 * typeck.c (convert_arguments): Handle setHandler(A::handlerFn)
9070 so that it is like setHandler(&A::handlerFn). Cures an `invalid
9071 lvalue in unary `&''.
9072
9073Fri Mar 4 11:15:59 1994 Jason Merrill (jason@deneb.cygnus.com)
9074
9075 * gxxint.texi (Copying Objects): New section discussing default
9076 op= problems with virtual inheritance.
9077
9078 * decl2.c (grokoptypename): Just does grokdeclarator and
9079 build_typename_overload, since the parser can't call grokdeclarator
9080 directly.
9081
9082 * method.c (build_typename_overload): Set IDENTIFIER_GLOBAL_VALUE
9083 and TREE_TYPE on generated identifiers.
9084
9085 * decl.c (grokdeclarator): Don't deal with TYPE_EXPRs anymore.
9086
9087 * parse.y (parm): Convert `const char *' to `__opPCc' here.
9088
9089 * error.c (dump_decl): Say sorry rather than my_friendly_aborting
9090 if we can't figure out what to do.
9091 (dump_type*): Ditto.
9092
9093 * typeck2.c (build_m_component_ref): 'component' is an expr, not
9094 a decl. Also move the IS_AGGR_TYPE check after the stripping of
9095 REFERENCE_TYPE.
9096
6060a796 9097Fri Mar 4 04:46:05 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9098
9099 * call.c (build_method_call): Handle b->setHandler(A::handlerFn)
9100 so that it is like b->setHandler(&A::handlerFn). Cures an `invalid
9101 lvalue in unary `&''.
9102
9103Thu Mar 3 12:38:15 1994 Jason Merrill (jason@deneb.cygnus.com)
9104
9105 * parse.y: Add precedence specification for START_DECLARATOR.
9106 (type_quals): Move before primary.
9107 (typename): Move before typed_declspecs, add 'typespec absdcl1' rule.
9108
9109 * decl2.c (grokoptypename): Lose.
9110
9111 * decl.c (grokdeclarator): Parse TYPE_EXPRs in the initial scan,
9112 rather than waiting until later.
9113
9114Wed Mar 2 14:12:23 1994 Jason Merrill (jason@deneb.cygnus.com)
9115
9116 * parse.y (unary_expr): Use 'typename' in 'new' rules, rather
9117 than expanding it inline.
9118 (typename): Expand empty option of (former) absdcl inline.
9119 (abs_or_notype_decl): Ditto.
9120 (absdcl): Lose empty rule.
9121 (conversion_declarator): New nonterminal for 'typename' of 'operator
9122 typename'.
9123 (operator_name): Use it instead of absdcl.
9124
9125 * parse.y: Add precedence declarations for SCOPED_TYPENAME,
9126 TYPEOF, and SIGOF.
9127 (typed_declspecs): Accept typed_typespecs, rather than typespec
9128 directly. Add rules with reserved_typespecquals.
9129 (reserved_declspecs): Don't accept typespecqual_reserved at the
9130 beginning of the list. The typed_declspecs rule will deal with this
9131 omission.
9132 (declmods): Accept nonempty_type_quals, rather than TYPE_QUAL
9133 directly.
9134
9135 * parse.y (direct_notype_declarator,
9136 direct_after_type_declarator, direct_abstract_declarator): Split up
9137 the declarator1 nonterminals to match the draft standard and avoid
9138 ambiguities.
9139 (new_type_id, new_declarator, direct_new_declarator,
9140 new_member_declarator): New nonterminals to implement the subset of
9141 'typename' allowed in new expressions.
9142 (unary_expr): Use new_type_id instead of typename.
9143 (after_type_declarator1, absdcl1): Fix semantics of member pointers.
9144 (abs_member_declarator, after_type_member_declarator): Lose.
9145
9146 * parse.y (absdcl1): Don't require parens around
9147 abs_member_declarator.
9148 (abs_member_declarator): Lose see_typename from rules.
9149 (after_type_member_declarator): Ditto.
9150
9151 * tree.c (get_identifier_list): New function, containing code
9152 previously duplicated in get_decl_list and list_hash_lookup_or_cons.
9153 (get_decl_list): Use it.
9154 (list_hash_lookup_or_cons): Ditto.
9155
9156 * parse.y (typed_declspecs, declmods): It's not necessary to hash
9157 the declspecs on class_obstack, so don't. This way typed_typespecs
9158 can reduce to typed_declspecs.
9159
9160Wed Mar 2 14:29:18 1994 Jason Merrill (jason@cygnus.com)
9161
9162 * cvt.c (build_up_reference): If we aren't checking visibility,
9163 also allow base->derived conversions.
9164
9165Mon Feb 28 15:14:29 1994 Per Bothner (bothner@kalessin.cygnus.com)
9166
9167 * typeck.c (build_c_cast): Remove bogus hack when converting
9168 to a reference type.
9169
9170 * cp-tree.h (lang_decl::vbase_init_list, DECL_VBASE_INIT_LIST):
9171 Removed, not used.
9172 (lang_stype::methods, lang_decl::next_method): New fields.
9173 (CLASSTYPE_METHODS, DECL_NEXT_METHOD): New macros.
9174 * decl.c (duplicate_decls): Preserve DECL_NEXT_METHOD.
9175
9176 * cp-tree.h, decl2.c (flag_vtable_hack): New flag.
9177 * decl2.c (finish_vtable_vardecl): If flag_vtable_hack,
9178 and !CLASSTYPE_INTERFACE_KNOWN, try to use the presence of
9179 a non-inline virtual function to control emitting of vtables.
9180 * class.c (finish_struct): Build CLASSTYPE_METHODS list.
9181 * search.c (build_vbase_vtables_init): Don't assemble_external
9182 (yet) if flag_vtable_hack.
9183 * class.c (build_vfn_ref): Ditto.
9184
9185Mon Feb 28 14:54:13 1994 Jason Merrill (jason@deneb.cygnus.com)
9186
9187 * parse.y (component_decl): Don't include "typed_declspecs
9188 declarator ';'" speedup, since it breaks enums.
9189
9190Fri Feb 25 15:43:44 1994 Per Bothner (bothner@kalessin.cygnus.com)
9191
9192 * class.c (finish_struct): Minor optimization for building
9193 fn_fields list.
9194
9195Fri Feb 25 15:23:42 1994 Jason Merrill (jason@deneb.cygnus.com)
9196
9197 * decl.c (start_function): Fix detection of function overloading.
9198
6060a796 9199Thu Feb 24 22:26:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9200
9201 * lex.c (check_newline): #pragma interface can take a string
9202 argument, just like #pragma implementation. #pragma implementation
9203 checks for garbage on the line, line #pragma interface does. Main
9204 input files do not auto implement like named files, #pragma
9205 implementation must be used explicitly.
9206
9207Thu Feb 24 17:09:01 1994 Jason Merrill (jason@deneb.cygnus.com)
9208
9209 * parse.y (components): Handle list of one again.
9210 (notype_components): Ditto.
9211 (after_type_declarator1): Take maybe_raises out again.
9212
9213 * gxxint.texi (Parser): Document additional r/r conflict.
9214
9215Wed Feb 23 14:42:55 1994 Jason Merrill (jason@deneb.cygnus.com)
9216
9217 * gxxint.texi (Parser): Add node.
9218
9219 * Makefile.in (stamp-parse): Update expected conflict count.
9220
9221 * parse.y (various): Replace "declmods declarator" with "declmods
9222 notype_declarator". The comment saying that "declmods declarator ';'"
9223 corresponds to "int i;" was wrong; it corresponds to "const i;".
9224 (component_decl): Add "typed_declspecs declarator ';'" rule; this
9225 *does* correspond to "int i;". Change "declmods components" to
9226 "declmods notype_components".
9227 (components): Don't deal with a list of one anymore.
9228 (notype_components): New nonterminal, corresponds to notype_declarator.
9229 ({after_,no}type_component_decl{,0}): More new nonterminals.
9230 ({after_,no}type_declarator): Fold in START_DECLARATOR token.
9231 Eliminates four reduce/reduce conflicts.
9232
9233 (expr): Depend on nontrivial_exprlist instead of nonnull_exprlist.
9234 (nontrivial_exprlist): New nonterminal: A list of at least two
9235 expr_no_commas's.
9236 (nonnull_exprlist): Depend on nontrival_exprlist.
9237 Eliminates four reduce/reduce conflicts.
9238
9239 (named_class_head): Move intermediate code block into separate
9240 nonterminal so that we can stick %prec EMPTY on it.
9241
9242 Add more %prec EMPTY's to eliminate remaining shift/reduce
9243 conflicts.
9244
9245 (after_type_declarator): Add maybe_raises to fndecl rules.
9246 (after_type_declarator_no_typename): Remove.
9247 For correctness.
9248
9249 Document remaining reduce/reduce conflicts.
9250
9251Tue Feb 22 12:10:32 1994 Jason Merrill (jason@deneb.cygnus.com)
9252
9253 * search.c (get_base_distance): Only bash BINFO_INHERITANCE_CHAIN
9254 (TYPE_BINFO (type)) if we care about the path.
9255
9256 * tree.c (lvalue_p): A COND_EXPR is an lvalue if both of the
9257 options are.
9258
6060a796 9259Mon Feb 21 19:59:40 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9260
9261 * Makefile.in (mostlyclean): lex.c is a source file, don't
9262 remove.
9263
9264Sat Feb 19 01:27:14 1994 Jason Merrill (jason@deneb.cygnus.com)
9265
9266 * parse.y: Eliminate 20 shift/reduce conflicts.
9267
9268Fri Feb 18 11:49:42 1994 Jason Merrill (jason@deneb.cygnus.com)
9269
9270 * pt.c (type_unification): Add subr argument; if set, it means
9271 that we are calling ourselves recursively, so a partial match is OK.
9272 (unify): Support pointers to methods and functions.
9273 (tsubst): Support method pointers.
9274 * decl.c (build_ptrmemfunc_type): No longer static, so that
9275 tsubst can get at it.
9276
9277 * init.c (is_aggr_typedef): Pretend template type parms are
9278 aggregates.
9279 * decl2.c (build_push_scope): If cname refers to a template type
9280 parm, just grin and nod.
9281
9282 * call.c (build_overload_call_real): Pass subr argument to
9283 type_unification.
9284 * pt.c (do_function_instantiation): Ditto.
9285 * class.c (instantiate_type): Ditto.
9286
9287 * search.c (get_base_distance): If BINFO is a binfo, use it and
9288 don't mess with its BINFO_INHERITANCE_CHAIN.
9289
9290 * cvt.c (convert_to_reference): Fix temporary generation.
9291 If ambiguous, return error_mark_node.
9292
9293 * init.c (build_new): Put back some necessary code.
9294
9295Thu Feb 17 15:39:47 1994 Jason Merrill (jason@deneb.cygnus.com)
9296
9297 * init.c (build_new): Deal with array types properly.
9298
9299 * search.c (get_binfo): Become a shell for get_base_distance.
9300 (get_binfo_recursive): Lose.
9301 (get_base_distance_recursive): Find the path to the via_virtual base
9302 that provides the most access.
9303 (get_base_distance): Ditto.
9304
9305 * parse.y (explicit_instantiation): Syntax is 'template class
9306 A<int>', not 'template A<int>'.
9307
9308 * typeck.c (convert_for_initialization): Remove bogus warning.
9309
9310 * parse.y (datadef): Revert patch of Oct 27.
9311
9312Thu Feb 17 15:12:29 1994 Per Bothner (bothner@kalessin.cygnus.com)
9313
9314 * class.c (build_vfn_ref): Cast delta field to ptrdiff_type_node,
9315 rather than integer_type_node. Does wonders for the Alpha.
9316
9317Thu Feb 17 13:36:21 1994 Jason Merrill (jason@deneb.cygnus.com)
9318
9319 * decl.c (build_ptrmemfunc_type): Make sure that the pmf type
9320 goes onto the same obstack as its target type.
9321
9322Wed Feb 16 00:34:46 1994 Jason Merrill (jason@deneb.cygnus.com)
9323
9324 * cvt.c (convert_to_reference): If converting via constructor
9325 on local level, go back to build_cplus_new approach.
9326
9327 * tree.c (build_cplus_new): If with_cleanup_p, set cleanup slot
9328 to error_mark_node to prevent expand_expr from building a cleanup
9329 for this variable.
9330
9331 * lex.c (default_assign_ref_body): Return *this from the memcpy
9332 version, too.
9333
9334 * decl.c (grok_reference_init): Just return if called with
9335 error_mark_node, don't worry about initializing non-const reference
9336 with temporary.
9337
9338 * cvt.c (convert_to_reference): Do the right thing for
9339 non-aggregate reference conversions, pedwarn when generating a
9340 non-const reference to a temporary.
9341
9342 * class.c (finish_struct): TYPE_HAS_COMPLEX_{INIT,ASSIGN}_REF and
9343 TYPE_NEEDS_CONSTRUCTING all depend on TYPE_USES_VIRTUAL_BASECLASSES
9344 again.
9345
9346Tue Feb 15 19:47:19 1994 Jason Merrill (jason@deneb.cygnus.com)
9347
9348 * decl.c (grok_reference_init): Pawn off a lot of the work on
9349 convert_to_reference. Generally do the right thing.
9350
9351 * cvt.c (convert_to_reference): Conform to the initial comment;
9352 i.e. don't create temps if decl != error_mark_node. Handle
9353 cleanups better for temps that do get created. Don't pretend
9354 that we can use an 'A' to initialize a 'const double &' just by
9355 tacking on a NOP_EXPR. Support LOOKUP_SPECULATIVELY.
9356
9357 * call.c (build_method_call): Set TREE_HAS_CONSTRUCTOR on
9358 constructor calls.
9359
9360Mon Feb 14 14:50:17 1994 Jason Merrill (jason@deneb.cygnus.com)
9361
9362 * decl.c (grok_reference_init): Make a temporary for initializing
9363 const reference from constant expression.
9364
9365Mon Feb 14 11:31:31 1994 Per Bothner (bothner@kalessin.cygnus.com)
9366
9367 * cp-tree.h, decl.c (set_identifier_local_value): Deleted function.
9368 * decl.c (pushdecl): Define decl in correct binding_level
9369 (which isn't always the inner_binding_level).
9370
9371 * cvt.c (build_up_reference): Don't ever call expand_aggr_init.
9372 It's ugly, and I don't think it's the right thing to do.
9373
9374 * cp-tree.h, class.c, decl.c, decl2.c, sp/search.c:
9375 Remove NEW_CLASS_SCOPING, assuming it is always 1.
9376 * decl.c (pop_decl_level): Removed; manually inlined.
9377
9378Sun Feb 13 19:04:56 1994 Jason Merrill (jason@deneb.cygnus.com)
9379
9380 * class.h (candidate): Add basetypes field.
9381
9382 * call.c (build_method_call): Do access checking after choosing a
9383 function, not before.
9384
9385 * Makefile.in (cvt.o, call.o, method.o): Depend on class.h.
9386 (mostlyclean): Remove ../cc1plus.
9387
9388Fri Feb 11 11:52:26 1994 Jason Merrill (jason@deneb.cygnus.com)
9389
9390 * class.c (finish_struct): Don't allow adjusting access to a field
9391 of a base class if a local field has the same name.
9392
9393 * error.c (dump_type_prefix): Output basetype for METHOD_TYPEs.
9394
9395hu Jan 13 17:55:51 EST 1994 Gnanasekaran Swaminathan (gs4t@virginia.edu)
9396
63718c49 9397 * cp-tree.h (DESTRUCTOR_NAME_P): do not confuse AUTO_TEMP names
7177d104
MS
9398 with destructor names when either NO_DOLLAR_IN_LABEL or
9399 NO_DOT_IN_LABEL are not defined.
9400
9401 Now `template <class T, T f(T&), const T*> class A {...}' works.
9402
9403 * pt.c (grok_template_type): substitute template parm types
9404 with actual types in complex type as well.
9405 (coerce_template_parms): update the grok_template_type ()
9406 function call.
9407
9408 * pt.c (tsubst): Traverse method list using DECL_CHAIN.
9409
9410 * decl.c (grok_op_properties): Allow operator++/-- to have
9411 default arguments.
9412
9413 * typeck2.c (store_init_value): Don't abort when called to
9414 initialize a type that needs constructing with a CONSTRUCTOR.
9415
9416 * init.c (expand_aggr_init_1, CONSTRUCTOR case): If
9417 store_init_value fails, build and expand an INIT_EXPR. If
9418 store_init_value succeeds, call expand_decl_init.
9419
6060a796 9420Fri Feb 11 02:49:23 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9421
9422 * class.c (build_vbase_path): Use complete_type_p instead of
9423 resolves_to_fixed_type_p to determine if the virtual bases are in
9424 their right place for the type of expr. Cures problem of thinking a
9425 virtual base class is one place, when it is in fact someplace else.
9426
6060a796 9427Fri Feb 11 00:26:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9428
9429 * init.c (resolve_offset_ref): Make sure we first convert to
9430 intermediate type, if given, when dealing with members off `this'.
9431 Solves an incorrrect `type `foo' is not a base type for type
9432 `multiple'' when it is infact, a base type.
9433
6060a796 9434Thu Feb 10 21:49:35 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9435
9436 * class.c (modify_other_vtable_entries): Use get_binfo, instead
9437 of binfo_value. Solves problem with compiler giving a `base class
9438 `B' ambiguous in binfo_value (compiler error)' on complex MI
9439 herarchies, when a virtual function is first defied in a virtual
9440 base class.
9441
6060a796 9442Thu Feb 10 17:19:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9443
9444 * class.c (build_vbase_path): Don't complain about ambiguous
9445 intermediate conversion when converting down to a virtual base
9446 class, even if they might seem to be ambiguous.
9447
9448Thu Feb 10 12:18:26 1994 Jason Merrill (jason@deneb.cygnus.com)
9449
9450 * typeck2.c (build_functional_cast): #if 0 out constructor
9451 inheritance code, improve error messages.
9452
9453 * class.c (finish_base_struct): Complain about base with only
9454 non-default constructors in derived class with no constructors.
9455
9456 * decl.c (grokdeclarator): Fix detection of virtual new/delete.
9457
6060a796 9458Wed Feb 9 22:02:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9459
9460 * search.c (build_mi_virtuals, add_mi_virtuals,
9461 report_ambiguous_mi_virtuals): Removed unneeded code.
9462 * class.c (finish_struct_bits): Ditto.
9463
9464Wed Feb 9 11:27:17 1994 Jason Merrill (jason@deneb.cygnus.com)
9465
9466 * pt.c (end_template_instantiation): Push decl before
9467 pop_from_top_level.
9468
9469 * typeck2.c (build_m_component_ref): Make sure datum is of
9470 aggregate type.
9471
9472 * init.c (get_type_value): New function, returns
9473 IDENTIFIER_TYPE_VALUE or IDENTIFIER_CLASS_TYPE_VALUE or NULL_TREE.
9474
9475 * call.c (build_method_call): Don't die on call to destructor for
9476 non-type.
9477
9478 * decl.c (grokdeclarator): Complain about virtual op new and op
9479 delete, make static virtuals unvirtual instead of unstatic.
9480
9481 * typeck.c (build_c_cast): Also call default_conversion on
9482 methods.
9483
9484 * decl.c (grokdeclarator): Don't complain about anonymous
9485 bitfields.
9486
9487 * parse.y (simple_stmt, for loops): Move the continue point after
9488 the cleanups.
9489
9490 * class.c (finish_struct): Fix setting of
9491 TYPE_HAS_COMPLEX_INIT_REF.
9492
9493Tue Feb 8 13:21:40 1994 Jason Merrill (jason@deneb.cygnus.com)
9494
9495 * init.c (build_new): Deal with `new double (1)'.
9496
9497 * class.c (finish_struct): TYPE_HAS_COMPLEX_*_REF are supersets of
9498 TYPE_HAS_REAL_*_REF, but TYPE_HAS_COMPLEX_INIT_REF is independent of
9499 TYPE_NEEDS_CONSTRUCTING.
9500
9501 * decl.c (duplicate_decls): Propagate access decls.
9502
9503 * typeck2.c (process_init_constructor): Accept empty_init_node
9504 for initializing unions.
9505
9506 * class.c, lex.c, cp-tree.h: Use
9507 TYPE_HAS_COMPLEX_ASSIGN_REF where TYPE_HAS_REAL_ASSIGN_REF was used
9508 before, use TYPE_HAS_COMPLEX_INIT_REF for TYPE_NEEDS_CONSTRUCTING in
9509 some places.
9510
9511 * decl.c (finish_decl): Don't complain about uninitialized const
9512 if it was initialized before.
9513
9514Mon Feb 7 18:12:34 1994 Jason Merrill (jason@deneb.cygnus.com)
9515
9516 * lex.c (default_assign_ref_body): Don't deal with vbases for
9517 now.
9518
9519 * decl.c (finish_decl): Fix reversed logic for objects and other
9520 things that need to be constructed but have no initializer.
9521
9522 * class.c (finish_struct): Don't set TYPE_HAS_* flags that are
9523 set by grok_op_properties or finish_decl.
9524
9525 * decl.c: Don't warn about extern redeclared inline unless
9526 -Wextern-inline is given.
9527 * decl2.c (lang_decode_option): Ditto.
9528 * cp-tree.h: Ditto.
9529
9530Mon Feb 7 17:29:24 1994 Per Bothner (bothner@kalessin.cygnus.com)
9531
9532 * decl.c (pushdecl_with_scope): Fix thinko. Add forward
9533 declaration.
9534
9535 * decl.c (pushdecl_with_scope): New function.
9536 * decl.c (pushdecl_top_level): Use new function.
9537 * decl.c (pushtag): Initialize newdecl.
9538 * decl.c (pushtag): Push new type decl into correct scope.
9539
9540Mon Feb 7 14:42:03 1994 Jason Merrill (jason@deneb.cygnus.com)
9541
9542 * call.c, cvt.c, init.c, search.c, cp-tree.h:
9543 Eradicate LOOKUP_PROTECTED_OK.
9544
9545Mon Feb 7 13:57:19 1994 Per Bothner (bothner@kalessin.cygnus.com)
9546
9547 * decl.c (pushtag, xref_tag), cp-tree.h: Add extra parameter
9548 'globalize' to signify implicit declarations.
9549 * decl.c (globalize_nested_type, maybe_globalize_type): Removed.
9550 * decl.c (set_identifier_type_value_with_scope): New function.
9551 * decl.c (set_identifier_local_value): Simplify.
9552 * spew.c (yylex, do_addr): Modify to return a _DEFN if a
9553 forward declaration (followed by ';' and not preceded by 'friend').
9554 * class.c, decl.c, except.c, init.c, parse.y,
9555 pt.c, search.c: Add new argument to calls to xref_tag and
9556 pushtag.
9557
9558Mon Feb 7 00:22:59 1994 Jason Merrill (jason@deneb.cygnus.com)
9559
9560 * cp-tree.h (ACCESSIBLY_UNIQUELY_DERIVED_P): New macro, means what
9561 ACCESSIBLY_DERIVED_FROM_P meant before.
9562 (ACCESSIBLY_DERIVED_FROM_P): Now disregards ambiguity.
9563
9564 * cvt.c (build_up_reference): Call get_binfo with PROTECT == 1.
9565
9566 * search.c (get_base_distance_recursive): Members and friends of
9567 a class X can implicitly convert an X* to a pointer to a private or
9568 protected immediate base class of X.
9569 (get_binfo_recursive): Ditto.
9570 (get_base_distance): Ignore ambiguity if PROTECT < 0.
9571 (get_binfo): Lose multiple values of PROTECT.
9572 (compute_access): Protected is OK if the start of the
9573 search is an accessible base class of current_class_type.
9574
9575 * method.c (build_opfncall): Do check access on operator new here.
9576
9577 * decl.c (finish_function): Don't check access on operator new
9578 here.
9579
9580Sun Feb 6 14:06:58 1994 Jason Merrill (jason@deneb.cygnus.com)
9581
9582 * decl.c (xref_tag): The base of a derived struct is NOT always
9583 public. Duh.
9584
9585 * pt.c (do_explicit_instantiation): New function, called from
9586 parser to do explicit function instantiation.
9587 (type_unification): Allow the args list to be terminated with
9588 void_list_node.
9589 (do_pending_expansions): Look at i->interface for non-member
9590 templates.
9591
9592 * parse.y (datadef): Move explicit_instantiation here.
9593 (structsp): From here.
9594 (datadef): Complain about `int;'.
9595
9596Sun Feb 6 12:33:18 1994 Per Bothner (bothner@kalessin.cygnus.com)
9597
9598 * pt.c (end_template_instantiation), cp-tree.h: Remove unused
9599 second parameter, and simplify first from a TREE_LIST where
9600 we only care about its TREE_VALUE to just the value (an IDENTIFIER).
9601 * pt.c (instantiate_member_templates): Simplify argument list
9602 from a TREE_LIST to just an IDENTIFIER.
9603 * lex.c (yyprint): PRE_PARSED_CLASS_DECL is now just an IDENTIFIER.
9604 * parse.y (template_instantiate_once): Simplify accordingly.
9605 * decl.c (inner_binding_level): New. Use various places to
9606 simplify.
9607
9608Sun Feb 6 02:49:37 1994 Jason Merrill (jason@deneb.cygnus.com)
9609
9610 * typeck2.c (build_functional_cast): int() -> int(0).
9611
9612Sat Feb 5 00:53:21 1994 Jason Merrill (jason@deneb.cygnus.com)
9613
9614 * class.c (finish_struct): Don't do a bitwise copy for op= if the
9615 class has a virtual function table.
9616
9617 * typeck.c (convert_for_initialization): Restore warnings about
9618 not using defined op=. Should really be my_friendly_aborts, I
9619 s'pose.
9620
9621Fri Feb 4 14:21:00 1994 Jason Merrill (jason@deneb.cygnus.com)
9622
9623 * class.c (finish_struct): Tidy up conditions for doing bitwise
9624 copies of objects.
9625
9626 * decl.c (build_default_constructor): #if 0 out.
9627
9628 * *: Eradicate TYPE_GETS_{ASSIGNMENT,ASSIGN_REF,CONST_ASSIGN_REF,
9629 CONST_INIT_REF}, TYPE_HAS_REAL_CONSTRUCTOR.
9630
9631 * decl.c (grokdeclarator): Don't return void_type_node for
9632 friends being defined here.
9633
9634 * init.c (perform_member_init): Only do the init if it's useful.
9635
9636 * lex.c (default_copy_constructor_body): If we don't need to do
9637 memberwise init, just call __builtin_memcpy.
9638 (default_assign_ref_body): Ditto.
9639
9640 * decl.c (grokdeclarator): If friendp && virtualp, friendp = 0.
9641
6060a796 9642Fri Feb 4 13:02:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9643
9644 * lex.c (reinit_parse_for_method, cons_up_default_function):
9645 Don't give warn_if_unknown_interface warning when it came from a
9646 system header file.
9647 * pt.c (end_template_decl, instantiate_template): Ditto.
9648 * decl.c (start_decl): Ditto.
9649
9650Fri Feb 4 00:41:21 1994 Jason Merrill (jason@deneb.cygnus.com)
9651
9652 * decl.c (grokdeclarator): Don't try to set TYPE_WAS_ANONYMOUS on
9653 enums.
9654
9655 * decl2.c (constructor_name_full): Use IS_AGGR_TYPE_CODE instead of
9656 IS_AGGR_TYPE, since we don't know it's a type.
9657
9658Thu Feb 3 11:36:46 1994 Jason Merrill (jason@deneb.cygnus.com)
9659
9660 * decl.c (grokdeclarator): Don't complain about anonymous unions.
9661
9662 * cp-tree.h (TYPE_WAS_ANONYMOUS): This struct was originally
9663 anonymous, but had a name given to it by a typedef.
9664
9665 * decl.c (grokdeclarator): When renaming an anonymous struct, set
9666 TYPE_WAS_ANONYMOUS.
9667
9668 * decl2.c (constructor_name_full): Use TYPE_WAS_ANONYMOUS.
9669
9670 * cp-tree.h (DECL_UNDEFINED_FRIENDS): #if 0 out.
9671
9672 * init.c (xref_friend): Don't set up DECL_UNDEFINED_FRIENDS.
9673 (embrace_waiting_friends): Don't use DECL_UNDEFINED_FRIENDS.
9674
9675 * decl.c (grokdeclarator): Set TYPE_NESTED_NAME properly on nested
9676 anonymous structs that get typedef'd.
9677
9678 * decl.c (grokdeclarator): Always return void_type_node for
9679 friends.
9680
9681 * error.c (dump_function_decl): Don't use DECL_CLASS_CONTEXT for
9682 friends.
9683 (dump_function_decl): Don't print out default args for
9684 a function used in an expression.
9685
9686 * decl.c (grokdeclarator): Give error on abstract declarator used
9687 in an invalid context (i.e. `void (*)();').
9688
9689 * error.c (cp_line_of): Support _TYPE nodes.
9690 (cp_file_of): Ditto.
9691
9692 * cvt.c (build_up_reference): Don't abort if passed a SAVE_EXPR;
9693 it can happen for the RHS of an assignment stmt where the LHS is
9694 a COND_EXPR.
9695
9696 * init.c (expand_aggr_init_1): Deal with bracketed initializer
9697 lists properly.
9698
9699 * class.c (finish_struct): Deal with enumerators and typedefs
9700 again.
9701
9702Wed Feb 2 11:30:22 1994 Jason Merrill (jason@deneb.cygnus.com)
9703
9704 * class.c (finish_struct): Tidy up loop over fields.
9705
9706 * errfn.c (cp_thing): Don't advance twice after a format.
9707
9708 * class.c (finish_struct): Complain about needing a constructor
9709 if a member has only non-default constructors, and don't try to
9710 generate a default constructor.
9711
9712 * decl.c (finish_decl): Also do the constructor thing if
9713 TYPE_NEEDS_CONSTRUCTING is set (for arrays).
9714
9715 * search.c (unuse_fields): New function: mark all fields in this
9716 type unused.
9717 (dfs_unuse_fields): Helper function.
9718
9719 * class.c (pushclass): If the new class is the same as the old
9720 class, still unuse the fields.
9721 (unuse_fields): Move to search.c.
9722
9723 * decl.c (grok_op_properties): Add friendp argument.
9724 (grokfndecl): Pass it.
9725 (start_method): Ditto.
9726
9727 * decl2.c (delete_sanity): Add use_global_delete parameter to catch
9728 ::delete calls.
9729
9730 * parse.y (unary_expr): Pass new parameter to delete_sanity.
9731
9732 * lex.c (default_copy_constructor_body): Don't choke if the union
9733 has no fields.
9734 (default_assign_ref_body): Ditto.
9735
9736 * call.c (compute_conversion_costs_ansi): Do the right thing for
9737 ellipsis matches.
9738
9739 * decl.c (push_to_top_level): Optimize.
9740
9741 * decl.c (start_function): Look for the lexical scope of a friend
9742 in DECL_CLASS_CONTEXT.
9743
9744 * init.c (do_friend): Set DECL_CLASS_CONTEXT on global friends.
9745
9746Tue Feb 1 15:59:24 1994 Jason Merrill (jason@deneb.cygnus.com)
9747
9748 * cp-tree.h (TREE_GETS_PLACED_NEW): New macro.
9749
9750 * init.c (init_init_processing): Don't assign BIN/BID to the
9751 IDENTIFIER_GLOBAL_VALUEs of their respective operators.
9752 (build_new): Check TREE_GETS_PLACED_NEW.
9753
9754 * decl.c (grok_op_properties): Don't set TREE_GETS_NEW for a decl of
9755 op new with placement, set TREE_GETS_PLACED_NEW.
9756
9757 * cp-tree.h (ANON_UNION_P): New macro. Applies to decls.
9758
9759 * class.c (finish_struct): Don't treat anonymous unions like
9760 other aggregate members. Do synthesize methods for unions without
9761 a name, since they may or may not be "anonymous unions".
9762
9763 * decl2.c (grok_x_components): Wipe out memory of synthesized methods
9764 in anonymous unions.
9765
9766 * lex.c (default_copy_constructor_body): Support unions.
9767 (default_assign_ref_body): Ditto.
9768
9769Mon Jan 31 12:07:30 1994 Jason Merrill (jason@deneb.cygnus.com)
9770
9771 * cp-tree.h: Fix documentation of LOOKUP_GLOBAL, add prototypes.
9772
9773 * error.c (args_as_string): New function (%A), like type_as_string
9774 except NULL_TREE -> "..."
9775
9776 * call.c (build_overload_call_real): Fix for new overloading.
9777
9778 * decl.c (grok_op_properties): Set all of the TYPE_OVERLOADS_* flags
9779 here.
9780
9781 * parse.y (operator_name): Instead of here.
9782
9783 * typeck2.c (build_functional_cast): Treat a TREE_LIST as a list
9784 of functions.
9785
9786 * call.c (build_overload_call_real): Support LOOKUP_SPECULATIVELY.
9787
9788 * method.c (build_opfncall): Don't need to massage return value
9789 any more, call build_overload_call with all flags.
9790
9791 * typeck.c (build_x_binary_op): Put back speculative call to
9792 build_opfncall.
9793 (build_x_unary_op): Ditto.
9794 (build_x_conditional_expr): Ditto.
9795
6060a796 9796Mon Jan 31 10:00:30 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9797
9798 * cvt.c (build_type_conversion_1): Change call to pedwarn into
9799 warning, and conditionalize upon warn_cast_qual.
9800
9801Fri Jan 28 11:48:15 1994 Jason Merrill (jason@deneb.cygnus.com)
9802
9803 * search.c (lookup_field): If xbasetype is a binfo, copy it to
9804 avoid clobbering its inheritance info.
9805
9806 * call.c (build_method_call): Don't overwrite basetype_path with
9807 TYPE_BINFO (inst_ptr_basetype) if they have the same type.
9808
9809 * search.c (compute_access): Fix handling of protected inheritance
9810 and friendship with the enclosing class.
9811
9812 * typeck2.c (store_init_value): Allow passing of TREE_CHAIN for
9813 initialization of arbitrary variable.
9814
9815 * typeck2.c (build_functional_cast): Only try calling a method if
9816 one exists.
9817
9818 * decl.c (grokdeclarator): Move handling of constructor syntax
9819 initialization into first loop for generality.
9820 (parmlist_is_random): Lose.
9821
9822 * lex.c (cons_up_default_function): Set TREE_PARMLIST on arguments
9823 to default function.
9824
9825Thu Jan 27 19:26:51 1994 Jason Merrill (jason@deneb.cygnus.com)
9826
9827 * decl.c (grokparms): Abort if we get called with something we don't
9828 expect.
9829
6060a796 9830Thu Jan 27 17:37:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9831
9832 * call.c (build_overload_call_real): Change argument complain to
9833 flags to match style of rest of code. Pass it down to
9834 build_function_call_real as necessary.
9835 * call.c (build_overload_call, build_overload_call_maybe): Change
9836 argument complain to flags to match style of rest of code.
9837 * cp-tree.h (build_function_call_real): Added fourth flags
9838 argument.
9839 * cvt.c (convert_to_reference): Only give warning messages, if
9840 LOOKUP_COMPLAIN is set.
9841 * typeck.c (build_x_function_call): Change simple complain
9842 argument to build_overload_call_maybe and build_overload_call, to
9843 LOOKUP_COMPLAIN to match style of rest of code.
9844 * typeck2.c (build_functional_cast): Ditto.
9845 * typeck.c (build_function_call_real): Add flags, so that we can
9846 not complain, if we don't want to complain. Complain about
9847 arguments, if we are complaining, otherwise don't.
9848 * typeck.c (build_function_call, build_function_call_maybe):
9849 Stick in flags argument.
9850 * typeck.c (build_x_binary_op, build_x_unary_op,
9851 build_x_conditional_expr, build_x_compound_expr): Follow style of
9852 build_x_indirect_ref, as it is more correct and more common.
9853
9854Thu Jan 27 14:36:20 1994 Jason Merrill (jason@deneb.cygnus.com)
9855
9856 * call.c (build_method_call): Don't check for being called with
9857 a pointer.
9858
9859 * decl2.c (finish_file): Don't play with DECL_CLASS_CONTEXT for the
9860 static initializer function.
9861
9862 * init.c (build_member_call): Use convert_force here, too.
9863
9864 * search.c (compute_access): Only treat static members specially
9865 if they are referenced directly.
9866
9867Wed Jan 26 18:28:14 1994 Jason Merrill (jason@deneb.cygnus.com)
9868
9869 * gxxint.texi (Access Control): New node.
9870
9871 * search.c (current_scope): New function; returns whichever of
9872 current_class_type and current_function_decl is the most nested.
9873 (compute_access): Total overhaul to make it clearer and more
9874 correct. Don't use the cache for now; in the only situation where
9875 it was used before, it gained nothing. This frees up three of the
9876 DECL_LANG_FLAGs for possible other use!
9877
9878 * cp-tree.h: #if 0 out DECL_PUBLIC & friends.
9879
9880 * typeck.c (build_component_ref_1): Don't check DECL_PUBLIC.
9881
9882 * call.c (build_method_call): Use convert_force to cast `this' --
9883 rely on the access checking for the method itself.
9884
9885 * init.c (is_friend): Do the nesting thing, handle types. I am
9886 my own friend.
9887 (is_friend_type): Become a shell for is_friend.
9888 (add_friend): Never stick in ctype.
9889 Why are the friendship functions in init.c, anyway?
9890
6060a796 9891Wed Jan 26 17:50:00 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9892
9893 * cvt.c (build_type_conversion_1): Don't conditionalize call to
9894 pedwarn upon pedantic.
9895
6060a796 9896Wed Jan 26 17:20:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9897
9898 * cvt.c (convert_to_reference): Add 8.4.3 checking so that one
9899 gets a warning if one tries to initialize a non-const & from a
9900 non-lvalue.
9901 * cvt.c (convert_to_reference): Use %P format for argument
9902 numbers in warnings.
9903
6060a796 9904Wed Jan 26 14:35:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9905
9906 * init.c (build_delete): Follow style in call.c to construct the
9907 virtual call to the desctructor, as that code is right. Fixes a
9908 problem of the compiler saying a pointer conversion is ambiguous.
9909
9910Wed Jan 26 11:28:14 1994 Jason Merrill (jason@deneb.cygnus.com)
9911
9912 * cp-tree.h (VTABLE_NAME_P): Change other occurrence of
9913 VTABLE_NAME_FORMAT to VTABLE_NAME.
9914
9915 * *: s/visibility/access/g
9916
9917Tue Jan 25 18:39:12 1994 Jason Merrill (jason@deneb.cygnus.com)
9918
9919 * typeck.c (build_modify_expr): Don't smash references if INIT_EXPR.
9920
6060a796 9921Tue Jan 25 13:54:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
9922
9923 * init.c (build_delete): Back out Jan 17th & 18th pacthes, as
9924 they break libg++.
9925
9926Tue Jan 25 13:11:45 1994 Jason Merrill (jason@deneb.cygnus.com)
9927
9928 * decl.c (duplicate_decls): Fix pointer arithmetic.
9929
9930Mon Jan 24 15:50:06 1994 Chip Salzenberg (chip@fin.uucp)
9931
9932 [ cp-* changes propagated from c-* changes in 940114 snapshot ]
9933 * cp-parse.y (maybe_attribute): Allow multiple __attribute__
9934 clauses on a declaration.
9935
9936Mon Jan 24 17:06:23 1994 Jason Merrill (jason@deneb.cygnus.com)
9937
9938 * class.c (finish_struct): Do synthesize methods for anon
9939 structs, just not unions.
9940
9941Mon Jan 24 13:50:13 1994 Kung Hsu (kung@mexican.cygnus.com)
9942
9943 * decl.c (xref_tag): handle anonymous nested type.
9944 * decl.c (globalize_nested_type): add no globalize bit check.
9945 * spew.c (hack_more_ids) : templated nested decl not push top
9946 level.
9947
9948 * parse.y : get rid of 'goto do_components'. It is much better
9949 for debugging.
9950
9951 * decl.c (is_anon_name): get rid of the function and use the
9952 macro ANON_AGGRNAME_P.
9953 * pt.c : ditto.
9954
9955Fri Jan 21 14:06:02 1994 Jason Merrill (jason@deneb.cygnus.com)
9956
9957 * class.c (finish_struct): Don't synthesize any methods for
9958 anonymous structs/unions.
9959
9960 * typeck.c (build_modify_expr): Don't treat pmf's as class objects.
9961
9962Thu Jan 20 18:56:46 1994 Jason Merrill (jason@deneb.cygnus.com)
9963
9964 * method.c (build_opfncall): Call build_indirect_ref on
9965 synthesized instance for operator delete.
9966
9967 * pt.c (type_unification): Don't abort if called with a list of
9968 types in ARGS.
9969
9970 * class.c (instantiate_type): Deal with function templates.
9971
9972Thu Jan 20 16:55:35 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
9973
9974 * Makefile.in (CC): Default to cc not gcc.
9975
9976Thu Jan 20 13:47:54 1994 Jason Merrill (jason@deneb.cygnus.com)
9977
9978 * typeck.c (build_modify_expr): Call constructor if appropriate.
9979
9980 * decl.c (push_to_top_level): Clear out class-level bindings cache.
9981
9982Wed Jan 19 13:51:22 1994 Jason Merrill (jason@deneb.cygnus.com)
9983
9984 * call.c (resolve_scope_to_name): Work recursively (previously only
9985 looked down one level).
9986
9987 * lex.c (do_pending_inlines): If we're still dealing with the last
9988 batch of inlines, don't start working on a new one.
9989
9990 * Makefile.in (stamp-parse): Update conflict count.
9991 (TAGS): Fix.
9992
9993 * parse.y (explicit_instantiation): New rule; implements
9994 'template A<int>' syntax (though not 'template foo(int)' yet).
9995 (structsp): Add explicit_instantiation.
9996
9997Tue Jan 18 13:53:05 1994 Jason Merrill (jason@deneb.cygnus.com)
9998
9999 * class.c (finish_struct, etc.): Simplify decision to synthesize
10000 a destructor.
10001
10002 * call.c, class.c, cp-tree.h, decl.c, init.c,
10003 ptree.c, search.c, typeck.c, typeck2.c: Nuke
10004 TYPE_NEEDS_CONSTRUCTOR (change all calls to TYPE_NEEDS_CONSTRUCTING).
10005 * init.c (expand_aggr_init_1): Don't try non-constructor methods
10006 of initializing objects.
10007 (build_new): Don't try other methods if the constructor lookup fails.
10008
10009 * class.c (finish_base_struct): Set cant_have_default_ctor and
10010 cant_synth_copy_ctor properly.
10011 (finish_struct): Ditto.
10012
10013Mon Jan 17 13:58:18 1994 Jason Merrill (jason@deneb.cygnus.com)
10014
10015 * typeck.c (build_modify_expr_1): #if 0 out again.
10016 (build_modify_expr): #if 0 out memberwise init code again.
10017
10018 * lex.c (default_copy_constructor_body): Be const-correct.
10019 (default_assign_ref_body): Ditto.
10020
10021 * init.c (perform_member_init): Use TYPE_HAS_CONSTRUCTOR to decide
10022 whether or not to use it, rather than TYPE_NEEDS_CONSTRUCTING.
10023 (expand_aggr_init): Disable silent conversion from initializer list
10024 to list of args for a constructor.
10025
10026 * class.c (base_info): Lose needs_default_ctor.
10027 (finish_base_struct): Ditto.
10028 (finish_struct): Ditto.
10029
10030 * decl.c (init_decl_processing): Don't turn off flag_default_inline
10031 just because flag_no_inline is on.
10032 (finish_decl): Use TYPE_HAS_CONSTRUCTOR to decide to use
10033 constructor.
10034
10035 * class.c (finish_struct): Synthesize default ctor whenever
10036 allowed.
10037
10038 * Makefile.in (TAGS): Don't try to run etags on cp-parse.y.
10039
6060a796 10040Sat Jan 15 18:34:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10041
10042 * Makefile.in, configure: Handle the C++ front-end in a
10043 subdirectory.
10044 * cp-*: Move C++ front-end to cp/*.
10045
10046Fri Jan 14 14:09:37 1994 Jason Merrill (jason@deneb.cygnus.com)
10047
10048 * cp-typeck.c (build_function_call_real): Modify to match other
10049 instances of taking the address of the function.
10050
10051 * cp-class.c (finish_struct): Set TYPE_HAS_REAL_CONSTRUCTOR to 1 if
10052 there are non-synthesized constructors.
10053 Only set TYPE_NEEDS_CONSTRUCTOR if TYPE_HAS_REAL_CONSTRUCTOR.
10054 Always generate copy constructor if possible.
10055
10056 * cp-tree.h (lang_type): Add has_real_constructor bitfield.
10057 (TYPE_HAS_REAL_CONSTRUCTOR): Define.
10058
10059 * cp-lex.c (default_copy_constructor_body): Use init syntax
10060 for all bases.
10061
10062 * cp-type2.c (store_init_value): Only give error for initializer list
10063 if TYPE_HAS_REAL_CONSTRUCTOR.
10064
10065Thu Jan 13 15:38:29 1994 Jason Merrill (jason@deneb.cygnus.com)
10066
10067 * cp-tree.h (DECL_SYNTHESIZED): Add defn.
10068 (lang_decl): Add synthesized bitfield to decl_flags.
10069
10070 * cp-lex.c (cons_up_default_function): Use DECL_SYNTHESIZED to mark
10071 artificial methods, rather than a line # of 0.
10072
10073Fri Jan 14 18:25:29 1994 Kung Hsu (kung@mexican.cygnus.com)
10074
10075 * cp-decl (xref_tag): fix a bug in conflict type.
10076 * cp-parse.y : add SCOPED_NAME for uninstantiated template nested
10077 type reference.
10078 * cp-spew.c (yylex) : generated SCOPED_NAME token.
10079 * cp-lex.c (yyprint): handle SCOPED_NAME.
10080
6060a796 10081Fri Jan 14 17:00:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10082
10083 * cp-decl.c (pushdecl): Revert patch from Jan 11 19:33:03, as it is
10084 not right.
10085
10086Thu Jan 13 14:00:35 1994 Kung Hsu (kung@mexican.cygnus.com)
10087
10088 * cp-decl2.c (grok_x_components): fix a bug that enum type does not
10089 have type_flags.
10090
6060a796 10091Thu Jan 13 11:39:34 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10092
10093 Ensure that all vtable pointers are initialized with all the right
10094 values.
10095
10096 * cp-class.c (is_normal): Changed to reflect new meaning of
10097 CLASSTYPE_VFIELD_PARENT.
10098 * cp-class.c (maybe_fixup_vptrs): Use of
10099 CLASSTYPE_NEEDS_VIRTUAL_REINIT here is misguided. Use
10100 BINFO_MODIFIED instead.
10101 * cp-class.c (finish_struct): Changed to reflect new meaning of
10102 CLASSTYPE_VFIELD_PARENT.
10103 * cp-decl.c (get_binfo_from_vfield): Removed, unneeded now.
10104 * cp-decl.c (finish_function): Use init_vtbl_ptrs, instead of open
10105 coding it here.
10106 * cp-init.c (init_vfields): Changed name to init_vtbl_ptrs, and
10107 re-implement.
10108 * cp-init.c (emit_base_init): Use new name init_vtbl_ptrs.
10109 * cp-tree.h (vfield_parent): Changed to integer.
10110 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Changed docs to reflect new
10111 meaning.
10112 * cp-tree.h (init_vtbl_ptrs): Added init_vtbl_ptrs.
10113
10114Wed Jan 12 18:24:16 1994 Kung Hsu (kung@mexican.cygnus.com)
10115
10116 * cp-decl.c (xref_tag): re-implement globalize nested type.
10117 * cp-decl2.c (grok_x_components): ditto.
10118 * cp-parse.y: ditto.
10119 * cp-tree.h (lang_type): add no_globalize bit in type_flags.
10120
10121Wed Jan 12 14:08:09 1994 Jason Merrill (jason@deneb.cygnus.com)
10122
10123 * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC on friend
10124 decls with a definition attached.
10125
10126 * cp-typeck.c (build_modify_expr): Undo previous change in the case
10127 of INIT_EXPRs.
10128
10129Tue Jan 11 19:33:03 1994 Jason Merrill (jason@deneb.cygnus.com)
10130
10131 * cp-typeck.c (build_modify_expr): Replace code for generating
10132 assignment semantics for classes with an error.
10133 (build_modify_expr_1): #if 0 out.
10134
10135 * cp-decl.c (pushdecl): Patch bogus design of pushdecl
10136 behavior for overloaded functions (it doesn't push anything).
10137
10138 * cp-class.c (finish_struct): When generating default op=,
10139 set TYPE_HAS_ASSIGNMENT.
10140
6060a796 10141Mon Jan 10 18:48:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10142
10143 * cp-cvt.c (convert): Make {double, clashing enum} -> enum
10144 invalid.
10145 * cp-typeck.c (convert_for_assignment): Simplify.
10146 * cp-decl2.c (warn_enum_clash): Removed.
10147 * invoke.texi (-Wenum-clash): Removed.
10148 * toplev.c (-Wenum-clash): Removed.
10149
10150Mon Jan 10 17:48:37 1994 Kung Hsu (kung@mexican.cygnus.com)
10151
10152 * cp-decl.c (finish_decl): fix incorrect popclass call.
10153
10154 * cp-decl.c (is_anon_name): new function, check whether the name
10155 is anonymous name generated by compiler.
10156 * cp-decl.c (grokdeclarator): allow nested SCOPE_REF
10157 * cp-spew.c (hack_more_ids): handle nested type in template.
10158 * cp-parse.y : handle nested type reference in uninstantiated
10159 template.
10160 * cp-call.c (build_method_call): handle uninstantiated template
10161 case.
10162 * cp-pt.c (search_nested_type_in_tmpl): new function, search nested
10163 type in template.
10164 * cp-pt.c (lookup_nested_type_by_name): new function, lookup nested
10165 type by name.
10166 * cp-pt.c (tsubst): handle nested type search by name.
10167
10168Mon Jan 10 14:32:18 1994 Jason Merrill (jason@deneb.cygnus.com)
10169
10170 * cp-init.c (build_member_call): Propagate qualifiers to new type.
10171
10172 * cp-call.c (build_method_call): Count functions the new way.
10173
10174Fri Jan 7 19:03:26 1994 Jason Merrill (jason@deneb.cygnus.com)
10175
10176 * cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for nested classes,
10177 too.
10178
10179Tue Jan 4 16:45:51 1994 Kung Hsu (kung@cirdan.cygnus.com)
10180
10181 * cp-parse.y: change to handle whether to globalize nested class.
10182 * cp-decl.c(xref_tag, maybe_globalize_type): Ditto.
10183
10184Mon Jan 3 22:22:32 1994 Gerald Baumgartner (gb@cygnus.com)
10185
10186 * Makefile.in cp-call.c cp-class.c cp-cvt.c cp-decl.c cp-decl2.c
10187 cp-error.c cp-init.c cp-lex.c cp-lex.h cp-method.c cp-parse.y
10188 cp-spew.c cp-tree.c cp-tree.h cp-type2.c cp-typeck.c cp-xref.c
10189 gplus.gperf toplev.c: Incorporated C++ signature extension.
10190 * cp-sig.c: New file, contains most of signature processing.
10191 * cp-hash.h: Regenerated from gplus.gperf.
10192
10193 * gcc.1 g++.1: Added explanation for the `-fhandle-signatures'
10194 and `-fno-handle-signatures' command line flags.
10195
10196 * gcc.texi: Changed the last-modification date.
10197 * invoke.texi: Added `-fhandle-signatures' in the list of
10198 C++ language options. Added explanation for this option.
10199
6060a796 10200Tue Dec 28 21:10:03 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10201
10202 * cp-init.c (expand_vec_init): Remove comptypes test, as it is too
10203 harsh here.
10204
6060a796 10205Tue Dec 28 13:42:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10206
10207 * cp-pt.c (do_pending_expansions): Decide to expand a template
10208 member function, based upon it's class type, not the class type of
10209 the first place it was declared.
10210
6060a796 10211Tue Dec 28 05:42:31 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10212
10213 * cp-class.c (is_normal): New routine, use to determine when the
10214 given binfo is the normal one. (The one that should have the simple
10215 vtable name.)
10216 * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
10217 to check if two fndecls are `the same'. Sometimes this routine can
10218 modify the main vtable, and normal should be 1, in that case, so use
10219 is_normal() to determine if this is the main vtable for the class.
10220 Don't recurse down virtual bases, as they are shared, and we take
10221 care of them elsewhere.
10222 * cp-class.c (modify_vtable_entries): If we have already updated the
10223 vtable with the new virtual, don't do it again.
10224 * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
10225 appropriate. Do virtual function overriding in virtual bases, after
10226 normal overriding, so that the base function list in DECL_VINDEX is
10227 not overridden, before we have a chance to run through the list.
10228 Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
10229 Make sure we pass the right address into modify_vtable_entries.
10230 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
10231 binfo is the one that has the vtable that we based our vtable on.
10232
10233Fri Dec 24 09:40:52 1993 Michael Tiemann (tiemann@blues.cygnus.com)
10234
10235 * cp-typeck.c (c_expand_start_case): Use default_conversion to
10236 convert expression from reference type if necessary.
10237
10238Wed Dec 22 17:58:43 1993 Jason Merrill (jason@deneb.cygnus.com)
10239
10240 * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
10241 trying to read its TREE_VALUE.
10242
10243 * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
10244 (finish_struct): Instead of here.
10245
10246Tue Dec 21 14:34:25 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10247
10248 * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
10249 have TYPE_PTRMEMFUNC_P set before we try to build its
10250 CLASSTYPE_ID_AS_LIST.
10251 (get_decl_list): Likewise, when trying to read it.
10252
10253 * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
10254 (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
10255
10256Mon Dec 20 13:35:03 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10257
10258 * cp-typeck.c (rationalize_conditional_expr): New function.
10259 (unary_complex_lvalue): Use it.
10260 (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
10261 with build_unary_op won't cut it. Don't wrap the COND_EXPR with a
10262 SAVE_EXPR either.
10263
10264 * cp-decl2.c (explicit_warn_return_type): Deleted variable.
10265 (lang_decode_option): Set warn_return_type, not explicit_*, for
10266 -Wreturn-type and -Wall. This is what rest_of_compilation uses to
10267 decide if it should go into jump_optimize or not.
10268 * cp-tree.h (explicit_warn_return_type): Deleted.
10269 * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
10270 (finish_function): Also complain about no return in a non-void fn if
10271 we're being pedantic (don't rely on use of -Wreturn-type).
10272
10273Fri Dec 17 15:45:46 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10274
10275 * cp-decl.c (grokdeclarator): Forbid declaration of a function as
10276 static if it's being done inside another function.
10277
10278 * cp-search.c (compute_visibility): Check for friendship both ways.
10279
10280Fri Dec 17 14:28:25 1993 Jason Merrill (jason@deneb.cygnus.com)
10281
10282 * cp-cvt.c (build_default_binary_type_conversion): Make error
10283 messages more helpful.
10284
10285 * cp-error.c (op_as_string): New function, returns "operator =="
10286 given EQ_EXPR or suchlike.
10287
10288Fri Dec 17 13:28:11 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10289
10290 * cp-call.c (print_n_candidates): New function.
10291 (build_overload_call_real): Use it when we complain about a call
10292 being ambiguous.
10293
10294Fri Dec 17 12:41:17 1993 Jason Merrill (jason@deneb.cygnus.com)
10295
10296 * cp-call.c (build_method_call): Fix checking for static call
10297 context.
10298
10299 * cp-method.c (build_opfncall): Call build_indirect_ref on argument
10300 to operator new.
10301
10302 * cp-init.c (build_new): Don't mess with rval when building
10303 indirect ref.
10304
10305Thu Dec 16 16:48:05 1993 Kung Hsu (kung@cirdan.cygnus.com)
10306
10307 * cp-lex.c (default_assign_ref_body): add check when TYPE_NESTED_
10308 NAME(type) may not be exist. It's not a problem for old compiler.
10309
10310Thu Dec 16 14:46:06 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10311
10312 * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
10313 never used for anything.
10314 (struct lang_type, member type_flags): Delete field
10315 `alters_visibility', and up `dummy' by 1.
10316 * cp-class.c (finish_base_struct): Delete code that copies the
10317 setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
10318 (finish_struct): Delete code that sets it.
10319
10320Thu Dec 16 14:44:39 1993 Jason Merrill (jason@deneb.cygnus.com)
10321
10322 * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
10323 build_method_call that I messed up before.
10324
10325 * cp-search.c (get_base_distance): If protect > 1, allow immediate
10326 private base.
10327
10328 * cp-class.c (finish_base_struct): Set cant_synth_* correctly.
10329 (finish_struct): Ditto. Well, nigh-correctly; it won't deal
10330 properly with the case where a class contains an object of an
10331 ambiguous base class which has a protected op=. Should be fixed
10332 when the access control code gets overhauled.
10333 (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.
10334
10335Thu Dec 16 12:17:06 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10336
10337 * cp-lex.c (real_yylex): Turn the code back on that deals with
10338 __FUNCTION__ and __PRETTY_FUNCTION__. Don't use lookup_name, to
10339 avoid the ambiguity problems that led to it being turned off in the
10340 first place.
10341
10342 * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
10343 to see if something is a method.
10344
6060a796 10345Wed Dec 15 18:35:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10346
10347 * cp-typeck.c (build_modify_expr): Avoid error messages on small
10348 enum bit fields.
10349 * cp-typeck.c (convert_for_assignment): Add missing argument to
10350 cp_warning and cp_pedwarn calls.
10351
10352Wed Dec 15 18:25:32 1993 Jason Merrill (jason@deneb.cygnus.com)
10353
10354 * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
10355 initializers; it's just anachronistic.
10356
10357 * cp-decl.c (finish_decl): Don't require external-linkage arrays
10358 to have a complete type at declaration time when pedantic.
10359
10360Tue Dec 14 11:37:23 1993 Jason Merrill (jason@deneb.cygnus.com)
10361
10362 * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.
10363
10364 * cp-call.c (build_method_call): Don't dereference pointer given
10365 as instance.
10366
10367 * cp-decl.c (finish_function): Don't pass pointer to
10368 build_method_call.
10369 (finish_function): Ditto.
10370
10371 * cp-typeck.c (build_x_function_call): Ditto.
10372
10373 * cp-method.c (build_component_type_expr): Ditto.
10374
10375 * cp-init.c (build_member_call): Ditto.
10376 (build_new): Ditto.
10377
10378Mon Dec 13 18:04:33 1993 Kung Hsu (kung@cirdan.cygnus.com)
10379
10380 * cp-decl.c (xref_tag): fix regression created by changes made
10381 in Dec. 7 1993.
10382 * cp-decl.c (xref_defn_tag): fix parallel nested class problem.
10383
10384Fri Dec 10 12:40:25 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10385
10386 * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
10387 out the final evaluation of the function, so we can see if ELLIPSIS,
10388 USER, and EVIL were set at the end.
10389
10390 * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
10391 only go for setting TRIVIAL_CODE if we are dealing with types that
10392 are compatible.
10393
6060a796 10394Thu Dec 9 18:27:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10395
10396 * cp-decl.c (flag_huge_objects): New flag to allow large objects.
10397 * toplev.c (lang_options): Ditto.
10398 * cp-decl2.c (flag_huge_objects, lang_f_options): Ditto.
10399 * cp-decl.c (delta_type_node): New type for delta entries.
10400 * cp-tree.h (delta_type_node): Ditto.
10401 * cp-decl.c (init_decl_processing): Setup delta_type_node.
10402 * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
10403 delta_type_node instead of short_integer_type_node.
10404 * cp-class.c (build_vtable_entry): Ditto.
10405
10406Thu Dec 9 16:19:05 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10407
10408 * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
10409 NO_{DOLLAR,DOT} macro checks, so it always gets defined.
10410 (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
10411
6060a796 10412Wed Dec 8 17:38:06 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10413
10414 * cp-decl.c (finish_decl): Make sure things that can go into
10415 "common", do go into common, if -fcommon is given.
10416
10417Wed Dec 8 13:01:54 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10418
63718c49
GB
10419 * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
10420 (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
10421 argument matching diagnostics to make instantly clear what the
10422 compiler is doing.
7177d104
MS
10423
10424 * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
10425 then check to see if the penalty was increased due to
10426 signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.
10427
10428Tue Dec 7 18:29:14 1993 Kung Hsu (kung@cirdan.cygnus.com)
10429
10430 * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
10431 problem.
10432
10433Tue Dec 7 16:09:34 1993 Jason Merrill (jason@deneb.cygnus.com)
10434
10435 * cp-class.c (finish_struct): Before synthesizing methods, if no
10436 methods have yet been declared then set nonprivate_method. Don't
10437 set non_private method after synthesizing a method.
10438
10439 * cp-lex.c (extract_interface_info): If flag_alt_external_templates
10440 is set, tie emitted code to the location of template instantiation,
10441 rather than definition.
10442
10443 * cp-tree.h: Declare flag_alt_external_templates.
10444
10445 * cp-decl2.c (lang_decode_option): Support -falt-external-templates.
10446
10447 * toplev.c (lang_options): Ditto.
10448
9e9ff709 10449Mon Oct 4 12:50:02 1993 Chip Salzenberg (chip@fin.uucp)
7177d104 10450
63718c49
GB
10451 [changes propagated from 930810 snapshot]
10452 * cp-decl.c (init_decl_processing): Make long long available for use
10453 as SIZE_TYPE and PTRDIFF_TYPE.
10454 (finish_decl): Allow file-scope static incomplete array.
10455 (grokdeclarator): Don't pass on const and volatile fron function
10456 value type to function type.
10457 Warn here for volatile fn returning non-void type.
10458 * cp-parse.y (attrib): Accept attributes `volatile' with alias
10459 `noreturn', and `const'.
10460 * cp-typeck.c (default_conversion): Don't lose const and volatile.
10461 (build_binary_op_nodefault): Generate pedantic warning for comparison
10462 of complete pointer type with incomplete pointer type.
10463 (build_c_cast): Be careful that null pointer constant be INTEGER_CST.
7177d104
MS
10464
10465Tue Dec 7 10:46:48 1993 Jason Merrill (jason@deneb.cygnus.com)
10466
10467 * cp-init.c (expand_vec_init): When creating a temporary for copying
10468 arrays, use the type of the source, not the target.
10469
10470 * cp-cvt.c (convert): Pass an argument for errtype to
10471 convert_to_reference.
10472
10473 * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
10474 methods, -> and `this'.
10475
10476Mon Dec 6 17:12:33 1993 Jason Merrill (jason@deneb.cygnus.com)
10477
10478 * cp-error.c (parm_as_string): New function; returns `this' or arg
10479 number. Corresponds to %P.
10480 (dump_expr): Deal with method calls.
10481
10482 * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
10483 * cp-typeck.c (convert_for_assignment): Ditto.
10484 (warn_for_assignment): Lose.
10485
10486Mon Dec 6 11:33:35 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10487
10488 * cp-call.c (ideal_candidate_ansi): Delete code that was never
10489 doing anything useful. Instead, sort once, and DO NOT wipe
10490 out any codes with EVIL_CODE, since that's what we use as a
10491 marker for the end of the list of candidates.
10492
10493 * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.
10494
10495Mon Dec 6 12:49:17 1993 Jason Merrill (jason@deneb.cygnus.com)
10496
10497 * cp-init.c (get_aggr_from_typedef): New function, like
10498 is_aggr_typedef but returns the _TYPE.
10499
10500 * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.
10501
10502Sun Dec 5 18:12:48 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10503
10504 * cp-lex.c (readescape): Pedwarn when a hex escape is out of range.
10505
10506Thu Nov 25 23:50:19 1993 Chip Salzenberg (chip@fin.uucp)
10507
10508 Delay language context change until beginning of next decl.
10509
10510 * cp-lex.h (c_header_level): Removed.
10511 (pending_lang_change): Declared.
10512 * cp-lex.c (c_header_level): Renamed from in_c_header, made static.
10513 (pending_lang_change): Defined.
10514 (check_newline): Rework code that recognizes line number and
10515 filename changes. Instead of pushing and popping lang context,
10516 increment and decrement pending_lang_change.
10517 (do_pending_lang_change): Push and pop lang context according
10518 to value of pending_lang_change.
10519 * cp-parse.y (extdefs): Use lang_extdef instead of extdef.
10520 (extdef): Same as extdef, but call do_pending_lang_change() first.
10521
10522Mon Nov 15 15:39:15 1993 Chip Salzenberg (chip@fin.uucp)
10523
10524 * cp-typeck.c (build_binary_op_nodefault): Warn for ordered
10525 compare of ptr with 0 only if pedantic in both cases.
10526
10527Thu Nov 25 13:31:37 1993 Chip Salzenberg (chip@fin.uucp)
10528
10529 Reinstate the below patch, which got lost in the Cygnus merge:
10530 Tue Nov 23 13:59:24 1993 Hallvard B Furuseth (hbf@durin.uio.no)
10531 * cp-parse.y (maybe_type_qual): Don't fail to set $$.
10532
10533Wed Nov 17 19:03:30 1993 Chip Salzenberg (chip@fin.uucp)
10534
10535 * cp-parse.y (attrib): Allow "ident(ident)" like the C front end.
10536
10537Fri Oct 22 20:43:37 1993 Paul Eggert (eggert@twinsun.com)
10538
10539 * cp-lex.c (real_yylex): Diagnose floating point constants
10540 that are too large.
10541
10542Wed Nov 17 19:10:37 1993 Chip Salzenberg (chip@fin.uucp)
10543
10544 * cp-type2.c (build_functional_cast): ARM page 16: When a class
10545 and an object, function or enumerator are declared in the same
10546 scope with the same name, the class name is hidden.
10547
10548Wed Nov 17 19:07:18 1993 Chip Salzenberg (chip@fin.uucp)
10549
10550 * cp-call.c (convert_harshness_ansi): Distinguish float, double,
10551 and long double from each other when overloading.
10552 (compute_conversion_costs_{ansi,old}, build_method_call,
10553 build_overlay_call_real, convert_to_aggr): Always set and
10554 always use H_LEN member of candidate structure.
10555
10556Mon Oct 11 23:10:53 1993 Chip Salzenberg (chip@fin.uucp)
10557
10558 * cp-decl.c (duplicate_decls): Note redeclarations of library
10559 functions, and generate distinct warnings for them.
10560
10561Mon Oct 4 12:26:49 1993 Chip Salzenberg (chip@fin.uucp)
10562
10563 Support format warnings in G++.
10564
10565 * cp-tree.h: Protect against multiple inclusion.
10566 Declare all public functions in c-common.c (copy from c-tree.h).
10567 (STDIO_PROTO): Define.
10568 (warn_format): Declare.
10569 (record_format_info): Remove declaration.
10570 * cp-decl.c (init_decl_processing): Call init_function_format_info.
10571 * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
10572 * cp-typeck.c (build_function_call_real): Call check_function_format.
10573 (record_format_info): Remove -- obsolete stub.
10574
10575Sat Jul 24 12:04:29 1993 Chip Salzenberg (chip@fin.uucp)
10576
10577 * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
10578 following an extern one (for -Wredundant-decls).
10579 * cp-parse.y (primary): In statement expression case, if compstmt
10580 returns something other than a BLOCK, return it unchanged.
10581
10582Thu Dec 2 20:44:58 1993 Chip Salzenberg (chip@fin.uucp)
10583
10584 * cp-decl.c (warn_extern_redeclared_static): New function made
10585 from code extracted from pushdecl.
10586 (duplicate_decls, pushdecl): Call new function.
10587 (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
10588 to be a TREE_LIST when function is declared in 'extern "C" {}'.
10589
10590Fri Dec 3 16:01:10 1993 Jason Merrill (jason@deneb.cygnus.com)
10591
10592 * cp-class.c (duplicate_tag_error): Use cp_error.
10593 (finish_base_struct): Check for ambiguity with direct base, and don't
10594 generate op= or copy ctor if it exists.
10595
10596Fri Dec 3 15:32:34 1993 Kung Hsu (kung@cirdan.cygnus.com)
10597
10598 * cp-init.c (expand_member_init): when initializer name is null,
10599 don't try to build it now because emit_base_init will handle it.
10600
10601Fri Dec 3 12:28:59 1993 Jason Merrill (jason@deneb.cygnus.com)
10602
10603 * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
10604 code such as ExceptionHandler::operator=.
10605
10606Fri Dec 3 10:32:08 1993 Jason Merrill (jason@deneb.cygnus.com)
10607
10608 * cp-decl.c (grokdeclarator): Don't try to print out dname when
10609 complaining about arrays of references if decl_context==TYPENAME,
10610 since it will be null.
10611
10612 * cp-decl2.c: Default to flag_ansi_overloading.
10613
10614Thu Dec 2 18:05:56 1993 Kung Hsu (kung@cirdan.cygnus.com)
10615
10616 * cp-call.c (build_method_call): use binfo from instance if it's
10617 different from binfo (basetype_path) passed from above.
10618
10619Thu Dec 2 12:48:36 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10620
10621Wed Nov 17 19:14:29 1993 Chip Salzenberg (chip@fin.uucp)
10622
10623 cp-error.c (dump_expr): Use unsigned chars to output a
10624 TREE_REAL_CST in hex.
10625
10626Thu Dec 2 11:05:48 1993 Jason Merrill (jason@deneb.cygnus.com)
10627
10628 * cp-class.c (finish_struct): Fix typo in setting
10629 cant_synth_asn_ref.
10630
10631 * cp-tree.h (TYPE_NESTED_NAME): New macro, does
10632 DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).
10633
10634 * cp-lex.c (default_copy_constructor_body): Change
10635 DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
10636 (default_assign_ref_body): Ditto.
10637 (default_copy_constructor_body): Call operator= explicitly for
10638 base classes that have no constructor.
10639
10640Thu Dec 2 10:47:15 1993 Michael Tiemann (tiemann@blues.cygnus.com)
10641
10642 * cp-call.c (build_method_call): If the instance variable is
10643 converted to error_mark_node when we're trying to convert it to the
10644 base type of a method we're looking up, return error_mark_node.
10645
10646Thu Dec 2 10:41:16 1993 Torbjorn Granlund (tege@cygnus.com)
10647
10648 * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
10649 cases, tests for unsigned operands by peeking inside a NOP_EXPR.
10650
10651Wed Dec 1 13:33:34 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10652
10653 * cp-call.c (compute_conversion_costs_ansi): Use the size of struct
10654 harshness_code, not the size of short, for clearing out the
10655 ansi_harshness.
10656
10657 * cp-call.c (print_candidates): New function.
10658 (build_method_call): When we had some candidates, but didn't get a
10659 usable match, don't report that we got an error with the first
10660 candidate. Instead, say there were no matches, and list the
10661 candidates with print_candidates. In the second pass, make sure we
10662 clear out ever_seen, so we can accurately count the number of
10663 functions that qualified.
10664
10665Wed Dec 1 09:53:59 1993 Torbjorn Granlund (tege@cygnus.com)
10666
10667 * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
10668 only if op1 is known to be != -1.
10669 (build_binary_op_nodefault): Handle *_DIV_EXPR likewise.
10670
10671Tue Nov 30 14:07:26 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
10672
10673 * cp-method.c (hack_identifier): If the field itself is private, and
10674 not from a private base class, say so.
10675
10676Mon Nov 29 03:00:56 1993 Jason Merrill (jason@deneb.cygnus.com)
10677
10678 * cp-decl.c (grokdeclarator): Always warn on initialization of
10679 const member.
10680
10681Wed Nov 24 00:49:35 1993 Jason Merrill (jason@deneb.cygnus.com)
10682
10683 * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
10684 (finish_base_struct): Set cant_synth_asn_ref properly.
10685
10686 * cp-lex.c (cons_up_default_function): Add section for operator=.
10687 (default_assign_ref_body): New function, mostly cribbed from
10688 default_copy_constructor_body.
10689
10690 * cp-class.c (base_info): Add members cant_synth_copy_ctor,
10691 cant_synth_asn_ref, no_const_asn_ref.
10692 (finish_base_struct): Update no_const_asn_ref, note that you should
10693 update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
10694 (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
10695 initialize them properly. Set no_const_asn_ref properly. Set
10696 cant_synth_* in some of the situations where they should be set.
10697 Propagate TYPE_GETS_ASSIGN_REF. Use cant_synth_copy_ctor. Add call
10698 to cons_up_default_function for operator=.
10699
6060a796 10700Tue Nov 23 20:24:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10701
10702 * cp-cvt.c (convert_force): Add code to perform casting of pointer
10703 to member function types.
10704 * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
10705 when the conversion should be done, regardless.
10706 * cp-tree.h (build_ptrmemfunc): Ditto.
10707 * cp-type2.c (digest_init): Ditto.
10708 * cp-typeck.c (convert_for_assignment): Ditto.
10709
10710Tue Nov 23 18:06:58 1993 Jason Merrill (jason@deneb.cygnus.com)
10711
10712 * cp-error.c (dump_expr): Do the right thing for variables of
10713 reference type.
10714
10715 * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
10716 and its kin properly.
10717 (xref_tag): Propagate TYPE_GETS_ASSIGN_REF.
10718
6060a796 10719Tue Nov 23 12:26:13 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
10720
10721 * cp-method.c (build_opfncall): Don't count pointer to member
10722 functions as aggregates here, as we don't want to look up methods in
10723 them. The compiler would core dump if we did, as they don't have
10724 normal names.
10725 * cp-typeck.c (build_indirect_ref): Improve wording on error
10726 message.
10727
10728Mon Nov 22 14:22:23 1993 Jason Merrill (jason@deneb.cygnus.com)
10729
10730 * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
10731 (since it's supported in other compiler bits).
10732
10733 * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
10734 argument.
10735
10736 * cp-error.c (dump_function_decl): Don't print return type for
10737 constructors and destructors.
10738
10739 * cp-cvt.c (cp_convert_to_pointer): Import code from
10740 convert_to_pointer so we can return error_mark_node in the case of an
10741 error, and to allow more meaningful error messages.
10742 (build_type_conversion): Don't go through void* when trying
10743 to convert to a pointer type.
10744
10745 * cp-decl.c (grokfndecl): Move call to grok_op_properties back
10746 after grokclassfn so that it's dealing with the right decl.
63718c49 10747 (grok_op_properties): Don't assert !methodp for op new and op delete.
7177d104
MS
10748
10749 * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
10750 no uses of it in the compiler).
10751
10752 * cp-call.c (build_scoped_method_call): Fix for destructors of simple
10753 types.
10754 (build_method_call): Ditto.
10755
10756Fri Nov 19 12:59:38 1993 Jason Merrill (jason@deneb.cygnus.com)
10757
10758 * cp-tree.c (count_functions): Abstraction function.
10759
10760 * cp-call.c (build_overload_call_real): Deal with new overloading
10761 properly, remove dead code.
10762
10763 * gcc.c (default_compilers): Generate and use .ii files in the
10764 intermediate stage of compiling C++ source.
10765
10766Fri Nov 19 11:26:09 1993 Jim Wilson (wilson@sphagnum.cygnus.com)
10767
10768 * cp-expr.c (cplus_expand_expr): Make call_target a valid memory
10769 address before using it, so it can be later safely compared.
10770
10771Fri Nov 12 15:30:27 1993 Jason Merrill (jason@deneb.cygnus.com)
10772
10773 * cp-pt.c (tsubst): Deal with new overloading.
10774
10775 * cp-typeck.c (fntype_p): is the arg function type?
10776 (comp_target_parms): pedwarn on conversion from (anything) to (...).
10777 (build_x_function_call): Deal with new overloading.
10778
10779 * cp-tree.c (decl_list_length): Deal with new overloading.
10780 (decl_value_member): Like value_member, but for DECL_CHAINs.
10781
10782 * cp-decl.c (duplicate_decls): Deal with new overloading.
10783 (start_decl): Ditto.
10784
10785 * cp-class.c (instantiate_type): Deal with new overloading.
10786
10787 * cp-call.c (convert_harshness_ansi): Deal with new overloading.
10788 (convert_harshness_old): Deal with new overloading.
10789 (build_overload_call_real): Ditto.
10790
10791Mon Nov 8 13:50:49 1993 Jason Merrill (jason@deneb.cygnus.com)
10792
10793 * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
10794 if unambiguous, NULL_TREE otherwise.
10795 (get_first_fn): Returns the first appropriate FUNCTION_DECL.
10796 (is_overloaded_fn): Returns whether or not the passed tree is
10797 a function or list of functions.
10798
10799 * cp-init.c (init_init_processing): use `get_first_fn' to find
10800 the FUNCTION_DEFN for new and delete.
10801
10802 * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
10803 code size in half (I spit on special cases).
10804
10805Tue Sep 7 20:03:33 1993 Jason Merrill (jason@deneb.cygnus.com)
10806
10807 * cp-decl.c: Allow references and template type parameters as well
This page took 1.191049 seconds and 5 git commands to generate.