1169689SkanMon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2169689Skan 3169689Skan * call.c (add_builtin_candidate): Add default case in enumeration 4169689Skan switch. 5169689Skan (build_new_op): Likewise. 6169689Skan (convert_like): Likewise. 7169689Skan * cvt.c (build_expr_type_conversion): Likewise. 8169689Skan * tree.c (real_lvalue_p): Likewise. 9169689Skan (lvalue_p): Likewise. 10169689Skan (cp_tree_equal): Likewise. 11169689Skan * typeck.c (comptypes): Likewise. 12169689Skan (build_component_ref): Likewise. 13169689Skan (build_function_call_real): Likewise. 14169689Skan (build_binary_op_nodefault): Likewise. 15169689Skan (build_unary_op): Likewise. 16169689Skan (build_modify_expr): Likewise. 17169689Skan * typeck2.c (initializer_constant_valid_p): Likewise. 18169689Skan 19169689SkanSun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com> 20169689Skan 21169689Skan * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas. 22169689Skan 23169689SkanThu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net> 24169689Skan 25169689Skan * pt.c (coerce_template_parms): Make sure to digest_init if 26169689Skan possible. 27169689Skan 28169689Skan * decl.c (duplicate_decls): Make the newdecl virtual if the 29169689Skan olddecl was, just as is done with other attributes of olddecl. 30169689Skan 31169689SkanThu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com> 32169689Skan 33169689Skan * typeck.c (unary_complex_lvalue): Ignore op0 when taking the 34169689Skan address of an OFFSET_REF. 35169689Skan 36169689Skan * cp-tree.def: Add AGGR_INIT_EXPR. 37169689Skan * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with 38169689Skan AGGR_INIT_EXPR where appropriate. 39169689Skan * expr.c (cplus_expand_expr): Likewise. Simplify. 40169689Skan 41169689Skan * decl2.c (finish_file): Remove call to register_exception_table. 42169689Skan 43169689SkanWed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 44169689Skan 45169689Skan * pt.c (instantiate_class_template): Don't do injection when 46169689Skan processing_template_decl is true, as pollutes current_binding_level 47169689Skan for base classes. 48169689Skan 49169689SkanWed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de> 50169689Skan 51169689Skan * pt.c (maybe_fold_nontype_arg): Add prototype. 52169689Skan 53169689SkanTue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com> 54169689Skan 55169689Skan * tree.c (mapcar): Handle TRY_CATCH_EXPR et al. 56169689Skan * error.c (dump_expr): Likewise. 57169689Skan 58169689SkanMon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com> 59169689Skan 60169689Skan * typeck.c (build_function_call_real): Remove "inline called before 61169689Skan definition" pedwarn. 62169689Skan 63169689Skan * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg. 64169689Skan 65169689SkanSun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com> 66169689Skan 67169689Skan * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's. 68169689Skan 69169689Skan * pt.c (type_unification_real): Change __null to type void* with 70169689Skan a warning. 71169689Skan 72169689SkanSun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net> 73169689Skan 74169689Skan * call.c (implicit_conversion): Don't call 75169689Skan build_user_type_conversion_1 with a NULL expr, since it will 76169689Skan crash. 77169689Skan 78169689Skan * pt.c (unify): Don't try to unify array bounds if either array is 79169689Skan unbounded. 80169689Skan 81169689SkanFri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com> 82169689Skan 83169689Skan * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at): 84169689Skan Replace extern decls with casts. 85169689Skan 86169689Skan * decl.c (expand_start_early_try_stmts): Don't mess with a sequence. 87169689Skan Update last_parm_cleanup_insn. 88169689Skan (store_after_parms): Remove. 89169689Skan * cp-tree.h: Adjust. 90169689Skan 91169689SkanThu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com> 92169689Skan 93169689Skan * decl2.c (comdat_linkage): Also set DECL_COMDAT. 94169689Skan (finish_file): Check DECL_COMDAT instead of weak|one_only. 95169689Skan (import_export_vtable): Use make_decl_one_only instead of 96169689Skan comdat_linkage for win32 tweak. 97169689Skan (import_export_decl): Likewise. 98169689Skan * pt.c (mark_decl_instantiated): Likewise. 99169689Skan 100169689Skan * decl2.c (finish_file): Lose handling of templates in pending_statics. 101169689Skan 102169689SkanThu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com> 103169689Skan 104169689Skan * decl2.c (finish_file): Lose call to expand_builtin_throw. 105169689Skan * except.c (expand_builtin_throw): Remove. 106169689Skan * cp-tree.h: Remove ptr_ptr_type_node. 107169689Skan * decl.c: Likewise. 108169689Skan 109169689SkanThu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com> 110169689Skan 111169689Skan * decl.c (ptr_ptr_type_node): Define. 112169689Skan (init_decl_processing): Initialize it. 113169689Skan * cp-tree.h: Declare it. 114169689Skan * exception.cc (__cp_exception_info): Use __get_eh_info. 115169689Skan (__cp_push_exception): Likewise. 116169689Skan (__cp_pop_exception): Likewise. 117169689Skan 118169689Skan From Scott Snyder <snyder@d0sgif.fnal.gov>: 119169689Skan * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of 120169689Skan saved_pc. 121169689Skan (init_exception_processing): Removed saved_pc initialization. 122169689Skan 123169689SkanWed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com> 124169689Skan 125169689Skan * pt.c (instantiate_decl): Defer all templates but inline functions. 126169689Skan 127169689SkanMon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com> 128169689Skan 129169689Skan * init.c (expand_vec_init): Don't fold a list of parameters. 130169689Skan 131169689Skan * decl.c (copy_args_p): Handle copy elision for types with virtual 132169689Skan bases. 133169689Skan * call.c (build_over_call): Likewise. 134169689Skan 135169689SkanSun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net> 136169689Skan 137169689Skan * pt.c (lookup_template_function): Copy the template arguments, 138169689Skan not just the list containing them, to the permanent obstack. 139169689Skan 140169689SkanSun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com> 141169689Skan 142169689Skan * except.c (expand_start_catch_block): suspend_momentary for the 143169689Skan terminate handler. 144169689Skan 145169689Skan * error.c (dump_decl): Handle LOOKUP_EXPR. 146169689Skan 147169689SkanSun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net> 148169689Skan 149169689Skan * rtti.c (build_dynamic_cast): Copy the cast-to type to the 150169689Skan permanent obstack if we are processing a template decl. 151169689Skan * typeck.c (build_static_cast): Likewise. 152169689Skan (build_const_cast): Likewise. 153169689Skan (build_reinterpret_cast): Likewise. 154169689Skan 155169689Skan * pt.c (coerce_template_parms): Coerce some expressions, even 156169689Skan when processing_template_decl. 157169689Skan 158169689SkanSun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 159169689Skan 160169689Skan * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric 161169689Skan handling of pointer difference expressions. 162169689Skan 163169689Skan * typeck.c (comp_target_types): Comparison of function/method types 164169689Skan is independent of nptrs. 165169689Skan 166169689SkanSun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net> 167169689Skan 168169689Skan * pt.c (tsubst): Avoid creating pointer to reference and 169169689Skan reference to reference types. 170169689Skan 171169689SkanSat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com> 172169689Skan 173169689Skan * parse.y (do_id): New nonterminal. 174169689Skan (template_id): Use it. 175169689Skan 176169689SkanFri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com> 177169689Skan 178169689Skan * parse.y (template_id): do_identifier for PFUNCNAMEs, too. 179169689Skan * spew.c (yylex): Don't do_identifier here. 180169689Skan * decl2.c (build_expr_from_tree): Revert last change. 181169689Skan 182169689Skan * decl2.c (build_expr_from_tree): Expand the name for a method call. 183169689Skan * parse.y (object_template_id): Don't try to take the DECL_NAME. 184169689Skan 185169689SkanWed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com> 186169689Skan 187169689Skan * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for 188169689Skan alloc_expr. 189169689Skan * call.c (build_op_delete_call): Adjust. 190169689Skan 191169689Skan * except.c (expand_end_catch_block): Lose rethrow region. 192169689Skan (expand_start_catch_block): Likewise. 193169689Skan (expand_end_catch_block): Don't expand_leftover_cleanups. 194169689Skan 195169689SkanWed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 196169689Skan 197169689Skan * pt.c (tsubst): Remove tree_cons call (places redundant info into 198169689Skan DECL_TEMPLATE_INSTANTIATION). 199169689Skan 200169689SkanWed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com> 201169689Skan 202169689Skan * tree.c (is_overloaded_fn): Handle getting a fn template. 203169689Skan (really_overloaded_fn): Likewise. 204169689Skan * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better. 205169689Skan * pt.c (check_explicit_specialization): Tweak. 206169689Skan (determine_explicit_specialization): Tweak. 207169689Skan 208169689Skan * tree.c, cp-tree.h (get_target_expr): New fn. 209169689Skan 210169689SkanWed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com> 211169689Skan 212169689Skan * pt.c (check_explicit_specialization): Fix misspelling in 213169689Skan diagnostic: `preceeded'. 214169689Skan * typeck.c (get_delta_difference): Fix misspelling in diagnostic: 215169689Skan `conversiona'. 216169689Skan 217169689Skan1997-12-02 Mark Mitchell <mmitchell@usa.net> 218169689Skan 219169689Skan * pt.c (determine_explicit_specialization): Avoid an internal 220169689Skan error for bad specializations. 221169689Skan 222169689Skan * method.c (build_overload_value): Handle SCOPE_REF. 223169689Skan 224169689SkanTue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com> 225169689Skan 226169689Skan * class.c (prepare_fresh_vtable): Enable even more complex MI 227169689Skan vtable names. 228169689Skan 229169689SkanTue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com> 230169689Skan 231169689Skan * exception.cc (__check_eh_spec): Optimize a bit. 232169689Skan 233169689Skan * exception.cc (__cp_pop_exception): Lose handler arg. 234169689Skan * except.c (do_pop_exception): Likewise. 235169689Skan (push_eh_cleanup): Let the cleanup mechanism supply the handler. 236169689Skan (expand_end_catch_block): Likewise. 237169689Skan 238169689SkanFri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com> 239169689Skan 240169689Skan * pt.c (check_explicit_specialization): Complain about using a 241169689Skan template-id for a non-specialization. 242169689Skan 243169689SkanFri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com> 244169689Skan 245169689Skan * repo.c: Prototype rindex only if needed. 246169689Skan * xref.c: Likewise. 247169689Skan 248169689SkanFri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 249169689Skan 250169689Skan * error.c (dump_decl): Handle TEMPLATE_ID_EXPR. 251169689Skan 252169689SkanThu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com> 253169689Skan 254169689Skan * typeck.c (build_const_cast): Handle references here instead of 255169689Skan handing off to convert_to_reference. 256169689Skan 257169689Skan * except.c: Lose Unexpected, SetTerminate, SetUnexpected, 258169689Skan TerminateFunctionCall. 259169689Skan (init_exception_processing): Likewise. Terminate et al are now 260169689Skan the fns, not ADDR_EXPRs. 261169689Skan (various): Lose redundant assemble_external calls. 262169689Skan (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/. 263169689Skan 264169689Skan * cp-tree.h (struct lang_decl_flags): Add comdat. 265169689Skan (DECL_COMDAT): New macro. 266169689Skan * decl.c (duplicate_decls): Propagate it. 267169689Skan (cp_finish_decl): Handle it. 268169689Skan * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs. 269169689Skan 270169689Skan * class.c: Remove static pending_hard_virtuals. 271169689Skan (add_virtual_function): Take pointers to pending_virtuals 272169689Skan and pending_hard_virtuals. 273169689Skan (finish_struct_1): Pass them. Declare pending_hard_virtuals. 274169689Skan 275169689SkanWed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com> 276169689Skan 277169689Skan * decl2.c (import_export_vtable): If we support one_only but not 278169689Skan weak symbols, mark instantiated template vtables one_only. 279169689Skan (import_export_decl): Likewise for tinfo functions. 280169689Skan (finish_vtable_vardecl): Also write out vtables from explicitly 281169689Skan instantiated template classes. 282169689Skan * pt.c (mark_class_instantiated): Revert last change. 283169689Skan 284169689Skan * except.c (expand_throw): Call mark_used on the destructor. 285169689Skan 286169689SkanWed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com) 287169689Skan 288169689Skan * lex.c (lang_init): Enable flag_exceptions by default if no 289169689Skan command line switch was specified. 290169689Skan 291169689Skan1997-11-26 Mark Mitchell <mmitchell@usa.net> 292169689Skan 293169689Skan * pt.c (unify): Handle `void' template parameters in 294169689Skan specializations. 295169689Skan 296169689SkanWed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com> 297169689Skan 298169689Skan * rtti.c (build_dynamic_cast): Handle template case here. 299169689Skan (build_dynamic_cast_1): Not here. 300169689Skan 301169689Skan * typeck2.c (digest_init): Make copies where appropriate. 302169689Skan 303169689Skan * decl2.c (delete_sanity): resolve_offset_ref. 304169689Skan 305169689Skan * except.c: Call terminate without caching so many bits. 306169689Skan 307169689Skan * except.c (expand_start_catch_block): Fix catching a reference 308169689Skan to pointer. 309169689Skan 310169689SkanTue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com> 311169689Skan 312169689Skan * init.c (build_new): Copy size to the saveable obstack. 313169689Skan 314169689Skan * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the 315169689Skan TRY_CATCH_EXPR for now. 316169689Skan 317169689SkanMon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com> 318169689Skan 319169689Skan * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL 320169689Skan has DECL_LANG_SPECIFIC. 321169689Skan 322169689Skan * exception.cc (struct cp_eh_info): Add handlers field. 323169689Skan (__cp_push_exception): Initialize it. 324169689Skan (__cp_pop_exception): Decrement it. Don't pop unless it's 0. 325169689Skan (__throw_bad_exception): Remove. 326169689Skan * except.c (call_eh_info): Add handlers field. 327169689Skan (get_eh_handlers): New fn. 328169689Skan (push_eh_cleanup): Increment handlers. 329169689Skan 330169689SkanFri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com> 331169689Skan 332169689Skan * except.c (expand_start_eh_spec): Use the try/catch code. 333169689Skan (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of 334169689Skan doing everything inline. 335169689Skan (init_exception_processing): throw_type_match now takes 336169689Skan const void pointers. 337169689Skan * exception.cc (__check_eh_spec): New fn. 338169689Skan * inc/exception: Neither terminate nor unexpected return. 339169689Skan * decl.c: Make const_ptr_type_node public. 340169689Skan * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly. 341169689Skan 342169689Skan * except.c (expand_start_catch_block): We only need the rethrow 343169689Skan region for non-sjlj exceptions. 344169689Skan (expand_end_catch_block): Likewise. Use outer_context_label_stack. 345169689Skan 346169689SkanThu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com> 347169689Skan 348169689Skan * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs. 349169689Skan (various.o): Likewise. 350169689Skan * inc/new: Add placement deletes. Add throw specs for default new. 351169689Skan * new.cc (set_new_handler): Move here from libgcc2. 352169689Skan * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler. 353169689Skan (new): Move from libgcc2. Throw bad_alloc. 354169689Skan * new2.cc: Move the rest of the op news and op deletes from libgcc2. 355169689Skan * decl.c (init_decl_processing): Update exception specs on new and 356169689Skan delete. 357169689Skan 358169689Skan * method.c (build_decl_overload_real): Don't mess with global 359169689Skan placement delete. 360169689Skan 361169689Skan * init.c (build_new): Check for null throw spec, not nothrow_t. 362169689Skan 363169689Skan * decl.c (duplicate_decls): Don't complain about different exceptions 364169689Skan from an internal declaration. 365169689Skan 366169689Skan * call.c (build_op_delete_call): Fix check for member fns again. 367169689Skan 368169689Skan * decl2.c (import_export_decl): Interface hackery affects 369169689Skan virtual synthesized methods. 370169689Skan 371169689SkanWed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com> 372169689Skan 373169689Skan * decl.c (start_decl): Don't just complain about a mismatched 374169689Skan scope, fix it. 375169689Skan 376169689Skan * decl.c (make_implicit_typename): Handle case where t is not 377169689Skan actually from context. 378169689Skan * tree.c (get_type_decl): Lose identifier case. 379169689Skan * spew.c (yylex): Lose useless call to identifier_typedecl_value. 380169689Skan * parse.y (nonnested_type): Just use lookup_name. 381169689Skan (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE. 382169689Skan 383169689SkanWed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com> 384169689Skan 385169689Skan * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case 386169689Skan T was built in C language context (for example, by 387169689Skan output_func_start_profiler). 388169689Skan 389169689SkanWed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com> 390169689Skan 391169689Skan * decl.c (make_implicit_typename): New fn. 392169689Skan (lookup_name_real): Use it. Use current_class_type as the context. 393169689Skan 394169689SkanMon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr> 395169689Skan 396169689Skan * pt.c (do_poplevel): Don't prohibit jumps into this contour. 397169689Skan 398169689SkanMon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com> 399169689Skan 400169689Skan * friend.c (do_friend): Warn about non-template friends in templates. 401169689Skan 402169689Skan * call.c (build_op_delete_call): Fix handling of inherited delete. 403169689Skan 404169689Skan * search.c (dfs_record_inheritance): Ignore template type parms. 405169689Skan 406169689SkanSat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com> 407169689Skan 408169689Skan * call.c (build_new_op): Fix copy error. 409169689Skan (build_op_new_call): New fn. 410169689Skan (build_op_delete_call): New fn. 411169689Skan * cp-tree.h: Declare them. 412169689Skan * init.c (build_new): Use them. Support placement delete. 413169689Skan (build_x_delete): Use build_op_delete_call. 414169689Skan (build_delete): Likewise. 415169689Skan * decl2.c (delete_sanity): Likewise. 416169689Skan (coerce_delete_type): Don't complain about placement delete. 417169689Skan 418169689SkanThu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com> 419169689Skan 420169689Skan * call.c (build_new_function_call): Remove unused 'obj' parm. 421169689Skan * cp-tree.h, typeck.c: Adjust. 422169689Skan 423169689Skan * init.c (build_new): Make the cleanup last longer. 424169689Skan (expand_vec_init): Call do_pending_stack_adjust. 425169689Skan 426169689SkanWed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com> 427169689Skan 428169689Skan * pt.c (do_type_instantiation): Fix typo. 429169689Skan (mark_class_instantiated): If we support one_only but not weak 430169689Skan symbols, don't mark this as known. 431169689Skan 432169689Skan * init.c (build_new): Handle vec delete in EH cleanup. 433169689Skan 434169689SkanWed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 435169689Skan 436169689Skan * call.c (build_method_call): Call complete_type before checking 437169689Skan for destructor. 438169689Skan 439169689SkanSun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com) 440169689Skan 441169689Skan * decl.c (add_block_current_level): Delete. 442169689Skan * init.c (build_vec_delete_1): Delete build_block and 443169689Skan add_block_current_level calls. 444169689Skan 445169689SkanWed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com> 446169689Skan 447169689Skan * init.c (build_new): Handle freeing allocated memory when the 448169689Skan constructor throws. 449169689Skan 450169689Skan * call.c (build_new_method_call): Fix flags arg. 451169689Skan 452169689Skan * pt.c (do_type_instantiation): Don't try to instantiate 453169689Skan member templates. 454169689Skan (mark_decl_instantiated): If we support one_only but not 455169689Skan weak symbols, mark this one_only. 456169689Skan * decl2.c (import_export_vtable): Don't defer handling of vtables 457169689Skan if MULTIPLE_SYMBOL_SPACES. 458169689Skan 459169689SkanTue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com> 460169689Skan 461169689Skan * except.c (expand_end_catch_block): Lose call to __sjpopnthrow. 462169689Skan 463169689SkanTue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com> 464169689Skan 465169689Skan * except.c (do_pop_exception): Return a value. 466169689Skan 467169689SkanMon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com> 468169689Skan 469169689Skan * call.c (build_new_method_call): Handle getting a 470169689Skan TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field 471169689Skan if we got template parms. 472169689Skan * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR, 473169689Skan not just the args. 474169689Skan * decl2.c (build_expr_from_tree): Tweak last change. 475169689Skan * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE. 476169689Skan (maybe_fold_nontype_arg): Split out from tsubst_copy. 477169689Skan * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR. 478169689Skan 479169689SkanMon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 480169689Skan 481169689Skan * pt.c (tsubst_copy): Handle explicit template arguments in 482169689Skan function calls. 483169689Skan * typeck.c (build_x_function_call): Likewise. 484169689Skan * decl2.c (build_expr_from_tree): Lookup function name if it 485169689Skan hasn't been done. 486169689Skan 487169689Skan * pt.c (tsubst): Instantiate template functions properly when 488169689Skan template parameter does not appear in function arguments and return 489169689Skan type. 490169689Skan (comp_template_args): Handle member templates required by tsubst. 491169689Skan 492169689SkanMon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com> 493169689Skan 494169689Skan * decl.c (grokdeclarator): Tweak conditions for pedwarn in 495169689Skan previous change. 496169689Skan 497169689SkanMon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 498169689Skan 499169689Skan * pt.c (coerce_template_parms): Tweak error message. 500169689Skan 501169689Skan * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a 502169689Skan return type defaults to `int', even if there are storage-class 503169689Skan specifiers. 504169689Skan 505169689SkanMon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com> 506169689Skan 507169689Skan Complete nested exception support. 508169689Skan * except.c (do_pop_exception): Split out... 509169689Skan (push_eh_cleanup): From here. Handle the EH region by hand. 510169689Skan (expand_start_catch_block): Add a new level for the catch parm. 511169689Skan Move the rethrow region outside the two cleanup regions. 512169689Skan Protect the initializer for the catch parm with terminate. 513169689Skan (expand_end_catch_block): Likewise. End the region for the eh_cleanup. 514169689Skan * exception.cc (__cp_pop_exception): Now takes two parms. Handle 515169689Skan popping off the middle of the stack. 516169689Skan * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR, 517169689Skan WITH_CLEANUP_EXPR, and UNSAVE_EXPR. 518169689Skan (build_cplus_new): Only wrap CALL_EXPRs. 519169689Skan * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around 520169689Skan the constructor call. 521169689Skan 522169689SkanSun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 523169689Skan 524169689Skan * Make-lang.in (c++.distdir): Make inc subdirectory. 525169689Skan 526169689SkanFri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com> 527169689Skan 528169689Skan * decl2.c (finish_file): Put back some code. 529169689Skan 530169689SkanThu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com> 531169689Skan 532169689Skan * decl2.c (finish_file): Remove redundant code. 533169689Skan * method.c (emit_thunk): Don't let the backend defer generic thunks. 534169689Skan 535169689SkanWed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com> 536169689Skan 537169689Skan * except.c (call_eh_info): Split out... 538169689Skan (push_eh_info): From here. 539169689Skan (expand_builtin_throw): Use it. 540169689Skan (expand_start_catch_block): Move region start back. 541169689Skan 542169689SkanTue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com> 543169689Skan 544169689Skan * lex.c (MULTIBYTE_CHARS): #undef if cross compiling. 545169689Skan (real_yylex): Record wide strings using target endianness, not host. 546169689Skan 547169689Skan1997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com> 548169689Skan 549169689Skan * repo.c (rindex): Add decl unconditionally. 550169689Skan (get_base_filename, open_repo_file): Don't cast rindex. 551169689Skan * xref.c (rindex): Add decl unconditionally. 552169689Skan (index): Remove unused decl. 553169689Skan (open_xref_file): Don't cast rindex. 554169689Skan 555169689SkanSun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com> 556169689Skan 557169689Skan * class.c (build_vbase_path): Propagate the result type properly. 558169689Skan 559169689Skan1997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com> 560169689Skan 561169689Skan * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace 562169689Skan remaining use of saved_throw_type with a call to get_eh_type. 563169689Skan 564169689Skan1997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com> 565169689Skan 566169689Skan * lex.c (FILE_NAME_NONDIRECTORY): Delete macro. 567169689Skan (file_name_nondirectory): New function, doing the same as the macro. 568169689Skan (set_typedecl_interface_info): Use it instead of the macro. 569169689Skan (check_newline): Likewise. 570169689Skan (handle_cp_pragma): Likewise. 571169689Skan 572169689Skan * repo.c (get_base_filename): Cast result of rindex to char*. 573169689Skan (open_repo_file): Likewise. 574169689Skan * xref.c (open_xref_file): Likewise. 575169689Skan * error.c (dump_char): Make its arg int, not char. 576169689Skan 577169689Skan * except.c (push_eh_info): Pass the number of fields - 1 down, not 578169689Skan the exact number of fields. 579169689Skan 580169689SkanFri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com> 581169689Skan 582169689Skan Support for nested exceptions. 583169689Skan * tinfo2.cc (__is_pointer): New fn. 584169689Skan * exception.cc (struct cp_eh_info): Define. 585169689Skan (__cp_exception_info, __uncatch_exception): New fns. 586169689Skan (__cp_push_exception, __cp_pop_exception): New fns. 587169689Skan * except.c: Lose saved_throw_{type,value,cleanup,in_catch}. 588169689Skan Lose empty_fndecl. 589169689Skan (init_exception_processing): Likewise. __eh_pc is now external. 590169689Skan (push_eh_info): New fn. 591169689Skan (get_eh_{info,value,type,caught}): New fns. 592169689Skan (push_eh_cleanup): Just call __cp_pop_exception. 593169689Skan (expand_start_catch_block): Use push_eh_info. Start the eh region 594169689Skan sooner. 595169689Skan (expand_end_eh_spec): Use push_eh_info. 596169689Skan (expand_throw): Call __cp_push_exception to set up the exception info. 597169689Skan Just pass the destructor or 0 as the cleanup. Call __uncatch_exception 598169689Skan when we rethrow. 599169689Skan (expand_builtin_throw): Don't refer to empty_fndecl. 600169689Skan 601169689SkanThu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com> 602169689Skan 603169689Skan * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl. 604169689Skan 605169689Skan1997-10-22 Brendan Kehoe <brendan@cygnus.com> 606169689Skan 607169689Skan * method.c (build_template_parm_names, build_decl_overload_real): 608169689Skan Add static to definitions. 609169689Skan * pt.c (add_to_template_args, note_template_header, 610169689Skan processing_explicit_specialization, type_unification_real): Likewise. 611169689Skan ({determine,check}_explicit_specialization): Use a single string for 612169689Skan error messages. 613169689Skan 614169689SkanMon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com> 615169689Skan 616169689Skan * except.c (expand_exception_blocks): Call do_pending_stack_adjust. 617169689Skan (expand_end_catch_block): Likewise. 618169689Skan (expand_end_eh_spec): Likewise. 619169689Skan 620169689SkanMon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net> 621169689Skan 622169689Skan * decl.c (duplicate_decls): Handle template specializations 623169689Skan correctly. 624169689Skan * error.c (dump_function_name): Fix printing of specializations of 625169689Skan member functions that are not member templates. 626169689Skan * cp-tree.h (processing_specialization): Make global. 627169689Skan * pt.c (processing_specialization): Likewise. 628169689Skan * lex.c (cons_up_default_function): Save and restore 629169689Skan processing_specialization to avoid confusion. 630169689Skan 631169689SkanMon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com> 632169689Skan 633169689Skan * decl.c (init_decl_processing): Give null_node unknown* type. 634169689Skan * typeck.c (comp_target_types): Handle UNKNOWN_TYPE. 635169689Skan (common_type): Likewise. 636169689Skan * error.c (args_as_string): Recognize null_node. 637169689Skan 638169689SkanSun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 639169689Skan 640169689Skan * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR. 641169689Skan (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR. 642169689Skan 643169689Skan * decl.c (init_decl_processing): Call using_eh_for_cleanups. 644169689Skan 645169689Skan * Make-lang.in (g++): Include prefix.o. 646169689Skan 647169689SkanThu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com> 648169689Skan 649169689Skan * pt.c (determine_explicit_specialization): Initialize "dummy" 650169689Skan to keep Purify quiet. 651169689Skan 652169689SkanThu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com> 653169689Skan 654169689Skan * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here. 655169689Skan (build_overload_int): Not here. 656169689Skan 657169689SkanWed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com> 658169689Skan 659169689Skan * class.c (build_type_pathname): Remove. 660169689Skan (prepare_fresh_vtable): Fix problem with complex MI vtable names. 661169689Skan 662169689Skan1997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com> 663169689Skan 664169689Skan * parse.y (unary_expr): Give a pedwarn if someone tries to use the 665169689Skan &&label GNU extension. 666169689Skan 667169689SkanTue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net> 668169689Skan 669169689Skan * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it, 670169689Skan so as to avoid incorrect manglings. 671169689Skan * method.c (build_decl_overload_real): Don't mangle return types 672169689Skan for constructors. 673169689Skan 674169689SkanTue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com> 675169689Skan 676169689Skan * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec, 677169689Skan scratch_tree_cons): Define as macros for now. 678169689Skan * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c, 679169689Skan lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c, 680169689Skan typeck2.c: Use them and the expression_obstack variants. 681169689Skan 682169689SkanMon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 683169689Skan 684169689Skan * decl.c (store_return_init): Allow classes with explicit ctors to 685169689Skan be used with the named return values extension. 686169689Skan 687169689SkanFri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com> 688169689Skan 689169689Skan * pt.c (instantiate_decl): Fix previous change. 690169689Skan 691169689SkanThu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com> 692169689Skan 693169689Skan * pt.c (tsubst): Fix thinko. 694169689Skan (instantiate_decl): Really use the original template. 695169689Skan 696169689Skan * call.c (build_new_method_call): Use simple constructor_name for 697169689Skan error messages. 698169689Skan 699169689SkanWed Oct 8 22:44:42 1997 Jeffrey A Law <law@cygnus.com> 700169689Skan 701169689Skan * method.c (build_underscore_int): Don't use ANSI specific 702169689Skan features. 703169689Skan 704169689SkanWed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com> 705169689Skan 706169689Skan * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN 707169689Skan for our key method; it might have been inlined by -O3. 708169689Skan 709169689SkanTue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net> 710169689Skan 711169689Skan * decl.c (make_typename_type): Do not try to call lookup_field for 712169689Skan non-aggregate types. 713169689Skan 714169689SkanTue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com> 715169689Skan 716169689Skan * typeck.c (build_reinterpret_cast): Tweak. 717169689Skan 718169689SkanTue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 719169689Skan 720169689Skan * typeck.c (build_reinterpret_cast): Converting a void pointer 721169689Skan to function pointer with a reinterpret_cast produces a warning 722169689Skan if -pedantic is issued. 723169689Skan 724169689SkanTue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 725169689Skan 726169689Skan * typeck.c (c_expand_return): Don't warn about returning a 727169689Skan reference-type variable as a reference. 728169689Skan 729169689SkanTue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com> 730169689Skan 731169689Skan * method.c (build_static_name): Fix typo. 732169689Skan 733169689Skan1997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com> 734169689Skan 735169689Skan * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on 736169689Skan OLDDECL before we try to do DECL_USE_TEMPLATE. 737169689Skan 738169689SkanTue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com> 739169689Skan 740169689Skan * decl.c (duplicate_decls): Don't warn about template instances. 741169689Skan 742169689Skan * typeck.c (mark_addressable): Lose ancient code that unsets 743169689Skan DECL_EXTERNAL. 744169689Skan 745169689Skan * pt.c (do_decl_instantiation): Lose support for instantiating 746169689Skan non-templates. 747169689Skan 748169689Skan * call.c (build_new_function_call): Fix handling of null explicit 749169689Skan template args. 750169689Skan (build_new_method_call): Likewise. 751169689Skan 752169689SkanMon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net> 753169689Skan 754169689Skan * method.c (build_underscore_int): Fix typo. 755169689Skan 756169689Skan1997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com> 757169689Skan 758169689Skan * tree.c (print_lang_statistics): #if 0 call to 759169689Skan print_inline_obstack_statistics until its definition is checked in. 760169689Skan 761169689SkanMon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com> 762169689Skan 763169689Skan * decl2.c (finish_file): Move dump_tree_statistics to end. 764169689Skan 765169689Skan * pt.c (instantiate_decl): Look for the original template. 766169689Skan (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations 767169689Skan of member templates. 768169689Skan 769169689SkanWed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com> 770169689Skan 771169689Skan * Makefile.in (g++FAQ.*): New rules. 772169689Skan (CONFLICTS): Update. 773169689Skan * g++FAQ.texi: Moved from libg++. 774169689Skan 775169689Skan * parse.y (PFUNCNAME): Only specify the type once. 776169689Skan 777169689Skan1997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com> 778169689Skan 779169689Skan * lex.c (real_yylex): Clean up the code to fully behave the way 780169689Skan the c-lex.c parser does for complex and real numbers. 781169689Skan 782169689SkanTue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com> 783169689Skan 784169689Skan * method.c (build_decl_overload_real): Reformat. 785169689Skan 786169689SkanTue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com> 787169689Skan 788169689Skan * method.c (synthesize_method): If at_eof, determine our linkage. 789169689Skan 790169689Skan1997-09-29 Paul Eggert <eggert@twinsun.com> 791169689Skan 792169689Skan * lex.c (real_yylex): Treat `$' just like `_', except issue a 793169689Skan diagnostic if !dollars_in_ident or if pedantic. 794169689Skan 795169689Skan * lang-specs.h (@c++): -ansi no longer implies -$. 796169689Skan 797169689Skan * decl2.c (lang_decode_option): 798169689Skan -traditional and -ansi now do not mess with 799169689Skan dollars_in_ident. 800169689Skan 801169689SkanMon Sep 29 19:57:51 1997 H.J. Lu <hjl@gnu.ai.mit.edu> 802169689Skan 803169689Skan * Makefile.in (parse.o, decl.o): Also depend on 804169689Skan $(srcdir)/../except.h $(srcdir)/../output.h. 805169689Skan (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h 806169689Skan $(srcdir)/../except.h $(srcdir)/../output.h. 807169689Skan (typeck.o, init.o): Also depend on $(srcdir)/../expr.h 808169689Skan ../insn-codes.h. 809169689Skan 810169689Skan * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping. 811169689Skan 812169689Skan * expr.c (cplus_expand_expr): Make it static. 813169689Skan 814169689Skan * decl2.c, init.c, typeck.c: Include "expr.h". 815169689Skan (expand_expr): Use proper values when calling the function. 816169689Skan 817169689SkanMon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 818169689Skan 819169689Skan * lang-options.h: New -Wold-style-cast flag. 820169689Skan * cp-tree.h (warn_old_style_cast): New variable. 821169689Skan * decl2.c (warn_old_style_cast): Likewise. 822169689Skan (lang_decode_option): Support -Wold-style-cast. 823169689Skan (reparse_absdcl_as_casts): Produce old-style-cast warning. 824169689Skan 825169689SkanMon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 826169689Skan 827169689Skan * decl.c (cp_finish_decl): Allow expand_aggr_init to set 828169689Skan TREE_USED, reset value based on already_used. 829169689Skan 830169689Skan * init.c (expand_member_init): Revert change. 831169689Skan 832169689SkanMon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com> 833169689Skan 834169689Skan * cp-tree.h, decl.c, decl2.c, pt.c: 835169689Skan Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public. 836169689Skan 837169689Skan * decl2.c (lang_decode_option): Add missing ;. 838169689Skan 839169689SkanSat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com> 840169689Skan 841169689Skan * friend.c (do_friend): Disable injection for all template-derived 842169689Skan decls. 843169689Skan * decl2.c (lang_decode_option): Handle -fguiding-decls. 844169689Skan * parse.y (notype_template_declarator): New nonterminal. 845169689Skan (direct_notype_declarator): Use it. 846169689Skan (complex_direct_notype_declarator): Likewise. 847169689Skan (object_template_id): Accept any kind of identifier after TEMPLATE. 848169689Skan (notype_qualified_id): Don't add template declarators here. 849169689Skan 850169689SkanSat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net> 851169689Skan 852169689Skan * call.c (add_template_candidate): Add explicit_targs parameter. 853169689Skan (build_scoped_method_call): Use it. 854169689Skan (build_overload_call_real): Likewise. 855169689Skan (build_user_type_conversion_1): Likewise. 856169689Skan (build_new_function_call): Likewise. 857169689Skan (build_object_call): Likewise. 858169689Skan (build_new_op): Likewise. 859169689Skan (build_new_method_call): Likewise. 860169689Skan (build_new_function_call): Handle TEMPLATE_ID_EXPR. 861169689Skan (build_new_method_call): Likewise. 862169689Skan 863169689Skan * class.c (finish_struct_methods): Add specialization pass to 864169689Skan determine which methods were specializing which other methods. 865169689Skan (instantiate_type): Handle TEMPLATE_ID_EXPR. 866169689Skan 867169689Skan * cp-tree.def (TEMPLATE_ID_EXPR): New tree code. 868169689Skan 869169689Skan * cp-tree.h (name_mangling_version): New variable. 870169689Skan (flag_guiding_decls): Likewise. 871169689Skan (build_template_decl_overload): New function. 872169689Skan (begin_specialization): Likewise. 873169689Skan (reset_specialization): Likewise. 874169689Skan (end_specialization): Likewise. 875169689Skan (determine_explicit_specialization): Likewise. 876169689Skan (check_explicit_specialization): Likewise. 877169689Skan (lookup_template_function): Likewise. 878169689Skan (fn_type_unification): Add explicit_targs parameter. 879169689Skan (type_unification): Likewise. 880169689Skan 881169689Skan * decl.c (duplicate_decls): Add smarts for explicit 882169689Skan specializations. 883169689Skan (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function 884169689Skan specializations. 885169689Skan (grokfndecl): Call check_explicit_specialization. 886169689Skan 887169689Skan * decl2.c (lang_decode_option): Handle -fname-mangling-version. 888169689Skan (build_expr_from_tree): Handle TEMPLATE_ID_EXPR. 889169689Skan (check_classfn): Handle specializations. 890169689Skan 891169689Skan * error.c (dump_function_name): Print specialization arguments. 892169689Skan 893169689Skan * friend.c (do_friend): Don't call pushdecl for template 894169689Skan instantiations. 895169689Skan 896169689Skan * init.c (build_member_call): Handle TEMPLATE_ID_EXPR. 897169689Skan 898169689Skan * lang-options.h: Add -fname-mangling-version, -fguiding-decls, 899169689Skan and -fno-guiding-decls. 900169689Skan 901169689Skan * lex.c (identifier_type): Return PFUNCNAME for template function 902169689Skan names. 903169689Skan 904169689Skan * method.c (build_decl_overload_real): New function. 905169689Skan (build_template_parm_names): New function. 906169689Skan (build_overload_identifier): Use it. 907169689Skan (build_underscore_int): New function. 908169689Skan (build_overload_int): Use it. Add levels for template 909169689Skan parameters. 910169689Skan (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs. 911169689Skan (build_overload_nested_names): Handle template type parameters. 912169689Skan (build_template_decl_overload): New function. 913169689Skan 914169689Skan * parse.y (YYSTYPE): New ntype member. 915169689Skan (nested_name_specifier): Use it. 916169689Skan (nested_name_specifier_1): Likewise. 917169689Skan (PFUNCNAME): New token. 918169689Skan (template_id, object_template_id): New non-terminals. 919169689Skan (template_parm_list): Note specializations. 920169689Skan (template_def): Likewise. 921169689Skan (structsp): Likewise. 922169689Skan (fn.def2): Handle member template specializations. 923169689Skan (component_decl_1): Likewise. 924169689Skan (direct_notype_declarator): Handle template-ids. 925169689Skan (component_decl_1): Likewise. 926169689Skan (direct_notype_declarator): Handle template-ids. 927169689Skan (primary): Handle TEMPLATE_ID_EXPR, and template-ids. 928169689Skan 929169689Skan * pt.c (processing_specializations): New variable. 930169689Skan (template_header_count): Likewise. 931169689Skan (type_unification_real): New function. 932169689Skan (processing_explicit_specialization): Likewise. 933169689Skan (note_template_header): Likewise. 934169689Skan (is_member_template): Handle specializations. 935169689Skan (end_template_decl): Call reset_specialization. 936169689Skan (push_template_decl): Handle member template specializations. 937169689Skan (tsubst): Likewise. 938169689Skan (tsubst_copy): Handle TEMPLATE_ID_EXPR. 939169689Skan (instantiate_template): Handle specializations. 940169689Skan (instantiate_decl): Likewise. 941169689Skan (fn_type_unification): Handle explicit_targs. 942169689Skan (type_unification): Likewise. Allow incomplete unification 943169689Skan without an error message, if allow_incomplete. 944169689Skan (get_bindings): Use new calling sequence for fn_type_unification. 945169689Skan 946169689Skan * spew.c (yylex): Handle PFUNCNAME. 947169689Skan 948169689Skan * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR. 949169689Skan (really_overloaded_fn): Likewise. 950169689Skan (get_first_fn): Handle function templates. 951169689Skan 952169689Skan * typeck.c (build_x_function_call): Use really_overloaded_fn. 953169689Skan Handle TEMPLATE_ID_EXPR. 954169689Skan (build_x_unary_op): Likewise. 955169689Skan (build_unary_op): Likewise. 956169689Skan (mark_addressable): Templates whose address is taken are marked 957169689Skan as used. 958169689Skan 959169689Skan1997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 960169689Skan 961169689Skan * decl.c (init_decl_processing): Declare __builtin_constant_p as 962169689Skan accepting any kind of type, not only int. 963169689Skan 964169689SkanFri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com> 965169689Skan 966169689Skan * search.c (get_matching_virtual): Notice virtual bases when sorrying 967169689Skan about covariant returns. 968169689Skan 969169689Skan * parse.y (member_init): Also imply typename here. Remove ancient 970169689Skan extension for initializing base members. 971169689Skan 972169689SkanThu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com> 973169689Skan 974169689Skan Handle multi-level typenames and implicit typename in base list. 975169689Skan * parse.y (typename_sub{,[0-2]}): New rules. 976169689Skan (structsp, rule TYPENAME_KEYWORD): Use typename_sub. 977169689Skan (nonnested_type): New rule. 978169689Skan (complete_type_name): Use it. 979169689Skan (base_class.1): Use typename_sub and nonnested_type. 980169689Skan (nested_name_specifier): Don't elide std:: here. 981169689Skan * decl.c (make_typename_type): Handle getting a type for NAME. 982169689Skan (lookup_name_real): Turn std:: into :: here. 983169689Skan 984169689Skan Rvalue conversions were removed in London. 985169689Skan * call.c (is_subseq): Don't consider lvalue transformations. 986169689Skan (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK. 987169689Skan (joust): Re-enable ?: kludge. 988169689Skan 989169689Skan1997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com> 990169689Skan 991169689Skan * decl.c (start_function): Up warning of no return type to be a 992169689Skan pedwarn. 993169689Skan 994169689SkanMon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 995169689Skan 996169689Skan * init.c (expand_member_init): Don't set TREE_USED. 997169689Skan * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED 998169689Skan set,don't clear TREE_USED wholesale. 999169689Skan 1000169689SkanSat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com> 1001169689Skan 1002169689Skan * call.c (build_over_call): Do require_complete_type before 1003169689Skan build_cplus_new. 1004169689Skan 1005169689SkanThu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com> 1006169689Skan 1007169689Skan * search.c (lookup_field): Call complete_type in all cases. 1008169689Skan 1009169689Skan * decl.c (finish_function): Just warn about flowing off the end. 1010169689Skan 1011169689SkanWed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1012169689Skan 1013169689Skan * decl.c (grokparms): Don't bash a permanent list node if we're 1014169689Skan in a function. 1015169689Skan 1016169689Skan1997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com> 1017169689Skan 1018169689Skan * Makefile.in (CONFLICTS): Fix s/r conflict count to 18. 1019169689Skan 1020169689SkanTue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1021169689Skan 1022169689Skan * call.c (build_new_op): Give better error for syntactically 1023169689Skan correct, but semantically invalid, use of undeclared template. 1024169689Skan 1025169689Skan * call.c (compare_qual): Handle pmfs. 1026169689Skan 1027169689Skan * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn 1028169689Skan after the exception spec. 1029169689Skan 1030169689SkanMon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1031169689Skan 1032169689Skan * call.c (null_ptr_cst_p): Integer type, not integral type. 1033169689Skan 1034169689Skan * call.c (joust): Disable warnings until they can be moved to the 1035169689Skan right place. 1036169689Skan 1037169689SkanFri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com> 1038169689Skan 1039169689Skan * Makefile.in, config-lang.in: Convert to autoconf. 1040169689Skan 1041169689SkanThu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com> 1042169689Skan 1043169689Skan * decl.c (lookup_name_real): Add implicit 'typename' to types from 1044169689Skan base classes. 1045169689Skan 1046169689Skan * pt.c (most_specialized_class): Fix typo. 1047169689Skan (tsubst): Move constant folding to TREE_VEC case. 1048169689Skan 1049169689SkanThu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net> 1050169689Skan 1051169689Skan * pt.c (do_poplevel): Don't warn about unused local variables 1052169689Skan while processing_template_decl since we don't always know whether 1053169689Skan or not they will need constructing/destructing. 1054169689Skan 1055169689Skan * pt.c (uses_template_parms): Check the values of an enumeration 1056169689Skan type to make sure they don't depend on template parms. 1057169689Skan 1058169689Skan * decl.c (make_typename_type): Don't lookup the field if the 1059169689Skan context uses template parms, even if we're not 1060169689Skan processing_template_decl at the moment. 1061169689Skan 1062169689Skan * pt.c (coerce_template_parms): Avoid looking at the 1063169689Skan TYPE_LANG_DECL portion of a typename type, since there won't be 1064169689Skan one. 1065169689Skan (tsubst): Do constant folding as necessary to make sure that 1066169689Skan arguments passed to lookup_template_class really are constants. 1067169689Skan 1068169689SkanWed Sep 10 16:39:26 1997 Jim Wilson <wilson@cygnus.com> 1069169689Skan 1070169689Skan * Make-lang.in (LN, LN_S): New macros, use where appropriate. 1071169689Skan 1072169689SkanWed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com> 1073169689Skan 1074169689Skan * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO. 1075169689Skan * decl2.c (finish_file): Only register exception tables if we 1076169689Skan need to. 1077169689Skan 1078169689Skan * decl.c (init_decl_processing): Add __builtin_[fs]p. 1079169689Skan 1080169689SkanTue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com> 1081169689Skan 1082169689Skan * pt.c (unify): Just return 0 for a TYPENAME_TYPE. 1083169689Skan 1084169689SkanTue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net> 1085169689Skan 1086169689Skan * error.c (dump_decl): Avoid crashing when presented with a 1087169689Skan uninitialized constant, as can occur with a template parameter. 1088169689Skan (dump_expr): Make sure that there are enough levels of 1089169689Skan current_template_parms before we start diving through them. 1090169689Skan 1091169689Skan1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com> 1092169689Skan 1093169689Skan * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to 1094169689Skan c-typeck.c. 1095169689Skan 1096169689SkanTue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1097169689Skan 1098169689Skan * except.c (expand_throw): Call build_delete for all 1099169689Skan exception types, not just objects with destructors. 1100169689Skan 1101169689SkanMon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net> 1102169689Skan 1103169689Skan * decl.c (current_local_enum): Remove static. 1104169689Skan * pt.c (tsubst_enum): Save and restore value of current_local_enum 1105169689Skan in case template is expanded in enum decl. 1106169689Skan (instantiate_class_template): Use new tsubst_enum signature. 1107169689Skan (tsubst_expr): Likewise. 1108169689Skan 1109169689SkanMon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net> 1110169689Skan 1111169689Skan * pt.c (begin_member_template_processing): Take a function as 1112169689Skan argument, not a set of template arguments. Use the template 1113169689Skan parameters, rather than the arguments. Handle non-type parameters 1114169689Skan correctly. Push a binding level for the parameters so that multiple 1115169689Skan member templates using the same parameter names can be declared. 1116169689Skan (end_member_template_processing): Pop the binding level. 1117169689Skan (push_template_decl): Mark member templates as static when 1118169689Skan appropriate. 1119169689Skan 1120169689Skan * lex.c (do_pending_inlines): Pass the function, not its template 1121169689Skan arguments, to begin_member_template_processing. 1122169689Skan (process_next_inline): Likewise. 1123169689Skan (do_pending_defargs): Likewise. 1124169689Skan 1125169689Skan * error.c (dump_expr): Obtain the correct declaration for a 1126169689Skan TEMPLATE_CONST_PARM. 1127169689Skan 1128169689Skan * call.c (add_template_conv_candidate): New function. 1129169689Skan (build_object_call): Handle member templates, as done in the other 1130169689Skan build_ functions. 1131169689Skan 1132169689SkanSat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net> 1133169689Skan 1134169689Skan * decl.c (replace_defag): Undo previous change. 1135169689Skan * lex.c (do_pending_defargs): Deal with member templates. 1136169689Skan 1137169689Skan * pt.c (is_member_template): Avoid crashing when passed a 1138169689Skan non-function argument. 1139169689Skan 1140169689SkanFri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com> 1141169689Skan 1142169689Skan * class.c (grow_method): Remove check for redeclaration. 1143169689Skan 1144169689SkanFri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net> 1145169689Skan 1146169689Skan * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro. 1147169689Skan (DECL_INNERMOST_TEMPLATE_PARMS): Likewise. 1148169689Skan (PRIMARY_TEMPLATE_P): Use it. 1149169689Skan * call.c (build_overload_call_real): Use it. 1150169689Skan * class.c (instantiate_type): Likewise. 1151169689Skan * decl.c (decls_match): Likewise. 1152169689Skan * method.c (build_overload_identifier): Likewise. 1153169689Skan * pt.c (push_template_decl): Likewise. 1154169689Skan (classtype_mangled_name): Likewise. 1155169689Skan (lookup_template_class): Likewise. 1156169689Skan 1157169689Skan * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to 1158169689Skan DECL_NTPARMS to conform to usage elsewhere. 1159169689Skan * call.c (add_template_candidate): Likewise. 1160169689Skan * class.c (instantiate_type): Likewise. 1161169689Skan * pt.c (instantiate_template): Likewise. 1162169689Skan (get_bindings): Likewise. 1163169689Skan 1164169689Skan * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of 1165169689Skan is_member_template. 1166169689Skan 1167169689Skan * pt.c (unify): Undo changes to allow multiple levels of template 1168169689Skan parameters. 1169169689Skan (type_unification): Likewise. 1170169689Skan (fn_type_unification): Likewise. 1171169689Skan (get_class_bindings): Likewise. 1172169689Skan * cp-tree.h (Likewise). 1173169689Skan 1174169689Skan * decl.c (replace_defarg): Check that the type of the default 1175169689Skan parameter does not invlove a template type before complaining 1176169689Skan about the initialization. 1177169689Skan 1178169689Skan * error.c (dump_expr): Deal with template constant parameters in 1179169689Skan member templates correctly. 1180169689Skan 1181169689Skan * pt.c (is_member_template): Deal with class specializations 1182169689Skan correctly. 1183169689Skan (tsubst): Handle "partial instantiation" of member templates 1184169689Skan correctly. 1185169689Skan 1186169689SkanWed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> 1187169689Skan 1188169689Skan * pt.c (type_unification): Change calling sequence to allow for 1189169689Skan multiple levels of template parameters. 1190169689Skan (tsubst_expr): Likewise. 1191169689Skan (tsubst): Likewise. 1192169689Skan (tsubst_copy): Likewise. 1193169689Skan (instantiate_template): Likewise. 1194169689Skan (unify): Likewise. 1195169689Skan * call.c (build_overload_call_real): Use it. 1196169689Skan (add_builtin_candidate): Use it. 1197169689Skan (build_new_method_call): Use it. 1198169689Skan * class.c (instantiate_type): Use it. 1199169689Skan * decl.c (grokdeclarator): Use it. 1200169689Skan * decl2.c (finish_file): Use it. 1201169689Skan * method.c (build_overload_identifier): Use it. 1202169689Skan 1203169689Skan * call.c (add_template_candidate): Add additional parameter for 1204169689Skan the function return type. Call fn_type_unification istead of 1205169689Skan type_unification. 1206169689Skan (build_user_type_conversion_1): Handle member templates. 1207169689Skan (build_new_function_call): Likewise. 1208169689Skan (build_new_op): Likewise. 1209169689Skan (build_new_method_call): Likewise. 1210169689Skan 1211169689Skan * class.c (grow_method): Don't give an error message indicating 1212169689Skan that two member templates with the same name are ambiguous. 1213169689Skan (finish_struct): Treat member template functions just like member 1214169689Skan functions. 1215169689Skan 1216169689Skan * cp-tree.h (check_member_template): Add declaration. 1217169689Skan (begin_member_template_processing): Likewise. 1218169689Skan (end_member_template_processing): Likewise. 1219169689Skan (fn_type_unification): Likewise. 1220169689Skan (is_member_template): Likewise. 1221169689Skan (tsubst): Change prototype. 1222169689Skan (tsubst_expr): Likewise. 1223169689Skan (tsubst_copy): Likewise. 1224169689Skan (instantiate_template): Likewise. 1225169689Skan (get_bindings): Likewise. 1226169689Skan 1227169689Skan * decl.c (decls_match): Handle multiple levels of template 1228169689Skan parameters. 1229169689Skan (pushdecl): Handle template type params just like other type 1230169689Skan declarations. 1231169689Skan (push_class_level_binding): Return immediately if the 1232169689Skan class_binding_level is NULL. 1233169689Skan (grokfndecl): If check_classfn() returns a member_template, use 1234169689Skan the result of the template, not the template itself. 1235169689Skan 1236169689Skan * decl2.c (check_member_template): New function. Check to see 1237169689Skan that the entity declared to be a member template can be one. 1238169689Skan (check_classfn): Allow redeclaration of member template functions 1239169689Skan with different types; the new functions can be specializations or 1240169689Skan explicit instantiations. 1241169689Skan 1242169689Skan * error.c (dump_decl): Handle multiple levels of template 1243169689Skan parameters. 1244169689Skan (dump_function_decl): Update to handle function templates. 1245169689Skan 1246169689Skan * lex.c (do_pending_inlines): Set up template parameter context 1247169689Skan for member templates. 1248169689Skan (process_next_inline): Likewise. 1249169689Skan 1250169689Skan * method.c (build_overload_identifier): Adjust for multiple levels 1251169689Skan of template parameters. 1252169689Skan 1253169689Skan * parse.y (fn.def2): Add member templates. 1254169689Skan (component_decl_1): Likewise. 1255169689Skan 1256169689Skan * pt.c (begin_member_template_processing): New function. 1257169689Skan (end_member_template_processing): Likewise. 1258169689Skan (is_member_template): Likewise. 1259169689Skan (fn_type_unification): Likewise. 1260169689Skan (current_template_parms): Return a vector of all the template 1261169689Skan parms, not just the innermost level of parms. 1262169689Skan (push_template_decl): Deal with the possibility of member 1263169689Skan templates. 1264169689Skan (lookup_template_class): Likewise. 1265169689Skan (uses_template_parms): Likewise. 1266169689Skan (tsubst): Modify processing to TEMPLATE_TYPE_PARM and 1267169689Skan TEMPLATE_CONST_PARM to deal with multiple levels of template 1268169689Skan arguments. Add processing of TEMPLATE_DECL to produce new 1269169689Skan TEMPLATE_DECLs from old ones. 1270169689Skan (do_decl_instantiation): Handle member templates. 1271169689Skan 1272169689Skan * search.c (lookup_fnfields_1): Handle member template conversion 1273169689Skan operators. 1274169689Skan 1275169689Skan * tree.c (cp_tree_equal): Check the levels, as well as the 1276169689Skan indices, of TEMPLATE_CONST_PARMs. 1277169689Skan 1278169689Skan * typeck.c (comptypes): Check the levels, as well as the indices, 1279169689Skan fo TEMPLATE_TYPE_PARMs. 1280169689Skan (build_x_function_call): Treat member templates like member 1281169689Skan functions. 1282169689Skan 1283169689SkanWed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1284169689Skan 1285169689Skan * typeck.c (c_expand_return): Always convert_for_initialization 1286169689Skan before checking for returning a pointer to local. 1287169689Skan 1288169689Skan * pt.c (type_unification): If strict and the function parm doesn't 1289169689Skan use template parms, just compare types. 1290169689Skan 1291169689SkanWed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de> 1292169689Skan 1293169689Skan * method.c (build_overloaded_value): Replace direct call 1294169689Skan to the floating point emulator with REAL_VALUE_TO_DECIMAL macro. 1295169689Skan 1296169689SkanWed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com> 1297169689Skan 1298169689Skan * typeck.c (convert_arguments): Don't arbitrarily choose the first 1299169689Skan of a set of overloaded functions. 1300169689Skan 1301169689SkanTue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1302169689Skan 1303169689Skan * lex.c (real_yylex): Don't elide __FUNCTION__. 1304169689Skan 1305169689Skan * method.c (build_overload_value): Add in_template parm. 1306169689Skan (build_overload_int): Likewise. 1307169689Skan (build_overload_identifier): Pass it. 1308169689Skan 1309169689Skan * decl.c (duplicate_decls): Don't bash a previous template 1310169689Skan definition with a redeclaration. 1311169689Skan 1312169689Skan * pt.c (unify): float doesn't match double. 1313169689Skan 1314169689Skan * pt.c (do_type_instantiation): Handle getting a _TYPE or a 1315169689Skan TYPE_DECL. Handle getting non-template types. 1316169689Skan * parse.y (explicit_instantiation): Use typespec instead of 1317169689Skan aggr template_type. 1318169689Skan 1319169689SkanTue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com> 1320169689Skan 1321169689Skan * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings. 1322169689Skan 1323169689SkanMon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru> 1324169689Skan 1325169689Skan * call.c (add_builtin_candidate): Add missing TREE_TYPE. 1326169689Skan (compare_ics): Likewise. 1327169689Skan 1328169689SkanMon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com> 1329169689Skan 1330169689Skan * call.c (joust): Warn about choosing one conversion op over 1331169689Skan another because of 'this' argument when the other return type is 1332169689Skan better. 1333169689Skan (source_type): New fn. 1334169689Skan 1335169689Skan * call.c (build_new_op): Strip leading REF_BIND from first operand 1336169689Skan to builtin operator. 1337169689Skan 1338169689Skan * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we 1339169689Skan use its RTL. 1340169689Skan 1341169689SkanThu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1342169689Skan 1343169689Skan * call.c (null_ptr_cst_p): Remove support for (void*)0. 1344169689Skan 1345169689SkanWed Aug 27 02:03:34 1997 Jeffrey A Law <law@cygnus.com> 1346169689Skan 1347169689Skan * typeck.c (expand_target_expr): Make definition match declaration. 1348169689Skan 1349169689Skan * class.c (get_basefndecls): Make definition match declaration. 1350169689Skan 1351169689SkanMon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com> 1352169689Skan 1353169689Skan * input.c (sub_getch): Eventually give up and release the input file. 1354169689Skan 1355169689Skan * decl.c (cp_finish_decl): If #p i/i, put inline statics in the 1356169689Skan right place. 1357169689Skan 1358169689Skan * call.c (joust): Tweak message. 1359169689Skan 1360169689SkanSat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net> 1361169689Skan 1362169689Skan * error.c (type_as_string): Put const/volatile on template type 1363169689Skan parameters where appropriate. 1364169689Skan 1365169689SkanSat Aug 23 17:47:22 1997 Jeffrey A Law <law@cygnus.com> 1366169689Skan 1367169689Skan * call.c (strictly_better): Make arguments unsigned ints. 1368169689Skan 1369169689SkanThu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com> 1370169689Skan 1371169689Skan * lex.c (real_yylex): Refer to __complex instead of complex. 1372169689Skan 1373169689SkanThu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk> 1374169689Skan 1375169689Skan * lex.c (real_yylex): Don't use getc directly. 1376169689Skan 1377169689SkanWed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1378169689Skan 1379169689Skan * call.c (is_subseq): Don't try to be clever. 1380169689Skan 1381169689SkanWed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 1382169689Skan 1383169689Skan * parse.y, pt.c: Include "except.h". 1384169689Skan * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c, 1385169689Skan error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c, 1386169689Skan lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c, 1387169689Skan sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish 1388169689Skan prototyping. 1389169689Skan 1390169689SkanWed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1391169689Skan 1392169689Skan * decl2.c (mark_vtable_entries): Instead of replacing pure 1393169689Skan virtuals with a reference to __pure_virtual, copy the decl and 1394169689Skan change the RTL. 1395169689Skan 1396169689SkanTue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com> 1397169689Skan 1398169689Skan * pt.c (lookup_nested_type_by_name): Handle typedef wierdness. 1399169689Skan 1400169689Skan * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com. 1401169689Skan 1402169689Skan * pt.c (instantiate_class_template): Call repo_template_used 1403169689Skan before finish_prevtable_vardecl. 1404169689Skan 1405169689Skan * call.c (is_subseq): New fn. 1406169689Skan (compare_ics): Use it. 1407169689Skan 1408169689Skan * repo.c (finish_repo): Don't crash on no args. 1409169689Skan 1410169689Skan * parse.y (named_complex_class_head_sans_basetype): Handle 1411169689Skan explicit global scope. 1412169689Skan * decl2.c (handle_class_head): New fn. 1413169689Skan 1414169689Skan * pt.c (unify): Add CONST_DECL case. 1415169689Skan 1416169689SkanThu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1417169689Skan 1418169689Skan * rtti.c (permanent_obstack): Fix decl to not be a pointer. 1419169689Skan 1420169689Skan * cp-tree.h (report_type_mismatch): Add prototype. 1421169689Skan * call.c (build_overload_call_real): Remove erroneous fourth 1422169689Skan argument to report_type_mismatch. 1423169689Skan (build_user_type_conversion_1): Remove erroneous second arg to 1424169689Skan tourney. 1425169689Skan (build_new_function_call): Likewise. 1426169689Skan (build_object_call): Likewise. 1427169689Skan (build_new_op): Likewise. 1428169689Skan (build_new_method_call): Likewise. 1429169689Skan 1430169689SkanWed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1431169689Skan 1432169689Skan * error.c (dump_decl): Don't bother processing a function with no 1433169689Skan DECL_LANG_SPECIFIC. 1434169689Skan 1435169689Skan * method.c (emit_thunk): Call init_function_start in the macro case. 1436169689Skan 1437169689SkanWed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 1438169689Skan 1439169689Skan * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not 1440169689Skan defined and used to set flag_vtable_thunks. 1441169689Skan 1442169689SkanTue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1443169689Skan 1444169689Skan * parse.y: Don't clear the inlines from their obstack until they've 1445169689Skan all been processed. 1446169689Skan 1447169689Skan * decl.c (duplicate_decls): Don't complain about exception 1448169689Skan specification mismatch if flag_exceptions is off. 1449169689Skan 1450169689SkanMon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com> 1451169689Skan 1452169689Skan * Make-lang.in (c++.distclean): Remove g++.c on make distclean. 1453169689Skan 1454169689SkanSun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com> 1455169689Skan 1456169689Skan * cp-tree.h: Replace STDIO_PROTO with PROTO in include files. 1457169689Skan * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c: 1458169689Skan Include <stdio.h> before include files that formerly used STDIO_PROTO. 1459169689Skan 1460169689Skan * decl.c, g++spec.c, lex.c, method.c, repo.c: 1461169689Skan Include "config.h" first, as per autoconf manual. 1462169689Skan 1463169689SkanFri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com> 1464169689Skan 1465169689Skan * decl.c (duplicate_decls): Tweak wording. 1466169689Skan * lex.c (do_pending_defargs): Don't die if we see a default arg 1467169689Skan that isn't a DEFAULT_ARG. 1468169689Skan * error.c (dump_expr): Handle DEFAULT_ARG. 1469169689Skan 1470169689Skan * decl2.c (lang_decode_option): Handle -fhandle-exceptions. 1471169689Skan * lang-options.h: Add -fhandle-exceptions. 1472169689Skan 1473169689Skan * class.c (build_vtable): Vtables are artificial. 1474169689Skan (prepare_fresh_vtable): Likewise. 1475169689Skan 1476169689SkanWed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 1477169689Skan 1478169689Skan * cvt.c (ocp_convert): After converting to the target type, set 1479169689Skan LOOKUP_NO_CONVERSION. 1480169689Skan 1481169689Skan * call.c (joust): Warn about potentially confusing promotion rules 1482169689Skan with -Wsign-promo. 1483169689Skan * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo. 1484169689Skan 1485169689SkanTue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com> 1486169689Skan 1487169689Skan * exception.cc: Declare __terminate_func with noreturn attribute. 1488169689Skan 1489169689SkanFri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com> 1490169689Skan 1491169689Skan * parse.y: Break out eat_saved_input, handle errors. 1492169689Skan (function_try_block): Use compstmt instead of compstmt_or_error. 1493169689Skan 1494169689SkanThu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com> 1495169689Skan 1496169689Skan * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE. 1497169689Skan 1498169689SkanFri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1499169689Skan 1500169689Skan * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for 1501169689Skan existence of cc1plus check whether $(LANGUAGES) contains C++. 1502169689Skan 1503169689SkanWed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1504169689Skan 1505169689Skan * method.c (do_build_copy_constructor): When copying an anonymous 1506169689Skan union member loop around to handle nested anonymous unions. Use 1507169689Skan the offset of the member relative to the outer structure, not the 1508169689Skan union. 1509169689Skan 1510169689SkanTue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1511169689Skan 1512169689Skan * call.c (resolve_args): New fn. 1513169689Skan (build_new_function_call): Use it. 1514169689Skan (build_object_call): Likewise. 1515169689Skan (build_new_method_call): Likewise. 1516169689Skan 1517169689SkanMon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 1518169689Skan 1519169689Skan * call.c (build_over_call): tsubst all default parms from templates. 1520169689Skan 1521169689SkanWed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1522169689Skan 1523169689Skan * decl.c (struct cp_function): Add static_labelno. 1524169689Skan (push_cp_function_context): Save it. 1525169689Skan (pop_cp_function_context): Restore it. 1526169689Skan 1527169689SkanTue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1528169689Skan 1529169689Skan * typeck.c (build_component_ref_1): Convert from reference. 1530169689Skan 1531169689SkanTue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1532169689Skan 1533169689Skan * parse.y (current_declspecs, prefix_attributes): Initialize to 1534169689Skan NULL_TREE. 1535169689Skan 1536169689Skan * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil 1537169689Skan before we try to force it to be a TREE_LIST. 1538169689Skan (decl): Make sure $1.t is non-nil. 1539169689Skan 1540169689SkanSun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com> 1541169689Skan 1542169689Skan * pt.c (uses_template_parms): Handle template first-parse codes. 1543169689Skan 1544169689Skan * decl.c (cp_finish_decl): Only warn about user-defined statics. 1545169689Skan 1546169689SkanFri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1547169689Skan 1548169689Skan * pt.c (unify): Handle BOOLEAN_TYPE. 1549169689Skan 1550169689Skan * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE. 1551169689Skan * pt.c (tsubst): Don't set it. 1552169689Skan * call.c (build_over_call): Use uses_template_parms. 1553169689Skan 1554169689SkanThu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com> 1555169689Skan 1556169689Skan * method.c (build_overload_nested_name): Use static_labelno 1557169689Skan instead of var_labelno. 1558169689Skan (build_qualified_name): New fn. 1559169689Skan (build_overload_name): Split out from here. 1560169689Skan (build_static_name): Use build_qualified_name. 1561169689Skan * decl.c (cp_finish_decl): Statics in extern inline functions 1562169689Skan have comdat linkage. 1563169689Skan (start_function): Initialize static_labelno. 1564169689Skan 1565169689SkanThu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1566169689Skan 1567169689Skan * class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy 1568169689Skan before "all member functions in class [] are private". 1569169689Skan 1570169689SkanWed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1571169689Skan 1572169689Skan * lex.c (do_scoped_id): convert_from_reference. 1573169689Skan * init.c (build_offset_ref): Likewise. 1574169689Skan 1575169689SkanWed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com> 1576169689Skan 1577169689Skan * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list. 1578169689Skan 1579169689SkanMon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com> 1580169689Skan 1581169689Skan * typeck.c (get_member_function_from_ptrfunc): Promote index 1582169689Skan before saving it. 1583169689Skan 1584169689SkanSun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com> 1585169689Skan 1586169689Skan * tree.c (layout_basetypes): Move non-virtual destructor warning. 1587169689Skan * decl.c (xref_basetypes): Remove non-virtual destructor warning. 1588169689Skan 1589169689SkanSat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1590169689Skan 1591169689Skan * decl.c (grokdeclarator): Call add_defarg_fn for the function 1592169689Skan type, too. 1593169689Skan * lex.c (add_defarg_fn): Adjust. 1594169689Skan (do_pending_defargs): Adjust. Don't skip the first parm. 1595169689Skan 1596169689SkanFri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com> 1597169689Skan 1598169689Skan * decl.c (build_enumerator): Global enumerators are also readonly. 1599169689Skan 1600169689Skan * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast. 1601169689Skan (build_dynamic_cast): Call it and convert_from_reference. 1602169689Skan 1603169689Skan * lex.c (add_defarg_fn): New fn. 1604169689Skan (snarf_defarg): Don't add to defarg_types. 1605169689Skan (do_pending_defargs): Lose defarg_types. All fns we process now 1606169689Skan have defargs. 1607169689Skan * decl.c (grokfndecl): Call add_defarg_fn. 1608169689Skan 1609169689Skan * Makefile.in (CONFLICTS): Expect 18 s/r conflicts. 1610169689Skan * cp-tree.def: Add DEFAULT_ARG. 1611169689Skan * spew.c (yylex): Call snarf_defarg as appropriate. 1612169689Skan * parse.y: New tokens DEFARG and DEFARG_MARKER. 1613169689Skan (defarg_again, pending_defargs, defarg, defarg1): New rules. 1614169689Skan (structsp): Use pending_defargs. 1615169689Skan (parms, full_parm): Use defarg. 1616169689Skan * lex.c (init_lex): Initialize inline_text_firstobj. 1617169689Skan (do_pending_inlines): Never pass the obstack to feed_input. 1618169689Skan (process_next_inline): Call end_input instead of restore_pending_input. 1619169689Skan (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs, 1620169689Skan finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns. 1621169689Skan * input.c (end_input): New fn. 1622169689Skan (sub_getch): At the end of some fed input, just keep returning EOF 1623169689Skan until someone calls end_input. 1624169689Skan Remove 'obstack' field from struct input_source. 1625169689Skan * decl.c (grokparms): Handle DEFAULT_ARG. 1626169689Skan (replace_defarg): New fn. 1627169689Skan * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros. 1628169689Skan 1629169689SkanWed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1630169689Skan 1631169689Skan * call.c (implicit_conversion): If nothing else works, try binding 1632169689Skan an rvalue to a reference. 1633169689Skan 1634169689SkanWed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com> 1635169689Skan 1636169689Skan * decl.c (init_decl_processing): Fix Jun 30 patch -- move 1637169689Skan ifndef for Cygwin32 to include SIGSEGV. 1638169689Skan 1639169689SkanThu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1640169689Skan 1641169689Skan * class.c (finish_struct_1): Only complain about pointers without 1642169689Skan copy stuff if there are any constructors. 1643169689Skan 1644169689Skan * rtti.c (build_dynamic_cast): Call complete_type on the types. 1645169689Skan 1646169689Skan * decl.c (grokfndecl): If the function we chose doesn't actually 1647169689Skan match, die. 1648169689Skan 1649169689Skan * decl2.c (grokclassfn): Don't specify 'const int' for the 1650169689Skan artificial destructor parm. 1651169689Skan 1652169689Skan * pt.c (type_unification): If we are called recursively, nothing 1653169689Skan decays. 1654169689Skan 1655169689SkanMon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com> 1656169689Skan 1657169689Skan * decl.c (init_decl_processing): Stop trying to catch signals 1658169689Skan other than SIGABRT since the Cygwin32 library doesn't support 1659169689Skan them correctly yet. This fixes a situation in which g++ causes 1660169689Skan a hang on SIGSEGVs and other such signals in our Win32-hosted 1661169689Skan tools. 1662169689Skan 1663169689SkanMon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com> 1664169689Skan 1665169689Skan * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data. 1666169689Skan 1667169689SkanFri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com> 1668169689Skan 1669169689Skan * typeck2.c (store_init_value): Always return the value if our 1670169689Skan type needs constructing. 1671169689Skan 1672169689Skan * method.c (hack_identifier): Convert class statics from 1673169689Skan reference, too. 1674169689Skan 1675169689SkanThu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com> 1676169689Skan 1677169689Skan * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency. 1678169689Skan 1679169689SkanThu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com> 1680169689Skan 1681169689Skan * typeck.c (c_expand_return): Make sure we clean up temporaries at 1682169689Skan the end of return x; 1683169689Skan 1684169689SkanThu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1685169689Skan 1686169689Skan * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER. 1687169689Skan 1688169689SkanTue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com> 1689169689Skan 1690169689Skan * except.c (expand_builtin_throw): Add support 1691169689Skan -fno-sjlj-exceptions -fPIC exception handling on the SPARC. 1692169689Skan 1693169689SkanMon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com> 1694169689Skan 1695169689Skan * repo.c (extract_string): Null-terminate. 1696169689Skan 1697169689Skan * cp-tree.h (TI_SPEC_INFO): New macro. 1698169689Skan (CLASSTYPE_TI_SPEC_INFO): New macro. 1699169689Skan * pt.c (push_template_decl): Correctly determine # of template parms 1700169689Skan for partial specs. 1701169689Skan 1702169689Skan * call.c (compare_ics): Really fix 'this' conversions. 1703169689Skan 1704169689Skan * pt.c (do_decl_instantiation): Don't crash on explicit inst of 1705169689Skan non-template fn. 1706169689Skan 1707169689Skan * pt.c (push_template_decl): Complain about mismatch in # of 1708169689Skan template parms between a class template and a member template. 1709169689Skan 1710169689SkanSun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com> 1711169689Skan 1712169689Skan * method.c (synthesize_method): You can't call 1713169689Skan function_cannot_inline_p after finish_function. 1714169689Skan * decl.c (finish_function): Turn on flag_inline_functions and turn 1715169689Skan off DECL_INLINE before handing a synthesized method to the 1716169689Skan backend. 1717169689Skan 1718169689SkanThu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1719169689Skan 1720169689Skan * method.c (synthesize_method): Remove July 30 change to never set 1721169689Skan DECL_INLINE if at_eof. 1722169689Skan 1723169689SkanThu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com> 1724169689Skan 1725169689Skan * xref.c (GNU_xref_member): Ensure that the node has a 1726169689Skan decl_lang_specific part before checking DECL_FRIEND_P. 1727169689Skan 1728169689SkanThu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1729169689Skan 1730169689Skan * pt.c (instantiate_class_template): Diagnose non-class types used 1731169689Skan as bases. 1732169689Skan 1733169689SkanWed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1734169689Skan 1735169689Skan * typeck.c (build_conditional_expr): Use convert_for_initialization 1736169689Skan instead of convert_and_check. 1737169689Skan 1738169689SkanWed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1739169689Skan 1740169689Skan * parse.y (typespec): Don't pedwarn for typeof. 1741169689Skan 1742169689SkanTue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com> 1743169689Skan 1744169689Skan * repo.c (finish_repo): Only check changes if we would write a 1745169689Skan repo file. 1746169689Skan 1747169689Skan * call.c (compare_ics): Fix handling of 'this' conversions. 1748169689Skan 1749169689Skan * pt.c (do_decl_instantiation): Support static data too. Rename 1750169689Skan from do_function_instantiation. 1751169689Skan * cp-tree.h: Adjust. 1752169689Skan * parse.y: Adjust. 1753169689Skan 1754169689Skan * repo.c (extract_string): New fn. 1755169689Skan (get_base_filename): Use it. 1756169689Skan (init_repo): Compare old args with current args. 1757169689Skan 1758169689SkanMon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com> 1759169689Skan 1760169689Skan * Makefile.in, Make-lang.in: Protect C-ls with a comment 1761169689Skan character, idea from Paul Eggert <eggert@twinsun.com>. 1762169689Skan 1763169689SkanMon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com> 1764169689Skan 1765169689Skan * typeck.c (c_expand_return): Be more persistent in looking for 1766169689Skan returned temps. 1767169689Skan 1768169689Skan * cvt.c (build_up_reference): Use NOP_EXPR for switching from 1769169689Skan pointer to reference. 1770169689Skan 1771169689Skan * class.c (build_vbase_path): Don't do anything if PATH has no steps. 1772169689Skan 1773169689SkanSun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1774169689Skan 1775169689Skan * init.c (build_member_call, build_offset_ref): 1776169689Skan Use do_scoped_id instead of do_identifier. 1777169689Skan 1778169689Skan * cvt.c (convert): Remove bogosity. 1779169689Skan 1780169689SkanSat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1781169689Skan 1782169689Skan * cvt.c (build_up_reference): Do checks of ARGTYPE and 1783169689Skan TARGET_TYPE before trying to use get_binfo. 1784169689Skan 1785169689SkanFri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com> 1786169689Skan 1787169689Skan * cvt.c (build_up_reference): Call get_binfo to get access control. 1788169689Skan 1789169689Skan * decl2.c (import_export_decl): If we don't support weaks, leave 1790169689Skan statics undefined. 1791169689Skan 1792169689SkanFri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com> 1793169689Skan 1794169689Skan * except.c (expand_builtin_throw): Add support for machines that 1795169689Skan cannot access globals after throw's epilogue when 1796169689Skan -fno-sjlj-exceptions is used. 1797169689Skan 1798169689SkanThu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com> 1799169689Skan 1800169689Skan * parse.y: 'std::' becomes '::'. 1801169689Skan * lex.c (real_yylex): Remove 'namespace' warning. 1802169689Skan * init.c (build_member_call): Ignore 'std::'. 1803169689Skan (build_offset_ref): Likewise. 1804169689Skan * decl2.c (do_using_directive): Ignore 'using namespace std;'. 1805169689Skan (do_toplevel_using_decl): Ignore 'using std::whatever'. 1806169689Skan * decl.c (push_namespace): Just sorry. 1807169689Skan (pop_namespace): Nop. 1808169689Skan (init_decl_processing): Declare std namespace. 1809169689Skan 1810169689SkanTue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1811169689Skan 1812169689Skan * search.c (push_class_decls): A name which ambiguously refers to 1813169689Skan several instantiations of the same template just refers to the 1814169689Skan template. 1815169689Skan 1816169689SkanTue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com> 1817169689Skan 1818169689Skan * decl.c (build_enumerator): Fix problem with unsigned long 1819169689Skan enumerated values being smashed to ints, causing overflow 1820169689Skan when computing next enumerated value (for enum values around 1821169689Skan MAX_VAL). 1822169689Skan 1823169689SkanMon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1824169689Skan 1825169689Skan * typeck.c (build_component_ref): Only call mark_used on a decl. 1826169689Skan 1827169689SkanThu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1828169689Skan 1829169689Skan * typeck.c (build_c_cast): Make the check for a ptr to function 1830169689Skan more specific before possible default_conversion call. 1831169689Skan 1832169689SkanThu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com> 1833169689Skan 1834169689Skan * except.c (expand_exception_blocks): Simplify and fix and make 1835169689Skan sure we don't end a region in a sequence, as expand_end_bindings 1836169689Skan doesn't like it. 1837169689Skan 1838169689SkanWed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com> 1839169689Skan 1840169689Skan * except.c (init_exception_processing): Mark terminate as not 1841169689Skan returning so that the optimizer can optimize better. 1842169689Skan 1843169689SkanTue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com> 1844169689Skan 1845169689Skan * cvt.c (convert): Don't do any extra work, if we can avoid it 1846169689Skan easily. 1847169689Skan 1848169689SkanTue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com> 1849169689Skan 1850169689Skan * *.[chy]: Change cp_convert to ocp_convert, change convert to 1851169689Skan cp_convert. convert is now reserved for the backend, and doesn't 1852169689Skan have the semantics a frontend person should ever want. 1853169689Skan 1854169689SkanFri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com> 1855169689Skan 1856169689Skan * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled. 1857169689Skan Lose -traditional support. 1858169689Skan 1859169689SkanThu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1860169689Skan 1861169689Skan * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype). 1862169689Skan 1863169689Skan * parse.y (self_reference): Do it for templates, too. 1864169689Skan * class.c (pushclass): Don't overload_template_name; the alias 1865169689Skan generated by build_self_reference serves the same purpose. 1866169689Skan 1867169689Skan * tree.c (list_hash): Make static, take more args. 1868169689Skan (list_hash_lookup): Likewise. 1869169689Skan (list_hash_add): Make static. 1870169689Skan (list_hash_canon): Lose. 1871169689Skan (hash_tree_cons): Only build a new node if one isn't already in the 1872169689Skan hashtable. 1873169689Skan (hash_tree_chain): Use hash_tree_cons. 1874169689Skan * cp-tree.h: Adjust. 1875169689Skan * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead 1876169689Skan of calling lookup_name. 1877169689Skan 1878169689SkanWed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com> 1879169689Skan 1880169689Skan * pt.c (instantiate_class_template): TYPE_VALUES for an enum 1881169689Skan doesn't refer to the CONST_DECLs. 1882169689Skan 1883169689SkanTue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com> 1884169689Skan 1885169689Skan * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever 1886169689Skan is bigger. 1887169689Skan (expand_class_desc): Convert the last argument to a sizetype. 1888169689Skan 1889169689SkanTue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1890169689Skan 1891169689Skan * gxx.gperf (__complex, __complex__, __imag, __imag__, __real, 1892169689Skan __real__): Add reswords. 1893169689Skan * hash.h: Regenerate. 1894169689Skan * lex.h (rid): Add RID_COMPLEX. 1895169689Skan (RID_LAST_MODIFIER): Set to RID_COMPLEX. 1896169689Skan * lex.c (init_lex): Add building of RID_COMPLEX. 1897169689Skan (real_yylex): General cleanup in line with what c-lex.c also has, 1898169689Skan sans the cruft for traditional; add handling of SPEC_IMAG, complex 1899169689Skan types, and imaginary numeric constants. 1900169689Skan * parse.y (REALPART, IMAGPART): Add tokens. 1901169689Skan (unary_expr): Add REALPART and IMAGPART rules. 1902169689Skan * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare. 1903169689Skan * decl.c (complex_{integer,float,double,long}_type_node): Define 1904169689Skan types. 1905169689Skan (init_decl_processing): Set up the types. 1906169689Skan (grokdeclarator): Add handling of RID_COMPLEX. Set and use 1907169689Skan DEFAULTED_INT instead of EXPLICIT_INT when we default to int type. 1908169689Skan * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases. 1909169689Skan * cvt.c (cp_convert): Handle COMPLEX_TYPE. 1910169689Skan * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add 1911169689Skan COMPLEX_TYPE case. 1912169689Skan * method.c (build_overload_name): Add handling of the different 1913169689Skan COMPLEX_TYPEs, prefixing them with `J'. 1914169689Skan * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE 1915169689Skan as a template parm. 1916169689Skan (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case. 1917169689Skan * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases. 1918169689Skan (mapcar): Handle COMPLEX_CST. 1919169689Skan * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE. 1920169689Skan (common_type): Add code for complex types. 1921169689Skan (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases. 1922169689Skan (convert_for_assignment): Likewise. 1923169689Skan (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases. 1924169689Skan 1925169689SkanMon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com> 1926169689Skan 1927169689Skan * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to 1928169689Skan tsubst_expr, as it might try to do overload resolution. 1929169689Skan 1930169689SkanSat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com> 1931169689Skan 1932169689Skan * pt.c (instantiate_class_template): Oops. 1933169689Skan 1934169689SkanFri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1935169689Skan 1936169689Skan * cp-tree.def: Add TAG_DEFN. 1937169689Skan * pt.c (tsubst_enum): New fn. 1938169689Skan (instantiate_class_template): Use it. 1939169689Skan (tsubst_expr): Support TAG_DEFN. 1940169689Skan (tsubst): Support local enums. 1941169689Skan (tsubst_copy): Likewise. 1942169689Skan * decl.c (finish_enum): Likewise. 1943169689Skan (start_enum): If this is a local enum, switch to permanent_obstack. 1944169689Skan 1945169689SkanWed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com> 1946169689Skan 1947169689Skan * decl.c (store_parm_decls): Set last_parm_cleanup_insn here. 1948169689Skan (finish_function): Put the base init code for constructors just 1949169689Skan after the parm cleanup insns. 1950169689Skan (struct cp_function): Add last_parm_cleanup_insn. 1951169689Skan (push_cp_function_context): Likewise. 1952169689Skan (pop_cp_function_context): Likewise. 1953169689Skan 1954169689SkanTue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com> 1955169689Skan 1956169689Skan * pt.c (tsubst_copy): Handle BIT_NOT_EXPR. 1957169689Skan 1958169689SkanWed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1959169689Skan 1960169689Skan * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL 1961169689Skan for THUNK_FNDECL before we switch to temporary allocation. 1962169689Skan 1963169689SkanMon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com> 1964169689Skan 1965169689Skan * call.c (build_new_op): Handle null arg2 for ?:. 1966169689Skan 1967169689SkanThu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com> 1968169689Skan 1969169689Skan * except.c (expand_exception_blocks): Ensure that we flow through 1970169689Skan the end of the exception region for the exception specification. 1971169689Skan Move exception region for the exception specification in, so that 1972169689Skan it doesn't protect the parm cleanup. Remove some obsolete code. 1973169689Skan * decl.c (store_parm_decls): Likewise. 1974169689Skan (finish_function): Likewise. 1975169689Skan 1976169689SkanTue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com> 1977169689Skan 1978169689Skan * init.c (build_new): Fix nothrow handling. 1979169689Skan 1980169689SkanTue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1981169689Skan 1982169689Skan * init.c (emit_base_init): Don't warn about the initialization 1983169689Skan list for an artificial member. 1984169689Skan 1985169689SkanFri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1986169689Skan 1987169689Skan * expr.c (do_case): Handle !START case for the error msg. 1988169689Skan 1989169689SkanFri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1990169689Skan 1991169689Skan * decl2.c, lang-options.h: New option -Weffc++. 1992169689Skan * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings 1993169689Skan to -Weffc++. 1994169689Skan 1995169689Skan * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS 1996169689Skan to MULTIPLE_SYMBOL_SPACES. 1997169689Skan 1998169689SkanWed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com> 1999169689Skan 2000169689Skan * method.c (emit_thunk, generic case): Set current_function_is_thunk. 2001169689Skan 2002169689Skan * method.c (emit_thunk, macro case): Set up DECL_RESULT. 2003169689Skan 2004169689Skan * typeck.c (c_expand_return): Don't complain about returning void 2005169689Skan to void in an artificial function. 2006169689Skan * method.c (make_thunk): Change settings of READONLY/VOLATILE, 2007169689Skan don't set DECL_RESULT, set DECL_ARTIFICIAL. 2008169689Skan (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC. 2009169689Skan 2010169689SkanWed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com> 2011169689Skan 2012169689Skan * init.c (init_decl_processing): Add support for setjmp/longjmp based 2013169689Skan exception handling. 2014169689Skan * except.c (init_exception_processing): Likewise. 2015169689Skan (expand_end_catch_block): Likewise. 2016169689Skan (expand_exception_blocks): Likewise. 2017169689Skan (expand_throw): Likewise. 2018169689Skan * exception.cc (__default_terminate): Likewise. 2019169689Skan 2020169689Skan * init.c (perform_member_init): Use new method of expr level 2021169689Skan cleanups, instead of cleanups_this_call and friends. 2022169689Skan (emit_base_init): Likewise. 2023169689Skan (expand_aggr_vbase_init_1): Likewise. 2024169689Skan (expand_vec_init): Likewise. 2025169689Skan * decl.c (cp_finish_decl): Likewise. 2026169689Skan (expand_static_init): Likewise. 2027169689Skan (store_parm_decls): Likewise. 2028169689Skan (cplus_expand_expr_stmt): Likewise. 2029169689Skan * decl2.c (finish_file): Likewise. 2030169689Skan 2031169689Skan * Make-lang.in (exception.o): Ok to compile with -O now. 2032169689Skan 2033169689Skan * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as 2034169689Skan we know it will be done later by the backend. 2035169689Skan 2036169689Skan * decl2.c (lang_f_options): Remove support for short temps. 2037169689Skan * lang-options.h: Likewise. 2038169689Skan 2039169689SkanWed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com> 2040169689Skan 2041169689Skan * tree.c (varargs_function_p): New fn. 2042169689Skan * method.c (emit_thunk): Replace broken generic code with code to 2043169689Skan generate a heavyweight thunk function. 2044169689Skan 2045169689SkanTue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com> 2046169689Skan 2047169689Skan * pt.c (process_template_parm): pedwarn about floating-point parms. 2048169689Skan 2049169689Skan * decl.c (grokdeclarator): inline no longer implies static. 2050169689Skan 2051169689Skan * spew.c (yylex): Always return the TYPE_DECL if we got a scope. 2052169689Skan 2053169689SkanMon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com> 2054169689Skan 2055169689Skan * class.c (check_for_override): The signature of an overriding 2056169689Skan function is not changed. 2057169689Skan 2058169689Skan * call.c (build_over_call): Move setting of conv into the loop. 2059169689Skan Note: this change, along with the related changes of the 18th thru 2060169689Skan the 20th of April, fix an infinite loop problem in conversions. 2061169689Skan 2062169689SkanSun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com> 2063169689Skan 2064169689Skan * call.c (build_user_type_conversion_1): Really ignore rvalue 2065169689Skan conversions when looking for a REFERENCE_TYPE. 2066169689Skan 2067169689Skan * cvt.c (build_up_reference): Eviscerate, use build_unary_op. 2068169689Skan * cp-tree.h (TREE_REFERENCE_EXPR): #if 0. 2069169689Skan * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR. 2070169689Skan (build_unary_op): Likewise. 2071169689Skan * call.c (build_over_call): See through a CONVERT_EXPR around the 2072169689Skan ADDR_EXPR for on a temporary. 2073169689Skan * typeck.c (c_expand_return): See through a CONVERT_EXPR around 2074169689Skan the ADDR_EXPR for a local variable. 2075169689Skan 2076169689SkanFri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com> 2077169689Skan 2078169689Skan * call.c (build_user_type_conversion_1): If we're trying to 2079169689Skan convert to a REFERENCE_TYPE, only consider lvalue conversions. 2080169689Skan (build_new_function_call): Print candidates. 2081169689Skan (implicit_conversion): Try a temp binding if the lvalue conv is BAD. 2082169689Skan (reference_binding): Binding a temporary of a reference-related type 2083169689Skan is BAD. 2084169689Skan 2085169689SkanThu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2086169689Skan 2087169689Skan * inc/typeinfo (type_info::before): Add cv-qualifier-seq. 2088169689Skan * tinfo2.cc (type_info::before): Likewise. 2089169689Skan 2090169689SkanMon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com> 2091169689Skan 2092169689Skan * call.c (implicit_conversion): Oops. 2093169689Skan 2094169689SkanFri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com> 2095169689Skan 2096169689Skan * call.c (implicit_conversion): Try to find a reference conversion 2097169689Skan before binding a const reference to a temporary. 2098169689Skan 2099169689SkanWed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com> 2100169689Skan 2101169689Skan * exception.cc (__default_unexpected): Call terminate by default, 2102169689Skan so that if the user overrides terminate, the correct function will 2103169689Skan be called. 2104169689Skan 2105169689SkanWed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com> 2106169689Skan 2107169689Skan * parse.y (left_curly): Avoid trying to use any fields of 2108169689Skan error_mark_node, as there aren't any. 2109169689Skan 2110169689SkanThu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com> 2111169689Skan 2112169689Skan * lex.c (do_identifier): Avoid breaking on overloaded methods 2113169689Skan as default arguments. 2114169689Skan 2115169689SkanWed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se> 2116169689Skan 2117169689Skan * call.c (add_template_candidate): Initialize the variable "dummy". 2118169689Skan 2119169689SkanMon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com> 2120169689Skan 2121169689Skan * decl.c (start_decl): Make sure TYPE isn't an error_mark_node 2122169689Skan before we try to use TYPE_SIZE and TREE_CONSTANT on it. 2123169689Skan 2124169689SkanFri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2125169689Skan 2126169689Skan * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl. 2127169689Skan (debug_binfo): Delete decl, not needed. 2128169689Skan 2129169689Skan * tree.c (fnaddr_from_vtable_entry, function_arg_chain, 2130169689Skan promotes_to_aggr_type): Delete fns. 2131169689Skan * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY, 2132169689Skan SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN, 2133169689Skan PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1. 2134169689Skan 2135169689Skan * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars. 2136169689Skan 2137169689Skan * friend.c (is_friend_type): Delete fn. 2138169689Skan * cp-tree.h (is_friend_type): Delete decl. 2139169689Skan 2140169689Skan * decl.c (original_result_rtx, double_ftype_double, 2141169689Skan double_ftype_double_double, int_ftype_int, long_ftype_long, 2142169689Skan float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static. 2143169689Skan * typeck.c (original_result_rtx, warn_synth): Delete extern decls. 2144169689Skan 2145169689Skan * decl.c (push_overloaded_decl{,_top_level}): Make static, adding 2146169689Skan fwd decls. 2147169689Skan * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls. 2148169689Skan 2149169689Skan * decl.c (pushdecl_nonclass_level): #if 0, unused. 2150169689Skan * cp-tree.h (pushdecl_nonclass_level): #if 0 decl. 2151169689Skan 2152169689Skan * lex.c (reinit_lang_specific): #if 0, unused. 2153169689Skan * cp-tree.h (reinit_lang_specific): #if 0 decl. 2154169689Skan 2155169689Skan * decl.c (revert_static_member_fn): Make static, adding fwd decl. 2156169689Skan * cp-tree.h (revert_static_member_fn): Delete decl. 2157169689Skan 2158169689Skan * class.c (root_lang_context_p): Delete fn. 2159169689Skan * cp-tree.h (root_lang_context_p): Delete decl. 2160169689Skan 2161169689Skan * decl.c (set_current_level_tags_transparency): #if 0, unused. 2162169689Skan * cp-tree.h (set_current_level_tags_transparency): #if 0 decl. 2163169689Skan 2164169689Skan * lex.c (set_vardecl_interface_info): Make static. 2165169689Skan * cp-tree.h (set_vardecl_interface_info): Delete decl. 2166169689Skan 2167169689Skan * call.c (find_scoped_type): Make static. 2168169689Skan * cp-tree.h (find_scoped_type): Delete decl. 2169169689Skan 2170169689Skan * search.c (convert_pointer_to_vbase): Make static. 2171169689Skan * cp-tree.h (convert_pointer_to_vbase): Delete decl. 2172169689Skan 2173169689Skan * decl.c (const_ptr_type_node): Likewise. 2174169689Skan * cp-tree.h (const_ptr_type_node): Delete decl. 2175169689Skan 2176169689Skan * typeck.c (common_base_type): Make static. 2177169689Skan * cp-tree.h (common_base_types): Delete erroneous decl. 2178169689Skan 2179169689Skan * pt.c (classtype_mangled_name): Make static. 2180169689Skan * cp-tree.h (classtype_mangled_name): Delete decl. 2181169689Skan 2182169689Skan * lex.c (check_newline): Make static. 2183169689Skan * cp-tree.h (check_newline): Delete decl. 2184169689Skan 2185169689Skan * typeck.c (build_x_array_ref): Delete fn, same idea as 2186169689Skan grok_array_decl. 2187169689Skan * cp-tree.h (build_x_array_ref): Delete decl. 2188169689Skan 2189169689Skan * lex.c (copy_decl_lang_specific): Delete fn, same idea as 2190169689Skan copy_lang_decl. 2191169689Skan * cp-tree.h (copy_decl_lang_specific): #if 0 decl. 2192169689Skan 2193169689Skan * class.c (build_vtable_entry): Make static. 2194169689Skan * cp-tree.h (build_vtable_entry): Delete decl. 2195169689Skan 2196169689Skan * class.c (build_vbase_pointer): Make static. 2197169689Skan * cp-tree.h (build_vbase_pointer): Delete decl. 2198169689Skan 2199169689Skan * sig.c (build_sptr_ref): Add forward decl and make static. 2200169689Skan * cp-tree.h (build_sptr_ref): Delete decl. 2201169689Skan 2202169689Skan * call.c (build_new_method_call): Add forward decl and make static. 2203169689Skan * cp-tree.h (build_new_method_call): Delete decl. 2204169689Skan 2205169689Skan * call.c (build_object_call): Make static. 2206169689Skan * class.c (check_for_override, complete_type_p, mark_overriders): 2207169689Skan Likewise. 2208169689Skan * decl.c (cp_function_chain): Likewise. 2209169689Skan * lex.c (set_typedecl_interface_info, reinit_parse_for_block): 2210169689Skan Likewise. 2211169689Skan * pt.c (comp_template_args, get_class_bindings, push_tinst_level): 2212169689Skan Likewise. 2213169689Skan * tree.c (build_cplus_array_type_1): Likewise. 2214169689Skan * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise. 2215169689Skan (comp_target_parms): Likewise. 2216169689Skan 2217169689Skan * init.c (build_builtin_call): Make static. 2218169689Skan * cp-tree.h (build_builtin_call): Delete decl. 2219169689Skan 2220169689Skan * typeck.c (binary_op_error): Delete decl. 2221169689Skan * cp-tree.h (binary_op_error): Likewise. 2222169689Skan 2223169689SkanThu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2224169689Skan 2225169689Skan * call.c (build_method_call): Compare against error_mark_node 2226169689Skan directly, rather than the ERROR_MARK tree code. 2227169689Skan * cvt.c (cp_convert): Likewise. 2228169689Skan * decl.c (print_binding_level): Likewise. 2229169689Skan (duplicate_decls): Likewise. 2230169689Skan (grokdeclarator): Likewise. 2231169689Skan (grokdeclarator): Likewise. 2232169689Skan * init.c (expand_aggr_init_1): Likewise. 2233169689Skan (decl_constant_value): Likewise. 2234169689Skan * method.c (build_opfncall): Likewise. 2235169689Skan (hack_identifier): Likewise. 2236169689Skan * typeck.c (build_modify_expr): Likewise. 2237169689Skan 2238169689Skan * typeck.c (build_c_cast): Don't decl TYPE as register tree. 2239169689Skan 2240169689SkanSun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 2241169689Skan 2242169689Skan * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values. 2243169689Skan 2244169689Skan * pt.c (coerce_template_parms): Add new error message. 2245169689Skan 2246169689Skan * method.c (build_overload_value): Implement name mangling for 2247169689Skan floating-point template arguments. 2248169689Skan 2249169689Skan * method.c (build_overload_int, icat, dicat): Fix mangling of template 2250169689Skan arguments whose absolute value doesn't fit in a signed word. 2251169689Skan 2252169689SkanMon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2253169689Skan 2254169689Skan * friend.c: New file; put all of the friend stuff in here. 2255169689Skan * init.c: Instead of here. 2256169689Skan * Makefile.in (CXX_OBJS): Add friend.o. 2257169689Skan (friend.o): Add dependencies. 2258169689Skan * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c. 2259169689Skan 2260169689SkanSun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com> 2261169689Skan 2262169689Skan * call.c (build_scoped_method_call): Complain if the scope isn't a 2263169689Skan base. 2264169689Skan 2265169689SkanWed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com> 2266169689Skan 2267169689Skan * parse.y (left_curly): Don't crash on erroneous type. 2268169689Skan 2269169689Skan * init.c (build_delete): Fix type of ref. 2270169689Skan 2271169689SkanTue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com> 2272169689Skan 2273169689Skan * search.c (get_vbase_1): Renamed from get_vbase. 2274169689Skan (get_vbase): Wrapper, now non-static. 2275169689Skan (convert_pointer_to_vbase): Now static. 2276169689Skan 2277169689Skan * call.c (build_scoped_method_call): Accept a binfo for BASETYPE. 2278169689Skan * init.c (build_delete): Pass one. 2279169689Skan (build_partial_cleanup_for): Use build_scoped_method_call. 2280169689Skan * decl.c (finish_function): Pass a binfo. 2281169689Skan 2282169689SkanMon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com> 2283169689Skan 2284169689Skan * call.c (build_over_call): Only synthesize non-trivial copy ctors. 2285169689Skan 2286169689Skan * typeck.c (build_c_cast): Lose other reference to flag. 2287169689Skan 2288169689Skan * call.c (build_field_call): Don't look for [cd]tor_identifier. 2289169689Skan * decl2.c (delete_sanity): Remove meaningless use of 2290169689Skan LOOKUP_HAS_IN_CHARGE. 2291169689Skan * decl.c (finish_function): Use build_scoped_method_call instead 2292169689Skan of build_delete for running vbase dtors. 2293169689Skan * init.c (build_delete): Call overload resolution code instead of 2294169689Skan duplicating it badly. 2295169689Skan 2296169689SkanThu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com> 2297169689Skan 2298169689Skan * call.c (build_over_call): Call mark_used before trying to elide 2299169689Skan the call. 2300169689Skan 2301169689Skan * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL. 2302169689Skan 2303169689SkanWed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2304169689Skan 2305169689Skan * typeck.c (build_modify_expr): Always pedwarn for a cast to 2306169689Skan non-reference used as an lvalue. 2307169689Skan 2308169689SkanWed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com> 2309169689Skan 2310169689Skan * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly. 2311169689Skan 2312169689SkanTue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com> 2313169689Skan 2314169689Skan * parse.y (handler): Fix template typo. 2315169689Skan 2316169689SkanSun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com> 2317169689Skan 2318169689Skan * error.c (lang_decl_name): New fn. 2319169689Skan * tree.c (lang_printable_name): Use it. 2320169689Skan 2321169689SkanFri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com> 2322169689Skan 2323169689Skan * g++spec.c: Include config.h so that we can catch bzero #defines 2324169689Skan from the config file. 2325169689Skan 2326169689SkanTue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com> 2327169689Skan 2328169689Skan * new1.cc: Include a declaration for malloc, to avoid warning, and 2329169689Skan avoid lossing on systems that require one (ones that define malloc 2330169689Skan in xm.h). 2331169689Skan 2332169689SkanMon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 2333169689Skan 2334169689Skan * decl2.c (max_tinst_depth): New variable. 2335169689Skan (lang_decode_option): Parse "-ftemplate-depth-NN" command line 2336169689Skan option. 2337169689Skan * pt.c (max_tinst_depth): Variable moved. 2338169689Skan * lang-options.h: Declare "-ftemplate-depth-NN" command line option 2339169689Skan as legal. 2340169689Skan 2341169689SkanFri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com> 2342169689Skan 2343169689Skan * decl.c (xref_basetypes): Allow a base class that depends on 2344169689Skan template parms to be incomplete. 2345169689Skan 2346169689Skan * decl2.c (build_expr_from_tree): Support typeid(type). 2347169689Skan * rtti.c (get_typeid): Support templates. 2348169689Skan (expand_si_desc, expand_class_desc): Fix string length. 2349169689Skan (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise. 2350169689Skan 2351169689SkanTue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com> 2352169689Skan 2353169689Skan * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal. 2354169689Skan 2355169689Skan * pt.c (tsubst): Put it back for -fno-ansi-overloading. 2356169689Skan 2357169689SkanMon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com> 2358169689Skan 2359169689Skan * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that 2360169689Skan smashes together template and non-template decls of the same 2361169689Skan signature. 2362169689Skan 2363169689SkanThu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com> 2364169689Skan 2365169689Skan * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE. 2366169689Skan 2367169689SkanWed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2368169689Skan 2369169689Skan * decl.c (duplicate_decls): Next route, pedwarn about different 2370169689Skan exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER. 2371169689Skan 2372169689SkanTue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2373169689Skan 2374169689Skan * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro. 2375169689Skan (struct lang_type): Delete has_default_implementation member. 2376169689Skan Increase dummy to 21. 2377169689Skan * decl.c (start_method): Delete usage. 2378169689Skan 2379169689Skan * cp-tree.h (build_call, null_ptr_cst_p, in_function_p, 2380169689Skan store_after_parms, start_decl_1, auto_function): Add decls. 2381169689Skan (get_arglist_len_in_bytes, declare_implicit_exception, 2382169689Skan have_exceptions_p, make_type_decl, typedecl_for_tag, 2383169689Skan store_in_parms, pop_implicit_try_blocks, push_exception_cleanup, 2384169689Skan build_component_type_expr, cplus_exception_name, 2385169689Skan {make,clear}_anon_parm_name, dont_see_typename): Removed decls. 2386169689Skan * call.c (build_this): Make static. 2387169689Skan (is_complete): Likewise. 2388169689Skan (implicit_conversion): Likewise. 2389169689Skan (reference_binding): Likewise. 2390169689Skan (standard_conversion): Likewise. 2391169689Skan (strip_top_quals): Likewise. 2392169689Skan (non_reference): Likewise. 2393169689Skan (build_conv): Likewise. 2394169689Skan (user_harshness): Likewise. 2395169689Skan (rank_for_ideal): Likewise. 2396169689Skan * decl.c (start_decl_1): Delete forward decl. 2397169689Skan (push_decl_level): Make static. 2398169689Skan (resume_binding_level): Make static. 2399169689Skan (namespace_bindings_p): Make static. 2400169689Skan (declare_namespace_level): Make static. 2401169689Skan (lookup_name_real): Make static. 2402169689Skan (duplicate_decls): Make static. Take register off NEWDECL and 2403169689Skan OLDDECL parm decls. 2404169689Skan * decl2.c (get_sentry): Make static. 2405169689Skan (temp_name_p): Delete fn. 2406169689Skan * except.c (auto_function): Delete decl. 2407169689Skan * lex.c (handle_{cp,sysv}_pragma): Make static. 2408169689Skan (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl. 2409169689Skan * method.c (do_build_{copy_constructor,assign_ref}): Make static. 2410169689Skan * pt.c (tsubst_expr_values): Make static. 2411169689Skan * rtti.c (combine_strings): Delete decl. 2412169689Skan 2413169689SkanTue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com> 2414169689Skan 2415169689Skan * pt.c (push_template_decl): Handle getting a typedef. 2416169689Skan 2417169689Skan * call.c (build_new_function_call): Complain about void arg. 2418169689Skan 2419169689SkanTue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2420169689Skan 2421169689Skan * decl.c (duplicate_decls): Give pedwarn of different exceptions 2422169689Skan if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER. 2423169689Skan 2424169689SkanMon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com> 2425169689Skan 2426169689Skan * except.c (expand_throw): Don't expand the cleanup tree here, 2427169689Skan since we are not going to write the rtl out. Fixes problem with 2428169689Skan -g -O on SPARC. 2429169689Skan 2430169689SkanMon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com> 2431169689Skan 2432169689Skan * Make-lang.in: Add $(exeext) as necessary. 2433169689Skan 2434169689SkanMon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com> 2435169689Skan 2436169689Skan * parse.y (handler_seq): Must have at least one catch clause. 2437169689Skan 2438169689SkanSat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com> 2439169689Skan 2440169689Skan * call.c (add_builtin_candidate): Restore ?: hack. 2441169689Skan 2442169689Skan * decl.c (grok_op_properties): More warnings. 2443169689Skan 2444169689SkanSat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2445169689Skan 2446169689Skan * decl.c (duplicate_decls): On second thought, do it as a pedwarn 2447169689Skan still but only if !DECL_IN_SYSTEM_HEADER (olddecl). 2448169689Skan 2449169689Skan * decl.c (duplicate_decls): Scale back to a warning, and only do 2450169689Skan 'em if -pedantic. 2451169689Skan 2452169689SkanFri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com> 2453169689Skan 2454169689Skan * decl.c (duplicate_decls): pedwarn mismatched exception 2455169689Skan specifications. 2456169689Skan 2457169689SkanThu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com> 2458169689Skan 2459169689Skan * call.c (build_new_method_call): Don't display the invisible 2460169689Skan argument for controlling virtual bases. 2461169689Skan 2462169689SkanThu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com> 2463169689Skan 2464169689Skan * new: Add nothrow new and delete, bad_alloc and throw specifications 2465169689Skan for delete. 2466169689Skan * decl.c (init_decl_processing): Add throw specification for delete. 2467169689Skan * new.cc (nothrow): Define. 2468169689Skan * lex.c (real_yylex): Removing warning that throw and friends are 2469169689Skan keywords. 2470169689Skan * new1.cc (operator new (size_t sz, const nothrow_t&)): Define. 2471169689Skan * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define. 2472169689Skan * Make-lang.in: Add new{1,2}.{cc,o}. 2473169689Skan 2474169689SkanThu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com> 2475169689Skan 2476169689Skan * lex.c (cons_up_default_function): Fix return type of synth op=. 2477169689Skan 2478169689Skan * init.c (emit_base_init): Add warnings for uninitialized members 2479169689Skan and bases. 2480169689Skan 2481169689Skan * decl.c (xref_basetypes): Add warning for non-polymorphic type 2482169689Skan with destructor used as base type. 2483169689Skan 2484169689Skan * decl.c (grok_op_properties): Add warning for op= returning void. 2485169689Skan * typeck.c (c_expand_return): Add warning for op= returning anything 2486169689Skan other than *this. 2487169689Skan 2488169689Skan * class.c (finish_struct_1): Add warning for class with pointers 2489169689Skan but not copy ctor or copy op=. 2490169689Skan 2491169689Skan * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro. 2492169689Skan * pt.c (add_pending_template): Use it instead of LANG_FLAG_0. 2493169689Skan (instantiate_template): If -fexternal-templates, add this 2494169689Skan instantiation to pending_templates. 2495169689Skan 2496169689Skan * decl2.c (copy_assignment_arg_p): Disable old hack to support 2497169689Skan Booch components. 2498169689Skan 2499169689SkanTue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com> 2500169689Skan 2501169689Skan * cvt.c (cp_convert): pedwarn enum to pointer conversions. 2502169689Skan 2503169689SkanMon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com> 2504169689Skan 2505169689Skan * call.c (standard_conversion): Handle getting references. Tack 2506169689Skan on RVALUE_CONV here. Do it for non-class types, too. 2507169689Skan (reference_binding): Pass references to standard_conversion. 2508169689Skan (implicit_conversion): Likewise. 2509169689Skan (add_builtin_candidate): Disable one ?: kludge. 2510169689Skan (convert_like): Handle RVALUE_CONVs for non-class types. 2511169689Skan (joust): Disable the other ?: kludge. 2512169689Skan 2513169689SkanMon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2514169689Skan 2515169689Skan * decl.c (init_decl_processing): Add code to build up common 2516169689Skan function types beforehand, to avoid creation then removal of 2517169689Skan things already in the hash table. 2518169689Skan 2519169689SkanMon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com> 2520169689Skan 2521169689Skan * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for 2522169689Skan the arguments. 2523169689Skan 2524169689Skan * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require 2525169689Skan current_template_parms. 2526169689Skan 2527169689SkanFri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com> 2528169689Skan 2529169689Skan * search.c (lookup_field): Don't return a function, check want_type. 2530169689Skan 2531169689SkanThu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2532169689Skan 2533169689Skan * init.c (build_new): Make sure PLACEMENT has a type. 2534169689Skan 2535169689SkanThu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com> 2536169689Skan 2537169689Skan * init.c (build_new): Support new (nothrow). 2538169689Skan 2539169689SkanWed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com> 2540169689Skan 2541169689Skan * pt.c (instantiate_decl): Also do push_to_top_level before setting 2542169689Skan up DECL_INITIAL. 2543169689Skan 2544169689Skan * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro. 2545169689Skan * pt.c (tsubst): Defer instantiation of default args. 2546169689Skan * call.c (build_over_call): Until here. 2547169689Skan 2548169689SkanWed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2549169689Skan 2550169689Skan * search.c (lookup_field): Make sure we have an 2551169689Skan IDENTIFIER_CLASS_VALUE before we try to return it. 2552169689Skan 2553169689SkanThu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 2554169689Skan 2555169689Skan * call.c (build_method_call): Delete unused var PARM. 2556169689Skan (build_overload_call_real): Likewise. 2557169689Skan (build_object_call): Delete unused var P. 2558169689Skan (build_new_op): Likewise. 2559169689Skan * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static 2560169689Skan var definitions, which are never used. 2561169689Skan (shadow_tag): Delete unused var FN. 2562169689Skan * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET. 2563169689Skan * init.c (build_new): Delete unused var ALLOC_TEMP. 2564169689Skan * method.c (hack_identifier): Delete unused var CONTEXT. 2565169689Skan (do_build_copy_constructor): Delete unused var NAME. 2566169689Skan (synthesize_method): Delete unused var BASE. 2567169689Skan * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE. 2568169689Skan * rtti.c (build_headof): Delete unused var VPTR. 2569169689Skan (get_typeid): Delete unused var T. 2570169689Skan * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1 2571169689Skan and ORIG_OP2. 2572169689Skan (build_ptrmemfunc): Delete unused vars U and NINDEX. 2573169689Skan * typeck2.c (build_functional_cast): Delete unused var BINFO. 2574169689Skan 2575169689SkanWed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com> 2576169689Skan 2577169689Skan * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up 2578169689Skan things in a type being defined. 2579169689Skan * decl.c (finish_enum): Reverse the values so that they are in 2580169689Skan the correct order. 2581169689Skan 2582169689Skan * pt.c (instantiate_class_template): Don't initialize 2583169689Skan BINFO_BASETYPES until the vector is filled out. 2584169689Skan (unify): Don't abort on conflicting bindings, just fail. 2585169689Skan (instantiate_decl): Do push_tinst_level before any tsubsting. 2586169689Skan 2587169689Skan * method.c (build_overload_value): Handle getting a 2588169689Skan TEMPLATE_CONST_PARM for a pointer. 2589169689Skan 2590169689SkanTue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com> 2591169689Skan 2592169689Skan * init.c (expand_member_init): Don't give 'not a base' error for 2593169689Skan templates. 2594169689Skan 2595169689Skan * pt.c (instantiate_decl): Call import_export_decl later. 2596169689Skan 2597169689Skan * pt.c (instantiate_class_template): Return a value. 2598169689Skan 2599169689Skan * parse.y (extension): New rule for __extension__. 2600169689Skan (extdef, unary_expr, decl, component_decl): Use it. 2601169689Skan 2602169689SkanTue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com> 2603169689Skan 2604169689Skan * class.c (base_binfo): Remove unused base_has_virtual member. 2605169689Skan (finish_base_struct): Likewise. 2606169689Skan (finish_struct_1): Likewise. 2607169689Skan 2608