1Mon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2 3 * call.c (add_builtin_candidate): Add default case in enumeration 4 switch. 5 (build_new_op): Likewise. 6 (convert_like): Likewise. 7 * cvt.c (build_expr_type_conversion): Likewise. 8 * tree.c (real_lvalue_p): Likewise. 9 (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. 18 19Sun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com> 20 21 * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas. 22 23Thu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net> 24 25 * pt.c (coerce_template_parms): Make sure to digest_init if 26 possible. 27 28 * decl.c (duplicate_decls): Make the newdecl virtual if the 29 olddecl was, just as is done with other attributes of olddecl. 30 31Thu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com> 32 33 * typeck.c (unary_complex_lvalue): Ignore op0 when taking the 34 address of an OFFSET_REF. 35 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. 40 41 * decl2.c (finish_file): Remove call to register_exception_table. 42 43Wed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 44 45 * pt.c (instantiate_class_template): Don't do injection when 46 processing_template_decl is true, as pollutes current_binding_level 47 for base classes. 48 49Wed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de> 50 51 * pt.c (maybe_fold_nontype_arg): Add prototype. 52 53Tue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com> 54 55 * tree.c (mapcar): Handle TRY_CATCH_EXPR et al. 56 * error.c (dump_expr): Likewise. 57 58Mon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com> 59 60 * typeck.c (build_function_call_real): Remove "inline called before 61 definition" pedwarn. 62 63 * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg. 64 65Sun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com> 66 67 * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's. 68 69 * pt.c (type_unification_real): Change __null to type void* with 70 a warning. 71 72Sun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net> 73 74 * call.c (implicit_conversion): Don't call 75 build_user_type_conversion_1 with a NULL expr, since it will 76 crash. 77 78 * pt.c (unify): Don't try to unify array bounds if either array is 79 unbounded. 80 81Fri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com> 82 83 * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at): 84 Replace extern decls with casts. 85 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. 89 * cp-tree.h: Adjust. 90 91Thu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com> 92 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. 99 100 * decl2.c (finish_file): Lose handling of templates in pending_statics. 101 102Thu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com> 103 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. 107 * decl.c: Likewise. 108 109Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com> 110 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. 117 118 From Scott Snyder <snyder@d0sgif.fnal.gov>: 119 * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of 120 saved_pc. 121 (init_exception_processing): Removed saved_pc initialization. 122 123Wed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com> 124 125 * pt.c (instantiate_decl): Defer all templates but inline functions. 126 127Mon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com> 128 129 * init.c (expand_vec_init): Don't fold a list of parameters. 130 131 * decl.c (copy_args_p): Handle copy elision for types with virtual 132 bases. 133 * call.c (build_over_call): Likewise. 134 135Sun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net> 136 137 * pt.c (lookup_template_function): Copy the template arguments, 138 not just the list containing them, to the permanent obstack. 139 140Sun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com> 141 142 * except.c (expand_start_catch_block): suspend_momentary for the 143 terminate handler. 144 145 * error.c (dump_decl): Handle LOOKUP_EXPR. 146 147Sun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net> 148 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. 154 155 * pt.c (coerce_template_parms): Coerce some expressions, even 156 when processing_template_decl. 157 158Sun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 159 160 * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric 161 handling of pointer difference expressions. 162 163 * typeck.c (comp_target_types): Comparison of function/method types 164 is independent of nptrs. 165 166Sun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net> 167 168 * pt.c (tsubst): Avoid creating pointer to reference and 169 reference to reference types. 170 171Sat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com> 172 173 * parse.y (do_id): New nonterminal. 174 (template_id): Use it. 175 176Fri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com> 177 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. 181 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. 184 185Wed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com> 186 187 * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for 188 alloc_expr. 189 * call.c (build_op_delete_call): Adjust. 190 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. 194 195Wed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 196 197 * pt.c (tsubst): Remove tree_cons call (places redundant info into 198 DECL_TEMPLATE_INSTANTIATION). 199 200Wed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com> 201 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. 207 208 * tree.c, cp-tree.h (get_target_expr): New fn. 209 210Wed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com> 211 212 * pt.c (check_explicit_specialization): Fix misspelling in 213 diagnostic: `preceeded'. 214 * typeck.c (get_delta_difference): Fix misspelling in diagnostic: 215 `conversiona'. 216 2171997-12-02 Mark Mitchell <mmitchell@usa.net> 218 219 * pt.c (determine_explicit_specialization): Avoid an internal 220 error for bad specializations. 221 222 * method.c (build_overload_value): Handle SCOPE_REF. 223 224Tue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com> 225 226 * class.c (prepare_fresh_vtable): Enable even more complex MI 227 vtable names. 228 229Tue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com> 230 231 * exception.cc (__check_eh_spec): Optimize a bit. 232 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. 237 238Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com> 239 240 * pt.c (check_explicit_specialization): Complain about using a 241 template-id for a non-specialization. 242 243Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com> 244 245 * repo.c: Prototype rindex only if needed. 246 * xref.c: Likewise. 247 248Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 249 250 * error.c (dump_decl): Handle TEMPLATE_ID_EXPR. 251 252Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com> 253 254 * typeck.c (build_const_cast): Handle references here instead of 255 handing off to convert_to_reference. 256 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/. 263 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. 269 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. 274 275Wed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com> 276 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. 283 284 * except.c (expand_throw): Call mark_used on the destructor. 285 286Wed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com) 287 288 * lex.c (lang_init): Enable flag_exceptions by default if no 289 command line switch was specified. 290 2911997-11-26 Mark Mitchell <mmitchell@usa.net> 292 293 * pt.c (unify): Handle `void' template parameters in 294 specializations. 295 296Wed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com> 297 298 * rtti.c (build_dynamic_cast): Handle template case here. 299 (build_dynamic_cast_1): Not here. 300 301 * typeck2.c (digest_init): Make copies where appropriate. 302 303 * decl2.c (delete_sanity): resolve_offset_ref. 304 305 * except.c: Call terminate without caching so many bits. 306 307 * except.c (expand_start_catch_block): Fix catching a reference 308 to pointer. 309 310Tue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com> 311 312 * init.c (build_new): Copy size to the saveable obstack. 313 314 * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the 315 TRY_CATCH_EXPR for now. 316 317Mon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com> 318 319 * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL 320 has DECL_LANG_SPECIFIC. 321 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. 329 330Fri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com> 331 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 336 const void pointers. 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. 341 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. 345 346Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com> 347 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 356 delete. 357 358 * method.c (build_decl_overload_real): Don't mess with global 359 placement delete. 360 361 * init.c (build_new): Check for null throw spec, not nothrow_t. 362 363 * decl.c (duplicate_decls): Don't complain about different exceptions 364 from an internal declaration. 365 366 * call.c (build_op_delete_call): Fix check for member fns again. 367 368 * decl2.c (import_export_decl): Interface hackery affects 369 virtual synthesized methods. 370 371Wed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com> 372 373 * decl.c (start_decl): Don't just complain about a mismatched 374 scope, fix it. 375 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. 382 383Wed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com> 384 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). 388 389Wed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com> 390 391 * decl.c (make_implicit_typename): New fn. 392 (lookup_name_real): Use it. Use current_class_type as the context. 393 394Mon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr> 395 396 * pt.c (do_poplevel): Don't prohibit jumps into this contour. 397 398Mon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com> 399 400 * friend.c (do_friend): Warn about non-template friends in templates. 401 402 * call.c (build_op_delete_call): Fix handling of inherited delete. 403 404 * search.c (dfs_record_inheritance): Ignore template type parms. 405 406Sat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com> 407 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. 417 418Thu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com> 419 420 * call.c (build_new_function_call): Remove unused 'obj' parm. 421 * cp-tree.h, typeck.c: Adjust. 422 423 * init.c (build_new): Make the cleanup last longer. 424 (expand_vec_init): Call do_pending_stack_adjust. 425 426Wed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com> 427 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. 431 432 * init.c (build_new): Handle vec delete in EH cleanup. 433 434Wed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 435 436 * call.c (build_method_call): Call complete_type before checking 437 for destructor. 438 439Sun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com) 440 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. 444 445Wed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com> 446 447 * init.c (build_new): Handle freeing allocated memory when the 448 constructor throws. 449 450 * call.c (build_new_method_call): Fix flags arg. 451 452 * pt.c (do_type_instantiation): Don't try to instantiate 453 member templates. 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. 458 459Tue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com> 460 461 * except.c (expand_end_catch_block): Lose call to __sjpopnthrow. 462 463Tue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com> 464 465 * except.c (do_pop_exception): Return a value. 466 467Mon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com> 468 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, 473 not just the args. 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. 478 479Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 480 481 * pt.c (tsubst_copy): Handle explicit template arguments in 482 function calls. 483 * typeck.c (build_x_function_call): Likewise. 484 * decl2.c (build_expr_from_tree): Lookup function name if it 485 hasn't been done. 486 487 * pt.c (tsubst): Instantiate template functions properly when 488 template parameter does not appear in function arguments and return 489 type. 490 (comp_template_args): Handle member templates required by tsubst. 491 492Mon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com> 493 494 * decl.c (grokdeclarator): Tweak conditions for pedwarn in 495 previous change. 496 497Mon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 498 499 * pt.c (coerce_template_parms): Tweak error message. 500 501 * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a 502 return type defaults to `int', even if there are storage-class 503 specifiers. 504 505Mon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com> 506 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. 521 522Sun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 523 524 * Make-lang.in (c++.distdir): Make inc subdirectory. 525 526Fri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com> 527 528 * decl2.c (finish_file): Put back some code. 529 530Thu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com> 531 532 * decl2.c (finish_file): Remove redundant code. 533 * method.c (emit_thunk): Don't let the backend defer generic thunks. 534 535Wed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com> 536 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. 541 542Tue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com> 543 544 * lex.c (MULTIBYTE_CHARS): #undef if cross compiling. 545 (real_yylex): Record wide strings using target endianness, not host. 546 5471997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com> 548 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. 554 555Sun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com> 556 557 * class.c (build_vbase_path): Propagate the result type properly. 558 5591997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com> 560 561 * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace 562 remaining use of saved_throw_type with a call to get_eh_type. 563 5641997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com> 565 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. 571 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. 576 577 * except.c (push_eh_info): Pass the number of fields - 1 down, not 578 the exact number of fields. 579 580Fri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com> 581 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}. 588 Lose empty_fndecl. 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 594 sooner. 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 598 when we rethrow. 599 (expand_builtin_throw): Don't refer to empty_fndecl. 600 601Thu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com> 602 603 * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl. 604 6051997-10-22 Brendan Kehoe <brendan@cygnus.com> 606 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 612 error messages. 613 614Mon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com> 615 616 * except.c (expand_exception_blocks): Call do_pending_stack_adjust. 617 (expand_end_catch_block): Likewise. 618 (expand_end_eh_spec): Likewise. 619 620Mon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net> 621 622 * decl.c (duplicate_decls): Handle template specializations 623 correctly. 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. 630 631Mon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com> 632 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. 637 638Sun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 639 640 * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR. 641 (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR. 642 643 * decl.c (init_decl_processing): Call using_eh_for_cleanups. 644 645 * Make-lang.in (g++): Include prefix.o. 646 647Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com> 648 649 * pt.c (determine_explicit_specialization): Initialize "dummy" 650 to keep Purify quiet. 651 652Thu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com> 653 654 * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here. 655 (build_overload_int): Not here. 656 657Wed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com> 658 659 * class.c (build_type_pathname): Remove. 660 (prepare_fresh_vtable): Fix problem with complex MI vtable names. 661 6621997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com> 663 664 * parse.y (unary_expr): Give a pedwarn if someone tries to use the 665 &&label GNU extension. 666 667Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net> 668 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 672 for constructors. 673 674Tue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com> 675 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. 681 682Mon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 683 684 * decl.c (store_return_init): Allow classes with explicit ctors to 685 be used with the named return values extension. 686 687Fri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com> 688 689 * pt.c (instantiate_decl): Fix previous change. 690 691Thu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com> 692 693 * pt.c (tsubst): Fix thinko. 694 (instantiate_decl): Really use the original template. 695 696 * call.c (build_new_method_call): Use simple constructor_name for 697 error messages. 698 699Wed Oct 8 22:44:42 1997 Jeffrey A Law <law@cygnus.com> 700 701 * method.c (build_underscore_int): Don't use ANSI specific 702 features. 703 704Wed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com> 705 706 * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN 707 for our key method; it might have been inlined by -O3. 708 709Tue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net> 710 711 * decl.c (make_typename_type): Do not try to call lookup_field for 712 non-aggregate types. 713 714Tue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com> 715 716 * typeck.c (build_reinterpret_cast): Tweak. 717 718Tue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 719 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. 723 724Tue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 725 726 * typeck.c (c_expand_return): Don't warn about returning a 727 reference-type variable as a reference. 728 729Tue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com> 730 731 * method.c (build_static_name): Fix typo. 732 7331997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com> 734 735 * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on 736 OLDDECL before we try to do DECL_USE_TEMPLATE. 737 738Tue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com> 739 740 * decl.c (duplicate_decls): Don't warn about template instances. 741 742 * typeck.c (mark_addressable): Lose ancient code that unsets 743 DECL_EXTERNAL. 744 745 * pt.c (do_decl_instantiation): Lose support for instantiating 746 non-templates. 747 748 * call.c (build_new_function_call): Fix handling of null explicit 749 template args. 750 (build_new_method_call): Likewise. 751 752Mon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net> 753 754 * method.c (build_underscore_int): Fix typo. 755 7561997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com> 757 758 * tree.c (print_lang_statistics): #if 0 call to 759 print_inline_obstack_statistics until its definition is checked in. 760 761Mon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com> 762 763 * decl2.c (finish_file): Move dump_tree_statistics to end. 764 765 * pt.c (instantiate_decl): Look for the original template. 766 (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations 767 of member templates. 768 769Wed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com> 770 771 * Makefile.in (g++FAQ.*): New rules. 772 (CONFLICTS): Update. 773 * g++FAQ.texi: Moved from libg++. 774 775 * parse.y (PFUNCNAME): Only specify the type once. 776 7771997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com> 778 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. 781 782Tue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com> 783 784 * method.c (build_decl_overload_real): Reformat. 785 786Tue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com> 787 788 * method.c (synthesize_method): If at_eof, determine our linkage. 789 7901997-09-29 Paul Eggert <eggert@twinsun.com> 791 792 * lex.c (real_yylex): Treat `$' just like `_', except issue a 793 diagnostic if !dollars_in_ident or if pedantic. 794 795 * lang-specs.h (@c++): -ansi no longer implies -$. 796 797 * decl2.c (lang_decode_option): 798 -traditional and -ansi now do not mess with 799 dollars_in_ident. 800 801Mon Sep 29 19:57:51 1997 H.J. Lu <hjl@gnu.ai.mit.edu> 802 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 808 ../insn-codes.h. 809 810 * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping. 811 812 * expr.c (cplus_expand_expr): Make it static. 813 814 * decl2.c, init.c, typeck.c: Include "expr.h". 815 (expand_expr): Use proper values when calling the function. 816 817Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 818 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. 824 825Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 826 827 * decl.c (cp_finish_decl): Allow expand_aggr_init to set 828 TREE_USED, reset value based on already_used. 829 830 * init.c (expand_member_init): Revert change. 831 832Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com> 833 834 * cp-tree.h, decl.c, decl2.c, pt.c: 835 Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public. 836 837 * decl2.c (lang_decode_option): Add missing ;. 838 839Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com> 840 841 * friend.c (do_friend): Disable injection for all template-derived 842 decls. 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. 849 850Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net> 851 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. 862 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. 866 867 * cp-tree.def (TEMPLATE_ID_EXPR): New tree code. 868 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. 880 881 * decl.c (duplicate_decls): Add smarts for explicit 882 specializations. 883 (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function 884 specializations. 885 (grokfndecl): Call check_explicit_specialization. 886 887 * decl2.c (lang_decode_option): Handle -fname-mangling-version. 888 (build_expr_from_tree): Handle TEMPLATE_ID_EXPR. 889 (check_classfn): Handle specializations. 890 891 * error.c (dump_function_name): Print specialization arguments. 892 893 * friend.c (do_friend): Don't call pushdecl for template 894 instantiations. 895 896 * init.c (build_member_call): Handle TEMPLATE_ID_EXPR. 897 898 * lang-options.h: Add -fname-mangling-version, -fguiding-decls, 899 and -fno-guiding-decls. 900 901 * lex.c (identifier_type): Return PFUNCNAME for template function 902 names. 903 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 909 parameters. 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. 913 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. 928 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. 937 (tsubst): Likewise. 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. 945 946 * spew.c (yylex): Handle PFUNCNAME. 947 948 * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR. 949 (really_overloaded_fn): Likewise. 950 (get_first_fn): Handle function templates. 951 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 957 as used. 958 9591997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 960 961 * decl.c (init_decl_processing): Declare __builtin_constant_p as 962 accepting any kind of type, not only int. 963 964Fri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com> 965 966 * search.c (get_matching_virtual): Notice virtual bases when sorrying 967 about covariant returns. 968 969 * parse.y (member_init): Also imply typename here. Remove ancient 970 extension for initializing base members. 971 972Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com> 973 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. 983 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. 988 9891997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com> 990 991 * decl.c (start_function): Up warning of no return type to be a 992 pedwarn. 993 994Mon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 995 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. 999 1000Sat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com> 1001 1002 * call.c (build_over_call): Do require_complete_type before 1003 build_cplus_new. 1004 1005Thu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com> 1006 1007 * search.c (lookup_field): Call complete_type in all cases. 1008 1009 * decl.c (finish_function): Just warn about flowing off the end. 1010 1011Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1012 1013 * decl.c (grokparms): Don't bash a permanent list node if we're 1014 in a function. 1015 10161997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com> 1017 1018 * Makefile.in (CONFLICTS): Fix s/r conflict count to 18. 1019 1020Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1021 1022 * call.c (build_new_op): Give better error for syntactically 1023 correct, but semantically invalid, use of undeclared template. 1024 1025 * call.c (compare_qual): Handle pmfs. 1026 1027 * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn 1028 after the exception spec. 1029 1030Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1031 1032 * call.c (null_ptr_cst_p): Integer type, not integral type. 1033 1034 * call.c (joust): Disable warnings until they can be moved to the 1035 right place. 1036 1037Fri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com> 1038 1039 * Makefile.in, config-lang.in: Convert to autoconf. 1040 1041Thu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com> 1042 1043 * decl.c (lookup_name_real): Add implicit 'typename' to types from 1044 base classes. 1045 1046 * pt.c (most_specialized_class): Fix typo. 1047 (tsubst): Move constant folding to TREE_VEC case. 1048 1049Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net> 1050 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. 1054 1055 * pt.c (uses_template_parms): Check the values of an enumeration 1056 type to make sure they don't depend on template parms. 1057 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. 1061 1062 * pt.c (coerce_template_parms): Avoid looking at the 1063 TYPE_LANG_DECL portion of a typename type, since there won't be 1064 one. 1065 (tsubst): Do constant folding as necessary to make sure that 1066 arguments passed to lookup_template_class really are constants. 1067 1068Wed Sep 10 16:39:26 1997 Jim Wilson <wilson@cygnus.com> 1069 1070 * Make-lang.in (LN, LN_S): New macros, use where appropriate. 1071 1072Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com> 1073 1074 * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO. 1075 * decl2.c (finish_file): Only register exception tables if we 1076 need to. 1077 1078 * decl.c (init_decl_processing): Add __builtin_[fs]p. 1079 1080Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com> 1081 1082 * pt.c (unify): Just return 0 for a TYPENAME_TYPE. 1083 1084Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net> 1085 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. 1090 10911997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com> 1092 1093 * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to 1094 c-typeck.c. 1095 1096Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1097 1098 * except.c (expand_throw): Call build_delete for all 1099 exception types, not just objects with destructors. 1100 1101Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net> 1102 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. 1108 1109Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net> 1110 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 1118 appropriate. 1119 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. 1124 1125 * error.c (dump_expr): Obtain the correct declaration for a 1126 TEMPLATE_CONST_PARM. 1127 1128 * call.c (add_template_conv_candidate): New function. 1129 (build_object_call): Handle member templates, as done in the other 1130 build_ functions. 1131 1132Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net> 1133 1134 * decl.c (replace_defag): Undo previous change. 1135 * lex.c (do_pending_defargs): Deal with member templates. 1136 1137 * pt.c (is_member_template): Avoid crashing when passed a 1138 non-function argument. 1139 1140Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com> 1141 1142 * class.c (grow_method): Remove check for redeclaration. 1143 1144Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net> 1145 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. 1156 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. 1163 1164 * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of 1165 is_member_template. 1166 1167 * pt.c (unify): Undo changes to allow multiple levels of template 1168 parameters. 1169 (type_unification): Likewise. 1170 (fn_type_unification): Likewise. 1171 (get_class_bindings): Likewise. 1172 * cp-tree.h (Likewise). 1173 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. 1177 1178 * error.c (dump_expr): Deal with template constant parameters in 1179 member templates correctly. 1180 1181 * pt.c (is_member_template): Deal with class specializations 1182 correctly. 1183 (tsubst): Handle "partial instantiation" of member templates 1184 correctly. 1185 1186Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> 1187 1188 * pt.c (type_unification): Change calling sequence to allow for 1189 multiple levels of template parameters. 1190 (tsubst_expr): Likewise. 1191 (tsubst): Likewise. 1192 (tsubst_copy): Likewise. 1193 (instantiate_template): Likewise. 1194 (unify): 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. 1202 1203 * call.c (add_template_candidate): Add additional parameter for 1204 the function return type. Call fn_type_unification istead of 1205 type_unification. 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. 1210 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 1214 functions. 1215 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. 1226 1227 * decl.c (decls_match): Handle multiple levels of template 1228 parameters. 1229 (pushdecl): Handle template type params just like other type 1230 declarations. 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. 1235 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. 1241 1242 * error.c (dump_decl): Handle multiple levels of template 1243 parameters. 1244 (dump_function_decl): Update to handle function templates. 1245 1246 * lex.c (do_pending_inlines): Set up template parameter context 1247 for member templates. 1248 (process_next_inline): Likewise. 1249 1250 * method.c (build_overload_identifier): Adjust for multiple levels 1251 of template parameters. 1252 1253 * parse.y (fn.def2): Add member templates. 1254 (component_decl_1): Likewise. 1255 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 1263 templates. 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. 1271 1272 * search.c (lookup_fnfields_1): Handle member template conversion 1273 operators. 1274 1275 * tree.c (cp_tree_equal): Check the levels, as well as the 1276 indices, of TEMPLATE_CONST_PARMs. 1277 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 1281 functions. 1282 1283Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1284 1285 * typeck.c (c_expand_return): Always convert_for_initialization 1286 before checking for returning a pointer to local. 1287 1288 * pt.c (type_unification): If strict and the function parm doesn't 1289 use template parms, just compare types. 1290 1291Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de> 1292 1293 * method.c (build_overloaded_value): Replace direct call 1294 to the floating point emulator with REAL_VALUE_TO_DECIMAL macro. 1295 1296Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com> 1297 1298 * typeck.c (convert_arguments): Don't arbitrarily choose the first 1299 of a set of overloaded functions. 1300 1301Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1302 1303 * lex.c (real_yylex): Don't elide __FUNCTION__. 1304 1305 * method.c (build_overload_value): Add in_template parm. 1306 (build_overload_int): Likewise. 1307 (build_overload_identifier): Pass it. 1308 1309 * decl.c (duplicate_decls): Don't bash a previous template 1310 definition with a redeclaration. 1311 1312 * pt.c (unify): float doesn't match double. 1313 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 1317 aggr template_type. 1318 1319Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com> 1320 1321 * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings. 1322 1323Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru> 1324 1325 * call.c (add_builtin_candidate): Add missing TREE_TYPE. 1326 (compare_ics): Likewise. 1327 1328Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com> 1329 1330 * call.c (joust): Warn about choosing one conversion op over 1331 another because of 'this' argument when the other return type is 1332 better. 1333 (source_type): New fn. 1334 1335 * call.c (build_new_op): Strip leading REF_BIND from first operand 1336 to builtin operator. 1337 1338 * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we 1339 use its RTL. 1340 1341Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1342 1343 * call.c (null_ptr_cst_p): Remove support for (void*)0. 1344 1345Wed Aug 27 02:03:34 1997 Jeffrey A Law <law@cygnus.com> 1346 1347 * typeck.c (expand_target_expr): Make definition match declaration. 1348 1349 * class.c (get_basefndecls): Make definition match declaration. 1350 1351Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com> 1352 1353 * input.c (sub_getch): Eventually give up and release the input file. 1354 1355 * decl.c (cp_finish_decl): If #p i/i, put inline statics in the 1356 right place. 1357 1358 * call.c (joust): Tweak message. 1359 1360Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net> 1361 1362 * error.c (type_as_string): Put const/volatile on template type 1363 parameters where appropriate. 1364 1365Sat Aug 23 17:47:22 1997 Jeffrey A Law <law@cygnus.com> 1366 1367 * call.c (strictly_better): Make arguments unsigned ints. 1368 1369Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com> 1370 1371 * lex.c (real_yylex): Refer to __complex instead of complex. 1372 1373Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk> 1374 1375 * lex.c (real_yylex): Don't use getc directly. 1376 1377Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1378 1379 * call.c (is_subseq): Don't try to be clever. 1380 1381Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 1382 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 1388 prototyping. 1389 1390Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1391 1392 * decl2.c (mark_vtable_entries): Instead of replacing pure 1393 virtuals with a reference to __pure_virtual, copy the decl and 1394 change the RTL. 1395 1396Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com> 1397 1398 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness. 1399 1400 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com. 1401 1402 * pt.c (instantiate_class_template): Call repo_template_used 1403 before finish_prevtable_vardecl. 1404 1405 * call.c (is_subseq): New fn. 1406 (compare_ics): Use it. 1407 1408 * repo.c (finish_repo): Don't crash on no args. 1409 1410 * parse.y (named_complex_class_head_sans_basetype): Handle 1411 explicit global scope. 1412 * decl2.c (handle_class_head): New fn. 1413 1414 * pt.c (unify): Add CONST_DECL case. 1415 1416Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1417 1418 * rtti.c (permanent_obstack): Fix decl to not be a pointer. 1419 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 1424 tourney. 1425 (build_new_function_call): Likewise. 1426 (build_object_call): Likewise. 1427 (build_new_op): Likewise. 1428 (build_new_method_call): Likewise. 1429 1430Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1431 1432 * error.c (dump_decl): Don't bother processing a function with no 1433 DECL_LANG_SPECIFIC. 1434 1435 * method.c (emit_thunk): Call init_function_start in the macro case. 1436 1437Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 1438 1439 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not 1440 defined and used to set flag_vtable_thunks. 1441 1442Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1443 1444 * parse.y: Don't clear the inlines from their obstack until they've 1445 all been processed. 1446 1447 * decl.c (duplicate_decls): Don't complain about exception 1448 specification mismatch if flag_exceptions is off. 1449 1450Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com> 1451 1452 * Make-lang.in (c++.distclean): Remove g++.c on make distclean. 1453 1454Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com> 1455 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. 1459 1460 * decl.c, g++spec.c, lex.c, method.c, repo.c: 1461 Include "config.h" first, as per autoconf manual. 1462 1463Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com> 1464 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. 1469 1470 * decl2.c (lang_decode_option): Handle -fhandle-exceptions. 1471 * lang-options.h: Add -fhandle-exceptions. 1472 1473 * class.c (build_vtable): Vtables are artificial. 1474 (prepare_fresh_vtable): Likewise. 1475 1476Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 1477 1478 * cvt.c (ocp_convert): After converting to the target type, set 1479 LOOKUP_NO_CONVERSION. 1480 1481 * call.c (joust): Warn about potentially confusing promotion rules 1482 with -Wsign-promo. 1483 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo. 1484 1485Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com> 1486 1487 * exception.cc: Declare __terminate_func with noreturn attribute. 1488 1489Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com> 1490 1491 * parse.y: Break out eat_saved_input, handle errors. 1492 (function_try_block): Use compstmt instead of compstmt_or_error. 1493 1494Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com> 1495 1496 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE. 1497 1498Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1499 1500 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for 1501 existence of cc1plus check whether $(LANGUAGES) contains C++. 1502 1503Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1504 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 1508 union. 1509 1510Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1511 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. 1516 1517Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 1518 1519 * call.c (build_over_call): tsubst all default parms from templates. 1520 1521Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1522 1523 * decl.c (struct cp_function): Add static_labelno. 1524 (push_cp_function_context): Save it. 1525 (pop_cp_function_context): Restore it. 1526 1527Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1528 1529 * typeck.c (build_component_ref_1): Convert from reference. 1530 1531Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1532 1533 * parse.y (current_declspecs, prefix_attributes): Initialize to 1534 NULL_TREE. 1535 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. 1539 1540Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com> 1541 1542 * pt.c (uses_template_parms): Handle template first-parse codes. 1543 1544 * decl.c (cp_finish_decl): Only warn about user-defined statics. 1545 1546Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1547 1548 * pt.c (unify): Handle BOOLEAN_TYPE. 1549 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. 1553 1554Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com> 1555 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. 1564 1565Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1566 1567 * class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy 1568 before "all member functions in class [] are private". 1569 1570Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1571 1572 * lex.c (do_scoped_id): convert_from_reference. 1573 * init.c (build_offset_ref): Likewise. 1574 1575Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com> 1576 1577 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list. 1578 1579Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com> 1580 1581 * typeck.c (get_member_function_from_ptrfunc): Promote index 1582 before saving it. 1583 1584Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com> 1585 1586 * tree.c (layout_basetypes): Move non-virtual destructor warning. 1587 * decl.c (xref_basetypes): Remove non-virtual destructor warning. 1588 1589Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1590 1591 * decl.c (grokdeclarator): Call add_defarg_fn for the function 1592 type, too. 1593 * lex.c (add_defarg_fn): Adjust. 1594 (do_pending_defargs): Adjust. Don't skip the first parm. 1595 1596Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com> 1597 1598 * decl.c (build_enumerator): Global enumerators are also readonly. 1599 1600 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast. 1601 (build_dynamic_cast): Call it and convert_from_reference. 1602 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 1606 have defargs. 1607 * decl.c (grokfndecl): Call add_defarg_fn. 1608 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. 1628 1629Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1630 1631 * call.c (implicit_conversion): If nothing else works, try binding 1632 an rvalue to a reference. 1633 1634Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com> 1635 1636 * decl.c (init_decl_processing): Fix Jun 30 patch -- move 1637 ifndef for Cygwin32 to include SIGSEGV. 1638 1639Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1640 1641 * class.c (finish_struct_1): Only complain about pointers without 1642 copy stuff if there are any constructors. 1643 1644 * rtti.c (build_dynamic_cast): Call complete_type on the types. 1645 1646 * decl.c (grokfndecl): If the function we chose doesn't actually 1647 match, die. 1648 1649 * decl2.c (grokclassfn): Don't specify 'const int' for the 1650 artificial destructor parm. 1651 1652 * pt.c (type_unification): If we are called recursively, nothing 1653 decays. 1654 1655Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com> 1656 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 1661 tools. 1662 1663Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com> 1664 1665 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data. 1666 1667Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com> 1668 1669 * typeck2.c (store_init_value): Always return the value if our 1670 type needs constructing. 1671 1672 * method.c (hack_identifier): Convert class statics from 1673 reference, too. 1674 1675Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com> 1676 1677 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency. 1678 1679Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com> 1680 1681 * typeck.c (c_expand_return): Make sure we clean up temporaries at 1682 the end of return x; 1683 1684Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1685 1686 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER. 1687 1688Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com> 1689 1690 * except.c (expand_builtin_throw): Add support 1691 -fno-sjlj-exceptions -fPIC exception handling on the SPARC. 1692 1693Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com> 1694 1695 * repo.c (extract_string): Null-terminate. 1696 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 1700 for partial specs. 1701 1702 * call.c (compare_ics): Really fix 'this' conversions. 1703 1704 * pt.c (do_decl_instantiation): Don't crash on explicit inst of 1705 non-template fn. 1706 1707 * pt.c (push_template_decl): Complain about mismatch in # of 1708 template parms between a class template and a member template. 1709 1710Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com> 1711 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 1716 backend. 1717 1718Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1719 1720 * method.c (synthesize_method): Remove July 30 change to never set 1721 DECL_INLINE if at_eof. 1722 1723Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com> 1724 1725 * xref.c (GNU_xref_member): Ensure that the node has a 1726 decl_lang_specific part before checking DECL_FRIEND_P. 1727 1728Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1729 1730 * pt.c (instantiate_class_template): Diagnose non-class types used 1731 as bases. 1732 1733Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1734 1735 * typeck.c (build_conditional_expr): Use convert_for_initialization 1736 instead of convert_and_check. 1737 1738Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1739 1740 * parse.y (typespec): Don't pedwarn for typeof. 1741 1742Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com> 1743 1744 * repo.c (finish_repo): Only check changes if we would write a 1745 repo file. 1746 1747 * call.c (compare_ics): Fix handling of 'this' conversions. 1748 1749 * pt.c (do_decl_instantiation): Support static data too. Rename 1750 from do_function_instantiation. 1751 * cp-tree.h: Adjust. 1752 * parse.y: Adjust. 1753 1754 * repo.c (extract_string): New fn. 1755 (get_base_filename): Use it. 1756 (init_repo): Compare old args with current args. 1757 1758Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com> 1759 1760 * Makefile.in, Make-lang.in: Protect C-ls with a comment 1761 character, idea from Paul Eggert <eggert@twinsun.com>. 1762 1763Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com> 1764 1765 * typeck.c (c_expand_return): Be more persistent in looking for 1766 returned temps. 1767 1768 * cvt.c (build_up_reference): Use NOP_EXPR for switching from 1769 pointer to reference. 1770 1771 * class.c (build_vbase_path): Don't do anything if PATH has no steps. 1772 1773Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1774 1775 * init.c (build_member_call, build_offset_ref): 1776 Use do_scoped_id instead of do_identifier. 1777 1778 * cvt.c (convert): Remove bogosity. 1779 1780Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1781 1782 * cvt.c (build_up_reference): Do checks of ARGTYPE and 1783 TARGET_TYPE before trying to use get_binfo. 1784 1785Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com> 1786 1787 * cvt.c (build_up_reference): Call get_binfo to get access control. 1788 1789 * decl2.c (import_export_decl): If we don't support weaks, leave 1790 statics undefined. 1791 1792Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com> 1793 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. 1797 1798Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com> 1799 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. 1809 1810Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1811 1812 * search.c (push_class_decls): A name which ambiguously refers to 1813 several instantiations of the same template just refers to the 1814 template. 1815 1816Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com> 1817 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 1821 MAX_VAL). 1822 1823Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1824 1825 * typeck.c (build_component_ref): Only call mark_used on a decl. 1826 1827Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1828 1829 * typeck.c (build_c_cast): Make the check for a ptr to function 1830 more specific before possible default_conversion call. 1831 1832Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com> 1833 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 1836 doesn't like it. 1837 1838Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com> 1839 1840 * except.c (init_exception_processing): Mark terminate as not 1841 returning so that the optimizer can optimize better. 1842 1843Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com> 1844 1845 * cvt.c (convert): Don't do any extra work, if we can avoid it 1846 easily. 1847 1848Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com> 1849 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. 1853 1854Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com> 1855 1856 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled. 1857 Lose -traditional support. 1858 1859Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1860 1861 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype). 1862 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. 1866 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 1872 hashtable. 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. 1877 1878Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com> 1879 1880 * pt.c (instantiate_class_template): TYPE_VALUES for an enum 1881 doesn't refer to the CONST_DECLs. 1882 1883Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com> 1884 1885 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever 1886 is bigger. 1887 (expand_class_desc): Convert the last argument to a sizetype. 1888 1889Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1890 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 1904 types. 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 1911 COMPLEX_TYPE case. 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 1915 as a template parm. 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. 1924 1925Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com> 1926 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. 1929 1930Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com> 1931 1932 * pt.c (instantiate_class_template): Oops. 1933 1934Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1935 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. 1944 1945Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com> 1946 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. 1953 1954Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com> 1955 1956 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR. 1957 1958Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1959 1960 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL 1961 for THUNK_FNDECL before we switch to temporary allocation. 1962 1963Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com> 1964 1965 * call.c (build_new_op): Handle null arg2 for ?:. 1966 1967Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com> 1968 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. 1975 1976Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com> 1977 1978 * init.c (build_new): Fix nothrow handling. 1979 1980Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1981 1982 * init.c (emit_base_init): Don't warn about the initialization 1983 list for an artificial member. 1984 1985Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1986 1987 * expr.c (do_case): Handle !START case for the error msg. 1988 1989Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1990 1991 * decl2.c, lang-options.h: New option -Weffc++. 1992 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings 1993 to -Weffc++. 1994 1995 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS 1996 to MULTIPLE_SYMBOL_SPACES. 1997 1998Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com> 1999 2000 * method.c (emit_thunk, generic case): Set current_function_is_thunk. 2001 2002 * method.c (emit_thunk, macro case): Set up DECL_RESULT. 2003 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. 2009 2010Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com> 2011 2012 * init.c (init_decl_processing): Add support for setjmp/longjmp based 2013 exception handling. 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. 2019 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. 2030 2031 * Make-lang.in (exception.o): Ok to compile with -O now. 2032 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. 2035 2036 * decl2.c (lang_f_options): Remove support for short temps. 2037 * lang-options.h: Likewise. 2038 2039Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com> 2040 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. 2044 2045Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com> 2046 2047 * pt.c (process_template_parm): pedwarn about floating-point parms. 2048 2049 * decl.c (grokdeclarator): inline no longer implies static. 2050 2051 * spew.c (yylex): Always return the TYPE_DECL if we got a scope. 2052 2053Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com> 2054 2055 * class.c (check_for_override): The signature of an overriding 2056 function is not changed. 2057 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. 2061 2062Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com> 2063 2064 * call.c (build_user_type_conversion_1): Really ignore rvalue 2065 conversions when looking for a REFERENCE_TYPE. 2066 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. 2075 2076Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com> 2077 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 2083 is BAD. 2084 2085Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2086 2087 * inc/typeinfo (type_info::before): Add cv-qualifier-seq. 2088 * tinfo2.cc (type_info::before): Likewise. 2089 2090Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com> 2091 2092 * call.c (implicit_conversion): Oops. 2093 2094Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com> 2095 2096 * call.c (implicit_conversion): Try to find a reference conversion 2097 before binding a const reference to a temporary. 2098 2099Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com> 2100 2101 * exception.cc (__default_unexpected): Call terminate by default, 2102 so that if the user overrides terminate, the correct function will 2103 be called. 2104 2105Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com> 2106 2107 * parse.y (left_curly): Avoid trying to use any fields of 2108 error_mark_node, as there aren't any. 2109 2110Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com> 2111 2112 * lex.c (do_identifier): Avoid breaking on overloaded methods 2113 as default arguments. 2114 2115Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se> 2116 2117 * call.c (add_template_candidate): Initialize the variable "dummy". 2118 2119Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com> 2120 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. 2123 2124Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2125 2126 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl. 2127 (debug_binfo): Delete decl, not needed. 2128 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. 2134 2135 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars. 2136 2137 * friend.c (is_friend_type): Delete fn. 2138 * cp-tree.h (is_friend_type): Delete decl. 2139 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. 2144 2145 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding 2146 fwd decls. 2147 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls. 2148 2149 * decl.c (pushdecl_nonclass_level): #if 0, unused. 2150 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl. 2151 2152 * lex.c (reinit_lang_specific): #if 0, unused. 2153 * cp-tree.h (reinit_lang_specific): #if 0 decl. 2154 2155 * decl.c (revert_static_member_fn): Make static, adding fwd decl. 2156 * cp-tree.h (revert_static_member_fn): Delete decl. 2157 2158 * class.c (root_lang_context_p): Delete fn. 2159 * cp-tree.h (root_lang_context_p): Delete decl. 2160 2161 * decl.c (set_current_level_tags_transparency): #if 0, unused. 2162 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl. 2163 2164 * lex.c (set_vardecl_interface_info): Make static. 2165 * cp-tree.h (set_vardecl_interface_info): Delete decl. 2166 2167 * call.c (find_scoped_type): Make static. 2168 * cp-tree.h (find_scoped_type): Delete decl. 2169 2170 * search.c (convert_pointer_to_vbase): Make static. 2171 * cp-tree.h (convert_pointer_to_vbase): Delete decl. 2172 2173 * decl.c (const_ptr_type_node): Likewise. 2174 * cp-tree.h (const_ptr_type_node): Delete decl. 2175 2176 * typeck.c (common_base_type): Make static. 2177 * cp-tree.h (common_base_types): Delete erroneous decl. 2178 2179 * pt.c (classtype_mangled_name): Make static. 2180 * cp-tree.h (classtype_mangled_name): Delete decl. 2181 2182 * lex.c (check_newline): Make static. 2183 * cp-tree.h (check_newline): Delete decl. 2184 2185 * typeck.c (build_x_array_ref): Delete fn, same idea as 2186 grok_array_decl. 2187 * cp-tree.h (build_x_array_ref): Delete decl. 2188 2189 * lex.c (copy_decl_lang_specific): Delete fn, same idea as 2190 copy_lang_decl. 2191 * cp-tree.h (copy_decl_lang_specific): #if 0 decl. 2192 2193 * class.c (build_vtable_entry): Make static. 2194 * cp-tree.h (build_vtable_entry): Delete decl. 2195 2196 * class.c (build_vbase_pointer): Make static. 2197 * cp-tree.h (build_vbase_pointer): Delete decl. 2198 2199 * sig.c (build_sptr_ref): Add forward decl and make static. 2200 * cp-tree.h (build_sptr_ref): Delete decl. 2201 2202 * call.c (build_new_method_call): Add forward decl and make static. 2203 * cp-tree.h (build_new_method_call): Delete decl. 2204 2205 * call.c (build_object_call): Make static. 2206 * class.c (check_for_override, complete_type_p, mark_overriders): 2207 Likewise. 2208 * decl.c (cp_function_chain): Likewise. 2209 * lex.c (set_typedecl_interface_info, reinit_parse_for_block): 2210 Likewise. 2211 * pt.c (comp_template_args, get_class_bindings, push_tinst_level): 2212 Likewise. 2213 * tree.c (build_cplus_array_type_1): Likewise. 2214 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise. 2215 (comp_target_parms): Likewise. 2216 2217 * init.c (build_builtin_call): Make static. 2218 * cp-tree.h (build_builtin_call): Delete decl. 2219 2220 * typeck.c (binary_op_error): Delete decl. 2221 * cp-tree.h (binary_op_error): Likewise. 2222 2223Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2224 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. 2237 2238 * typeck.c (build_c_cast): Don't decl TYPE as register tree. 2239 2240Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 2241 2242 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values. 2243 2244 * pt.c (coerce_template_parms): Add new error message. 2245 2246 * method.c (build_overload_value): Implement name mangling for 2247 floating-point template arguments. 2248 2249 * method.c (build_overload_int, icat, dicat): Fix mangling of template 2250 arguments whose absolute value doesn't fit in a signed word. 2251 2252Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2253 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. 2259 2260Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com> 2261 2262 * call.c (build_scoped_method_call): Complain if the scope isn't a 2263 base. 2264 2265Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com> 2266 2267 * parse.y (left_curly): Don't crash on erroneous type. 2268 2269 * init.c (build_delete): Fix type of ref. 2270 2271Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com> 2272 2273 * search.c (get_vbase_1): Renamed from get_vbase. 2274 (get_vbase): Wrapper, now non-static. 2275 (convert_pointer_to_vbase): Now static. 2276 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. 2281 2282Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com> 2283 2284 * call.c (build_over_call): Only synthesize non-trivial copy ctors. 2285 2286 * typeck.c (build_c_cast): Lose other reference to flag. 2287 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. 2295 2296Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com> 2297 2298 * call.c (build_over_call): Call mark_used before trying to elide 2299 the call. 2300 2301 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL. 2302 2303Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2304 2305 * typeck.c (build_modify_expr): Always pedwarn for a cast to 2306 non-reference used as an lvalue. 2307 2308Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com> 2309 2310 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly. 2311 2312Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com> 2313 2314 * parse.y (handler): Fix template typo. 2315 2316Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com> 2317 2318 * error.c (lang_decl_name): New fn. 2319 * tree.c (lang_printable_name): Use it. 2320 2321Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com> 2322 2323 * g++spec.c: Include config.h so that we can catch bzero #defines 2324 from the config file. 2325 2326Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com> 2327 2328 * new1.cc: Include a declaration for malloc, to avoid warning, and 2329 avoid lossing on systems that require one (ones that define malloc 2330 in xm.h). 2331 2332Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 2333 2334 * decl2.c (max_tinst_depth): New variable. 2335 (lang_decode_option): Parse "-ftemplate-depth-NN" command line 2336 option. 2337 * pt.c (max_tinst_depth): Variable moved. 2338 * lang-options.h: Declare "-ftemplate-depth-NN" command line option 2339 as legal. 2340 2341Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com> 2342 2343 * decl.c (xref_basetypes): Allow a base class that depends on 2344 template parms to be incomplete. 2345 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. 2350 2351Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com> 2352 2353 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal. 2354 2355 * pt.c (tsubst): Put it back for -fno-ansi-overloading. 2356 2357Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com> 2358 2359 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that 2360 smashes together template and non-template decls of the same 2361 signature. 2362 2363Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com> 2364 2365 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE. 2366 2367Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2368 2369 * decl.c (duplicate_decls): Next route, pedwarn about different 2370 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER. 2371 2372Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2373 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. 2378 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 2403 OLDDECL parm decls. 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. 2412 2413Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com> 2414 2415 * pt.c (push_template_decl): Handle getting a typedef. 2416 2417 * call.c (build_new_function_call): Complain about void arg. 2418 2419Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2420 2421 * decl.c (duplicate_decls): Give pedwarn of different exceptions 2422 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER. 2423 2424Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com> 2425 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 2428 -g -O on SPARC. 2429 2430Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com> 2431 2432 * Make-lang.in: Add $(exeext) as necessary. 2433 2434Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com> 2435 2436 * parse.y (handler_seq): Must have at least one catch clause. 2437 2438Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com> 2439 2440 * call.c (add_builtin_candidate): Restore ?: hack. 2441 2442 * decl.c (grok_op_properties): More warnings. 2443 2444Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2445 2446 * decl.c (duplicate_decls): On second thought, do it as a pedwarn 2447 still but only if !DECL_IN_SYSTEM_HEADER (olddecl). 2448 2449 * decl.c (duplicate_decls): Scale back to a warning, and only do 2450 'em if -pedantic. 2451 2452Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com> 2453 2454 * decl.c (duplicate_decls): pedwarn mismatched exception 2455 specifications. 2456 2457Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com> 2458 2459 * call.c (build_new_method_call): Don't display the invisible 2460 argument for controlling virtual bases. 2461 2462Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com> 2463 2464 * new: Add nothrow new and delete, bad_alloc and throw specifications 2465 for delete. 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 2469 keywords. 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}. 2473 2474Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com> 2475 2476 * lex.c (cons_up_default_function): Fix return type of synth op=. 2477 2478 * init.c (emit_base_init): Add warnings for uninitialized members 2479 and bases. 2480 2481 * decl.c (xref_basetypes): Add warning for non-polymorphic type 2482 with destructor used as base type. 2483 2484 * decl.c (grok_op_properties): Add warning for op= returning void. 2485 * typeck.c (c_expand_return): Add warning for op= returning anything 2486 other than *this. 2487 2488 * class.c (finish_struct_1): Add warning for class with pointers 2489 but not copy ctor or copy op=. 2490 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. 2495 2496 * decl2.c (copy_assignment_arg_p): Disable old hack to support 2497 Booch components. 2498 2499Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com> 2500 2501 * cvt.c (cp_convert): pedwarn enum to pointer conversions. 2502 2503Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com> 2504 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. 2512 2513Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2514 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. 2518 2519Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com> 2520 2521 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for 2522 the arguments. 2523 2524 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require 2525 current_template_parms. 2526 2527Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com> 2528 2529 * search.c (lookup_field): Don't return a function, check want_type. 2530 2531Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2532 2533 * init.c (build_new): Make sure PLACEMENT has a type. 2534 2535Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com> 2536 2537 * init.c (build_new): Support new (nothrow). 2538 2539Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com> 2540 2541 * pt.c (instantiate_decl): Also do push_to_top_level before setting 2542 up DECL_INITIAL. 2543 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. 2547 2548Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2549 2550 * search.c (lookup_field): Make sure we have an 2551 IDENTIFIER_CLASS_VALUE before we try to return it. 2552 2553Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2554 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 2571 and ORIG_OP2. 2572 (build_ptrmemfunc): Delete unused vars U and NINDEX. 2573 * typeck2.c (build_functional_cast): Delete unused var BINFO. 2574 2575Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com> 2576 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 2580 the correct order. 2581 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. 2586 2587 * method.c (build_overload_value): Handle getting a 2588 TEMPLATE_CONST_PARM for a pointer. 2589 2590Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com> 2591 2592 * init.c (expand_member_init): Don't give 'not a base' error for 2593 templates. 2594 2595 * pt.c (instantiate_decl): Call import_export_decl later. 2596 2597 * pt.c (instantiate_class_template): Return a value. 2598 2599 * parse.y (extension): New rule for __extension__. 2600 (extdef, unary_expr, decl, component_decl): Use it. 2601 2602Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com> 2603 2604 * class.c (base_binfo): Remove unused base_has_virtual member. 2605 (finish_base_struct): Likewise. 2606 (finish_struct_1): Likewise. 2607 2608 2609 2610Copyright (C) 1997 Free Software Foundation, Inc. 2611 2612Copying and distribution of this file, with or without modification, 2613are permitted in any medium without royalty provided the copyright 2614notice and this notice are preserved. 2615