1169689SkanTue Dec 28 21:10:03 1993 Mike Stump <mrs@cygnus.com> 2169689Skan 3169689Skan * cp-init.c (expand_vec_init): Remove comptypes test, as it is too 4169689Skan harsh here. 5169689Skan 6169689SkanTue Dec 28 13:42:22 1993 Mike Stump <mrs@cygnus.com> 7169689Skan 8169689Skan * cp-pt.c (do_pending_expansions): Decide to expand a template 9169689Skan member function, based upon it's class type, not the class type of 10169689Skan the first place it was declared. 11169689Skan 12169689SkanTue Dec 28 05:42:31 1993 Mike Stump <mrs@cygnus.com> 13169689Skan 14169689Skan * cp-class.c (is_normal): New routine, use to determine when the 15169689Skan given binfo is the normal one. (The one that should have the simple 16169689Skan vtable name.) 17169689Skan * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME 18169689Skan to check if two fndecls are `the same'. Sometimes this routine can 19169689Skan modify the main vtable, and normal should be 1, in that case, so use 20169689Skan is_normal() to determine if this is the main vtable for the class. 21169689Skan Don't recurse down virtual bases, as they are shared, and we take 22169689Skan care of them elsewhere. 23169689Skan * cp-class.c (modify_vtable_entries): If we have already updated the 24169689Skan vtable with the new virtual, don't do it again. 25169689Skan * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as 26169689Skan appropriate. Do virtual function overriding in virtual bases, after 27169689Skan normal overriding, so that the base function list in DECL_VINDEX is 28169689Skan not overridden, before we have a chance to run through the list. 29169689Skan Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'. 30169689Skan Make sure we pass the right address into modify_vtable_entries. 31169689Skan * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which 32169689Skan binfo is the one that has the vtable that we based our vtable on. 33169689Skan 34169689SkanFri Dec 24 09:40:52 1993 Michael Tiemann <tiemann@blues.cygnus.com> 35169689Skan 36169689Skan * cp-typeck.c (c_expand_start_case): Use default_conversion to 37169689Skan convert expression from reference type if necessary. 38169689Skan 39169689SkanWed Dec 22 17:58:43 1993 Jason Merrill <jason@deneb.cygnus.com> 40169689Skan 41169689Skan * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before 42169689Skan trying to read its TREE_VALUE. 43169689Skan 44169689Skan * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here. 45169689Skan (finish_struct): Instead of here. 46169689Skan 47169689SkanTue Dec 21 14:34:25 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 48169689Skan 49169689Skan * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't 50169689Skan have TYPE_PTRMEMFUNC_P set before we try to build its 51169689Skan CLASSTYPE_ID_AS_LIST. 52169689Skan (get_decl_list): Likewise, when trying to read it. 53169689Skan 54169689Skan * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined. 55169689Skan (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT. 56169689Skan 57169689SkanMon Dec 20 13:35:03 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 58169689Skan 59169689Skan * cp-typeck.c (rationalize_conditional_expr): New function. 60169689Skan (unary_complex_lvalue): Use it. 61169689Skan (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it 62169689Skan with build_unary_op won't cut it. Don't wrap the COND_EXPR with a 63169689Skan SAVE_EXPR either. 64169689Skan 65169689Skan * cp-decl2.c (explicit_warn_return_type): Deleted variable. 66169689Skan (lang_decode_option): Set warn_return_type, not explicit_*, for 67169689Skan -Wreturn-type and -Wall. This is what rest_of_compilation uses to 68169689Skan decide if it should go into jump_optimize or not. 69169689Skan * cp-tree.h (explicit_warn_return_type): Deleted. 70169689Skan * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*. 71169689Skan (finish_function): Also complain about no return in a non-void fn if 72169689Skan we're being pedantic (don't rely on use of -Wreturn-type). 73169689Skan 74169689SkanFri Dec 17 15:45:46 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 75169689Skan 76169689Skan * cp-decl.c (grokdeclarator): Forbid declaration of a function as 77169689Skan static if it's being done inside another function. 78169689Skan 79169689Skan * cp-search.c (compute_visibility): Check for friendship both ways. 80169689Skan 81169689SkanFri Dec 17 14:28:25 1993 Jason Merrill <jason@deneb.cygnus.com> 82169689Skan 83169689Skan * cp-cvt.c (build_default_binary_type_conversion): Make error 84169689Skan messages more helpful. 85169689Skan 86169689Skan * cp-error.c (op_as_string): New function, returns "operator ==" 87169689Skan given EQ_EXPR or suchlike. 88169689Skan 89169689SkanFri Dec 17 13:28:11 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 90169689Skan 91169689Skan * cp-call.c (print_n_candidates): New function. 92169689Skan (build_overload_call_real): Use it when we complain about a call 93169689Skan being ambiguous. 94169689Skan 95169689SkanFri Dec 17 12:41:17 1993 Jason Merrill <jason@deneb.cygnus.com> 96169689Skan 97169689Skan * cp-call.c (build_method_call): Fix checking for static call 98169689Skan context. 99169689Skan 100169689Skan * cp-method.c (build_opfncall): Call build_indirect_ref on argument 101169689Skan to operator new. 102169689Skan 103169689Skan * cp-init.c (build_new): Don't mess with rval when building 104169689Skan indirect ref. 105169689Skan 106169689SkanThu Dec 16 16:48:05 1993 Kung Hsu <kung@cirdan.cygnus.com> 107169689Skan 108169689Skan * cp-lex.c (default_assign_ref_body): Add check when TYPE_NESTED_ 109169689Skan NAME(type) may not be exist. It's not a problem for old compiler. 110169689Skan 111169689SkanThu Dec 16 14:46:06 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 112169689Skan 113169689Skan * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's 114169689Skan never used for anything. 115169689Skan (struct lang_type, member type_flags): Delete field 116169689Skan `alters_visibility', and up `dummy' by 1. 117169689Skan * cp-class.c (finish_base_struct): Delete code that copies the 118169689Skan setting of CLASSTYPE_ALTERS_VISIBILITIES_P. 119169689Skan (finish_struct): Delete code that sets it. 120169689Skan 121169689SkanThu Dec 16 14:44:39 1993 Jason Merrill <jason@deneb.cygnus.com> 122169689Skan 123169689Skan * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to 124169689Skan build_method_call that I messed up before. 125169689Skan 126169689Skan * cp-search.c (get_base_distance): If protect > 1, allow immediate 127169689Skan private base. 128169689Skan 129169689Skan * cp-class.c (finish_base_struct): Set cant_synth_* correctly. 130169689Skan (finish_struct): Likewise. Well, nigh-correctly; it won't deal 131169689Skan properly with the case where a class contains an object of an 132169689Skan ambiguous base class which has a protected op=. Should be fixed 133169689Skan when the access control code gets overhauled. 134169689Skan (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly. 135169689Skan 136169689SkanThu Dec 16 12:17:06 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 137169689Skan 138169689Skan * cp-lex.c (real_yylex): Turn the code back on that deals with 139169689Skan __FUNCTION__ and __PRETTY_FUNCTION__. Don't use lookup_name, to 140169689Skan avoid the ambiguity problems that led to it being turned off in the 141169689Skan first place. 142169689Skan 143169689Skan * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P 144169689Skan to see if something is a method. 145169689Skan 146169689SkanWed Dec 15 18:35:58 1993 Mike Stump <mrs@cygnus.com> 147169689Skan 148169689Skan * cp-typeck.c (build_modify_expr): Avoid error messages on small 149169689Skan enum bit fields. 150169689Skan * cp-typeck.c (convert_for_assignment): Add missing argument to 151169689Skan cp_warning and cp_pedwarn calls. 152169689Skan 153169689SkanWed Dec 15 18:25:32 1993 Jason Merrill <jason@deneb.cygnus.com> 154169689Skan 155169689Skan * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base 156169689Skan initializers; it's just anachronistic. 157169689Skan 158169689Skan * cp-decl.c (finish_decl): Don't require external-linkage arrays 159169689Skan to have a complete type at declaration time when pedantic. 160169689Skan 161169689SkanTue Dec 14 11:37:23 1993 Jason Merrill <jason@deneb.cygnus.com> 162169689Skan 163169689Skan * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set. 164169689Skan 165169689Skan * cp-call.c (build_method_call): Don't dereference pointer given 166169689Skan as instance. 167169689Skan 168169689Skan * cp-decl.c (finish_function): Don't pass pointer to 169169689Skan build_method_call. 170169689Skan (finish_function): Likewise. 171169689Skan 172169689Skan * cp-typeck.c (build_x_function_call): Likewise. 173169689Skan 174169689Skan * cp-method.c (build_component_type_expr): Likewise. 175169689Skan 176169689Skan * cp-init.c (build_member_call): Likewise. 177169689Skan (build_new): Likewise. 178169689Skan 179169689SkanMon Dec 13 18:04:33 1993 Kung Hsu <kung@cirdan.cygnus.com> 180169689Skan 181169689Skan * cp-decl.c (xref_tag): Fix regression created by changes made 182169689Skan in Dec. 7 1993. 183169689Skan * cp-decl.c (xref_defn_tag): Fix parallel nested class problem. 184169689Skan 185169689SkanFri Dec 10 12:40:25 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 186169689Skan 187169689Skan * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print 188169689Skan out the final evaluation of the function, so we can see if ELLIPSIS, 189169689Skan USER, and EVIL were set at the end. 190169689Skan 191169689Skan * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue, 192169689Skan only go for setting TRIVIAL_CODE if we are dealing with types that 193169689Skan are compatible. 194169689Skan 195169689SkanThu Dec 9 18:27:22 1993 Mike Stump <mrs@cygnus.com> 196169689Skan 197169689Skan * cp-decl.c (flag_huge_objects): New flag to allow large objects. 198169689Skan * toplev.c (lang_options): Likewise. 199169689Skan * cp-decl2.c (flag_huge_objects, lang_f_options): Likewise. 200169689Skan * cp-decl.c (delta_type_node): New type for delta entries. 201169689Skan * cp-tree.h (delta_type_node): Likewise. 202169689Skan * cp-decl.c (init_decl_processing): Setup delta_type_node. 203169689Skan * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use 204169689Skan delta_type_node instead of short_integer_type_node. 205169689Skan * cp-class.c (build_vtable_entry): Likewise. 206169689Skan 207169689SkanThu Dec 9 16:19:05 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 208169689Skan 209169689Skan * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of 210169689Skan NO_{DOLLAR,DOT} macro checks, so it always gets defined. 211169689Skan (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL. 212169689Skan 213169689SkanWed Dec 8 17:38:06 1993 Mike Stump <mrs@cygnus.com> 214169689Skan 215169689Skan * cp-decl.c (finish_decl): Make sure things that can go into 216169689Skan "common", do go into common, if -fcommon is given. 217169689Skan 218169689SkanWed Dec 8 13:01:54 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 219169689Skan 220169689Skan * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function. 221169689Skan (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out 222169689Skan argument matching diagnostics to make instantly clear what the 223169689Skan compiler is doing. 224169689Skan 225169689Skan * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue, 226169689Skan then check to see if the penalty was increased due to 227169689Skan signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't. 228169689Skan 229169689SkanTue Dec 7 18:29:14 1993 Kung Hsu <kung@cirdan.cygnus.com> 230169689Skan 231169689Skan * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution 232169689Skan problem. 233169689Skan 234169689SkanTue Dec 7 16:09:34 1993 Jason Merrill <jason@deneb.cygnus.com> 235169689Skan 236169689Skan * cp-class.c (finish_struct): Before synthesizing methods, if no 237169689Skan methods have yet been declared then set nonprivate_method. Don't 238169689Skan set non_private method after synthesizing a method. 239169689Skan 240169689Skan * cp-lex.c (extract_interface_info): If flag_alt_external_templates 241169689Skan is set, tie emitted code to the location of template instantiation, 242169689Skan rather than definition. 243169689Skan 244169689Skan * cp-tree.h: Declare flag_alt_external_templates. 245169689Skan 246169689Skan * cp-decl2.c (lang_decode_option): Support -falt-external-templates. 247169689Skan 248169689Skan * toplev.c (lang_options): Likewise. 249169689Skan 250169689SkanMon Oct 4 12:50:02 1993 Chip Salzenberg <chip@fin.uucp> 251169689Skan 252169689Skan [changes propagated from 930810 snapshot] 253169689Skan * cp-decl.c (init_decl_processing): Make long long available for use 254169689Skan as SIZE_TYPE and PTRDIFF_TYPE. 255169689Skan (finish_decl): Allow file-scope static incomplete array. 256169689Skan (grokdeclarator): Don't pass on const and volatile fron function 257169689Skan value type to function type. 258169689Skan Warn here for volatile fn returning non-void type. 259169689Skan * cp-parse.y (attrib): Accept attributes `volatile' with alias 260169689Skan `noreturn', and `const'. 261169689Skan * cp-typeck.c (default_conversion): Don't lose const and volatile. 262169689Skan (build_binary_op_nodefault): Generate pedantic warning for comparison 263169689Skan of complete pointer type with incomplete pointer type. 264169689Skan (build_c_cast): Be careful that null pointer constant be INTEGER_CST. 265169689Skan 266169689SkanTue Dec 7 10:46:48 1993 Jason Merrill <jason@deneb.cygnus.com> 267169689Skan 268169689Skan * cp-init.c (expand_vec_init): When creating a temporary for copying 269169689Skan arrays, use the type of the source, not the target. 270169689Skan 271169689Skan * cp-cvt.c (convert): Pass an argument for errtype to 272169689Skan convert_to_reference. 273169689Skan 274169689Skan * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with 275169689Skan methods, -> and `this'. 276169689Skan 277169689SkanMon Dec 6 17:12:33 1993 Jason Merrill <jason@deneb.cygnus.com> 278169689Skan 279169689Skan * cp-error.c (parm_as_string): New function; returns `this' or arg 280169689Skan number. Corresponds to %P. 281169689Skan (dump_expr): Deal with method calls. 282169689Skan 283169689Skan * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment. 284169689Skan * cp-typeck.c (convert_for_assignment): Likewise. 285169689Skan (warn_for_assignment): Lose. 286169689Skan 287169689SkanMon Dec 6 11:33:35 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 288169689Skan 289169689Skan * cp-call.c (ideal_candidate_ansi): Delete code that was never 290169689Skan doing anything useful. Instead, sort once, and DO NOT wipe 291169689Skan out any codes with EVIL_CODE, since that's what we use as a 292169689Skan marker for the end of the list of candidates. 293169689Skan 294169689Skan * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN. 295169689Skan 296169689SkanMon Dec 6 12:49:17 1993 Jason Merrill <jason@deneb.cygnus.com> 297169689Skan 298169689Skan * cp-init.c (get_aggr_from_typedef): New function, like 299169689Skan is_aggr_typedef but returns the _TYPE. 300169689Skan 301169689Skan * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name. 302169689Skan 303169689SkanSun Dec 5 18:12:48 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 304169689Skan 305169689Skan * cp-lex.c (readescape): Pedwarn when a hex escape is out of range. 306169689Skan 307169689SkanThu Nov 25 23:50:19 1993 Chip Salzenberg <chip@fin.uucp> 308169689Skan 309169689Skan Delay language context change until beginning of next decl. 310169689Skan 311169689Skan * cp-lex.h (c_header_level): Removed. 312169689Skan (pending_lang_change): Declared. 313169689Skan * cp-lex.c (c_header_level): Renamed from in_c_header, made static. 314169689Skan (pending_lang_change): Defined. 315169689Skan (check_newline): Rework code that recognizes line number and 316169689Skan filename changes. Instead of pushing and popping lang context, 317169689Skan increment and decrement pending_lang_change. 318169689Skan (do_pending_lang_change): Push and pop lang context according 319169689Skan to value of pending_lang_change. 320169689Skan * cp-parse.y (extdefs): Use lang_extdef instead of extdef. 321169689Skan (extdef): Same as extdef, but call do_pending_lang_change() first. 322169689Skan 323169689SkanMon Nov 15 15:39:15 1993 Chip Salzenberg <chip@fin.uucp> 324169689Skan 325169689Skan * cp-typeck.c (build_binary_op_nodefault): Warn for ordered 326169689Skan compare of ptr with 0 only if pedantic in both cases. 327169689Skan 328169689SkanThu Nov 25 13:31:37 1993 Chip Salzenberg <chip@fin.uucp> 329169689Skan 330169689Skan Reinstate the below patch, which got lost in the Cygnus merge: 331169689Skan Tue Nov 23 13:59:24 1993 Hallvard B Furuseth (hbf@durin.uio.no) 332169689Skan * cp-parse.y (maybe_type_qual): Don't fail to set $$. 333169689Skan 334169689SkanWed Nov 17 19:03:30 1993 Chip Salzenberg <chip@fin.uucp> 335169689Skan 336169689Skan * cp-parse.y (attrib): Allow "ident(ident)" like the C front end. 337169689Skan 338169689SkanFri Oct 22 20:43:37 1993 Paul Eggert <eggert@twinsun.com> 339169689Skan 340169689Skan * cp-lex.c (real_yylex): Diagnose floating point constants 341169689Skan that are too large. 342169689Skan 343169689SkanWed Nov 17 19:10:37 1993 Chip Salzenberg <chip@fin.uucp> 344169689Skan 345169689Skan * cp-type2.c (build_functional_cast): ARM page 16: When a class 346169689Skan and an object, function or enumerator are declared in the same 347169689Skan scope with the same name, the class name is hidden. 348169689Skan 349169689SkanWed Nov 17 19:07:18 1993 Chip Salzenberg <chip@fin.uucp> 350169689Skan 351169689Skan * cp-call.c (convert_harshness_ansi): Distinguish float, double, 352169689Skan and long double from each other when overloading. 353169689Skan (compute_conversion_costs_{ansi,old}, build_method_call, 354169689Skan build_overlay_call_real, convert_to_aggr): Always set and 355169689Skan always use H_LEN member of candidate structure. 356169689Skan 357169689SkanMon Oct 11 23:10:53 1993 Chip Salzenberg <chip@fin.uucp> 358169689Skan 359169689Skan * cp-decl.c (duplicate_decls): Note redeclarations of library 360169689Skan functions, and generate distinct warnings for them. 361169689Skan 362169689SkanMon Oct 4 12:26:49 1993 Chip Salzenberg <chip@fin.uucp> 363169689Skan 364169689Skan Support format warnings in G++. 365169689Skan 366169689Skan * cp-tree.h: Protect against multiple inclusion. 367169689Skan Declare all public functions in c-common.c (copy from c-tree.h). 368169689Skan (STDIO_PROTO): Define. 369169689Skan (warn_format): Declare. 370169689Skan (record_format_info): Remove declaration. 371169689Skan * cp-decl.c (init_decl_processing): Call init_function_format_info. 372169689Skan * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format. 373169689Skan * cp-typeck.c (build_function_call_real): Call check_function_format. 374169689Skan (record_format_info): Remove -- obsolete stub. 375169689Skan 376169689SkanSat Jul 24 12:04:29 1993 Chip Salzenberg <chip@fin.uucp> 377169689Skan 378169689Skan * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl 379169689Skan following an extern one (for -Wredundant-decls). 380169689Skan * cp-parse.y (primary): In statement expression case, if compstmt 381169689Skan returns something other than a BLOCK, return it unchanged. 382169689Skan 383169689SkanThu Dec 2 20:44:58 1993 Chip Salzenberg <chip@fin.uucp> 384169689Skan 385169689Skan * cp-decl.c (warn_extern_redeclared_static): New function made 386169689Skan from code extracted from pushdecl. 387169689Skan (duplicate_decls, pushdecl): Call new function. 388169689Skan (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE 389169689Skan to be a TREE_LIST when function is declared in 'extern "C" {}'. 390169689Skan 391169689SkanFri Dec 3 16:01:10 1993 Jason Merrill <jason@deneb.cygnus.com> 392169689Skan 393169689Skan * cp-class.c (duplicate_tag_error): Use cp_error. 394169689Skan (finish_base_struct): Check for ambiguity with direct base, and don't 395169689Skan generate op= or copy ctor if it exists. 396169689Skan 397169689SkanFri Dec 3 15:32:34 1993 Kung Hsu <kung@cirdan.cygnus.com> 398169689Skan 399169689Skan * cp-init.c (expand_member_init): When initializer name is null, 400169689Skan don't try to build it now because emit_base_init will handle it. 401169689Skan 402169689SkanFri Dec 3 12:28:59 1993 Jason Merrill <jason@deneb.cygnus.com> 403169689Skan 404169689Skan * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for 405169689Skan code such as ExceptionHandler::operator=. 406169689Skan 407169689SkanFri Dec 3 10:32:08 1993 Jason Merrill <jason@deneb.cygnus.com> 408169689Skan 409169689Skan * cp-decl.c (grokdeclarator): Don't try to print out dname when 410169689Skan complaining about arrays of references if decl_context==TYPENAME, 411169689Skan since it will be null. 412169689Skan 413169689Skan * cp-decl2.c: Default to flag_ansi_overloading. 414169689Skan 415169689SkanThu Dec 2 18:05:56 1993 Kung Hsu <kung@cirdan.cygnus.com> 416169689Skan 417169689Skan * cp-call.c (build_method_call): Use binfo from instance if it's 418169689Skan different from binfo (basetype_path) passed from above. 419169689Skan 420169689SkanWed Nov 17 19:14:29 1993 Chip Salzenberg <chip@fin.uucp> 421169689Skan 422169689Skan cp-error.c (dump_expr): Use unsigned chars to output a 423169689Skan TREE_REAL_CST in hex. 424169689Skan 425169689SkanThu Dec 2 11:05:48 1993 Jason Merrill <jason@deneb.cygnus.com> 426169689Skan 427169689Skan * cp-class.c (finish_struct): Fix typo in setting 428169689Skan cant_synth_asn_ref. 429169689Skan 430169689Skan * cp-tree.h (TYPE_NESTED_NAME): New macro, does 431169689Skan DECL_NESTED_TYPENAME (TYPE_NAME (NODE)). 432169689Skan 433169689Skan * cp-lex.c (default_copy_constructor_body): Change 434169689Skan DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype). 435169689Skan (default_assign_ref_body): Likewise. 436169689Skan (default_copy_constructor_body): Call operator= explicitly for 437169689Skan base classes that have no constructor. 438169689Skan 439169689SkanThu Dec 2 10:47:15 1993 Michael Tiemann <tiemann@blues.cygnus.com> 440169689Skan 441169689Skan * cp-call.c (build_method_call): If the instance variable is 442169689Skan converted to error_mark_node when we're trying to convert it to the 443169689Skan base type of a method we're looking up, return error_mark_node. 444169689Skan 445169689SkanThu Dec 2 10:41:16 1993 Torbjorn Granlund <tege@cygnus.com> 446169689Skan 447169689Skan * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR 448169689Skan cases, tests for unsigned operands by peeking inside a NOP_EXPR. 449169689Skan 450169689SkanWed Dec 1 13:33:34 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 451169689Skan 452169689Skan * cp-call.c (compute_conversion_costs_ansi): Use the size of struct 453169689Skan harshness_code, not the size of short, for clearing out the 454169689Skan ansi_harshness. 455169689Skan 456169689Skan * cp-call.c (print_candidates): New function. 457169689Skan (build_method_call): When we had some candidates, but didn't get a 458169689Skan usable match, don't report that we got an error with the first 459169689Skan candidate. Instead, say there were no matches, and list the 460169689Skan candidates with print_candidates. In the second pass, make sure we 461169689Skan clear out ever_seen, so we can accurately count the number of 462169689Skan functions that qualified. 463169689Skan 464169689SkanWed Dec 1 09:53:59 1993 Torbjorn Granlund <tege@cygnus.com> 465169689Skan 466169689Skan * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR 467169689Skan only if op1 is known to be != -1. 468169689Skan (build_binary_op_nodefault): Handle *_DIV_EXPR likewise. 469169689Skan 470169689SkanTue Nov 30 14:07:26 1993 Brendan Kehoe <brendan@lisa.cygnus.com> 471169689Skan 472169689Skan * cp-method.c (hack_identifier): If the field itself is private, and 473169689Skan not from a private base class, say so. 474169689Skan 475169689SkanMon Nov 29 03:00:56 1993 Jason Merrill <jason@deneb.cygnus.com> 476169689Skan 477169689Skan * cp-decl.c (grokdeclarator): Always warn on initialization of 478169689Skan const member. 479169689Skan 480169689SkanWed Nov 24 00:49:35 1993 Jason Merrill <jason@deneb.cygnus.com> 481169689Skan 482169689Skan * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly. 483169689Skan (finish_base_struct): Set cant_synth_asn_ref properly. 484169689Skan 485169689Skan * cp-lex.c (cons_up_default_function): Add section for operator=. 486169689Skan (default_assign_ref_body): New function, mostly cribbed from 487169689Skan default_copy_constructor_body. 488169689Skan 489169689Skan * cp-class.c (base_info): Add members cant_synth_copy_ctor, 490169689Skan cant_synth_asn_ref, no_const_asn_ref. 491169689Skan (finish_base_struct): Update no_const_asn_ref, note that you should 492169689Skan update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF. 493169689Skan (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and 494169689Skan initialize them properly. Set no_const_asn_ref properly. Set 495169689Skan cant_synth_* in some of the situations where they should be set. 496169689Skan Propagate TYPE_GETS_ASSIGN_REF. Use cant_synth_copy_ctor. Add call 497169689Skan to cons_up_default_function for operator=. 498169689Skan 499169689SkanTue Nov 23 20:24:58 1993 Mike Stump <mrs@cygnus.com> 500169689Skan 501169689Skan * cp-cvt.c (convert_force): Add code to perform casting of pointer 502169689Skan to member function types. 503169689Skan * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate 504169689Skan when the conversion should be done, regardless. 505169689Skan * cp-tree.h (build_ptrmemfunc): Likewise. 506169689Skan * cp-type2.c (digest_init): Likewise. 507169689Skan * cp-typeck.c (convert_for_assignment): Likewise. 508169689Skan 509169689SkanTue Nov 23 18:06:58 1993 Jason Merrill <jason@deneb.cygnus.com> 510169689Skan 511169689Skan * cp-error.c (dump_expr): Do the right thing for variables of 512169689Skan reference type. 513169689Skan 514169689Skan * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF 515169689Skan and its kin properly. 516169689Skan (xref_tag): Propagate TYPE_GETS_ASSIGN_REF. 517169689Skan 518169689SkanTue Nov 23 12:26:13 1993 Mike Stump <mrs@cygnus.com> 519169689Skan 520169689Skan * cp-method.c (build_opfncall): Don't count pointer to member 521169689Skan functions as aggregates here, as we don't want to look up methods in 522169689Skan them. The compiler would core dump if we did, as they don't have 523169689Skan normal names. 524169689Skan * cp-typeck.c (build_indirect_ref): Improve wording on error 525169689Skan message. 526169689Skan 527169689SkanMon Nov 22 14:22:23 1993 Jason Merrill <jason@deneb.cygnus.com> 528169689Skan 529169689Skan * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn 530169689Skan (since it's supported in other compiler bits). 531169689Skan 532169689Skan * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name 533169689Skan argument. 534169689Skan 535169689Skan * cp-error.c (dump_function_decl): Don't print return type for 536169689Skan constructors and destructors. 537169689Skan 538169689Skan * cp-cvt.c (cp_convert_to_pointer): Import code from 539169689Skan convert_to_pointer so we can return error_mark_node in the case of an 540169689Skan error, and to allow more meaningful error messages. 541169689Skan (build_type_conversion): Don't go through void* when trying 542169689Skan to convert to a pointer type. 543169689Skan 544169689Skan * cp-decl.c (grokfndecl): Move call to grok_op_properties back 545169689Skan after grokclassfn so that it's dealing with the right decl. 546169689Skan (grok_op_properties): Don't assert !methodp for op new and op delete. 547169689Skan 548169689Skan * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now 549169689Skan no uses of it in the compiler). 550169689Skan 551169689Skan * cp-call.c (build_scoped_method_call): Fix for destructors of simple 552169689Skan types. 553169689Skan (build_method_call): Likewise. 554169689Skan 555169689SkanFri Nov 19 12:59:38 1993 Jason Merrill <jason@deneb.cygnus.com> 556169689Skan 557169689Skan * cp-tree.c (count_functions): Abstraction function. 558169689Skan 559169689Skan * cp-call.c (build_overload_call_real): Deal with new overloading 560169689Skan properly, remove dead code. 561169689Skan 562169689Skan * gcc.c (default_compilers): Generate and use .ii files in the 563169689Skan intermediate stage of compiling C++ source. 564169689Skan 565169689SkanFri Nov 19 11:26:09 1993 Jim Wilson <wilson@sphagnum.cygnus.com> 566169689Skan 567169689Skan * cp-expr.c (cplus_expand_expr): Make call_target a valid memory 568169689Skan address before using it, so it can be later safely compared. 569169689Skan 570169689SkanFri Nov 12 15:30:27 1993 Jason Merrill <jason@deneb.cygnus.com> 571169689Skan 572169689Skan * cp-pt.c (tsubst): Deal with new overloading. 573169689Skan 574169689Skan * cp-typeck.c (fntype_p): Is the arg function type? 575169689Skan (comp_target_parms): pedwarn on conversion from (anything) to (...). 576169689Skan (build_x_function_call): Deal with new overloading. 577169689Skan 578169689Skan * cp-tree.c (decl_list_length): Deal with new overloading. 579169689Skan (decl_value_member): Like value_member, but for DECL_CHAINs. 580169689Skan 581169689Skan * cp-decl.c (duplicate_decls): Deal with new overloading. 582169689Skan (start_decl): Likewise. 583169689Skan 584169689Skan * cp-class.c (instantiate_type): Deal with new overloading. 585169689Skan 586169689Skan * cp-call.c (convert_harshness_ansi): Deal with new overloading. 587169689Skan (convert_harshness_old): Deal with new overloading. 588169689Skan (build_overload_call_real): Likewise. 589169689Skan 590169689SkanMon Nov 8 13:50:49 1993 Jason Merrill <jason@deneb.cygnus.com> 591169689Skan 592169689Skan * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL 593169689Skan if unambiguous, NULL_TREE otherwise. 594169689Skan (get_first_fn): Returns the first appropriate FUNCTION_DECL. 595169689Skan (is_overloaded_fn): Returns whether or not the passed tree is 596169689Skan a function or list of functions. 597169689Skan 598169689Skan * cp-init.c (init_init_processing): Use `get_first_fn' to find 599169689Skan the FUNCTION_DEFN for new and delete. 600169689Skan 601169689Skan * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut 602169689Skan code size in half (I spit on special cases). 603169689Skan 604169689SkanTue Sep 7 20:03:33 1993 Jason Merrill <jason@deneb.cygnus.com> 605169689Skan 606169689Skan * cp-decl.c: Allow references and template type parameters as well 607