1 Mon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3 * call.c (add_builtin_candidate): Add default case in enumeration
5 (build_new_op): Likewise.
6 (convert_like): Likewise.
7 * cvt.c (build_expr_type_conversion): Likewise.
8 * tree.c (real_lvalue_p): Likewise.
10 (cp_tree_equal): Likewise.
11 * typeck.c (comptypes): Likewise.
12 (build_component_ref): Likewise.
13 (build_function_call_real): Likewise.
14 (build_binary_op_nodefault): Likewise.
15 (build_unary_op): Likewise.
16 (build_modify_expr): Likewise.
17 * typeck2.c (initializer_constant_valid_p): Likewise.
19 Sun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com>
21 * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas.
23 Thu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net>
25 * pt.c (coerce_template_parms): Make sure to digest_init if
28 * decl.c (duplicate_decls): Make the newdecl virtual if the
29 olddecl was, just as is done with other attributes of olddecl.
31 Thu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com>
33 * typeck.c (unary_complex_lvalue): Ignore op0 when taking the
34 address of an OFFSET_REF.
36 * cp-tree.def: Add AGGR_INIT_EXPR.
37 * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with
38 AGGR_INIT_EXPR where appropriate.
39 * expr.c (cplus_expand_expr): Likewise. Simplify.
41 * decl2.c (finish_file): Remove call to register_exception_table.
43 Wed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
45 * pt.c (instantiate_class_template): Don't do injection when
46 processing_template_decl is true, as pollutes current_binding_level
49 Wed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de>
51 * pt.c (maybe_fold_nontype_arg): Add prototype.
53 Tue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com>
55 * tree.c (mapcar): Handle TRY_CATCH_EXPR et al.
56 * error.c (dump_expr): Likewise.
58 Mon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com>
60 * typeck.c (build_function_call_real): Remove "inline called before
63 * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg.
65 Sun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com>
67 * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
69 * pt.c (type_unification_real): Change __null to type void* with
72 Sun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net>
74 * call.c (implicit_conversion): Don't call
75 build_user_type_conversion_1 with a NULL expr, since it will
78 * pt.c (unify): Don't try to unify array bounds if either array is
81 Fri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com>
83 * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at):
84 Replace extern decls with casts.
86 * decl.c (expand_start_early_try_stmts): Don't mess with a sequence.
87 Update last_parm_cleanup_insn.
88 (store_after_parms): Remove.
91 Thu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com>
93 * decl2.c (comdat_linkage): Also set DECL_COMDAT.
94 (finish_file): Check DECL_COMDAT instead of weak|one_only.
95 (import_export_vtable): Use make_decl_one_only instead of
96 comdat_linkage for win32 tweak.
97 (import_export_decl): Likewise.
98 * pt.c (mark_decl_instantiated): Likewise.
100 * decl2.c (finish_file): Lose handling of templates in pending_statics.
102 Thu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com>
104 * decl2.c (finish_file): Lose call to expand_builtin_throw.
105 * except.c (expand_builtin_throw): Remove.
106 * cp-tree.h: Remove ptr_ptr_type_node.
109 Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com>
111 * decl.c (ptr_ptr_type_node): Define.
112 (init_decl_processing): Initialize it.
113 * cp-tree.h: Declare it.
114 * exception.cc (__cp_exception_info): Use __get_eh_info.
115 (__cp_push_exception): Likewise.
116 (__cp_pop_exception): Likewise.
118 From Scott Snyder <snyder@d0sgif.fnal.gov>:
119 * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of
121 (init_exception_processing): Removed saved_pc initialization.
123 Wed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com>
125 * pt.c (instantiate_decl): Defer all templates but inline functions.
127 Mon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com>
129 * init.c (expand_vec_init): Don't fold a list of parameters.
131 * decl.c (copy_args_p): Handle copy elision for types with virtual
133 * call.c (build_over_call): Likewise.
135 Sun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net>
137 * pt.c (lookup_template_function): Copy the template arguments,
138 not just the list containing them, to the permanent obstack.
140 Sun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com>
142 * except.c (expand_start_catch_block): suspend_momentary for the
145 * error.c (dump_decl): Handle LOOKUP_EXPR.
147 Sun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net>
149 * rtti.c (build_dynamic_cast): Copy the cast-to type to the
150 permanent obstack if we are processing a template decl.
151 * typeck.c (build_static_cast): Likewise.
152 (build_const_cast): Likewise.
153 (build_reinterpret_cast): Likewise.
155 * pt.c (coerce_template_parms): Coerce some expressions, even
156 when processing_template_decl.
158 Sun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
160 * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric
161 handling of pointer difference expressions.
163 * typeck.c (comp_target_types): Comparison of function/method types
164 is independent of nptrs.
166 Sun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net>
168 * pt.c (tsubst): Avoid creating pointer to reference and
169 reference to reference types.
171 Sat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com>
173 * parse.y (do_id): New nonterminal.
174 (template_id): Use it.
176 Fri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com>
178 * parse.y (template_id): do_identifier for PFUNCNAMEs, too.
179 * spew.c (yylex): Don't do_identifier here.
180 * decl2.c (build_expr_from_tree): Revert last change.
182 * decl2.c (build_expr_from_tree): Expand the name for a method call.
183 * parse.y (object_template_id): Don't try to take the DECL_NAME.
185 Wed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com>
187 * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for
189 * call.c (build_op_delete_call): Adjust.
191 * except.c (expand_end_catch_block): Lose rethrow region.
192 (expand_start_catch_block): Likewise.
193 (expand_end_catch_block): Don't expand_leftover_cleanups.
195 Wed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
197 * pt.c (tsubst): Remove tree_cons call (places redundant info into
198 DECL_TEMPLATE_INSTANTIATION).
200 Wed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com>
202 * tree.c (is_overloaded_fn): Handle getting a fn template.
203 (really_overloaded_fn): Likewise.
204 * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better.
205 * pt.c (check_explicit_specialization): Tweak.
206 (determine_explicit_specialization): Tweak.
208 * tree.c, cp-tree.h (get_target_expr): New fn.
210 Wed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com>
212 * pt.c (check_explicit_specialization): Fix misspelling in
213 diagnostic: `preceeded'.
214 * typeck.c (get_delta_difference): Fix misspelling in diagnostic:
217 1997-12-02 Mark Mitchell <mmitchell@usa.net>
219 * pt.c (determine_explicit_specialization): Avoid an internal
220 error for bad specializations.
222 * method.c (build_overload_value): Handle SCOPE_REF.
224 Tue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com>
226 * class.c (prepare_fresh_vtable): Enable even more complex MI
229 Tue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com>
231 * exception.cc (__check_eh_spec): Optimize a bit.
233 * exception.cc (__cp_pop_exception): Lose handler arg.
234 * except.c (do_pop_exception): Likewise.
235 (push_eh_cleanup): Let the cleanup mechanism supply the handler.
236 (expand_end_catch_block): Likewise.
238 Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com>
240 * pt.c (check_explicit_specialization): Complain about using a
241 template-id for a non-specialization.
243 Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com>
245 * repo.c: Prototype rindex only if needed.
248 Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
250 * error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
252 Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com>
254 * typeck.c (build_const_cast): Handle references here instead of
255 handing off to convert_to_reference.
257 * except.c: Lose Unexpected, SetTerminate, SetUnexpected,
258 TerminateFunctionCall.
259 (init_exception_processing): Likewise. Terminate et al are now
260 the fns, not ADDR_EXPRs.
261 (various): Lose redundant assemble_external calls.
262 (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/.
264 * cp-tree.h (struct lang_decl_flags): Add comdat.
265 (DECL_COMDAT): New macro.
266 * decl.c (duplicate_decls): Propagate it.
267 (cp_finish_decl): Handle it.
268 * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.
270 * class.c: Remove static pending_hard_virtuals.
271 (add_virtual_function): Take pointers to pending_virtuals
272 and pending_hard_virtuals.
273 (finish_struct_1): Pass them. Declare pending_hard_virtuals.
275 Wed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com>
277 * decl2.c (import_export_vtable): If we support one_only but not
278 weak symbols, mark instantiated template vtables one_only.
279 (import_export_decl): Likewise for tinfo functions.
280 (finish_vtable_vardecl): Also write out vtables from explicitly
281 instantiated template classes.
282 * pt.c (mark_class_instantiated): Revert last change.
284 * except.c (expand_throw): Call mark_used on the destructor.
286 Wed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com)
288 * lex.c (lang_init): Enable flag_exceptions by default if no
289 command line switch was specified.
291 1997-11-26 Mark Mitchell <mmitchell@usa.net>
293 * pt.c (unify): Handle `void' template parameters in
296 Wed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com>
298 * rtti.c (build_dynamic_cast): Handle template case here.
299 (build_dynamic_cast_1): Not here.
301 * typeck2.c (digest_init): Make copies where appropriate.
303 * decl2.c (delete_sanity): resolve_offset_ref.
305 * except.c: Call terminate without caching so many bits.
307 * except.c (expand_start_catch_block): Fix catching a reference
310 Tue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com>
312 * init.c (build_new): Copy size to the saveable obstack.
314 * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the
315 TRY_CATCH_EXPR for now.
317 Mon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com>
319 * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL
320 has DECL_LANG_SPECIFIC.
322 * exception.cc (struct cp_eh_info): Add handlers field.
323 (__cp_push_exception): Initialize it.
324 (__cp_pop_exception): Decrement it. Don't pop unless it's 0.
325 (__throw_bad_exception): Remove.
326 * except.c (call_eh_info): Add handlers field.
327 (get_eh_handlers): New fn.
328 (push_eh_cleanup): Increment handlers.
330 Fri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com>
332 * except.c (expand_start_eh_spec): Use the try/catch code.
333 (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of
334 doing everything inline.
335 (init_exception_processing): throw_type_match now takes
337 * exception.cc (__check_eh_spec): New fn.
338 * inc/exception: Neither terminate nor unexpected return.
339 * decl.c: Make const_ptr_type_node public.
340 * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly.
342 * except.c (expand_start_catch_block): We only need the rethrow
343 region for non-sjlj exceptions.
344 (expand_end_catch_block): Likewise. Use outer_context_label_stack.
346 Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com>
348 * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
349 (various.o): Likewise.
350 * inc/new: Add placement deletes. Add throw specs for default new.
351 * new.cc (set_new_handler): Move here from libgcc2.
352 * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
353 (new): Move from libgcc2. Throw bad_alloc.
354 * new2.cc: Move the rest of the op news and op deletes from libgcc2.
355 * decl.c (init_decl_processing): Update exception specs on new and
358 * method.c (build_decl_overload_real): Don't mess with global
361 * init.c (build_new): Check for null throw spec, not nothrow_t.
363 * decl.c (duplicate_decls): Don't complain about different exceptions
364 from an internal declaration.
366 * call.c (build_op_delete_call): Fix check for member fns again.
368 * decl2.c (import_export_decl): Interface hackery affects
369 virtual synthesized methods.
371 Wed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com>
373 * decl.c (start_decl): Don't just complain about a mismatched
376 * decl.c (make_implicit_typename): Handle case where t is not
377 actually from context.
378 * tree.c (get_type_decl): Lose identifier case.
379 * spew.c (yylex): Lose useless call to identifier_typedecl_value.
380 * parse.y (nonnested_type): Just use lookup_name.
381 (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.
383 Wed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com>
385 * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case
386 T was built in C language context (for example, by
387 output_func_start_profiler).
389 Wed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com>
391 * decl.c (make_implicit_typename): New fn.
392 (lookup_name_real): Use it. Use current_class_type as the context.
394 Mon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr>
396 * pt.c (do_poplevel): Don't prohibit jumps into this contour.
398 Mon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com>
400 * friend.c (do_friend): Warn about non-template friends in templates.
402 * call.c (build_op_delete_call): Fix handling of inherited delete.
404 * search.c (dfs_record_inheritance): Ignore template type parms.
406 Sat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com>
408 * call.c (build_new_op): Fix copy error.
409 (build_op_new_call): New fn.
410 (build_op_delete_call): New fn.
411 * cp-tree.h: Declare them.
412 * init.c (build_new): Use them. Support placement delete.
413 (build_x_delete): Use build_op_delete_call.
414 (build_delete): Likewise.
415 * decl2.c (delete_sanity): Likewise.
416 (coerce_delete_type): Don't complain about placement delete.
418 Thu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com>
420 * call.c (build_new_function_call): Remove unused 'obj' parm.
421 * cp-tree.h, typeck.c: Adjust.
423 * init.c (build_new): Make the cleanup last longer.
424 (expand_vec_init): Call do_pending_stack_adjust.
426 Wed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com>
428 * pt.c (do_type_instantiation): Fix typo.
429 (mark_class_instantiated): If we support one_only but not weak
430 symbols, don't mark this as known.
432 * init.c (build_new): Handle vec delete in EH cleanup.
434 Wed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
436 * call.c (build_method_call): Call complete_type before checking
439 Sun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com)
441 * decl.c (add_block_current_level): Delete.
442 * init.c (build_vec_delete_1): Delete build_block and
443 add_block_current_level calls.
445 Wed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com>
447 * init.c (build_new): Handle freeing allocated memory when the
450 * call.c (build_new_method_call): Fix flags arg.
452 * pt.c (do_type_instantiation): Don't try to instantiate
454 (mark_decl_instantiated): If we support one_only but not
455 weak symbols, mark this one_only.
456 * decl2.c (import_export_vtable): Don't defer handling of vtables
457 if MULTIPLE_SYMBOL_SPACES.
459 Tue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com>
461 * except.c (expand_end_catch_block): Lose call to __sjpopnthrow.
463 Tue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com>
465 * except.c (do_pop_exception): Return a value.
467 Mon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com>
469 * call.c (build_new_method_call): Handle getting a
470 TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field
471 if we got template parms.
472 * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
474 * decl2.c (build_expr_from_tree): Tweak last change.
475 * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
476 (maybe_fold_nontype_arg): Split out from tsubst_copy.
477 * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.
479 Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
481 * pt.c (tsubst_copy): Handle explicit template arguments in
483 * typeck.c (build_x_function_call): Likewise.
484 * decl2.c (build_expr_from_tree): Lookup function name if it
487 * pt.c (tsubst): Instantiate template functions properly when
488 template parameter does not appear in function arguments and return
490 (comp_template_args): Handle member templates required by tsubst.
492 Mon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com>
494 * decl.c (grokdeclarator): Tweak conditions for pedwarn in
497 Mon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
499 * pt.c (coerce_template_parms): Tweak error message.
501 * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
502 return type defaults to `int', even if there are storage-class
505 Mon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com>
507 Complete nested exception support.
508 * except.c (do_pop_exception): Split out...
509 (push_eh_cleanup): From here. Handle the EH region by hand.
510 (expand_start_catch_block): Add a new level for the catch parm.
511 Move the rethrow region outside the two cleanup regions.
512 Protect the initializer for the catch parm with terminate.
513 (expand_end_catch_block): Likewise. End the region for the eh_cleanup.
514 * exception.cc (__cp_pop_exception): Now takes two parms. Handle
515 popping off the middle of the stack.
516 * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
517 WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
518 (build_cplus_new): Only wrap CALL_EXPRs.
519 * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
520 the constructor call.
522 Sun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
524 * Make-lang.in (c++.distdir): Make inc subdirectory.
526 Fri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com>
528 * decl2.c (finish_file): Put back some code.
530 Thu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com>
532 * decl2.c (finish_file): Remove redundant code.
533 * method.c (emit_thunk): Don't let the backend defer generic thunks.
535 Wed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com>
537 * except.c (call_eh_info): Split out...
538 (push_eh_info): From here.
539 (expand_builtin_throw): Use it.
540 (expand_start_catch_block): Move region start back.
542 Tue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com>
544 * lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
545 (real_yylex): Record wide strings using target endianness, not host.
547 1997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com>
549 * repo.c (rindex): Add decl unconditionally.
550 (get_base_filename, open_repo_file): Don't cast rindex.
551 * xref.c (rindex): Add decl unconditionally.
552 (index): Remove unused decl.
553 (open_xref_file): Don't cast rindex.
555 Sun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com>
557 * class.c (build_vbase_path): Propagate the result type properly.
559 1997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com>
561 * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace
562 remaining use of saved_throw_type with a call to get_eh_type.
564 1997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com>
566 * lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
567 (file_name_nondirectory): New function, doing the same as the macro.
568 (set_typedecl_interface_info): Use it instead of the macro.
569 (check_newline): Likewise.
570 (handle_cp_pragma): Likewise.
572 * repo.c (get_base_filename): Cast result of rindex to char*.
573 (open_repo_file): Likewise.
574 * xref.c (open_xref_file): Likewise.
575 * error.c (dump_char): Make its arg int, not char.
577 * except.c (push_eh_info): Pass the number of fields - 1 down, not
578 the exact number of fields.
580 Fri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com>
582 Support for nested exceptions.
583 * tinfo2.cc (__is_pointer): New fn.
584 * exception.cc (struct cp_eh_info): Define.
585 (__cp_exception_info, __uncatch_exception): New fns.
586 (__cp_push_exception, __cp_pop_exception): New fns.
587 * except.c: Lose saved_throw_{type,value,cleanup,in_catch}.
589 (init_exception_processing): Likewise. __eh_pc is now external.
590 (push_eh_info): New fn.
591 (get_eh_{info,value,type,caught}): New fns.
592 (push_eh_cleanup): Just call __cp_pop_exception.
593 (expand_start_catch_block): Use push_eh_info. Start the eh region
595 (expand_end_eh_spec): Use push_eh_info.
596 (expand_throw): Call __cp_push_exception to set up the exception info.
597 Just pass the destructor or 0 as the cleanup. Call __uncatch_exception
599 (expand_builtin_throw): Don't refer to empty_fndecl.
601 Thu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com>
603 * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
605 1997-10-22 Brendan Kehoe <brendan@cygnus.com>
607 * method.c (build_template_parm_names, build_decl_overload_real):
608 Add static to definitions.
609 * pt.c (add_to_template_args, note_template_header,
610 processing_explicit_specialization, type_unification_real): Likewise.
611 ({determine,check}_explicit_specialization): Use a single string for
614 Mon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com>
616 * except.c (expand_exception_blocks): Call do_pending_stack_adjust.
617 (expand_end_catch_block): Likewise.
618 (expand_end_eh_spec): Likewise.
620 Mon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net>
622 * decl.c (duplicate_decls): Handle template specializations
624 * error.c (dump_function_name): Fix printing of specializations of
625 member functions that are not member templates.
626 * cp-tree.h (processing_specialization): Make global.
627 * pt.c (processing_specialization): Likewise.
628 * lex.c (cons_up_default_function): Save and restore
629 processing_specialization to avoid confusion.
631 Mon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com>
633 * decl.c (init_decl_processing): Give null_node unknown* type.
634 * typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
635 (common_type): Likewise.
636 * error.c (args_as_string): Recognize null_node.
638 Sun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
640 * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR.
641 (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR.
643 * decl.c (init_decl_processing): Call using_eh_for_cleanups.
645 * Make-lang.in (g++): Include prefix.o.
647 Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com>
649 * pt.c (determine_explicit_specialization): Initialize "dummy"
650 to keep Purify quiet.
652 Thu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com>
654 * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
655 (build_overload_int): Not here.
657 Wed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com>
659 * class.c (build_type_pathname): Remove.
660 (prepare_fresh_vtable): Fix problem with complex MI vtable names.
662 1997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com>
664 * parse.y (unary_expr): Give a pedwarn if someone tries to use the
665 &&label GNU extension.
667 Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net>
669 * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
670 so as to avoid incorrect manglings.
671 * method.c (build_decl_overload_real): Don't mangle return types
674 Tue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com>
676 * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
677 scratch_tree_cons): Define as macros for now.
678 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
679 lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
680 typeck2.c: Use them and the expression_obstack variants.
682 Mon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
684 * decl.c (store_return_init): Allow classes with explicit ctors to
685 be used with the named return values extension.
687 Fri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com>
689 * pt.c (instantiate_decl): Fix previous change.
691 Thu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com>
693 * pt.c (tsubst): Fix thinko.
694 (instantiate_decl): Really use the original template.
696 * call.c (build_new_method_call): Use simple constructor_name for
699 Wed Oct 8 22:44:42 1997 Jeffrey A Law <law@cygnus.com>
701 * method.c (build_underscore_int): Don't use ANSI specific
704 Wed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com>
706 * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
707 for our key method; it might have been inlined by -O3.
709 Tue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net>
711 * decl.c (make_typename_type): Do not try to call lookup_field for
714 Tue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com>
716 * typeck.c (build_reinterpret_cast): Tweak.
718 Tue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
720 * typeck.c (build_reinterpret_cast): Converting a void pointer
721 to function pointer with a reinterpret_cast produces a warning
722 if -pedantic is issued.
724 Tue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
726 * typeck.c (c_expand_return): Don't warn about returning a
727 reference-type variable as a reference.
729 Tue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com>
731 * method.c (build_static_name): Fix typo.
733 1997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com>
735 * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
736 OLDDECL before we try to do DECL_USE_TEMPLATE.
738 Tue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com>
740 * decl.c (duplicate_decls): Don't warn about template instances.
742 * typeck.c (mark_addressable): Lose ancient code that unsets
745 * pt.c (do_decl_instantiation): Lose support for instantiating
748 * call.c (build_new_function_call): Fix handling of null explicit
750 (build_new_method_call): Likewise.
752 Mon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net>
754 * method.c (build_underscore_int): Fix typo.
756 1997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com>
758 * tree.c (print_lang_statistics): #if 0 call to
759 print_inline_obstack_statistics until its definition is checked in.
761 Mon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com>
763 * decl2.c (finish_file): Move dump_tree_statistics to end.
765 * pt.c (instantiate_decl): Look for the original template.
766 (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
769 Wed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com>
771 * Makefile.in (g++FAQ.*): New rules.
773 * g++FAQ.texi: Moved from libg++.
775 * parse.y (PFUNCNAME): Only specify the type once.
777 1997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com>
779 * lex.c (real_yylex): Clean up the code to fully behave the way
780 the c-lex.c parser does for complex and real numbers.
782 Tue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com>
784 * method.c (build_decl_overload_real): Reformat.
786 Tue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com>
788 * method.c (synthesize_method): If at_eof, determine our linkage.
790 1997-09-29 Paul Eggert <eggert@twinsun.com>
792 * lex.c (real_yylex): Treat `$' just like `_', except issue a
793 diagnostic if !dollars_in_ident or if pedantic.
795 * lang-specs.h (@c++): -ansi no longer implies -$.
797 * decl2.c (lang_decode_option):
798 -traditional and -ansi now do not mess with
801 Mon Sep 29 19:57:51 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
803 * Makefile.in (parse.o, decl.o): Also depend on
804 $(srcdir)/../except.h $(srcdir)/../output.h.
805 (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
806 $(srcdir)/../except.h $(srcdir)/../output.h.
807 (typeck.o, init.o): Also depend on $(srcdir)/../expr.h
810 * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.
812 * expr.c (cplus_expand_expr): Make it static.
814 * decl2.c, init.c, typeck.c: Include "expr.h".
815 (expand_expr): Use proper values when calling the function.
817 Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
819 * lang-options.h: New -Wold-style-cast flag.
820 * cp-tree.h (warn_old_style_cast): New variable.
821 * decl2.c (warn_old_style_cast): Likewise.
822 (lang_decode_option): Support -Wold-style-cast.
823 (reparse_absdcl_as_casts): Produce old-style-cast warning.
825 Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
827 * decl.c (cp_finish_decl): Allow expand_aggr_init to set
828 TREE_USED, reset value based on already_used.
830 * init.c (expand_member_init): Revert change.
832 Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com>
834 * cp-tree.h, decl.c, decl2.c, pt.c:
835 Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public.
837 * decl2.c (lang_decode_option): Add missing ;.
839 Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com>
841 * friend.c (do_friend): Disable injection for all template-derived
843 * decl2.c (lang_decode_option): Handle -fguiding-decls.
844 * parse.y (notype_template_declarator): New nonterminal.
845 (direct_notype_declarator): Use it.
846 (complex_direct_notype_declarator): Likewise.
847 (object_template_id): Accept any kind of identifier after TEMPLATE.
848 (notype_qualified_id): Don't add template declarators here.
850 Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net>
852 * call.c (add_template_candidate): Add explicit_targs parameter.
853 (build_scoped_method_call): Use it.
854 (build_overload_call_real): Likewise.
855 (build_user_type_conversion_1): Likewise.
856 (build_new_function_call): Likewise.
857 (build_object_call): Likewise.
858 (build_new_op): Likewise.
859 (build_new_method_call): Likewise.
860 (build_new_function_call): Handle TEMPLATE_ID_EXPR.
861 (build_new_method_call): Likewise.
863 * class.c (finish_struct_methods): Add specialization pass to
864 determine which methods were specializing which other methods.
865 (instantiate_type): Handle TEMPLATE_ID_EXPR.
867 * cp-tree.def (TEMPLATE_ID_EXPR): New tree code.
869 * cp-tree.h (name_mangling_version): New variable.
870 (flag_guiding_decls): Likewise.
871 (build_template_decl_overload): New function.
872 (begin_specialization): Likewise.
873 (reset_specialization): Likewise.
874 (end_specialization): Likewise.
875 (determine_explicit_specialization): Likewise.
876 (check_explicit_specialization): Likewise.
877 (lookup_template_function): Likewise.
878 (fn_type_unification): Add explicit_targs parameter.
879 (type_unification): Likewise.
881 * decl.c (duplicate_decls): Add smarts for explicit
883 (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
885 (grokfndecl): Call check_explicit_specialization.
887 * decl2.c (lang_decode_option): Handle -fname-mangling-version.
888 (build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
889 (check_classfn): Handle specializations.
891 * error.c (dump_function_name): Print specialization arguments.
893 * friend.c (do_friend): Don't call pushdecl for template
896 * init.c (build_member_call): Handle TEMPLATE_ID_EXPR.
898 * lang-options.h: Add -fname-mangling-version, -fguiding-decls,
899 and -fno-guiding-decls.
901 * lex.c (identifier_type): Return PFUNCNAME for template function
904 * method.c (build_decl_overload_real): New function.
905 (build_template_parm_names): New function.
906 (build_overload_identifier): Use it.
907 (build_underscore_int): New function.
908 (build_overload_int): Use it. Add levels for template
910 (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs.
911 (build_overload_nested_names): Handle template type parameters.
912 (build_template_decl_overload): New function.
914 * parse.y (YYSTYPE): New ntype member.
915 (nested_name_specifier): Use it.
916 (nested_name_specifier_1): Likewise.
917 (PFUNCNAME): New token.
918 (template_id, object_template_id): New non-terminals.
919 (template_parm_list): Note specializations.
920 (template_def): Likewise.
921 (structsp): Likewise.
922 (fn.def2): Handle member template specializations.
923 (component_decl_1): Likewise.
924 (direct_notype_declarator): Handle template-ids.
925 (component_decl_1): Likewise.
926 (direct_notype_declarator): Handle template-ids.
927 (primary): Handle TEMPLATE_ID_EXPR, and template-ids.
929 * pt.c (processing_specializations): New variable.
930 (template_header_count): Likewise.
931 (type_unification_real): New function.
932 (processing_explicit_specialization): Likewise.
933 (note_template_header): Likewise.
934 (is_member_template): Handle specializations.
935 (end_template_decl): Call reset_specialization.
936 (push_template_decl): Handle member template specializations.
938 (tsubst_copy): Handle TEMPLATE_ID_EXPR.
939 (instantiate_template): Handle specializations.
940 (instantiate_decl): Likewise.
941 (fn_type_unification): Handle explicit_targs.
942 (type_unification): Likewise. Allow incomplete unification
943 without an error message, if allow_incomplete.
944 (get_bindings): Use new calling sequence for fn_type_unification.
946 * spew.c (yylex): Handle PFUNCNAME.
948 * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
949 (really_overloaded_fn): Likewise.
950 (get_first_fn): Handle function templates.
952 * typeck.c (build_x_function_call): Use really_overloaded_fn.
953 Handle TEMPLATE_ID_EXPR.
954 (build_x_unary_op): Likewise.
955 (build_unary_op): Likewise.
956 (mark_addressable): Templates whose address is taken are marked
959 1997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
961 * decl.c (init_decl_processing): Declare __builtin_constant_p as
962 accepting any kind of type, not only int.
964 Fri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com>
966 * search.c (get_matching_virtual): Notice virtual bases when sorrying
967 about covariant returns.
969 * parse.y (member_init): Also imply typename here. Remove ancient
970 extension for initializing base members.
972 Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com>
974 Handle multi-level typenames and implicit typename in base list.
975 * parse.y (typename_sub{,[0-2]}): New rules.
976 (structsp, rule TYPENAME_KEYWORD): Use typename_sub.
977 (nonnested_type): New rule.
978 (complete_type_name): Use it.
979 (base_class.1): Use typename_sub and nonnested_type.
980 (nested_name_specifier): Don't elide std:: here.
981 * decl.c (make_typename_type): Handle getting a type for NAME.
982 (lookup_name_real): Turn std:: into :: here.
984 Rvalue conversions were removed in London.
985 * call.c (is_subseq): Don't consider lvalue transformations.
986 (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
987 (joust): Re-enable ?: kludge.
989 1997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com>
991 * decl.c (start_function): Up warning of no return type to be a
994 Mon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
996 * init.c (expand_member_init): Don't set TREE_USED.
997 * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED
998 set,don't clear TREE_USED wholesale.
1000 Sat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com>
1002 * call.c (build_over_call): Do require_complete_type before
1005 Thu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com>
1007 * search.c (lookup_field): Call complete_type in all cases.
1009 * decl.c (finish_function): Just warn about flowing off the end.
1011 Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1013 * decl.c (grokparms): Don't bash a permanent list node if we're
1016 1997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com>
1018 * Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
1020 Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com>
1022 * call.c (build_new_op): Give better error for syntactically
1023 correct, but semantically invalid, use of undeclared template.
1025 * call.c (compare_qual): Handle pmfs.
1027 * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
1028 after the exception spec.
1030 Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1032 * call.c (null_ptr_cst_p): Integer type, not integral type.
1034 * call.c (joust): Disable warnings until they can be moved to the
1037 Fri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com>
1039 * Makefile.in, config-lang.in: Convert to autoconf.
1041 Thu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com>
1043 * decl.c (lookup_name_real): Add implicit 'typename' to types from
1046 * pt.c (most_specialized_class): Fix typo.
1047 (tsubst): Move constant folding to TREE_VEC case.
1049 Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net>
1051 * pt.c (do_poplevel): Don't warn about unused local variables
1052 while processing_template_decl since we don't always know whether
1053 or not they will need constructing/destructing.
1055 * pt.c (uses_template_parms): Check the values of an enumeration
1056 type to make sure they don't depend on template parms.
1058 * decl.c (make_typename_type): Don't lookup the field if the
1059 context uses template parms, even if we're not
1060 processing_template_decl at the moment.
1062 * pt.c (coerce_template_parms): Avoid looking at the
1063 TYPE_LANG_DECL portion of a typename type, since there won't be
1065 (tsubst): Do constant folding as necessary to make sure that
1066 arguments passed to lookup_template_class really are constants.
1068 Wed Sep 10 16:39:26 1997 Jim Wilson <wilson@cygnus.com>
1070 * Make-lang.in (LN, LN_S): New macros, use where appropriate.
1072 Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com>
1074 * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
1075 * decl2.c (finish_file): Only register exception tables if we
1078 * decl.c (init_decl_processing): Add __builtin_[fs]p.
1080 Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1082 * pt.c (unify): Just return 0 for a TYPENAME_TYPE.
1084 Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net>
1086 * error.c (dump_decl): Avoid crashing when presented with a
1087 uninitialized constant, as can occur with a template parameter.
1088 (dump_expr): Make sure that there are enough levels of
1089 current_template_parms before we start diving through them.
1091 1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
1093 * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
1096 Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1098 * except.c (expand_throw): Call build_delete for all
1099 exception types, not just objects with destructors.
1101 Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net>
1103 * decl.c (current_local_enum): Remove static.
1104 * pt.c (tsubst_enum): Save and restore value of current_local_enum
1105 in case template is expanded in enum decl.
1106 (instantiate_class_template): Use new tsubst_enum signature.
1107 (tsubst_expr): Likewise.
1109 Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net>
1111 * pt.c (begin_member_template_processing): Take a function as
1112 argument, not a set of template arguments. Use the template
1113 parameters, rather than the arguments. Handle non-type parameters
1114 correctly. Push a binding level for the parameters so that multiple
1115 member templates using the same parameter names can be declared.
1116 (end_member_template_processing): Pop the binding level.
1117 (push_template_decl): Mark member templates as static when
1120 * lex.c (do_pending_inlines): Pass the function, not its template
1121 arguments, to begin_member_template_processing.
1122 (process_next_inline): Likewise.
1123 (do_pending_defargs): Likewise.
1125 * error.c (dump_expr): Obtain the correct declaration for a
1126 TEMPLATE_CONST_PARM.
1128 * call.c (add_template_conv_candidate): New function.
1129 (build_object_call): Handle member templates, as done in the other
1132 Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net>
1134 * decl.c (replace_defag): Undo previous change.
1135 * lex.c (do_pending_defargs): Deal with member templates.
1137 * pt.c (is_member_template): Avoid crashing when passed a
1138 non-function argument.
1140 Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1142 * class.c (grow_method): Remove check for redeclaration.
1144 Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net>
1146 * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
1147 (DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
1148 (PRIMARY_TEMPLATE_P): Use it.
1149 * call.c (build_overload_call_real): Use it.
1150 * class.c (instantiate_type): Likewise.
1151 * decl.c (decls_match): Likewise.
1152 * method.c (build_overload_identifier): Likewise.
1153 * pt.c (push_template_decl): Likewise.
1154 (classtype_mangled_name): Likewise.
1155 (lookup_template_class): Likewise.
1157 * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
1158 DECL_NTPARMS to conform to usage elsewhere.
1159 * call.c (add_template_candidate): Likewise.
1160 * class.c (instantiate_type): Likewise.
1161 * pt.c (instantiate_template): Likewise.
1162 (get_bindings): Likewise.
1164 * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
1167 * pt.c (unify): Undo changes to allow multiple levels of template
1169 (type_unification): Likewise.
1170 (fn_type_unification): Likewise.
1171 (get_class_bindings): Likewise.
1172 * cp-tree.h (Likewise).
1174 * decl.c (replace_defarg): Check that the type of the default
1175 parameter does not invlove a template type before complaining
1176 about the initialization.
1178 * error.c (dump_expr): Deal with template constant parameters in
1179 member templates correctly.
1181 * pt.c (is_member_template): Deal with class specializations
1183 (tsubst): Handle "partial instantiation" of member templates
1186 Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net>
1188 * pt.c (type_unification): Change calling sequence to allow for
1189 multiple levels of template parameters.
1190 (tsubst_expr): Likewise.
1192 (tsubst_copy): Likewise.
1193 (instantiate_template): Likewise.
1195 * call.c (build_overload_call_real): Use it.
1196 (add_builtin_candidate): Use it.
1197 (build_new_method_call): Use it.
1198 * class.c (instantiate_type): Use it.
1199 * decl.c (grokdeclarator): Use it.
1200 * decl2.c (finish_file): Use it.
1201 * method.c (build_overload_identifier): Use it.
1203 * call.c (add_template_candidate): Add additional parameter for
1204 the function return type. Call fn_type_unification istead of
1206 (build_user_type_conversion_1): Handle member templates.
1207 (build_new_function_call): Likewise.
1208 (build_new_op): Likewise.
1209 (build_new_method_call): Likewise.
1211 * class.c (grow_method): Don't give an error message indicating
1212 that two member templates with the same name are ambiguous.
1213 (finish_struct): Treat member template functions just like member
1216 * cp-tree.h (check_member_template): Add declaration.
1217 (begin_member_template_processing): Likewise.
1218 (end_member_template_processing): Likewise.
1219 (fn_type_unification): Likewise.
1220 (is_member_template): Likewise.
1221 (tsubst): Change prototype.
1222 (tsubst_expr): Likewise.
1223 (tsubst_copy): Likewise.
1224 (instantiate_template): Likewise.
1225 (get_bindings): Likewise.
1227 * decl.c (decls_match): Handle multiple levels of template
1229 (pushdecl): Handle template type params just like other type
1231 (push_class_level_binding): Return immediately if the
1232 class_binding_level is NULL.
1233 (grokfndecl): If check_classfn() returns a member_template, use
1234 the result of the template, not the template itself.
1236 * decl2.c (check_member_template): New function. Check to see
1237 that the entity declared to be a member template can be one.
1238 (check_classfn): Allow redeclaration of member template functions
1239 with different types; the new functions can be specializations or
1240 explicit instantiations.
1242 * error.c (dump_decl): Handle multiple levels of template
1244 (dump_function_decl): Update to handle function templates.
1246 * lex.c (do_pending_inlines): Set up template parameter context
1247 for member templates.
1248 (process_next_inline): Likewise.
1250 * method.c (build_overload_identifier): Adjust for multiple levels
1251 of template parameters.
1253 * parse.y (fn.def2): Add member templates.
1254 (component_decl_1): Likewise.
1256 * pt.c (begin_member_template_processing): New function.
1257 (end_member_template_processing): Likewise.
1258 (is_member_template): Likewise.
1259 (fn_type_unification): Likewise.
1260 (current_template_parms): Return a vector of all the template
1261 parms, not just the innermost level of parms.
1262 (push_template_decl): Deal with the possibility of member
1264 (lookup_template_class): Likewise.
1265 (uses_template_parms): Likewise.
1266 (tsubst): Modify processing to TEMPLATE_TYPE_PARM and
1267 TEMPLATE_CONST_PARM to deal with multiple levels of template
1268 arguments. Add processing of TEMPLATE_DECL to produce new
1269 TEMPLATE_DECLs from old ones.
1270 (do_decl_instantiation): Handle member templates.
1272 * search.c (lookup_fnfields_1): Handle member template conversion
1275 * tree.c (cp_tree_equal): Check the levels, as well as the
1276 indices, of TEMPLATE_CONST_PARMs.
1278 * typeck.c (comptypes): Check the levels, as well as the indices,
1279 fo TEMPLATE_TYPE_PARMs.
1280 (build_x_function_call): Treat member templates like member
1283 Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1285 * typeck.c (c_expand_return): Always convert_for_initialization
1286 before checking for returning a pointer to local.
1288 * pt.c (type_unification): If strict and the function parm doesn't
1289 use template parms, just compare types.
1291 Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
1293 * method.c (build_overloaded_value): Replace direct call
1294 to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
1296 Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com>
1298 * typeck.c (convert_arguments): Don't arbitrarily choose the first
1299 of a set of overloaded functions.
1301 Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1303 * lex.c (real_yylex): Don't elide __FUNCTION__.
1305 * method.c (build_overload_value): Add in_template parm.
1306 (build_overload_int): Likewise.
1307 (build_overload_identifier): Pass it.
1309 * decl.c (duplicate_decls): Don't bash a previous template
1310 definition with a redeclaration.
1312 * pt.c (unify): float doesn't match double.
1314 * pt.c (do_type_instantiation): Handle getting a _TYPE or a
1315 TYPE_DECL. Handle getting non-template types.
1316 * parse.y (explicit_instantiation): Use typespec instead of
1319 Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com>
1321 * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
1323 Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru>
1325 * call.c (add_builtin_candidate): Add missing TREE_TYPE.
1326 (compare_ics): Likewise.
1328 Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com>
1330 * call.c (joust): Warn about choosing one conversion op over
1331 another because of 'this' argument when the other return type is
1333 (source_type): New fn.
1335 * call.c (build_new_op): Strip leading REF_BIND from first operand
1336 to builtin operator.
1338 * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
1341 Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1343 * call.c (null_ptr_cst_p): Remove support for (void*)0.
1345 Wed Aug 27 02:03:34 1997 Jeffrey A Law <law@cygnus.com>
1347 * typeck.c (expand_target_expr): Make definition match declaration.
1349 * class.c (get_basefndecls): Make definition match declaration.
1351 Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com>
1353 * input.c (sub_getch): Eventually give up and release the input file.
1355 * decl.c (cp_finish_decl): If #p i/i, put inline statics in the
1358 * call.c (joust): Tweak message.
1360 Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net>
1362 * error.c (type_as_string): Put const/volatile on template type
1363 parameters where appropriate.
1365 Sat Aug 23 17:47:22 1997 Jeffrey A Law <law@cygnus.com>
1367 * call.c (strictly_better): Make arguments unsigned ints.
1369 Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com>
1371 * lex.c (real_yylex): Refer to __complex instead of complex.
1373 Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
1375 * lex.c (real_yylex): Don't use getc directly.
1377 Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1379 * call.c (is_subseq): Don't try to be clever.
1381 Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1383 * parse.y, pt.c: Include "except.h".
1384 * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
1385 error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
1386 lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
1387 sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
1390 Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1392 * decl2.c (mark_vtable_entries): Instead of replacing pure
1393 virtuals with a reference to __pure_virtual, copy the decl and
1396 Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com>
1398 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
1400 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
1402 * pt.c (instantiate_class_template): Call repo_template_used
1403 before finish_prevtable_vardecl.
1405 * call.c (is_subseq): New fn.
1406 (compare_ics): Use it.
1408 * repo.c (finish_repo): Don't crash on no args.
1410 * parse.y (named_complex_class_head_sans_basetype): Handle
1411 explicit global scope.
1412 * decl2.c (handle_class_head): New fn.
1414 * pt.c (unify): Add CONST_DECL case.
1416 Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1418 * rtti.c (permanent_obstack): Fix decl to not be a pointer.
1420 * cp-tree.h (report_type_mismatch): Add prototype.
1421 * call.c (build_overload_call_real): Remove erroneous fourth
1422 argument to report_type_mismatch.
1423 (build_user_type_conversion_1): Remove erroneous second arg to
1425 (build_new_function_call): Likewise.
1426 (build_object_call): Likewise.
1427 (build_new_op): Likewise.
1428 (build_new_method_call): Likewise.
1430 Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1432 * error.c (dump_decl): Don't bother processing a function with no
1435 * method.c (emit_thunk): Call init_function_start in the macro case.
1437 Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1439 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
1440 defined and used to set flag_vtable_thunks.
1442 Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com>
1444 * parse.y: Don't clear the inlines from their obstack until they've
1447 * decl.c (duplicate_decls): Don't complain about exception
1448 specification mismatch if flag_exceptions is off.
1450 Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com>
1452 * Make-lang.in (c++.distclean): Remove g++.c on make distclean.
1454 Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com>
1456 * cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
1457 * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
1458 Include <stdio.h> before include files that formerly used STDIO_PROTO.
1460 * decl.c, g++spec.c, lex.c, method.c, repo.c:
1461 Include "config.h" first, as per autoconf manual.
1463 Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com>
1465 * decl.c (duplicate_decls): Tweak wording.
1466 * lex.c (do_pending_defargs): Don't die if we see a default arg
1467 that isn't a DEFAULT_ARG.
1468 * error.c (dump_expr): Handle DEFAULT_ARG.
1470 * decl2.c (lang_decode_option): Handle -fhandle-exceptions.
1471 * lang-options.h: Add -fhandle-exceptions.
1473 * class.c (build_vtable): Vtables are artificial.
1474 (prepare_fresh_vtable): Likewise.
1476 Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1478 * cvt.c (ocp_convert): After converting to the target type, set
1479 LOOKUP_NO_CONVERSION.
1481 * call.c (joust): Warn about potentially confusing promotion rules
1483 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
1485 Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com>
1487 * exception.cc: Declare __terminate_func with noreturn attribute.
1489 Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
1491 * parse.y: Break out eat_saved_input, handle errors.
1492 (function_try_block): Use compstmt instead of compstmt_or_error.
1494 Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
1496 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
1498 Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1500 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
1501 existence of cc1plus check whether $(LANGUAGES) contains C++.
1503 Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1505 * method.c (do_build_copy_constructor): When copying an anonymous
1506 union member loop around to handle nested anonymous unions. Use
1507 the offset of the member relative to the outer structure, not the
1510 Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
1512 * call.c (resolve_args): New fn.
1513 (build_new_function_call): Use it.
1514 (build_object_call): Likewise.
1515 (build_new_method_call): Likewise.
1517 Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1519 * call.c (build_over_call): tsubst all default parms from templates.
1521 Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1523 * decl.c (struct cp_function): Add static_labelno.
1524 (push_cp_function_context): Save it.
1525 (pop_cp_function_context): Restore it.
1527 Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com>
1529 * typeck.c (build_component_ref_1): Convert from reference.
1531 Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1533 * parse.y (current_declspecs, prefix_attributes): Initialize to
1536 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
1537 before we try to force it to be a TREE_LIST.
1538 (decl): Make sure $1.t is non-nil.
1540 Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com>
1542 * pt.c (uses_template_parms): Handle template first-parse codes.
1544 * decl.c (cp_finish_decl): Only warn about user-defined statics.
1546 Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1548 * pt.c (unify): Handle BOOLEAN_TYPE.
1550 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
1551 * pt.c (tsubst): Don't set it.
1552 * call.c (build_over_call): Use uses_template_parms.
1554 Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com>
1556 * method.c (build_overload_nested_name): Use static_labelno
1557 instead of var_labelno.
1558 (build_qualified_name): New fn.
1559 (build_overload_name): Split out from here.
1560 (build_static_name): Use build_qualified_name.
1561 * decl.c (cp_finish_decl): Statics in extern inline functions
1562 have comdat linkage.
1563 (start_function): Initialize static_labelno.
1565 Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1567 * class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy
1568 before "all member functions in class [] are private".
1570 Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1572 * lex.c (do_scoped_id): convert_from_reference.
1573 * init.c (build_offset_ref): Likewise.
1575 Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
1577 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
1579 Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com>
1581 * typeck.c (get_member_function_from_ptrfunc): Promote index
1584 Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com>
1586 * tree.c (layout_basetypes): Move non-virtual destructor warning.
1587 * decl.c (xref_basetypes): Remove non-virtual destructor warning.
1589 Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1591 * decl.c (grokdeclarator): Call add_defarg_fn for the function
1593 * lex.c (add_defarg_fn): Adjust.
1594 (do_pending_defargs): Adjust. Don't skip the first parm.
1596 Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com>
1598 * decl.c (build_enumerator): Global enumerators are also readonly.
1600 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
1601 (build_dynamic_cast): Call it and convert_from_reference.
1603 * lex.c (add_defarg_fn): New fn.
1604 (snarf_defarg): Don't add to defarg_types.
1605 (do_pending_defargs): Lose defarg_types. All fns we process now
1607 * decl.c (grokfndecl): Call add_defarg_fn.
1609 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
1610 * cp-tree.def: Add DEFAULT_ARG.
1611 * spew.c (yylex): Call snarf_defarg as appropriate.
1612 * parse.y: New tokens DEFARG and DEFARG_MARKER.
1613 (defarg_again, pending_defargs, defarg, defarg1): New rules.
1614 (structsp): Use pending_defargs.
1615 (parms, full_parm): Use defarg.
1616 * lex.c (init_lex): Initialize inline_text_firstobj.
1617 (do_pending_inlines): Never pass the obstack to feed_input.
1618 (process_next_inline): Call end_input instead of restore_pending_input.
1619 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
1620 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
1621 * input.c (end_input): New fn.
1622 (sub_getch): At the end of some fed input, just keep returning EOF
1623 until someone calls end_input.
1624 Remove 'obstack' field from struct input_source.
1625 * decl.c (grokparms): Handle DEFAULT_ARG.
1626 (replace_defarg): New fn.
1627 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
1629 Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1631 * call.c (implicit_conversion): If nothing else works, try binding
1632 an rvalue to a reference.
1634 Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com>
1636 * decl.c (init_decl_processing): Fix Jun 30 patch -- move
1637 ifndef for Cygwin32 to include SIGSEGV.
1639 Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1641 * class.c (finish_struct_1): Only complain about pointers without
1642 copy stuff if there are any constructors.
1644 * rtti.c (build_dynamic_cast): Call complete_type on the types.
1646 * decl.c (grokfndecl): If the function we chose doesn't actually
1649 * decl2.c (grokclassfn): Don't specify 'const int' for the
1650 artificial destructor parm.
1652 * pt.c (type_unification): If we are called recursively, nothing
1655 Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com>
1657 * decl.c (init_decl_processing): Stop trying to catch signals
1658 other than SIGABRT since the Cygwin32 library doesn't support
1659 them correctly yet. This fixes a situation in which g++ causes
1660 a hang on SIGSEGVs and other such signals in our Win32-hosted
1663 Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com>
1665 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
1667 Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com>
1669 * typeck2.c (store_init_value): Always return the value if our
1670 type needs constructing.
1672 * method.c (hack_identifier): Convert class statics from
1675 Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com>
1677 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
1679 Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com>
1681 * typeck.c (c_expand_return): Make sure we clean up temporaries at
1682 the end of return x;
1684 Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1686 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
1688 Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com>
1690 * except.c (expand_builtin_throw): Add support
1691 -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
1693 Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com>
1695 * repo.c (extract_string): Null-terminate.
1697 * cp-tree.h (TI_SPEC_INFO): New macro.
1698 (CLASSTYPE_TI_SPEC_INFO): New macro.
1699 * pt.c (push_template_decl): Correctly determine # of template parms
1702 * call.c (compare_ics): Really fix 'this' conversions.
1704 * pt.c (do_decl_instantiation): Don't crash on explicit inst of
1707 * pt.c (push_template_decl): Complain about mismatch in # of
1708 template parms between a class template and a member template.
1710 Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com>
1712 * method.c (synthesize_method): You can't call
1713 function_cannot_inline_p after finish_function.
1714 * decl.c (finish_function): Turn on flag_inline_functions and turn
1715 off DECL_INLINE before handing a synthesized method to the
1718 Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1720 * method.c (synthesize_method): Remove July 30 change to never set
1721 DECL_INLINE if at_eof.
1723 Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com>
1725 * xref.c (GNU_xref_member): Ensure that the node has a
1726 decl_lang_specific part before checking DECL_FRIEND_P.
1728 Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1730 * pt.c (instantiate_class_template): Diagnose non-class types used
1733 Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1735 * typeck.c (build_conditional_expr): Use convert_for_initialization
1736 instead of convert_and_check.
1738 Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1740 * parse.y (typespec): Don't pedwarn for typeof.
1742 Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com>
1744 * repo.c (finish_repo): Only check changes if we would write a
1747 * call.c (compare_ics): Fix handling of 'this' conversions.
1749 * pt.c (do_decl_instantiation): Support static data too. Rename
1750 from do_function_instantiation.
1751 * cp-tree.h: Adjust.
1754 * repo.c (extract_string): New fn.
1755 (get_base_filename): Use it.
1756 (init_repo): Compare old args with current args.
1758 Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com>
1760 * Makefile.in, Make-lang.in: Protect C-ls with a comment
1761 character, idea from Paul Eggert <eggert@twinsun.com>.
1763 Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com>
1765 * typeck.c (c_expand_return): Be more persistent in looking for
1768 * cvt.c (build_up_reference): Use NOP_EXPR for switching from
1769 pointer to reference.
1771 * class.c (build_vbase_path): Don't do anything if PATH has no steps.
1773 Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1775 * init.c (build_member_call, build_offset_ref):
1776 Use do_scoped_id instead of do_identifier.
1778 * cvt.c (convert): Remove bogosity.
1780 Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1782 * cvt.c (build_up_reference): Do checks of ARGTYPE and
1783 TARGET_TYPE before trying to use get_binfo.
1785 Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com>
1787 * cvt.c (build_up_reference): Call get_binfo to get access control.
1789 * decl2.c (import_export_decl): If we don't support weaks, leave
1792 Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com>
1794 * except.c (expand_builtin_throw): Add support for machines that
1795 cannot access globals after throw's epilogue when
1796 -fno-sjlj-exceptions is used.
1798 Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com>
1800 * parse.y: 'std::' becomes '::'.
1801 * lex.c (real_yylex): Remove 'namespace' warning.
1802 * init.c (build_member_call): Ignore 'std::'.
1803 (build_offset_ref): Likewise.
1804 * decl2.c (do_using_directive): Ignore 'using namespace std;'.
1805 (do_toplevel_using_decl): Ignore 'using std::whatever'.
1806 * decl.c (push_namespace): Just sorry.
1807 (pop_namespace): Nop.
1808 (init_decl_processing): Declare std namespace.
1810 Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1812 * search.c (push_class_decls): A name which ambiguously refers to
1813 several instantiations of the same template just refers to the
1816 Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com>
1818 * decl.c (build_enumerator): Fix problem with unsigned long
1819 enumerated values being smashed to ints, causing overflow
1820 when computing next enumerated value (for enum values around
1823 Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com>
1825 * typeck.c (build_component_ref): Only call mark_used on a decl.
1827 Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1829 * typeck.c (build_c_cast): Make the check for a ptr to function
1830 more specific before possible default_conversion call.
1832 Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
1834 * except.c (expand_exception_blocks): Simplify and fix and make
1835 sure we don't end a region in a sequence, as expand_end_bindings
1838 Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
1840 * except.c (init_exception_processing): Mark terminate as not
1841 returning so that the optimizer can optimize better.
1843 Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
1845 * cvt.c (convert): Don't do any extra work, if we can avoid it
1848 Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com>
1850 * *.[chy]: Change cp_convert to ocp_convert, change convert to
1851 cp_convert. convert is now reserved for the backend, and doesn't
1852 have the semantics a frontend person should ever want.
1854 Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com>
1856 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
1857 Lose -traditional support.
1859 Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1861 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
1863 * parse.y (self_reference): Do it for templates, too.
1864 * class.c (pushclass): Don't overload_template_name; the alias
1865 generated by build_self_reference serves the same purpose.
1867 * tree.c (list_hash): Make static, take more args.
1868 (list_hash_lookup): Likewise.
1869 (list_hash_add): Make static.
1870 (list_hash_canon): Lose.
1871 (hash_tree_cons): Only build a new node if one isn't already in the
1873 (hash_tree_chain): Use hash_tree_cons.
1874 * cp-tree.h: Adjust.
1875 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
1876 of calling lookup_name.
1878 Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com>
1880 * pt.c (instantiate_class_template): TYPE_VALUES for an enum
1881 doesn't refer to the CONST_DECLs.
1883 Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com>
1885 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
1887 (expand_class_desc): Convert the last argument to a sizetype.
1889 Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1891 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
1892 __real__): Add reswords.
1893 * hash.h: Regenerate.
1894 * lex.h (rid): Add RID_COMPLEX.
1895 (RID_LAST_MODIFIER): Set to RID_COMPLEX.
1896 * lex.c (init_lex): Add building of RID_COMPLEX.
1897 (real_yylex): General cleanup in line with what c-lex.c also has,
1898 sans the cruft for traditional; add handling of SPEC_IMAG, complex
1899 types, and imaginary numeric constants.
1900 * parse.y (REALPART, IMAGPART): Add tokens.
1901 (unary_expr): Add REALPART and IMAGPART rules.
1902 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
1903 * decl.c (complex_{integer,float,double,long}_type_node): Define
1905 (init_decl_processing): Set up the types.
1906 (grokdeclarator): Add handling of RID_COMPLEX. Set and use
1907 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
1908 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1909 * cvt.c (cp_convert): Handle COMPLEX_TYPE.
1910 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
1912 * method.c (build_overload_name): Add handling of the different
1913 COMPLEX_TYPEs, prefixing them with `J'.
1914 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
1916 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
1917 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
1918 (mapcar): Handle COMPLEX_CST.
1919 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
1920 (common_type): Add code for complex types.
1921 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1922 (convert_for_assignment): Likewise.
1923 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
1925 Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com>
1927 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
1928 tsubst_expr, as it might try to do overload resolution.
1930 Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com>
1932 * pt.c (instantiate_class_template): Oops.
1934 Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com>
1936 * cp-tree.def: Add TAG_DEFN.
1937 * pt.c (tsubst_enum): New fn.
1938 (instantiate_class_template): Use it.
1939 (tsubst_expr): Support TAG_DEFN.
1940 (tsubst): Support local enums.
1941 (tsubst_copy): Likewise.
1942 * decl.c (finish_enum): Likewise.
1943 (start_enum): If this is a local enum, switch to permanent_obstack.
1945 Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com>
1947 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
1948 (finish_function): Put the base init code for constructors just
1949 after the parm cleanup insns.
1950 (struct cp_function): Add last_parm_cleanup_insn.
1951 (push_cp_function_context): Likewise.
1952 (pop_cp_function_context): Likewise.
1954 Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com>
1956 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
1958 Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1960 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
1961 for THUNK_FNDECL before we switch to temporary allocation.
1963 Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
1965 * call.c (build_new_op): Handle null arg2 for ?:.
1967 Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
1969 * except.c (expand_exception_blocks): Ensure that we flow through
1970 the end of the exception region for the exception specification.
1971 Move exception region for the exception specification in, so that
1972 it doesn't protect the parm cleanup. Remove some obsolete code.
1973 * decl.c (store_parm_decls): Likewise.
1974 (finish_function): Likewise.
1976 Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com>
1978 * init.c (build_new): Fix nothrow handling.
1980 Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1982 * init.c (emit_base_init): Don't warn about the initialization
1983 list for an artificial member.
1985 Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1987 * expr.c (do_case): Handle !START case for the error msg.
1989 Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1991 * decl2.c, lang-options.h: New option -Weffc++.
1992 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
1995 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
1996 to MULTIPLE_SYMBOL_SPACES.
1998 Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com>
2000 * method.c (emit_thunk, generic case): Set current_function_is_thunk.
2002 * method.c (emit_thunk, macro case): Set up DECL_RESULT.
2004 * typeck.c (c_expand_return): Don't complain about returning void
2005 to void in an artificial function.
2006 * method.c (make_thunk): Change settings of READONLY/VOLATILE,
2007 don't set DECL_RESULT, set DECL_ARTIFICIAL.
2008 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
2010 Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com>
2012 * init.c (init_decl_processing): Add support for setjmp/longjmp based
2014 * except.c (init_exception_processing): Likewise.
2015 (expand_end_catch_block): Likewise.
2016 (expand_exception_blocks): Likewise.
2017 (expand_throw): Likewise.
2018 * exception.cc (__default_terminate): Likewise.
2020 * init.c (perform_member_init): Use new method of expr level
2021 cleanups, instead of cleanups_this_call and friends.
2022 (emit_base_init): Likewise.
2023 (expand_aggr_vbase_init_1): Likewise.
2024 (expand_vec_init): Likewise.
2025 * decl.c (cp_finish_decl): Likewise.
2026 (expand_static_init): Likewise.
2027 (store_parm_decls): Likewise.
2028 (cplus_expand_expr_stmt): Likewise.
2029 * decl2.c (finish_file): Likewise.
2031 * Make-lang.in (exception.o): Ok to compile with -O now.
2033 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
2034 we know it will be done later by the backend.
2036 * decl2.c (lang_f_options): Remove support for short temps.
2037 * lang-options.h: Likewise.
2039 Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2041 * tree.c (varargs_function_p): New fn.
2042 * method.c (emit_thunk): Replace broken generic code with code to
2043 generate a heavyweight thunk function.
2045 Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com>
2047 * pt.c (process_template_parm): pedwarn about floating-point parms.
2049 * decl.c (grokdeclarator): inline no longer implies static.
2051 * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
2053 Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
2055 * class.c (check_for_override): The signature of an overriding
2056 function is not changed.
2058 * call.c (build_over_call): Move setting of conv into the loop.
2059 Note: this change, along with the related changes of the 18th thru
2060 the 20th of April, fix an infinite loop problem in conversions.
2062 Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
2064 * call.c (build_user_type_conversion_1): Really ignore rvalue
2065 conversions when looking for a REFERENCE_TYPE.
2067 * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
2068 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
2069 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
2070 (build_unary_op): Likewise.
2071 * call.c (build_over_call): See through a CONVERT_EXPR around the
2072 ADDR_EXPR for on a temporary.
2073 * typeck.c (c_expand_return): See through a CONVERT_EXPR around
2074 the ADDR_EXPR for a local variable.
2076 Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com>
2078 * call.c (build_user_type_conversion_1): If we're trying to
2079 convert to a REFERENCE_TYPE, only consider lvalue conversions.
2080 (build_new_function_call): Print candidates.
2081 (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
2082 (reference_binding): Binding a temporary of a reference-related type
2085 Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2087 * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
2088 * tinfo2.cc (type_info::before): Likewise.
2090 Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com>
2092 * call.c (implicit_conversion): Oops.
2094 Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com>
2096 * call.c (implicit_conversion): Try to find a reference conversion
2097 before binding a const reference to a temporary.
2099 Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com>
2101 * exception.cc (__default_unexpected): Call terminate by default,
2102 so that if the user overrides terminate, the correct function will
2105 Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com>
2107 * parse.y (left_curly): Avoid trying to use any fields of
2108 error_mark_node, as there aren't any.
2110 Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com>
2112 * lex.c (do_identifier): Avoid breaking on overloaded methods
2113 as default arguments.
2115 Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se>
2117 * call.c (add_template_candidate): Initialize the variable "dummy".
2119 Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
2121 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
2122 before we try to use TYPE_SIZE and TREE_CONSTANT on it.
2124 Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2126 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
2127 (debug_binfo): Delete decl, not needed.
2129 * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
2130 promotes_to_aggr_type): Delete fns.
2131 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
2132 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
2133 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
2135 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
2137 * friend.c (is_friend_type): Delete fn.
2138 * cp-tree.h (is_friend_type): Delete decl.
2140 * decl.c (original_result_rtx, double_ftype_double,
2141 double_ftype_double_double, int_ftype_int, long_ftype_long,
2142 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
2143 * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
2145 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
2147 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
2149 * decl.c (pushdecl_nonclass_level): #if 0, unused.
2150 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
2152 * lex.c (reinit_lang_specific): #if 0, unused.
2153 * cp-tree.h (reinit_lang_specific): #if 0 decl.
2155 * decl.c (revert_static_member_fn): Make static, adding fwd decl.
2156 * cp-tree.h (revert_static_member_fn): Delete decl.
2158 * class.c (root_lang_context_p): Delete fn.
2159 * cp-tree.h (root_lang_context_p): Delete decl.
2161 * decl.c (set_current_level_tags_transparency): #if 0, unused.
2162 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
2164 * lex.c (set_vardecl_interface_info): Make static.
2165 * cp-tree.h (set_vardecl_interface_info): Delete decl.
2167 * call.c (find_scoped_type): Make static.
2168 * cp-tree.h (find_scoped_type): Delete decl.
2170 * search.c (convert_pointer_to_vbase): Make static.
2171 * cp-tree.h (convert_pointer_to_vbase): Delete decl.
2173 * decl.c (const_ptr_type_node): Likewise.
2174 * cp-tree.h (const_ptr_type_node): Delete decl.
2176 * typeck.c (common_base_type): Make static.
2177 * cp-tree.h (common_base_types): Delete erroneous decl.
2179 * pt.c (classtype_mangled_name): Make static.
2180 * cp-tree.h (classtype_mangled_name): Delete decl.
2182 * lex.c (check_newline): Make static.
2183 * cp-tree.h (check_newline): Delete decl.
2185 * typeck.c (build_x_array_ref): Delete fn, same idea as
2187 * cp-tree.h (build_x_array_ref): Delete decl.
2189 * lex.c (copy_decl_lang_specific): Delete fn, same idea as
2191 * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
2193 * class.c (build_vtable_entry): Make static.
2194 * cp-tree.h (build_vtable_entry): Delete decl.
2196 * class.c (build_vbase_pointer): Make static.
2197 * cp-tree.h (build_vbase_pointer): Delete decl.
2199 * sig.c (build_sptr_ref): Add forward decl and make static.
2200 * cp-tree.h (build_sptr_ref): Delete decl.
2202 * call.c (build_new_method_call): Add forward decl and make static.
2203 * cp-tree.h (build_new_method_call): Delete decl.
2205 * call.c (build_object_call): Make static.
2206 * class.c (check_for_override, complete_type_p, mark_overriders):
2208 * decl.c (cp_function_chain): Likewise.
2209 * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
2211 * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
2213 * tree.c (build_cplus_array_type_1): Likewise.
2214 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
2215 (comp_target_parms): Likewise.
2217 * init.c (build_builtin_call): Make static.
2218 * cp-tree.h (build_builtin_call): Delete decl.
2220 * typeck.c (binary_op_error): Delete decl.
2221 * cp-tree.h (binary_op_error): Likewise.
2223 Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2225 * call.c (build_method_call): Compare against error_mark_node
2226 directly, rather than the ERROR_MARK tree code.
2227 * cvt.c (cp_convert): Likewise.
2228 * decl.c (print_binding_level): Likewise.
2229 (duplicate_decls): Likewise.
2230 (grokdeclarator): Likewise.
2231 (grokdeclarator): Likewise.
2232 * init.c (expand_aggr_init_1): Likewise.
2233 (decl_constant_value): Likewise.
2234 * method.c (build_opfncall): Likewise.
2235 (hack_identifier): Likewise.
2236 * typeck.c (build_modify_expr): Likewise.
2238 * typeck.c (build_c_cast): Don't decl TYPE as register tree.
2240 Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2242 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
2244 * pt.c (coerce_template_parms): Add new error message.
2246 * method.c (build_overload_value): Implement name mangling for
2247 floating-point template arguments.
2249 * method.c (build_overload_int, icat, dicat): Fix mangling of template
2250 arguments whose absolute value doesn't fit in a signed word.
2252 Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2254 * friend.c: New file; put all of the friend stuff in here.
2255 * init.c: Instead of here.
2256 * Makefile.in (CXX_OBJS): Add friend.o.
2257 (friend.o): Add dependencies.
2258 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
2260 Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com>
2262 * call.c (build_scoped_method_call): Complain if the scope isn't a
2265 Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2267 * parse.y (left_curly): Don't crash on erroneous type.
2269 * init.c (build_delete): Fix type of ref.
2271 Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com>
2273 * search.c (get_vbase_1): Renamed from get_vbase.
2274 (get_vbase): Wrapper, now non-static.
2275 (convert_pointer_to_vbase): Now static.
2277 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
2278 * init.c (build_delete): Pass one.
2279 (build_partial_cleanup_for): Use build_scoped_method_call.
2280 * decl.c (finish_function): Pass a binfo.
2282 Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2284 * call.c (build_over_call): Only synthesize non-trivial copy ctors.
2286 * typeck.c (build_c_cast): Lose other reference to flag.
2288 * call.c (build_field_call): Don't look for [cd]tor_identifier.
2289 * decl2.c (delete_sanity): Remove meaningless use of
2290 LOOKUP_HAS_IN_CHARGE.
2291 * decl.c (finish_function): Use build_scoped_method_call instead
2292 of build_delete for running vbase dtors.
2293 * init.c (build_delete): Call overload resolution code instead of
2294 duplicating it badly.
2296 Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com>
2298 * call.c (build_over_call): Call mark_used before trying to elide
2301 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
2303 Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2305 * typeck.c (build_modify_expr): Always pedwarn for a cast to
2306 non-reference used as an lvalue.
2308 Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com>
2310 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
2312 Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com>
2314 * parse.y (handler): Fix template typo.
2316 Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2318 * error.c (lang_decl_name): New fn.
2319 * tree.c (lang_printable_name): Use it.
2321 Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com>
2323 * g++spec.c: Include config.h so that we can catch bzero #defines
2324 from the config file.
2326 Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com>
2328 * new1.cc: Include a declaration for malloc, to avoid warning, and
2329 avoid lossing on systems that require one (ones that define malloc
2332 Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2334 * decl2.c (max_tinst_depth): New variable.
2335 (lang_decode_option): Parse "-ftemplate-depth-NN" command line
2337 * pt.c (max_tinst_depth): Variable moved.
2338 * lang-options.h: Declare "-ftemplate-depth-NN" command line option
2341 Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com>
2343 * decl.c (xref_basetypes): Allow a base class that depends on
2344 template parms to be incomplete.
2346 * decl2.c (build_expr_from_tree): Support typeid(type).
2347 * rtti.c (get_typeid): Support templates.
2348 (expand_si_desc, expand_class_desc): Fix string length.
2349 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
2351 Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
2353 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
2355 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
2357 Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2359 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
2360 smashes together template and non-template decls of the same
2363 Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
2365 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
2367 Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2369 * decl.c (duplicate_decls): Next route, pedwarn about different
2370 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
2372 Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2374 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
2375 (struct lang_type): Delete has_default_implementation member.
2376 Increase dummy to 21.
2377 * decl.c (start_method): Delete usage.
2379 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
2380 store_after_parms, start_decl_1, auto_function): Add decls.
2381 (get_arglist_len_in_bytes, declare_implicit_exception,
2382 have_exceptions_p, make_type_decl, typedecl_for_tag,
2383 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
2384 build_component_type_expr, cplus_exception_name,
2385 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
2386 * call.c (build_this): Make static.
2387 (is_complete): Likewise.
2388 (implicit_conversion): Likewise.
2389 (reference_binding): Likewise.
2390 (standard_conversion): Likewise.
2391 (strip_top_quals): Likewise.
2392 (non_reference): Likewise.
2393 (build_conv): Likewise.
2394 (user_harshness): Likewise.
2395 (rank_for_ideal): Likewise.
2396 * decl.c (start_decl_1): Delete forward decl.
2397 (push_decl_level): Make static.
2398 (resume_binding_level): Make static.
2399 (namespace_bindings_p): Make static.
2400 (declare_namespace_level): Make static.
2401 (lookup_name_real): Make static.
2402 (duplicate_decls): Make static. Take register off NEWDECL and
2404 * decl2.c (get_sentry): Make static.
2405 (temp_name_p): Delete fn.
2406 * except.c (auto_function): Delete decl.
2407 * lex.c (handle_{cp,sysv}_pragma): Make static.
2408 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
2409 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
2410 * pt.c (tsubst_expr_values): Make static.
2411 * rtti.c (combine_strings): Delete decl.
2413 Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
2415 * pt.c (push_template_decl): Handle getting a typedef.
2417 * call.c (build_new_function_call): Complain about void arg.
2419 Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2421 * decl.c (duplicate_decls): Give pedwarn of different exceptions
2422 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
2424 Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
2426 * except.c (expand_throw): Don't expand the cleanup tree here,
2427 since we are not going to write the rtl out. Fixes problem with
2430 Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
2432 * Make-lang.in: Add $(exeext) as necessary.
2434 Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
2436 * parse.y (handler_seq): Must have at least one catch clause.
2438 Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
2440 * call.c (add_builtin_candidate): Restore ?: hack.
2442 * decl.c (grok_op_properties): More warnings.
2444 Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2446 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
2447 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
2449 * decl.c (duplicate_decls): Scale back to a warning, and only do
2452 Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
2454 * decl.c (duplicate_decls): pedwarn mismatched exception
2457 Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
2459 * call.c (build_new_method_call): Don't display the invisible
2460 argument for controlling virtual bases.
2462 Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
2464 * new: Add nothrow new and delete, bad_alloc and throw specifications
2466 * decl.c (init_decl_processing): Add throw specification for delete.
2467 * new.cc (nothrow): Define.
2468 * lex.c (real_yylex): Removing warning that throw and friends are
2470 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
2471 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
2472 * Make-lang.in: Add new{1,2}.{cc,o}.
2474 Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2476 * lex.c (cons_up_default_function): Fix return type of synth op=.
2478 * init.c (emit_base_init): Add warnings for uninitialized members
2481 * decl.c (xref_basetypes): Add warning for non-polymorphic type
2482 with destructor used as base type.
2484 * decl.c (grok_op_properties): Add warning for op= returning void.
2485 * typeck.c (c_expand_return): Add warning for op= returning anything
2488 * class.c (finish_struct_1): Add warning for class with pointers
2489 but not copy ctor or copy op=.
2491 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
2492 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
2493 (instantiate_template): If -fexternal-templates, add this
2494 instantiation to pending_templates.
2496 * decl2.c (copy_assignment_arg_p): Disable old hack to support
2499 Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
2501 * cvt.c (cp_convert): pedwarn enum to pointer conversions.
2503 Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
2505 * call.c (standard_conversion): Handle getting references. Tack
2506 on RVALUE_CONV here. Do it for non-class types, too.
2507 (reference_binding): Pass references to standard_conversion.
2508 (implicit_conversion): Likewise.
2509 (add_builtin_candidate): Disable one ?: kludge.
2510 (convert_like): Handle RVALUE_CONVs for non-class types.
2511 (joust): Disable the other ?: kludge.
2513 Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2515 * decl.c (init_decl_processing): Add code to build up common
2516 function types beforehand, to avoid creation then removal of
2517 things already in the hash table.
2519 Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
2521 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
2524 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
2525 current_template_parms.
2527 Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
2529 * search.c (lookup_field): Don't return a function, check want_type.
2531 Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2533 * init.c (build_new): Make sure PLACEMENT has a type.
2535 Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2537 * init.c (build_new): Support new (nothrow).
2539 Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
2541 * pt.c (instantiate_decl): Also do push_to_top_level before setting
2544 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
2545 * pt.c (tsubst): Defer instantiation of default args.
2546 * call.c (build_over_call): Until here.
2548 Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2550 * search.c (lookup_field): Make sure we have an
2551 IDENTIFIER_CLASS_VALUE before we try to return it.
2553 Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2555 * call.c (build_method_call): Delete unused var PARM.
2556 (build_overload_call_real): Likewise.
2557 (build_object_call): Delete unused var P.
2558 (build_new_op): Likewise.
2559 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
2560 var definitions, which are never used.
2561 (shadow_tag): Delete unused var FN.
2562 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
2563 * init.c (build_new): Delete unused var ALLOC_TEMP.
2564 * method.c (hack_identifier): Delete unused var CONTEXT.
2565 (do_build_copy_constructor): Delete unused var NAME.
2566 (synthesize_method): Delete unused var BASE.
2567 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
2568 * rtti.c (build_headof): Delete unused var VPTR.
2569 (get_typeid): Delete unused var T.
2570 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
2572 (build_ptrmemfunc): Delete unused vars U and NINDEX.
2573 * typeck2.c (build_functional_cast): Delete unused var BINFO.
2575 Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
2577 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
2578 things in a type being defined.
2579 * decl.c (finish_enum): Reverse the values so that they are in
2582 * pt.c (instantiate_class_template): Don't initialize
2583 BINFO_BASETYPES until the vector is filled out.
2584 (unify): Don't abort on conflicting bindings, just fail.
2585 (instantiate_decl): Do push_tinst_level before any tsubsting.
2587 * method.c (build_overload_value): Handle getting a
2588 TEMPLATE_CONST_PARM for a pointer.
2590 Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
2592 * init.c (expand_member_init): Don't give 'not a base' error for
2595 * pt.c (instantiate_decl): Call import_export_decl later.
2597 * pt.c (instantiate_class_template): Return a value.
2599 * parse.y (extension): New rule for __extension__.
2600 (extdef, unary_expr, decl, component_decl): Use it.
2602 Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
2604 * class.c (base_binfo): Remove unused base_has_virtual member.
2605 (finish_base_struct): Likewise.
2606 (finish_struct_1): Likewise.