1 Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com>
3 * class.c (grow_method): Remove check for redeclaration.
5 Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net>
7 * pt.c (type_unification): Change calling squence to allow for
8 multiple levels of template parameters.
9 (tsubst_expr): Likewise.
11 (tsubst_copy): Likewise.
12 (instantiate_template): Likewise.
14 * call.c (build_overload_call_real): Use it.
15 (add_builtin_candidate): Use it.
16 (build_new_method_call): Use it.
17 * class.c (instantiate_type): Use it.
18 * decl.c (grokdeclarator): Use it.
19 * decl2.c (finish_file): Use it.
20 * method.c (build_overload_identifier): Use it.
22 * call.c (add_template_candidate): Add additional parameter for
23 the function return type. Call fn_type_unification istead of
25 (build_user_type_conversion_1): Handle member templates.
26 (build_new_function_call): Likewise.
27 (build_new_op): Likewise.
28 (build_new_method_call): Likewise.
30 * class.c (grow_method): Don't give an error message indicating
31 that two member templates with the same name are ambiguous.
32 (finish_struct): Treat member template functions just like member
35 * cp-tree.h (check_member_template): Add declaration.
36 (begin_member_template_processing): Likewise.
37 (end_member_template_processing): Likewise.
38 (fn_type_unification): Likewise.
39 (is_member_template): Likewise.
40 (tsubst): Change prototype.
41 (tsubst_expr): Likewise.
42 (tsubst_copy): Likewise.
43 (instantiate_template): Likewise.
44 (get_bindings): Likewise.
46 * decl.c (decls_match): Handle multiple levels of template
48 (pushdecl): Handle template type params just like other type
50 (push_class_level_binding): Return immediately if the
51 class_binding_level is NULL.
52 (grokfndecl): If check_classfn() returns a member_template, use
53 the result of the template, not the template itself.
55 * decl2.c (check_member_template): New function. Check to see
56 that the entity declared to be a member template can be one.
57 (check_classfn): Allow redeclaration of member template functions
58 with different types; the new functions can be specializations or
59 explicit instantiations.
61 * error.c (dump_decl): Handle multiple levels of template
63 (dump_function_decl): Update to handle function templates.
65 * lex.c (do_pending_inlines): Set up template parameter context
67 (process_next_inline): Likewise.
69 * method. (build_overload_identifier): Adjust for multiple levels
70 of template parameters.
72 * parse.y (fn.def2): Add member templates.
73 (component_decl_1): Likewise.
75 * pt.c (begin_member_template_processing): New function.
76 (end_member_template_processing): Likewise.
77 (is_member_template): Likewise.
78 (fn_type_unification): Likewise.
79 (current_template_parms): Return a vector of all the template
80 parms, not just the innermost level of parms.
81 (push_template_decl): Deal with the possibility of member
83 (lookup_template_class): Likewise.
84 (uses_template_parms): Likewise.
85 (tsubst): Modify processing to TEMPLATE_TYPE_PARM and
86 TEMPLATE_CONST_PARM to deal with multiple levels of template
87 arguments. Add processing of TEMPLATE_DECL to produce new
88 TEMPLATE_DECLs from old ones.
89 (do_decl_instantiation): Handle member templates.
91 * search.c (lookup_fnfields_1): Handle member template conversion
94 * tree.c (cp_tree_equal): Check the levels, as well as the
95 indices, of TEMPLATE_CONST_PARMs.
97 * typeck.c (comptypes): Check the levels, as well as the indices,
98 fo TEMPLATE_TYPE_PARMs.
99 (build_x_function_call): Treat member templates like member
102 Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com>
104 * typeck.c (c_expand_return): Always convert_for_initialization
105 before checking for returning a pointer to local.
107 * pt.c (type_unification): If strict and the function parm doesn't
108 use template parms, just compare types.
110 Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
112 * method.c (build_overloaded_value): Replace direct call
113 to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
115 Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com>
117 * typeck.c (convert_arguments): Don't arbitrarily choose the first
118 of a set of overloaded functions.
120 Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com>
122 * lex.c (real_yylex): Don't elide __FUNCTION__.
124 * method.c (build_overload_value): Add in_template parm.
125 (build_overload_int): Likewise.
126 (build_overload_identifier): Pass it.
128 * decl.c (duplicate_decls): Don't bash a previous template
129 definition with a redeclaration.
131 * pt.c (unify): float doesn't match double.
133 * pt.c (do_type_instantiation): Handle getting a _TYPE or a
134 TYPE_DECL. Handle getting non-template types.
135 * parse.y (explicit_instantiation): Use typespec instead of
138 Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com>
140 * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
142 Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com>
144 * call.c (add_builtin_candidate): Add missing TREE_TYPE.
145 (compare_ics): Likewise.
146 From someone whose name I've lost (sorry).
148 * call.c (joust): Warn about choosing one conversion op over
149 another because of 'this' argument when the other return type is
151 (source_type): New fn.
153 * call.c (build_new_op): Strip leading REF_BIND from first operand
156 * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
159 Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com>
161 * call.c (null_ptr_cst_p): Remove support for (void*)0.
163 Wed Aug 27 02:03:34 1997 Jeffrey A Law (law@cygnus.com)
165 * typeck.c (expand_target_expr): Make definition match declaration.
167 * class.c (get_basefndecls): Make definition match declaration.
169 Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com>
171 * input.c (sub_getch): Eventually give up and release the input file.
173 * decl.c (cp_finish_decl): If #p i/i, put inline statics in the
176 * call.c (joust): Tweak message.
178 Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net>
180 * error.c (type_as_string): Put const/volatile on template type
181 parameters where appropriate.
183 Sat Aug 23 17:47:22 1997 Jeffrey A Law (law@cygnus.com)
185 * call.c (strictly_better): Make arguments unsigned ints.
187 Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com>
189 * lex.c (real_yylex): Refer to __complex instead of complex.
191 Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
193 * lex.c (real_yylex): Don't use getc directly.
195 Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com>
197 * call.c (is_subseq): Don't try to be clever.
199 Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
201 * parse.y, pt.c: Include "except.h".
202 * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
203 error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
204 lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
205 sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
208 Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com>
210 * decl2.c (mark_vtable_entries): Instead of replacing pure
211 virtuals with a reference to __pure_virtual, copy the decl and
214 Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com>
216 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
218 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
220 * pt.c (instantiate_class_template): Call repo_template_used
221 before finish_prevtable_vardecl.
223 * call.c (is_subseq): New fn.
224 (compare_ics): Use it.
226 * repo.c (finish_repo): Don't crash on no args.
228 * parse.y (named_complex_class_head_sans_basetype): Handle
229 explicit global scope.
230 * decl2.c (handle_class_head): New fn.
232 * pt.c (unify): Add CONST_DECL case.
234 Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
236 * rtti.c (permanent_obstack): Fix decl to not be a pointer.
238 * cp-tree.h (report_type_mismatch): Add prototype.
239 * call.c (build_overload_call_real): Remove erroneous fourth
240 argument to report_type_mismatch.
241 (build_user_type_conversion_1): Remove erroneous second arg to
243 (build_new_function_call): Likewise.
244 (build_object_call): Likewise.
245 (build_new_op): Likewise.
246 (build_new_method_call): Likewise.
248 Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com>
250 * error.c (dump_decl): Don't bother processing a function with no
253 * method.c (emit_thunk): Call init_function_start in the macro case.
255 Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
257 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
258 defined and used to set flag_vtable_thunks.
260 Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com>
262 * parse.y: Don't clear the inlines from their obstack until they've
265 * decl.c (duplicate_decls): Don't complain about exception
266 specification mismatch if flag_exceptions is off.
268 Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com>
270 * Make-lang.in (c++.distclean): Remove g++.c on make distclean.
272 Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com>
274 * cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
275 * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
276 Include <stdio.h> before include files that formerly used STDIO_PROTO.
278 * decl.c, g++spec.c, lex.c, method.c, repo.c:
279 Include "config.h" first, as per autoconf manual.
281 Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com>
283 * decl.c (duplicate_decls): Tweak wording.
284 * lex.c (do_pending_defargs): Don't die if we see a default arg
285 that isn't a DEFAULT_ARG.
286 * error.c (dump_expr): Handle DEFAULT_ARG.
288 * decl2.c (lang_decode_option): Handle -fhandle-exceptions.
289 * lang-options.h: Add -fhandle-exceptions.
291 * class.c (build_vtable): vtables are artificial.
292 (prepare_fresh_vtable): Likewise.
294 Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
296 * cvt.c (ocp_convert): After converting to the target type, set
297 LOOKUP_NO_CONVERSION.
299 * call.c (joust): Warn about potentially confusing promotion rules
301 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
303 Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com>
305 * exception.cc: Declare __terminate_func with noreturn attribute.
307 Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
309 * parse.y: Break out eat_saved_input, handle errors.
310 (function_try_block): Use compstmt instead of compstmt_or_error.
312 Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
314 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
316 Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
318 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
319 existence of cc1plus check whether $(LANGUAGES) contains C++.
321 Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
323 * method.c (do_build_copy_constructor): When copying an anonymous
324 union member loop around to handle nested anonymous unions. Use
325 the offset of the member relative to the outer structure, not the
328 Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
330 * call.c (resolve_args): New fn.
331 (build_new_function_call): Use it.
332 (build_object_call): Likewise.
333 (build_new_method_call): Likewise.
335 Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
337 * call.c (build_over_call): tsubst all default parms from templates.
339 Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
341 * decl.c (struct cp_function): Add static_labelno.
342 (push_cp_function_context): Save it.
343 (pop_cp_function_context): Restore it.
345 Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com>
347 * typeck.c (build_component_ref_1): Convert from reference.
349 Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
351 * parse.y (current_declspecs, prefix_attributes): Initialize to
354 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
355 before we try to force it to be a TREE_LIST.
356 (decl): Make sure $1.t is non-nil.
358 Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com>
360 * pt.c (uses_template_parms): Handle template first-parse codes.
362 * decl.c (cp_finish_decl): Only warn about user-defined statics.
364 Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com>
366 * pt.c (unify): Handle BOOLEAN_TYPE.
368 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
369 * pt.c (tsubst): Don't set it.
370 * call.c (build_over_call): Use uses_template_parms.
372 Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com>
374 * method.c (build_overload_nested_name): Use static_labelno
375 instead of var_labelno.
376 (build_qualified_name): New fn.
377 (build_overload_name): Split out from here.
378 (build_static_name): Use build_qualified_name.
379 * decl.c (cp_finish_decl): Statics in extern inline functions
381 (start_function): Initialize static_labelno.
383 Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
385 * class.c (finish_struct_methods): add check of warn_ctor_dtor_privacy
386 before "all member functions in class [] are private"
388 Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
390 * lex.c (do_scoped_id): convert_from_reference.
391 * init.c (build_offset_ref): Likewise.
393 Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
395 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
397 Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com>
399 * typeck.c (get_member_function_from_ptrfunc): Promote index
402 Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com>
404 * tree.c (layout_basetypes): Move non-virtual destructor warning.
405 * decl.c (xref_basetypes): Remove non-virtual destructor warning.
407 Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com>
409 * decl.c (grokdeclarator): Call add_defarg_fn for the function
411 * lex.c (add_defarg_fn): Adjust.
412 (do_pending_defargs): Adjust. Don't skip the first parm.
414 Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com>
416 * decl.c (build_enumerator): Global enumerators are also readonly.
418 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
419 (build_dynamic_cast): Call it and convert_from_reference.
421 * lex.c (add_defarg_fn): New fn.
422 (snarf_defarg): Don't add to defarg_types.
423 (do_pending_defargs): Lose defarg_types. All fns we process now
425 * decl.c (grokfndecl): Call add_defarg_fn.
427 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
428 * cp-tree.def: Add DEFAULT_ARG.
429 * spew.c (yylex): Call snarf_defarg as appropriate.
430 * parse.y: New tokens DEFARG and DEFARG_MARKER.
431 (defarg_again, pending_defargs, defarg, defarg1): New rules.
432 (structsp): Use pending_defargs.
433 (parms, full_parm): Use defarg.
434 * lex.c (init_lex): Initialize inline_text_firstobj.
435 (do_pending_inlines): Never pass the obstack to feed_input.
436 (process_next_inline): Call end_input instead of restore_pending_input.
437 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
438 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
439 * input.c (end_input): New fn.
440 (sub_getch): At the end of some fed input, just keep returning EOF
441 until someone calls end_input.
442 Remove 'obstack' field from struct input_source.
443 * decl.c (grokparms): Handle DEFAULT_ARG.
444 (replace_defarg): New fn.
445 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
447 Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com>
449 * call.c (implicit_conversion): If nothing else works, try binding
450 an rvalue to a reference.
452 Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com>
454 * decl.c (init_decl_processing): fix Jun 30 patch -- move
455 ifndef for Cygwin32 to include SIGSEGV.
457 Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com>
459 * class.c (finish_struct_1): Only complain about pointers without
460 copy stuff if there are any constructors.
462 * rtti.c (build_dynamic_cast): Call complete_type on the types.
464 * decl.c (grokfndecl): If the function we chose doesn't actually
467 * decl2.c (grokclassfn): Don't specify 'const int' for the
468 artificial destructor parm.
470 * pt.c (type_unification): If we are called recursively, nothing
473 Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com>
475 * decl.c (init_decl_processing): Stop trying to catch signals
476 other than SIGABRT since the Cygwin32 library doesn't support
477 them correctly yet. This fixes a situation in which g++ causes
478 a hang on SIGSEGVs and other such signals in our Win32-hosted
481 Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com>
483 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
485 Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com>
487 * typeck2.c (store_init_value): Always return the value if our
488 type needs constructing.
490 * method.c (hack_identifier): Convert class statics from
493 Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com>
495 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
497 Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com>
499 * typeck.c (c_expand_return): Make sure we clean up temporaries at
502 Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
504 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
506 Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com>
508 * except.c (expand_builtin_throw): Add support
509 -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
511 Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com>
513 * repo.c (extract_string): Null-terminate.
515 * cp-tree.h (TI_SPEC_INFO): New macro.
516 (CLASSTYPE_TI_SPEC_INFO): New macro.
517 * pt.c (push_template_decl): Correctly determine # of template parms
520 * call.c (compare_ics): Really fix 'this' conversions.
522 * pt.c (do_decl_instantiation): Don't crash on explicit inst of
525 * pt.c (push_template_decl): Complain about mismatch in # of
526 template parms between a class template and a member template.
528 Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com>
530 * method.c (synthesize_method): You can't call
531 function_cannot_inline_p after finish_function.
532 * decl.c (finish_function): Turn on flag_inline_functions and turn
533 off DECL_INLINE before handing a synthesized method to the
536 Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com>
538 * method.c (synthesize_method): Remove July 30 change to never set
539 DECL_INLINE if at_eof.
541 Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com>
543 * xref.c (GNU_xref_member): Ensure that the node has a
544 decl_lang_specific part before checking DECL_FRIEND_P.
546 Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com>
548 * pt.c (instantiate_class_template): Diagnose non-class types used
551 Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com>
553 * typeck.c (build_conditional_expr): Use convert_for_initialization
554 instead of convert_and_check.
556 Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
558 * parse.y (typespec): Don't pedwarn for typeof.
560 Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com>
562 * repo.c (finish_repo): Only check changes if we would write a
565 * call.c (compare_ics): Fix handling of 'this' conversions.
567 * pt.c (do_decl_instantiation): Support static data too. Rename
568 from do_function_instantiation.
572 * repo.c (extract_string): New fn.
573 (get_base_filename): Use it.
574 (init_repo): Compare old args with current args.
576 Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com>
578 * Makefile.in, Make-lang.in: Protect C-ls with a comment
579 character, idea from Paul Eggert <eggert@twinsun.com>.
581 Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com>
583 * typeck.c (c_expand_return): Be more persistent in looking for
586 * cvt.c (build_up_reference): Use NOP_EXPR for switching from
587 pointer to reference.
589 * class.c (build_vbase_path): Don't do anything if PATH has no steps.
591 Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com>
593 * init.c (build_member_call, build_offset_ref):
594 Use do_scoped_id instead of do_identifier.
596 * cvt.c (convert): Remove bogosity.
598 Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
600 * cvt.c (build_up_reference): Do checks of ARGTYPE and
601 TARGET_TYPE before trying to use get_binfo.
603 Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com>
605 * cvt.c (build_up_reference): Call get_binfo to get access control.
607 * decl2.c (import_export_decl): If we don't support weaks, leave
610 Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com>
612 * except.c (expand_builtin_throw): Add support for machines that
613 cannot access globals after throw's epilogue when
614 -fno-sjlj-exceptions is used.
616 Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com>
618 * parse.y: 'std::' becomes '::'.
619 * lex.c (real_yylex): Remove 'namespace' warning.
620 * init.c (build_member_call): Ignore 'std::'.
621 (build_offset_ref): Likewise.
622 * decl2.c (do_using_directive): Ignore 'using namespace std;'.
623 (do_toplevel_using_decl): Ignore 'using std::whatever'.
624 * decl.c (push_namespace): Just sorry.
625 (pop_namespace): Nop.
626 (init_decl_processing): Declare std namespace.
628 Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com>
630 * search.c (push_class_decls): A name which ambiguously refers to
631 several instantiations of the same template just refers to the
634 Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com>
636 * decl.c (build_enumerator): fix problem with unsigned long
637 enumerated values being smashed to ints, causing overflow
638 when computing next enumerated value. (for enum values around
641 Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com>
643 * typeck.c (build_component_ref): Only call mark_used on a decl.
645 Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
647 * typeck.c (build_c_cast): Make the check for a ptr to function
648 more specific before possible default_conversion call.
650 Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
652 * except.c (expand_exception_blocks): Simplify and fix and make
653 sure we don't end a region in a sequence, as expand_end_bindings
656 Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
658 * except.c (init_exception_processing): Mark terminate as not
659 returning so that the optimizer can optimize better.
661 Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
663 * cvt.c (convert): Don't do any extra work, if we can avoid it
666 Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com>
668 * *.[chy]: Change cp_convert to ocp_convert, change convert to
669 cp_convert. convert is now reserved for the backend, and doesn't
670 have the semantics a frontend person should ever want.
672 Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com>
674 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
675 Lose -traditional support.
677 Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com>
679 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
681 * parse.y (self_reference): Do it for templates, too.
682 * class.c (pushclass): Don't overload_template_name; the alias
683 generated by build_self_reference serves the same purpose.
685 * tree.c (list_hash): Make static, take more args.
686 (list_hash_lookup): Likewise.
687 (list_hash_add): Make static.
688 (list_hash_canon): Lose.
689 (hash_tree_cons): Only build a new node if one isn't already in the
691 (hash_tree_chain): Use hash_tree_cons.
693 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
694 of calling lookup_name.
696 Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com>
698 * pt.c (instantiate_class_template): TYPE_VALUES for an enum
699 doesn't refer to the CONST_DECLs.
701 Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com>
703 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
705 (expand_class_desc): Convert the last argument to a sizetype.
707 Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
709 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
710 __real__): Add reswords.
711 * hash.h: Regenerate.
712 * lex.h (rid): Add RID_COMPLEX.
713 (RID_LAST_MODIFIER): Set to RID_COMPLEX.
714 * lex.c (init_lex): Add building of RID_COMPLEX.
715 (real_yylex): General cleanup in line with what c-lex.c also has,
716 sans the cruft for traditional; add handling of SPEC_IMAG, complex
717 types, and imaginary numeric constants.
718 * parse.y (REALPART, IMAGPART): Add tokens.
719 (unary_expr): Add REALPART and IMAGPART rules.
720 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
721 * decl.c (complex_{integer,float,double,long}_type_node): Define
723 (init_decl_processing): Set up the types.
724 (grokdeclarator): Add handling of RID_COMPLEX. Set and use
725 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
726 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
727 * cvt.c (cp_convert): Handle COMPLEX_TYPE.
728 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
730 * method.c (build_overload_name): Add handling of the different
731 COMPLEX_TYPEs, prefixing them with `J'.
732 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
734 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
735 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
736 (mapcar): Handle COMPLEX_CST.
737 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
738 (common_type): Add code for complex types.
739 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
740 (convert_for_assignment): Likewise.
741 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
743 Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com>
745 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
746 tsubst_expr, as it might try to do overload resolution.
748 Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com>
750 * pt.c (instantiate_class_template): Oops.
752 Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com>
754 * cp-tree.def: Add TAG_DEFN.
755 * pt.c (tsubst_enum): New fn.
756 (instantiate_class_template): Use it.
757 (tsubst_expr): Support TAG_DEFN.
758 (tsubst): Support local enums.
759 (tsubst_copy): Likewise.
760 * decl.c (finish_enum): Likewise.
761 (start_enum): If this is a local enum, switch to permanent_obstack.
763 Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com>
765 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
766 (finish_function): Put the base init code for constructors just
767 after the parm cleanup insns.
768 (struct cp_function): Add last_parm_cleanup_insn.
769 (push_cp_function_context): Likewise.
770 (pop_cp_function_context): Likewise.
772 Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com>
774 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
776 Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
778 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
779 for THUNK_FNDECL before we switch to temporary allocation.
781 Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
783 * call.c (build_new_op): Handle null arg2 for ?:.
785 Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
787 * except.c (expand_exception_blocks): Ensure that we flow through
788 the end of the exception region for the exception specification.
789 Move exception region for the exception specification in, so that
790 it doesn't protect the parm cleanup. Remove some obsolete code.
791 * decl.c (store_parm_decls): Likewise.
792 (finish_function): Likewise.
794 Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com>
796 * init.c (build_new): Fix nothrow handling.
798 Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
800 * init.c (emit_base_init): Don't warn about the initialization
801 list for an artificial member.
803 Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
805 * expr.c (do_case): Handle !START case for the error msg.
807 Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com>
809 * decl2.c, lang-options.h: New option -Weffc++.
810 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
813 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
814 to MULTIPLE_SYMBOL_SPACES.
816 Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com>
818 * method.c (emit_thunk, generic case): Set current_function_is_thunk.
820 * method.c (emit_thunk, macro case): Set up DECL_RESULT.
822 * typeck.c (c_expand_return): Don't complain about returning void
823 to void in an artificial function.
824 * method.c (make_thunk): Change settings of READONLY/VOLATILE,
825 don't set DECL_RESULT, set DECL_ARTIFICIAL.
826 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
828 Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com>
830 * init.c (init_decl_processing): Add supoprt for setjmp/longjmp based
832 * except.c (init_exception_processing): Likewise.
833 (expand_end_catch_block): Likewise.
834 (expand_exception_blocks): Likewise.
835 (expand_throw): Likewise.
836 * exception.cc (__default_terminate): Likewise.
838 * init.c (perform_member_init): Use new method of expr level
839 cleanups, instead of cleanups_this_call and friends.
840 (emit_base_init): Likewise.
841 (expand_aggr_vbase_init_1): Likewise.
842 (expand_vec_init): Likewise.
843 * decl.c (cp_finish_decl): Likewise.
844 (expand_static_init): Likewise.
845 (store_parm_decls): Likewise.
846 (cplus_expand_expr_stmt): Likewise.
847 * decl2.c (finish_file): Likewise.
849 * Make-lang.in (exception.o): Ok to compile with -O now.
851 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
852 we know it will be done later by the backend.
854 * decl2.c (lang_f_options): Remove support for short temps.
855 * lang-options.h: Likewise.
857 Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com>
859 * tree.c (varargs_function_p): New fn.
860 * method.c (emit_thunk): Replace broken generic code with code to
861 generate a heavyweight thunk function.
863 Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com>
865 * pt.c (process_template_parm): pedwarn about floating-point parms.
867 * decl.c (grokdeclarator): inline no longer implies static.
869 * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
871 Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
873 * class.c (check_for_override): The signature of an overriding
874 function is not changed.
876 * call.c (build_over_call): Move setting of conv into the loop.
877 Note: this change, along with the related changes of the 18th thru
878 the 20th of April, fix an infinite loop problem in conversions.
880 Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
882 * call.c (build_user_type_conversion_1): Really ignore rvalue
883 conversions when looking for a REFERENCE_TYPE.
885 * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
886 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
887 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
888 (build_unary_op): Likewise.
889 * call.c (build_over_call): See through a CONVERT_EXPR around the
890 ADDR_EXPR for on a temporary.
891 * typeck.c (c_expand_return): See through a CONVERT_EXPR around
892 the ADDR_EXPR for a local variable.
894 Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com>
896 * call.c (build_user_type_conversion_1): If we're trying to
897 convert to a REFERENCE_TYPE, only consider lvalue conversions.
898 (build_new_function_call): Print candidates.
899 (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
900 (reference_binding): Binding a temporary of a reference-related type
903 Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
905 * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
906 * tinfo2.cc (type_info::before): Likewise.
908 Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com>
910 * call.c (implicit_conversion): Oops.
912 Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com>
914 * call.c (implicit_conversion): Try to find a reference conversion
915 before binding a const reference to a temporary.
917 Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com>
919 * exception.cc (__default_unexpected): Call terminate by default,
920 so that if the user overrides terminate, the correct function will
923 Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com>
925 * parse.y (left_curly): Avoid trying to use any fields of
926 error_mark_node, as there aren't any.
928 Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com>
930 * lex.c (do_identifier): Avoid breaking on overloaded methods
931 as default arguments.
933 Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se>
935 * call.c (add_template_candidate): Initialize the variable "dummy".
937 Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
939 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
940 before we try to use TYPE_SIZE and TREE_CONSTANT on it.
942 Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
944 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
945 (debug_binfo): Delete decl, not needed.
947 * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
948 promotes_to_aggr_type): Delete fns.
949 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
950 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
951 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
953 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
955 * friend.c (is_friend_type): Delete fn.
956 * cp-tree.h (is_friend_type): Delete decl.
958 * decl.c (original_result_rtx, double_ftype_double,
959 double_ftype_double_double, int_ftype_int, long_ftype_long,
960 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
961 * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
963 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
965 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
967 * decl.c (pushdecl_nonclass_level): #if 0, unused.
968 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
970 * lex.c (reinit_lang_specific): #if 0, unused.
971 * cp-tree.h (reinit_lang_specific): #if 0 decl.
973 * decl.c (revert_static_member_fn): Make static, adding fwd decl.
974 * cp-tree.h (revert_static_member_fn): Delete decl.
976 * class.c (root_lang_context_p): Delete fn.
977 * cp-tree.h (root_lang_context_p): Delete decl.
979 * decl.c (set_current_level_tags_transparency): #if 0, unused.
980 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
982 * lex.c (set_vardecl_interface_info): Make static.
983 * cp-tree.h (set_vardecl_interface_info): Delete decl.
985 * call.c (find_scoped_type): Make static.
986 * cp-tree.h (find_scoped_type): Delete decl.
988 * search.c (convert_pointer_to_vbase): Make static.
989 * cp-tree.h (convert_pointer_to_vbase): Delete decl.
991 * decl.c (const_ptr_type_node): Likewise.
992 * cp-tree.h (const_ptr_type_node): Delete decl.
994 * typeck.c (common_base_type): Make static.
995 * cp-tree.h (common_base_types): Delete erroneous decl.
997 * pt.c (classtype_mangled_name): Make static.
998 * cp-tree.h (classtype_mangled_name): Delete decl.
1000 * lex.c (check_newline): Make static.
1001 * cp-tree.h (check_newline): Delete decl.
1003 * typeck.c (build_x_array_ref): Delete fn, same idea as
1005 * cp-tree.h (build_x_array_ref): Delete decl.
1007 * lex.c (copy_decl_lang_specific): Delete fn, same idea as
1009 * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
1011 * class.c (build_vtable_entry): Make static.
1012 * cp-tree.h (build_vtable_entry): Delete decl.
1014 * class.c (build_vbase_pointer): Make static.
1015 * cp-tree.h (build_vbase_pointer): Delete decl.
1017 * sig.c (build_sptr_ref): Add forward decl and make static.
1018 * cp-tree.h (build_sptr_ref): Delete decl.
1020 * call.c (build_new_method_call): Add forward decl and make static.
1021 * cp-tree.h (build_new_method_call): Delete decl.
1023 * call.c (build_object_call): Make static.
1024 * class.c (check_for_override, complete_type_p, mark_overriders):
1026 * decl.c (cp_function_chain): Likewise.
1027 * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
1029 * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
1031 * tree.c (build_cplus_array_type_1): Likewise.
1032 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
1033 (comp_target_parms): Likewise.
1035 * init.c (build_builtin_call): Make static.
1036 * cp-tree.h (build_builtin_call): Delete decl.
1038 * typeck.c (binary_op_error): Delete decl.
1039 * cp-tree.h (binary_op_error): Likewise.
1041 Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1043 * call.c (build_method_call): Compare against error_mark_node
1044 directly, rather than the ERROR_MARK tree code.
1045 * cvt.c (cp_convert): Likewise.
1046 * decl.c (print_binding_level): Likewise.
1047 (duplicate_decls): Likewise.
1048 (grokdeclarator): Likewise.
1049 (grokdeclarator): Likewise.
1050 * init.c (expand_aggr_init_1): Likewise.
1051 (decl_constant_value): Likewise.
1052 * method.c (build_opfncall): Likewise.
1053 (hack_identifier): Likewise.
1054 * typeck.c (build_modify_expr): Likewise.
1056 * typeck.c (build_c_cast): Don't decl TYPE as register tree.
1058 Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1060 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
1062 * pt.c (coerce_template_parms): Add new error message.
1064 * method.c (build_overload_value): Implement name mangling for
1065 floating-point template arguments.
1067 * method.c (build_overload_int, icat, dicat): Fix mangling of template
1068 arguments whose absolute value doesn't fit in a signed word.
1070 Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1072 * friend.c: New file; put all of the friend stuff in here.
1073 * init.c: Instead of here.
1074 * Makefile.in (CXX_OBJS): Add friend.o.
1075 (friend.o): Add dependencies.
1076 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
1078 Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com>
1080 * call.c (build_scoped_method_call): Complain if the scope isn't a
1083 Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com>
1085 * parse.y (left_curly): Don't crash on erroneous type.
1087 * init.c (build_delete): Fix type of ref.
1089 Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com>
1091 * search.c (get_vbase_1): Renamed from get_vbase.
1092 (get_vbase): Wrapper, now non-static.
1093 (convert_pointer_to_vbase): Now static.
1095 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
1096 * init.c (build_delete): Pass one.
1097 (build_partial_cleanup_for): Use build_scoped_method_call.
1098 * decl.c (finish_function): Pass a binfo.
1100 Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1102 * call.c (build_over_call): Only synthesize non-trivial copy ctors.
1104 * typeck.c (build_c_cast): Lose other reference to flag.
1106 * call.c (build_field_call): Don't look for [cd]tor_identifier.
1107 * decl2.c (delete_sanity): Remove meaningless use of
1108 LOOKUP_HAS_IN_CHARGE.
1109 * decl.c (finish_function): Use build_scoped_method_call instead
1110 of build_delete for running vbase dtors.
1111 * init.c (build_delete): Call overload resolution code instead of
1112 duplicating it badly.
1114 Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com>
1116 * call.c (build_over_call): Call mark_used before trying to elide
1119 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
1121 Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1123 * typeck.c (build_modify_expr): Always pedwarn for a cast to
1124 non-reference used as an lvalue.
1126 Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com>
1128 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
1130 Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com>
1132 * parse.y (handler): Fix template typo.
1134 Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1136 * error.c (lang_decl_name): New fn.
1137 * tree.c (lang_printable_name): Use it.
1139 Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com>
1141 * g++spec.c: Include config.h so that we can catch bzero #defines
1142 from the config file.
1144 Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com>
1146 * new1.cc: Include a declaration for malloc, to avoid warning, and
1147 avoid lossing on systems that require one (ones that define malloc
1150 Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1152 * decl2.c (max_tinst_depth): New variable.
1153 (lang_decode_option): Parse "-ftemplate-depth-NN" command line
1155 * pt.c (max_tinst_depth): Variable moved.
1156 * lang-options.h: Declare "-ftemplate-depth-NN" command line option
1159 Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com>
1161 * decl.c (xref_basetypes): Allow a base class that depends on
1162 template parms to be incomplete.
1164 * decl2.c (build_expr_from_tree): Support typeid(type).
1165 * rtti.c (get_typeid): Support templates.
1166 (expand_si_desc, expand_class_desc): Fix string length.
1167 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
1169 Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
1171 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
1173 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
1175 Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1177 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
1178 smashes together template and non-template decls of the same
1181 Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
1183 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
1185 Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1187 * decl.c (duplicate_decls): Next route, pedwarn about different
1188 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
1190 Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1192 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
1193 (struct lang_type): Delete has_default_implementation member.
1194 Increase dummy to 21.
1195 * decl.c (start_method): Delete usage.
1197 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
1198 store_after_parms, start_decl_1, auto_function): Add decls.
1199 (get_arglist_len_in_bytes, declare_implicit_exception,
1200 have_exceptions_p, make_type_decl, typedecl_for_tag,
1201 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
1202 build_component_type_expr, cplus_exception_name,
1203 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
1204 * call.c (build_this): Make static.
1205 (is_complete): Likewise.
1206 (implicit_conversion): Likewise.
1207 (reference_binding): Likewise.
1208 (standard_conversion): Likewise.
1209 (strip_top_quals): Likewise.
1210 (non_reference): Likewise.
1211 (build_conv): Likewise.
1212 (user_harshness): Likewise.
1213 (rank_for_ideal): Likewise.
1214 * decl.c (start_decl_1): Delete forward decl.
1215 (push_decl_level): Make static.
1216 (resume_binding_level): Make static.
1217 (namespace_bindings_p): Make static.
1218 (declare_namespace_level): Make static.
1219 (lookup_name_real): Make static.
1220 (duplicate_decls): Make static. Take register off NEWDECL and
1222 * decl2.c (get_sentry): Make static.
1223 (temp_name_p): Delete fn.
1224 * except.c (auto_function): Delete decl.
1225 * lex.c (handle_{cp,sysv}_pragma): Make static.
1226 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
1227 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
1228 * pt.c (tsubst_expr_values): Make static.
1229 * rtti.c (combine_strings): Delete decl.
1231 Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1233 * pt.c (push_template_decl): Handle getting a typedef.
1235 * call.c (build_new_function_call): Complain about void arg.
1237 Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1239 * decl.c (duplicate_decls): Give pedwarn of different exceptions
1240 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
1242 Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
1244 * except.c (expand_throw): Don't expand the cleanup tree here,
1245 since we are not going to write the rtl out. Fixes problem with
1248 Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
1250 * Make-lang.in: Add $(exeext) as necessary.
1252 Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
1254 * parse.y (handler_seq): Must have at least one catch clause.
1256 Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1258 * call.c (add_builtin_candidate): Restore ?: hack.
1260 * decl.c (grok_op_properties): More warnings.
1262 Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1264 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
1265 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
1267 * decl.c (duplicate_decls): Scale back to a warning, and only do
1270 Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
1272 * decl.c (duplicate_decls): pedwarn mismatched exception
1275 Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
1277 * call.c (build_new_method_call): Don't display the invisible
1278 argument for controlling virtual bases.
1280 Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
1282 * new: Add nothrow new and delete, bad_alloc and throw specifications
1284 * decl.c (init_decl_processing): Add throw specification for delete.
1285 * new.cc (nothrow): Define.
1286 * lex.c (real_yylex): Removing warning that throw and friends are
1288 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
1289 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
1290 * Make-lang.in: Add new{1,2}.{cc,o}.
1292 Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
1294 * lex.c (cons_up_default_function): Fix return type of synth op=.
1296 * init.c (emit_base_init): Add warnings for uninitialized members
1299 * decl.c (xref_basetypes): Add warning for non-polymorphic type
1300 with destructor used as base type.
1302 * decl.c (grok_op_properties): Add warning for op= returning void.
1303 * typeck.c (c_expand_return): Add warning for op= returning anything
1306 * class.c (finish_struct_1): Add warning for class with pointers
1307 but not copy ctor or copy op=.
1309 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
1310 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
1311 (instantiate_template): If -fexternal-templates, add this
1312 instantiation to pending_templates.
1314 * decl2.c (copy_assignment_arg_p): Disable old hack to support
1317 Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
1319 * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
1321 Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
1323 * call.c (standard_conversion): Handle getting references. Tack
1324 on RVALUE_CONV here. Do it for non-class types, too.
1325 (reference_binding): Pass references to standard_conversion.
1326 (implicit_conversion): Likewise.
1327 (add_builtin_candidate): Disable one ?: kludge.
1328 (convert_like): Handle RVALUE_CONVs for non-class types.
1329 (joust): Disable the other ?: kludge.
1331 Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1333 * decl.c (init_decl_processing): Add code to build up common
1334 function types beforehand, to avoid creation then removal of
1335 things already in the hash table.
1337 Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
1339 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
1342 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
1343 current_template_parms.
1345 Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
1347 * search.c (lookup_field): Don't return a function, check want_type.
1349 Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1351 * init.c (build_new): Make sure PLACEMENT has a type.
1353 Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1355 * init.c (build_new): Support new (nothrow).
1357 Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1359 * pt.c (instantiate_decl): Also do push_to_top_level before setting
1362 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
1363 * pt.c (tsubst): Defer instantiation of default args.
1364 * call.c (build_over_call): Until here.
1366 Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1368 * search.c (lookup_field): Make sure we have an
1369 IDENTIFIER_CLASS_VALUE before we try to return it.
1371 Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1373 * call.c (build_method_call): Delete unused var PARM.
1374 (build_overload_call_real): Likewise.
1375 (build_object_call): Delete unused var P.
1376 (build_new_op): Likewise.
1377 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
1378 var definitions, which are never used.
1379 (shadow_tag): Delete unused var FN.
1380 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
1381 * init.c (build_new): Delete unused var ALLOC_TEMP.
1382 * method.c (hack_identifier): Delete unused var CONTEXT.
1383 (do_build_copy_constructor): Delete unused var NAME.
1384 (synthesize_method): Delete unused var BASE.
1385 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
1386 * rtti.c (build_headof): Delete unused var VPTR.
1387 (get_typeid): Delete unused var T.
1388 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
1390 (build_ptrmemfunc): Delete unused vars U and NINDEX.
1391 * typeck2.c (build_functional_cast): Delete unused var BINFO.
1393 Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
1395 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
1396 things in a type being defined.
1397 * decl.c (finish_enum): Reverse the values so that they are in
1400 * pt.c (instantiate_class_template): Don't initialize
1401 BINFO_BASETYPES until the vector is filled out.
1402 (unify): Don't abort on conflicting bindings, just fail.
1403 (instantiate_decl): Do push_tinst_level before any tsubsting.
1405 * method.c (build_overload_value): Handle getting a
1406 TEMPLATE_CONST_PARM for a pointer.
1408 Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
1410 * init.c (expand_member_init): Don't give 'not a base' error for
1413 * pt.c (instantiate_decl): Call import_export_decl later.
1415 * pt.c (instantiate_class_template): Return a value.
1417 * parse.y (extension): New rule for __extension__.
1418 (extdef, unary_expr, decl, component_decl): Use it.
1420 Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
1422 * class.c (base_binfo): Remove unused base_has_virtual member.
1423 (finish_base_struct): Likewise.
1424 (finish_struct_1): Likewise.
1426 Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com>
1428 * search.c (expand_upcast_fixups): Fix bogus code generation
1429 problem where the generated code uses the wrong index into the
1430 runtime built vtable on the stack. Old code could clobber random
1433 Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com>
1435 * init.c (perform_member_init): Make sure the partial EH cleanups
1436 live on the function_obstack.
1438 Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com>
1440 * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
1441 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
1443 Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com)
1445 * decl.c (grokvardecl): Avoid ANSI style initialization.
1447 Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com>
1449 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
1451 Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com>
1453 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
1455 Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1457 * g++spec.c (lang_specific_driver): Put missing hyphen in front of
1458 arguments we compare against. Start the count of I at 1, not 0,
1459 since argv[0] is still the command.
1461 Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com>
1463 * lang-specs.h: Accept .cp as an C++ extension.
1465 Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1467 * cp-tree.h (ptr_reasonably_similar): Add decl.
1469 Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1471 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
1472 pointer. New local SPECBITS with the parm's value.
1473 (grokdeclarator): Pass &specbits down.
1475 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
1476 before we try to do C_SET_EXP_ORIGINAL_CODE on it.
1478 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
1479 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
1481 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
1482 not an error_mark_node.
1484 Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com>
1486 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
1487 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
1489 Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1491 * decl.c (grokdeclarator): When giving an anonymous struct a name,
1492 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
1495 * typeck2.c (build_m_component_ref): If component is a pointer
1496 to data member, resolve the OFFSET_REF now.
1498 * call.c (convert_like): Don't go into infinite recursion.
1500 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
1502 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
1503 * tree.c (layout_basetypes): And on the vbase ptr.
1505 Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1507 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
1508 CHAR_TYPE_SIZE so bool is always the same size as another type.
1510 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
1512 Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com>
1514 * decl2.c (grok_x_components): Remove synthesized methods from
1515 TYPE_METHODS of an anonymous union, complain about member
1517 * decl.c (shadow_tag): Wipe out memory of synthesized methods in
1519 (finish_function): Just clear the DECL_RTL of our arguments.
1521 Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1523 * decl2.c (finish_file): Emit DWARF debugging info for static data
1526 * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
1528 Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com>
1530 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
1533 Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1535 * Make-lang.in (g++-cross$(exeext)): Fix typo.
1537 Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1539 Make the g++ driver now be a standalone program, rather than one
1540 that tries to run the gcc driver after munging up the options.
1541 * Make-lang.in (g++.c, g++spec.o): New rules.
1542 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
1544 (g++$(exeext)): New rule, based on xgcc rule.
1545 (g++-cross$(exeext)): Now just copies g++$(exeext) over.
1546 * g++spec.c: New file.
1547 * g++.c: Removed file.
1549 Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com>
1551 * cvt.c (build_up_reference): Arrange for any temporary values
1552 that have been keep in registers until now to be put into memory.
1554 Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1556 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
1557 that make -j3 bootstrap works better.
1559 Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com>
1561 * decl.c (pushtag): Do pushdecl for anon tags.
1563 Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com>
1565 * typeck.c (c_expand_return): Fix logic.
1566 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
1568 Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com>
1570 * g++.c (main): Make sure arglist has a final NULL entry. Add
1571 PEXECUTE_LAST to the flags passed to pexecute, as otherwise
1572 stdin/stdout of the invoked program are redirected to
1575 Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1577 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
1579 Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com>
1581 * init.c (resolve_offset_ref): Handle obj.vfn better.
1582 * typeck.c (build_component_ref): Set TREE_TYPE on result from
1585 Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com>
1587 * typeck.c (convert_for_assignment): Also handle anachronistic
1588 implicit conversions from (::*)() to cv void*.
1589 * cvt.c (cp_convert_to_pointer): Likewise.
1591 Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com>
1593 * lex.c (handle_cp_pragma): Fix bogus warning.
1595 Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com>
1597 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
1598 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
1600 Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1602 * class.c (finish_struct_1): Support DWARF2_DEBUG.
1603 * search.c (dfs_debug_mark): Likewise.
1604 * decl2.c (finish_vtable_vardecl): Likewise.
1605 * decl.c (pushtag, finish_enum): Likewise.
1606 * lex.c (check_newline): Use debug_* instead of calling *out
1609 Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1611 * Make-lang.in (cplib2.ready): Add else clause to avoid problems
1612 on some picky hosts.
1614 Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1616 * class.c (finish_struct_1): A class has a non-trivial copy
1617 constructor if it has virtual functions.
1619 * cvt.c (cp_convert): Always call a constructor.
1621 * call.c (reference_binding): Still tack on a REF_BIND
1622 for bad conversions.
1623 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
1625 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
1626 (c_expand_return): Likewise.
1627 * typeck2.c (digest_init): Likewise for { }.
1628 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
1629 * cvt.c (cp_convert): Handle failure better.
1631 Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1633 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
1634 of GCC be path-relative.
1636 Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1638 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
1639 it does need choose-temp.o and pexecute.o.
1641 Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1643 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
1644 that we still use it.
1645 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
1647 Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com>
1649 * init.c (expand_default_init): Avoid calling constructors to
1650 initialize reference temps.
1652 * cvt.c (convert_to_reference): Fix.
1654 Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1656 * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
1657 (convert_to_reference): Likewise.
1658 * typeck.c (convert_for_initialization): Likewise.
1659 * init.c (expand_default_init): Likewise.
1660 (expand_aggr_init_1): Likewise.
1661 * cp-tree.h (CONV_NONCONVERTING): Lose.
1662 * typeck.c (build_c_cast): Lose allow_nonconverting parm.
1664 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
1666 Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com>
1668 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
1670 Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1672 * init.c (expand_aggr_init_1): Don't crash on non-constructor
1675 Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1677 * g++.c: Include gansidecl.h.
1678 (VPROTO, PVPROTO, VA_START): Delete.
1679 (choose_temp_base_try, choose_temp_base, perror_exec,
1680 run_dos) [__MSDOS__]: Delete fns.
1681 (pfatal_with_name): Delete fn.
1682 (temp_filename): Declare like in gcc.c.
1683 (pexecute, pwait, choose_temp_base): Declare from gcc.c.
1684 (error_count, signal_count): Define.
1685 (error): Delete both definitions.
1686 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
1687 (pfatal_pexecute): Add fn from gcc.c.
1688 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the
1689 code to use the pexecute stuff also used by gcc.c.
1690 (MIN_FATAL_STATUS): Define.
1691 * Make-lang.in (g++): Add dependency on and linking with
1692 choose-temp.o and pexecute.o.
1694 * cp-tree.h: Include gansidecl.h.
1695 (STDIO_PROTO): Delete #undef/#define.
1696 * cvt.c (NULL): Delete #undef/#define.
1697 * expr.c (NULL): Likewise.
1698 * init.c (NULL): Likewise.
1699 * rtti.c (NULL): Likewise.
1700 * xref.c (NULL): Likewise.
1702 * cp-tree.h (build_user_type_conversion): Add prototype.
1703 * call.c (build_user_type_conversion): Delete prototype. Correct
1704 decl of FLAGS arg to be an int.
1705 * cvt.c (build_user_type_conversion): Likewise.
1707 Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com>
1709 * cp-tree.def: Add TRY_BLOCK and HANDLER.
1710 * except.c (expand_start_catch_block): Support templates.
1711 * parse.y (try_block, handler_seq): Likewise.
1712 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
1714 Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com>
1716 * pt.c (current_template_args): New fn.
1717 (push_template_decl): Use it.
1718 * decl.c (grokdeclarator): Use it.
1720 * decl2.c (build_expr_from_tree): Dereference ref vars.
1722 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
1723 the decl-specifier-seq.
1725 * decl.c (grok_op_properties): Don't force the type of a conversion
1726 op to be complete. Don't warn about converting to the same type
1727 for template instantiations.
1729 * decl2.c (finish_file): Don't call instantiate_decl on synthesized
1732 Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com>
1734 * typeck.c (get_delta_difference): Remove previous bogusness.
1735 Don't give errors if force is set.
1737 Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1739 * decl2.c (finish_file): Don't emit debug info.
1740 * decl.c (pushdecl): Lose obsolete code.
1741 (grokdeclarator): Still do the long long thing after complaining.
1742 * search.c (note_debug_info_needed): Don't do anything if we're in a
1744 * method.c (synthesize_method): For non-local classes,
1745 push_to_top_level first.
1747 Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com>
1749 * typeck.c (get_delta_difference): Add no_error parameter.
1750 (build_ptrmemfunc): Call get_delta_difference with no_error set;
1751 we don't want error messages when converting unrelated
1752 pointer-to-member functions.
1754 Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com>
1756 * error.c (dump_expr): Improve the wording on error messages that
1757 involve pointer to member functions.
1759 Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com>
1761 * cvt.c (cp_convert_to_pointer): Move code for conversions from
1762 (::*)() to void* or (*)() up a bit, so that we can convert from
1763 METHOD_TYPEs as well.
1765 Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1767 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
1768 There are no 'member' types.
1769 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
1770 (build_x_typeid): Handle errors.
1772 Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com>
1774 * typeck.c (convert_for_assignment): Handle anachronistic implicit
1775 conversions from (::*)() to void* or (*)().
1776 * cvt.c (cp_convert_to_pointer): Likewise.
1777 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
1778 conversions from here.
1779 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
1780 * lang-options.h: Likewise.
1781 * decl2.c (warn_pmf2ptr): Define.
1782 * cp-tree.h: Declare it.
1783 * typeck2.c (digest_init): Allow pmfs down into
1784 convert_for_initialization.
1786 Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com>
1788 * typeck.c (c_expand_return): Fix for returning overloaded fn.
1790 Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1792 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
1793 * decl.c (grok_reference_init): Pass DIRECT_BIND.
1794 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use
1796 * call.c (convert_like): Don't pass INDIRECT_BIND.
1797 * typeck.c (convert_arguments): Likewise.
1798 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
1800 Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com>
1802 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
1803 similar code in build_up_ref.
1804 * cvt.c (build_up_reference): Drastically simplify.
1806 Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com)
1808 * typeck.c (signed_or_unsigned_type): If the given type already
1809 as the correct signedness, then just return it.
1811 * typeck.c ({un,}signed_type): If can't do anything, call
1812 signed_or_unsigned_type.
1814 Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com>
1816 * decl2.c (copy_assignment_arg_p): Don't buy the farm if
1817 current_class_type is NULL.
1819 Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com>
1821 * class.c (finish_struct_1): Avoid empty structs by adding a field
1822 so layout_type gets the mode right.
1824 * typeck.c (c_expand_return): Drastically simplify.
1826 Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com>
1828 * typeck.c (decay_conversion): Handle overloaded methods.
1830 Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com>
1832 * call.c (build_over_call): A TARGET_EXPR has side-effects.
1834 Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com>
1836 * cvt.c (convert_to_pointer_force): Add code to support pointer to
1837 member function to pointer to function conversions.
1838 * init.c (resolve_offset_ref): Add code to allow faked up objects,
1839 ignoring them if they are not used, and giving an error, if they
1841 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
1842 code, and so that we can give an error, if we needed an object,
1843 and one was not provided.
1844 (build_c_cast): Don't call default_conversion when we want to
1845 convert to pointer to function from a METHOD_TYPE.
1847 Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com>
1849 * Make-lang.in (cplib2.ready): Fix logic.
1851 * decl.c (shadow_tag): Only complain about non-artificial function
1854 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
1856 Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com>
1858 * expr.c (cplus_expand_expr): Pre-tweak call_target like
1859 expand_inline_function would.
1861 * pt.c (mark_decl_instantiated): If extern_p, call
1862 mark_inline_for_output.
1864 Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com>
1866 * typeck.c (unary_complex_lvalue): Add code to handle intermediate
1869 * typeck.c (get_delta_difference): Fix wording, as we can be used
1870 for pointer to data members.
1872 Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com>
1874 * pt.c (tsubst): If the function decl isn't a member of this
1875 template, return a copy of the decl (including copying the
1876 lang-specific part) so we don't hose ourselves later.
1878 Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1880 * class.c (finish_struct): Remove DWARF-specific tag handling.
1881 * decl.c (pushtag): Likewise.
1882 (finish_function): Always clear DECL_ARGUMENTS on function decls with
1884 * decl2.c (finish_file): Emit DWARF debugging info for static data
1887 Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com>
1889 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
1890 isn't the same as the new one before we whack it.
1892 Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com>
1894 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
1895 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
1896 warn_traditional and warn_strict_prototypes; remove ancient
1897 'overload' code; remove references to flag_traditional.
1899 Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com>
1901 * input.c (sub_getch): Handle 8-bit characters in string literals.
1903 Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com>
1905 * tree.c (mapcar): Handle CONSTRUCTORs.
1906 (copy_to_permanent): Handle expression_obstack properly.
1908 * Make-lang.in (cplib2.txt): Also depend on the headers.
1910 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
1912 (expand_class_desc): Use USItype for offset field.
1913 * tinfo.h (struct __class_type_info): Likewise.
1915 * method.c (build_overload_int): TYPE_PRECISION should be applied
1918 Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com>
1920 * call.c (build_new_op): A COND_EXPR involving void must be a
1923 Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
1925 * typeck.c (build_x_component_ref): New fn.
1926 (build_object_ref): Use it.
1927 * parse.y (primary): Use it.
1928 * decl2.c (build_expr_from_tree): Use it.
1929 * cp-tree.h: Declare it.
1931 * decl.c (start_decl): variable-sized arrays cannot be initialized.
1932 * error.c (dump_type_suffix): Handle variable arrays.
1934 Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1936 * Make-lang.in (exception.o): Put back compiling it with -fPIC.
1938 Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1940 * decl.c (lookup_name_real): Don't try to look up anything in a
1943 * tinfo2.cc (__throw_type_match_rtti): Oops.
1945 Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1947 * Make-lang.in (exception.o): Use -fno-PIC for now.
1949 Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com>
1951 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
1953 (get_tinfo_fn_dynamic): Extracted from build_typeid.
1954 * tinfo2.cc (__dynamic_cast): Adjust.
1956 * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
1957 (build_x_typeid): Likewise.
1959 * parse.y: Call build_x_typeid instead of build_typeid.
1960 * cp-tree.def: Add TYPEID_EXPR.
1961 * pt.c (tsubst_copy): Handle typeid.
1962 * decl2.c (build_expr_from_tree): Likewise.
1963 * rtti.c (build_x_typeid): Throw bad_typeid from here.
1964 (build_typeid): Not here.
1965 * cp-tree.h: Declare build_x_typeid.
1967 Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com>
1969 * call.c (convert_like): Pull out constant values.
1971 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
1973 Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1975 * decl.c (init_decl_processing): Create short int types before
1976 creating size_t in case a machine description needs to use
1977 unsigned short for size_t.
1979 Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1981 * Make-lang.in (exception.o): Turn off pic.
1983 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
1984 type, multi-level ptr conversions.
1986 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
1987 (throw_bad_cast): Use it.
1988 (throw_bad_typeid): New fn.
1989 (build_typeid): Throw bad_typeid as needed.
1991 (synthesize_tinfo_fn): Handle functions and arrays before checking
1994 * Remove .h from standard C++ headers, add new.h, move into inc
1997 * exception*: Remove pointer from object, constructors. Add
1998 default exception::what that uses type_info::name. Add
2001 * init.c (build_new): Don't add a cookie to new (void *) T[2].
2003 Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com>
2005 * Make-lang.in: Building C++ code depends on cc1plus.
2007 Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2009 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
2010 a HOST_WIDE_INT, not a tree.
2012 Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
2014 * exception.cc: Don't include <stdlib.h>.
2016 * Make-lang.in (c++.clean): Remove cplib2.*.
2018 Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com>
2020 * parse.y (component_decl_1, component_costructor_declarator case):
2021 Pass attributes/prefix_attributes in tree list.
2023 Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com>
2025 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
2027 Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2029 * lex.c (do_identifier): Don't do deferred lookup in a template
2032 * typeck2.c (store_init_value): Oops.
2034 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
2035 New files for C++ lang-support library.
2036 * Make-lang.in (CXX_EXTRA_HEADERS): Define.
2037 (CXX_LIB2FUNCS): Define.
2038 And rules for building the C++ lang-support code.
2039 * config-lang.in (headers): Define.
2040 (lib2funcs): Define.
2042 Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2044 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
2046 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
2047 * typeck2.c (store_init_value): Check for initializing pmf with { }
2049 (process_init_constructor): Not here.
2051 Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2053 * pt.c (begin_template_parm_list): Increment
2054 processing_template_decl here.
2055 (end_template_parm_list): Not here.
2056 (process_template_parm): No need to add 1 to it now.
2057 * *.c: Use processing_template_decl instead of current_template_parms
2058 to check for being in a template.
2060 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR.
2061 (tsubst_copy): Handle CONSTRUCTOR.
2062 (instantiate_decl): Set up context properly for variables.
2063 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
2064 * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
2066 Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2068 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
2070 Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2072 * method.c (make_thunk): Call comdat_linkage before setting the
2075 * decl2.c (comdat_linkage): Use make_decl_one_only.
2076 (import_export_decl): Likewise.
2077 * decl.c (init_decl_processing): Check supports_one_only instead of
2080 Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com>
2082 * decl2.c (grokfield): Tighten checking for access decls.
2084 * decl.c (make_typename_type): Resolve references to
2085 current_class_type. Set CLASSTYPE_GOT_SEMICOLON.
2086 (lookup_name_real): Types that depend on a template parameter get
2087 an implicit 'typename' unless they're in the current scope.
2088 (start_decl_1): We don't care about incomplete types that depend
2090 (grokdeclarator): Resolve 'typename's in the type specifier that
2091 refer to members of the current scope.
2093 * call.c (build_over_call): Remove 'inline called before
2094 definition' diagnostic.
2095 (build_method_call): Likewise.
2096 * decl.c (duplicate_decls): Downgrade 'used before declared
2097 inline' to a warning, only with -Winline.
2099 Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com>
2101 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
2103 Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu>
2105 * call.c (build_method_call): When calling a signature
2106 default implementation, as in other cases, let instance_ptr simply
2109 Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com>
2111 * parse.y (simple_stmt): Cleanup and use do_poplevel ().
2113 Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com>
2115 * except.c (expand_start_catch_block): Add a pushlevel so that -g
2116 works on hppa and SPARC.
2118 Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2120 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
2122 Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu>
2124 * call.c (build_over_call): Check first whether DECL_CONTEXT exists
2125 before testing whether it's a signature.
2127 Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu>
2129 * call.c (build_new_method_call): Don't complain about signature
2130 pointers and references not being an aggr type.
2131 (build_this): If a signature pointer or reference was passed in,
2133 (build_new_method_call): If instance is a signature pointer, set
2134 basetype to the signature type of instance.
2135 * sig.c (build_signature_method_call): Deleted basetype and
2136 instance parameters, they can be found as the DECL_CONTEXT of
2137 function and as the first argument passed in.
2138 * cp-tree.h: Changed declaration of build_signature_method_call.
2139 * call.c (build_method_call): Deleted first two arguments in call
2140 of build_signature_method_call.
2141 (build_over_call): Added call to build_signature_method_call.
2143 Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2145 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
2148 Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2150 * cvt.c (convert_to_reference): Use %#T, not %#D, for error.
2152 Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com>
2154 * except.c (expand_start_try_stmts): Move to except.c in the backend.
2155 (expand_end_try_stmts): Remove.
2157 * init.c (perform_member_init): Use add_partial_entry () instead
2158 of directly manipulating lists.
2159 (emit_base_init): Ditto.
2161 Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com>
2163 * except.c (expand_exception_blocks): Always make sure USE and
2164 CLOBBER insns that came at the end still do, the backend relies
2167 Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com>
2169 * call.c (build_over_call): We can only use a TARGET_EXPR of the
2172 Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com>
2174 * cvt.c (convert_to_reference): Revert last change, don't complain
2175 about temp without target decl.
2177 Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com>
2179 * decl.c (grokdeclarator): Don't core dump when void() is given.
2181 Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com>
2183 * decl.c (copy_args_p): Don't crash.
2185 Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com>
2187 * pt.c (tsubst): And support template args inside the exception
2190 * pt.c (tsubst): Add support for exception specifications in
2193 Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com>
2195 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
2197 * cp-tree.h (start_decl): Eliminate the throw spec parameter.
2198 (start_function): Likewise.
2199 (start_method): Likewise.
2200 (grokfield): Likewise.
2201 (make_call_declarator): Add throw spec parameter.
2202 (set_quals_and_spec): Add routine.
2203 * lex.c (set_quals_and_spec): Likewise.
2204 * decl.h (grokdeclarator): Eliminate the throw spec parameter.
2205 * decl.c (shadow_tag): Eliminate the throw spec parameter to
2207 (groktypename): Likewise.
2208 (start_decl): Eliminate the throw spec parameter. Eliminate the
2209 throw spec parameter to grokdeclarator. Eliminate the throw spec
2211 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
2212 (grokfndecl): Remove useless set of raises.
2213 (grokdeclarator): Eliminate the throw spec parameter. Eliminate
2214 the throw spec parameter to start_decl. Pull the throw spec out
2215 of the call declarator.
2216 (grokparms): Eliminate the throw spec parameter to grokdeclarator.
2217 (start_function): Eliminate the throw spec parameter. Eliminate
2218 the throw spec parameter to grokdeclarator.
2219 (start_method): Likewise.
2220 * decl2.c (grokfield): Likewise.
2221 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
2222 (grokoptypename): Likewise.
2223 (finish_file): Eliminate the throw spec parameter to
2224 start_function. Add throw spec to make_call_declarator.
2225 * except.c (init_exception_processing): Add throw spec to
2226 make_call_declarator. Eliminate the throw spec parameter to
2228 (expand_start_catch_block): Eliminate the throw spec parameter to
2230 (expand_builtin_throw): Add throw spec to make_call_declarator.
2231 Eliminate the throw spec parameter to start_function.
2232 (start_anon_func): Likewise.
2233 * lex.c (make_call_declarator): Add throw spec parameter.
2234 (set_quals_and_spec): New routine.
2235 (cons_up_default_function): Add throw spec to make_call_declarator.
2236 Eliminate the throw spec parameter to grokfield.
2237 * method.c (synthesize_method): Eliminate the throw spec parameter
2239 * pt.c (process_template_parm): Eliminate the throw spec parameter
2241 (tsubst): Add throw spec to make_call_declarator.
2242 (tsubst_expr): Eliminate the throw spec parameter to start_decl.
2243 (do_function_instantiation): Eliminate the throw spec parameter to
2244 grokdeclarator. Eliminate the throw spec parameter to
2246 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
2248 * parse.y (datadef): Remove non-winning optimization.
2250 (fndef): Remove ambiguous error productions uncovered by grammer
2252 (constructor_declarator): Add exception_specification_opt here.
2253 (component_constructor_declarator): Likewise.
2254 (direct_after_type_declarator): Likewise.
2255 (complex_direct_notype_declarator): Likewise.
2256 (direct_abstract_declarator): Likewise.
2257 (fn.def1): Remove exception_specification_opt.
2258 (fn.def2): Likewise.
2259 (condition): Likewise.
2260 (initdcl0): Likewise.
2261 (initdcl): Likewise.
2262 (notype_initdcl0): Likewise.
2263 (nomods_initdcl0): Likewise.
2264 (component_decl_1): Likewise.
2265 (component_declarator): Likewise.
2266 (after_type_component_declarator0): Likewise.
2267 (after_type_component_declarator): Likewise.
2268 (notype_component_declarator): Likewise.
2270 Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2272 * call.c (build_over_call): Also use an INIT_EXPR when
2273 initializing anything from an rvalue.
2275 * call.c (build_over_call): Call stabilize_reference when building
2276 an INIT_EXPR instead of calling the copy ctor.
2278 * call.c (joust): Extend the previous change to all comparisons.
2280 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
2281 NO_LINKAGE_HEURISTICS.
2283 * decl2.c (finish_file): Emit any statics that weren't already.
2285 * typeck.c (build_static_cast): Implement.
2286 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
2287 * decl.c (grokparms): Use can_convert_arg instead of
2288 implicit_conversion directly.
2289 (copy_args_p): New fn.
2290 * cvt.c (convert_to_reference): Don't complain about temp with
2292 (build_up_reference): Handle TARGET_EXPRs.
2293 * call.c (build_over_call): Elide unnecessary temps.
2294 (can_convert*): Use new overloading code.
2296 Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com>
2298 * call.c: Move TYPE_PTR*_MACROS ...
2299 * cp-tree.h: To here.
2300 * typeck.c (build_reinterpret_cast): Implement.
2302 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
2304 (joust): If we're comparing a function to a builtin and the worst
2305 conversion for the builtin is worse than the worst conversion for the
2306 function, take the function.
2308 * typeck.c (build_const_cast): Implement.
2309 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
2310 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
2312 Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com>
2314 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype
2315 too early. Make sure we explode if exprtype turns out to be a
2316 NULL_TREE when it shouldn't be.
2318 Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com>
2320 * cp-tree.h: New routine make_call_declarator.
2321 * lex.c (make_call_declarator): Define it.
2322 * except.c (init_exception_processing): Use it.
2323 (expand_builtin_throw): Likewise.
2324 (start_anon_func): Likewise.
2325 * decl2.c (finish_file): Likewise.
2326 * lex.c (cons_up_default_function): Likewise.
2327 * parse.y: Likewise.
2328 * pt.c (tsubst): Likewise.
2330 Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com>
2332 * decl2.c (groktypefield): Remove unused code.
2334 Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com>
2336 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
2337 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier.
2338 Change type_quals into cv_qualifiers. Change nonempty_type_quals into
2339 nonempty_cv_qualifiers.
2342 * lex.c (make_pointer_declarator): Change type_quals into
2344 (make_reference_declarator): Likewise.
2346 Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2348 * decl.c (start_function): Only check interface_* for templates
2349 with flag_alt_external_templates.
2351 * call.c (build_new_op): Check for comparison of different enum types.
2352 (build_over_call): Fix arg # output.
2354 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
2356 Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com>
2358 * call.c (build_new_op): Check for erroneous args.
2360 * call.c (build_new_method_call): Add missing args to cp_error.
2362 * tree.c (error_type): Dont print reference-to-array.
2364 * typeck.c (convert_for_assignment): Don't say contravariance for
2367 Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com>
2369 * call.c (build_over_call): Diagnose bad convs for `this'.
2371 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
2374 * call.c (convert_like): Handle bad convs.
2375 (build_over_call): Handle bad convs better.
2377 * decl2.c: -fansi-overloading is now the default.
2379 * call.c (build_new_method_call): Check for erroneous args.
2381 * pt.c (instantiate_class_template): Propagate
2382 TYPE_USES_MULTIPLE_INHERITANCE.
2384 Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com>
2386 * call.c (enforce_access): Add static to routine.
2388 Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com>
2390 * call.c (build_user_type_conversion_1): Fix bad handling.
2391 (compare_ics): Likewise.
2393 Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2395 * call.c (standard_conversion): Oops.
2397 Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com>
2399 * g++.c: Update test for win32 (&& ! cygwin32).
2401 Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2403 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
2404 (ptr_reasonably_similar): New fn.
2405 * call.c (BAD_RANK): New rank.
2406 (ICS_BAD_FLAG): New macro.
2407 (standard_conversion): Handle almost-right pointer conversions.
2408 (reference_binding): Handle bad rvalue bindings.
2409 (add_*_candidate): Stuff.
2410 (build_over_call): Pass bad conversions to convert_for_initialization.
2411 (compare_ics): Handle bad convs.
2414 Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com>
2416 * init.c (expand_vec_init): Use ptrdiff_type_node instead of
2417 integer_type_node when computing pointer offsets.
2419 Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com>
2421 * tree.c (lvalue_type): New fn.
2422 (error_type): New fn.
2423 * call.c (op_error): Use error_type.
2424 (add_conv_candidate): Use lvalue_type.
2425 (add_builtin_candidates): Likewise.
2426 * error.c (args_as_string): Use error_type.
2428 Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com>
2430 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
2433 * decl.c (init_decl_processing): With -ansi, __null's type is the
2434 signed integral type with the same number of bits as a pointer.
2435 Introduce a new variable null_node for it.
2436 * cp-tree.h: Adjust.
2437 * call.c (null_ptr_cst_p): Adjust.
2439 Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com>
2441 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can
2444 Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com>
2446 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo
2447 fns of classes without virtual functions.
2449 * call.c (add_function_candidate): Handle `this' specially.
2450 (compare_ics): Likewise.
2452 Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com>
2454 * typeck.c (build_conditional_expr): Fix handling of __null.
2456 * decl2.c (comdat_linkage): New fn.
2457 (import_export_vtable): Use it.
2458 (import_export_decl): Use it.
2459 * method.c (make_thunk): Use it.
2461 Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
2463 * pt.c (end_template_decl): If we don't actually have parms, return.
2464 * parse.y (template_header): Accept 'template <>'.
2466 * errfn.c: Allow 5 args.
2468 Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
2470 * tree.c (make_temp_vec): New fn.
2471 * pt.c (push_template_decl): Handle partial specs.
2472 (instantiate_class_template): Likewise.
2473 (more_specialized): Use get_bindings.
2474 (more_specialized_class): New fn.
2475 (get_class_bindings): New fn.
2476 (most_specialized_class): New fn.
2477 (do_function_instantiation): List candidates for ambiguous case.
2478 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
2479 (shadow_tag): Call push_template_decl for partial specializations.
2480 * parse.y: Likewise.
2481 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
2482 DECL_TEMPLATE_MEMBERS.
2483 * call.c (print_z_candidates): Reduce duplication.
2485 Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2487 * decl2.c (lang_decode_option): Allow -fansi-overloading.
2489 Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
2491 * pt.c (get_bindings): New fn.
2492 (most_specialized): Likewise.
2493 (do_function_instantiation): Use them.
2494 (add_maybe_template): New fn.
2495 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
2496 * call.c (build_new_op): Handle guiding decls.
2497 (build_new_function_call): Likewise.
2498 * decl2.c (finish_file): Likewise.
2500 * decl2.c (mark_used): Do synthesis here.
2501 * call.c (build_method_call): Not here.
2502 (build_over_call): Or here.
2503 * typeck.c (build_function_call_real): Or here.
2504 * tree.c (bot_manip): Call mark_used on functions used in default
2507 Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2509 * decl2.c (import_export_vtable): Delete code that disabled vtable
2510 heuristic on systems with ASM_OUTPUT_EXTERNAL.
2512 Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2514 * typeck.c (build_x_function_call): Handle static call context
2517 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
2518 the function, not its outer block.
2520 * call.c (build_field_call): Pass fields on to build_opfncall
2521 regardless of TYPE_OVERLOADS_CALL_EXPR.
2522 (build_method_call): Pass on to build_new_method_call sooner.
2524 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
2526 * class.c (instantiate_type): Don't put a POINTER_TYPE to
2527 METHOD_TYPE on an expression. Also make a copy of rhs instead of
2530 Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
2532 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
2533 (add_builtin_candidate): Don't take enums for ++.
2534 (build_new_method_call): Handle non-aggregates and field calls.
2535 Move new overloading code from...
2538 * decl.c (grokparms): Don't check default args in templates.
2540 Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
2542 * cvt.c (build_new_op): Fix args to build_unary_op.
2543 (add_builtin_candidates): Don't call type_promotes_to on float.
2545 * decl.c (grokparms): Check the type of the default arg.
2547 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
2548 returning NULL_TREE.
2550 * typeck.c (build_x_binary_op): Avoid doing extra work.
2551 (build_x_unary_op): Likewise.
2552 (build_x_conditional_expr): Likewise.
2553 * cvt.c (build_over_call): Return.
2554 (add_builtin_candidate): Fix MEMBER_REF.
2555 (build_new_op): Likewise.
2557 Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
2559 * method.c (build_overload_name): Put bug fix into code but leave
2560 disabled for now so we can be bug compatible with older releases
2561 that do repeats incorrectly. In the future, we can enable it.
2563 Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2565 * cvt.c (convert_like): Don't call build_cplus_new twice.
2567 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
2568 Control new overloading code with -fansi-overloading.
2570 Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2572 * cvt.c (build_over_call): Call build_cplus_new.
2573 * call.c (build_method_call): Likewise.
2574 * typeck.c (build_function_call_real): Likewise.
2575 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
2576 the COND_EXPR in a TARGET_EXPR so they use the same slot.
2578 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
2580 * typeck.c (complete_type): Propagate
2581 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
2583 Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2585 * cvt.c (joust): More ?: kludging. Sigh.
2586 (build_over_call): Don't try to synthesize global fns.
2588 * search.c (lookup_conversions): Use binfo marking.
2590 Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
2592 * search.c (build_mi_matrix): Use the correct value of cid
2593 when determining the new mi_size.
2595 Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
2597 * cvt.c (add_builtin_candidates): Do consider type conversion ops
2598 for the first parms of += et al.
2599 (strip_top_quals): New fn.
2600 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
2601 (implicit_conversion): Likewise.
2602 (add_builtin_candidates): Be careful about arrays.
2603 (build_new_method_call): Handle vtable optimization.
2605 Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
2607 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
2608 * cvt.c (reference_binding): Use it.
2609 (implicit_conversion): Use it.
2610 (add_builtin_candidate, COND_EXPR): Use it.
2612 * cvt.c (build_new_function_call): Check for error args.
2614 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
2616 * gxx.gperf: Add __null.
2617 * hash.h: Regenerate.
2618 * lex.h: Add RID_NULL.
2619 * lex.c (init_lex): Create null_pointer_node here, stick it in
2621 * decl.c (init_decl_processing): Still set its type here.
2622 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
2623 (convert_to_pointer_force): Likewise.
2624 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
2626 * call.c (convert_harshness): Use null_ptr_cst_p.
2627 * typeck.c (convert_for_assignment): Likewise. Don't produce
2630 * error.c (args_as_string): Handle lists of actual args, too.
2631 * cvt.c (null_ptr_cst): Support (void*)0 for now.
2632 (build_user_type_conversion_1): Improve diagnostics.
2633 (build_new_function_call): Likewise.
2634 (build_object_call): Likewise.
2635 (build_new_method_call): Likewise. Move call before def diagnostic...
2636 (build_over_call): Here.
2638 * cvt.c (build_new_method_call): Don't complain about no match if
2639 LOOKUP_SPECULATIVELY.
2640 (build_over_call): Fix 'this' for virtual fn.
2641 (build_new_method_call): Add diagnostic.
2643 Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2645 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
2646 constructors to be passed in.
2647 (build_over_call): Likewise.
2648 (build_user_type_conversion_1): Pass them in.
2649 (convert_like): Likewise.
2650 (build_object_call): Handle overloaded conversions.
2651 (build_over_call): Pass the right args to build_vfn_ref.
2652 (standard_conversion): Fix pmf convs.
2653 (joust): Handle comparing statics and non-statics.
2654 (build_new_method_call): New fn.
2655 * call.c (build_method_call): Call it if NEW_OVER.
2657 Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
2659 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
2662 Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
2664 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
2665 instead of just maybe_build_cleanup so that we deallocate the
2668 Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2670 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
2671 * cp-tree.h (finish_prevtable_vardecl): Add decl.
2673 Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
2675 * pt.c (instantiate_class_template): Call complete_type. Also, if
2676 we're at the end of the file and we just instantiated a template
2677 class with a vtable, call finish_prevtable_vardecl.
2679 * error.c (dump_decl): Don't explode (or explode more gracefully
2680 as appropriate) if the object being dumped has a null type.
2681 (dump_expr): Likewise.
2683 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
2684 by counting the number of nodes that we'll need before allocating
2686 (lookup_fnfields): Fix comment.
2687 (breadth_first_search): Fix comment.
2689 Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
2691 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
2693 * class.c (finish_struct): Call cplus_decl_attributes here.
2694 (finish_struct_1): Not here.
2695 * cp-tree.h: Adjust.
2697 * pt.c (type_unification): New parameter STRICT.
2698 (unify): If STRICT, don't allow cv addition or base deduction.
2699 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
2701 Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
2703 * search.c (get_template_base{_recursive}): New fns.
2704 * pt.c (more_specialized): New fn.
2705 (do_function_instantiation): Use it.
2706 (unify): Handle base deduction.
2707 * cvt.c (joust): Use more_specialized.
2708 Don't arbitrarily choose between non-builtin candidates.
2709 (build_over_call): Call require_complete_type.
2711 * decl.c (start_function): Statics are static even in a #pragma
2714 * decl2.c (import_export_vtable): Disable vtable heuristic on
2715 systems with ASM_OUTPUT_EXTERNAL.
2717 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
2718 (standard_conversion): No std conv to enum type.
2720 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
2723 * cvt.c (reference_binding): Bind directly to a base subobject of
2726 * cvt.c (build_new_op): Enforce access control.
2728 Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
2730 * typeck2.c (process_init_constructor): When scanning the
2731 union for a named field, skip things that aren't FIELD_DECLs.
2733 * method.c (synthesize_method): Don't scan fndecl's rtl if
2734 we're at the end of the file; just assume the function can't
2737 Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2739 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
2742 * cvt.c (build_user_type_conversion_1): Handle overloaded
2745 * cvt.c (add_builtin_candidates): Don't consider type conversion
2746 operators for the first parameter of operator=.
2748 Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
2750 * typeck.c (complete_type): Only call layout_type if we're not
2751 expanding a template.
2753 Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
2755 * cvt.c (compare_ics): Oops.
2757 * cvt.c (op_error): Oops.
2759 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
2760 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
2761 (build_conv): Use them.
2762 (implicit_conversion): Use them.
2763 (convert_like): Handle them.
2764 (build_new_op): Handle builtin COND_EXPR again.
2765 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
2766 in lists of types for COND_EXPR.
2767 (add_builtin_candidate): Add enum candidates for COND_EXPR.
2769 Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
2771 * typeck.c (build_modify_expr): Always attempt to build a call to
2772 the assignment operator, even if we're using a default one.
2773 (convert_for_initialization): Call complete_type.
2775 Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2777 * cvt.c (reference_binding): A REF_BIND gets the reference type.
2778 (implicit_conversion): Likewise.
2779 (convert_like): Likewise.
2780 (compare_ics): Likewise.
2781 (compare_qual): Likewise.
2782 (print_z_candidates): Handle no candidates.
2783 (build_new_op): Don't handle builtin COND_EXPR for now.
2785 Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
2787 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
2789 Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2791 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
2793 * cvt.c (build_builtin_candidate): Oops.
2794 (build_new_op): Oops.
2796 * method.c (build_opfncall): Pass COND_EXPR on.
2797 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
2798 (add_builtin_candidate{,s}): Likewise.
2799 (add_builtin_candidates): Likewise.
2800 (print_z_candidates, op_error, build_new_op): Likewise.
2801 (type_decays_to): New fn.
2802 * lex.c (init_lex): Just say ?: for COND_EXPR.
2804 Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
2806 * typeck.c (complete_type): Call layout_type rather than building
2809 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
2812 Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2814 * cvt.c: Always compile the new overloading code (but don't use it).
2815 (implicit_conversion): Add a BASE_CONV when converting to
2816 the same class type.
2817 (convert_like): Handle BASE_CONV.
2819 Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2821 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
2822 (add_builtin_candidate): Likewise.
2825 * typeck.c (build_x_function_call): Try an operator function
2826 whenever we call an object of class type.
2827 * method.c (build_opfncall): Pass CALL_EXPRs through.
2828 * cvt.c (implicit_conversion): Do const-ref case first.
2829 (add_conv_candidate, build_object_call, op_error): New fns.
2830 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
2831 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
2833 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
2834 Fall back on preincrement handling. Use op_error.
2836 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
2838 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
2841 Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
2843 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
2845 Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
2847 * typeck.c (build_component_ref_1): Use build_component_ref
2848 instead of open coding it here.
2850 Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
2852 * g++.c (main): Don't link with -lg++.
2855 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
2856 result of build_type_conversion.
2857 (cp_convert): Only call build_method_call for ctors if
2858 build_type_conversion failed.
2859 (ptr_complete_ob): New function.
2860 (TYPE_PTR{,OB,MEM}_P): New macros.
2861 ({add,build}_builtin_candidate{,s}): New functions.
2862 (print_z_candidates): Handle builtins.
2863 (build_user_type_conversion_1): Don't use conversion fns for
2864 converting to a base type.
2865 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
2866 (build_user_type_conversion): Use convert_from_reference.
2867 (build_new_op): New function.
2868 (build_over_call): Fix handling of methods.
2869 (compare_ics): Handle AMBIG_CONV properly.
2870 * typeck2.c: Increment abort count.
2871 * method.c (build_opfncall): Forward most requests to build_new_op.
2872 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
2874 Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2876 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
2877 invalid second argument to dump_expr_list.
2879 Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
2881 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
2883 Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
2885 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
2888 Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
2890 * typeck2.c (process_init_constructor): New pedwarn for using { }
2891 to initialize a pointer to member function.
2892 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
2893 we can avoid the new error.
2895 Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
2897 * typeck.c (build_ptrmemfunc1): New function to hide details of
2898 pointer to member functions better.
2900 Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
2902 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
2903 methods into the actual method, as we know the implied object is
2906 Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2908 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
2909 inside a system header.
2911 Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
2913 * call.c (build_method_call): Call complete_type on the
2916 Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
2918 * typeck.c (build_component_ref): Always build up an OFFSET_REF
2919 for obj_ptr->func so that we can know which object to use in a
2922 Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
2924 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
2925 around things. Also improve maintainability.
2927 Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
2929 * decl.c (grokdeclarator): Check for overflow when evaluating an
2932 Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
2934 * cvt.c (cp_convert): Don't check for ambiguity with constructor
2937 * typeck.c (build_x_function_call): Pass function overload
2938 questions to new overloading code if NEW_OVER.
2939 * init.c (expand_aggr_init_1): Only check for type conversion ops
2940 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
2941 Don't check for ambiguity with constructor if NEW_OVER.
2942 * cvt.c (convert_to_reference): Dereference the result of a type
2943 conversion operator.
2944 (build_conv): Propagate ICS_USER_FLAG.
2945 (implicit_conversion): Call instantiate_type.
2946 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
2947 (add_function_candidate): Fix cv-quals on argtype.
2948 (print_z_candidates): New function.
2949 (build_new_function_call): Call it.
2950 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
2951 consider non-converting constructors.
2952 Call print_z_candidates.
2953 Return an AMBIG_CONV for an ambiguous conversion.
2954 (build_user_type_conversion): Handle AMBIG_CONV.
2955 (convert_like): Fix test for building TARGET_EXPR.
2956 Call instantiate_type.
2957 Handle AMBIG_CONV and LVALUE_CONV.
2958 (build_over_call): Handle 0 args and ellipsis.
2959 * cp-tree.def: Add AMBIG_CONV.
2961 Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
2963 * decl.c (lookup_name_real): If we find mem in obj when parsing
2964 `obj->mem', make sure we return the right value.
2966 Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
2968 * search.c (get_base_distance): Call complete_type.
2970 Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
2972 * decl.c (store_bindings): Make static.
2974 Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2976 * init.c (expand_aggr_init_1): Don't check type conversions if
2979 * cvt.c (z_candidate): Put back template field.
2980 (add_function_candidate): Set it.
2981 (add_template_candidate): Likewise.
2983 (compare_qual): Handle references and pointers to members.
2984 (compare_ics): Handle reference bindings.
2986 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
2988 Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
2990 * call.c (compute_conversion_costs): Call complete_type.
2992 * tree.c (vec_binfo_member): Use comptypes instead of comparing
2993 pointers, so we can handle template parameters.
2995 Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
2997 * cvt.c (cp_convert_to_pointer): We have to call complete_type
2998 here; let's make it explicit instead of a side effect of an
3001 Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
3003 * cvt.c (z_candidate): Remove template field.
3004 (reference_binding): Handle binding to temporary.
3005 (implicit_conversion): Likewise.
3006 (add_function_candidate): Handle artificial constructor parms.
3007 Handle functions with too few parms.
3008 (add_template_candidate): New function.
3009 (build_user_type_conversion_1): Handle constructors.
3010 (convert_like): Likewise.
3011 (build_over_call): Likewise.
3012 (build_new_function_call): Support templates.
3013 (compare_ics): Fix reference, inheritance handling.
3015 Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
3017 * decl.c: Add signed_size_zero_node.
3018 (init_decl_processing): Build it.
3019 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
3020 when we're trying to make a negative delta.
3022 Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3024 Stop doing this damn index==strchr variable name confusion.
3025 * class.c (add_virtual_function): Change local var INDEX to be
3027 (add_method): Likewise.
3028 * lex.c (print_parse_statistics): Likewise.
3029 * search.c (make_memoized_table_entry): Likewise.
3030 (lookup_fnfields_here): Likewise.
3031 (lookup_field): Likewise.
3032 (lookup_fnfields): Likewise.
3033 (get_baselinks): Likewise.
3034 * sig.c (build_signature_table_constructor): Likewise.
3035 (build_signature_method_call): Likewise.
3036 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
3037 (get_member_function_from_ptrfunc): Likewise.
3038 (build_ptrmemfunc): Change local var INDEX to be IDX.
3039 (c_expand_start_case): Likewise.
3041 Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
3043 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
3044 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
3045 (convert_to_reference): Use build_type_conversion to convert to
3046 the reference type directly.
3047 (standard_conversion): Fix void* case, non-conversions.
3048 (reference_binding): Fix expr == 0 case, non-conversions.
3049 (convert_like): Support REF_BIND.
3050 (compare_qual): Split out from compare_ics.
3051 (compare_ics): Use it, handle icses with only a qual_conv.
3053 * init.c (expand_vec_init): Don't crash if decl is NULL.
3055 Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
3057 * mpw-config.in: New file, configury for Mac MPW.
3058 * mpw-make.sed: New file, makefile editing for MPW.
3060 Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3062 * pt.c (instantiate_class_template): Call repo_template_used.
3064 * search.c (lookup_conversions): Only lookup conversions in
3067 Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3069 * cp-tree.def: Renamed from tree.def, to avoid confusion with
3071 * cp-tree.h, lex.c: Include cp-tree.def.
3072 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
3074 Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
3076 * init.c (build_vec_delete_1): Call complete_type.
3078 Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
3080 * except.c (start_anon_func): Make sure anonymous functions are
3083 Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3085 * decl.c (finish_function): If function_depth > 1, set nested.
3087 * decl2.c (grokbitfield): Revert Bob's change.
3088 * class.c (finish_struct_1): Fix handling of named bitfield widths.
3090 Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
3092 * pt.c (add_pending_template): Handle types.
3093 (lookup_template_class): With -fexternal-templates, just add the class
3094 to pending_templates instead of instantiating it now.
3095 * decl2.c (finish_file): Handle types in pending_templates.
3097 Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
3099 * decl2.c (grokbitfield): Handle constant decls appropriately.
3100 Give an appropriate error message now instead of spewing core
3103 Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
3105 * decl2.c: Don't turn on thunks by default for now.
3107 Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
3109 * typeck.c (complete_type): Handle error_mark_node.
3110 (common_type, OFFSET_TYPE): Handle template_type_parms.
3112 Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
3114 * pt.c (instantiate_decl): If at_eof, call import_export_decl
3115 regardless of DECL_INLINE.
3117 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
3119 * class.c (finish_struct_bits): Copy TYPE_SIZE.
3121 * rtti.c (build_dynamic_cast): Support templates.
3122 * tree.def: Support DYNAMIC_CAST_EXPR.
3123 * pt.c (tsubst_copy): Likewise.
3124 * decl2.c (build_expr_from_tree): Likewise.
3126 Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
3128 * typeck.c (build_static_cast): Support templates.
3129 (build_const_cast): Likewise.
3130 * tree.def: Support CONST/STATIC_CAST_EXPR.
3131 * pt.c (tsubst_copy): Likewise.
3132 * decl2.c (build_expr_from_tree): Likewise.
3134 Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
3136 * decl2.c (finish_vtable_vardecl): Don't trust
3137 TREE_SYMBOL_REFERENCED for vtables of local classes.
3139 Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
3141 * pt.c (tsubst_copy): Handle operator T.
3143 Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3145 * init.c (build_delete): Move creation of PARMS inside test of
3146 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
3148 Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
3150 * typeck.c (build_conditional_expr): Don't assume that
3151 the arguments to ?: are always pointers or records.
3153 Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3155 * decl2.c (import_export_decl): Still emit static/weak/comdat
3156 copies of inline template functions with -fno-implicit-templates.
3158 Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
3160 * init.c (build_delete): Determine the complete basetype
3161 path to the destructor we're calling.
3163 Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
3165 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
3166 initialize the enum, because we really and truly don't know where
3168 (start_enum): Don't copy integer_zero_node because
3169 build_enumerator will do it.
3171 Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3173 * decl.c (finish_function): Do access control on base destructors.
3175 * pt.c (tsubst, case FUNCTION_DECL): Set up
3176 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
3179 Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
3181 * cvt.c (build_up_reference): If we have already extended the
3182 lifetime of the temporary, don't try it again.
3183 * typeck.c (c_expand_return): Don't try and convert the return
3184 value twice when we want a reference, once is enough.
3186 Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
3188 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
3189 LOOKUP_ONLYCONVERTING at all for now.
3191 * search.c (add_conversions): Put the conversion function in
3192 TREE_VALUE, the basetype in TREE_PURPOSE.
3193 * cvt.c (build_type_conversion): Adjust.
3194 * cvt.c (build_expr_type_conversion): Adjust.
3195 * call.c (user_harshness): Adjust.
3197 Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
3199 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
3202 Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
3204 * except.c (expand_start_catch_block): Add a dummy region, if we
3205 get an error, so that we can avoid core dumping later.
3207 Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
3209 * cp-tree.h (OFFSET_REF): Remove.
3210 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
3211 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
3212 * init.c (expand_aggr_init_1): Likewise.
3213 (build_new): Likewise.
3214 * typeck.c (expand_target_expr): Likewise.
3216 Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3218 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
3221 Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
3223 * cvt.c (build_up_reference): Redo how and when temporaries are
3225 * decl.c (grok_reference_init): Don't try and be smart about
3228 Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
3230 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
3231 (TARGET_EXPR...), now that it has 4 arguments.
3232 * tree.c (build_cplus_new): Likewise.
3234 Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3236 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
3238 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
3239 * decl.c (struct saved_scope): Remove named_labels,
3240 {base,member}_init_list.
3241 (maybe_push_to_top_level): Don't set them. Call
3242 push_cp_function_context if appropriate.
3243 (pop_from_top_level): Likewise.
3245 * method.c (do_build_assign_ref): Remove obsolete check of
3246 TYPE_HAS_ASSIGN_REF (basetype).
3248 * decl.c (grokfndecl): Diagnose user definition of
3249 implicitly-declared methods.
3251 Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
3253 * method.c (do_build_copy_constructor): Add code to give
3254 meaningful error messages instead of crashing.
3255 (do_build_assign_ref): Don't synthesize assignment operators for
3256 classes containing reference or const members.
3258 * class.c (struct base_info): Remove cant_synth_copy_ctor
3259 and cant_synth_asn_ref.
3260 (finish_base_struct): Remove the code that tries to conditionalize
3261 synthesis of copy constructors & assignment operators based on
3262 access permissions. Instead, let it fail when it tries to
3263 synthesize the copy constructor. This will give meaningful error
3264 messages instead of silently generating code to perform a bitcopy.
3266 Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
3268 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
3269 determining types for constant values.
3271 * decl.c (struct named_label_list): Use instead of stuffing
3272 random items into a TREE_LIST node.
3273 (named_label_uses): Use the new struct.
3274 (poplevel): Likewise.
3275 (lookup_label): Likewise.
3276 (define_label): Add an error message to tell the user the line
3277 where the goto is located in addition to the destination of the
3279 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
3281 (finish_function): Likewise.
3283 (start_decl): Complain about defining a static data member
3284 in a different type from which it was declared.
3286 Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3288 * cvt.c (build_expr_type_conversion): Adjust.
3290 Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
3292 * call.c (build_method_call): Always convert 'this' to the
3295 * search.c (add_conversions): Put the conversion function in
3296 TREE_VALUE, the type in TREE_PURPOSE.
3297 * cvt.c (build_type_conversion): Adjust.
3298 * call.c (user_harshness): Adjust.
3300 * method.c (emit_thunk): Call temporary_allocation and
3301 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
3303 * tree.c (build_cplus_array_type): Handle tweaking of
3304 TYPE_MAIN_VARIANT here.
3305 * typeck.c (common_type): Not here.
3307 * typeck.c (complete_type): Only try to complete an array type if
3310 Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
3312 * decl.c (grokvardecl): Call complete_type.
3313 (grokdeclarator): Call complete_type for PARM_DECLs.
3315 Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3317 * pt.c (instantiate_class_template): Re-set
3318 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
3320 Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
3322 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
3323 smart enough to do it right.
3324 * tree.c (cp_expand_decl_cleanup): Likewise.
3325 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
3326 cp_expand_decl_cleanup.
3327 (store_parm_decls): Likewise.
3328 (hack_incomplete_structures): Likewise.
3329 * except.c (push_eh_cleanup): Likewise.
3331 Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
3333 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
3334 frontend to the backend where it belongs.
3335 * tree.c (unsave_expr): Likewise.
3336 (unsave_expr_now): Likewise.
3337 * tree.def (UNSAVE_EXPR): Likewise.
3338 * cp-tree.h (unsave_expr): Likewise.
3339 (unsave_expr_now): Likewise.
3341 Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
3343 * init.c (emit_base_init): Make sure the partial EH cleanups live
3344 on the function_obstack.
3346 Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
3348 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
3349 when checking for pointer types.
3351 Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3353 * pt.c (instantiate_class_template): Remove obsolete check for
3354 access declarations.
3356 Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
3358 * call.c (build_overload_call): Simplify calls to
3359 build_overload_call by removing last parameter.
3360 (build_method_call): Likewise.
3361 * cp-tree.h: Likewise.
3362 * method.c (build_opfncall): Likewise.
3363 * typeck.c (build_x_function_call): Likewise.
3365 Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
3367 * call.c (default_parm_conversions): Factor out common code.
3368 (build_method_call): Use it.
3369 (build_overload_call_real): Use it.
3371 Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
3373 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
3374 but pedwarn as the code is bogus.
3375 * typeck.c (decay_conversion): Likewise.
3376 (build_function_call_real): Use build_addr_func instead of
3377 default_conversion. Don't allow pointer-to-method functions down
3379 (build_unary_op): Use real pointer-to-member functions instead of
3381 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
3382 (convert_for_assignment): Removed some obsolete code.
3383 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
3384 build_x_function_call instead of current_class_ptr. Only call
3385 digest_init once on an initializer, we do this just checking
3387 (build_expr_from_tree): Pass current_class_ref to
3388 build_x_function_call instead of current_class_ptr.
3389 * init.c (build_member_call): Likewise.
3391 * error.c (dump_expr): Handle OFFSET_REFs better.
3392 * pt.c (unify): Handle pointer-to-member functions better.
3393 * decl.c (finish_function): Clear out current_class_ref just like
3394 we do for current_class_ptr.
3396 * typeck.c (get_delta_difference): Handle virtual bases better.
3398 Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
3400 * sig.c (build_signature_table_constructor): Use the delta for
3401 the original basetype for this virtual function with thunks.
3402 (build_signature_method_call): We still need to adjust 'this'
3405 Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
3407 * call.c (build_addr_func): New routine. Used to get the `real'
3408 address of a function or a method. Needed to avoid getting a
3409 pointer-to-member function.
3410 (build_call): New routine to build CALL_EXPRs.
3411 (build_method_call): Use it.
3412 * cvt.c (convert_to_aggr): Likewise.
3413 * typeck.c (build_function_call_real): Likewise.
3414 * sig.c (build_signature_table_constructor): Use build_addr_func.
3415 * cp-tree.h (build_call, build_addr_func): Declare them.
3417 Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
3419 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
3420 * parse.y: Remove uses of LOOKUP_AGGR.
3422 Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
3424 * *.[chy]: Rename current_class_decl to current_class_ptr, and
3425 C_C_D to current_class_ref.
3427 Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3429 * call.c (convert_harshness): Tighten up pointer conversions.
3431 Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
3433 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
3434 (finish_file): Likewise.
3436 Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
3438 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
3440 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
3443 Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3445 * decl2.c: Turn on thunks by default where supported.
3447 Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
3449 * cp-tree.h (build_overload_call_maybe): Removed.
3450 * call.c (build_overload_call_real): Invert meaning of last arg to
3451 be require_complete.
3452 (build_overload_call): Likewise.
3453 * typeck.c (build_x_function_call): Use build_overload_call_real
3454 instead of build_overload_call_maybe.
3456 Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
3458 * decl2.c (finish_file): Don't try to emit functions that haven't
3461 Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3463 * decl2.c (finish_vtable_vardecl): Oops.
3465 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
3466 Also store the bindings from previous_class_values.
3467 (pop_from_top_level): Restore them.
3469 Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
3471 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
3472 symbol has been referenced.
3473 (finish_file): Re-join synthesis/vtable loop with inline emission
3474 loop, disable inlining when an inline is output.
3476 Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
3478 * except.c (init_exception_processing): Setup saved_in_catch.
3479 (push_eh_cleanup): Reset __eh_in_catch.
3480 (expand_start_catch_block): Set __eh_in_catch.
3482 Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
3484 * except.c (push_eh_cleanup): Add tracking for whether or not we
3485 have an active exception object.
3486 (expand_builtin_throw): Use it to make sure a rethrow without an
3487 exception object is caught.
3489 Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
3491 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
3494 Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
3496 * decl2.c (finish_file): Also use sentries for vars with
3497 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
3500 * lex.c (handle_cp_pragma): Disable #pragma
3501 interface/implementation if SUPPORTS_ONE_ONLY > 1.
3503 Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
3505 * method.c (emit_thunk): Wrap default case in
3506 temporary/permanent_allocation.
3508 * method.c (make_thunk): Use DECL_ONE_ONLY.
3509 (emit_thunk): Call assemble_end_function.
3511 Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
3513 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
3514 (import_export_decl): Likewise.
3515 (finish_prevtable_vardecl): Disable vtable hack if
3516 SUPPORTS_ONE_ONLY > 1.
3518 Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
3520 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
3521 PREDECREMENT_EXPRs take two arguments, not one.
3523 Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
3525 * class.c (build_vtable_entry): Don't build thunks for abstract
3528 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
3531 Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
3533 * class.c (set_rtti_entry): Use size_zero_node.
3534 (build_vtable): Likewise.
3536 Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
3538 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
3539 (prepare_fresh_vtable): Likewise.
3541 Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
3543 * method.c (emit_thunk): Call mark_used on the target function.
3545 * call.c (build_method_call): Don't warn about pending templates.
3547 Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3549 * decl2.c (finish_file): Fix list walking logic.
3551 * typeck2.c (check_for_new_type): Only warn if -pedantic.
3553 Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
3555 * class.c (finish_struct_1): Remove old code for
3556 dont_allow_type_definitions.
3557 * cp-tree.h: Likewise.
3558 * spew.c: Make sure cp-tree.h is included before parse.h, so the
3559 definition of flagged_type_tree is found before it is used.
3561 * parse.y: Added the ftype member to the type union, and changed a
3562 number of rules to use it instead of ttype. Added calls to
3563 check_for_new_type() as appropriate.
3564 * typeck2.c (check_for_new_type): New function for checking
3565 if a newly defined type appears in the specified tree.
3566 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
3567 for check_for_new_type().
3569 Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
3571 * decl2.c (finish_file): Only use a sentry if the decl is public.
3573 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
3574 don't pass LOOKUP_ONLYCONVERTING.
3576 Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
3578 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
3579 properly keeps track of const and volatile type modifiers.
3581 Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
3583 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
3584 * pt.c (comp_template_args): Use it.
3586 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
3587 assemble_external for artificial function decls.
3589 * decl.c (cp_finish_decl): Oops.
3591 Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
3593 * decl2.c (import_export_decl): Put static data member templates
3594 into common storage, or make them weak, depending on whether they
3595 are dynamically or statically initialized.
3596 (get_sentry): New function.
3597 (finish_file): Do import_export_decl for static data members before
3598 building the init/fini functions. Don't init/fini a variable that's
3599 EXTERNAL. Use a sentry for variables in common. Fix mismatching
3600 push/pop_temp_slots.
3601 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
3602 expand_static_init thang.
3603 * method.c (get_id_2): New function.
3605 Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
3607 * parse.y (empty_parms): Make sure we use C++-style prototypes
3608 when we're declaring member functions.
3610 Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3612 * Makefile.in (CONFLICTS): 16 s/r conflicts.
3613 * parse.y (self_template_type): New nonterminal.
3615 Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
3617 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
3619 * parse.y (base_class.1): Allow 'typename foo::bar'.
3621 * lex.c (check_newline): Remove #pragma code that plays with the
3622 input stream, since we now deal with tokens. Clear nextchar when
3624 (handle_cp_pragma): Use real_yylex.
3625 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
3628 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
3630 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
3632 Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3634 * parse.y: New token SELFNAME for potential constructor.
3635 * spew.c (yylex): Handle it.
3636 * lex.c (identifier_type): Produce it.
3638 * parse.y (complete_type_name): In :: case, don't push class binding.
3639 (complex_type_name): Likewise.
3641 Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
3643 * typeck.c (build_reinterpret_cast): Handle pointer to member
3646 Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3648 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
3650 (check_newline): Put the vtable/unit/implementation/interface pragma
3651 code into handle_cp_pragma, replacing it with a call.
3652 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
3653 args. Get the next token after handling the pragma token.
3655 Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
3657 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
3658 (convert_to_pointer_force): Likewise.
3660 * init.c (build_new): Fix array new without -fcheck-new.
3662 Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3664 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
3665 tree.c: Lose TYPE_NESTED_NAME.
3667 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
3670 * tree.def: Add VEC_INIT_EXPR.
3671 * expr.c (cplus_expand_expr): Handle it.
3672 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
3673 the extra file-scope symbol nastiness.
3675 Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
3677 * method.c (make_thunk): Thunks are static.
3678 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
3680 * decl2.c (mark_vtable_entries): Emit thunks as needed.
3681 (finish_file): Don't emit them here.
3683 Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
3685 * rtti.c (build_dynamic_cast): Handle null pointers.
3686 (ifnonnull): New function.
3688 Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
3690 * call.c (build_method_call): Remember the original basetype we
3691 were called with. Give an error message instead of trying
3692 (incorrectly) to call a non-static member function through a
3693 non-inherited class.
3695 * search.c (expand_upcast_fixups): Mark the new fixup as
3698 Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3700 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
3702 * class.c (set_rtti_entry): Fix for thunks.
3704 * decl2.c (import_export_decl): Still emit typeinfo fns for
3705 cv-variants of builtin types.
3707 * rtti.c (expand_class_desc): Set up base_info_type_node here.
3708 (init_rtti_processing): Instead of here.
3710 Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3712 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
3713 (build_typeid): Only complain about taking dynamic typeid without
3716 * decl2.c: flag_rtti defaults to 1.
3718 * rtti.c (get_tinfo_var): The general class case is now smaller.
3719 (init_rtti_processing): Pack the latter three fields of base_info
3722 Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
3724 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
3726 Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
3728 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
3729 (push_memoized_context): Split out code to undefer pop_type_level to
3730 (clear_memoized_cache): here.
3731 (pop_memoized_context): We can only handle one layer of deferral of
3732 pop_type_level so clear the cache, if there was a previous level.
3734 Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3736 * rtti.c (init_rtti_processing): Build up base_info_type_node.
3737 (expand_class_desc): Use one pointer to an array of base_info
3738 structs, passed using a CONSTRUCTOR.
3740 Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
3742 * class.c (build_vbase_path): Remove block extern for
3743 flag_assume_nonnull_objects here.
3744 (build_vfn_ref): Split out functionality into build_vtbl_ref.
3745 (build_vtbl_ref): New routine.
3746 (build_vtable): Set up rtti info here.
3747 (add_virtual_function): Note in CLASSTYPE_RTTI the best
3748 place where we can get the rtti pointers from to avoid having to
3749 search around for a place.
3750 (finish_base_struct): Likewise.
3751 (finish_struct_1): Likewise. Never create totally new vtables
3752 with totally new vtable pointers for rtti. Disable code to layout
3753 vtable pointers better until we want to break binary
3755 * rtti.c (build_headof_sub): New routine to convert down to a
3756 sub-object that has an rtti pointer in the vtable.
3757 (build_headof): Use it. Also, use build_vtbl_ref now to be more
3759 (build_dynamic_cast): Make sure we have saved it, if we need to.
3760 * search.c (dfs_init_vbase_pointers): Disable code that deals with
3761 a more efficient vtable layout, enable later.
3762 * call.c (flag_assume_nonnull_objects): Moved declaration to
3763 * cp-tree.h: here. Declare build_vtbl_ref.
3764 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
3765 function calls that want a tree.
3767 Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3769 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
3770 other X subobjects in the most derived type. Ack.
3772 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
3773 get_typeid will do it for us.
3774 (get_typeid_1): Break out call-building for expand_*_desc to use.
3775 (get_typeid): Call it.
3776 (expand_*_desc): Likewise.
3777 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
3779 (init_decl_processing): Lose builtin_type_tdescs lossage.
3780 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
3782 Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
3784 * pt.c (tsubst): When calling set_nested_typename, use
3785 TYPE_NESTED_NAME (current_class_type) instead of
3788 * decl.c (pushdecl): Likewise.
3789 (pushdecl_class_level): Likewise.
3790 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
3791 set_nested_typename.
3793 Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
3795 * rtti.c (synthesize_tinfo_fn): Handle arrays.
3797 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
3799 Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
3801 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
3802 (init_rtti_processing): Lose bad_cast_type.
3803 (build_dynamic_cast): Use throw_bad_cast.
3805 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
3807 * decl2.c (finish_file): Don't synthesize artificial functions
3808 that are external and not inline.
3810 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
3812 * decl2.c (finish_file): Handle having new inlines added to
3813 saved_inlines by synthesis.
3815 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
3817 Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3819 RTTI rewrite to initialize nodes as needed, not require that
3820 users #include <typeinfo>, complete functionality and reduce wasted
3822 * rtti.c (init_rtti_processing): New fn.
3823 (build_typeid): The vtable entry is now a function.
3824 (get_tinfo_var): New fn.
3825 (get_tinfo_fn): Likewise.
3826 (get_typeid): Use it.
3827 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
3828 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
3830 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
3831 (synthesize_tinfo_fn): New fn.
3832 * method.c (build_t_desc_overload): Lose.
3833 (build_overload_with_type): More generic.
3834 * decl.c (init_decl_processing): Call init_rtti_processing.
3835 * class.c (set_rtti_entry): Use get_tinfo_fn.
3836 * decl2.c (mark_vtable_entries): Mark the rtti function.
3837 (finish_prevtable_vardecl): Don't build_t_desc.
3838 (import_export_decl): Handle tinfo functions.
3839 (finish_file): Likewise.
3840 * typeck.c (inline_conversion): New fn.
3841 (build_function_call_real): Use it.
3842 * cp-tree.h: Add decls.
3844 * method.c (hack_identifier): Also convert component_refs from
3847 * lex.c (cons_up_default_function): Use the type, not the name, in
3850 * decl2.c (import_export_vtable): Fix weak vtables.
3852 Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
3854 * search.c (get_base_distance_recursive): Fix access checks for
3857 Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3859 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
3861 (convert_harshness): Add prototypes wrapped by PROTO.
3862 * decl2.c (grok_function_init): Likewise.
3863 (do_toplevel_using_decl): Change to void return type.
3864 * class.c (build_vtable_entry): Remove decl of make_thunk.
3865 (merge_overrides): Fix order of arg definitions.
3866 (finish_vtbls): Likewise.
3867 (fixup_vtable_deltas): Likewise.
3868 (modify_all_direct_vtables): Likewise.
3869 (modify_all_indirect_vtables): Likewise.
3870 * search.c (get_base_distance_recursive): Likewise.
3871 (get_abstract_virtuals_1): Likewise.
3872 (fixup_virtual_upcast_offsets): Likewise.
3873 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
3874 * init.c (perform_member_init): Fix order of arg definitions.
3875 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
3876 * cp-tree.h (make_thunk): Add decl.
3877 (overload_template_name, push_template_decl): Add decls.
3878 (do_toplevel_using_decl): Change to void return type.
3879 (vec_binfo_member): Add decl.
3881 Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3883 * typeck.c (mark_addressable, convert_for_assignment,
3884 convert_for_initialization, pointer_int_sum, pointer_diff,
3885 unary_complex_lvalue): Add prototypes wrapped by PROTO.
3886 (convert_sequence): #if 0 fn decl, since definition also is.
3888 Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
3890 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
3891 cast to pointer types for type searching.
3893 Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3895 * typeck.c (get_delta_difference): Use cp_error, not error, in the
3896 case where BINFO == 0.
3898 Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
3900 * call.c (build_method_call): Fix wording of error messages so
3901 constructors come out right.
3903 Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
3905 * decl.c (push_overloaded_decl): Don't warn about hidden
3906 constructors when both the type and the function are declared
3907 in a system header file.
3909 Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
3911 * class.c (finish_struct_1): Propagate the TYPE_PACKED
3912 flag for the type to the type's fields.
3914 Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3916 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
3918 Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
3920 * class.c (base_info, finish_base_struct): Replace
3921 needs_virtual_dtor with base_has_virtual.
3923 (finish_struct_1): Remove the old code that tried to make default
3924 destructors virtual. Use base_has_virtual when checking if we need
3925 to add a vtable entry for the rtti code.
3927 Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
3929 * pt.c (push_template_decl): Complain about template decl with
3930 inappropriate declaration.
3932 Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
3934 * typeck.c (build_x_unary_op): Remove bogus check for taking
3935 the address of a member function.
3937 Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3939 * parse.y (constructor_declarator): Only push the class if
3940 we are not already in the class.
3942 Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
3944 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
3945 Add additional argument to INIT_CUMULATIVE_ARGS.
3947 Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
3949 * decl.c (shadow_tag): Fix error about anon union with methods.
3951 * parse.y (self_reference): Only generate a self-reference if this
3952 is a non-template class.
3953 (opt.component_decl_list): Only use it if it was generated.
3955 * parse.y (component_decl_1): Use constructor_declarator.
3956 (fn.def2): Likewise.
3957 (notype_component_declarator0): Likewise.
3959 Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
3961 * typeck.c (build_x_unary_op): Add checks for taking the address
3962 of a TARGET_EXPR or of a member function, and give appropriate
3965 Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3967 * pt.c (process_template_parm): Allow template type parms to be
3968 used as types for template const parms.
3970 Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
3972 * init.c (expand_vec_init): Ensure the eh cleanups are on the
3975 Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3977 * decl.c (lookup_name_real): Be even more picky about the
3978 ambiguous lookup warning.
3979 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
3980 * parse.y (constructor_declarator): Rather than here.
3982 * parse.y (constructor_declarator): New nonterminal.
3984 (explicit_instantiation): Likewise.
3986 Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3988 Add implicit declaration of class name at class scope.
3989 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
3990 * parse.y (self_reference): New nonterminal.
3991 (opt.component_decl_list): Use it.
3992 (fn.def1): Add nested_name_specifier type_name cases.
3993 * class.c (build_self_reference): New function.
3994 (finish_struct): Handle access_default later, move self-reference
3996 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
3997 * cp-tree.h: Adjust.
3999 * pt.c (do_function_instantiation): Separate handling of member
4000 functions and non-member functions properly.
4002 Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4004 * pt.c (process_template_parm): Improve error for 'volatile class K'.
4006 * class.c (finish_struct_1): Check the right slot for destructors.
4008 * decl.c (start_enum): Complain about enum templates.
4010 Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
4012 * init.c (resolve_offset_ref): Offset pointers to member data by one.
4013 * typeck.c (unary_complex_lvalue): Likewise.
4015 Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
4017 * typeck.c (c_expand_return): Check for a returned local
4018 array name, similar to the check for an ADDR_EXPR.
4020 Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4022 * decl.c (cp_finish_decl): Don't build cleanups for static
4025 Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
4027 * typeck.c (build_modify_expr): Fix error messages to be more
4029 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
4030 assignment operators.
4031 * error.c (assop_as_string): Likewise. Add support for `%Q' for
4032 assignment operators.
4034 Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
4036 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
4037 give an error if initialized. Pedwarn about nested type with the
4038 same name as its enclosing class.
4040 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
4042 * typeck.c (require_complete_type): Be sure to instantiate the
4043 MAIN_VARIANT of the type.
4045 * decl2.c (finish_file): Instantiate pending templates before
4046 processing static constructors and destructors.
4048 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
4051 Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
4053 * decl2.c (delete_sanity): If error_mark_node is passed
4054 in as an expression, quit while we're ahead.
4056 * decl.c (grokdeclarator): Give an error message if `friend'
4057 is combined with any storage class specifiers.
4059 Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
4061 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
4062 definition of nonexistent nested type.
4064 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
4065 not to say 'typedef'.
4067 Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4069 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
4070 * search.c (dfs_walk, dfs_init_vbase_pointers,
4071 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
4072 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
4074 Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
4076 * except.c (build_throw): Support minimal parse.
4077 * pt.c (tsubst_copy): Support THROW_EXPR.
4078 * decl2.c (build_expr_from_tree): Likewise.
4080 * pt.c (mangle_class_name_for_template): Always allocate
4083 Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
4085 * cvt.c (cp_convert_to_pointer): Give an appropriate error
4086 when trying to cast from an incomplete type.
4088 Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4090 * pt.c (instantiate_class_template): Don't bother setting up
4091 CLASSTYPE_TAGS explicitly, as the nested types will add
4094 Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
4096 * decl.c (shadow_tag): Remove old error check for usage of
4097 an enum without a previous declaration.
4098 (xref_tag): Add error message about usage of enums without a
4099 previous declaration.
4101 Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
4103 * lex.c (do_identifier): Only do name consistency check if we're
4106 * pt.c (push_template_decl): Don't crash if we get a member defn
4109 * decl.c (xref_tag_from_type): New function to do an xref without
4110 always having to figure out code_type_node.
4111 * cp-tree.h: Declare it.
4112 * pt.c (instantiate_class_template): Use it for friend classes.
4113 (lookup_template_class): Use it.
4115 * typeck2.c (build_functional_cast): Pull out a single parm before
4116 passing it to build_c_cast.
4118 Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
4120 * expr.c (do_case): Give an error message if a pointer is
4121 given as a case value.
4123 Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
4125 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
4128 * lex.c (cons_up_default_function): Really, now, interface hackery
4129 does not apply to synthesized methods.
4131 Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
4133 * call.c (build_method_call): Ctors and dtors now have special names
4134 with respect to lookups.
4135 * class.c (add_method): Likewise.
4136 (grow_method): Likewise.
4137 (finish_struct_methods): Likewise.
4138 (warn_hidden): Likewise.
4139 (finish_struct_1): Likewise.
4140 * cvt.c (convert_to_reference): Likewise.
4141 (convert_to_aggr): Likewise.
4142 (cp_convert): Likewise.
4143 * decl2.c (check_classfn): Likewise.
4144 * init.c (expand_member_init): Likewise.
4145 (expand_default_init): Likewise.
4146 (expand_aggr_init_1): Likewise.
4147 (build_offset_ref): Likewise.
4148 (build_new): Likewise.
4149 (build_delete): Likewise.
4150 * lex.c (do_inline_function_hair): Likewise.
4151 * search.c (lookup_field_1): Likewise.
4152 (lookup_fnfields_here): Likewise.
4153 (lookup_field): Likewise.
4154 (lookup_fnfields): Likewise.
4155 (get_virtual_destructor): Likewise.
4156 (dfs_debug_mark): Likewise.
4157 (dfs_pushdecls): Likewise.
4158 (dfs_compress_decls): Likewise.
4159 * tree.c (layout_basetypes): Likewise.
4160 * typeck.c (build_component_ref): Likewise.
4161 (build_x_function_call): Likewise.
4162 (build_modify_expr): Likewise.
4163 (convert_for_initialization): Likewise.
4164 (build_functional_cast): Likewise.
4165 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
4168 * decl.c (ctor_identifier): New.
4169 (dtor_identifier): New.
4170 (init_decl_processing): Set them.
4172 Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
4174 * typeck.c (build_component_ref): Don't get confused by fields whose
4175 context has no type name, like pointer to member functions.
4177 Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
4179 * decl.c (grokdeclarator): Handle typedef without declarator.
4181 * pt.c (tsubst): Handle SCOPE_REF in declarator.
4183 * parse.y (bad_parm): Catch another case of missing `typename'.
4185 * lex.c (yyprint): Handle TYPE_DECLs.
4187 * decl.c (start_function): Don't try to be clever.
4189 * lex.c: Lose compiler_error_with_decl.
4190 * typeck2.c: Lose error_with_aggr_type.
4191 (incomplete_type_error): Use cp_* instead of old functions.
4192 (readonly_error): Likewise.
4193 * typeck.c (convert_arguments): Likewise.
4194 * search.c (lookup_nested_field): Likewise.
4195 * method.c (make_thunk): Likewise.
4196 * decl.c (grokparms): Likewise.
4197 * cp-tree.h: Update.
4199 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
4202 Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
4204 * method.c (build_opfncall): When deleting a pointer to an
4205 array, build a new pointer to the tree past any ARRAY_TYPE
4208 Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4210 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
4212 Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
4214 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
4217 * decl.c (finish_function): Don't set nested based on
4218 hack_decl_function_context.
4219 * parse.y (function_try_block): Check for nested function.
4220 (pending_inlines): Likewise.
4222 * decl2.c (build_expr_from_tree): If a unary op already has a
4223 type, just return it.
4225 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
4227 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
4228 (finish_file): Check the return value of walk_vtables.
4229 (finish_prevtable_vardecl): Return int.
4230 (finish_vtable_vardecl): Likewise.
4231 (prune_vtable_vardecl): Likewise.
4232 * lex.c (set_vardecl_interface_info): Likewise.
4233 * cp-tree.h: Adjust return types.
4235 * class.c (delete_duplicate_fields_1): Don't complain about
4236 duplicate nested types if they're the same type.
4237 (finish_struct): Remove check for duplicate.
4238 * decl2.c (grokfield): Don't check for typedef of anonymous type.
4240 Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4242 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
4244 * decl.c (grokdeclarator): Lose special handling of class-level
4245 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
4246 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
4248 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
4250 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
4252 * search.c (compute_access): Fix handling of anonymous union
4254 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
4255 from anonymous unions to their members.
4257 * typeck.c (build_x_function_call): For static member functions,
4258 hand off to build_member_call.
4260 Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
4262 * typeck.c (build_component_ref): Handle OFFSET_REFs.
4264 * init.c (expand_vec_init): Fix init == 0 case.
4266 Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
4268 * init.c (build_new): Pedwarn about init and array new.
4269 (expand_vec_init): Handle lists, use convert_for_initialization
4271 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
4272 when converting to an aggregate type.
4273 * cvt.c (cp_convert): Pass it through.
4275 * typeck.c (build_conditional_expr): Handle user-defined
4276 conversions to slightly different types.
4278 * decl.c (grokdeclarator): Force an array type in a parm to be
4281 * decl2.c (do_using_directive): Sorry.
4282 (do_namespace_alias): Likewise.
4283 * lex.c (real_yylex): Warn about using the `namespace' keyword.
4285 Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4287 * parse.y (datadef): Move call to note_list_got_semicolon up.
4289 Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
4291 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
4293 Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
4295 * decl.c (cp_finish_decl): The exception regions have to be
4296 nested, not overlapping. We start the exception region for a
4297 decl, after it has been fully built, and all temporaries for it
4298 have been cleaned up.
4300 Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
4302 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
4304 Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
4306 * tree.def: Add RETURN_INIT.
4307 * pt.c (instantiate_decl): Handle RETURN_INIT.
4308 * decl.c (store_return_init): Handle minimal_parse_mode.
4310 * tree.c (cp_build_type_variant): Just return an error_mark_node.
4311 * decl.c (make_typename_type): Don't try to get the file and line
4313 * typeck.c (comptypes): Handle TYPENAME_TYPE.
4315 Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
4317 * decl.c (poplevel): Make sure we clear out and restore old local
4318 non-VAR_DECL values by default when they go out of scope.
4320 Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4322 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
4323 referring to addresses of variables and functions.
4325 * error.c (dump_expr): Support SIZEOF_EXPR.
4327 * init.c (do_friend): Use the return value of check_classfn.
4329 * typeck.c (convert_arguments): Call complete_type.
4331 * method.c (hack_identifier): After giving an error, set value to
4334 Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4336 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
4337 lossage for local classes.
4338 * cp-tree.h: Declare it.
4339 * decl.c (lookup_name_real): Evil, painful hack for local classes.
4340 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
4341 Use hack_decl_function_context.
4342 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
4343 (start_function): Use hack_decl_function_context.
4344 (finish_function): Likewise.
4345 * method.c (synthesize_method): Likewise.
4346 * lex.c (process_next_inline): Likewise.
4347 (do_pending_inlines): Likewise.
4348 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
4351 Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
4353 * sig.c (build_signature_pointer_or_reference_type): Align
4354 signature pointers/references on 8-byte boundaries so they can be
4355 grabbed 2 words at a time on a Sparc.
4357 Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
4359 * method.c (hack_identifier): Requiring a static chain is now a
4361 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
4364 Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4366 * init.c (build_offset_ref): Call complete_type.
4368 * decl.c (pop_from_top_level): Always pop previous_class_type.
4370 * parse.y: Handle multiple decls in a for-init-statement.
4371 * pt.c (tsubst_expr): Likewise.
4373 * pt.c (tsubst): Use tsubst_expr for the second operand of an
4376 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
4377 (poplevel_class): Set it here.
4378 (pop_from_top_level): Pop it here if we're returning to class scope.
4379 * class.c (pushclass): Don't set it here.
4381 * decl.c (maybe_push_to_top_level): Save current_template_parms,
4382 and clear it if !pseudo.
4383 (pop_from_top_level): Restore it.
4385 * decl2.c (finish_file): Push the dummy each time we walk the list
4388 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
4389 something for CAST_EXPR.
4391 Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
4393 * cvt.c (cp_convert): Warn about implicit conversion of the
4394 address of a function to bool, as it is always true.
4396 Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
4398 * typeck.c (c_expand_return): Fix warning for local externs returned.
4400 Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
4402 * tree.c (mapcar): Propagate const and volatile properly.
4404 * typeck.c (complete_type): Be sure to instantiate the
4405 MAIN_VARIANT of the type.
4407 * method.c (synthesize_method): Class interface hackery does not
4408 apply to synthesized methods.
4410 Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4412 * pt.c (comp_template_args): Use comptypes rather than just
4413 checking for TEMPLATE_TYPE_PARM equivalence.
4415 * typeck.c (build_x_function_call): Call complete_type before
4416 checking TYPE_OVERLOADS_CALL_EXPR.
4418 Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
4420 * g++.c (main): Check also for new define ALT_LIBM.
4422 Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4424 * pt.c (instantiate_class_template): If we don't have a pattern
4426 (coerce_template_parms): If we see a local class, bail.
4428 * decl.c (grok_reference_init): Make sure there's a type before
4431 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
4432 (push_template_decl): Likewise.
4434 * parse.y (named_class_head): Set
4435 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
4437 * decl.c (xref_tag): Diagnose redeclaration of template
4438 type-parameter name.
4440 * error.c (dump_type): Handle anonymous template type parms.
4442 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
4444 (coerce_template_parms): Likewise.
4446 Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
4448 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
4449 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
4451 Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
4453 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
4454 before trying to get its STUB_DECL.
4455 (coerce_template_parms): Likewise.
4457 * parse.y (template_type_parm): If they didn't use 'class',
4458 pretend they did after giving an error.
4460 * pt.c (coerce_template_parms): Diagnose use of local class.
4462 * decl.c (grok_reference_init): Use instantiate_type.
4464 * error.c (dump_expr): Handle TEMPLATE_DECLs.
4466 * parse.y (named_class_head): Diagnose mismatching types and tags.
4468 * decl.c (pushdecl): Type decls and class templates clash with
4469 artificial type decls, not hide them.
4471 * decl.c (redeclaration_error_message): Diagnose redefinition of
4473 (duplicate_decls): Diagnose disallowed overloads for template
4476 * decl.c (start_decl): Call complete_type before checking for a
4479 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
4481 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
4483 Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4485 * decl.c (grok_op_properties): Don't check for operator++(int) in
4488 * tree.c (perm_manip): Return a copy of variable and function
4489 decls with external linkage.
4491 * tree.def: Change some of the min tree codes to type "1".
4492 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
4493 * method.c (build_overload_int): Emit something arbitrary for
4494 anything but an INTEGER_CST if we're in a template.
4496 * decl.c (cp_finish_decl): Call complete_type before deciding
4497 whether or not to lay out the decl.
4499 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
4501 Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
4503 * typeck2.c (build_x_arrow): Call complete_type.
4505 * pt.c (add_pending_template): Broken out.
4506 (lookup_template_class): If -fexternal-templates, call it for all
4507 the methods of implemented types.
4508 (instantiate_class_template): Instead of instantiating them here.
4509 (instantiate_decl): Handle -fexternal-templates earlier.
4511 Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4513 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
4514 memoized lookup stuff inside GATHER_STATISTICS.
4516 Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4518 * decl.c (start_decl): Complain about array of incomplete type
4520 (grokdeclarator): Not here.
4522 * parse.y (template_parm): Expand full_parm inline so we can set
4523 the rule's precedence.
4525 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
4526 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
4527 * decl2.c (grokbitfield): Don't check for integer constant here.
4528 * class.c (finish_struct_1): Check here.
4530 * decl.c (define_label): Make the min decl go on permanent_obstack.
4532 * pt.c (unify): Don't handle CONST_DECLs.
4533 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
4534 (tsubst_copy): Likewise.
4536 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
4537 CONST_DECL for a template parm.
4539 Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
4541 * decl.c (grokdeclarator): Complain about array of incomplete type
4543 (start_decl_1): Not here.
4545 * pt.c (tsubst): Handle pointer-to-function declarators.
4547 * method.c (hack_identifier): If pedantic, diagnose local class
4548 methods that require a static chain.
4550 * decl.c (grok_op_properties): No longer static.
4551 * cp-tree.h: Declare it.
4552 * pt.c (tsubst): Call it for operators.
4553 Use tsubst_copy for TREE_VECs.
4555 * parse.y (template_arg): The expr has precedence like '>'.
4557 Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
4559 * pt.c (coerce_template_parms): Don't coerce an expression using
4561 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
4562 (tsubst): Don't use build_index_2_type if the max_value uses template
4564 * method.c (build_overload_int): Emit something arbitrary for an
4565 expression using template parms.
4567 * parse.y (template_close_bracket): New non-terminal to catch use
4568 of '>>' instead of '> >' in template class names.
4569 (template_type): Use it.
4570 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
4572 * tree.def: Add CAST_EXPR.
4573 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
4574 CONVERT_EXPR for minimal_parse_mode.
4575 * typeck.c (build_c_cast): Likewise.
4576 * pt.c (tsubst_copy): Likewise.
4577 * decl2.c (build_expr_from_tree): Likewise.
4578 * error.c (dump_expr): Likewise.
4580 Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4582 * except.c (SetTerminate, SetUnexpected): Put back global vars.
4583 (init_exception_processing): Put back decl/init of
4584 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
4587 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
4588 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
4590 * cp-tree.h (declare_uninstantiated_type_level,
4591 uninstantiated_type_level_p): Delete prototypes.
4593 Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4595 * pt.c (tsubst_expr): Add default return.
4597 Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4599 * error.c (fndecl_as_string): Delete unused arg CNAME.
4600 * sig.c (build_signature_table_constructor,
4601 build_signature_method_call): Fix calls.
4603 * class.c (the_null_vtable_entry): Delete var definition.
4604 (init_class_processing): Delete tree the_null_vtable_entry init.
4605 * decl.c (no_print_{functions, builtins}): Declare as static.
4606 (__tp_desc_type_node): #if 0 var definition.
4607 (init_type_desc): #if 0 init of __tp_desc_type_node.
4608 (vb_off_identifier): Move var decl into init_decl_processing.
4609 (current_function_assigns_this): Declare as static.
4610 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
4611 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
4612 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
4613 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
4614 * init.c (BI_header_type, BI_header_size): Declare as static.
4615 * pt.c (template_classes): Delete unused var.
4616 (add_pending_template): Delete decl for non-existent fn.
4617 (lookup_template_class): Delete vars CODE and TAG_CODE.
4618 (instantiate_template): Delete unused var TARGS.
4619 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
4621 (__tp_desc_type_node): #if 0 var decl.
4622 (fndecl_as_string): Fix prototype.
4624 Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4626 * tree.def: Add GOTO_STMT.
4627 * pt.c (tsubst_expr): Support goto and labels.
4628 * decl.c (define_label): Support minimal parsing.
4629 * parse.y (simple_stmt): Likewise.
4631 Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4633 * xref.c (GNU_xref_member): Only define/set var I if
4634 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
4636 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
4637 (GNU_xref_end): Fix call.
4638 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
4639 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
4641 * tree.c (build_exception_variant): Delete unused vars I, A, T,
4643 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
4644 (mapcar): Delete unused var CODE.
4645 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
4646 (break_out_cleanups): Fix call.
4647 (bot_manip): Likewise.
4648 * call.c (build_method_call): Likewise.
4649 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
4651 * typeck.c (unary_complex_lvalue, build_modify_expr,
4652 convert_for_initialization): Likewise.
4653 * typeck2.c (build_functional_cast): Likewise.
4654 * cp-tree.h (build_cplus_new): Fix prototype.
4656 * repo.c (open_repo_file): Delete unused var Q.
4657 (repo_compile_flags, repo_template_declared,
4658 repo_template_defined, repo_class_defined, repo_inline_used,
4659 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
4660 (repo_get_id, repo_vtable_used): Declare as static.
4661 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
4664 Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
4666 * parse.y (pending_inlines): Add function_try_block case.
4668 * pt.c (unify): Fix for template const parms.
4670 Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4672 * lex.c (extract_interface_info): Delete forward decl.
4673 (default_copy_constructor_body, default_assign_ref_body): Delete
4674 decls for non-existent functions.
4675 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
4676 (init_lex): Delete setting them.
4677 (cons_up_default_function): Delete unused vars FUNC_BUF,
4678 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
4680 (toplevel, expression_obstack): Delete unused extern decls.
4681 (tree_node_kind): Delete unused enum.
4682 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
4684 (tree_node_kind_names): Delete unused extern decl.
4685 (synth_obstack): Delete unused var.
4686 (init_lex): Don't set it.
4687 (init_parse): Add decl before use.
4688 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
4689 (current_unit_{name, language}): Delete unused vars.
4690 (check_newline): Don't bother setting them, just accept the #pragma.
4691 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
4692 (current_unit_{name, language}): Delete decls.
4694 * search.c: Wrap all of the memoized functions, macros, and
4695 variables inside #ifdef GATHER_STATISTICS.
4696 (lookup_field, lookup_fnfields): Likewise.
4697 (init_search_processing): Likewise.
4698 (reinit_search_statistics): Wrap whole function.
4699 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
4701 * decl.c (finish_function): Only call pop_memoized_context if
4702 GATHER_STATISTICS is defined.
4703 (start_function): Likewise for push_memoized_context.
4704 * class.c (pushclass, popclass): Likewise.
4706 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
4707 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
4709 * cvt.c (cp_convert): Delete unused local var FORM.
4710 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
4713 Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4715 * pt.c (do_poplevel): Oops; really return what we get from
4718 Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4720 * cp-tree.h (is_aggr_type): Add prototype.
4722 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
4723 * method.c ({push,pop}_cp_function_context): Delete decls.
4724 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
4725 (SetUnexpected, SetTerminate): Delete unused vars.
4726 (init_exception_processing): Don't set SetUnexpected or
4727 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
4728 (output_exception_table_entry): Delete unused array LABEL.
4729 (expand_internal_throw): Delete unused var PARAMS.
4730 (expand_start_catch_block): Delete unused var CLEANUP.
4731 (emit_exception_table): Delete unused var EH_NODE_DECL.
4732 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
4733 GOTO_UNWIND_AND_THROW. Don't set them.
4734 (end_eh_unwinder): Add top decl.
4735 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
4736 (exception_section, push_rtl_perm, do_function_call,
4737 lang_interim_eh, push_eh_cleanup, eh_outer_context,
4738 expand_end_eh_spec, end_eh_unwinder): Declare as static.
4739 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
4740 throw_used): Likewise.
4741 * cp-tree.h (expand_end_eh_spec): Delete prototype.
4743 * search.c (dfs_mark, dfs_mark_vtable_path,
4744 dfs_unmark_vtable_path, dfs_mark_new_vtable,
4745 dfs_unmark_new_vtable, dfs_clear_search_slot,
4746 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
4747 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
4748 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
4750 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
4751 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
4752 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
4753 Only define #ifdef GATHER_STATISTICS.
4754 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
4756 (vbase_decl): Delete var definition.
4757 (init_search): Delete old decl.
4758 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
4759 never actually used.
4760 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
4761 (get_base_distance_recursive): Delete unused fourth arg
4762 BASETYPE_PATH. Fix call .
4763 (get_base_distance): Fix call.
4764 (push_class_decls): Delete unused var ID.
4765 (make_memoized_table_entry): Declare as static.
4766 (breadth_first_search): Declare as static.
4767 (tree_has_any_destructor_p): Declare as static.
4768 (pop_class_decls): Delete unused arg pop_class_decls.
4769 * class.c (popclass): Fix call to pop_class_decls.
4770 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
4771 tree_has_any_destructor_p): Delete prototypes.
4773 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
4774 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
4775 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
4776 (build_user_desc): Delete unused var T.
4777 (build_class_desc): Delete unused vars T and OFF.
4778 (build_t_desc): Delete unused var NAME_STRING.
4779 (build_headof): Make static.
4780 (get_bad_cast_node): Likewise.
4781 (get_def_to_follow): Likewise.
4782 * cp-tree.h (init_type_desc): Add prototype.
4783 (build_headof): Remove prototype.
4785 Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4787 * pt.c (tsubst): Only look for matching decls at file scope for
4788 non-member functions.
4790 * call.c (build_scoped_method_call): Handle scoped destructor
4793 * decl.c (*_top_level): Also save previous_class_values.
4795 * pt.c (tsubst_expr): Support do {} while loops.
4796 * parse.y (simple_stmt): Likewise.
4797 * tree.def: Likewise.
4799 * method.c (build_overload_identifier): For a class nested in a
4800 template class, don't mangle in the template parms from our
4803 * lex.c, cp-tree.h: Remove support for template instantiations in
4804 the pending_inlines code.
4805 * pt.c: Remove dead functions and unused arguments.
4806 (uses_template_parms): TYPENAME_TYPEs always use template parms.
4807 * parse.y: Stop passing anything to end_template_decl.
4808 * tree.c (print_lang_statistics): Only print tinst info #ifdef
4811 Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4813 * init.c (expand_recursive_init{,_1}): Delete decls.
4814 (sort_member_init): Delete unused var INIT.
4815 (emit_base_init): Delete unused var X.
4816 (build_offset_ref): Delete unused var CNAME.
4817 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
4818 (emit_base_init): Delete unused local var BASE. Delete extern
4819 decl of IN_CHARGE_IDENTIFIER.
4820 (build_delete): Delete unused local var VIRTUAL_SIZE.
4822 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
4823 (build_delete): Fix call.
4824 * decl2.c (delete_sanity): Likewise.
4825 * cp-tree.h (build_vec_delete): Update prototype.
4827 * typeck.c (common_base_type): Delete unused var TMP.
4828 (build_binary_op): Delete local var ARGS_SAVE.
4829 (build_array_ref): Delete unused var ITYPE.
4830 (c_expand_return): Delete unused var USE_TEMP.
4832 * typeck.c (compexcepttypes): Delete unused arg STRICT.
4833 (comptypes): Fix calls.
4834 * decl.c (duplicate_decls): Likewise.
4835 * cp-tree.h (compexcepttypes): Delete extra arg.
4837 * decl2.c (check_classfn): Delete unused second arg CNAME.
4838 * decl.c (start_decl, grokfndecl): Fix calls.
4839 * init.c (do_friend): Likewise.
4840 * cp-tree.h (check_classfn): Update prototype.
4842 * cp-tree.h (signature_error, import_export_vtable,
4843 append_signature_fields, id_in_current_class, mark_used,
4844 copy_assignment_arg_p): Add decls.
4845 * decl2.c (mark_used): Delete decl.
4847 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
4849 * class.c (get_vtable_entry): Diable unused function.
4850 (doing_hard_virtuals): Delete unused static global var.
4851 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
4852 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
4853 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
4854 (modify_one_vtable): Delete unused var OLD_RTTI.
4855 (finish_struct_anon): Delete unused vars OFFSET and X.
4856 (finish_struct_bits): Delete unused var METHOD_VEC.
4857 (get_basefndecls): Delete unused var PURPOSE. Delete unused
4858 for-scope local variable METHODS.
4860 * call.c (user_harshness): Delete unused/unneeded arg PARM.
4861 (ideal_candidate): Delete unused args BASETYPE and PARMS.
4862 (build_method_call): Delete unused args passed into ideal_candidate.
4863 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
4864 * cp-tree.h (synthesize_method): Add decl.
4866 * decl.c (note_level_for_for): Give void return type.
4867 (pushdecl_nonclass_level): Likewise.
4868 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
4869 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
4870 (suspend_binding_level): Delete unused var LEVEL.
4871 (duplicate_decls): Delete unused var CTYPE.
4872 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
4873 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
4875 (grokdeclarator): Delete unused var C.
4876 (grokdeclarator): Delete unused var SIZE_VARIES.
4877 (grokparms): Delete unused var SAW_VOID.
4878 (start_function): Delete unused var OLDDECL.
4879 (cplus_expand_expr_stmt): Delete unused var
4880 REMOVE_IMPLICIT_IMMEDIATELY.
4882 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
4884 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
4886 Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4888 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
4889 (build_min_nt): Likewise.
4890 * pt.c (do_pushlevel): Emit line note.
4891 (do_poplevel): Return what we get from poplevel.
4892 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
4893 * parse.y: Use do_pushlevel and do_poplevel.
4894 * cp-tree.h: Declare do_poplevel.
4896 * cp-tree.h: Declare at_eof.
4897 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
4898 * decl2.c (import_export_decl): Renamed from import_export_inline.
4899 (finish_file): Call it to do interface handling for statics.
4900 * pt.c (tsubst_copy): Call mark_used on variables and functions
4903 * decl2.c (finish_file): Don't emit statics we can't generate.
4904 * pt.c (instantiate_decl): Don't set interface on instantiations
4907 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
4908 * tree.c (print_lang_statistics): Print max template depth.
4909 * pt.c (push_tinst_level): Dump entire instantiation context.
4910 (instantiate_class_template): Use it and pop_tinst_level.
4911 (instantiate_decl): Likewise.
4913 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
4914 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
4916 Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4918 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
4919 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
4920 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
4921 the new template implementation.
4923 Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4925 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
4927 Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
4929 * decl.c (cp_finish_decl): Delay emitting the debug information for
4930 a typedef that has been installed as the canonical typedef, if the
4931 type has not yet been defined.
4933 Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4935 * decl2.c (grokfield): Still call pop_nested_class for access decls.
4937 Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4939 * decl.c (lookup_label): Call label_rtx.
4941 * decl.c (make_binding_level): New function.
4942 (pushlevel, pushlevel_class): Call it instead of explicit
4943 duplicate calls to xmalloc.
4945 * decl.c (init_decl_processing): Delete useless build_pointer_type
4948 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
4949 (sizet_ftype_string): Delete variable.
4950 (init_decl_processing): Add built-in functions fabsf, fabsl,
4951 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
4952 variable strlen_ftype, used for strlen.
4954 Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
4956 * decl.c (push_to_top_level): Start from current_binding_level
4957 again for now; the stl hacks depend on g++ being broken in this
4958 way, and it'll be fixed in the template rewrite.
4960 * tree.def: Add USING_DECL.
4961 * decl2.c (do_class_using_decl): Implement.
4962 (grokfield): Pass access decls off to do_class_using_decl instead of
4964 * error.c (dump_decl): Handle USING_DECLs.
4965 * decl.c (grokdeclarator): Remove code for handling access decls.
4966 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
4967 as access decls for now.
4968 (finish_struct): Don't check USING_DECLs for other uses of the name.
4970 * search.c (get_matching_virtual): Use cp_error_at.
4972 Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4974 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
4976 (self_promoting_args_p): Move the check that TYPE is non-nil
4977 before trying to look at its main variant.
4978 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
4980 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
4982 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
4983 (do_friend): Delete call to xref_friend.
4984 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
4986 * typeck.c (convert_sequence): #if 0 unused function.
4988 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
4989 be in decl_in_memory_p.
4990 (decl_in_memory_p): Delete decl.
4991 * expr.c (decl_in_memory_p): Delete fn.
4992 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
4994 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
4996 Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
4998 * class.c (finish_struct_1): Check for a pure-specifier on a
4999 non-virtual function here.
5001 * decl2.c (grok_function_init): Don't check whether the function
5003 (grokfield): Don't call check_for_override here.
5005 * decl.c (push_to_top_level): Start from inner_binding_level,
5006 check class_shadowed in class levels.
5008 Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
5010 * decl.c (resume_level): Ignore things that don't have names, instead
5013 Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5015 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
5017 Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
5019 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
5022 * parse.y (complete_type_name): Bind global_scope earlier.
5023 (complex_type_name): Likewise.
5024 (qualified_type_name): Remove.
5026 Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
5028 * decl.c (grokfndecl): Move code that looks for virtuals in base
5030 * class.c (check_for_override): ... to a new function.
5031 (finish_struct_1): Call it.
5033 * cp-tree.h: Declare warn_sign_compare.
5035 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
5036 rather than extra_warnings to decide whether to warn about
5037 comparison of signed and unsigned.
5039 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
5040 implies -Wsign-compare. -Wall doesn't imply -W.
5042 Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
5044 * typeck.c (build_component_ref): Fix to handle anon unions in base
5047 Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5049 * class.c (resolves_to_fixed_type_p): Delete code dealing with
5050 a WITH_CLEANUP_EXPR, since we don't generate them any more.
5051 * cvt.c (build_up_reference): Likewise.
5052 * decl.c (grok_reference_init): Likewise.
5053 (cp_finish_decl): Likewise.
5054 * error.c (dump_expr): Likewise.
5055 * tree.c (real_lvalue_p): Likewise.
5056 (lvalue_p): Likewise.
5057 (build_cplus_new): Likewise.
5058 (unsave_expr_now): Likewise.
5059 * typeck.c (unary_complex_lvalue, build_modify_expr,
5060 c_expand_return): Likewise.
5062 Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5064 Make the C++ front-end pay attention to attributes for structures.
5065 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
5067 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
5068 Take out old round_up_size use and setting the DECL_ALIGN possibly
5069 using it. Take out setting of TYPE_ALIGN to round_up_size, which
5070 can override what the attribute set.
5071 * cp-tree.h (finish_struct): Update prototype.
5072 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
5073 attributes to finish_struct.
5074 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
5075 value down into finish_struct.
5076 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
5078 Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
5080 * decl.c (poplevel): Re-word dead for local handling.
5081 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
5082 (cp_finish_decl): If is_for_scope, check for duplicates so
5083 we can disable is_for_scope. Otherwise, preserve_temp_slots.
5085 * lex.c (do_identifier): Use global binding in preference of
5086 dead for local variable.
5088 Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
5090 * init.c (initializing_context): Handle anon union changes, the
5091 context where fields of anon unions can be initialized now has to be
5092 found by walking up the TYPE_CONTEXT chain.
5094 Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
5096 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
5097 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
5098 (obscure_complex_init): If bss is supported, always set
5099 DECL_INITIAL to error_mark_node.
5101 Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5103 * init.c (is_friend): Make sure there's a context before we see if
5106 Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
5108 * init.c (is_friend): Classes are not friendly with nested classes.
5110 Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
5112 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
5113 and record its result.
5115 Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
5117 * class.c (finish_struct_anon): Switch around code to not move anon
5118 union elements around, nor mess up their contexts, nor offsets,
5119 instead we now build up the right number of COMPONENT_REFs for all
5120 the anon unions that may be present at build_component_ref time.
5121 * typeck.c (lookup_anon_field): New routine to handle field lookup
5122 on fields without names. We find them, based upon their unique type
5124 * typeck.c (build_component_ref): Allow FIELD_DECL components.
5125 Handle finding components in anonymous unions, and ensure that a
5126 COMPONENT_REF is built for each level as necessary.
5128 Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
5130 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
5131 code that ensures that copy ctors are used if appropriate.
5133 Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5135 * init.c (build_vec_delete): Only give an error if base isn't an
5138 Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
5140 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
5141 (yylex): If we see `new', keep slurping.
5143 Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
5145 * class.c (finish_struct_1): Move code for handling anon unions...
5146 (finish_struct_anon): to here. Fixup so that we do the offset
5147 calculations right, and so that the fields are physically moved to
5148 the containers's chain.
5150 Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5152 * decl.c (grokdeclarator): Avoid trying to get an operand off an
5155 Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
5157 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
5158 POINTER_SIZE to agree with expr.c.
5160 Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
5162 * search.c (lookup_field): Don't report ambiguities if protect is 0,
5163 instead return NULL_TREE.
5165 Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
5167 * class.c (finish_struct_1): Call warn_hidden if we want warnings
5168 about overloaded virtual functions.
5169 (warn_hidden): New routine to warn of virtual functions that are
5170 hidden by other virtual functions, that are not overridden.
5171 (get_basefndecls): New routine, used by warn_hidden.
5172 (mark_overriders): New routine, used by warn_hidden.
5173 * search.c (get_matching_virtual): Remove old warning that just
5176 Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5178 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
5180 * typeck.c (null_ptr_cst_p): Delete unused fn.
5181 (build_function_call_maybe): Delete unused fn.
5183 * expr.c (extract_init): #if 0 the code after unconditional return 0
5186 Delete old cadillac code.
5187 * edsel.c: Remove file.
5188 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
5189 * Makefile.in (CXX_OBJS): Delete edsel.o.
5190 (edsel.o): Delete rule.
5191 * cp-tree.h (flag_cadillac): Delete var decl.
5192 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
5193 * decl2.c (flag_cadillac): Delete var definition.
5194 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
5195 (grokfield): Delete code depending on flag_cadillac.
5196 (finish_anon_union): Likewise.
5197 * class.c (finish_struct_1): Likewise.
5198 (pushclass): Likewise.
5199 (popclass): Likewise.
5200 (push_lang_context): Likewise.
5201 (pop_lang_context): Likewise.
5202 * decl.c (init_decl_processing): Likewise.
5203 (start_decl): Likewise.
5204 (cp_finish_decl): Likewise.
5205 (xref_tag): Likewise.
5206 (finish_enum): Likewise.
5207 (start_function): Likewise.
5208 (finish_function): Likewise.
5209 (finish_stmt): Likewise.
5210 * lex.c (lang_init): Likewise.
5211 (check_newline): Likewise.
5213 * lex.c (do_pending_inlines): Delete synthesized method kludge.
5215 Delete defunct, ancient garbage collection implementation.
5216 * rtti.c: New file with the RTTI stuff from gc.c.
5217 * gc.c: Removed file (moved the remaining stuff into rtti.c).
5218 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
5219 (rtti.o): New rule, replacing gc.o.
5220 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
5221 * cp-tree.h: Delete gc-related fn decls.
5222 (DECL_GC_OFFSET): Delete macro.
5223 (flag_gc): Delete extern decl.
5224 * decl.c (current_function_obstack_index): Delete var decl.
5225 (current_function_obstack_usage): Delete var decl.
5226 (start_function): Delete clearing of current_function_obstack_index
5227 and current_function_obstack_usage.
5228 (init_decl_processing): Delete code relying on -fgc.
5229 Delete call to init_gc_processing.
5230 (cp_finish_decl): Delete calls to build_static_gc_entry and
5231 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
5232 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
5233 and to expand_expr of a __gc_main call.
5234 (maybe_gc_cleanup): Delete var decl.
5235 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
5236 * decl2.c (flag_gc): Delete var decl.
5237 (lang_f_options): Delete offering of -fgc.
5238 (lang_decode_option): Delete -fgc and -fno-gc handling.
5239 (get_temp_regvar): Delete gc code.
5240 * init.c (build_new): Delete gc code.
5241 * lex.c (init_lex): Delete checking of flag_gc.
5243 * typeck.c (convert_arguments): Delete gc code.
5244 (build_component_addr): Delete -fgc warning.
5245 (build_modify_expr): Delete gc code.
5247 * decl2.c (build_push_scope): Delete fn.
5248 * cp-tree.h (build_push_scope): Delete decl.
5250 * search.c (clear_search_slots): Delete fn.
5251 * cp-tree.h (clear_search_slots): Delete decl.
5253 * search.c (tree_needs_constructor_p): Delete fn.
5254 * cp-tree.h (tree_needs_constructor_p): Delete decl.
5256 * tree.c (id_cmp): Delete fn.
5258 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
5259 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
5261 * tree.c (decl_value_member): Delete fn.
5262 * cp-tree.h (decl_value_member): Delete decl.
5264 * tree.c (list_hash_lookup_or_cons): Delete fn.
5265 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
5267 * method.c (cplus_exception_name): Delete fn.
5268 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
5270 * spew.c (shift_tokens): Delete fn.
5272 Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5274 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
5276 * parse.y: Likewise.
5278 Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5280 * tree.c (build_cplus_staticfn_type): Delete function definition;
5282 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
5284 * tree.c (virtual_member): Delete function definition; never used.
5285 * cp-tree.h (virtual_member): Delete decl.
5287 Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
5289 * typeck.c (build_component_ref): Handle getting vbase pointers
5290 out of complex multiple inheritance better.
5292 Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
5294 * typeck.c (build_object_ref): Make sure we use the real type, not
5297 Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
5299 * tree.c (build_exception_variant): Don't create new types if we
5300 don't have to, also build new types on the right obstack.
5302 Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5304 * decl.c (store_bindings): Split out from push_to_top_level.
5305 (push_to_top_level): Call it for b->type_shadowed on class binding
5308 Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
5310 * search.c (expand_upcast_fixups): Fix so that offsets stored in
5311 vbase_offsets are always right. Fixes a problem where virtual base
5312 upcasting and downcasting could be wrong during conversions on this
5313 during virtual function dispatch at ctor/dtor time when dynamic
5314 vtable fixups for deltas are needed. This only sounds easier than
5316 (fixup_virtual_upcast_offsets): Change to reflect new calling
5317 convention for expand_upcast_fixups.
5319 Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5321 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
5322 check that it's usable as the bitfield width.
5324 Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5326 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
5327 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
5328 only ever used for functions in it.
5330 Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5332 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
5333 (nested_type): Likewise.
5334 (nested_name_specifier): Use lastiddecl.
5336 * decl.c (grokdeclarator): Adjust accordingly.
5337 * init.c (expand_member_init): Likewise.
5338 * parse.y (base_class): Likewise.
5339 * typeck2.c (build_functional_cast): Likewise.
5341 * typeck2.c (build_functional_cast): Fill in name after we've
5342 checked for non-aggr type.
5344 Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
5346 * decl2.c (warn_pointer_arith): Default to on.
5348 Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5350 * lex.c (is_rid): New function.
5351 * decl.c (grokdeclarator): Diagnose reserved words used as
5354 Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
5356 * tree.c (get_decl_list): Don't lose cv-quals.
5358 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
5359 typespecs used as declarator-ids.
5361 Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
5363 * decl.c (poplevel): When poping a level, don't give a warning for
5364 any subblocks that already exist.
5366 Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5368 * typeck.c (build_object_ref): Finish what I started.
5370 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
5372 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
5374 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
5377 Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
5379 * decl.c (xref_tag): Handle passing a type in directly.
5381 * parse.y (qualified_type_name): Pull out the type.
5382 (nested_type): Likewise.
5383 Take types directly instead of as identifiers.
5384 * call.c (build_scoped_method_call): Take types directly instead of
5386 * decl.c (xref_basetypes): Likewise.
5387 * init.c (expand_member_init): Likewise.
5388 (build_member_call): Likewise.
5389 (build_offset_ref): Likewise.
5390 * typeck2.c (build_scoped_ref): Likewise, remove bogus code.
5391 * method.c (do_build_assign_ref): Likewise.
5392 * decl.c (grokdeclarator): Handle a type appearing as the
5393 declarator-id for constructors.
5394 * method.c (do_build_copy_constructor): current_base_init_list now
5395 uses the types directly, not their names.
5396 * init.c (sort_base_init): Likewise.
5397 (expand_member_init): Likewise.
5398 * init.c (is_aggr_type): New function, like is_aggr_typedef.
5400 Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com>
5402 * tree.c (layout_basetypes): Call build_lang_field_decl instead
5403 of build_lang_decl if first arg is a FIELD_DECL.
5405 Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5407 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
5409 * except.c (expand_start_catch_block): Set TREE_USED to avoid
5410 warnings about the catch handler.
5412 Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
5414 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
5417 Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5419 Fix access control to use trees rather than integers.
5420 * class.c (access_{default, public, protected, private,
5421 default_virtual, public_virtual, private_virtual}_node): Add
5423 (init_class_processing): Do creation of those nodes.
5424 * cp-tree.h (access_type): Delete enum decl.
5425 (access_{default, public, protected, private, default_virtual,
5426 public_virtual, private_virtual}_node): Add decls.
5427 (compute_access): Change return type.
5428 * search.c (compute_access): Have tree return type, instead of enum.
5429 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
5430 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
5431 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
5432 * parse.y (VISSPEC): Make ttype rather than itype.
5433 (base_class_access_list): Likewise.
5434 * *.[cy]: Change all refs of `access_public' to `access_public_node',
5436 * call.c (build_method_call): Make ACCESS be a tree.
5437 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
5438 * cvt.c (convert_to_aggr): Likewise.
5439 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
5441 * method.c (hack_identifier): Likewise.
5442 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
5444 Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
5446 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
5447 frontend, and make it more consistent with respect to
5450 Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
5452 * decl.c (pushdecl): Check for duplicate parameter names.
5454 Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
5456 * decl.c (expand_static_init): Call assemble_external for atexit.
5458 Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
5460 * except.c (do_unwind): Remove some generated dead code.
5461 (eh_outer_context): New routine, factor out some common code from
5462 expand_builtin_throw and end_eh_unwinder. Add code to do return
5463 address masking for the PA.
5464 (expand_builtin_throw): Use eh_outer_context instead of open coding
5466 (end_eh_unwinder): Likewise.
5468 Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
5470 * except.c (expand_throw): Call assemble_external for __empty, if we
5473 Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
5475 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
5476 NORMAL_RETURN_ADDR_OFFSET.
5477 (end_eh_unwinder): Likewise.
5479 Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
5481 * gc.c (build_dynamic_cast): Make sure we don't cast away const
5482 when dealing with references, and make sure we handle dynamic
5483 casting to a cv qualified reference.
5485 Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
5487 * except.c (struct eh_context): New structure top hold eh context
5489 (push_eh_context): New routine.
5490 (pop_eh_context): Likewise.
5491 * decl.c (push_cp_function_context): Use them.
5492 (pop_cp_function_context): Likewise.
5494 Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
5496 * decl2.c (finish_file): Also prune uninteresting functions in the
5497 inline emission loop.
5499 Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com>
5501 * sig.c (build_signature_table_constructor): Mark functions
5502 in the signature as referenced.
5504 Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
5506 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
5507 the inline emission stuff.
5509 Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
5511 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
5513 * lang-options.h: Add -f{no-,}weak.
5514 * decl.c (init_decl_processing): If the target does not support weak
5515 symbols, don't use them.
5516 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
5518 Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
5520 * init.c (expand_member_init): warning for base init after members.
5522 Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
5524 * cvt.c (build_expr_type_conversion): Don't convert to a reference
5527 Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
5529 * method.c (report_type_mismatch): Improve wording for volatile
5532 Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
5534 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
5535 expand_assignment, as the later doesn't handle things that have
5536 copy constructors well. The compiler would do bitwise copying,
5537 instead of ctor calling in some cases.
5539 Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
5541 * g++.c (my_strerror): Return "cannot access" if errno is 0.
5542 (pfatal_with_name, perror_exec): Don't assume that
5543 the returned value from my_strerror contains no '%'s.
5545 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
5547 Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
5549 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
5550 TYPE_METHODS/TREE_CHAIN mean what they used to.
5551 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
5552 instead of TYPE_METHODS.
5553 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
5554 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
5555 * cp-tree.h (CLASSTYPE_METHODS): Lose.
5556 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
5558 (struct lang_decl): Lose next_method field.
5559 (DECL_NEXT_METHOD): Lose.
5560 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
5561 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
5563 (finish_struct_methods): Don't mess with the TREE_CHAINs in
5566 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
5569 * call.c (build_method_call): Synthesize here even when not inlining.
5570 * typeck.c (build_function_call_real): Likewise.
5572 Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
5574 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
5575 == DBX_DEBUG, call dbxout_start_new_source_file and
5576 dbxout_resume_previous_source_file when appropriate.
5578 Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
5580 * except.c (start_anon_func): Push to the top level.
5581 (end_anon_func): Pop from the top level.
5583 Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
5585 * cp-tree.h (build_cleanup): New routine to build cleanups.
5586 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
5587 call at ctor time and use atexit to run it later.
5588 * decl2.c (build_cleanup): New routine, taken from finish_file.
5589 (finish_file): Use build_cleanup instead, and don't put function
5590 local statics in global dtor list.
5592 Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
5594 * except.c (expand_throw): Ensure that we have cleanups, if we try
5595 and expand cleanups.
5597 Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
5599 * except.c (expand_throw): Add logic to manage dynamic cleanups for
5601 (expand_end_catch_block): Use the magic of expand_goto, instead of
5602 emit_jump so that we get the cleanup for any catch clause parameter
5603 and the cleanup for the exception object. Update to reflect label
5605 (push_eh_cleanup): New routine to register a cleanup for an
5607 (empty_fndecl): Used to default cleanup actions to
5609 (init_exception_processing): Setup empty_fndecl. Setup
5611 (expand_start_catch_block): Update to reflect label changes. Call
5612 push_eh_object to register the cleanup for the EH object.
5613 (start_anon_func): New routine to start building lambda expressions
5615 (end_anon_func): New routine to end them.
5616 (struct labelNode): Change so that we can use tree labels, or rtx
5618 (saved_cleanup): Object to check for dynamic cleanups for the
5619 exception handling object.
5620 (push_label_entry): Change so that we can use tree labels, or rtx
5622 (pop_label_entry): Likewise.
5623 (top_label_entry): Likewise.
5624 (expand_start_all_catch): Use tree label instead of rtx label, so
5625 that we can get the magic of expand_goto.
5626 (expand_end_all_catch): Update to reflect label changes.
5628 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
5630 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
5631 building_cleanup logic, as we now use UNSAVE_EXPRs.
5632 * cp-tree.h (unsave_expr): Declare it.
5633 * decl.c (building_cleanup): Remove.
5634 (maybe_build_cleanup): Remove building_cleanup logic, and use
5635 UNSAVE_EXPR instead.
5637 Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
5639 * gc.c (build_t_desc): Update error message to say <typeinfo>.
5641 Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5643 * decl.c (pushdecl): Only warn about shadowing a local variable if
5644 warn_shadow is true.
5646 Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
5648 * typeck.c (build_binary_op_nodefault): Added warning about
5649 comparisons between different enum types with -Wall, unless
5650 -fenum-int-equiv set.
5652 Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
5654 * class.c (finish_struct_1): Skip down to the inner type in
5655 multidimensional arrays. Ensures ctors will be made for types that
5658 Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
5660 * decl.c (last_dtor_insn): New to track the last compiler generated
5662 (store_parm_decls): Set it.
5663 (finish_function): Use it to see if the dtor is empty. Avoid doing
5664 vtable setup all the time, if we can.
5665 (struct cp_function): Add last_dtor_insn.
5666 (push_cp_function_context): Save it.
5667 (pop_cp_function_context): Restore it.
5669 Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
5671 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
5674 Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
5676 * typeck.c (expand_target_expr): Make sure targets get put into the
5677 current temp_slot_level, so that the free_temp_slots call will reuse
5680 Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
5682 * class.c (finish_struct_1): Delay delta fixups for virtual bases
5683 until after we have done the hard virtuals, to avoid a bogus `every
5684 virtual function must have a unique final overrider' for virtual
5685 functions that are only overridden by hard virtuals.
5687 Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
5689 * pt.c (do_function_instantiation): Don't try to find a file-scope
5690 template for a member function.
5692 Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
5694 * g++.c (main): Add handling of -nodefaultlibs.
5696 Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
5698 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
5699 distinguish between direct bindings of reference variables, and
5700 indirect bindings of reference variables.
5701 * cvt.c (build_up_reference): Use it.
5702 * typeck.c (convert_arguments): Use it to indicate this is an
5704 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
5706 (expand_static_init): Likewise.
5707 (cplus_expand_expr_stmt): Likewise.
5708 * decl2.c (finish_file): Likewise.
5709 * init.c (perform_member_init): Likewise.
5710 (emit_base_init): Likewise.
5711 (expand_aggr_vbase_init_1): Likewise.
5713 Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5715 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
5716 get a DECL_LANG_SPECIFIC node.
5717 * cp-tree.h (lang_decl_flags): Add new member `level'.
5718 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
5719 decl_flags level member.
5721 Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5723 * call.c (build_method_call): Make sure instance has a
5724 TYPE_LANG_SPECIFIC node before we dive into it.
5726 Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com>
5728 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
5730 Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
5732 * decl.c (duplicate_decls): When smashing decls, smash staticness in
5735 Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
5737 * decl.c (poplevel): Handle the merging of subblocks of cleanups
5738 when finishing blocks that have already been created (usually due to
5739 the fixup goto code). Fixes bad debugging information.
5741 Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
5743 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
5744 that's not a list of overloaded functions.
5746 Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5748 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
5749 before trying to use DECL_ABSTRACT_VIRTUAL_P.
5751 Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
5753 * decl2.c (mark_used): New function for hooking into setting of
5755 * call.c (build_method_call): Use it.
5756 * class.c (instantiate_type): Likewise.
5757 * init.c (build_offset_ref): Likewise. Don't call assemble_external
5758 for all like-named functions.
5759 * method.c (hack_identifier): Likewise.
5760 (emit_thunk): Don't call assemble_external.
5761 (make_thunk): Create thunk as a FUNCTION_DECL so that it
5762 gets the right mode and ENCODE_SECTION_INFO works.
5764 * parse.y: Use mark_used. Pass operator names to do_identifier.
5765 * lex.c (do_identifier): Handle operator names.
5767 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
5769 Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5771 * errfn.c: Include stdio.h.
5772 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
5774 Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
5776 * typeck2.c (digest_init): Always convert initializers to the
5779 Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
5781 * init.c (member_init_ok_or_else): Don't allow member initializers
5782 for indirect members, as it is invalid.
5784 Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5786 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
5788 Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
5790 * parse.y (for.init.statement): Catch compound statements inside for
5791 initializations, if we're being pedantic.
5793 Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
5795 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
5798 Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
5800 * error.c (dump_expr): Don't core dump when a boolean expression is
5801 used as a default argument.
5803 Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
5805 * class.c (finish_struct_bits): Check aggregate_value_p instead of
5808 Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
5810 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
5811 BLKmode type that would otherwise be returned in registers.
5813 Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5815 * g++.c (WITHLIBC): New macro.
5816 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
5817 saw_libc and pass it at the end if it was set.
5819 Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5821 * parse.y (fn.def1): Call split_specs_attrs in
5822 declmods notype_declarator case.