1169689SkanThu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com> 2169689Skan 3169689Skan * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of 4169689Skan NORMAL_RETURN_ADDR_OFFSET. 5169689Skan (end_eh_unwinder): Likewise. 6169689Skan 7169689SkanWed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com> 8169689Skan 9169689Skan * gc.c (build_dynamic_cast): Make sure we don't cast away const 10169689Skan when dealing with references, and make sure we handle dynamic 11169689Skan casting to a cv qualified reference. 12169689Skan 13169689SkanThu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com> 14169689Skan 15169689Skan * except.c (struct eh_context): New structure top hold eh context 16169689Skan information. 17169689Skan (push_eh_context): New routine. 18169689Skan (pop_eh_context): Likewise. 19169689Skan * decl.c (push_cp_function_context): Use them. 20169689Skan (pop_cp_function_context): Likewise. 21169689Skan 22169689SkanWed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com> 23169689Skan 24169689Skan * decl2.c (finish_file): Also prune uninteresting functions in the 25169689Skan inline emission loop. 26169689Skan 27169689SkanWed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com> 28169689Skan 29169689Skan * sig.c (build_signature_table_constructor): Mark functions 30169689Skan in the signature as referenced. 31169689Skan 32169689SkanTue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com> 33169689Skan 34169689Skan * decl2.c (finish_file): Do all the vtable/synthesis stuff before 35169689Skan the inline emission stuff. 36169689Skan 37169689SkanMon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com> 38169689Skan 39169689Skan * cp-tree.h, decl2.c (flag_weak): New flag to control the use of 40169689Skan weak symbols. 41169689Skan * lang-options.h: Add -f{no-,}weak. 42169689Skan * decl.c (init_decl_processing): If the target does not support weak 43169689Skan symbols, don't use them. 44169689Skan * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/. 45169689Skan 46169689SkanSun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au> 47169689Skan 48169689Skan * init.c (expand_member_init): warning for base init after members. 49169689Skan 50169689SkanFri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com> 51169689Skan 52169689Skan * cvt.c (build_expr_type_conversion): Don't convert to a reference 53169689Skan type. 54169689Skan 55169689SkanThu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com> 56169689Skan 57169689Skan * method.c (report_type_mismatch): Improve wording for volatile 58169689Skan mismatches. 59169689Skan 60169689SkanThu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com> 61169689Skan 62169689Skan * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of 63169689Skan expand_assignment, as the later doesn't handle things that have 64169689Skan copy constructors well. The compiler would do bitwise copying, 65169689Skan instead of ctor calling in some cases. 66169689Skan 67169689SkanWed Dec 13 17:05:54 1995 Paul Eggert <eggert@twinsun.com> 68169689Skan 69169689Skan * g++.c (my_strerror): Return "cannot access" if errno is 0. 70169689Skan (pfatal_with_name, perror_exec): Don't assume that 71169689Skan the returned value from my_strerror contains no '%'s. 72169689Skan (concat): Remove. 73169689Skan (sys_nerror): Declare only if HAVE_STRERROR is not defined. 74169689Skan 75169689SkanWed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com> 76169689Skan 77169689Skan Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make 78169689Skan TYPE_METHODS/TREE_CHAIN mean what they used to. 79169689Skan * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC 80169689Skan instead of TYPE_METHODS. 81169689Skan * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD. 82169689Skan * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise. 83169689Skan * cp-tree.h (CLASSTYPE_METHODS): Lose. 84169689Skan (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of 85169689Skan TYPE_METHODS. 86169689Skan (struct lang_decl): Lose next_method field. 87169689Skan (DECL_NEXT_METHOD): Lose. 88169689Skan * class.c (finish_struct_methods): Don't mess with TYPE_METHODS. 89169689Skan (finish_struct): Just use TYPE_METHODS; we don't need fn_fields 90169689Skan anymore. 91169689Skan (finish_struct_methods): Don't mess with the TREE_CHAINs in 92169689Skan fn_fields. 93169689Skan 94169689Skan * search.c (add_conversions): Don't use TREE_CHAIN to traverse method 95169689Skan vector. 96169689Skan 97169689Skan * call.c (build_method_call): Synthesize here even when not inlining. 98169689Skan * typeck.c (build_function_call_real): Likewise. 99169689Skan 100169689SkanWed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com> 101169689Skan 102169689Skan * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols 103169689Skan == DBX_DEBUG, call dbxout_start_new_source_file and 104169689Skan dbxout_resume_previous_source_file when appropriate. 105169689Skan 106169689SkanTue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com> 107169689Skan 108169689Skan * except.c (start_anon_func): Push to the top level. 109169689Skan (end_anon_func): Pop from the top level. 110169689Skan 111169689SkanMon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com> 112169689Skan 113169689Skan * cp-tree.h (build_cleanup): New routine to build cleanups. 114169689Skan * decl.c (expand_static_init): Use build_cleanup to build a cleanup 115169689Skan call at ctor time and use atexit to run it later. 116169689Skan * decl2.c (build_cleanup): New routine, taken from finish_file. 117169689Skan (finish_file): Use build_cleanup instead, and don't put function 118169689Skan local statics in global dtor list. 119169689Skan 120169689SkanWed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com> 121169689Skan 122169689Skan * except.c (expand_throw): Ensure that we have cleanups, if we try 123169689Skan and expand cleanups. 124169689Skan 125169689SkanWed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com> 126169689Skan 127169689Skan * except.c (expand_throw): Add logic to manage dynamic cleanups for 128169689Skan the EH object. 129169689Skan (expand_end_catch_block): Use the magic of expand_goto, instead of 130169689Skan emit_jump so that we get the cleanup for any catch clause parameter 131169689Skan and the cleanup for the exception object. Update to reflect label 132169689Skan changes. 133169689Skan (push_eh_cleanup): New routine to register a cleanup for an 134169689Skan exception object. 135169689Skan (empty_fndecl): Used to default cleanup actions to 136169689Skan nothing. 137169689Skan (init_exception_processing): Setup empty_fndecl. Setup 138169689Skan saved_cleanup. 139169689Skan (expand_start_catch_block): Update to reflect label changes. Call 140169689Skan push_eh_object to register the cleanup for the EH object. 141169689Skan (start_anon_func): New routine to start building lambda expressions 142169689Skan from trees. 143169689Skan (end_anon_func): New routine to end them. 144169689Skan (struct labelNode): Change so that we can use tree labels, or rtx 145169689Skan labels. 146169689Skan (saved_cleanup): Object to check for dynamic cleanups for the 147169689Skan exception handling object. 148169689Skan (push_label_entry): Change so that we can use tree labels, or rtx 149169689Skan labels. 150169689Skan (pop_label_entry): Likewise. 151169689Skan (top_label_entry): Likewise. 152169689Skan (expand_start_all_catch): Use tree label instead of rtx label, so 153169689Skan that we can get the magic of expand_goto. 154169689Skan (expand_end_all_catch): Update to reflect label changes. 155169689Skan 156169689Skan * class.c (build_vfn_ref): Remove building_cleanup logic, as we now 157169689Skan use UNSAVE_EXPRs. 158169689Skan * typeck.c (get_member_function_from_ptrfunc): Remove remnants of 159169689Skan building_cleanup logic, as we now use UNSAVE_EXPRs. 160169689Skan * cp-tree.h (unsave_expr): Declare it. 161169689Skan * decl.c (building_cleanup): Remove. 162169689Skan (maybe_build_cleanup): Remove building_cleanup logic, and use 163169689Skan UNSAVE_EXPR instead. 164169689Skan 165169689SkanSun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com> 166169689Skan 167169689Skan * gc.c (build_t_desc): Update error message to say <typeinfo>. 168169689Skan 169169689SkanThu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 170169689Skan 171169689Skan * decl.c (pushdecl): Only warn about shadowing a local variable if 172169689Skan warn_shadow is true. 173169689Skan 174169689SkanSun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au> 175169689Skan 176169689Skan * typeck.c (build_binary_op_nodefault): Added warning about 177169689Skan comparisons between different enum types with -Wall, unless 178169689Skan -fenum-int-equiv set. 179169689Skan 180169689SkanWed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com> 181169689Skan 182169689Skan * class.c (finish_struct_1): Skip down to the inner type in 183169689Skan multidimensional arrays. Ensures ctors will be made for types that 184169689Skan need constructing. 185169689Skan 186169689SkanWed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com> 187169689Skan 188169689Skan * decl.c (last_dtor_insn): New to track the last compiler generated 189169689Skan insn in a dtor. 190169689Skan (store_parm_decls): Set it. 191169689Skan (finish_function): Use it to see if the dtor is empty. Avoid doing 192169689Skan vtable setup all the time, if we can. 193169689Skan (struct cp_function): Add last_dtor_insn. 194169689Skan (push_cp_function_context): Save it. 195169689Skan (pop_cp_function_context): Restore it. 196169689Skan 197169689SkanWed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au> 198169689Skan 199169689Skan * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid 200169689Skan warnings. 201169689Skan 202169689SkanTue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com> 203169689Skan 204169689Skan * typeck.c (expand_target_expr): Make sure targets get put into the 205169689Skan current temp_slot_level, so that the free_temp_slots call will reuse 206169689Skan them. 207169689Skan 208169689SkanTue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com> 209169689Skan 210169689Skan * class.c (finish_struct_1): Delay delta fixups for virtual bases 211169689Skan until after we have done the hard virtuals, to avoid a bogus `every 212169689Skan virtual function must have a unique final overrider' for virtual 213169689Skan functions that are only overridden by hard virtuals. 214169689Skan 215169689SkanThu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com> 216169689Skan 217169689Skan * pt.c (do_function_instantiation): Don't try to find a file-scope 218169689Skan template for a member function. 219169689Skan 220169689SkanTue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com> 221169689Skan 222169689Skan * g++.c (main): Add handling of -nodefaultlibs. 223169689Skan 224169689SkanMon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com> 225169689Skan 226169689Skan * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to 227169689Skan distinguish between direct bindings of reference variables, and 228169689Skan indirect bindings of reference variables. 229169689Skan * cvt.c (build_up_reference): Use it. 230169689Skan * typeck.c (convert_arguments): Use it to indicate this is an 231169689Skan indirect binding. 232169689Skan * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast 233169689Skan as they are unused. 234169689Skan (expand_static_init): Likewise. 235169689Skan (cplus_expand_expr_stmt): Likewise. 236169689Skan * decl2.c (finish_file): Likewise. 237169689Skan * init.c (perform_member_init): Likewise. 238169689Skan (emit_base_init): Likewise. 239169689Skan (expand_aggr_vbase_init_1): Likewise. 240169689Skan 241169689SkanFri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 242169689Skan 243169689Skan * decl.c (push_namespace): Rewrite to use build_lang_decl, so we 244169689Skan get a DECL_LANG_SPECIFIC node. 245169689Skan * cp-tree.h (lang_decl_flags): Add new member `level'. 246169689Skan (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the 247169689Skan decl_flags level member. 248169689Skan 249169689SkanMon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 250169689Skan 251169689Skan * call.c (build_method_call): Make sure instance has a 252169689Skan TYPE_LANG_SPECIFIC node before we dive into it. 253169689Skan 254169689SkanSat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com> 255169689Skan 256169689Skan * method.c (make_thunk): Use TREE_SET_CODE to set thunk's tree code. 257169689Skan 258169689SkanThu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com> 259169689Skan 260169689Skan * decl.c (duplicate_decls): When smashing decls, smash staticness in 261169689Skan the usual way. 262169689Skan 263169689SkanThu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com> 264169689Skan 265169689Skan * decl.c (poplevel): Handle the merging of subblocks of cleanups 266169689Skan when finishing blocks that have already been created (usually due to 267169689Skan the fixup goto code). Fixes bad debugging information. 268169689Skan 269169689SkanWed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com> 270169689Skan 271169689Skan * method.c (hack_identifier): Don't abort when we get a TREE_LIST 272169689Skan that's not a list of overloaded functions. 273169689Skan 274169689SkanWed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 275169689Skan 276169689Skan * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn 277169689Skan before trying to use DECL_ABSTRACT_VIRTUAL_P. 278169689Skan 279169689SkanTue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com> 280169689Skan 281169689Skan * decl2.c (mark_used): New function for hooking into setting of 282169689Skan TREE_USED on decls. 283169689Skan * call.c (build_method_call): Use it. 284169689Skan * class.c (instantiate_type): Likewise. 285169689Skan * init.c (build_offset_ref): Likewise. Don't call assemble_external 286169689Skan for all like-named functions. 287169689Skan * method.c (hack_identifier): Likewise. 288169689Skan (emit_thunk): Don't call assemble_external. 289169689Skan (make_thunk): Create thunk as a FUNCTION_DECL so that it 290169689Skan gets the right mode and ENCODE_SECTION_INFO works. 291169689Skan 292169689Skan * parse.y: Use mark_used. Pass operator names to do_identifier. 293169689Skan * lex.c (do_identifier): Handle operator names. 294169689Skan 295169689Skan * decl2.c (grokclassfn): Tweak __in_chrg attributes. 296169689Skan 297169689SkanThu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 298169689Skan 299169689Skan * errfn.c: Include stdio.h. 300169689Skan (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*. 301169689Skan 302169689SkanWed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com> 303169689Skan 304169689Skan * typeck2.c (digest_init): Always convert initializers to the 305169689Skan right type. 306169689Skan 307169689SkanWed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com> 308169689Skan 309169689Skan * init.c (member_init_ok_or_else): Don't allow member initializers 310169689Skan for indirect members, as it is invalid. 311169689Skan 312169689SkanWed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 313169689Skan 314169689Skan * decl.c (grokdeclarator): Don't allow `friend signed ()'. 315169689Skan 316169689SkanFri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com> 317169689Skan 318169689Skan * parse.y (for.init.statement): Catch compound statements inside for 319169689Skan initializations, if we're being pedantic. 320169689Skan 321169689SkanFri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com> 322169689Skan 323169689Skan * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are 324169689Skan looking for. 325169689Skan 326169689SkanThu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com> 327169689Skan 328169689Skan * error.c (dump_expr): Don't core dump when a boolean expression is 329169689Skan used as a default argument. 330169689Skan 331169689SkanThu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com> 332169689Skan 333169689Skan * class.c (finish_struct_bits): Check aggregate_value_p instead of 334169689Skan RETURN_IN_MEMORY. 335169689Skan 336169689SkanWed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com> 337169689Skan 338169689Skan * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a 339169689Skan BLKmode type that would otherwise be returned in registers. 340169689Skan 341169689SkanMon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 342169689Skan 343169689Skan * g++.c (WITHLIBC): New macro. 344169689Skan (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set 345169689Skan saw_libc and pass it at the end if it was set. 346169689Skan 347169689SkanWed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 348169689Skan 349169689Skan * parse.y (fn.def1): Call split_specs_attrs in 350169689Skan declmods notype_declarator case. 351169689Skan 352169689SkanSun Nov 26 14:47:42 1995 Richard Kenner <kenner@mole.gnu.ai.mit.edu> 353169689Skan 354169689Skan * Version 2.7.2 released. 355169689Skan 356169689SkanMon Nov 20 14:05:00 1995 Mike Stump <mrs@cygnus.com> 357169689Skan 358169689Skan * g++.c (pfatal_with_name): Add missing third argument to concat. 359169689Skan 360169689SkanThu Oct 26 13:59:54 1995 Mike Stump <mrs@cygnus.com> 361169689Skan 362169689Skan * init.c (expand_aggr_init): Handle cv qualifiers on the object's 363169689Skan type. 364169689Skan 365169689SkanSat Nov 11 08:25:55 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 366169689Skan 367169689Skan * Version 2.7.1 released. 368169689Skan 369169689SkanThu Nov 2 17:02:47 1995 Jason Merrill <jason@yorick.cygnus.com> 370169689Skan 371169689Skan * call.c (convert_harshness): Handle references to arrays. 372169689Skan 373169689SkanFri Oct 27 14:20:21 1995 Jason Merrill <jason@yorick.cygnus.com> 374169689Skan 375169689Skan * typeck.c (comp_target_types): Check multi-level pointer 376169689Skan conversions in both directions. 377169689Skan 378169689SkanTue Oct 17 21:39:05 1995 Jason Merrill <jason@yorick.cygnus.com> 379169689Skan 380169689Skan * parse.y (explicit_instantiation): Fix 'extern template' with no 381169689Skan return type. 382169689Skan 383169689SkanMon Oct 16 14:35:20 1995 Jason Merrill <jason@yorick.cygnus.com> 384169689Skan 385169689Skan * parse.y (explicit_instantiation): Support automatic instantiation 386169689Skan of constructors. 387169689Skan (named_class_head_*): Support out-of-class definition of nested 388169689Skan types. 389169689Skan 390169689SkanWed Oct 11 12:20:56 1995 Mike Stump <mrs@cygnus.com> 391169689Skan 392169689Skan * search.c (envelope_add_decl): New routine. Fix so that 393169689Skan methods are hidden in the same way that other members are. 394169689Skan (dfs_pushdecls): Cleanup and move functionality out of line, 395169689Skan into envelope_add_decl. 396169689Skan 397169689SkanTue Oct 10 15:46:01 1995 Mike Stump <mrs@cygnus.com> 398169689Skan 399169689Skan * typeck.c (mark_addressable): Only call assemble_external if we 400169689Skan have started the output file. 401169689Skan 402169689SkanTue Oct 10 11:27:18 1995 Jason Merrill <jason@yorick.cygnus.com> 403169689Skan 404169689Skan * decl.c (start_function): Fix earlier cv-quals change. 405169689Skan 406169689SkanMon Oct 9 23:53:05 1995 Mike Stump <mrs@cygnus.com> 407169689Skan 408169689Skan * parse.y (complex_direct_notype_declarator): Only push the class if 409169689Skan we are not already in the class. 410169689Skan 411169689SkanMon Oct 9 11:22:03 1995 Doug Evans <dje@canuck.cygnus.com> 412169689Skan 413169689Skan * decl.c (duplicate_decls): Call merge_machine_decl_attributes. 414169689Skan Update olddecl's attributes too. 415169689Skan (grokdeclarator): #if 0 out call to build_decl_attribute_variant. 416169689Skan * typeck.c (common_type): Call merge_machine_type_attributes. 417169689Skan 418169689SkanFri Oct 6 14:44:27 1995 Mike Stump <mrs@cygnus.com> 419169689Skan 420169689Skan * typeck.c (mark_addressable): Add missing call to 421169689Skan assemble_external. 422169689Skan 423169689SkanWed Oct 4 15:06:39 1995 Mike Stump <mrs@cygnus.com> 424169689Skan 425169689Skan * decl.c (store_parm_decls): Make sure the unwinder start comes 426169689Skan before the exception specification start. 427169689Skan * except.c (expand_exception_blocks): Make sure the unwinder end 428169689Skan comes after the terminate protected catch clause region and after 429169689Skan the end of the exception specification region. 430169689Skan 431169689SkanWed Oct 4 12:47:02 1995 Jason Merrill <jason@yorick.cygnus.com> 432169689Skan 433169689Skan * lex.c (real_yylex): Fix identifier case for linemode. 434169689Skan (handle_sysv_pragma): Don't abort when we see a pragma we don't 435169689Skan recognize. 436169689Skan 437169689SkanTue Oct 3 14:09:46 1995 Mike Stump <mrs@cygnus.com> 438169689Skan 439169689Skan * decl.c (store_parm_decls): Add a call to start_eh_unwinder. 440169689Skan * except.c (init_exception_processing): __throw doesn't take any 441169689Skan arguments. 442169689Skan (expand_builtin_throw): Likewise. Always use Pmode, instead of SImode 443169689Skan for all pointers. Use expand_builtin_return_addr to unwind the 444169689Skan first level off the stack. 445169689Skan (do_unwind): Always use Pmode, instead of SImode for all pointers. 446169689Skan (expand_exception_blocks): Add a call to end_eh_unwinder. 447169689Skan (start_eh_unwinder, end_eh_unwinder): New routines to build machine 448169689Skan independent stack unwinders for function/method calls. 449169689Skan 450169689SkanMon Oct 2 17:20:42 1995 Mike Stump <mrs@cygnus.com> 451169689Skan 452169689Skan * tree.c (unsave_expr_now): Make sure we process the argument list 453169689Skan of any called functions. Fixes incorrect code generation for 454169689Skan cleanups. 455169689Skan 456169689SkanMon Oct 2 13:04:16 1995 Mike Stump <mrs@cygnus.com> 457169689Skan 458169689Skan * typeck.c (get_member_function_from_ptrfunc): Save function if it 459169689Skan needs it. Cures core dump on things like (this->*(f()))(). 460169689Skan 461169689SkanSat Sep 23 22:51:25 1995 Jason Merrill <jason@phydeaux.cygnus.com> 462169689Skan 463169689Skan * decl.c (start_function): Conform to gcc cv-quals convention (no 464169689Skan expression has a cv-qualified type) in RESULT_DECLs. 465169689Skan * method.c (make_thunk): Likewise. 466169689Skan 467169689SkanFri Sep 22 10:21:13 1995 Mike Stump <mrs@cygnus.com> 468169689Skan 469169689Skan * decl.c (pushtag): Add in the namespace name for the tag. 470169689Skan 471169689SkanThu Sep 21 13:11:13 1995 Mike Stump <mrs@cygnus.com> 472169689Skan 473169689Skan * parse.y (maybe_base_class_list, base_class_list, base_class, 474169689Skan base_class_access_list): Make sure we see the typenames for base 475169689Skan classes. 476169689Skan * lex.c (see_typename): Instead of failing to see a typename when 477169689Skan there is no next token, perfer a typename, and get the next token. 478169689Skan 479169689SkanWed Sep 20 12:35:27 1995 Michael Meissner <meissner@cygnus.com> 480169689Skan 481169689Skan * decl.c (init_decl_processing): Add __builtin_expect. 482169689Skan 483169689SkanTue Sep 19 16:48:11 1995 Mike Stump <mrs@cygnus.com> 484169689Skan 485169689Skan * cvt.c (cp_convert_to_pointer): Don't allow leftover conversions to 486169689Skan or from pointer to member functions, they must all be handled before 487169689Skan this point. 488169689Skan 489169689SkanFri Sep 15 17:14:47 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 490169689Skan 491169689Skan * init.c (resolve_offset_ref): Fix wording of non-static member 492169689Skan being referenced as a static. 493169689Skan 494169689SkanFri Sep 15 12:39:11 1995 Jason Merrill <jason@phydeaux.cygnus.com> 495169689Skan 496169689Skan * typeck.c (build_indirect_ref): Only bash pointer if we actually 497169689Skan call build_expr_type_conversion. 498169689Skan 499169689SkanThu Sep 14 18:24:56 1995 Jason Merrill <jason@deneb.cygnus.com> 500169689Skan 501169689Skan * cvt.c (build_expr_type_conversion): Handle conversion from 502169689Skan reference. 503169689Skan * typeck.c (build_indirect_ref): Avoid infinite recursion. 504169689Skan 505169689SkanThu Sep 14 17:23:28 1995 Mike Stump <mrs@cygnus.com> 506169689Skan 507169689Skan * decl.c (expand_start_early_try_stmts): New routine to start a try 508169689Skan block at the start of the function, for function-try-blocks. 509169689Skan * cp-tree.h (expand_start_early_try_stmts): Declare it. 510169689Skan * parse.y (function_try_block): Use it, instead of doing it here, as 511169689Skan we don't want to include rtl.h here, as that conflicts with RETURN 512169689Skan in the parser. 513169689Skan 514169689SkanWed Sep 13 18:32:24 1995 Mike Stump <mrs@cygnus.com> 515169689Skan 516169689Skan * lex.c (reinit_parse_for_block): Support saving inline 517169689Skan function-try-blocks, uses peekyylex. 518169689Skan * parse.y (eat_saved_input): New rule, permit the parser to see that 519169689Skan END_OF_SAVED_INPUT is ok, as it can see this when parsing the 520169689Skan handlers of a function-try-block. 521169689Skan (fndef): Use it. 522169689Skan (component_decl): Make sure TRY and RETURN can come after fn.def2. 523169689Skan * spew.c (peekyylex): New routine to peek at what will come next. 524169689Skan 525169689SkanWed Sep 13 16:52:06 1995 Jason Merrill <jason@phydeaux.cygnus.com> 526169689Skan 527169689Skan * typeck.c (comptypes): Tighten up comparisons of template type 528169689Skan parms. 529169689Skan 530169689Skan * decl.c (duplicate_decls): Turn off whining about virtual functions 531169689Skan redeclared inline for now. 532169689Skan 533169689SkanWed Sep 13 11:13:40 1995 Mike Stump <mrs@cygnus.com> 534169689Skan 535169689Skan * decl.c (store_in_parms): New routine to put things before we 536169689Skan put base inits. 537169689Skan * cp-tree.h (store_in_parms): Declare it. 538169689Skan * decl.c (store_parm_decls): Use it to makr sure the starting of the 539169689Skan eh spec comes before base inits. 540169689Skan (finish_function): Use sequences instead of the obsolete 541169689Skan reorder_insns. 542169689Skan * parse.y (fndef): Enhance readability and maintainability. Update 543169689Skan to include function_try_block syntax. 544169689Skan (function_try_block): Add. 545169689Skan 546169689SkanTue Sep 12 17:43:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 547169689Skan 548169689Skan * call.c (convert_harshness): Use comptypes, not ==, to check if 549169689Skan TYPE and PARMTYPE are equivalent on a function type. 550169689Skan 551169689SkanTue Sep 12 17:31:33 1995 Douglas Rupp <drupp@cs.washington.edu> 552169689Skan 553169689Skan * Make-lang.in (cc1plus): Removed unnecessary $(exeext). 554169689Skan 555169689SkanMon Sep 11 23:24:07 1995 Mike Stump <mrs@cygnus.com> 556169689Skan 557169689Skan * except.c (expand_throw): Never allocate storage for thrown pointer 558169689Skan to objects. 559169689Skan 560169689SkanMon Sep 11 19:36:45 1995 Mike Stump <mrs@cygnus.com> 561169689Skan 562169689Skan * except.c (expand_start_catch_block): Pointers to objects come 563169689Skan back from catch matching already dereferenced, don't dereference 564169689Skan again. 565169689Skan 566169689SkanMon Sep 11 15:46:28 1995 Mike Stump <mrs@cygnus.com> 567169689Skan 568169689Skan * except.c (expand_throw): Only decay the throw expression, don't do 569169689Skan any default conversions. This is so that one can throw and catch 570169689Skan characters, and not have them match integers. 571169689Skan 572169689SkanMon Sep 11 13:46:45 1995 Mike Stump <mrs@cygnus.com> 573169689Skan 574169689Skan * error.c (dump_aggr_type): Deal with anonymous unions that don't 575169689Skan have a TYPE_NAME. 576169689Skan 577169689SkanFri Sep 8 20:40:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 578169689Skan 579169689Skan * lex.c (handle_sysv_pragma): Deal with getting a comma from yylex. 580169689Skan 581169689SkanFri Sep 8 15:51:41 1995 Mike Stump <mrs@cygnus.com> 582169689Skan 583169689Skan * except.c (expand_end_eh_spec): Handle empty EH specifications. 584169689Skan 585169689SkanFri Sep 8 15:27:22 1995 Mike Stump <mrs@cygnus.com> 586169689Skan 587169689Skan * cp-tree.h (expand_start_eh_spec): Declare new routine. 588169689Skan (expand_end_eh_spec): Likewise. 589169689Skan * decl.c (store_parm_decls): Call expand_start_eh_spec to process 590169689Skan exception specifications. 591169689Skan * except.c (expand_leftover_cleanups): Remove unused parameter. 592169689Skan (expand_end_catch_block): Likewise. 593169689Skan (expand_exception_blocks): Likewise. 594169689Skan (expand_start_eh_spec): New routine to mark the start of an 595169689Skan exception specification region. 596169689Skan (expand_end_eh_spec): New routine to mark the end of an exception 597169689Skan specification region. 598169689Skan (expand_exception_blocks): Call expand_end_eh_spec to process 599169689Skan exception specifications. 600169689Skan 601169689SkanFri Sep 8 14:40:48 1995 Per Bothner <bothner@kalessin.cygnus.com> 602169689Skan 603169689Skan * lex.c (do_identifier): Use global binding in preference of 604169689Skan dead for local variable. 605169689Skan 606169689SkanWed Sep 6 19:32:59 1995 Mike Stump <mrs@cygnus.com> 607169689Skan 608169689Skan * cp-tree.h (build_exception_variant): Remove used first argument. 609169689Skan * decl.c (duplicate_decls): Likewise. 610169689Skan (grokfndecl): Likewise. 611169689Skan (revert_static_member_fn): Likewise. 612169689Skan * decl2.c (grok_method_quals): Likewise. 613169689Skan * tree.c (build_exception_variant): Likewise. 614169689Skan * typeck.c (common_type): Likewise. 615169689Skan * decl2.c (grokclassfn): After changing the type, call 616169689Skan build_exception_variant, if necessary. 617169689Skan 618169689SkanTue Sep 5 15:56:27 1995 Mike Stump <mrs@cygnus.com> 619169689Skan 620169689Skan * except.c (expand_throw): Run cleanups for the throw expression. 621169689Skan 622169689SkanWed Aug 30 15:24:38 1995 Stephen L. Favor <sfavor@tigger.intecom.com> 623169689Skan 624169689Skan * except.c (expand_builtin_throw): Moved gen_label_rtx calls beyond 625169689Skan the store_parm_decls call which does initialization in the emit_* 626169689Skan code concerning label numbering. 627169689Skan 628169689SkanThu Aug 31 09:01:07 1995 Mike Stump <mrs@cygnus.com> 629169689Skan 630169689Skan * except.c (expand_internal_throw): Let the frontend be responsible 631169689Skan for managing all frontend EH parameters, the backend routine only 632169689Skan needs to deal with backend values. type and value are no longer 633169689Skan passed to __throw. 634169689Skan (init_exception_processing): Likewise. 635169689Skan (expand_start_all_catch): Likewise. 636169689Skan (expand_end_all_catch): Likewise. 637169689Skan (expand_leftover_cleanups): Likewise. 638169689Skan (expand_end_catch_block): Likewise. 639169689Skan (expand_builtin_throw): Likewise. 640169689Skan (expand_throw): Likewise. 641169689Skan 642169689SkanTue Aug 29 15:04:36 1995 Jason Merrill <jason@phydeaux.cygnus.com> 643169689Skan 644169689Skan * cp-tree.h (DECL_REAL_CONTEXT): Give the real declaration context 645169689Skan for a decl. 646169689Skan * decl.c (cp_finish_decl): Use it. 647169689Skan 648169689SkanTue Aug 29 10:30:27 1995 Mike Stump <mrs@cygnus.com> 649169689Skan 650169689Skan * except.c (expand_internal_throw): Oops, almost forgot type and 651169689Skan value are now trees. 652169689Skan 653169689SkanMon Aug 28 17:57:45 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 654169689Skan 655169689Skan Fix the attribute handling to make sure they get noted before we 656169689Skan create the function's RTL, in case they can affect that. 657169689Skan * decl.c (grokfndecl): New arg ATTRLIST. Run 658169689Skan cplus_decl_attributes before creating the decl's rtl. 659169689Skan (grokdeclarator): New arg ATTRLIST, passed down into grokfndecl. 660169689Skan (shadow_tag, groktypename, start_decl, start_method): Pass a 661169689Skan NULL_TREE to grokdeclarator's new last arg. 662169689Skan * decl2.c (grokfield): New arg ATTRLIST, passed into grokdeclarator. 663169689Skan (grokbitfield, grokoptypename): Pass a NULL_TREE to 664169689Skan grokdeclarator's new last arg. 665169689Skan * except.c (expand_start_catch_block): Likewise. 666169689Skan * pt.c (process_template_parm, end_template_decl, 667169689Skan do_function_instantiation): Likewise. 668169689Skan * cp-tree.h (grokfield): Add arg. 669169689Skan (grokdeclarator): Move the prototype from here... 670169689Skan * decl.h: ...to here. 671169689Skan * lex.c (cons_up_default_function): Pass NULL_TREE to grokfield 672169689Skan ATTRLIST argument. 673169689Skan * parse.y: Create a list for the grokfield arg where appropriate, 674169689Skan and pass it down instead of calling cplus_decl_attributes. 675169689Skan 676169689SkanMon Aug 28 15:07:24 1995 Mike Stump <mrs@cygnus.com> 677169689Skan 678169689Skan * except.c: Always allow turning on exception handling. Allow cross 679169689Skan compilations to use EH. 680169689Skan 681169689SkanThu Aug 24 17:39:24 1995 Mike Stump <mrs@cygnus.com> 682169689Skan 683169689Skan * except.c (saved_pc, saved_throw_type, saved_throw_value): Use 684169689Skan trees, instead of rtxs, and don't depend on using special machine 685169689Skan dependent registers. 686169689Skan (expand_internal_throw): Likewise. 687169689Skan (init_exception_processing): Likewise. 688169689Skan (expand_start_all_catch): Likewise. 689169689Skan (expand_end_all_catch): Likewise. 690169689Skan (expand_start_catch_block): Likewise. 691169689Skan (expand_leftover_cleanups): Likewise. 692169689Skan (expand_end_catch_block): Likewise. 693169689Skan (expand_builtin_throw): Likewise. 694169689Skan (expand_throw): Likewise. 695169689Skan 696169689SkanWed Aug 23 17:25:51 1995 Jason Merrill <jason@phydeaux.cygnus.com> 697169689Skan 698169689Skan * cvt.c (build_expr_type_conversion): Handle conversions to 699169689Skan reference types. 700169689Skan 701169689SkanWed Aug 23 15:33:59 1995 Mike Stump <mrs@cygnus.com> 702169689Skan 703169689Skan * except.c (do_unwind): Work around backend bug with -fpic. 704169689Skan 705169689SkanTue Aug 22 17:20:07 1995 Per Bothner <bothner@kalessin.cygnus.com> 706169689Skan 707169689Skan * decl2.c (flag_new_for_scope): Add a new mode that follows ANSI 708169689Skan for-scoping, but supports (and warns about) old programs. 709169689Skan Make the new mode (with value 1) the default. 710169689Skan (lang_f_options): The on-value for flag_new_for_scope is now 2. 711169689Skan * cp-tree.h (DECL_DEAD_FOR_LOCAL, DECL_ERROR_REPORTED): New macros 712169689Skan (DECL_SHADOWED_FOR_VAR): Likewise. 713169689Skan * decl.c (struct binding_level): New fields dead_vars_from_for 714169689Skan and is_for_scope. 715169689Skan (note_level_for_for): New function. 716169689Skan (poplevel): Special processing if is_for_scope. 717169689Skan (pushdecl): Warn if for-scope variable shadows local. 718169689Skan * lex.c (do_identifier): Handle old (non-ANSI) for scoping, 719169689Skan and warn if conflicts. 720169689Skan * parse.y (FOR): Call note_level_for_for. 721169689Skan 722169689SkanMon Aug 21 10:28:31 1995 Jason Merrill <jason@deneb.cygnus.com> 723169689Skan 724169689Skan * decl2.c (import_export_inline): Class interface hackery does not 725169689Skan apply to synthesized methods. 726169689Skan 727169689SkanSun Aug 20 16:29:00 1995 Mike Stump <mrs@cygnus.com> 728169689Skan 729169689Skan * search.c (virtual_context): Find the right context more often. 730169689Skan Solves a `recoverable compiler error, fixups for virtual function' 731169689Skan problem. 732169689Skan 733169689SkanSun Aug 20 13:53:24 1995 Mike Stump <mrs@cygnus.com> 734169689Skan 735169689Skan * except.c (expand_start_all_catch): Ensure that we always transfer 736169689Skan control to the right EH handler, by rethrowing the end label on the 737169689Skan region, instead of hoping we are nested and falling through. 738169689Skan (expand_leftover_cleanups): Likewise. 739169689Skan (end_protect): Since we now rethrow the end label, put a 740169689Skan nop after it, so that outer regions are recognized. 741169689Skan * init.c (build_vec_delete_1): New routine to handle most of vector 742169689Skan deleting, all code moved here from build_vec_delete. 743169689Skan (build_array_eh_cleanup): Use build_vec_delete_1 to do all the real 744169689Skan work. 745169689Skan (expand_vec_init): If the array needs partial destructing, setup an 746169689Skan EH region to handle it. 747169689Skan (build_vec_delete): Move lots of code to build_vec_delete_1, use 748169689Skan build_vec_delete_1 to do the grunt work. 749169689Skan 750169689SkanSat Aug 19 14:25:33 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 751169689Skan 752169689Skan Handle decl attributes properly for function definitions without 753169689Skan previous attribute-loaded declarations. 754169689Skan * decl.c (start_function): New arg ATTRS. Add a call to 755169689Skan cplus_decl_attributes with it before we create the RTL. 756169689Skan * cp-tree.h (start_function): Update prototype. 757169689Skan * parse.y (fn.def1): Pass ATTRS into start_function instead of 758169689Skan trying to call cplus_decl_attributes too late. Pass a NULL_TREE 759169689Skan for other use. 760169689Skan * decl2.c (finish_file): Pass NULL_TREE as fourth arg to 761169689Skan start_function. 762169689Skan * method.c (synthesize_method): Likewise. 763169689Skan * except.c (expand_builtin_throw): Likewise for start on __throw. 764169689Skan 765169689SkanSat Aug 19 13:36:08 1995 Mike Stump <mrs@cygnus.com> 766169689Skan 767169689Skan * class.c (set_rtti_entry): Turn on -fvtable-thunk -frtti support. 768169689Skan This changes -fvtable-thunks vtable layout, so a recompile will be 769169689Skan necessary, if you use -fvtable-thunks. 770169689Skan (get_vtable_entry): Use n, instead of i to be consistent with the 771169689Skan rest of the compiler. 772169689Skan (get_vtable_entry_n): Likewise. 773169689Skan (add_virtual_function): Add a slot for the tdesc, if -fvtable-thunks 774169689Skan are being used. 775169689Skan (finish_struct_1): Likewise. 776169689Skan (skip_rtti_stuff): New routine to collapse similar code from many 777169689Skan different parts of the compiler. I think I got them all. 778169689Skan (modify_one_vtable): Use it. 779169689Skan (fixup_vtable_deltas1): Likewise. 780169689Skan (override_one_vtable): Likewise. 781169689Skan * decl2.c (mark_vtable_entries): Likewise. 782169689Skan * tree.c (debug_binfo): Likewise. 783169689Skan * search.c (expand_upcast_fixups): Likewise. 784169689Skan (get_abstract_virtuals_1): Likewise. Use virtuals, instead of tmp to 785169689Skan consistent with the rest of the compiler. 786169689Skan (get_abstract_virtuals): Likewise. 787169689Skan * cp-tree.h (skip_rtti_stuff): New routine, declare it. 788169689Skan * gc.c (build_headof): Support -fvtable-thunk and -frtti together. 789169689Skan (build_typeid): Likewise. 790169689Skan (build_classof): Remove old style way of doing rtti. Remove support 791169689Skan for `classof' and `headof'. 792169689Skan * gxx.gperf: Likewise. 793169689Skan * hash.h: Likewise. 794169689Skan * parse.y: Likewise. 795169689Skan 796169689SkanFri Aug 18 17:31:58 1995 Jason Merrill <jason@deneb.cygnus.com> 797169689Skan 798169689Skan * decl.c (start_function): Clear ctor_label and dtor_label. 799169689Skan 800169689Skan * class.c (finish_struct_1): Fix handling of access decls. 801169689Skan 802169689SkanTue Aug 15 19:21:54 1995 Jason Merrill <jason@phydeaux.cygnus.com> 803169689Skan 804169689Skan * class.c (finish_struct): Only do minimal processing here, so it 805169689Skan can be used for class template definitions, as well. 806169689Skan (finish_struct_1): New function with the rest of the code. 807169689Skan 808169689SkanTue Aug 15 09:46:16 1995 Mike Stump <mrs@cygnus.com> 809169689Skan 810169689Skan * class.c (prepare_fresh_vtable): On second though, always build the 811169689Skan offset (see Aug 10 change), unless -fvtable-thunks is given. It 812169689Skan does this by calling the new routine set_rtti_entry. 813169689Skan (finish_struct): Likewise. 814169689Skan (set_rtti_entry): New routine to update the rtti information at the 815169689Skan start of the vtable. 816169689Skan 817169689SkanMon Aug 14 12:21:22 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 818169689Skan 819169689Skan * error.c (dump_decl, case IDENTIFIER_NODE): Only work on a dtor 820169689Skan if it's declared in the C++ language spec. 821169689Skan (dump_function_decl): Likewise. 822169689Skan (dump_function_name): Likewise. 823169689Skan (ident_fndecl): Make sure we got something back from lookup_name. 824169689Skan * decl.c (start_function): Likewise. 825169689Skan 826169689SkanFri Aug 11 16:52:15 1995 Jason Merrill <jason@phydeaux.cygnus.com> 827169689Skan 828169689Skan * call.c (build_method_call): Don't call build_new when calling a 829169689Skan constructor without an instance. 830169689Skan 831169689SkanThu Aug 10 20:00:17 1995 Mike Stump <mrs@cygnus.com> 832169689Skan 833169689Skan * class.c (prepare_fresh_vtable): Always build the offset to the 834169689Skan complete object, as it doesn't cost much. This allows dynamic_cast 835169689Skan to void * to work when -frtti isn't given. 836169689Skan (finish_struct): Likewise. 837169689Skan 838169689SkanThu Aug 10 16:31:28 1995 Mike Stump <mrs@cygnus.com> 839169689Skan 840169689Skan * except.c (build_eh_type): Split out some functionality to new 841169689Skan routine named build_eh_type_type. 842169689Skan (build_eh_type_type): New routine. 843169689Skan (expand_start_catch_block): Use build_eh_type_type, as we never want 844169689Skan the dynamic type of the catch parameter, just the static type. 845169689Skan Fixes core dumps when -frtti is used and one catchs pointers to 846169689Skan classes. 847169689Skan 848169689SkanThu Aug 10 14:55:29 1995 Mike Stump <mrs@cygnus.com> 849169689Skan 850169689Skan * except.c (expand_builtin_throw): Since we now use normal calling 851169689Skan conventions for __throw, we have to remove the first layer off the 852169689Skan stack, so that the next context we search for handlers is the outer 853169689Skan context instead of the context that had the call to __throw, if we 854169689Skan don't immediately find the desired context. 855169689Skan 856169689SkanTue Aug 8 17:44:23 1995 Jason Merrill <jason@phydeaux.cygnus.com> 857169689Skan 858169689Skan * tree.c (cp_expand_decl_cleanup): Returns int, not tree. 859169689Skan * cp-tree.h: Update. 860169689Skan 861169689Skan * parse.y (template_type_parm): Add support for `typename'. 862169689Skan 863169689SkanTue Aug 8 12:06:31 1995 Mike Stump <mrs@cygnus.com> 864169689Skan 865169689Skan * except.c (expand_internal_throw): New internal routine to throw a 866169689Skan value. 867169689Skan (expand_end_all_catch, expand_leftover_cleanups): All throwers 868169689Skan changed to use `expand_internal_throw' instead of jumping to throw 869169689Skan label. 870169689Skan (expand_end_catch_block, expand_throw): Likewise. 871169689Skan (throw_label): Removed. 872169689Skan (expand_builtin_throw): Changed so that EH parameters are passed by 873169689Skan normal function call conventions. Completes Aug 4th work. 874169689Skan 875169689SkanFri Aug 4 17:17:08 1995 Mike Stump <mrs@cygnus.com> 876169689Skan 877169689Skan * cp-tree.h (expand_builtin_throw): Declare it. 878169689Skan * decl2.c (finish_file): Call expand_builtin_throw. 879169689Skan * except.c (make_first_label): Remove. 880169689Skan (init_exception_processing): Don't use a LABEL_REF for throw_label, 881169689Skan instead use a SYMBOL_REF, this is so that we don't use LABEL_REFs in 882169689Skan other functions that don't really appear in those functions. This 883169689Skan solves a problem where cc1plus consumed exponential amounts of 884169689Skan memory when -Wall was used. 885169689Skan (expand_end_all_catch, expand_leftover_cleanups, 886169689Skan expand_end_catch_block, expand_throw): Change all uses of 887169689Skan throw_label to match new style. 888169689Skan (do_unwind): Rename parameter to inner_throw_label, as it is now 889169689Skan different from throw_label. Also, assume that our caller will wrap 890169689Skan the passed label with a LABEL_REF, if needed. 891169689Skan (expand_builtin_throw): Make external, change so that the generated 892169689Skan throw is now a real function. 893169689Skan (expand_exception_blocks): Never generate throw code inside another 894169689Skan function. 895169689Skan 896169689SkanFri Aug 4 12:20:02 1995 Mike Stump <mrs@cygnus.com> 897169689Skan 898169689Skan * decl.c (grokdeclarator): Move checking of mutable const objects 899169689Skan and mutable static objects down, as we might decide during parsing 900169689Skan to unset staticp or constp (for example, when const is part of the 901169689Skan object being pointed to). 902169689Skan 903169689SkanThu Aug 3 17:13:43 1995 Mike Stump <mrs@cygnus.com> 904169689Skan 905169689Skan * except.c (output_exception_table_entry): Enhance portability to 906169689Skan weird machines. 907169689Skan (emit_exception_table): Likewise. 908169689Skan 909169689SkanThu Aug 3 16:41:38 1995 Mike Stump <mrs@cygnus.com> 910169689Skan 911169689Skan * typeck.c (build_ptrmemfunc): Handle casting of pointer to 912169689Skan non-virtual member functions. 913169689Skan 914169689SkanWed Aug 2 11:58:25 1995 Mike Stump <mrs@cygnus.com> 915169689Skan 916169689Skan * gc.c (build_typeid): Strip cv qualifiers so that const T&, T&, T 917169689Skan and const T all match. 918169689Skan 919169689SkanWed Aug 2 11:25:33 1995 Mike Stump <mrs@cygnus.com> 920169689Skan 921169689Skan * except.c (build_eh_type): Strip cv qualifiers so that const T&, 922169689Skan T&, T and const T all match. 923169689Skan 924169689SkanTue Aug 1 14:20:16 1995 Mike Stump <mrs@cygnus.com> 925169689Skan 926169689Skan * except.c: Fix up comments, cleanup code and eliminate exceptNode, 927169689Skan exceptStack, exceptstack, push_except_stmts, pop_except_stmts, 928169689Skan new_except_stack, push_last_insn, pop_last_insn, insn_save_node and 929169689Skan InsnSave. Also, numerous speed improvements, and correctness 930169689Skan improvements. Double faulting in all situations should now be 931169689Skan handled correctly. 932169689Skan (expand_start_all_catch): Instead of having many terminate protected 933169689Skan regions, just have one. 934169689Skan (expand_start_catch_block): No longer have to protect 935169689Skan false_label_rtx, as it isn't used for EH region marking. 936169689Skan (expand_end_catch_block): Expand out EH cleanups here by using 937169689Skan expand_leftover_cleanups. 938169689Skan (expand_end_all_catch): Use sequences instead of playing with insn 939169689Skan links directly. 940169689Skan (expand_exception_blocks): Likewise. Also protect all catch clauses 941169689Skan with one terminate region. 942169689Skan 943169689SkanMon Jul 31 13:24:30 1995 Jason Merrill <jason@phydeaux.cygnus.com> 944169689Skan 945169689Skan * method.c (report_type_mismatch): Don't talk about an object 946169689Skan parameter for non-methods. 947169689Skan 948169689SkanSun Jul 30 13:13:02 1995 Jason Merrill <jason@phydeaux.cygnus.com> 949169689Skan 950169689Skan * class.c (finish_struct): Catch private and protected members of 951169689Skan anonymous unions here. 952169689Skan * decl2.c (finish_anon_union): And here. 953169689Skan * parse.y: Instead of here. 954169689Skan 955169689Skan * errfn.c (ARGSLIST): Support passing four args. 956169689Skan * error.c (cv_as_string): New function. 957169689Skan (cp_printers): Add it. 958169689Skan * call.c (build_method_call): Report 'const' at end of pseudo-decl. 959169689Skan 960169689Skan * method.c (report_type_mismatch): Deal with a bad_arg of 0. 961169689Skan 962169689Skan * init.c (expand_aggr_init): Handle volatile objects, too. 963169689Skan 964169689SkanSat Jul 29 13:42:03 1995 Jason Merrill <jason@phydeaux.cygnus.com> 965169689Skan 966169689Skan * decl.c (struct binding_level): Keep list of incomplete decls. 967169689Skan (print_binding_level): Use list_length to count them. 968169689Skan (pushdecl): Build up the list. 969169689Skan (hack_incomplete_structures): Walk it and prune completed decls. 970169689Skan 971169689SkanFri Jul 28 15:26:44 1995 Jason Merrill <jason@phydeaux.cygnus.com> 972169689Skan 973169689Skan * typeck.c (comp_target_types): Don't check const and volatile for 974169689Skan function types. 975169689Skan (comp_ptr_ttypes_real): Likewise. 976169689Skan 977169689SkanThu Jul 27 15:40:48 1995 Jason Merrill <jason@phydeaux.cygnus.com> 978169689Skan 979169689Skan * typeck.c (comp_target_types): Fix. 980169689Skan 981169689SkanThu Jul 27 15:10:48 1995 Mike Stump <mrs@cygnus.com> 982169689Skan 983169689Skan * cp-tree.h (unsave_expr_now, build_unsave_expr, 984169689Skan cp_expand_decl_cleanup): Declare new routines. 985169689Skan * decl.c (cp_finish_decl, store_parm_decls, 986169689Skan hack_incomplete_structures): Change all cals from 987169689Skan expand_decl_cleanup to cp_expand_decl_cleanup. 988169689Skan * gc.c (protect_value_from_gc): Likewise. 989169689Skan * expr.c (cplus_expand_expr): Handle UNSAVE_EXPRs. 990169689Skan * tree.c (unsave_expr): New routine to build an UNSAVE_EXPR. 991169689Skan (unsave_expr_now): Backend routine used by tree expander. 992169689Skan (cp_expand_decl_cleanup): Wrap second argument in an UNSAVE_EXPR to 993169689Skan work around a limitation in the backend. The backend uses the 994169689Skan cleanups multiple times, on disjoint control flows, so we cannot 995169689Skan pass unsaved SAVE_EXPRs to the backend. 996169689Skan * tree.def (UNSAVE_EXPR): New tree code. 997169689Skan * typeck.c (c_expand_return): Move goto/return code up inside 998169689Skan conditional, as we don't always want to do this, we only want to do 999169689Skan this when we don't otherwise finish with this control flow. 1000169689Skan 1001169689SkanThu Jul 27 10:38:43 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1002169689Skan 1003169689Skan * parse.y (typespec): Only complain about typeof if we're not 1004169689Skan getting it from a system header. 1005169689Skan 1006169689SkanThu Jul 27 10:26:23 1995 Doug Evans <dje@canuck.cygnus.com> 1007169689Skan 1008169689Skan Clean up prefix attribute handling. 1009169689Skan * parse.y (reserved_declspecs): Link prefix attributes with declspecs. 1010169689Skan (declmods): Likewise. 1011169689Skan (all rules that reference typed_declspecs and declmods): Call 1012169689Skan split_specs_attrs or strip_attrs to separate declspecs and attrs. 1013169689Skan (lang_extdef): Delete resetting of prefix_attributes. 1014169689Skan (template_def, notype_declarator rule): Use NULL_TREE for 1015169689Skan prefix_attributes. 1016169689Skan (condition): Use NULL_TREE for prefix_attributes. 1017169689Skan (setattrs): Deleted. 1018169689Skan (nomods_initdcl0): Set prefix_attributes to NULL_TREE. 1019169689Skan (component_decl): Delete resetting of prefix_attributes. 1020169689Skan (component_decl_1, notype_components rule): Use NULL_TREE for 1021169689Skan prefix_attributes. 1022169689Skan (simple_stmt): Delete resetting of prefix_attributes. 1023169689Skan 1024169689SkanMon Jul 24 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1025169689Skan 1026169689Skan * call.c (convert_harshness): Deal with reference conversions before 1027169689Skan others. Actually do array->pointer decay. Call comp_target_types 1028169689Skan with pointer types rather than their targets. 1029169689Skan 1030169689Skan * typeck.c (comp_target_types): Avoid assigning D const * to B *. 1031169689Skan 1032169689SkanMon Jul 24 08:54:46 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1033169689Skan 1034169689Skan * pt.c (to_be_restored): Move decl to global scope. 1035169689Skan 1036169689SkanSat Jul 22 12:22:11 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1037169689Skan 1038169689Skan * decl.c (start_decl): Put back clearing of DECL_IN_AGGR_P. 1039169689Skan 1040169689SkanFri Jul 21 17:09:02 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1041169689Skan 1042169689Skan * decl.c (grokdeclarator): Downgrade error about 'extern int A::i' 1043169689Skan to pedwarn. 1044169689Skan 1045169689Skan * pt.c (instantiate_template): Also avoid instantiation if the 1046169689Skan function has already been declared to be a specialization. 1047169689Skan 1048169689Skan * decl2.c (check_classfn): Ignore cname argument, and return the 1049169689Skan matching function. 1050169689Skan 1051169689Skan * decl.c (start_decl): Handle declarations of member functions 1052169689Skan outside of the class (i.e. specialization declarations). 1053169689Skan 1054169689SkanThu Jul 20 10:34:48 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1055169689Skan 1056169689Skan * class.c (finish_struct): Don't mess with the type of bitfields. 1057169689Skan 1058169689Skan * various.c: s/TYPE_POINTER_TO/build_pointer_type/. 1059169689Skan 1060169689SkanThu Jul 20 01:43:10 1995 Mike Stump <mrs@cygnus.com> 1061169689Skan 1062169689Skan * init.c (expand_aggr_init): Assume LOOKUP_ONLYCONVERTING if init 1063169689Skan is not a parameter list (TREE_LIST). 1064169689Skan (expand_default_init): If LOOKUP_ONLYCONVERTING is set, then set 1065169689Skan LOOKUP_NO_CONVERSION so that we don't allow two-level conversions, 1066169689Skan but don't set it otherwise. 1067169689Skan 1068169689SkanWed Jul 19 20:32:01 1995 Mike Stump <mrs@cygnus.com> 1069169689Skan 1070169689Skan * init.c (expand_default_init): Don't allow two-level conversions 1071169689Skan during construction. 1072169689Skan 1073169689SkanWed Jul 19 18:06:37 1995 Mike Stump <mrs@cygnus.com> 1074169689Skan 1075169689Skan * gc.c (build_headof): The type of dyncasting to a pointer to cv 1076169689Skan void, should be pointer to cv void. 1077169689Skan 1078169689SkanWed Jul 19 17:25:43 1995 Mike Stump <mrs@cygnus.com> 1079169689Skan 1080169689Skan * gc.c (build_dynamic_cast): Allow casting in const. 1081169689Skan 1082169689SkanWed Jul 19 16:34:27 1995 Mike Stump <mrs@cygnus.com> 1083169689Skan 1084169689Skan * typeck.c (build_const_cast): If we are passed error_mark_node, 1085169689Skan return it. 1086169689Skan 1087169689SkanWed Jul 19 15:24:48 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1088169689Skan 1089169689Skan * class.c (push_nested_class): Make sure TYPE is non-nil. 1090169689Skan 1091169689Skan * cvt.c (type_promotes_to): Watch for error_mark_node on the 1092169689Skan incoming TYPE. 1093169689Skan 1094169689SkanWed Jul 19 13:23:12 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu> 1095169689Skan 1096169689Skan * cp-tree.h (SIGTABLE_VT_OFF_NAME): Renamed from SIGTABLE_OFFSET_NAME. 1097169689Skan (SIGTABLE_VB_OFF_NAME): New macro. 1098169689Skan (vt_off_identifier): Renamed from offset_identifier. 1099169689Skan (vb_off_identifier): Added extern declaration. 1100169689Skan 1101169689Skan * decl.c (vt_off_identifier): Renamed from offset identifier. 1102169689Skan (vb_off_identifier): New variable to hold the identifier for the 1103169689Skan sigtable field vb_off. 1104169689Skan (init_decl_processing): Initialize vb_off_identifier. 1105169689Skan Renamed vt_off_identifier from offset_identifier. 1106169689Skan * sig.c (build_signature_method_call): Renamed offset_identifier and 1107169689Skan local variable offset to vt_off_identifier and vt_off, respectively. 1108169689Skan * sig.c (build_signature_table_constructor): Renamed offset to vt_off. 1109169689Skan 1110169689Skan * decl.c (init_decl_processing): Add vb_off field to 1111169689Skan sigtable_entry_type. Reorder fields so that pfn gets properly 1112169689Skan aligned at a 64 bit boundary on the Alpha. 1113169689Skan * sig.c (build_signature_table_constructor): Build the constructor 1114169689Skan according to the new layout. Set the vb_off field to -1 for now. 1115169689Skan 1116169689Skan * decl.c (init_decl_processing): Align sigtable_entry_type on word 1117169689Skan boundaries instead of double word boundaries to save space. 1118169689Skan 1119169689SkanTue Jul 18 16:58:37 1995 Mike Stump <mrs@cygnus.com> 1120169689Skan 1121169689Skan * cvt.c (cp_convert): Always call build_cplus_new for a ctor. 1122169689Skan 1123169689SkanTue Jul 18 14:24:53 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1124169689Skan 1125169689Skan * parse.y (opt.component_decl_list): Only forbid private/protected 1126169689Skan in anonymous unions. We need to make this know when the type is 1127169689Skan defined for an object, to not give the error. 1128169689Skan 1129169689SkanMon Jul 17 14:22:44 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1130169689Skan 1131169689Skan * parse.y (opt.component_decl_list): Don't allow access control 1132169689Skan as private or protected for union members. 1133169689Skan 1134169689SkanSun Jul 16 14:01:00 1995 Jim Wilson <wilson@chestnut.cygnus.com> 1135169689Skan 1136169689Skan * lex.c (check_newline): For 'p' case, move goto skipline line to 1137169689Skan before end brace for 'pragma'. 1138169689Skan 1139169689SkanFri Jul 7 13:55:58 1995 Mike Stump <mrs@cygnus.com> 1140169689Skan 1141169689Skan * g++.1: Tiny updates. 1142169689Skan 1143169689SkanFri Jul 7 13:05:20 1995 Mike Stump <mrs@cygnus.com> 1144169689Skan 1145169689Skan * decl.c (cp_finish_decl): Only destruct local static variables if 1146169689Skan they are constructed, and only construct the first time control 1147169689Skan passes completely through its declaration (if not initialized with a 1148169689Skan constant-expression). 1149169689Skan (expand_static_init): Likewise. 1150169689Skan 1151169689SkanWed Jul 5 14:05:04 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1152169689Skan 1153169689Skan * typeck.c (comptypes, case OFFSET_REF): If either offset basetype 1154169689Skan is a TEMPLATE_TYPE_PARM, give a match. 1155169689Skan 1156169689SkanFri Jun 30 15:42:57 1995 Mike Stump <mrs@cygnus.com> 1157169689Skan 1158169689Skan * method.c (build_overload_value): Handle encoding of null pointer 1159169689Skan constants (or any pointer with a constant numeric value) for 1160169689Skan templates. 1161169689Skan 1162169689SkanFri Jun 30 13:45:51 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1163169689Skan 1164169689Skan * call.c (convert_harshness): Add QUAL_CODE when we're faced with 1165169689Skan const vs non-const for void conversions. 1166169689Skan 1167169689SkanFri Jun 30 10:19:52 1995 Mike Stump <mrs@cygnus.com> 1168169689Skan 1169169689Skan * except.c (expand_start_all_catch): Fix problem with finding an 1170169689Skan outer nested try block when there is no code to separate it from an 1171169689Skan inner try block. 1172169689Skan 1173169689SkanFri Jun 30 02:22:26 1995 Mike Stump <mrs@cygnus.com> 1174169689Skan 1175169689Skan * search.c (dfs_pushdecls): Consume 2 or 3 orders of magnitude less 1176169689Skan memory please when virtual bases are used. 1177169689Skan 1178169689SkanThu Jun 29 19:03:47 1995 Mike Stump <mrs@cygnus.com> 1179169689Skan 1180169689Skan * class.c (build_vbase_path): Avoid testing things that cannot be 1181169689Skan null to see if they are null. 1182169689Skan * cvt.c (convert_pointer_to_vbase): Remove code that doesn't work. 1183169689Skan * decl.c (finish_function): Pass a type into the new 1184169689Skan convert_pointer_to_vbase instead of a binfo. 1185169689Skan * search.c (convert_pointer_to_vbase): Rewritten to use get_vbase 1186169689Skan and convert_pointer_to_real. 1187169689Skan (expand_indirect_vtbls_init): Use convert_pointer_to_vbase instead 1188169689Skan of the more cryptic call to get_vbase. 1189169689Skan 1190169689SkanThu Jun 29 09:35:05 1995 Mike Stump <mrs@cygnus.com> 1191169689Skan 1192169689Skan * decl.c (BOOL_TYPE_SIZE): Fix broken SLOW_BYTE_ACCESS check. 1193169689Skan 1194169689SkanThu Jun 29 03:43:55 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1195169689Skan 1196169689Skan * pt.c (instantiate_template): Don't strip 'this' twice. 1197169689Skan 1198169689Skan * pt.c (coerce_template_parms): Allow null pointer constants. 1199169689Skan 1200169689Skan * decl.c (revert_static_member_fn): But only if DECL_ARGUMENTS is 1201169689Skan set. 1202169689Skan 1203169689SkanWed Jun 28 18:39:03 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1204169689Skan 1205169689Skan * decl.c (revert_static_member_fn): Also remove 'this' from 1206169689Skan DECL_ARGUMENTS. 1207169689Skan * decl2.c (check_classfn): Don't revert this function until we get a 1208169689Skan match. 1209169689Skan 1210169689SkanWed Jun 28 14:07:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1211169689Skan 1212169689Skan * parse.y (component_decl): Clear PREFIX_ATTRIBUTES here. 1213169689Skan 1214169689SkanWed Jun 28 11:05:13 1995 Mike Stump <mrs@cygnus.com> 1215169689Skan 1216169689Skan * decl2.c (finish_file): Handle global vector news. 1217169689Skan * init.c (build_new): Encode vector news so that later we will know 1218169689Skan how many elements there are. 1219169689Skan 1220169689SkanMon Jun 26 13:38:06 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1221169689Skan 1222169689Skan * expr.c (cplus_expand_expr): Don't mess with temp slots. 1223169689Skan 1224169689Skan * decl2.c (warn_if_unknown_interface): Don't crash if tinst_for_decl 1225169689Skan returns null. 1226169689Skan 1227169689Skan * decl2.c (check_classfn): Use revert_static_member_fn. 1228169689Skan * decl.c (revert_static_member_fn): Diagnose static member functions 1229169689Skan declared const or volatile. 1230169689Skan 1231169689Skan * decl2.c (grokfield): Check for missing default args here, too. 1232169689Skan (check_default_args): Function to do the checking. 1233169689Skan * decl.c (pushdecl): Use it. 1234169689Skan 1235169689Skan * decl.c (pushdecl): Don't warn about shadowing a member of `this' 1236169689Skan if there is no `this'. 1237169689Skan 1238169689SkanSun Jun 25 11:34:25 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1239169689Skan 1240169689Skan * call.c (build_method_call): Downgrade 'called before definition' 1241169689Skan to a warning, as it ought to go away after Monterey. 1242169689Skan 1243169689SkanSat Jun 24 14:18:42 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1244169689Skan 1245169689Skan * pt.c (coerce_template_parms): Don't do extra checking on pointer 1246169689Skan to member arguments. 1247169689Skan 1248169689Skan * class.c (finish_struct): const and reference members don't prevent 1249169689Skan a class from being an aggregate. 1250169689Skan 1251169689Skan * class.c (finish_struct): Signatures are always aggregates. 1252169689Skan 1253169689SkanFri Jun 23 17:20:29 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1254169689Skan 1255169689Skan * decl2.c (check_classfn): Improve error message. 1256169689Skan 1257169689Skan * pt.c (tsubst): Handle PROMOTE_PROTOTYPES. 1258169689Skan 1259169689SkanThu Jun 22 01:50:42 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1260169689Skan 1261169689Skan * typeck.c (comptypes): Don't ignore method quals. 1262169689Skan 1263169689Skan * class.c (finish_struct): Non-abstract virtuals are always USED. 1264169689Skan 1265169689Skan * decl.c (build_ptrmemfunc_type): The underlying union type isn't 1266169689Skan IS_AGGR_TYPE, either. 1267169689Skan * class.c (finish_struct): Use CLASSTYPE_NON_AGGREGATE instead. 1268169689Skan * cp-tree.h: Likewise. 1269169689Skan 1270169689Skan * cp-tree.h (lang_type): Add aggregate. 1271169689Skan (CLASSTYPE_AGGREGATE): New macro. 1272169689Skan (TYPE_NON_AGGREGATE_CLASS): Likewise. 1273169689Skan * class.c (finish_struct): Determine whether a class is an 1274169689Skan aggregate. 1275169689Skan * decl.c (cp_finish_decl): Check TYPE_NON_AGGREGATE_CLASS instead of 1276169689Skan TYPE_NEEDS_CONSTRUCTING. 1277169689Skan * typeck2.c (digest_init): Check TYPE_NON_AGGREGATE_CLASS for 1278169689Skan subobjects, too. 1279169689Skan 1280169689Skan * pt.c (tsubst, PARM_TYPE): Propagate DECL_ARTIFICIAL. 1281169689Skan 1282169689Skan * decl.c (start_function): For pre-parsed functions, layout all of 1283169689Skan the parm decls again. 1284169689Skan (grokvardecl): TREE_PUBLIC depends on DECL_THIS_EXTERN, not 1285169689Skan DECL_EXTERNAL. 1286169689Skan 1287169689Skan * pt.c (coerce_template_parms): Improve checking for invalid 1288169689Skan template parms. 1289169689Skan 1290169689SkanWed Jun 21 12:01:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1291169689Skan 1292169689Skan * decl.c (grokdeclarator): Forbid declaration of a static member 1293169689Skan with the same name as its enclosing class. 1294169689Skan 1295169689SkanMon Jun 19 10:28:14 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1296169689Skan 1297169689Skan * decl.c (finish_function): Clear current_class_decl. 1298169689Skan 1299169689Skan * typeck.c (build_conditional_expr): Use convert (boolean_type_node 1300169689Skan instead of truthvalue_conversion. 1301169689Skan 1302169689Skan * class.c (finish_struct): A data member with the same name as the 1303169689Skan class doesn't suppress constructors. 1304169689Skan 1305169689SkanFri Jun 16 18:11:39 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu> 1306169689Skan 1307169689Skan * decl.c (start_function): If current_class_decl is a signature 1308169689Skan pointer, don't dereference it but set C_C_D to current_class_decl. 1309169689Skan 1310169689SkanFri Jun 16 17:06:28 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1311169689Skan 1312169689Skan * decl.c (duplicate_decls): Complain about virtual functions 1313169689Skan redeclared to be inline. 1314169689Skan 1315169689SkanFri Jun 16 13:20:38 1995 Mike Stump <mrs@cygnus.com> 1316169689Skan 1317169689Skan * decl.c (get_unique_name): New routine to name unnamed namespaces. 1318169689Skan (push_namespace): Use get_unique_name for naming unnamed namespaces. 1319169689Skan 1320169689SkanThu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1321169689Skan 1322169689Skan * parse.y: Call cplus_decl_attributes with prefix_attributes where 1323169689Skan appropriate. 1324169689Skan 1325169689SkanWed Jun 14 19:24:49 1995 Mike Stump <mrs@cygnus.com> 1326169689Skan 1327169689Skan * search.c (get_vbase): New routine to switch hierarchies from the 1328169689Skan CLASSTYPE_VBASECLASSES to the normal one. 1329169689Skan (expand_indirect_vtbls_init): Use get_vbase to figure out how we 1330169689Skan want to convert to a vbase pointer. 1331169689Skan 1332169689SkanMon Jun 12 17:50:30 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1333169689Skan 1334169689Skan * pt.c (instantiate_class_template): Add the new instantiation to 1335169689Skan template_classes. 1336169689Skan (do_pending_expansions): Call instantiate_member_templates on all of 1337169689Skan the classes in template_classes. 1338169689Skan 1339169689SkanMon Jun 12 12:36:59 1995 Mike Stump <mrs@cygnus.com> 1340169689Skan 1341169689Skan * decl.c (complete_array_type): Fill in the TYPE_DOMAIN of our 1342169689Skan TYPE_MAIN_VARIANT if it is not filled in. 1343169689Skan * init.c (build_delete): If the TYPE_DOMAIN is not set, give an 1344169689Skan error instead of core dumping. 1345169689Skan 1346169689SkanMon Jun 12 10:41:40 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1347169689Skan 1348169689Skan * call.c (can_convert): Also check for distance > 0. 1349169689Skan (can_convert_arg): Likewise. 1350169689Skan (user_harshness): Likewise. 1351169689Skan 1352169689SkanFri Jun 9 19:17:21 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1353169689Skan 1354169689Skan * g++.c (MATH_LIBRARY): Provide default. 1355169689Skan (main): Always link with the math library if we link with libstdc++. 1356169689Skan 1357169689Skan * decl.c (start_function): Complain about redefinition of a function 1358169689Skan even when the pending_inline version is compiled after the other 1359169689Skan version. 1360169689Skan 1361169689SkanThu Jun 8 15:44:38 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1362169689Skan 1363169689Skan * gc.c (build_dynamic_cast): Build up a reference to a parameter of 1364169689Skan aggregate type. 1365169689Skan 1366169689SkanWed Jun 7 15:31:57 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1367169689Skan 1368169689Skan * init.c (build_vec_delete): Resolve an offset ref before we try to 1369169689Skan use it. 1370169689Skan 1371169689SkanWed Jun 7 14:19:32 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1372169689Skan 1373169689Skan * typeck.c (build_modify_expr): If the class lacks a constructor or 1374169689Skan assignment operator, return error_mark_node. 1375169689Skan (common_type): Use build_cplus_array_type. 1376169689Skan 1377169689SkanTue Jun 6 09:41:27 1995 Mike Stump <mrs@cygnus.com> 1378169689Skan 1379169689Skan * class.c (dont_allow_type_definitions): New variable set when types 1380169689Skan cannot be defined. 1381169689Skan (finish_struct): Use it. 1382169689Skan * cp-tree.h (dont_allow_type_definitions): Define it. 1383169689Skan * parse.y (primary, handler_seq): Set it. 1384169689Skan 1385169689SkanMon Jun 5 18:49:38 1995 Mike Stump <mrs@cygnus.com> 1386169689Skan 1387169689Skan * method.c (build_opfncall): Use DECL_CHAIN, not TREE_CHAIN for 1388169689Skan results from lookup_fnfields. Always give warning/error on bad 1389169689Skan code. 1390169689Skan 1391169689SkanMon Jun 5 11:39:37 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1392169689Skan 1393169689Skan * init.c (member_init_ok_or_else): Don't allow initialization of 1394169689Skan an ancestor's member from within a constructor. 1395169689Skan 1396169689SkanMon Jun 5 11:20:34 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu> 1397169689Skan 1398169689Skan * sig.c (build_signature_table_constructor): Use DECL_CONTEXT 1399169689Skan instead of DECL_CLASS_CONTEXT for calculating the vfield offset so 1400169689Skan abstract virtual functions are handled correctly. 1401169689Skan 1402169689Skan * sig.c (build_signature_table_constructor): Store the correct 1403169689Skan delta in signature table entries. It does not yet work for 1404169689Skan classes with virtual base classes as implementations of signatures. 1405169689Skan (build_signature_method_call): Add the delta to the object_ptr 1406169689Skan before generating the function call. 1407169689Skan 1408169689Skan * call.c (build_method_call): Make instance_ptr the signature 1409169689Skan pointer itself instead of dereferencing the optr. 1410169689Skan * sig.c (build_signature_method_call): Dereference the optr for the 1411169689Skan direct and virtual calls. 1412169689Skan 1413169689Skan * sig.c (build_signature_table_constructor): Make the tag for 1414169689Skan default implementations -1 instead of 2. 1415169689Skan (build_signature_method_call): Change the generated conditional 1416169689Skan expression correspondingly. 1417169689Skan 1418169689Skan * sig.c (build_signature_pointer_constructor): Deleted the sorry 1419169689Skan message that said we can't handle multiple inheritance for 1420169689Skan implementations of signatures 1421169689Skan (build_signature_method_call): Use the offset from the sigtable 1422169689Skan entry instead of the vptr field from the signature pointer for 1423169689Skan building a virtual function call. 1424169689Skan 1425169689Skan * class.c (build_vfn_ref): Deleted signature specific code, we don't 1426169689Skan call this function anymore from build_signature_method_call. 1427169689Skan 1428169689Skan * cp-tree.h (SIGNATURE_VPTR_NAME): Deleted. We use the right vptr 1429169689Skan field in the object now instead of in the signature pointer/ref. 1430169689Skan (build_vptr_ref): Deleted extern declaration. 1431169689Skan * sig.c (build_vptr_ref): Deleted. 1432169689Skan (build_signature_pointer_or_reference_type): Deleted construction of 1433169689Skan the vptr field. 1434169689Skan (build_signature_pointer_constructor): Deleted initialization of/ 1435169689Skan assignment to the vptr field. 1436169689Skan 1437169689Skan * sig.c (build_signature_table_constructor): Convert the signature 1438169689Skan table entry fields to their correct types. 1439169689Skan 1440169689Skan * sig.c (build_signature_table_constructor): Don't call digest_init 1441169689Skan for the fields of a sigtable entry, it's wasted time. 1442169689Skan 1443169689Skan * sig.c (build_signature_table_constructor): Correctly set the 1444169689Skan offset and index fields of a sigtable entry. Build the constructor 1445169689Skan the way digest_init does, digest_init can't handle initializing an 1446169689Skan anonymous union inside a struct. 1447169689Skan (build_signature_method_call): Use the index field instead of the 1448169689Skan delta field to get the vtable index. 1449169689Skan 1450169689Skan * decl.c (init_decl_processing): Fix number of fields for building 1451169689Skan sigtable_entry_type. 1452169689Skan 1453169689Skan * cp-tree.h (tag_identifier, offset_identifier): Added extern decls. 1454169689Skan (SIGTABLE_CODE_NAME): Renamed to SIGTABLE_TAG_NAME. 1455169689Skan (SIGTABLE_PFN_NAME): Deleted, we'll use VTABLE_PFN_NAME instead. 1456169689Skan * decl.c (tag_identifier, offset_identifier): New variables to 1457169689Skan hold the identifiers for the sigtable fields tag and offset. 1458169689Skan (init_decl_processing): Initialize these variables. 1459169689Skan (init_decl_processing): Use these variables to build the 1460169689Skan sigtable_entry_type structure. Rename the code and offset fields 1461169689Skan to tag and delta, respectively; add offset and index fields. Changed 1462169689Skan types of fields from short_integer_type_node to delta_type_node. 1463169689Skan * sig.c (build_signature_table_constructor): Rename code and offset 1464169689Skan to tag and delta, respectively. 1465169689Skan (build_signature_method_call): Likewise. Use above variables. 1466169689Skan 1467169689SkanThu Jun 1 17:03:51 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1468169689Skan 1469169689Skan * decl.c (lookup_name_real): Don't try to look anything up in an 1470169689Skan erroneous object. 1471169689Skan 1472169689SkanFri Jun 2 10:30:14 1995 Mike Stump <mrs@cygnus.com> 1473169689Skan 1474169689Skan * method.c (build_overload_int): New routine. Break out 1475169689Skan functionality from build_overload_value so we can reuse it. 1476169689Skan (build_overload_value): Handle pointer to member functions as value 1477169689Skan parameters for templates. 1478169689Skan (build_overload_identifier): Since template parameters are shared 1479169689Skan among all instantiations, we have to substitute in the real types 1480169689Skan in TREE_TYPE (parm). 1481169689Skan pt.c (coerce_template_parms): Likewise. 1482169689Skan (push_template_decls): Likewise. 1483169689Skan (grok_template_type): Deleted as template parameters are shared 1484169689Skan among all instantiations. 1485169689Skan 1486169689SkanWed May 31 19:10:32 1995 Mike Stump <mrs@cygnus.com> 1487169689Skan 1488169689Skan * decl.c (grokdeclarator): Always give errors on constant overflow 1489169689Skan for array indices. 1490169689Skan 1491169689SkanWed May 31 11:39:43 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1492169689Skan 1493169689Skan * typeck.c (commonparms): Don't abort if simple_cst_equal returns < 0. 1494169689Skan (build_c_cast): Don't tack on a NON_LVALUE_EXPR when casting to 1495169689Skan reference type. 1496169689Skan (build_indirect_ref): Fix check for *&. 1497169689Skan 1498169689SkanFri Jun 16 06:54:03 1995 Mike Stump <mrs@cygnus.com> 1499169689Skan 1500169689Skan * Version 2.7.0 released. 1501169689Skan 1502169689SkanFri Jun 16 15:07:29 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1503169689Skan 1504169689Skan * Make-lang.in (DEMANGLER_PROG): Add LIBS. 1505169689Skan 1506169689SkanThu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1507169689Skan 1508169689Skan * decl.c (define_function): Don't set DECL_INTERFACE_KNOWN. 1509169689Skan 1510169689SkanWed Jun 7 20:00:31 1995 Mike Stump <mrs@cygnus.com> 1511169689Skan 1512169689Skan * *.[chy]: Change all callers of finish_decl to cp_finish_decl. 1513169689Skan * decl.c (finish_decl): New routine to handle call backs from the 1514169689Skan mid end (declare_hidden_char_array). 1515169689Skan 1516169689SkanWed Jun 7 19:02:50 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1517169689Skan 1518169689Skan * decl.c (start_function): Handle setting C_C_D here. 1519169689Skan (set_C_C_D): Removed. 1520169689Skan (struct saved_scope): Remove class_decl. 1521169689Skan (push_to_top_level): Don't save current_class_decl. 1522169689Skan (pop_from_top_level): Don't restore current_class_decl or C_C_D. 1523169689Skan (struct cp_function): Add C_C_D. 1524169689Skan (push_cp_function_context): Save C_C_D. 1525169689Skan (pop_cp_function_context): Restore C_C_D. 1526169689Skan 1527169689SkanFri Jun 2 11:05:58 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1528169689Skan 1529169689Skan * decl.c (set_C_C_D): New function. suspend_momentary before 1530169689Skan building C_C_D. 1531169689Skan (pop_from_top_level): Call it. 1532169689Skan (start_function): Likewise. 1533169689Skan (pop_cp_function_context): Likewise. 1534169689Skan 1535169689Skan * class.c, cp-tree.h, decl.c, decl2.c, parse.y: Lose all references 1536169689Skan to current_vtable_decl, CLASSTYPE_INST_VAR and CLASSTYPE_VTBL_PTR. 1537169689Skan 1538169689Skan * decl.c (push_cp_function_context): Save current_class_decl. 1539169689Skan (pop_cp_function_context): Restore current_class_decl and set C_C_D. 1540169689Skan (pop_from_top_level): Don't use CLASSTYPE_INST_VAR to set C_C_D. 1541169689Skan (start_function): Likewise. 1542169689Skan 1543169689Skan * class.c (popclass): Don't mess with current_class_decl, 1544169689Skan current_vtable_decl, or C_C_D. 1545169689Skan 1546169689SkanMon May 29 12:45:10 1995 Paul Eggert <eggert@twinsun.com> 1547169689Skan 1548169689Skan * Make-lang.in (c++.mostlyclean): Remove $(DEMANGLER_PROG). 1549169689Skan 1550169689SkanWed May 24 15:55:18 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1551169689Skan 1552169689Skan * decl.c (duplicate_decls): Check simple_cst_equal result against 0. 1553169689Skan * decl2.c (finish_anon_union): Likewise. 1554169689Skan * method.c (largest_union_member): Likewise. 1555169689Skan 1556169689SkanWed May 24 14:41:11 1995 H.J. Lu <hjl@nynexst.com> 1557169689Skan 1558169689Skan * Make-lang.in (cxxmain.o): Replace single quotes with backslashes. 1559169689Skan 1560169689SkanMon May 22 17:38:48 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1561169689Skan 1562169689Skan * Make-lang.in (g++, g++-cross, cc1plus, DEMANGLER_PROG): 1563169689Skan Use $@ instead of output name so works even if have .exe. 1564169689Skan (cxxmain.o): Use cp if ln -s fails. 1565169689Skan (c++.install-man): Use $(exeext) in executable names. 1566169689Skan (c++.mostlyclean, stage[1-4]): Use $(objext) in object file names. 1567169689Skan * Makefile.in (../cc1plus): Use $(exeext) in name of executable. 1568169689Skan 1569169689SkanWed May 24 01:39:03 1995 Jason Merrill <jason@deneb.cygnus.com> 1570169689Skan 1571169689Skan * call.c (build_method_call): Parms can be null, duh. 1572169689Skan 1573169689SkanTue May 23 01:32:09 1995 Jason Merrill <jason@deneb.cygnus.com> 1574169689Skan 1575169689Skan * call.c (build_method_call): If convert_arguments failed, just bail. 1576169689Skan 1577169689SkanFri May 19 10:31:11 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1578169689Skan 1579169689Skan * cvt.c (convert_force): Pass LOOKUP_NORMAL to cp_convert. 1580169689Skan 1581169689Skan * tree.c (copy_to_permanent): Oops. 1582169689Skan 1583169689SkanFri May 19 10:01:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1584169689Skan 1585169689Skan * cp-tree.h (break_out_target_exprs): Add decl. 1586169689Skan 1587169689SkanThu May 18 13:02:30 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1588169689Skan 1589169689Skan * decl.c (start_function): Move *all* interface handling stuff after 1590169689Skan the pushdecl. 1591169689Skan 1592169689Skan * tree.c (mapcar): Renamed from make_deep_copy and generalized. 1593169689Skan (perm_manip): Return t if permanent, otherwise 0. 1594169689Skan (copy_to_permanent): Use them. 1595169689Skan (bot_manip): Helper for break_out_target_exprs. 1596169689Skan (break_out_target_exprs): New function. Uses mapcar. 1597169689Skan 1598169689Skan * typeck.c (convert_arguments): Use it. 1599169689Skan 1600169689Skan * method.c (hack_identifier): Use convert_from_reference to 1601169689Skan dereference a reference. 1602169689Skan 1603169689SkanWed May 17 17:54:54 1995 Mike Stump <mrs@cygnus.com> 1604169689Skan 1605169689Skan * call.c (convert_harshness): Move reference bashing before pointer 1606169689Skan to member bashing. 1607169689Skan 1608169689SkanWed May 17 16:57:53 1995 Mike Stump <mrs@cygnus.com> 1609169689Skan 1610169689Skan * cvt.c (convert_to_reference): Only complain, if complaints are 1611169689Skan wanted. 1612169689Skan * typeck.c (build_function_call_real): Likewise. If 1613169689Skan LOOKUP_SPECULATIVELY is set and something won't work, return 1614169689Skan NULL_TREE. 1615169689Skan * cvt.c (cp_convert): Likewise. Pass flags down to build_method_call. 1616169689Skan (convert): Pass LOOKUP_NORMAL to cp_convert. 1617169689Skan * typeck.c (convert_for_assignment): Likewise. 1618169689Skan (convert_force): Pass LOOKUP_COMPLAIN to cp_convert. 1619169689Skan (convert_arguments): Get out early if we get an error_mark_node. 1620169689Skan (convert_for_initialization): Use cp_convert instead of convert so 1621169689Skan that we can pass flags down. 1622169689Skan * cp-tree.h (LOOKUP_SPECULATIVELY): Added documentation. 1623169689Skan 1624169689SkanWed May 17 01:43:58 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1625169689Skan 1626169689Skan * typeck2.c (store_init_value): Don't take the MAIN_VARIANT of the 1627169689Skan decl type. 1628169689Skan 1629169689Skan * class.c (finish_struct): Don't complain about a class with no 1630169689Skan user-defined constructors but with a member that has no default 1631169689Skan constructor, as this is OK for aggregates. 1632169689Skan 1633169689Skan * expr.c (cplus_expand_expr, NEW_EXPR): If this is an explicit 1634169689Skan constructor call, mark slot addressable. 1635169689Skan 1636169689SkanTue May 16 18:37:51 1995 Douglas Rupp <drupp@cs.washington.edu> 1637169689Skan 1638169689Skan * g++.c: Changed WINNT to _WIN32. 1639169689Skan 1640169689SkanTue May 16 12:40:16 1995 Jason Merrill <jason@lisa.cygnus.com> 1641169689Skan 1642169689Skan * lex.c (handle_sysv_pragma): Don't use token_buffer. 1643169689Skan 1644169689SkanTue May 16 12:05:26 1995 Mike Stump <mrs@cygnus.com> 1645169689Skan 1646169689Skan * call.c (resolve_scope_to_name): Add initial semantic support for 1647169689Skan namespaces. 1648169689Skan * class.c (finish_struct): Likewise. 1649169689Skan * cp-tree.h (NAMESPACE_LEVEL): Likewise. 1650169689Skan * cvt.c (build_up_reference, convert_to_reference): Likewise. 1651169689Skan * decl.c (binding_level::namespace_p, suspend_binding_level): Likewise. 1652169689Skan (resume_binding_level, toplevel_bindings_p): Likewise 1653169689Skan (namespace_bindings_p, declare_namespace_level): Likewise. 1654169689Skan (resume_level, push_namespace, pop_namespace): Likewise. 1655169689Skan (pop_everything, pushtag, duplicate_decls, pushdecl): Likewise. 1656169689Skan (implicitly_declare, lookup_namespace_name): Likewise. 1657169689Skan (lookup_name_real, start_decl, make_temporary_for_reference): Likewise. 1658169689Skan (obscure_complex_init, finish_decl, expand_static_init): Likewise. 1659169689Skan (grokvardecl, grokdeclarator, parmlist_is_exprlist): Likewise. 1660169689Skan (store_parm_decls, hack_incomplete_structures): Likewise. 1661169689Skan * decl2.c (get_temp_name, finish_anon_union): Likewise. 1662169689Skan (current_namespace, push_namespace, pop_namespace): Likewise. 1663169689Skan (do_namespace_alias, do_toplevel_using_decl): Likewise. 1664169689Skan (do_class_using_decl): Likewise. 1665169689Skan * error.c (dump_decl): Likewise. 1666169689Skan * init.c (build_member_call, build_offset_ref): Likewise. 1667169689Skan * lex.c (identifier_type): Likewise. 1668169689Skan * parse.y (lang_extdef, using_decl, extdef): Likewise. 1669169689Skan (component_decl_1, nested_name_specifier_1): Likewise. 1670169689Skan * spew.c (yylex): Likewise. 1671169689Skan * tree.def (NAMESPACE_DECL): Likewise. 1672169689Skan 1673169689SkanTue May 16 11:55:35 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1674169689Skan 1675169689Skan * decl.c (push_overloaded_decl): Return the new decl even if it 1676169689Skan can't be pushed. 1677169689Skan 1678169689SkanTue May 16 11:00:37 1995 Jason Merrill <jason@lisa.cygnus.com> 1679169689Skan 1680169689Skan * typeck.c (decay_conversion): Split out from default_conversion. 1681169689Skan (default_conversion): Call it. 1682169689Skan (build_binary_op): Likewise. 1683169689Skan (build_binary_op_nodefault): Use decay_conversion for truth ops. 1684169689Skan 1685169689SkanMon May 15 12:47:56 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1686169689Skan 1687169689Skan * decl.c (warn_extern_redeclared_static): This is a pedwarn. 1688169689Skan (duplicate_decls): Always use the old decl's linkage info. Don't 1689169689Skan play with linkage of consts. 1690169689Skan (pushdecl): Don't play with linkage of consts. 1691169689Skan (redeclaration_error_message): Don't complain about an old public 1692169689Skan decl and a new non-public decl here. 1693169689Skan (grokvardecl): Handle linkage of consts here. 1694169689Skan (grokdeclarator): An 'extern inline' is public. Pass constp to 1695169689Skan grokvardecl. 1696169689Skan (start_function): Wait until after the pushdecl to do some linkage 1697169689Skan stuff. 1698169689Skan 1699169689Skan * decl2.c (import_export_vtable): Make duplicates weak rather than 1700169689Skan static if supported. 1701169689Skan (import_export_inline): Likewise. 1702169689Skan * pt.c (do_pending_expansions): Likewise. 1703169689Skan 1704169689Skan * class.c (build_vbase_path): flag_assume_nonnull_objects only 1705169689Skan affects reference conversion. 1706169689Skan 1707169689Skan * init.c (emit_base_init): Build up an RTL_EXPR and add it to 1708169689Skan rtl_expr_chain. 1709169689Skan * decl.c, decl2.c: s/base_init_insns/base_init_expr/. 1710169689Skan 1711169689SkanTue May 16 07:06:28 1995 Paul Eggert <eggert@twinsun.com> 1712169689Skan 1713169689Skan * method.c (numeric_output_need_bar): Renamed from misspelling. 1714169689Skan 1715169689Skan * typeck.c (build_ptrmemfunc): Fix misspellings in messages. 1716169689Skan 1717169689SkanSun May 14 10:26:22 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1718169689Skan 1719169689Skan * lang-options.h, lang-specs.h: New files. 1720169689Skan 1721169689SkanThu May 11 00:31:48 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1722169689Skan 1723169689Skan * typeck.c (default_conversion): Don't check for BLKmode before 1724169689Skan pulling out the decl_constant_value. 1725169689Skan 1726169689Skan * decl.c (start_function): Clear named_labels and shadowed_labels. 1727169689Skan 1728169689Skan * typeck.c (build_function_call_real): Also synthesize methods here. 1729169689Skan 1730169689SkanWed May 10 00:55:59 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1731169689Skan 1732169689Skan * decl2.c (finish_file): Synthesize exported methods before the 1733169689Skan reconsider loop. 1734169689Skan 1735169689Skan * parse.y: Move declaration of flag_new_for_scope to file scope. 1736169689Skan 1737169689SkanTue May 9 19:10:33 1995 Mike Stump <mrs@cygnus.com> 1738169689Skan 1739169689Skan * decl2.c: Add flag_new_for_scope for new -ffor-scope flag. 1740169689Skan * parse.y (FOR): Conditionalize the pushing and popping of scope for 1741169689Skan the for-init-statement upon the new flag_new_for_scope. 1742169689Skan * parse.y (try_block): Simplify and use compstmt. 1743169689Skan 1744169689SkanMon May 8 12:41:52 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1745169689Skan 1746169689Skan * decl.c (define_function): Mark function decl artificial. 1747169689Skan 1748169689SkanSun May 7 00:51:28 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1749169689Skan 1750169689Skan * parse.y (simple_stmt, FOR): Put back push/pop for condition scope. 1751169689Skan 1752169689Skan * decl2.c (grokclassfn): DECLs don't have cv-qualified types. 1753169689Skan * tree.c (build_cplus_method_type): Likewise. 1754169689Skan 1755169689Skan * cp-tree.h (SET_DECL_ARTIFICIAL): Just set DECL_ARTIFICIAL to 1. 1756169689Skan 1757169689Skan * typeck.c (build_function_call_real): If convert_arguments failed, 1758169689Skan just bail. 1759169689Skan (convert_arguments): If one of the arguments is error_mark_node, 1760169689Skan just bail. 1761169689Skan 1762169689SkanSat May 6 02:39:41 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1763169689Skan 1764169689Skan * decl.c (duplicate_decls): Don't check DECL_NOT_REALLY_EXTERN for 1765169689Skan decls that don't include it. 1766169689Skan 1767169689SkanFri May 5 14:23:30 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1768169689Skan 1769169689Skan * decl.c (duplicate_decls): Decls that have DECL_INTERFACE_KNOWN or 1770169689Skan DECL_NOT_REALLY_EXTERN set aren't extern decls. 1771169689Skan 1772169689Skan * typeck.c (build_indirect_ref): Don't call default_conversion for a 1773169689Skan parameter of reference_type. 1774169689Skan * cvt.c (convert_from_reference): Just use build_indirect_ref. 1775169689Skan 1776169689Skan * pt.c (do_type_instantiation): Only instantiate member functions 1777169689Skan that actually come from templates. 1778169689Skan 1779169689SkanFri May 5 09:46:05 1995 Mike Stump <mrs@cygnus.com> 1780169689Skan 1781169689Skan * parse.y: Generalized cleanup of poplevels, and compound statements 1782169689Skan and compound statements in try blocks. Rewritten `for' rule so that 1783169689Skan the scope of variables declared in the for clause is shortened to 1784169689Skan span just to the end of the statement, instead of the whole 1785169689Skan containing block. 1786169689Skan 1787169689SkanFri May 5 00:37:14 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1788169689Skan 1789169689Skan * call.c (convert_harshness): Handle pointers to members better. 1790169689Skan 1791169689SkanThu May 4 16:00:26 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1792169689Skan 1793169689Skan * decl2.c (delete_sanity): Do access control here. 1794169689Skan * init.c (build_delete): Instead of here. 1795169689Skan 1796169689Skan * Make-lang.in: Build c++filt. 1797169689Skan 1798169689SkanWed May 3 02:59:53 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1799169689Skan 1800169689Skan * decl2.c (cplus_decl_attributes): If we just modified a TYPE_DECL, 1801169689Skan update our IDENTIFIER_TYPE_VALUE. 1802169689Skan 1803169689SkanFri Apr 28 07:58:41 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1804169689Skan 1805169689Skan * lex.c (cons_up_default_function): Fix linkage of #pragma 1806169689Skan implemented functions. 1807169689Skan 1808169689SkanThu Apr 27 16:56:24 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1809169689Skan 1810169689Skan * method.c (build_overload_name): Simplify and fix repeated type 1811169689Skan folding. 1812169689Skan 1813169689Skan * decl.c (grokdeclarator): Prohibit pointers to void or reference 1814169689Skan members. 1815169689Skan 1816169689SkanThu Apr 27 09:49:07 1995 Mike Stump <mrs@cygnus.com> 1817169689Skan 1818169689Skan * typeck2.c (process_init_constructor): Make sure initializers are 1819169689Skan fully digested. 1820169689Skan 1821169689SkanThu Apr 27 01:11:55 1995 Jason Merrill <jason@python.cygnus.com> 1822169689Skan 1823169689Skan * lex.c (cons_up_default_function): Always defer synthesis. 1824169689Skan 1825169689SkanThu Apr 27 00:20:37 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1826169689Skan 1827169689Skan * decl2.c (mark_inline_for_output): Don't play with pending_inline 1828169689Skan stuff. 1829169689Skan 1830169689SkanWed Apr 26 17:48:24 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1831169689Skan 1832169689Skan * call.c (user_harshness): New function; like build_type_conversion, 1833169689Skan but doesn't actually build anything. 1834169689Skan (compute_conversion_costs): Use it instead of build_type_conversion. 1835169689Skan 1836169689SkanWed Apr 26 17:11:25 1995 Jason Merrill <jason@deneb.cygnus.com> 1837169689Skan 1838169689Skan * typeck.c (build_function_call_real): Improve error message for 1839169689Skan calling a non-function. 1840169689Skan 1841169689Skan * method.c (hack_identifier): Lose check for calling a data member. 1842169689Skan 1843169689SkanWed Apr 26 16:59:13 1995 Mike Stump <mrs@cygnus.com> 1844169689Skan 1845169689Skan * typeck2.c (build_functional_cast): Remove very old cruft. 1846169689Skan Seems like good code is generated without it. 1847169689Skan 1848169689SkanWed Apr 26 00:47:16 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1849169689Skan 1850169689Skan * method.c (do_build_assign_ref): Fix handling of anonymous unions. 1851169689Skan (do_build_copy_constructor): Likewise. 1852169689Skan 1853169689Skan * parse.y (simple_stmt, SWITCH): Call {push,pop}_switch. 1854169689Skan 1855169689Skan * decl.c (push_switch): New function. 1856169689Skan (pop_switch): Likewise. 1857169689Skan (define_case_label): Check for jumping over initialization. 1858169689Skan 1859169689Skan * call.c (build_method_call): Check for an inline function being 1860169689Skan called before its definition has been seen. 1861169689Skan * typeck.c (build_function_call_real): Likewise. 1862169689Skan 1863169689Skan * decl.c (duplicate_decls): Check for a function being redeclared 1864169689Skan inline after its address has been taken. 1865169689Skan 1866169689Skan * typeck.c (build_conditional_expr): Handle related class lvalues. 1867169689Skan 1868169689SkanTue Apr 25 13:20:45 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1869169689Skan 1870169689Skan * pt.c (do_pending_expansions): Don't expand unused templates. 1871169689Skan 1872169689Skan * parse.y (component_decl): Accept a lone semicolon. 1873169689Skan 1874169689SkanTue Apr 25 00:25:56 1995 Jason Merrill <jason@rtl.cygnus.com> 1875169689Skan 1876169689Skan * call.c (build_method_call): Don't allow an RTL_EXPR to serve as the 1877169689Skan object parameter anymore. 1878169689Skan 1879169689Skan * expr.c (cplus_expand_expr): Don't create RTL_EXPRs with no insns. 1880169689Skan 1881169689SkanMon Apr 24 12:35:48 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1882169689Skan 1883169689Skan * parse.y (simple_stmt, decl case): Clear prefix_attributes. 1884169689Skan (lang_extdef): Likewise. 1885169689Skan 1886169689Skan * parse.y (maybe_parmlist): New rule for use in declarators where 1887169689Skan this could either be a list of expressions or parameters. Calls 1888169689Skan suspend_momentary before deciding which. 1889169689Skan (direct_after_type_declarator): Use it. 1890169689Skan (complex_direct_notype_declarator): Use it. 1891169689Skan 1892169689Skan * pt.c (tsubst): Propagate attributes const and noreturn. 1893169689Skan 1894169689Skan * typeck.c (build_modify_expr): If warn_synth, call build_opfncall 1895169689Skan before doing the default thing. 1896169689Skan 1897169689SkanThu Apr 27 21:49:36 1995 Doug Evans <dje@cygnus.com> 1898169689Skan 1899169689Skan * typeck.c (common_type): Call lookup_attribute instead of 1900169689Skan value_member. 1901169689Skan 1902169689SkanTue Apr 25 18:07:43 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1903169689Skan 1904169689Skan * Make-lang.in: Change "realclean" to "maintainer-clean". 1905169689Skan 1906169689SkanSun Apr 23 12:32:38 1995 Mike Stump <mrs@cygnus.com> 1907169689Skan 1908169689Skan * decl2.c (finish_file): Fix broken linked list handling. 1909169689Skan 1910169689SkanFri Apr 21 18:08:43 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1911169689Skan 1912169689Skan * class.c (finish_base_struct): Don't set TYPE_HAS_COMPLEX_*_REF 1913169689Skan as often. 1914169689Skan (finish_struct): Likewise. 1915169689Skan 1916169689Skan * various: Use TYPE_HAS_TRIVIAL_* instead of TYPE_HAS_COMPLEX_*. 1917169689Skan 1918169689Skan * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): New macro. 1919169689Skan (TYPE_HAS_TRIVIAL_ASSIGN_REF): New macro. 1920169689Skan 1921169689SkanFri Apr 21 15:52:22 1995 Jason Merrill <jason@python.cygnus.com> 1922169689Skan 1923169689Skan * typeck.c (c_expand_return): Only expand a returned TARGET_EXPR if 1924169689Skan it is of the same type as the return value. 1925169689Skan 1926169689SkanFri Apr 21 03:01:46 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1927169689Skan 1928169689Skan * decl2.c (finish_file): Reconsider if synthesizing a method wrote 1929169689Skan out its assembly. 1930169689Skan 1931169689Skan * typeck.c (convert_for_initialization): Don't call a trivial copy 1932169689Skan constructor. 1933169689Skan 1934169689Skan * typeck2.c (store_init_value): Only abort if the type has a 1935169689Skan non-trivial copy constructor. 1936169689Skan 1937169689Skan * typeck.c (c_expand_return): If we're returning in a register and 1938169689Skan the return value is a TARGET_EXPR, expand it. Only do 1939169689Skan expand_aggr_init if we're returning in memory. 1940169689Skan (expand_target_expr): Function to expand a TARGET_EXPR. 1941169689Skan (build_modify_expr): Use it. 1942169689Skan 1943169689Skan * tree.c (build_cplus_new): Layout the slot. 1944169689Skan 1945169689Skan * expr.c (cplus_expand_expr): Use expand_call to expand the call 1946169689Skan under a NEW_EXPR, so the target is not discarded. 1947169689Skan 1948169689SkanThu Apr 20 14:59:31 1995 Mike Stump <mrs@cygnus.com> 1949169689Skan 1950169689Skan * gc.c (build_dynamic_cast): Tighten error checking. 1951169689Skan 1952169689SkanThu Apr 20 11:23:54 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1953169689Skan 1954169689Skan * expr.c (cplus_expand_expr): Only abort if the returned target is 1955169689Skan different from what we expected if the type has a non-trivial copy 1956169689Skan constructor. 1957169689Skan 1958169689Skan * decl2.c (cplus_decl_attributes): Attributes applied to a template 1959169689Skan really apply to the template's result. 1960169689Skan 1961169689Skan * tree.c (lvalue_p): Check IS_AGGR_TYPE instead of TREE_ADDRESSABLE 1962169689Skan to decide whether to consider a CALL_EXPR an lvalue. 1963169689Skan 1964169689Skan * class.c (finish_struct_bits): Only set TREE_ADDRESSABLE if the 1965169689Skan type has a non-trivial copy constructor. 1966169689Skan 1967169689Skan * decl.c (start_function): If interface_known, unset 1968169689Skan DECL_NOT_REALLY_EXTERN on the function. 1969169689Skan 1970169689SkanWed Apr 19 16:53:13 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1971169689Skan 1972169689Skan * pt.c (do_function_instantiation): Handle explicit instantiation of 1973169689Skan member functions. 1974169689Skan (do_type_instantiation): Handle 'inline template class foo<int>', 1975169689Skan meaning just spit out the vtable. 1976169689Skan 1977169689Skan * lex.c (cons_up_default_function): Set DECL_NOT_REALLY_EXTERN on 1978169689Skan the consed functions. 1979169689Skan 1980169689Skan * decl2.c (import_export_inline): Set DECL_INTERFACE_KNOWN. 1981169689Skan 1982169689SkanWed Apr 19 16:28:17 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1983169689Skan 1984169689Skan * call.c, class.c, decl2.c, gc.c, init.c, parse.y, pt.c, search.c, 1985169689Skan typeck.c: Include output.h. 1986169689Skan 1987169689SkanWed Apr 19 14:57:21 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu> 1988169689Skan 1989169689Skan * call.c (build_method_call): Allow a signature member functions to 1990169689Skan be called from a default implementation. 1991169689Skan 1992169689SkanWed Apr 19 10:21:17 1995 Jason Merrill <jason@phydeaux.cygnus.com> 1993169689Skan 1994169689Skan * repo.c (finish_repo): Remember what directory we are in. 1995169689Skan 1996169689Skan * search.c (expand_upcast_fixups): Don't mess with abort_fndecl. 1997169689Skan 1998169689Skan * repo.c: Use obstacks instead of fixed-size buffers. Don't spit 1999169689Skan out the second copy of the symbol name. Don't remember COLLECT_GCC. 2000169689Skan 2001169689SkanWed Apr 19 02:32:40 1995 Mike Stump <mrs@cygnus.com> 2002169689Skan 2003169689Skan * search.c (virtual_context): New function to get the virtual 2004169689Skan context of a function. 2005169689Skan (expand_upcast_fixups): New function to generate runtime vtables. 2006169689Skan (fixup_virtual_upcast_offsets): Likewise. 2007169689Skan (expand_indirect_vtbls_init): Use fixup_virtual_upcast_offsets to 2008169689Skan ensure that the this offsets for upcasts from virtual bases into 2009169689Skan other virtual bases or non-virtual bases are correct at construction 2010169689Skan time and destruction time. 2011169689Skan * class.c (fixup_vtable_deltas): Modify to fixup all offsets in all 2012169689Skan vtables in all virtual bases, instead of just one vtable in each 2013169689Skan virtual base. 2014169689Skan (fixup_vtable_deltas1): Likewise. 2015169689Skan 2016169689SkanTue Apr 18 03:57:35 1995 Michael Meissner <meissner@cygnus.com> 2017169689Skan 2018169689Skan * Makefile.in (lex.o): Add dependency on c-pragma.h. 2019169689Skan 2020169689Skan * lex.c (handle_sysv_pragma): Use NULL_PTR and NULL_TREE as 2021169689Skan appropriate, instead of 0. 2022169689Skan 2023169689SkanMon Apr 17 12:28:42 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2024169689Skan 2025169689Skan * decl.c (pushdecl): Use decls_match, not duplicate_decls, for 2026169689Skan comparing local and global decls. 2027169689Skan 2028169689SkanFri Apr 14 01:46:52 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2029169689Skan 2030169689Skan * typeck.c (convert_arguments): Only prohibit passing to ... of 2031169689Skan types with non-trivial copy constructors. 2032169689Skan 2033169689Skan * repo.c (repo_template_used): Don't try to mess with no id. 2034169689Skan 2035169689SkanFri Apr 14 23:32:50 1995 Per Bothner <bothner@rtl.cygnus.com> 2036169689Skan 2037169689Skan * decl.c (duplicate_decls): Use cp_warning_at for redundant-decls. 2038169689Skan 2039169689SkanThu Apr 13 15:37:42 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2040169689Skan 2041169689Skan * cp-tree.h (current_tinst_level): Delete declaration, since it's 2042169689Skan static inside pt.c. 2043169689Skan 2044169689Skan * typeck.c (build_modify_expr): Catch incompatible array assignment. 2045169689Skan 2046169689Skan * parse.y (attribute_list, attrib): Rewrite actions to feed the 2047169689Skan right stuff to decl_attributes. 2048169689Skan 2049169689SkanThu Apr 13 11:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2050169689Skan 2051169689Skan * search.c (dfs_debug_mark): Check for magic virtual like 2052169689Skan import_export_vtable. 2053169689Skan 2054169689Skan * typeck.c (build_binary_op_nodefault): Don't call cp_pedwarn with 2055169689Skan four args. 2056169689Skan 2057169689SkanWed Apr 12 12:02:57 1995 Jason Merrill <jason@deneb.cygnus.com> 2058169689Skan 2059169689Skan * decl2.c (finish_file): Move prevtable pass before needs_messing_up 2060169689Skan decision. 2061169689Skan 2062169689SkanTue Apr 11 11:20:27 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2063169689Skan 2064169689Skan * decl.c (finish_decl): If we're writing out a static data member of 2065169689Skan a class, we want the debug info for that class. 2066169689Skan 2067169689Skan * gc.c (build_t_desc): Check linkage of a class properly. 2068169689Skan 2069169689Skan * class.c (finish_struct): Set the 'headof' offset for the main 2070169689Skan vtable properly. 2071169689Skan (prepare_fresh_vtable): Fix typeinfo pointer here. 2072169689Skan (modify_one_vtable): Instead of here. 2073169689Skan 2074169689SkanMon Apr 10 12:15:59 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2075169689Skan 2076169689Skan * repo.c (repo_get_id): New function to return the interesting 2077169689Skan identifier for a repo entity. 2078169689Skan (repo_template_used): Use it. 2079169689Skan (repo_template_instantiated): Mark the id as chosen. 2080169689Skan (init_repo): Record whether or not the id was chosen. 2081169689Skan (finish_repo): Note if an id was newly chosen. 2082169689Skan 2083169689Skan * pt.c (do_function_instantiation): Call repo_template_instantiated. 2084169689Skan (do_type_instantiation): Likewise. Don't diagnose multiple 2085169689Skan instantiation. 2086169689Skan 2087169689Skan * decl2.c (finish_file): Use DECL_NOT_REALLY_EXTERN when deciding 2088169689Skan whether or not to synthesize a method. 2089169689Skan 2090169689Skan Undo these changes: 2091169689Skan * class.c (finish_vtbls): Build more vtables if flag_rtti is on. 2092169689Skan * class.c (modify_all_direct_vtables): Likewise. 2093169689Skan * init.c (expand_direct_vtbls_init): Expand more vtables if 2094169689Skan flag_rtti is on. 2095169689Skan 2096169689SkanSat Apr 8 17:45:41 1995 Mike Stump <mrs@cygnus.com> 2097169689Skan 2098169689Skan * gc.c (build_headof): Use ptrdiff_type_node instead of 2099169689Skan integer_type_node on pointer arithmetic. 2100169689Skan 2101169689SkanSat Apr 8 11:57:04 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2102169689Skan 2103169689Skan * typeck.c (build_modify_expr): Undo previous change. 2104169689Skan 2105169689SkanThu Apr 6 01:23:50 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2106169689Skan 2107169689Skan * Makefile.in (compiler): Remove ../cc1plus before rebuilding it. 2108169689Skan 2109169689Skan * repo.c (get_base_filename): Put the .rpo file in the directory 2110169689Skan with the object file, not the source. 2111169689Skan 2112169689Skan * typeck.c (build_conditional_expr): Handle pmf's better. 2113169689Skan 2114169689Skan * repo.c (finish_repo): Also use ASM_OUTPUT_LABELREF to print out 2115169689Skan the name of the symbol. 2116169689Skan 2117169689SkanWed Apr 5 15:24:12 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2118169689Skan 2119169689Skan * repo.c (open_repo_file): Make repo filename DOS-compliant. 2120169689Skan (*): Also write a new repo file if some previously-used 2121169689Skan templates are no longer used. Only remember the identifier. 2122169689Skan 2123169689Skan * lex.c (cons_up_default_function): If this function belongs to a 2124169689Skan template class, call repo_template_used for it. 2125169689Skan 2126169689Skan * repo.c (repo_template_used): Using a class means using its vtable, 2127169689Skan if any. 2128169689Skan (finish_repo): Likewise. 2129169689Skan 2130169689Skan * typeck.c (build_modify_expr): Only wrap TARGET_EXPRs in RTL_EXPRs 2131169689Skan if the type has a complex copy constructor. 2132169689Skan 2133169689Skan * decl2.c (lang_decode_option): -frepo implies 2134169689Skan -fno-implicit-templates. 2135169689Skan 2136169689Skan * decl.c (start_function): Clear current_{base,member}_init_list. 2137169689Skan 2138169689Skan * lex.c (init_lex): Also unset *_eq if ! flag_operator_names. 2139169689Skan 2140169689SkanTue Apr 4 16:11:08 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2141169689Skan 2142169689Skan * decl.c (struct cp_function): Add {base,member}_init_list. 2143169689Skan (push_cp_function_context): Save current_{base,member}_init_list. 2144169689Skan (pop_cp_function_context): Restore them. 2145169689Skan 2146169689SkanMon Apr 3 16:55:08 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2147169689Skan 2148169689Skan * repo.c (get_base_filename): Take filename parm, fix logic bug. 2149169689Skan 2150169689Skan * typeck.c (build_compound_expr): Do not warn about a compound expr 2151169689Skan in which the first expression has no side effects. 2152169689Skan (build_x_compound_expr): Warn here instead. 2153169689Skan (build_conditional_expr): Don't warn about a conditional expression 2154169689Skan between an enum and the type it promotes to. 2155169689Skan 2156169689Skan * init.c (build_new): Handle initialization of arrays of builtins 2157169689Skan properly. 2158169689Skan 2159169689SkanMon Apr 3 15:08:04 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2160169689Skan 2161169689Skan * repo.c: Include config.h to get definitions of bcopy and rindex 2162169689Skan on systems that don't have them (e.g., SVR4). 2163169689Skan 2164169689SkanMon Apr 3 14:41:55 1995 Mike Stump <mrs@cygnus.com> 2165169689Skan 2166169689Skan * decl2.c (finish_table): Pass NULL_TREE instead of init to 2167169689Skan finish_decl so that it won't try and do error checking on the 2168169689Skan initializer. 2169169689Skan 2170169689SkanMon Apr 3 10:45:50 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2171169689Skan 2172169689Skan * repo.c (get_base_filename): Analyze COLLECT_GCC_OPTIONS to 2173169689Skan determine whether this compile used -c -o. 2174169689Skan (open_repo_file): Use get_base_filename. Remove the extension. 2175169689Skan (finish_repo): Spit out the values of main_input_filename, 2176169689Skan COLLECT_GCC and COLLECT_GCC_OPTIONS. 2177169689Skan 2178169689Skan * parse.y (structsp): Add TYPENAME_KEYWORD complex_type_name. 2179169689Skan 2180169689SkanSun Apr 2 23:43:51 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2181169689Skan 2182169689Skan * search.c (compute_access): Don't try to do access control on 2183169689Skan nested types. 2184169689Skan 2185169689SkanFri Mar 31 10:14:23 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2186169689Skan 2187169689Skan * repo.c: New file to handle things repo. 2188169689Skan 2189169689Skan * pt.c (instantiate_template): Call repo_template_used if the 2190169689Skan definition is accessible. 2191169689Skan (mark_function_instantiated): Split out from 2192169689Skan do_function_instantiation. 2193169689Skan (mark_class_instantiated): Split out from do_type_instantiation. 2194169689Skan 2195169689Skan * parse.y (template_instantiate_once): Call repo_template_used. 2196169689Skan 2197169689Skan * lex.c (lang_init): Call init_repo. 2198169689Skan 2199169689Skan * decl2.c: Handle flag_use_repository. 2200169689Skan (finish_file): Call finish_repo. 2201169689Skan 2202169689Skan * decl.c (start_method): Call repo_template_used if this is a 2203169689Skan template method. 2204169689Skan 2205169689Skan * Makefile.in (CXX_OBJS): Add repo.o. 2206169689Skan (repo.o): Add dependencies. 2207169689Skan 2208169689Skan * Make-lang.in (CXX_SRCS): Add repo.c. 2209169689Skan 2210169689Skan * decl.c (start_function): If DECL_INTERFACE_KNOWN and 2211169689Skan DECL_NOT_REALLY_EXTERN are both set, unset DECL_EXTERNAL. 2212169689Skan 2213169689Skan * typeck.c (build_binary_op_nodefault): Identify the invalid operand 2214169689Skan types used. 2215169689Skan 2216169689Skan * decl.c (duplicate_decls): Propagate DECL_NOT_REALLY_EXTERN. 2217169689Skan 2218169689SkanThu Mar 30 17:54:42 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2219169689Skan 2220169689Skan * typeck.c (build_binary_op_nodefault): Tidy up use of build_type 2221169689Skan and result_type. When checking for comparison between signed 2222169689Skan and unsigned, use result_type rather than the (possibly shortened) 2223169689Skan type of op0. Also, don't warn about equality comparison of a 2224169689Skan signed operand to an unsigned constant that fits in the signed 2225169689Skan type. 2226169689Skan 2227169689Skan * method.c (do_build_copy_constructor): Reverse 2228169689Skan current_base_init_list after we've built it up. 2229169689Skan 2230169689SkanThu Mar 30 14:35:18 1995 Mike Stump <mrs@cygnus.com> 2231169689Skan 2232169689Skan * except.c (build_throw): Never warn about the value of throw not 2233169689Skan being used. 2234169689Skan 2235169689SkanThu Mar 30 13:16:54 1995 Mike Stump <mrs@cygnus.com> 2236169689Skan 2237169689Skan * except.c (expand_start_catch_block): Check for bad catch parameter 2238169689Skan declarations. 2239169689Skan 2240169689SkanThu Mar 30 13:06:11 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2241169689Skan 2242169689Skan * decl.c (finish_function): Only set DECL_NOT_REALLY_EXTERN if 2243169689Skan DECL_EXTERNAL is not already set. 2244169689Skan 2245169689SkanThu Mar 30 11:26:24 1995 Mike Stump <mrs@cygnus.com> 2246169689Skan 2247169689Skan * method.c (emit_thunk): Let poplevel know that the last level is 2248169689Skan for a function so it can create a BLOCK_NODE and set DECL_INITIAL. 2249169689Skan 2250169689SkanThu Mar 30 11:15:06 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2251169689Skan 2252169689Skan * decl2.c (import_export_inline): Don't set DECL_NOT_REALLY_EXTERN 2253169689Skan here. 2254169689Skan 2255169689Skan * decl.c (grokdeclarator): OK, don't abort if we see a decl with 2256169689Skan METHOD_TYPE. 2257169689Skan (finish_function): Set DECL_EXTERNAL and DECL_NOT_REALLY_EXTERN on 2258169689Skan all deferred inlines. 2259169689Skan 2260169689SkanWed Mar 29 19:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2261169689Skan 2262169689Skan * cp-tree.h (DECL_THIS_INLINE): New macro. 2263169689Skan (DECL_NOT_REALLY_EXTERN): New macro. 2264169689Skan (DECL_THIS_STATIC): New macro. 2265169689Skan 2266169689Skan * decl.c: Lose all references to current_extern_inline. Break 2267169689Skan inline semantics into DECL_INLINE for actual inlining and 2268169689Skan DECL_THIS_INLINE for the linkage wierdness. Use DECL_THIS_STATIC. 2269169689Skan * decl2.c: Use DECL_NOT_REALLY_EXTERN to indicate that we want to 2270169689Skan emit an inline here. Associated changes. 2271169689Skan * lex.c: Likewise. 2272169689Skan * pt.c: Likewise. 2273169689Skan * typeck.c: Likewise. 2274169689Skan 2275169689Skan * call.c (build_method_call): Don't bother trying to handle inlines 2276169689Skan specially. 2277169689Skan * cvt.c (convert_to_aggr): Likewise. 2278169689Skan 2279169689Skan * pt.c (do_function_instantiation): Handle instantiation of 2280169689Skan public inlines, too. 2281169689Skan 2282169689SkanWed Mar 29 16:04:25 1995 Mike Stump <mrs@cygnus.com> 2283169689Skan 2284169689Skan * except.c (init_exception_processing): Change the interface for 2285169689Skan __throw_type_match and add decl for new rtti matching routine 2286169689Skan __throw_type_match_rtti. 2287169689Skan (build_eh_type): New routine to build a run time descriptor for the 2288169689Skan expression given. 2289169689Skan (expand_start_catch_block): Update to use new calling convention for 2290169689Skan the matcher. 2291169689Skan (expand_throw): Update to use build_eh_type. 2292169689Skan 2293169689SkanMon Mar 27 07:14:33 1995 Warner Losh <imp@village.org> 2294169689Skan 2295169689Skan * g++.c: Removed __NetBSD__ from conditional. 2296169689Skan Declare strerror if HAVE_STRERROR is defined; otherwise 2297169689Skan declare sys_errlist and sys_nerr. 2298169689Skan (my_strerror): New function. 2299169689Skan 2300169689SkanTue Mar 28 14:16:35 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2301169689Skan 2302169689Skan * search.c (get_binfo): Don't try to be so clever. 2303169689Skan 2304169689Skan * tree.c (copy_to_permanent): Also suspend_momentary(). 2305169689Skan 2306169689Skan * cvt.c (cp_convert_to_pointer): Hand off to convert_fn_pointer even 2307169689Skan if the types are the same. 2308169689Skan 2309169689Skan * decl.c (start_function): Handle extern inlines more like C++ says 2310169689Skan we should. 2311169689Skan 2312169689Skan * init.c (build_member_call): Hand constructor calls off to 2313169689Skan build_functional_cast. 2314169689Skan 2315169689Skan * typeck2.c (build_functional_cast): Use DECL_NESTED_TYPENAME to get 2316169689Skan the name of the type. 2317169689Skan 2318169689SkanTue Mar 28 13:13:56 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2319169689Skan 2320169689Skan * decl.c (grokdeclarator): Check for the decl returned by 2321169689Skan grokfndecl to be null before using build_decl_attribute_variant. 2322169689Skan 2323169689SkanMon Mar 27 18:04:41 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2324169689Skan 2325169689Skan * init.c (build_new): Use build_pointer_type instead of 2326169689Skan TYPE_POINTER_TO. 2327169689Skan 2328169689SkanFri Mar 24 12:11:24 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2329169689Skan 2330169689Skan * typeck.c (build_conditional_expr): Handle pmfs. 2331169689Skan (convert_for_assignment): Fix pmf support. 2332169689Skan 2333169689Skan * cvt.c (convert_fn_ptr): Support !flag_vtable_thunks. 2334169689Skan (cp_convert_to_pointer): Handle pmfs. 2335169689Skan (cp_convert): Pass pmfs to cp_convert_to_pointer. 2336169689Skan 2337169689Skan * typeck.c (common_type): Handle inheritance for pmfs. 2338169689Skan 2339169689Skan * typeck2.c (build_m_component_ref): Do access control. 2340169689Skan 2341169689Skan * typeck.c (comp_target_types): Check for conversion to void * 2342169689Skan before checking trickier conversions. 2343169689Skan 2344169689Skan * decl.c (duplicate_decls): Propagate DECL_ABSTRACT_VIRTUAL_P. 2345169689Skan 2346169689Skan * pt.c (push_tinst_level): Complain if template instantiation depth 2347169689Skan is greater than max_tinst_depth. 2348169689Skan 2349169689Skan * typeck.c (common_type): Assume that we can call common_type to 2350169689Skan unify the target type of a pointer. 2351169689Skan 2352169689SkanThu Mar 23 00:48:44 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2353169689Skan 2354169689Skan * decl2.c (finish_file): Don't synthesize methods at 2355169689Skan finish_vtable_prevardecl time. Do synthesize methods that are not 2356169689Skan used, but are public and not external. 2357169689Skan 2358169689Skan * cvt.c (build_type_conversion): Only give an error if for_sure. 2359169689Skan 2360169689Skan * typeck.c (comp_target_types): Only support pointer conversions if 2361169689Skan nptrs > 0. 2362169689Skan 2363169689SkanWed Mar 22 19:30:15 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2364169689Skan 2365169689Skan * init.c (build_new): Catch use of an initializer list where it 2366169689Skan shouldn't be. 2367169689Skan 2368169689SkanWed Mar 22 16:21:07 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2369169689Skan 2370169689Skan * init.c (build_new): Wrap alloc_expr in an RTL_EXPR if nelts is 2371169689Skan non-constant. 2372169689Skan 2373169689Skan * decl2.c: temp_name_counter is now public. 2374169689Skan 2375169689Skan * decl.c (struct cp_function): Add temp_name_counter field. 2376169689Skan (push_cp_function_context): Save it. 2377169689Skan (pop_cp_function_context): Restore it. 2378169689Skan 2379169689Skan * typeck.c (common_type): Handle unifying function types, and unify 2380169689Skan unmatched things to void* with a compiler_error, rather than 2381169689Skan silently like before. 2382169689Skan 2383169689SkanWed Mar 22 15:10:34 1995 Mike Stump <mrs@cygnus.com> 2384169689Skan 2385169689Skan * decl2.c (finish_prevtable_vardecl, finish_vtable_vardecl): Revert 2386169689Skan Brendan's last change and fix latent problem that causes TD entries 2387169689Skan to not come out when the things that need them has yet to be 2388169689Skan expanded. 2389169689Skan 2390169689SkanWed Mar 22 15:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2391169689Skan 2392169689Skan * typeck.c (build_binary_op_nodefault, comparison ops): Update type0 2393169689Skan and type1, since we might have changed op0 or op1. 2394169689Skan 2395169689SkanWed Mar 22 13:33:45 1995 Jason Merrill <jason@python.cygnus.com> 2396169689Skan 2397169689Skan * typeck.c (common_type): Don't mess up templates. 2398169689Skan 2399169689SkanWed Mar 22 04:56:00 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2400169689Skan 2401169689Skan * typeck.c (common_type): Handle ptms properly. Also handle 2402169689Skan T* -> void*. 2403169689Skan (build_binary_op_nodefault): New variable build_type controls what 2404169689Skan type is given to the expression when it is created. Set this to 2405169689Skan boolean_type_node for comparison ops instead of using result_type. 2406169689Skan (comp_target_types): Allow T * -> void *. 2407169689Skan 2408169689Skan * cvt.c (cp_convert_to_pointer): Do access control when converting 2409169689Skan ptms, too. 2410169689Skan 2411169689SkanTue Mar 21 17:25:06 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2412169689Skan 2413169689Skan * parse.y (extern_lang_string): Catch use of linkage specs that 2414169689Skan aren't all naming the same language. 2415169689Skan 2416169689Skan * class.c (finish_struct): Delete accidental duplicate code. 2417169689Skan 2418169689SkanTue Mar 21 14:00:57 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2419169689Skan 2420169689Skan * typeck.c (build_binary_op_nodefault): Disable pedwarns about 2421169689Skan comparing functions and incomplete types. 2422169689Skan 2423169689Skan * decl.c (finish_function): Only unset current_function_decl if 2424169689Skan !nested. 2425169689Skan (duplicate_decls): Last change went too far; we only want to stop 2426169689Skan checking for value/reference ambiguity. 2427169689Skan 2428169689SkanTue Mar 21 01:26:39 1995 Mike Stump <mrs@cygnus.com> 2429169689Skan 2430169689Skan * gc.c (build_generic_desc): Zap the DECL_SIZE so that we can lay it 2431169689Skan out fresh, as the new type may be larger. 2432169689Skan 2433169689SkanMon Mar 20 19:01:10 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2434169689Skan 2435169689Skan * expr.c (extract_init): Try to expand the RTL for the 2436169689Skan initialization and figure out what it will look like so we can avoid 2437169689Skan run-time initialization. Disabled for now. 2438169689Skan (extract_scalar_init): Helper for scalar initialization. 2439169689Skan (extract_aggr_init): Helper for aggregate initialization. 2440169689Skan 2441169689Skan * decl.c (duplicate_decls): Don't complain about ambiguous 2442169689Skan declarations. 2443169689Skan (obscure_complex_init): Now returns a tree. Call extract_init if 2444169689Skan we're optimizing and this is a toplevel decl. 2445169689Skan (finish_decl): Update accordingly. 2446169689Skan 2447169689Skan * lex.c (check_newline): If we're just changing files (not pushing 2448169689Skan or popping), update input_file_stack->name. 2449169689Skan 2450169689SkanMon Mar 20 17:55:04 1995 Mike Stump <mrs@cygnus.com> 2451169689Skan 2452169689Skan * pt.c (type_unification): Only TEMPLATE_DECLs are handled right now 2453169689Skan in the transitive unification code. 2454169689Skan 2455169689SkanMon Mar 20 16:07:50 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2456169689Skan 2457169689Skan * decl.c (shadow_tag): Don't allow inline, virtual, or explicit on 2458169689Skan non-functions. 2459169689Skan (grokdeclarator): Don't allow friends to be defined in local classes. 2460169689Skan 2461169689SkanSat Mar 18 04:03:33 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2462169689Skan 2463169689Skan * decl2.c (finish_prevtable_vardecl): Use DECL_DECLARED_STATIC 2464169689Skan rather than DECL_SAVED_INSNS to decide whether or not this method 2465169689Skan was declared inline. 2466169689Skan 2467169689Skan * method.c (synthesize_method): Turn off DECL_INLINE if 2468169689Skan function_cannot_inline_p thinks we're too large. 2469169689Skan 2470169689Skan * typeck.c (build_indirect_ref): Use build_expr_type_conversion. 2471169689Skan 2472169689SkanFri Mar 17 17:47:36 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2473169689Skan 2474169689Skan * class.c (instantiate_type): Handle pmfs. 2475169689Skan 2476169689Skan * typeck.c (convert_for_assignment): Check types when assigning one 2477169689Skan pmf to another. 2478169689Skan 2479169689Skan * decl.c (define_label): Fix logic for printing out the name of the 2480169689Skan label in an error message. 2481169689Skan 2482169689Skan * error.c (dump_expr): Support ARRAY_REF. 2483169689Skan 2484169689SkanFri Mar 17 17:43:02 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2485169689Skan 2486169689Skan * decl2.c (finish_vtable_vardecl): Call build_t_desc here. 2487169689Skan (finish_prevtable_vardecl): Instead of here. 2488169689Skan 2489169689SkanFri Mar 17 14:40:45 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2490169689Skan 2491169689Skan * decl.c (expand_static_init): Also use expand_aggr_init if the 2492169689Skan initializer is a TREE_LIST. 2493169689Skan (grokdeclarator): Only pedwarn about extra qualification if -pedantic. 2494169689Skan 2495169689Skan * pt.c (unify): Fix unification of return type. 2496169689Skan 2497169689Skan * expr.c (fixup_result_decl): Use store_expr, rather than 2498169689Skan emit_move_insn, to move the return value into the place where 2499169689Skan callers will expect it. 2500169689Skan 2501169689SkanThu Mar 16 22:05:25 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2502169689Skan 2503169689Skan * init.c (build_offset_ref): Call assmble_external on functions. 2504169689Skan * typeck.c (build_component_ref): Likewise. 2505169689Skan 2506169689SkanThu Mar 16 20:28:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2507169689Skan 2508169689Skan * decl.c (struct saved_scope): Add members base_init_list and 2509169689Skan member_init_list. 2510169689Skan (push_to_top_level): Save current_base_init_list and 2511169689Skan current_member_init_list to them. 2512169689Skan (pop_from_top_level): Put it back. 2513169689Skan 2514169689SkanThu Mar 16 19:21:14 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2515169689Skan 2516169689Skan * pt.c (instantiate_template): Call assemble_external. 2517169689Skan 2518169689SkanThu Mar 16 18:07:54 1995 Brendan Kehoe <brendan@phydeaux.cygnus.com> 2519169689Skan 2520169689Skan * class.c: Include rtl.h, to get NULL_RTX. 2521169689Skan (finish_struct): Also zero out DECL_SAVED_INSNS, to avoid problems 2522169689Skan on hosts with different sizes for each part of the union. 2523169689Skan * tree.c: Also include rtl.h. 2524169689Skan (layout_basetypes): Same change for DECL_SAVED_INSNS. 2525169689Skan 2526169689SkanThu Mar 16 13:57:36 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2527169689Skan 2528169689Skan * pt.c (unify): Fix array domain unification for 64-bit targets. 2529169689Skan 2530169689Skan * decl2.c (finish_file): Push bizarre type decl before walking the 2531169689Skan vtables the first time. 2532169689Skan (walk_vtables): OK, don't set prev to vars if the vardecl_fn messed 2533169689Skan with TREE_CHAIN (prev). 2534169689Skan 2535169689Skan * init.c (emit_base_init): Use convert_pointer_to_real instead of 2536169689Skan convert_pointer_to when converting to a direct base. 2537169689Skan 2538169689SkanWed Mar 15 20:26:29 1995 Mike Stump <mrs@cygnus.com> 2539169689Skan 2540169689Skan * pt.c (type_unification): Handle transitive unification better. 2541169689Skan 2542169689SkanWed Mar 15 13:56:16 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2543169689Skan 2544169689Skan * decl2.c (walk_vtables): Always set prev to vars. 2545169689Skan (mark_vtable_entries): Call assemble_external on the vtable entries. 2546169689Skan 2547169689Skan * class.c (finish_struct): Set the vtable's size to NULL_TREE before 2548169689Skan calling layout_decl, so that it gets updated properly. 2549169689Skan 2550169689Skan Finally re-enable dynamic synthesis. This time it works. 2551169689Skan * method.c (synthesize_method): Pass decl_function_context (fndecl) 2552169689Skan to {push,pop}_cp_function_context. 2553169689Skan * decl.c (push_cp_function_context): Now takes a tree argument. 2554169689Skan (pop_cp_function_context): Likewise. 2555169689Skan * call.c (build_method_call): Enable synthesis. 2556169689Skan * lex.c (cons_up_default_function): Likewise. 2557169689Skan 2558169689SkanTue Mar 14 19:14:19 1995 Doug Evans <dje@chestnut.cygnus.com> 2559169689Skan 2560169689Skan * parse.y (setattrs): Chain onto prefix_attributes rather than 2561169689Skan setting it. 2562169689Skan 2563169689SkanWed Mar 15 13:00:00 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2564169689Skan 2565169689Skan * decl.c (pushdecl): Check if the type of the VAR_DECL is an 2566169689Skan error_mark_node before trying to read TYPE_LANG_SPECIFIC. 2567169689Skan 2568169689SkanMon Mar 13 21:00:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2569169689Skan 2570169689Skan * decl.c (grokdeclarator, case ARRAY_REF): Wrap the exp with fold, 2571169689Skan and convert the size and integer_one_node to the index type. 2572169689Skan 2573169689SkanMon Mar 13 08:01:02 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2574169689Skan 2575169689Skan * typeck.c (get_member_function_from_ptrfunc): Save the instance 2576169689Skan argument, and tack it onto the front of the COND_EXPR to make the 2577169689Skan semantics come out right. Grab the instance argument from 2578169689Skan '*instance_ptrptr', rather than having it passed in separately. 2579169689Skan 2580169689Skan * various: Change various consed-up comparison operations to have 2581169689Skan boolean type. Remove the instance argument in calls to 2582169689Skan get_member_function_from_ptrfunc. 2583169689Skan 2584169689Skan * error.c (dump_expr): Dump true and false as "true" and "false". 2585169689Skan 2586169689Skan * decl2.c (finish_file): Also set DECL_STATIC_FUNCTION_P on the 2587169689Skan global init function. 2588169689Skan 2589169689Skan * decl.c (finish_function): Only set DECL_EXTERNAL here if the 2590169689Skan inline function is public. 2591169689Skan 2592169689SkanSat Mar 11 00:58:03 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2593169689Skan 2594169689Skan * init.c (is_friend): Be more careful about checking 2595169689Skan DECL_CLASS_CONTEXT on non-member functions. 2596169689Skan 2597169689Skan * decl2.c (finish_vtable_vardecl): Don't bother calling 2598169689Skan assemble_external here. 2599169689Skan (prune_vtable_vardecl): New function that just splices out the 2600169689Skan vtable decl from the top-level decls. 2601169689Skan (import_export_inline): Unset DECL_EXTERNAL at first. 2602169689Skan (finish_file): Don't bother calling assemble_external here. Do 2603169689Skan splice out all of the vtables. 2604169689Skan 2605169689SkanFri Mar 10 14:42:29 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2606169689Skan 2607169689Skan * decl.c (finish_function): If we're not emitting the function yet, 2608169689Skan call assemble_external for it. 2609169689Skan 2610169689Skan * decl2.c (finish_prevtable_vardecl): Don't call mark_vtable_entries 2611169689Skan here. 2612169689Skan (finish_vtable_vardecl): Don't do the linkage deduction thing here. 2613169689Skan Also don't splice out the current vtable if it is unused. 2614169689Skan (finish_file): Move the second walk_vtables and the synthesis check 2615169689Skan inside the 'reconsider' loop. Move thunk emission after the 2616169689Skan 'reconsider' loop. 2617169689Skan 2618169689SkanThu Mar 9 16:28:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2619169689Skan 2620169689Skan * pt.c (tsubst): Don't bother calling cp_build_type_variant, since it 2621169689Skan was passing bogus values for readonly and volatile from the original 2622169689Skan template decl, not the resultant type of the tsubst call. 2623169689Skan 2624169689Skan * class.c (duplicate_tag_error): Use cp_error_at to point out the 2625169689Skan previous definition of the tag. 2626169689Skan 2627169689SkanThu Mar 9 10:46:17 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2628169689Skan 2629169689Skan * decl.c (start_function): Clear base_init_insns and protect_list. 2630169689Skan (struct cp_function): Add base_init_insns field. 2631169689Skan (push_cp_function_context): Also save base_init_insns. 2632169689Skan (pop_cp_function_context): Also restore base_init_insns. 2633169689Skan 2634169689SkanWed Mar 8 13:31:44 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2635169689Skan 2636169689Skan * init.c (member_init_ok_or_else): Check for initializing a static 2637169689Skan member here. 2638169689Skan (emit_base_init): Instead of here. 2639169689Skan 2640169689SkanTue Mar 7 16:03:26 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2641169689Skan 2642169689Skan * call.c (build_method_call): Disable synthesis as needed. 2643169689Skan * lex.c (cons_up_default_function): Likewise. 2644169689Skan 2645169689SkanTue Mar 7 10:14:29 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2646169689Skan 2647169689Skan * parse.y: New rules to allow attributes in a prefix position. 2648169689Skan (prefix_attributes): New variable. Pass it into cplus_decl_attributes. 2649169689Skan (setattr): New rule. 2650169689Skan (reserved_declspecs, declmods): Catch attributes here. 2651169689Skan * decl2.c (cplus_decl_attributes): Add PREFIX_ATTRIBUTES argument. 2652169689Skan * decl.c (duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to 2653169689Skan descendent typedef. 2654169689Skan (grokdeclarator): Added code to support machine attributes. 2655169689Skan * Makefile.in (stamp-parse): Expect 5 shift/reduce failures. 2656169689Skan 2657169689SkanMon Mar 6 15:07:02 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2658169689Skan 2659169689Skan * call.c (build_method_call): Don't synthesize methods outside of a 2660169689Skan function. 2661169689Skan 2662169689Skan Make base initialization more re-entrant so that synthesis on the 2663169689Skan fly will work (and, eventually, template instantiation on the fly). 2664169689Skan * init.c (sort_member_init): Don't bother with members that can't be 2665169689Skan initialized. Reorganize a bit. Don't initialize base members here. 2666169689Skan (sort_base_init): New function, like sort_member_init, but for base 2667169689Skan classes. Steals some code from emit_base_init. 2668169689Skan (emit_base_init): Simplify. Call sort_{member,base}_init before 2669169689Skan doing any initialization, so we don't have to save 2670169689Skan current_{member,base}_init_list in push_cp_function_context. 2671169689Skan (expand_aggr_vbase_init_1): Adjust for sort_base_init. 2672169689Skan (expand_aggr_vbase_init): Simplify. 2673169689Skan * decl.c (struct cp_function): Add protect_list field. 2674169689Skan (push_cp_function_context): Also save protect_list. 2675169689Skan (pop_cp_function_context): Also restore protect_list. 2676169689Skan * call.c (build_method_call): Enable synthesis at point of call. 2677169689Skan * lex.c (cons_up_default_function): Likewise. 2678169689Skan 2679169689Skan * parse.y: Turn -ansi checks back into -pedantic checks. 2680169689Skan 2681169689Skan * init.c (build_new): Fix -fcheck-new for array new. 2682169689Skan 2683169689SkanSat Mar 4 15:55:42 1995 Fergus Henderson <fjh@cs.mu.oz.au> 2684169689Skan 2685169689Skan * typeck.c (build_compound_expr): warn if left-hand operand of 2686169689Skan comma expression has no side-effects. 2687169689Skan 2688169689SkanFri Mar 3 15:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2689169689Skan 2690169689Skan * parse.y (primary): Change 'object qualified_id *' rules to 'object 2691169689Skan overqualified_id *'. 2692169689Skan 2693169689SkanFri Mar 3 12:48:17 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2694169689Skan 2695169689Skan * parse.y (unary_expr): Catch doing sizeof an overloaded function. 2696169689Skan Make the error look the same as the one we issue in c_sizeof. 2697169689Skan 2698169689Skan * typeck.c (build_binary_op_nodefault): Give an error for trying 2699169689Skan to compare a pointer-to-member to `void *'. 2700169689Skan 2701169689SkanFri Mar 3 11:28:50 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2702169689Skan 2703169689Skan * typeck.c (build_unary_op): Handle bool increment with smoke and 2704169689Skan mirrors here, rather than in expand_increment where it belongs, 2705169689Skan because Kenner doesn't agree with me. 2706169689Skan 2707169689SkanFri Mar 3 00:08:10 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2708169689Skan 2709169689Skan * decl.c (grokparms): Catch a PARM_DECL being used for a default 2710169689Skan argument as well. 2711169689Skan 2712169689SkanThu Mar 2 20:05:54 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2713169689Skan 2714169689Skan * init.c (build_new): Don't allow new on a function type. 2715169689Skan 2716169689Skan * parse.y (primary): Avoid a crash when seeing if the arg is of 2717169689Skan the same type as that given for the typespec in an explicit dtor call. 2718169689Skan 2719169689SkanThu Mar 2 00:49:38 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2720169689Skan 2721169689Skan * decl.c (finish_function): Change test for calling 2722169689Skan mark_inline_for_output. 2723169689Skan 2724169689SkanWed Mar 1 11:23:46 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2725169689Skan 2726169689Skan * typeck.c (build_modify_expr): Complain if 2727169689Skan build_default_binary_type_conversion fails. 2728169689Skan 2729169689Skan * init.c (expand_default_init): Handle arguments of unknown type 2730169689Skan properly. 2731169689Skan 2732169689Skan * cvt.c (build_expr_type_conversion): Only complain about ambiguity 2733169689Skan if 'complain'. 2734169689Skan * various: Pass 'complain'. 2735169689Skan 2736169689Skan * typeck.c (comptypes): Be more picky about comparing UPTs. 2737169689Skan 2738169689SkanWed Mar 1 11:03:41 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2739169689Skan 2740169689Skan * decl.c (grokdeclarator): If declarator is null, say that the 2741169689Skan type used has an incomplete type. 2742169689Skan 2743169689SkanWed Mar 1 10:06:20 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2744169689Skan 2745169689Skan * pt.c (instantiate_template): Copy the template arguments to the 2746169689Skan permanent_obstack. Also use simple_cst_equal to compare them when 2747169689Skan looking for a previous instantiation. 2748169689Skan 2749169689Skan * tree.c (make_deep_copy): Support copying INTEGER_TYPEs (assuming 2750169689Skan they are array domain types). 2751169689Skan 2752169689SkanTue Feb 28 23:24:55 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2753169689Skan 2754169689Skan * cp-tree.h: Define WANT_* constants for passing to 2755169689Skan build_expr_type_conversion. 2756169689Skan * cvt.c (build_expr_type_conversion): New function to build 2757169689Skan conversion to one of a group of suitable types. 2758169689Skan (build_default_binary_type_conversion): Use it. 2759169689Skan * decl2.c (grok_array_decl): Likewise. 2760169689Skan * typeck.c (build_unary_op): Likewise. 2761169689Skan (build_array_ref): Tidy up a bit. 2762169689Skan (build_binary_op): Likewise. 2763169689Skan 2764169689SkanTue Feb 28 19:57:31 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2765169689Skan 2766169689Skan * decl.c (grokdeclarator): Don't allow decl of an argument as `void'. 2767169689Skan 2768169689SkanTue Feb 28 17:23:36 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2769169689Skan 2770169689Skan * parse.y (typed_declspecs1): Add 'typespec reserved_typespecquals 2771169689Skan reserved_declspecs' rule. 2772169689Skan 2773169689Skan * parse.y (expr_or_declarator): Remove notype_qualified_id rule. 2774169689Skan (direct_notype_declarator): Likewise. 2775169689Skan (complex_direct_notype_declarator): Add notype_qualified_id rule. 2776169689Skan 2777169689Skan * lex.c (real_yylex): Handle :> digraph properly. 2778169689Skan 2779169689SkanTue Feb 28 12:26:29 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2780169689Skan 2781169689Skan * decl.c (grokdeclarator): Check if it's a friend, not if it's 2782169689Skan non-virtual, that's being initialized. Move the check up to 2783169689Skan before FRIENDP would get cleared. Catch an unnamed var/field 2784169689Skan being declared void. Say just `field' instead of `structure field' 2785169689Skan in the error message. Only go for the operator name if DECLARATOR 2786169689Skan is non-null. 2787169689Skan 2788169689SkanTue Feb 28 00:08:01 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2789169689Skan 2790169689Skan * decl.c (start_function): Complain about abstract return type. 2791169689Skan (grokdeclarator): Complain about declaring constructors and 2792169689Skan destructors to be const or volatile. Complain about declaring 2793169689Skan destructors to be static. 2794169689Skan 2795169689Skan * pt.c (uses_template_parms): Handle pmfs. 2796169689Skan 2797169689Skan * decl.c (grokdeclarator): Don't call variable_size for array bounds 2798169689Skan that only depend on template constant parameters. 2799169689Skan 2800169689SkanMon Feb 27 15:38:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2801169689Skan 2802169689Skan * error.c (dump_decl): Only look to see if it's a vtable if we 2803169689Skan actually have a name to check out. 2804169689Skan 2805169689SkanMon Feb 27 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2806169689Skan 2807169689Skan * cvt.c (convert_to_aggr): Lose misleading shortcut. 2808169689Skan 2809169689SkanSun Feb 26 17:27:32 1995 Doug Evans <dje@canuck.cygnus.com> 2810169689Skan 2811169689Skan * decl.c (set_nested_typename): Always set DECL_IGNORED_P, 2812169689Skan not just for dwarf. 2813169689Skan 2814169689SkanSun Feb 26 00:10:18 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2815169689Skan 2816169689Skan * decl.c (grokdeclarator): Don't allow a static member to be 2817169689Skan declared `register'. 2818169689Skan 2819169689Skan * init.c (make_friend_class): Move up to a pedwarn for the warning 2820169689Skan about a class declaring friends with itself. 2821169689Skan 2822169689Skan * decl.c (grokdeclarator): You can't do `volatile friend class foo' 2823169689Skan or `inline friend class foo'. Only try to make a friend out of 2824169689Skan TYPE if we didn't already reset it to integer_type_node. 2825169689Skan 2826169689SkanSat Feb 25 22:32:03 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2827169689Skan 2828169689Skan * decl.c (grokdeclarator): Don't allow initialization of a 2829169689Skan non-virtual function. 2830169689Skan 2831169689Skan * decl.c (start_function): Do a pedwarn if we're changing `main' 2832169689Skan to have an int return type. 2833169689Skan 2834169689SkanSat Feb 25 00:02:05 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2835169689Skan 2836169689Skan * typeck.c (build_modify_expr): Handle simple assignment from 2837169689Skan TARGET_EXPRs by building up an RTL_EXPR to force expansion. Whew. 2838169689Skan 2839169689SkanFri Feb 24 18:27:14 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2840169689Skan 2841169689Skan * decl.c (grokdeclarator): Also don't allow virtual outside of a 2842169689Skan class decl for a scope method definition performed at global binding. 2843169689Skan 2844169689Skan * init.c (build_offset_ref): Don't allow creation of an OFFSET_REF 2845169689Skan of a bitfield. 2846169689Skan 2847169689Skan * decl.c (grokdeclarator): Don't allow a const to be declared mutable. 2848169689Skan 2849169689Skan * typeck.c (build_binary_op): Return an error_mark_node if either 2850169689Skan one of the args turned into an error_mark_node when we tried to 2851169689Skan use default_conversion. 2852169689Skan 2853169689Skan * typeck.c (build_unary_op): Forbid using postfix -- on a bool. 2854169689Skan 2855169689Skan * decl.c (grokdeclarator): Allow `signed' and `unsigned' to be 2856169689Skan used on `__wchar_t'. 2857169689Skan 2858169689SkanFri Feb 24 13:59:53 1995 Mike Stump <mrs@cygnus.com> 2859169689Skan 2860169689Skan * except.c (end_protect_partials): Do it the right way. 2861169689Skan 2862169689SkanWed Feb 22 15:42:56 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2863169689Skan 2864169689Skan * typeck.c (build_binary_op_nodefault): Upgrade warning about 2865169689Skan comparing distinct pointer types to pedwarn. 2866169689Skan 2867169689Skan * typeck2.c (digest_init): Cope with extra braces. 2868169689Skan 2869169689Skan * typeck.c (build_binary_op_nodefault): Use tree_int_cst_sgn instead 2870169689Skan of INT_CST_LT (..., interger_zero_node). 2871169689Skan 2872169689SkanWed Feb 22 14:45:52 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2873169689Skan 2874169689Skan * except.c [!TRY_NEW_EH] (end_protect_partials): Define dummy 2875169689Skan function for systems that don't have EH. 2876169689Skan 2877169689SkanTue Feb 21 19:18:31 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2878169689Skan 2879169689Skan * call.c (can_convert_arg): Like can_convert, but takes an arg as 2880169689Skan well. 2881169689Skan 2882169689Skan * pt.c (type_unification): Allow implicit conversions for parameters 2883169689Skan that do not depend on template parameters. 2884169689Skan 2885169689SkanTue Feb 21 18:43:48 1995 Douglas Rupp <drupp@cs.washington.edu> 2886169689Skan 2887169689Skan * Make-lang.in, config-lang.in: ($exeext): New macro. 2888169689Skan * Make-lang.in: Try a "cp" if "ln" fails. 2889169689Skan * cp-tree.h (decl_attributes): Added argument. 2890169689Skan * decl2.c (cplus_decl_attribute): Add arg to decl_attributes. 2891169689Skan * cp/g++.c: Added #ifdefs for sys/file.h and process.h for NT. 2892169689Skan Modified spawnvp to have to correct number of arguments for OS/2, NT. 2893169689Skan 2894169689SkanTue Feb 21 18:36:55 1995 Mike Stump <mrs@cygnus.com> 2895169689Skan 2896169689Skan * decl.c (finish_function): Add calls to end_protect_partials to end 2897169689Skan the exception region that protects constructors so that partially 2898169689Skan constructed objects can be partially destructed when the constructor 2899169689Skan throws an exception. 2900169689Skan * init.c (perform_member_init, sort_member_init, emit_base_init): 2901169689Skan Added support for partially constructed objects. 2902169689Skan * init.c (build_partial_cleanup_for): New routine to do partial 2903169689Skan cleanups of a base class. 2904169689Skan * decl2.c (finish_file): Move the emitting of the exception table 2905169689Skan down, after we emit all code that might have exception regions in 2906169689Skan them. 2907169689Skan * except.c (end_protect_partials, might_have_exceptions_p): New 2908169689Skan routines. 2909169689Skan (emit_exception_table): Always output table if called. 2910169689Skan * cp-tree.h (protect_list, end_protect_partials, 2911169689Skan might_have_exceptions_p, emit_exception_table): Added. 2912169689Skan 2913169689SkanTue Feb 21 16:05:59 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 2914169689Skan 2915169689Skan * gc.c (build_typeid): Pass a NULL_TREE, not the bogus, unused 2916169689Skan address of a local variable. 2917169689Skan * class.c (build_vfn_ref): Only try to build the PLUS_EXPR if we 2918169689Skan were given a non-null PTR_TO_INSTPTR. 2919169689Skan 2920169689SkanTue Feb 21 01:53:18 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2921169689Skan 2922169689Skan * decl.c (duplicate_decls): Always lay out the merged decl. 2923169689Skan 2924169689Skan * decl2.c (finish_vtable_vardecl): Don't do vtable hack on templates. 2925169689Skan (finish_prevtable_vardecl): Likewise. 2926169689Skan 2927169689Skan * method.c (synthesize_method): Set interface_{unknown,only} 2928169689Skan according to the settings for our class, not the file where it comes 2929169689Skan from. 2930169689Skan 2931169689SkanSat Feb 18 12:26:48 1995 Mike Stump <mrs@cygnus.com> 2932169689Skan 2933169689Skan * except.c: Handle systems that define __i386__ but not __i386. 2934169689Skan 2935169689SkanFri Feb 17 15:31:31 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2936169689Skan 2937169689Skan * decl2.c (reparse_decl_as_expr): Support being called without a 2938169689Skan type argument. 2939169689Skan 2940169689Skan * parse.y (primary): Add '(' expr_or_declarator ')'. Adds 4 r/r 2941169689Skan conflicts. Sigh. 2942169689Skan 2943169689SkanFri Feb 17 12:02:06 1995 Mike Stump <mrs@cygnus.com> 2944169689Skan 2945169689Skan * parse.y (template_def, fndef, fn.def1, return_init, condition, 2946169689Skan initdcl0, initdcl, notype_initdcl0, nomods_initdcl0, 2947169689Skan component_decl_1, after_type_component_declarator0, 2948169689Skan notype_component_declarator0, after_type_component_declarator, 2949169689Skan notype_component_declarator, after_type_component_declarator, 2950169689Skan full_parm, maybe_raises, exception_specification_opt): Fix up, 2951169689Skan include exception_specification_opt maybeasm maybe_attribute and 2952169689Skan maybe_init if missing. Rename maybe_raises to 2953169689Skan exception_specification_opt to match draft wording. Use maybe_init 2954169689Skan to simplify rules. 2955169689Skan 2956169689SkanFri Feb 17 01:54:46 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2957169689Skan 2958169689Skan * init.c (build_new): Set TREE_NO_UNUSED_WARNING on COMPOUND_EXPRs 2959169689Skan built for news of scalar types. 2960169689Skan 2961169689SkanThu Feb 16 17:48:28 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2962169689Skan 2963169689Skan * typeck.c (build_binary_op_nodefault): Update code for warning 2964169689Skan about signed/unsigned comparisons from C frontend. Realize that the 2965169689Skan code in the C frontend is, if anything, even more bogus. Fix it. 2966169689Skan (build_binary_op): Undo default_conversion if it wasn't useful. 2967169689Skan 2968169689Skan * typeck.c (build_unary_op, ADDR_EXPR): Lose bogus special case for 2969169689Skan PRE*CREMENT_EXPR. 2970169689Skan 2971169689Skan * decl2.c (import_export_vtable): Don't try the vtable hack 2972169689Skan if the class doesn't have any real non-inline virtual functions. 2973169689Skan (finish_vtable_vardecl): Don't bother trying to find a non-inline 2974169689Skan virtual function in a non-polymorphic class. 2975169689Skan (finish_prevtable_vardecl): Likewise. 2976169689Skan 2977169689Skan * decl2.c (import_export_vtable): Use and set DECL_INTERFACE_KNOWN. 2978169689Skan 2979169689Skan * cp-tree.h (DECL_INTERFACE_KNOWN): Use DECL_LANG_FLAG_5. 2980169689Skan 2981169689Skan * init.c (expand_virtual_init): Always call assemble_external. 2982169689Skan 2983169689Skan * class.c (build_vfn_ref): Always call assemble_external. 2984169689Skan (build_vtable): Always call import_export_vtable. 2985169689Skan (prepare_fresh_vtable): Likewise. 2986169689Skan (add_virtual_function): Don't bother setting TREE_ADDRESSABLE. 2987169689Skan 2988169689SkanThu Feb 16 03:28:49 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2989169689Skan 2990169689Skan * class.c (finish_struct): Use TYPE_{MIN,MAX}_VALUE to determine 2991169689Skan whether an enumerated type fits in a bitfield. 2992169689Skan 2993169689SkanWed Feb 15 15:38:12 1995 Jason Merrill <jason@phydeaux.cygnus.com> 2994169689Skan 2995169689Skan * class.c (grow_method): Update method_vec after growing the class 2996169689Skan obstack. 2997169689Skan 2998169689SkanWed Feb 15 13:42:59 1995 Mike Stump <mrs@cygnus.com> 2999169689Skan 3000169689Skan * parse.y (handler_seq): Push a level for the catch parameters. 3001169689Skan 3002169689SkanWed Feb 15 12:42:57 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3003169689Skan 3004169689Skan * init.c (emit_base_init): Update BINFO_INHERITANCE_CHAIN on my 3005169689Skan bases, in case they've been clobbered. 3006169689Skan 3007169689SkanWed Feb 15 12:07:29 1995 Mike Stump <mrs@cygnus.com> 3008169689Skan 3009169689Skan * class.c (finish_base_struct): Set up BINFO_INHERITANCE_CHAIN here, 3010169689Skan so that one day it will always be valid. 3011169689Skan * tree.c (propagate_binfo_offsets, layout_vbasetypes): Likewise. 3012169689Skan 3013169689Skan * cp-tree.h (copy_binfo): Removed, unused. 3014169689Skan * tree.c (copy_binfo): Likewise. 3015169689Skan 3016169689SkanWed Feb 15 00:05:30 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3017169689Skan 3018169689Skan * init.c (build_new): Save the allocation before calling 3019169689Skan expand_vec_init on it. 3020169689Skan 3021169689Skan * decl.c (finish_enum): The TYPE_PRECISION of the enum type mush 3022169689Skan match the TYPE_PRECISION of the underlying type for constant folding 3023169689Skan to work. 3024169689Skan 3025169689SkanTue Feb 14 15:31:25 1995 Mike Stump <mrs@cygnus.com> 3026169689Skan 3027169689Skan * except.c (push_eh_entry, expand_start_all_catch, 3028169689Skan expand_leftover_cleanups, expand_end_catch_block): Keep track of 3029169689Skan the context in which the exception region occurs. 3030169689Skan (build_exception_table): If the region was not output, don't output 3031169689Skan the entry in the eh table for it. 3032169689Skan 3033169689SkanTue Feb 14 02:15:43 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3034169689Skan 3035169689Skan * init.c (expand_default_init): Only use a previous constructor call 3036169689Skan if it's a call to our constructor. Does the word "Duh" mean 3037169689Skan anything to you? 3038169689Skan 3039169689Skan * decl.c (grokparms): Fine, just don't call 3040169689Skan convert_for_initialization at all. OK? Happy now? 3041169689Skan 3042169689SkanMon Feb 13 02:23:44 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3043169689Skan 3044169689Skan * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Make sure that the class 3045169689Skan method vector has a second element before returning it. 3046169689Skan 3047169689Skan * decl.c (grokparms): Don't strip REFERENCE_TYPE before calling 3048169689Skan convert_for_initialization. 3049169689Skan 3050169689SkanSun Feb 12 03:57:06 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3051169689Skan 3052169689Skan * typeck.c (build_modify_expr): Compare function name to 3053169689Skan constructor_name (current_class_type) instead of current_class_name. 3054169689Skan 3055169689Skan * decl.c (grokparms): Don't do anything with the return value of 3056169689Skan convert_for_initialization. 3057169689Skan 3058169689Skan * error.c (dump_decl): Also dump_readonly_or_volatile on the decl. 3059169689Skan 3060169689Skan * decl.c (duplicate_decls): Tweak error message. 3061169689Skan 3062169689Skan * typeck.c (build_const_cast): Implement checking. 3063169689Skan (build_reinterpret_cast): Implement some checking. 3064169689Skan 3065169689Skan * cp-tree.h (CONV_FORCE_TEMP): Require a new temporary when 3066169689Skan converting to the same aggregate type. 3067169689Skan (CONV_STATIC_CAST): Include it. 3068169689Skan (CONV_C_CAST): Likewise. 3069169689Skan * cvt.c (convert_force): Use CONV_C_CAST instead of CONV_OLD_CONVERT. 3070169689Skan (cp_convert): Only force a new temporary if CONV_FORCE_TEMP. 3071169689Skan 3072169689SkanFri Feb 10 16:18:52 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3073169689Skan 3074169689Skan * typeck.c (build_c_cast): Use non_lvalue to tack something on 3075169689Skan where necessary. 3076169689Skan 3077169689Skan * decl.c (auto_function): Now a function. 3078169689Skan * except.c (init_exception_processing): terminate, unexpected, 3079169689Skan set_terminate, and set_unexpected have C++ linkage. 3080169689Skan 3081169689Skan * typeck.c (build_unary_op, TRUTH_NOT_EXPR): Use convert instead of 3082169689Skan truthvalue_conversion for converting to bool, as it handles 3083169689Skan user-defined conversions properly. 3084169689Skan (condition_conversion): Likewise. 3085169689Skan 3086169689Skan * except.c (expand_throw): Don't call convert_to_reference. 3087169689Skan Pass the correct parameters to build_new. 3088169689Skan 3089169689Skan * method.c (do_build_assign_ref): Don't use access control when 3090169689Skan converting to a base reference here. 3091169689Skan (do_build_copy_constructor): Or here. 3092169689Skan 3093169689Skan * init.c (build_new): Unset TREE_READONLY on the dereferenced 3094169689Skan pointer before assigning to it. 3095169689Skan 3096169689Skan * decl.c (maybe_build_cleanup): Don't bother stripping const here. 3097169689Skan 3098169689Skan * decl2.c (delete_sanity): You can now delete pointer to const. 3099169689Skan 3100169689SkanFri Feb 10 13:28:38 1995 Jason Merrill <jason@python.cygnus.com> 3101169689Skan 3102169689Skan * decl.c (finish_function): Don't rely on actual parameters being 3103169689Skan evaluated left-to-right. 3104169689Skan * except.c (expand_end_catch_block): Likewise. 3105169689Skan 3106169689SkanFri Feb 10 00:52:04 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3107169689Skan 3108169689Skan * tree.c (real_lvalue_p): Like lvalue_p, but class temps aren't 3109169689Skan considered lvalues. 3110169689Skan * cvt.c (convert_to_reference): Use real_lvalue_p instead of 3111169689Skan lvalue_p. 3112169689Skan 3113169689Skan * cvt.c (build_type_conversion_1): Don't call convert on aggregate 3114169689Skan types. 3115169689Skan (convert_to_reference): Fix erroneous text substitution. 3116169689Skan 3117169689Skan * typeck2.c (initializer_constant_valid_p): Update from C frontend. 3118169689Skan Add new argument to all callers. 3119169689Skan 3120169689Skan * typeck.c (convert_arguments): Check for error_mark_node before 3121169689Skan trying to do anything with the actual parameter. 3122169689Skan 3123169689Skan * typeck.c (condition_conversion): Build up a CLEANUP_POINT_EXPR and 3124169689Skan fold it. 3125169689Skan (bool_truthvalue_conversion): Remove. Fix all callers to call 3126169689Skan truthvalue_conversion instead. 3127169689Skan (various): Fold CLEANUP_POINT_EXPRs. 3128169689Skan 3129169689Skan * parse.y (conditions): Call condition_conversion rather than 3130169689Skan building up a CLEANUP_POINT_EXPR. 3131169689Skan 3132169689Skan * pt.c (end_template_decl): Don't warn_if_unknown_interface here 3133169689Skan under -falt-external-templates. 3134169689Skan 3135169689SkanThu Feb 9 05:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3136169689Skan 3137169689Skan * init.c (build_new): Complain about new of const type without 3138169689Skan initializer. Other cleanup. 3139169689Skan 3140169689Skan * call.c (compute_conversion_costs): Don't call 3141169689Skan build_type_conversion with a reference type; convert to the target 3142169689Skan type and check its lvaluetude. 3143169689Skan * cvt.c (convert_to_reference): Likewise. 3144169689Skan 3145169689Skan * cvt.c (build_type_conversion_1): There will never be any need to 3146169689Skan dereference references here now. 3147169689Skan 3148169689SkanThu Feb 9 00:37:47 1995 Mike Stump <mrs@cygnus.com> 3149169689Skan 3150169689Skan * except.c (expand_builtin_throw): Make sure we only `use' the 3151169689Skan value of return_val_rtx. 3152169689Skan 3153169689SkanWed Feb 8 15:45:55 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3154169689Skan 3155169689Skan * parse.y (structsp): Don't complain about declaring a type being 3156169689Skan defined to be a friend. 3157169689Skan 3158169689Skan * decl2.c (warn_if_unknown_interface): Note the template in question 3159169689Skan and the point of instantiation, for -falt-external-templates. 3160169689Skan * lex.c (reinit_parse_for_method): Pass the decl to 3161169689Skan warn_if_unknown_interface. 3162169689Skan * pt.c (instantiate_template): Likewise. 3163169689Skan (end_template_decl): Likewise. 3164169689Skan 3165169689Skan * decl.c (set_nested_typename): Set IDENTIFIER_TYPE_VALUE on the 3166169689Skan nested name again, to make local classes work a bit better. 3167169689Skan 3168169689Skan * typeck.c (build_function_call_real): Dereference reference after 3169169689Skan checking for incomplete type. 3170169689Skan 3171169689Skan * init.c (build_new): Accept new of const and volatile types. 3172169689Skan 3173169689SkanWed Feb 8 14:04:16 1995 Jason Merrill <jason@deneb.cygnus.com> 3174169689Skan 3175169689Skan * decl.c (grokdeclarator): Fix error message. 3176169689Skan 3177169689SkanWed Feb 8 03:16:15 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3178169689Skan 3179169689Skan * typeck.c (convert_for_initialization): Do bash arrays when 3180169689Skan converting to a reference to non-array. 3181169689Skan 3182169689SkanTue Feb 7 15:50:33 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3183169689Skan 3184169689Skan * cvt.c (cp_convert): Don't call convert_to_reference, or 3185169689Skan automatically dereference references. Do pass reference conversions 3186169689Skan to cp_convert_to_pointer. 3187169689Skan (cp_convert_to_pointer): Support references. 3188169689Skan 3189169689Skan * call.c (build_method_call): Don't build up a reference to the 3190169689Skan parameter here; let build_overload_call handle that. 3191169689Skan 3192169689Skan * typeck.c (build_c_cast): Call convert_to_reference directly if 3193169689Skan converting to a reference type. 3194169689Skan * method.c (do_build_copy_constructor): Likewise. 3195169689Skan * method.c (do_build_copy_constructor): Likewise. 3196169689Skan (do_build_assign_ref): Likewise. 3197169689Skan 3198169689Skan * call.c (build_method_call): Dereference a returned reference. 3199169689Skan * typeck.c (build_function_call_real): Likewise. 3200169689Skan 3201169689Skan * decl.c (xref_basetypes): Check for unions with basetypes here. 3202169689Skan (xref_tag): Instead of here. 3203169689Skan 3204169689Skan * pt.c (process_template_parm): Template type parm decls are 3205169689Skan artificial. 3206169689Skan 3207169689SkanMon Feb 6 04:32:09 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3208169689Skan 3209169689Skan * parse.y (typed_declspecs): Add missing semicolon. 3210169689Skan (do_xref_defn): Resurrect. 3211169689Skan (named_class_head_sans_basetype): Move template specialization 3212169689Skan definition cases to named_class_head_sans_basetype_defn. 3213169689Skan 3214169689Skan * decl2.c (grokfield): Call pushdecl_class_level after setting the 3215169689Skan TYPE_NAME, not before. 3216169689Skan 3217169689SkanSun Feb 5 02:50:45 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3218169689Skan 3219169689Skan * call.c (convert_harshness): Don't call sorry here. Don't allow 3220169689Skan conversions between function pointer types if pedantic. 3221169689Skan 3222169689Skan * pt.c (overload_template_name): Pass globalize=1 to xref_tag. 3223169689Skan 3224169689Skan * lex.c (cons_up_default_function): Use the full name for the return 3225169689Skan type of op=. 3226169689Skan 3227169689Skan * decl.c (set_nested_typename): Don't worry about anonymous types, 3228169689Skan as they already have a unique name. 3229169689Skan (pushdecl): Remove redundant set_nested_typename 3230169689Skan (xref_tag): Split out base handling into xref_basetypes. 3231169689Skan 3232169689Skan * cp-tree.h (TYPE_INCOMPLETE): New macro; TEMPLATE_TYPE_PARMs are 3233169689Skan not considered incomplete even though their definition is unknown. 3234169689Skan 3235169689Skan * decl.c (xref_defn_tag): Lose. 3236169689Skan (xref_tag): xref_next_defn = ! globalize. 3237169689Skan (pushdecl): Don't set DECL_NESTED_TYPENAME on artificial decls. The 3238169689Skan ones that should have it set will have it set by pushtag. 3239169689Skan (pushdecl_class_level): Likewise. 3240169689Skan (pushtag): Tidy up a bit. 3241169689Skan (set_nested_typename): Push a decl for the nested typename from 3242169689Skan here, rather than from xref_defn_tag. 3243169689Skan 3244169689Skan * parse.y (do_xref): Lose. 3245169689Skan (named_class_head): If we see 'class foo:' we know it's a 3246169689Skan definition, so don't worry about base lists for non-definitions. 3247169689Skan 3248169689Skan * pt.c (push_template_decls): Template parm decls are artificial. 3249169689Skan 3250169689Skan * decl.c (duplicate_decls): Restore check for qualifier 3251169689Skan disagreement for non-functions. 3252169689Skan (decls_match): Remove check for qualifier disagreement. 3253169689Skan 3254169689SkanFri Feb 3 14:58:58 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3255169689Skan 3256169689Skan * decl.c (grok_reference_init): Convert initializer from 3257169689Skan reference. 3258169689Skan * typeck.c (convert_for_initialization): Likewise. 3259169689Skan 3260169689Skan * decl.c (duplicate_decls): Propagate DECL_NESTED_TYPENAME. 3261169689Skan 3262169689Skan * cvt.c (cp_convert): Don't convert to the same class type by just 3263169689Skan tacking on a NOP_EXPR. 3264169689Skan (convert_to_reference): Use comp_target_types instead of comptypes 3265169689Skan so that we don't allow conversions two levels down. 3266169689Skan 3267169689SkanThu Feb 2 15:07:58 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3268169689Skan 3269169689Skan * class.c (build_vbase_path): Bash types to make the backend happy. 3270169689Skan * cvt.c (build_up_reference): Bash the types bashed by 3271169689Skan build_vbase_path to be reference types instead of pointer types. 3272169689Skan (convert_to_reference): Likewise. 3273169689Skan 3274169689Skan * typeck.c (build_c_cast): Don't strip NOPs if we're converting to a 3275169689Skan reference type. 3276169689Skan 3277169689Skan * parse.y (structsp): Put back error for 'struct B: public A;'. 3278169689Skan 3279169689SkanWed Feb 1 23:02:06 1995 Mike Stump <mrs@cygnus.com> 3280169689Skan 3281169689Skan * except.c: Add support for mips systems that don't define __mips 3282169689Skan but do define mips, like Ultrix. 3283169689Skan 3284169689SkanWed Feb 1 22:39:07 1995 Mike Stump <mrs@cygnus.com> 3285169689Skan 3286169689Skan * except.c: Add support for exception handling on the Alpha. 3287169689Skan 3288169689SkanWed Feb 1 10:12:14 1995 Mike Stump <mrs@cygnus.com> 3289169689Skan 3290169689Skan * decl2.c (finish_file): Fix bug in Jan 31st change. 3291169689Skan 3292169689SkanTue Jan 31 16:59:15 1995 Gerald Baumgartner <gb@lorenzo.cs.purdue.edu> 3293169689Skan 3294169689Skan * sig.c (build_signature_pointer_or_reference_type): Don't set 3295169689Skan IS_AGGR_TYPE for signature pointers/reference so expand_default_init 3296169689Skan doesn't expect to find a copy constructor. 3297169689Skan * call.c (build_method_call): Treat signature pointers/reference 3298169689Skan as if IS_AGGR_TYPE were set. 3299169689Skan 3300169689SkanTue Jan 31 13:28:56 1995 Mike Stump <mrs@cygnus.com> 3301169689Skan 3302169689Skan * gc.c (get_typeid): Pawn off error messages to build_t_desc. 3303169689Skan (build_t_desc): Inform the user here if they try and build 3304169689Skan with -frtti and don't include <typeinfo.h>. 3305169689Skan 3306169689Skan * decl2.c (finish_prevtable_vardecl): Support rescanning. 3307169689Skan (finish_file): Move finish_prevtable_vardecl up to before the global 3308169689Skan initializers are done as tdecls are initialized in the global 3309169689Skan initializer. Also Pick up any new tdecls or vtables needed by 3310169689Skan synthesized methods. 3311169689Skan 3312169689Skan * class.c (finish_struct): Simplify. We have to do rtti scanning at 3313169689Skan end, so we might as well do all of it there. 3314169689Skan 3315169689SkanTue Jan 31 05:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3316169689Skan 3317169689Skan * call.c (build_method_call): Fix -fthis-is-variable for 32-bit 3318169689Skan targets, too. 3319169689Skan 3320169689SkanTue Jan 31 00:11:04 1995 Mike Stump <mrs@cygnus.com> 3321169689Skan 3322169689Skan * decl2.c (finish_prevtable_vardecl): New routine, mostly split from 3323169689Skan finish_vtable_vardecl. It has the first half functionality from 3324169689Skan that routine. 3325169689Skan * decl2.c (finish_vtable_vardecl): Update to not include stuff not 3326169689Skan in finish_prevtable_vardecl. 3327169689Skan * decl2.c (finish_file): Call finish_prevtable_vardecl. 3328169689Skan * gc.c (build_generic_desc): Allow it to be called when not at the 3329169689Skan global binding layer, but behave as if we were. 3330169689Skan (build_t_desc): Rearrange a bit so that it really works and is 3331169689Skan easier to follow. 3332169689Skan * class.c (finish_struct): Don't decide on tdecls here, as we have 3333169689Skan to wait until the end of the file in general to decide whether or 3334169689Skan not they come out. 3335169689Skan 3336169689SkanMon Jan 30 01:00:40 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3337169689Skan 3338169689Skan * init.c (build_delete): Check access to operator delete before 3339169689Skan calling the destructor. 3340169689Skan * method.c (build_opfncall, DELETE_EXPR): build_method is allowed to 3341169689Skan return error_mark_node. 3342169689Skan * call.c (build_method_call): Use the one-argument op delete even if 3343169689Skan it's an error. 3344169689Skan 3345169689Skan * init.c (build_new): Fix -fthis-is-variable support. 3346169689Skan * call.c (build_method_call): Likewise. 3347169689Skan 3348169689Skan * call.c (convert_harshness): Make conversion from a pointer to bool 3349169689Skan worse than conversion to another pointer. 3350169689Skan 3351169689SkanSat Jan 28 16:46:10 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3352169689Skan 3353169689Skan * init.c (build_new): Check new return value if -fcheck-new. 3354169689Skan 3355169689Skan * lex.c (check_newline): Clear end_of_file when we're done, too. 3356169689Skan 3357169689SkanSat Jan 28 10:38:39 1995 Mike Stump <mrs@cygnus.com> 3358169689Skan 3359169689Skan * decl2.c (finish_vtable_vardecl): Make rtti TD tables follow 3360169689Skan vtables whereever they go. 3361169689Skan 3362169689Skan * gc.c (build_t_desc): Remove old way of setting it up, as it wasn't 3363169689Skan right. 3364169689Skan 3365169689SkanSat Jan 28 09:10:44 1995 Mike Stump <mrs@cygnus.com> 3366169689Skan 3367169689Skan * decl2.c (finish_vtable_vardecl): Now set the 3368169689Skan interface/implementation of vtables on the first virtual function, 3369169689Skan if one exists, otherwise we use the old method. This is a major win 3370169689Skan in terms of cutting down the size of objects and executables in 3371169689Skan terms of text space and data space. Now most of the savings that 3372169689Skan #pragma interface/implementation gives is automatic in a fair number 3373169689Skan of cases. 3374169689Skan 3375169689SkanSat Jan 28 04:57:33 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3376169689Skan 3377169689Skan * decl.c (grokdeclarator): Discard the template parameters in a 3378169689Skan template constructor declaration so that the function is always 3379169689Skan named constructor_name (ctype). 3380169689Skan 3381169689Skan * lex.c (check_newline): Use ungetc to put back the character before 3382169689Skan calling HANDLE_PRAGMA. 3383169689Skan 3384169689SkanFri Jan 27 17:23:47 1995 Mike Stump <mrs@cygnus.com> 3385169689Skan 3386169689Skan * decl2.c (check_classfn): If the cname is T<int> and fn_name is T, 3387169689Skan make sure we still match them. 3388169689Skan 3389169689SkanFri Jan 27 16:32:10 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3390169689Skan 3391169689Skan * parse.y: Add END_OF_LINE token. 3392169689Skan 3393169689Skan * lex.c (check_newline): Set linemode when we see a # directive, and 3394169689Skan unset it when we're done. Turn all 'return's into 'goto skipline'. 3395169689Skan Fix all uses of '\n', since we won't see it anymore. Put back the 3396169689Skan character we read before checking for a sysv or target pragma. 3397169689Skan (real_yylex): If we see an EOF in linemode, return END_OF_LINE. 3398169689Skan (handle_sysv_pragma): Don't look at the input stream; quit when we 3399169689Skan see an END_OF_LINE token. 3400169689Skan 3401169689Skan * input.c (getch): Return EOF if we're in line mode and at the end 3402169689Skan of a line. 3403169689Skan (put_back): Don't put back an EOF. 3404169689Skan 3405169689SkanThu Jan 26 19:26:34 1995 Mike Stump <mrs@cygnus.com> 3406169689Skan 3407169689Skan * except.c (expand_throw): Do the newing of the exception object 3408169689Skan before we load the type descriptor or the address so that we don't 3409169689Skan wipe any of the values out. 3410169689Skan 3411169689SkanThu Jan 26 19:20:00 1995 Mike Stump <mrs@cygnus.com> 3412169689Skan 3413169689Skan * except.c (init_exception_processing): Don't use r12 on the rs6000. 3414169689Skan 3415169689SkanTue Jan 24 16:36:31 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3416169689Skan 3417169689Skan * decl.c (grokparms): Don't try to build up a reference at this point. 3418169689Skan 3419169689Skan * typeck2.c (build_functional_cast): Don't assume that a NOP_EXPR 3420169689Skan will suffice to convert from integer_zero_node. 3421169689Skan 3422169689SkanWed Jan 25 15:02:09 1995 David S. Miller <davem@nadzieja.rutgers.edu> 3423169689Skan 3424169689Skan * class.c (instantiate_type): Change error message text. 3425169689Skan * typeck2.c (store_init_value): Likewise. 3426169689Skan 3427169689SkanMon Jan 23 21:57:14 1995 Mike Stump <mrs@cygnus.com> 3428169689Skan 3429169689Skan * pt.c (tsubst): When we copy a node, don't forget to copy 3430169689Skan TREE_CHAIN, we use it later. 3431169689Skan 3432169689SkanMon Jan 23 03:33:47 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3433169689Skan 3434169689Skan * typeck.c (convert_for_assignment): Initialize variable before use. 3435169689Skan 3436169689SkanFri Jan 20 01:17:59 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3437169689Skan 3438169689Skan * g++.c (main): Link with both libstdc++ and libg++ if called as 3439169689Skan something ending with "g++", otherwise only libstdc++. Move -lm to 3440169689Skan the end of the line. 3441169689Skan 3442169689SkanThu Jan 19 15:43:11 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3443169689Skan 3444169689Skan * call.c (build_method_call): Don't mess with 'this' before calling 3445169689Skan compute_conversion_costs. 3446169689Skan 3447169689SkanWed Jan 18 15:40:55 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3448169689Skan 3449169689Skan * search.c (get_matching_virtual): Give line number for previous 3450169689Skan declaration. 3451169689Skan 3452169689Skan * call.c (convert_harshness): Handle conversions to references 3453169689Skan better. 3454169689Skan 3455169689Skan * cvt.c (build_up_reference): OK, handle {MIN,MAX}_EXPR *properly*. 3456169689Skan 3457169689SkanWed Jan 18 15:21:38 1995 Mike Stump <mrs@cygnus.com> 3458169689Skan 3459169689Skan * class.c (instantiate_type): Use DECL_CHAIN to walk lists instead, 3460169689Skan as the TREE_CHAIN for methods will take us to the next differently 3461169689Skan named function, DECL_CHAIN won't. 3462169689Skan 3463169689SkanWed Jan 18 14:26:59 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3464169689Skan 3465169689Skan * tree.c (lvalue_p): Handle {MIN,MAX}_EXPR. 3466169689Skan 3467169689Skan * decl2.c (lang_decode_option): -Wall implies -Wparentheses. 3468169689Skan warn_parentheses defaults to 0. 3469169689Skan 3470169689Skan * decl.c (grokparms): Put back call to require_instantiated_type. 3471169689Skan 3472169689SkanTue Jan 17 19:56:15 1995 Mike Stump <mrs@cygnus.com> 3473169689Skan 3474169689Skan * except.c (exception_section): Use the data section on the rs6000. 3475169689Skan Change calling convention for named_section. 3476169689Skan 3477169689SkanWed Jan 17 18:20:57 1994 Fergus Henderson <fjh@munta.cs.mu.oz.au> 3478169689Skan 3479169689Skan * cp-tree.h: Make if (x=0) warn with wall 3480169689Skan * parse.y: Make if (x=0) warn with wall 3481169689Skan 3482169689SkanTue Jan 17 14:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3483169689Skan 3484169689Skan * decl.c (BOOL_TYPE_SIZE): BITS_PER_WORD if SLOW_BYTE_ACCESS, 3485169689Skan BITS_PER_UNIT otherwise. 3486169689Skan 3487169689Skan * search.c (get_matching_virtual): Don't check the binfo if the 3488169689Skan types are the same. 3489169689Skan 3490169689Skan * cvt.c (cp_convert): Just call truthvalue_conversion to convert to 3491169689Skan bool. 3492169689Skan 3493169689SkanMon Jan 16 13:28:48 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3494169689Skan 3495169689Skan * various: Use boolean_type_node, boolean_true_node, 3496169689Skan boolean_false_node. 3497169689Skan 3498169689Skan * search.c (get_matching_virtual): Allow covariant returns that 3499169689Skan don't require pointer adjustment. 3500169689Skan 3501169689Skan * typeck.c (build_conditional_expr): Don't call default_conversion 3502169689Skan on ifexp. 3503169689Skan 3504169689Skan * cvt.c (build_up_reference): Handle MIN_EXPR and MAX_EXPR. 3505169689Skan 3506169689Skan * decl.c (grokdeclarator): Upgrade warning about &const to pedwarn. 3507169689Skan 3508169689SkanSun Jan 15 22:17:32 1995 David Binderman <dcb@lovat.fmrco.COM> 3509169689Skan 3510169689Skan * pt.c (do_function_instantiation): Free targs once we're done. 3511169689Skan 3512169689SkanSun Jan 15 22:17:32 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3513169689Skan 3514169689Skan * decl.c (BOOL_TYPE_SIZE): Defaults to BITS_PER_WORD. 3515169689Skan (init_decl_processing): Use BOOL_TYPE_SIZE instead of CHAR_TYPE_SIZE 3516169689Skan for bool. 3517169689Skan 3518169689SkanSat Jan 14 05:33:55 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3519169689Skan 3520169689Skan * decl2.c (finish_file): We need to mess up if there are any 3521169689Skan variables in the list, not just if there is one with a constructor. 3522169689Skan 3523169689SkanFri Jan 13 14:42:55 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3524169689Skan 3525169689Skan * decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR. 3526169689Skan (finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR. 3527169689Skan (finish_function): Trust rest_of_compilation. 3528169689Skan 3529169689Skan * decl2.c (finish_file): Also call functions designated as static 3530169689Skan constructors/destructors. 3531169689Skan 3532169689Skan * decl.c (grokdeclarator): Allow access decls of operator functions. 3533169689Skan (grokparms): Only do convert_for_initialization if the initializer 3534169689Skan has a type. 3535169689Skan (duplicate_decls): Put back push_obstacks_nochange call. 3536169689Skan 3537169689Skan * lex.c (real_yylex): Downgrade complaint about the escape sequence 3538169689Skan being too large from pedwarn to warning. 3539169689Skan 3540169689Skan * decl.c (grokdeclarator): Don't complain about long long in system 3541169689Skan headers. 3542169689Skan 3543169689Skan * lex.c (real_yylex): Handle digraphs. 3544169689Skan 3545169689SkanThu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3546169689Skan 3547169689Skan * decl.c (init_decl_processing): -f{no-,}strict-prototype only 3548169689Skan affects C linkage declarations now. 3549169689Skan 3550169689Skan * typeck.c (comp_target_types): Grok simple contravariant conversions. 3551169689Skan (common_type): t1 and t2 are interchangeable. 3552169689Skan 3553169689Skan * various: Test return value of comp_target_types differently in 3554169689Skan different places; it now returns -1 for a contravariant conversion 3555169689Skan (which is fine in symmetric cases). 3556169689Skan 3557169689Skan (common_type): Prefer long double to double even when 3558169689Skan they have the same precision. 3559169689Skan 3560169689Skan * decl.c (grokparms): Call convert_for_initialization to check 3561169689Skan default arguments. 3562169689Skan 3563169689Skan * init.c (build_new): void_type_node has a size (of 0). 3564169689Skan 3565169689Skan * decl.c (decls_match): Also check for agreement of TREE_READONLY 3566169689Skan and TREE_THIS_VOLATILE. 3567169689Skan (push_class_level_binding): Properly handle shadowing of 3568169689Skan nested tags by fields. 3569169689Skan 3570169689Skan * search.c (dfs_pushdecls): Likewise. 3571169689Skan 3572169689Skan * decl2.c (finish_file): Don't second-guess self-initialization. 3573169689Skan 3574169689Skan * cvt.c (convert_to_reference): Work with expr directly, rather than 3575169689Skan a copy. 3576169689Skan 3577169689Skan * decl.c (push_overloaded_decl): Only shadow artificial TYPE_DECLs. 3578169689Skan 3579169689Skan * init.c (add_friend): Downgrade duplicate friend message from 3580169689Skan pedwarn to warning. 3581169689Skan 3582169689Skan * decl.c (duplicate_decls): Push obstacks before calling common_type. 3583169689Skan 3584169689SkanThu Jan 12 17:15:21 1995 Michael Ben-Gershon <mybg@cs.huji.ac.il> 3585169689Skan 3586169689Skan * except.c (push_eh_entry): Set LABEL_PRESERVE_P flag for 3587169689Skan exception table labels. 3588169689Skan (expand_start_all_catch): Likewise. 3589169689Skan (expand_leftover_cleanups): Likewise. 3590169689Skan (expand_end_catch_block): Likewise. 3591169689Skan * except.c (make_first_label): New function. 3592169689Skan (expand_start_all_catch): Add a call to make_first_label() before 3593169689Skan using a label as a jump destination. 3594169689Skan (expand_end_all_catch): Likewise. 3595169689Skan (expand_leftover_cleanups): Likewise. 3596169689Skan (expand_end_catch_block): Likewise. 3597169689Skan (expand_builtin_throw): Likewise. 3598169689Skan (expand_throw): Likewise. 3599169689Skan * except.c: Add ARM processor support for exception handling. 3600169689Skan 3601169689SkanThu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3602169689Skan 3603169689Skan (complete_array_type): Copy code from C frontend. 3604169689Skan 3605169689Skan * lex.c (real_yylex): Don't multiply the length of a wide string 3606169689Skan literal by WCHAR_BYTES. 3607169689Skan 3608169689Skan * decl.c (pushdecl): Check for redeclaration of wchar_t here. 3609169689Skan (duplicate_decls): Instead of here. 3610169689Skan (define_label): Complain about a label named wchar_t. 3611169689Skan (grokdeclarator): Complain about declarations of 3612169689Skan operator-function-ids as non-functions. 3613169689Skan 3614169689Skan * typeck.c (unary_complex_lvalue): Also wrap prefix -- and ++ in 3615169689Skan COMPOUND_EXPRs. 3616169689Skan (build_unary_op): Wrap unary plus in a NON_LVALUE_EXPR. 3617169689Skan 3618169689Skan * lex.c (real_yylex): Don't skip whitespace when reading the next 3619169689Skan character after ->. 3620169689Skan 3621169689SkanWed Jan 11 16:32:49 1995 Mike Stump <mrs@cygnus.com> 3622169689Skan 3623169689Skan * except.c: Allow cc1plus to be built with native compiler on rs6000. 3624169689Skan (expand_start_all_catch): Add assemble_external calls for various 3625169689Skan routines we call. 3626169689Skan (expand_leftover_cleanups): Likewise. 3627169689Skan (expand_start_catch_block): Likewise. 3628169689Skan (do_unwind): Likewise. 3629169689Skan (expand_builtin_throw): Likewise. 3630169689Skan 3631169689SkanWed Jan 11 01:05:42 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3632169689Skan 3633169689Skan * decl.c (pushtag): Only look for a previous decl in the current 3634169689Skan binding level. Use explicit global scope in DECL_NESTED_TYPENAME. 3635169689Skan 3636169689Skan * gxx.gperf: Add __signature__ and __sigof__ keywords. 3637169689Skan 3638169689Skan * decl2.c (lang_decode_option): -ansi does not set flag_no_asm. It 3639169689Skan does set flag_no_gnu_keywords and flag_operator_names. 3640169689Skan 3641169689Skan * lex.c (init_lex): 'overload' is not a keyword unless -traditional. 3642169689Skan Unset extension keywords if -fno-gnu-keywords. 3643169689Skan Allow operator names ('bitand') if -foperator-names. 3644169689Skan Never unset 'asm'; -fno-asm only affects 'typeof'. 3645169689Skan 3646169689Skan * decl.c (lookup_name_real): The got_object special lookup only 3647169689Skan applies to types. 3648169689Skan 3649169689SkanTue Jan 10 18:07:51 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3650169689Skan 3651169689Skan * spew.c (yylex): Also use DECL_NESTED_TYPENAME if got_object is set. 3652169689Skan 3653169689Skan * parse.y (primary): Unset got_object after all rules that use the 3654169689Skan 'object' nonterminal. 3655169689Skan (object): Set got_object. 3656169689Skan 3657169689Skan * lex.h: Declare got_object. 3658169689Skan 3659169689Skan * decl.c (lookup_name_real): Also lookup names in the context of an 3660169689Skan object specified. 3661169689Skan 3662169689SkanTue Jan 10 14:30:30 1995 Mike Stump <mrs@cygnus.com> 3663169689Skan 3664169689Skan * typeck.c (get_member_function_from_ptrfunc): Use ptrdiff_type_node 3665169689Skan for things that have to be added to pointers, not size_type. Cures 3666169689Skan problems with pointer to members on Alphas. 3667169689Skan (build_binary_op_nodefault): Likewise. 3668169689Skan (get_delta_difference_: Likewise. 3669169689Skan (build_ptrmemfunc): Likewise. 3670169689Skan 3671169689SkanTue Jan 10 01:49:25 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3672169689Skan 3673169689Skan * decl.c (pushtag): Stick the new decl in TYPE_NAME before pushing 3674169689Skan it. 3675169689Skan 3676169689Skan * typeck.c (build_component_ref): Don't build up a COMPONENT_REF 3677169689Skan when dealing with overloaded member functions; just act like 3678169689Skan build_offset_ref. 3679169689Skan (commonparms): Remove misleading comment. 3680169689Skan 3681169689Skan * decl.c (duplicate_decls): Complain about repeated default 3682169689Skan arguments here. 3683169689Skan (redeclaration_error_message): Instead of here. 3684169689Skan (pushdecl): Complain about missing default arguments here. 3685169689Skan (grokparms): Instead of here. 3686169689Skan (lookup_name_current_level): Also match on DECL_ASSEMBLER_NAME. 3687169689Skan (grok_reference_init): Do not complain about missing initializer if 3688169689Skan declared 'extern'. 3689169689Skan 3690169689Skan * search.c (lookup_field): Don't return a TYPE_DECL if there is a 3691169689Skan function alternative and want_type is not set. 3692169689Skan 3693169689SkanMon Jan 9 18:16:23 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3694169689Skan 3695169689Skan * decl.c (pushtag): Don't set TYPE_NAME to an identifier. Do push 3696169689Skan the decl when the type has no TYPE_NAME. 3697169689Skan (lookup_nested_type): Don't assume that type has TYPE_NAME set. 3698169689Skan (lookup_name_real): Call lookup_field with want_type = 3699169689Skan prefer_type. 3700169689Skan 3701169689Skan * search.c (lookup_field): Handle want_type properly in the presence 3702169689Skan of fields with the same name. 3703169689Skan 3704169689Skan * decl.c (set_nested_typename): Set nested name for file-scope types 3705169689Skan to include leading ::. 3706169689Skan (pushdecl): Set the nested typename if the decl doesn't have one, 3707169689Skan rather than if the type's canonical decl doesn't have one. 3708169689Skan 3709169689SkanMon Jan 9 03:44:33 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3710169689Skan 3711169689Skan * typeck.c (convert_for_assignment): Complain about contravariance 3712169689Skan violation here. 3713169689Skan (comp_target_types): Instead of here. 3714169689Skan (build_unary_op): resolve_offset_ref before checking for a valid 3715169689Skan type. 3716169689Skan 3717169689Skan * spew.c (yylex): Decrement looking_for_typename after we see a 3718169689Skan _DEFN. 3719169689Skan 3720169689Skan * decl.c (pushdecl): Don't install an artificial TYPE_DECL in 3721169689Skan IDENTIFIER_LOCAL_VALUE if we already have a decl with that name. 3722169689Skan 3723169689Skan * typeck.c (convert_for_assignment): Converting pointers to bool 3724169689Skan does not need a cast. 3725169689Skan 3726169689SkanSun Jan 8 18:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3727169689Skan 3728169689Skan * class.c (instantiate_type): Initialize nsubsts parm. 3729169689Skan 3730169689Skan * pt.c (do_function_instantiation): Likewise. 3731169689Skan 3732169689SkanSat Jan 7 14:37:05 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3733169689Skan 3734169689Skan * pt.c (tsubst): Use TREE_STATIC instead of DECL_INLINE && 3735169689Skan DECL_SAVED_INSNS to determine whether or not we've seen a definition 3736169689Skan of this function. 3737169689Skan (instantiate_template): Likewise. 3738169689Skan 3739169689Skan * call.c (convert_harshness): Allow const reference binding when 3740169689Skan called from the overloading code, but not when called from 3741169689Skan can_convert (since it isn't a conversion). 3742169689Skan (convert_harshness): Put back some disabled code. 3743169689Skan 3744169689SkanFri Jan 6 14:10:57 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3745169689Skan 3746169689Skan * call.c (convert_harshness): There is no implicit conversion from 3747169689Skan void* to other pointer types (unless the parameter is (void*)0). 3748169689Skan (convert_harshness): Non-lvalues do not convert to reference types. 3749169689Skan 3750169689Skan * class.c (finish_struct_methods): Still set 3751169689Skan TYPE_HAS_{INT,REAL}_CONVERSION. 3752169689Skan 3753169689Skan * call.c (can_convert): Don't use aggregate initialization. 3754169689Skan 3755169689Skan * cp-tree.h: Declare lookup_conversions. 3756169689Skan 3757169689SkanThu Jan 5 21:08:00 1995 Mike Stump <mrs@cygnus.com> 3758169689Skan 3759169689Skan * parse.y (simple_stmt): Fix duplicate case value error messages to 3760169689Skan be more readable. 3761169689Skan 3762169689SkanWed Jan 4 16:44:19 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3763169689Skan 3764169689Skan * cvt.c (build_type_conversion): Total rewrite to use 3765169689Skan convert_harshness instead of reproducing conversion logic here. Now 3766169689Skan much shorter. 3767169689Skan 3768169689Skan * call.c (convert_harshness): Support conversions to bool. 3769169689Skan (can_convert): Checks whether a conversion is less harsh 3770169689Skan than USER_CODE, for build_type_conversion. 3771169689Skan 3772169689Skan * search.c (add_conversions): Function for passing to dfs_walk which 3773169689Skan adds all the type conversion operators in the current type to a list. 3774169689Skan (lookup_conversions): Calls dfs_walk with add_conversions and return 3775169689Skan the list. 3776169689Skan (dfs_walk): Don't require a qfn. 3777169689Skan 3778169689Skan * cp-tree.h: Lose CLASSTYPE_CONVERSIONS hackery. 3779169689Skan (CLASSTYPE_FIRST_CONVERSION): Points to elt 1 of CLASSTYPE_METHOD_VEC. 3780169689Skan 3781169689Skan * class.c (finish_struct_bits): Lose CLASSTYPE_CONVERSIONS hackery. 3782169689Skan (grow_method): A separate function for building onto the growing 3783169689Skan method vector. 3784169689Skan (finish_struct_methods): Use it. Put all type conversion operators 3785169689Skan right after the constructors. Perhaps we should sort the methods 3786169689Skan alphabetically? 3787169689Skan 3788169689SkanMon Jan 2 14:42:58 1995 Jason Merrill <jason@phydeaux.cygnus.com> 3789169689Skan 3790169689Skan * call.c (build_method_call): Lose another misleading shortcut. 3791169689Skan 3792