|
|
1.1 root 1: Thu Nov 17 10:56:50 1994 Jason Merrill <[email protected]> 2: 3: * typeck2.c (build_m_component_ref): Check the basetype of the 4: member pointer against the main variant of the object type. 5: 6: Mon Nov 14 14:21:52 1994 Jason Merrill <[email protected]> 7: 8: * cvt.c (convert_to_reference): Make sure that the original expr 9: gets its type back when converting a reference. 10: 11: * method.c (build_overload_name): Clear numeric_outputed_need_bar here. 12: (build_decl_overload): Instead of here. 13: 14: Tue Nov 8 17:11:24 1994 Jason Merrill <[email protected]> 15: 16: * cvt.c (cp_convert): Don't build a TARGET_EXPR if we're not in a 17: function. 18: 19: * typeck.c (convert_for_initialization): Handle initialization from 20: a TARGET_EXPR. 21: 22: Sun Nov 6 01:34:24 1994 Jason Merrill ([email protected]) 23: 24: * pt.c (lookup_nested_type_by_name): Fix list-walking logic. 25: (tsubst): When replacing a TEMPLATE_TYPE_PARM, propagate 26: TYPE_READONLY and TYPE_VOLATILE from the argument. 27: (unify): When unifying with a TEMPLATE_TYPE_PARM, remove cv-quals 28: present in parm from arg. 29: (type_unification): Strip REFERENCE_TYPE from the argument type. 30: (unify): Don't strip REFERENCE_TYPE from the argument type. 31: 32: Sat Nov 5 22:42:15 1994 Greg McGary ([email protected]) 33: 34: * pt.c (do_type_instantiation): Check to see if there's a 35: IDENTIFIER_TEMPLATE on a class before calling 36: instantiate_member_templates(). 37: 38: Thu Nov 3 18:48:19 1994 Paul Eggert <[email protected]> 39: 40: * Makefile.in (spew.o, lex.o, pt.o): 41: Depend on $(srcdir)/parse.h, not parse.h. 42: 43: Sat Oct 29 07:18:52 1994 Richard Kenner ([email protected]) 44: 45: * g++.c (main): Cast arg to bzero to avoid warning. 46: 47: Tue Oct 25 13:37:41 1994 Jason Merrill ([email protected]) 48: 49: * call.c (convert_harshness): Check for TREE_UNSIGNED differences 50: after checking for integral conversions. 51: 52: Sun Oct 23 13:19:55 1994 Jason Merrill ([email protected]) 53: 54: * decl2.c: Declare flag_access_control. 55: (struct lang_f_options): Add access-control. 56: * expr.c (cplus_expand_expr, NEW_EXPR): Unset flag_access_control 57: for the call to expand_aggr_init to copy the object out of the 58: pcc_struct_return slot. 59: * search.c (compute_access): if (!flag_access_control) return 60: access_public. 61: 62: Fri Oct 21 00:32:54 1994 Jason Merrill ([email protected]) 63: 64: * decl.c (init_decl_processing): Use __pure_virtual for abort_fndecl 65: instead of abort, since the OSF/1 dynamic linker doesn't like to see 66: relocation entries for abort. 67: 68: * tree.c (array_type_nelts_total): Use sizetype, not 69: integer_type_node. 70: (array_type_nelts_top): Ditto. 71: 72: Mon Oct 17 18:03:15 1994 Jason Merrill ([email protected]) 73: 74: * decl.c (init_decl_processing): Make alloca a builtin. 75: 76: Mon Oct 17 15:56:11 1994 Mike Stump <[email protected]> 77: 78: * except.c (expand_start_catch_block): Make sure the false label 79: gets onto the permanent obstack, as it is used for the exception 80: table. 81: 82: Fri Oct 14 18:54:48 1994 Mike Stump <[email protected]> 83: 84: * class.c (modify_one_vtable): Since the DECL_CONTEXT of fndecl can 85: be set just below, use current_fndecl instead. 86: 87: Thu Oct 13 17:44:55 1994 Jason Merrill ([email protected]) 88: 89: * method.c (build_decl_overload): Set numeric_outputed_need_bar to 0. 90: 91: Wed Oct 12 13:27:57 1994 Jason Merrill ([email protected]) 92: 93: * lex.c (real_yylex): Use HOST_BITS_PER_WIDE_INT to determine the 94: bitmask for lexing character constants. 95: 96: * call.c (build_method_call): Disable code that tries to do tricky 97: stuff with a default parameter that is a constructor call, but 98: actually does other tricky stuff that breaks things. 99: 100: Wed Oct 12 16:14:01 1994 Benoit Belley <[email protected]> 101: 102: * decl.c (finish_enum): Disable code which forces enums to be signed, 103: since this conflicts with their use as bitfields. type_promotes_to 104: handles promotion of enums of underlying unsigned types to signed 105: integer types. 106: 107: Wed Oct 12 13:24:03 1994 Jason Merrill ([email protected]) 108: 109: * cvt.c (type_promotes_to): Also promote enums to long if 110: appropriate. 111: 112: * typeck.c (default_conversion): Don't expect type_promotes_to to 113: return a main variant. 114: 115: Wed Oct 12 12:19:45 1994 Jason Merrill ([email protected]) 116: 117: * call.c (build_scoped_method_call): Don't lose side effects in the 118: object expression when calling a non-existent destructor. 119: 120: Fri Sep 2 19:05:21 1994 Rohan Lenard ([email protected]) 121: 122: * call.c (build_scoped_method_call): Remove erroneous error message 123: when destructor call is written as a scoped call. 124: 125: Tue Oct 11 23:48:31 1994 Jason Merrill ([email protected]) 126: 127: * various: Cast pointer arguments to bzero and bcopy to char *. 128: 129: Tue Oct 11 19:34:32 1994 Mike Stump <[email protected]> 130: 131: * class.c (get_derived_offset): Added a type parameter to limit how 132: far up the CLASSTYPE_VFIELD_PARENT chain we search. 133: * class.c (modify_one_vtable, fixup_vtable_deltas): When forming the 134: offset to put into the vtable for the this parameter, make sure we 135: don't offset from a parent of the DECL_CONTEXT of the function. 136: 137: Mon Oct 10 00:56:53 1994 Jason Merrill ([email protected]) 138: 139: * lex.c (cons_up_default_function): Mark methods in a template class 140: as template instances. Store the values of interface_unknown and 141: interface_only for do_pending_inlines. 142: (do_pending_inlines): Use them. 143: 144: Sun Oct 9 02:42:29 1994 Jason Merrill ([email protected]) 145: 146: * method.c (do_build_copy_constructor): Handle anonymous unions. 147: (do_build_assign_ref): Ditto. 148: (largest_union_member): Move from lex.c. 149: 150: Wed Oct 5 13:44:41 1994 Jason Merrill ([email protected]) 151: 152: * call.c (build_overload_call_real): Don't immediately do 153: array->pointer conversion. 154: 155: * pt.c (type_unification): If not passing to a reference, strip 156: cv-quals. Also handle array->pointer conversion. 157: 158: Tue Oct 4 17:45:37 1994 Jason Merrill ([email protected]) 159: 160: * decl.c (grokdeclarator): Don't warn about applying const to a 161: const typedef or template type parameter. 162: 163: Mon Oct 3 15:02:41 1994 Jason Merrill ([email protected]) 164: 165: * decl.c (shadow_tag): Remove obsolete code for pushing tags and 166: dealing with exceptions. 167: 168: Sat Oct 1 21:42:18 1994 Jason Merrill ([email protected]) 169: 170: * init.c (resolve_offset_ref): Fix types used in resolving .* 171: expressions. 172: 173: Thu Sep 29 16:15:36 1994 Michael I Bushnell <[email protected]> 174: 175: * g++.c: Rework last change so it's done like collect.c (and 176: gcc.c). 177: 178: Wed Sep 28 19:19:01 1994 Brendan Kehoe ([email protected]) 179: 180: * except.c (register_exception_table): Use Pmode, not PTRmode. 181: 182: Wed Sep 14 10:17:27 1994 Michael I Bushnell <[email protected]> 183: 184: * g++.c: Include <sys/errno.h> in case `errno' is a macro 185: as permitted by ANSI C. 186: 187: Thu Sep 29 16:58:52 1994 Mike Stump <[email protected]> 188: 189: * typeck.c (c_expand_return): Use magic so the backend can fixup the 190: assignment into the return register, so cleanups won't clobber it. 191: 192: Thu Sep 29 13:08:50 1994 Jason Merrill ([email protected]) 193: 194: * method.c (hack_identifier): Don't call assemble_external for 195: template decls. 196: 197: * decl.c (finish_decl): Also end temporary allocation if the decl in 198: question has a type of error_mark_node. 199: 200: Wed Sep 28 21:45:00 1994 Mike Stump ([email protected]) 201: 202: * typeck.c (build_modify_expr): When optimizing ?: on lhs, make sure 203: that if the ?: was a reference type, that the subparts will be also. 204: 205: Wed Sep 28 16:14:04 1994 Brendan Kehoe ([email protected]) 206: 207: * except.c (register_exception_table): Use Pmode, not PTRmode. 208: 209: Fri Sep 23 13:54:27 1994 Jason Merrill ([email protected]) 210: 211: * lex.c (do_pending_inlines): Do method synthesis after the 212: pending_inlines have been reversed. 213: 214: Thu Sep 22 12:53:03 1994 Per Bothner ([email protected]) 215: 216: * decl2.c (finish_file): Fix Brendan's fix: Only call 217: register_exception_table if there is a non-empty exception table. 218: 219: Thu Sep 22 12:03:46 1994 Brendan Kehoe ([email protected]) 220: 221: * decl2.c (finish_file): Only do register_exception_table if 222: -fhandle-exceptions is being used. 223: 224: Wed Sep 21 19:01:51 1994 Per Bothner ([email protected]) 225: 226: * except.c (output_exception_table_entry): Simplify 227: by using assemble_integer. 228: (build_exception_table): Change to return a count. 229: Cleanup to use standard macros, instead of hard-wired 230: sparc asm format. Don't make __EXCEPTION_TABLE__ global. 231: (register_exception_table): New function. Generate call to builtin. 232: * decl2.c (finish_file): Call register_exception_table. 233: * cp-tree.h (build_exception_table): Fix prototype. 234: 235: Wed Sep 21 13:20:42 1994 Brendan Kehoe ([email protected]) 236: 237: * tree.c (break_out_calls): Don't try to duplicate the DECL_INITIAL. 238: 239: * decl2.c (delete_sanity): Give an error at trying to delete a 240: function. 241: 242: Wed Sep 21 11:47:10 1994 Jason Merrill ([email protected]) 243: 244: * lex.c (cons_up_default_function): Mark synthesized destructors 245: inline. 246: 247: * decl.c (duplicate_decls): Ignore redeclarations of wchar_t as 248: something other than __wchar_t, complaining if -pedantic and not in 249: a system header. 250: 251: Tue Sep 20 09:43:28 1994 Jason Merrill ([email protected]) 252: 253: * decl.c (xref_tag): Set up BINFO_INHERITANCE_CHAIN on base binfos 254: here. 255: 256: * typeck.c (build_modify_expr): Require complete type after checking 257: for error_mark_node. 258: 259: * call.c (build_method_call): Print parmtypes when complaining of 260: ambiguous call. 261: 262: * typeck.c (build_modify_expr): Handle assignment to array from 263: non-array. 264: 265: * decl.c (lookup_name_real): Deal with got_scope == error_mark_node. 266: 267: * call.c (build_method_call): Don't bother with the exact match. 268: 269: Mon Sep 19 00:51:39 1994 Jason Merrill ([email protected]) 270: 271: * init.c (expand_aggr_init): If we munge the type of the variable, 272: also munge the type of the initializer. 273: 274: * decl.c (grokdeclarator): Use <= when comparing to RID_LAST_MODIFIER. 275: (init_decl_processing): Push artificial declaration of wchar_t so 276: people don't have to declare it before they can use it. 277: 278: * error.c (cp_line_of): return lineno in lieu of 0. 279: 280: * typeck.c (convert_for_assignment): Handle conversion of pmfs to 281: int and bool. 282: (build_component_ref): Fold the COMPONENT_REF in case it can be 283: reduced. 284: 285: * typeck2.c (store_init_value): Don't pedwarn about non-constant 286: bracketed initializers for automatic variables. 287: 288: Sun Sep 18 10:12:12 1994 Jason Merrill ([email protected]) 289: 290: * error.c (dump_decl): Don't say `typedef enum foo foo'. 291: 292: * decl.c (start_decl): Don't set TREE_PUBLIC on template decls just 293: because they're affected by #pragma i/i. We'll deal with that when 294: they get instantiated. 295: 296: * typeck.c (build_unary_op): Clean up cruft in ADDR_EXPR case. 297: 298: * class.c (instantiate_type): Set TREE_CONSTANT on instantiated 299: ADDR_EXPRs if appropriate. 300: 301: * decl.c (build_ptrmemfunc_type): Unset IS_AGGR_TYPE on pmf types. 302: 303: * typeck.c (build_ptrmemfunc): Handle &overloaded_method as an 304: initializer properly. 305: * typeck2.c (digest_init): Ditto. 306: 307: * tree.c (cp_build_type_variant): Like c_build_type_variant, except 308: it uses build_cplus_array_type. 309: * *.c: Use cp_build_type_variant instead of c_build_type_variant. 310: 311: * pt.c (do_type_instantiation): Don't try to instantiate nested 312: enums. 313: 314: Tue Sep 13 10:56:58 1994 Jason Merrill ([email protected]) 315: 316: * cvt.c (build_up_reference): Handle preincrement and predecrement 317: properly. 318: 319: Tue Sep 13 09:51:59 1994 Brendan Kehoe ([email protected]) 320: 321: * decl.c (finish_decl): Only lay out the rtl for DECL if it is, in 322: fact, static. 323: 324: Mon Sep 12 14:40:30 1994 Brendan Kehoe ([email protected]) 325: 326: * decl.c (finish_decl): Lay out the rtl for DECL before doing 327: grok_reference_init, in case it's static. 328: 329: Mon Sep 12 12:45:38 1994 Jason Merrill ([email protected]) 330: 331: * class.c (finish_struct): Don't synthesize constructors if the 332: class has a field with the same name as the class. Don't die on 333: classes with no constructors or destructors. Don't die if the head 334: and tail of the class are in different files. 335: 336: * decl.c (grokdeclarator): Don't treat a function pointer field 337: with the same name as the class as a constructor. 338: 339: Fri Sep 9 13:17:00 1994 Jason Merrill ([email protected]) 340: 341: * typeck.c (build_c_cast): Pull constant values out of their 342: variables here. 343: 344: * decl.c (duplicate_decls): Only propagate DECL_CHAIN in 345: FUNCTION_DECLs and TEMPLATE_DECLs. 346: 347: Thu Sep 8 10:07:48 1994 Jason Merrill ([email protected]) 348: 349: * decl.c (duplicate_decls): Propagate DECL_CHAIN in all DECLs that 350: have it. 351: 352: * pt.c (unify): REALs and INTEGERs only unify with their own genus. 353: (instantiate_member_templates): Don't muck with DECL_EXTERNAL and 354: TREE_PUBLIC unless -fexternal-templates. 355: 356: Wed Sep 7 13:17:10 1994 Jason Merrill ([email protected]) 357: 358: * pt.c (do_type_instantiation): Call instantiate_member_templates. 359: Deal with specializations. 360: (tsubst): Don't stick the mangled name in DECL_NAME for function 361: instantiations. Don't push them, either. 362: 363: * decl2.c (grokfield): Move code for generating the 364: DECL_ASSEMBLER_NAME for static members from here. 365: * method.c (build_static_name): To here. 366: * decl.c (grokvardecl): Call build_static_name. 367: (duplicate_decls): Keep old DECL_ASSEMBLER_NAME. 368: 369: Mon Sep 5 12:49:18 1994 Jason Merrill ([email protected]) 370: 371: * call.c (build_method_call): if -Wsynth, warn when selecting 372: synthesized op= over user-supplied one cfront would select. 373: * decl2.c (lang_decode_option): Handle -Wsynth. 374: 375: Fri Sep 2 15:11:59 1994 Jason Merrill ([email protected]) 376: 377: * decl.c (finish_enum): Overhaul to fix several bugs. 378: (start_enum): Disable useless code. 379: 380: Thu Sep 1 16:04:54 1994 Jason Merrill ([email protected]) 381: 382: * typeck.c (c_expand_return): Warn about returning a reference to a 383: temporary. 384: (convert_arguments): Increment argument counter when using default 385: arguments, too. 386: 387: Wed Aug 31 14:29:22 1994 Jason Merrill ([email protected]) 388: 389: * decl.c (finish_decl): If the type of decl is error_mark_node, 390: don't bother trying to do anything. 391: 392: * typeck.c (convert_for_initialization): If the rhs contains a 393: constructor call, pretend the lhs type needs to be constructed. 394: 395: * init.c (expand_default_init): If we stick the object inside the 396: initializer, mark the initializer used. 397: 398: Tue Aug 30 13:50:18 1994 Jason Merrill ([email protected]) 399: 400: * method.c (build_assign_ref): return *this; 401: (build_assign_ref): Fix base assignment order. 402: (build_copy_constructor): Fix member init order. 403: 404: Mon Aug 29 13:54:39 1994 Brendan Kehoe ([email protected]) 405: 406: * g++.c (main): Remember to clear out SAW_SPECLANG after we see 407: its argument. 408: 409: Sat Aug 27 09:36:03 1994 Jason Merrill ([email protected]) 410: 411: * method.c (build_copy_constructor): Also copy virtual bases. 412: 413: Fri Aug 26 17:05:15 1994 Jason Merrill ([email protected]) 414: 415: * lex.c (do_pending_inlines): Clear out pending_inlines before doing 416: any synthesis. Also first set deja_vu on all pending_inlines. 417: 418: * method.c (build_assign_ref): Use build_member_call to invoke base 419: operator=, rather than build_modify_expr. And use 420: build_reference_type instead of TYPE_REFERENCE_TO. 421: (build_copy_constructor): Use TYPE_NESTED_NAME to identify the 422: basetype. 423: 424: * decl2.c (grokfield): Don't complain about undefined local class 425: methods. 426: 427: * class.c (finish_struct): Don't try to synthesize methods here. 428: * lex.c (do_pending_inlines): Instead, synthesize them here. 429: (init_lex): Initialize synth_obstack. 430: (cons_up_default_function): Stick synthesis request on 431: pending_inlines. 432: 433: Fri Aug 26 12:24:14 1994 Brendan Kehoe ([email protected]) 434: 435: * call.c (build_method_call) [PCC_STATIC_STRUCT_RETURN]: Also 436: accept an RTL_EXPR in what we're about to use for the instance, 437: since anything which would end up with pcc_struct_return set 438: inside cplus_expand_expr. 439: 440: * cp-tree.h (cons_up_default_function): Note change of prototype. 441: 442: Thu Aug 25 23:05:30 1994 Gerald Baumgartner ([email protected]) 443: 444: * class.c (finish_struct): Undid change from Aug 21 testing 445: CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING. 446: * parse.y (left_curly): Ditto, undid change from Aug 21. 447: * decl.c (xref_tag): Undid change from Aug 21, set 448: CLASSTYPE_INTERFACE correctly, and added comments. 449: 450: Thu Aug 25 00:36:31 1994 Jason Merrill ([email protected]) 451: 452: Rework approach to synthesized methods; don't go through the parser 453: anymore. 454: * class.c (finish_struct): Use new synthesis approach. 455: * lex.c (cons_up_default_function): Now just creates declaration, 456: not code. 457: (largest_union_member): #if 0 out. 458: (default_assign_ref_body): Ditto. 459: (default_copy_constructor_body): Ditto. 460: * method.c (build_default_constructor): New function to synthesize X(). 461: (build_copy_constructor): Synthesize X(X&). 462: (build_assign_ref): Synthesize X::operator=(X&). 463: (build_dtor): Synthesize ~X(). 464: 465: * error.c (cp_line_of): If we're dealing with an artificial 466: TYPE_DECL, look at the type instead. 467: 468: Wed Aug 24 11:11:50 1994 Jason Merrill ([email protected]) 469: 470: * init.c (sort_member_init): Check warn_reorder. 471: * decl2.c (lang_decode_option): Handle -W{no-,}reorder. 472: 473: * cp-tree.h (CLASSTYPE_SOURCE_LINE): New macro. 474: * error.c (cp_line_of): Use CLASSTYPE_SOURCE_LINE for aggregates. 475: * class.c (finish_struct): Set CLASSTYPE_SOURCE_LINE. 476: 477: Tue Aug 23 09:28:35 1994 Mike Stump ([email protected]) 478: 479: * error.c (dump_decl): Improve wording, so that error messages 480: dont't read template<, class foo>... 481: 482: Mon Aug 22 15:30:51 1994 Brendan Kehoe ([email protected]) 483: 484: * parse.y (label_colon): Also match a TYPENAME as a label name, 485: since they may have declared a class by that name but have also 486: tried to have a local label under the same name. 487: 488: * pt.c (coerce_template_parms): Call cp_error, not cp_error_at, 489: for the message so they know at what point it was instantiated. 490: 491: Sun Aug 21 23:07:35 1994 Gerald Baumgartner ([email protected]) 492: 493: * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and 494: CLASSTYPE_VTABLE_NEEDS_WRITING for signatures up to left_curly time. 495: * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and 496: CLASSTYPE_VTABLE_NEEDS_WRITING for signatures down to left_curly time. 497: * parse.y (left_curly): New final resting place for setting 498: CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING for signatures. 499: 500: * class.c (finish_struct): Don't test for function/field name 501: conflicts in signatures, since all the fields are compiler-constructed. 502: 503: Fri Aug 19 14:04:47 1994 Kung Hsu ([email protected]) 504: 505: * method.c (build_overload_nested_name): in qualified name 506: mangling, the template with value instantiation will have numeric 507: at end and may mixed with the name length of next nested level. 508: Add a '_' in between. 509: * method.c (build_overload_name): ditto. 510: * method.c (build_overload_identifier): ditto. 511: 512: Thu Aug 18 16:24:43 1994 Mike Stump ([email protected]) 513: 514: * error.c (dump_decl): Handle NULL args. 515: 516: Thu Aug 18 12:48:09 1994 Mike Stump ([email protected]) 517: 518: * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and 519: CLASSTYPE_VTABLE_NEEDS_WRITING up to left_curly time. 520: * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and 521: CLASSTYPE_VTABLE_NEEDS_WRITING down to left_curly time. 522: * parse.y (left_curly): New final resting place for setting 523: CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING. 524: 525: Thu Aug 11 11:32:42 1994 H.J. Lu ([email protected]) 526: 527: * g++.c (main): Only decrement "added" and set "library" to 528: NULL when "library" != NULL. 529: 530: Sat Aug 13 00:14:52 1994 Jason Merrill ([email protected]) 531: 532: * decl.c (grokdeclarator): Don't set TREE_PUBLIC on a function decl 533: just because its class has a known interface. 534: (decls_match): Deal with new format of template parms. 535: 536: * lex.c (cons_up_default_function): Don't play with TREE_PUBLIC and 537: DECL_EXTERNAL here. 538: 539: Fri Aug 12 01:55:15 1994 Jason Merrill ([email protected]) 540: 541: * decl.c (pushtag): SET_DECL_ARTIFICIAL on gratuitous typedefs. 542: (xref_defn_tag): Ditto. 543: (pushdecl): Only allow artificial typedefs to be shadowed. 544: 545: * init.c (emit_base_init): Pass the right binfos to 546: expand_aggr_init_1. 547: 548: * class.c (delete_duplicate_fields_1): Make it work right. 549: (finish_struct): Catch function/field name conflict. 550: 551: * decl2.c (check_classfn): Pass the function to cp_error, not just 552: the name. 553: 554: * init.c (sort_member_init): Warn when order of member initializers 555: does not match order of member declarations. 556: (emit_base_init): Call expand_aggr_init_1 with LOOKUP_PROTECT. 557: 558: * error.c (dump_expr): Handle lists of functions. 559: 560: * decl.c (start_function): #pragma interface only affects functions 561: that would otherwise be static. 562: (finish_decl): Don't warn about an unused variable if it has both 563: constructor and destructor, since the 'resource allocation is 564: initialization' idiom is relatively common. 565: 566: * typeck.c (comp_target_types): Don't handle TEMPLATE_TYPE_PARMs. 567: (comp_target_parms): Ditto. 568: (compparms): Never consider default parms. 569: (common_base_type): Don't choose a virtual baseclass if there is a 570: more derived class in common. 571: (build_conditional_expr): If pedantic, pedwarn about conversion to 572: common base in conditional expr. 573: 574: * class.c (instantiate_type): Handle template instantiation better. 575: 576: * typeck.c (convert_arguments): Don't try to get tricky and convert 577: to int directly when PROMOTE_PROTOTYPES is set, as it breaks 578: user-defined conversions. 579: 580: * lex.c (check_for_missing_semicolon): Also give error at end of 581: file. 582: 583: * call.c (build_method_call): Don't promote arrays to pointers here. 584: 585: * typeck.c (convert_arguments): Don't require the actual parameter 586: to be of a complete type if the formal parameter is a reference. 587: 588: Thu Aug 11 15:21:40 1994 Jason Merrill ([email protected]) 589: 590: * decl.c (grokdeclarator): Soften 'static' on member function error 591: to pedwarn. 592: 593: * init.c (build_new): Don't automatically save rval. 594: (build_offset_ref): Do field lookup with proper basetype_path. 595: 596: Thu Aug 11 12:46:54 1994 Brendan Kehoe ([email protected]) 597: 598: * errfn.c (cp_silent): Declare to mark when we should avoid 599: emitting warnings and errors. 600: (cp_error): Check it. 601: (cp_warning): Likewise. 602: (cp_pedwarn): Likewise. 603: (cp_compiler_error): Likewise. 604: (cp_error_at): Likewise. 605: (cp_warning_at): Likewise. 606: (cp_pedwarn_at): Likewise. 607: * call.c (compute_conversion_costs): Set CP_SILENT when we start 608: out, and make sure we turn it off before we leave. 609: 610: Thu Aug 11 00:02:54 1994 Jason Merrill ([email protected]) 611: 612: * decl2.c (grok_array_decl): Try computing *(A+B) if neither 613: argument is obviously an array. 614: 615: Wed Aug 10 15:32:04 1994 Jason Merrill ([email protected]) 616: 617: * typeck.c (c_expand_start_case): Do cleanups here. 618: 619: * parse.y (xcond): Do bool conversion here, too. 620: (simple_stmt, SWITCH case): Don't do cleanups here. 621: 622: * decl.c (duplicate_decls): Don't treat builtins that have been 623: explicitly declared specially. 624: 625: Tue Aug 9 01:16:09 1994 Jason Merrill ([email protected]) 626: 627: * tree.c (make_deep_copy): Support copying pointer, reference, 628: function, array, offset and method types. 629: 630: * decl.c (init_decl_processing): Mark exit and abort as 631: BUILT_IN_NONANSI so that duplicate_decls is kinder about 632: redeclaration. 633: (duplicate_decls): Don't give two errors for redeclaring a C 634: function with the same parms but a different return type. 635: 636: * parse.y (paren_cond_or_null): Do cleanup and bool conversion here. 637: (condition): Instead of here. 638: (simple_stmt, SWITCH case): Also do cleanup here. 639: 640: * decl2.c (finish_anon_union): Only break out FIELD_DECLs. 641: 642: * call.c (build_method_call): Don't throw away the side effects of 643: the object in a call to a non-existent constructor. 644: * parse.y (primary): Ditto. 645: 646: * method.c (build_decl_overload): Oop. 647: 648: * decl2.c (lang_decode_option): Deal with flag_no_nonansi_builtin, 649: warn about uselessness of specifying -fansi-overloading. 650: 651: * method.c (build_decl_overload): Treat any non-member new with one 652: parameter as __builtin_new. 653: 654: * decl.c (init_decl_processing): Setup built-in meanings of exit, 655: _exit and abort. 656: 657: Mon Aug 8 15:03:30 1994 Jason Merrill ([email protected]) 658: 659: * error.c (dump_readonly_or_volatile): Put a space between const and 660: volatile if both apply. 661: 662: * init.c (perform_member_init): Clean up after this initialization. 663: (emit_base_init): Clean up after each base init, not after all have 664: been done. 665: (expand_aggr_vbase_init_1): Clean up after this init. 666: 667: Sun Aug 7 14:55:05 1994 Jason Merrill ([email protected]) 668: 669: * call.c (build_method_call): Deal with destroying references. 670: 671: * parse.y (condition): Do bool_truthvalue_conversion here. 672: (paren_expr_or_null): And here. 673: (simple_if): Not here. 674: (simple_stmt): Or here. 675: 676: Sat Aug 6 22:29:45 1994 Jason Merrill ([email protected]) 677: 678: * parse.y (paren_expr_or_null): Wrap the expression in a 679: CLEANUP_POINT_EXPR. 680: (condition): Ditto. 681: 682: Sat Aug 6 19:46:37 1994 Rohan Lenard ([email protected]) 683: 684: * call.c (build_scoped_method_call): Fix error message when 685: destructor call refers to a nonexistent type. 686: 687: Sat Apr 16 22:43:30 1993 Gerald Baumgartner ([email protected]) 688: 689: * lex.h (rid): Deleted RID_RAISES, it's never used. 690: Moved RID_PUBLIC, RID_PRIVATE, RID_PROTECTED, RID_EXCEPTION, 691: RID_TEMPLATE and RID_SIGNATURE to the end of the enumeration, 692: they don't need to be touched in `grokdeclarator.' 693: (RID_LAST_MODIFIER): Defined macro to be RID_MUTABLE. 694: 695: * decl.c (grokdeclarator): Use RID_LAST_MODIFIER instead of 696: RID_MAX as loop limit for finding declaration specifiers. 697: 698: Sat Apr 3 21:59:07 1993 Gerald Baumgartner ([email protected]) 699: 700: * lex.c (debug_yytranslate): Moved to parse.y since it needs to 701: access `yytname,' which is static in parse.c. 702: 703: Fri Apr 2 23:36:57 1993 Gerald Baumgarnter ([email protected]) 704: 705: * cp-tree.h (GNU_xref_ref): Fixed typo in extern declaration, it 706: was `GNU_xref_def' instead of `GNU_xref_ref.' 707: 708: Fri Aug 5 14:20:16 1994 Jason Merrill ([email protected]) 709: 710: * pt.c (do_function_instantiation): Don't set TREE_PUBLIC and 711: DECL_EXTERNAL on 'extern' instantiations; wait until EOF to do that. 712: (do_type_instantiation): Ditto. 713: 714: * decl2.c (import_export_inline): Decides at EOF what an inline's 715: linkage should be. 716: (finish_file): Call it. 717: 718: * decl.c (start_function): Don't rely on the settings of TREE_PUBLIC 719: and DECL_EXTERNAL from do_*_instantiation. Only set 720: DECL_DEFER_OUTPUT on inlines whose linkage might actually change. 721: (finish_function): Use DECL_DEFER_OUTPUT to decide which inlines to 722: mark for later consideration, rather than DECL_FUNCTION_MEMBER_P. 723: 724: Fri Aug 5 01:12:20 1994 Mike Stump ([email protected]) 725: 726: * class.c (get_class_offset_1, get_class_offset): New routine to 727: find the offset of the class where a virtual function is defined, 728: from the complete type. 729: * class.c (modify_one_vtable, fixup_vtable_deltas): Use 730: get_class_offset instead of virtual_offset as get_class_offset will 731: always provide the right answer. 732: * tree.c (virtual_offset): Remove. It only ever worked some of the 733: time. 734: 735: Tue Aug 2 12:44:21 1994 Jason Merrill ([email protected]) 736: 737: * call.c (build_method_call): Put back unary_complex_lvalue call 738: that I thought was redundant. 739: 740: * typeck.c (c_expand_return): Fix a case I missed before. 741: 742: Sun Jul 31 17:54:02 1994 Jason Merrill ([email protected]) 743: 744: * pt.c (unify): Strip cv-quals from template type arguments (when 745: 'const T*' is matched to 'const char*', that does not mean that T is 746: 'const char'). 747: 748: Fri Jul 29 01:03:06 1994 Jason Merrill ([email protected]) 749: 750: * pt.c (do_type_instantiation): Instantiate nested TAGS, not 751: typedefs. Third time's the charm? 752: 753: * parse.y (template_parm): Support default template parms. 754: * pt.c (process_template_parm): Ditto. 755: (end_template_parm_list): Ditto. 756: (coerce_template_parms): Ditto. 757: (mangle_class_name_for_template): Ditto. 758: (push_template_decls): Ditto. 759: (unify): Ditto. 760: * method.c (build_overload_identifier): Ditto. 761: * error.c (dump_decl): Ditto. 762: 763: Wed Jul 27 17:47:00 1994 Jason Merrill ([email protected]) 764: 765: * pt.c (do_type_instantiation): Only instantiate nested *classes*. 766: 767: Tue Jul 26 13:22:40 1994 Jason Merrill ([email protected]) 768: 769: * search.c (note_debug_info_needed): Also emit debugging information 770: for the types of fields. 771: 772: Mon Jul 25 00:34:44 1994 Jason Merrill ([email protected]) 773: 774: * pt.c (lookup_template_class): Pass 'template' to 775: coerce_template_parms instead of 'in_decl', since it's a more 776: meaningful context. 777: 778: * typeck.c (c_expand_return): Make sure any cleanups for the return 779: expression get run. 780: (build_c_cast): Use CONVERT_EXPR for conversion to void. 781: 782: * pt.c (do_type_instantiation): Also instantiate nested types. 783: 784: * typeck.c (convert_for_assignment): Don't die when comparing 785: pointers with different levels of indirection. 786: 787: * decl.c (grokdeclarator): The sub-call to grokdeclarator for 788: class-local typedefs sets DECL_ARGUMENTS, so we need to clear it 789: out. 790: 791: * decl2.c (finish_anon_union): Don't die if the union has no 792: members. 793: 794: * decl.c (grokdeclarator): Undo changes to declspecs when we're done 795: so that 'typedef int foo, bar;' will work. 796: 797: * decl2.c (finish_file): Don't call expand_aggr_init for 798: non-aggregates. 799: 800: Mon Jul 25 00:03:10 1994 Teemu Torma ([email protected]) 801: 802: * decl.c (finish_function): We can't inline constructors and 803: destructors under some conditions with -fpic, but don't unset 804: DECL_INLINE. 805: 806: Mon Jul 25 00:03:10 1994 Jason Merrill ([email protected]) 807: 808: * typeck.c (build_object_ref): Make sure 'datum' is a valid object. 809: 810: Sun Jul 24 14:19:31 1994 Jason Merrill ([email protected]) 811: 812: * class.c (finish_struct): Don't set DECL_FIELD_BITPOS on 813: non-fields. 814: (finish_struct_methods): Use copy_assignment_arg_p. 815: 816: * cvt.c (cp_convert): If expr is an OFFSET_REF, resolve it instead 817: of giving an error. 818: 819: * typeck.c (build_binary_op_nodefault): Don't set result_type if we 820: don't know how to compare the operands. 821: 822: * decl.c (grokdeclarator): Avoid seg fault when someone uses '__op' 823: as a declarator-id in their program. Like the Linux headers do. 824: Arrgh. 825: 826: * tree.c (lvalue_p): Treat calls to functions returning objects by 827: value as lvalues again. 828: 829: * typeck.c (build_component_addr): Use convert_force to convert the 830: pointer in case the component type is also a private base class. 831: 832: * search.c (get_matching_virtual): Fix bogus warning of overloaded 833: virtual. 834: 835: * pt.c (overload_template_name): Set DECL_ARTIFICIAL on the created 836: TYPE_DECL to fix bogus shadowing warnings. 837: 838: Fri Jul 22 01:15:32 1994 Jason Merrill ([email protected]) 839: 840: * init.c (expand_aggr_init_1): const and volatile mismatches do not 841: prevent a TARGET_EXPR from initializing an object directly. 842: 843: Tue Jul 19 17:55:37 1994 Jason Merrill ([email protected]) 844: 845: * cvt.c (build_up_reference): Allow building up references to 846: `this', don't warn about making references to artificial variables 847: (like `this'). 848: 849: * tree.c (lvalue_p): `this' is not an lvalue. 850: 851: * call.c (build_method_call): Accept using a typedef name (or 852: template type parameter) for explicit destructor calls. 853: 854: Wed Jul 13 03:57:54 1994 Jason Merrill ([email protected]) 855: 856: * method.c (hack_identifier): Put back old code so lists of 857: non-functions will be handled properly. 858: 859: * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): #if 0 out; this macro is now 860: defined in the language-independent tree.h. 861: 862: * tree.c (count_functions): Avoid bogus warning when compiling this 863: function. 864: 865: Mon Jul 11 18:37:20 1994 Jason Merrill ([email protected]) 866: 867: * decl.c (grok_reference_init): Always save the initializer of a 868: reference. 869: 870: Fri Jul 8 17:41:46 1994 Mike Stump ([email protected]) 871: 872: * decl.c (cplus_expand_expr_stmt): Wrap statement expressions inside 873: CLEANUP_POINT_EXPRs so that the stack slots can be reused. 874: (disabled for now) 875: 876: Fri Jul 8 12:59:38 1994 Jason Merrill ([email protected]) 877: 878: * method.c (hack_identifier): Fix for new overloading. 879: 880: * typeck.c (build_binary_op_nodefault): Don't mess with division by 881: zero. 882: 883: Fri Jul 8 13:20:28 1994 Gerald Baumgartner ([email protected]) 884: 885: * decl2.c (finish_file): Only call walk_sigtables, if 886: flag_handle_signatures is turned on, don't waste time otherwise. 887: 888: Fri Jul 8 02:27:41 1994 Jason Merrill ([email protected]) 889: 890: * decl.c (push_overloaded_decl): Don't create overloads of one when 891: shadowing a class type. 892: * typeck.c (build_x_function_call): Complain about overloads of one. 893: 894: * decl.c (grokdeclarator): Don't try to treat a char* as a tree. 895: (grokdeclarator): Fix setting of TREE_STATIC. 896: (start_decl): Clear DECL_IN_AGGR_P after calling duplicate_decls. 897: 898: Thu Jul 7 22:20:46 1994 Gerald Baumgartner ([email protected]) 899: 900: * cp-tree.h (walk_sigtables): Created extern declaration. 901: * decl2.c (walk_sigtables): Created function, patterned after 902: walk_vtables, even though we only need it to write out sigtables. 903: (finish_sigtable_vardecl): Created function. 904: (finish_vtable_vardecl): Changed 0 to NULL_PTR. 905: (finish_file): Call walk_sigtables. 906: 907: * sig.c (build_signature_table_constructor): Mark class member 908: function pointed to from signature table entry as addressable. 909: 910: Thu Jul 7 13:39:37 1994 Jason Merrill ([email protected]) 911: 912: * decl.c (start_decl): Check new decl of static member variable 913: against the declaration in the class here. 914: (grokvardecl): Instead of here. 915: 916: * class.c (prepare_fresh_vtable): Call import_export_vtable if not 917: -fvtable-thunks. 918: (build_vtable): Ditto. 919: 920: * decl2.c (import_export_vtable): Move logic for deciding the 921: interface of a template class from here. 922: (import_export_template): To here. 923: (finish_vtable_vardecl): Call import_export_template before 924: import_export_vtable. 925: 926: Wed Jul 6 20:25:48 1994 Mike Stump ([email protected]) 927: 928: * except.c (init_exception_processing): Setup interim_eh_hook to 929: call lang_interim_eh. 930: * except.c (do_unwind): Propagate throw object value across 931: stack unwinding. 932: * except.c (saved_throw_value): Used to hold the value of the object 933: being thrown. It is always a reference to the real value. 934: * except.c (expand_start_catch_block): Add handling for the 935: value of the exception object. 936: * except.c (expand_start_catch_block): Add handler for the handler, 937: so that throws inside the handler go to the outer block. 938: * except.c (expand_end_catch_block): Ditto. 939: * parse.y (handler_args): Use parm instead, as the other doesn't yet 940: handle references correctly. 941: 942: Wed Jul 6 17:55:32 1994 Per Bothner ([email protected]) 943: 944: * decl2.c (mark_vtable_entries): If -ftable-thunks, set the 945: vtable entry properly to abort. 946: 947: Tue Jul 5 14:07:54 1994 Jason Merrill ([email protected]) 948: 949: * typeck.c (build_binary_op_nodefault): Downgrade division by zero 950: errors to warnings. 951: 952: * call.c (build_overload_call_real): Handle fnname being a list of 953: functions. 954: * typeck.c (build_x_function_call): Pass list of functions to 955: build_overload_call, not just the name. 956: * tree.c (count_functions): Complain when called for invalid 957: argument. 958: 959: * decl.c (grokdeclarator): Fix settings of TREE_STATIC, TREE_PUBLIC 960: and DECL_EXTERNAL on static members and initialized const members. 961: * decl2.c (grokfield): Reflect this change. 962: 963: Fri Jul 1 09:35:51 1994 Jason Merrill ([email protected]) 964: 965: * parse.y (init): ANSI C++ does not forbid { }. 966: 967: Thu Jun 30 00:35:22 1994 Jason Merrill ([email protected]) 968: 969: * decl2.c (lang_decode_option): Set warn_nonvdtor along with -Wall. 970: warn_nonvdtor defaults to off. 971: 972: * class.c (instantiate_type): Use comptypes rather than relying on 973: types to satisfy ==. 974: 975: * decl.c (start_function): Set DECL_DEFER_OUTPUT on all inlines that 976: might be static. 977: 978: * tree.c (build_cplus_new): Never build WITH_CLEANUP_EXPRs. 979: 980: * decl.c (grok_reference_init): Deal with ADDR_EXPRs of TARGET_EXPRs. 981: 982: * cvt.c (cp_convert): Pass 0 to with_cleanup_p arg of 983: build_cplus_new. 984: 985: Wed Jun 29 22:31:09 1994 Jason Merrill ([email protected]) 986: 987: * decl2.c (finish_file): Maybe consider static inlines multiple 988: times, in case they reference each other. 989: 990: Tue Jun 28 11:58:38 1994 Gerald Baumgartner ([email protected]) 991: 992: * class.c (finish_struct): Don't `cons_up_default_function's 993: for signatures. 994: (finish_struct): Handle an empty method_vec correctly. 995: 996: * decl.c (grokdeclarator): Don't warn about a signature being 997: empty in a signature pointer declaration if we only saw a 998: forward declaration of the signature. Changed `warning's into 999: `cp_warning's. 1000: 1001: * sig.c (build_sigtable): Don't die if a null signature table 1002: constructor is returned. 1003: (build_signature_pointer_constructor): If the signature table 1004: constructor is null, the _sptr field is set to a null pointer 1005: and cast to the appropriate type. Make copies of all null 1006: pointers so that the type null_pointer_node doesn't get changed. 1007: (build_signature_table_constructor): Added comments. 1008: 1009: * sig.c (build_signature_pointer_constructor): Complain if we 1010: try to assign to/initialize a signature pointer/reference of 1011: an undefined signature. 1012: 1013: Mon Jun 27 14:05:16 1994 Gerald Baumgartner ([email protected]) 1014: 1015: * typeck2.c (store_init_value): Don't be pedantic about 1016: non-constant initializers of signature tables/pointers/references. 1017: 1018: Fri Jun 24 16:49:41 1994 Gerald Baumgartner ([email protected]) 1019: 1020: * decl.c (grokdeclarator): If we are grokking an opaque typedef 1021: in a signature, don't complain about it begin static. 1022: 1023: Wed Jun 29 16:44:45 1994 Mike Stump ([email protected]) 1024: 1025: Fixes a problem of the this pointer being wrong in virtual calls to 1026: methods that are not overridden in more derived classes. 1027: 1028: * class.c (fixup_vtable_delta): New routine. It will fixup the 1029: delta entries in vtables, wheever they need updating. 1030: * class.c (finish_struct): Call the new routine for all virtual 1031: bases, as they can have different offsets, than those used in base 1032: classes that we derive our vtable from. 1033: 1034: Tue Jun 28 23:49:28 1994 Jason Merrill ([email protected]) 1035: 1036: * typeck.c (build_binary_op): Use the types before default 1037: conversions in the error message. 1038: 1039: * *.c: Use c_build_type_variant instead of build_type_variant where 1040: the type might be an array. 1041: 1042: * call.c (build_method_call): Call build_type_variant and 1043: build_reference_type in the right order. 1044: * decl.c (record_builtin_type): Ditto. 1045: 1046: Wed Jun 29 16:58:53 1994 Jason Merrill ([email protected]) 1047: 1048: * call.c (build_method_call): Call build_type_variant and 1049: build_reference_type in the right order. 1050: * decl.c (record_builtin_type): Ditto. 1051: 1052: Tue Jun 28 23:49:28 1994 Jason Merrill ([email protected]) 1053: 1054: * typeck.c (build_binary_op): Use the types before default 1055: conversions in the error message. 1056: 1057: * *.c: Use c_build_type_variant instead of build_type_variant where 1058: the type might be an array. 1059: 1060: Sat Jun 25 11:50:54 1994 Jason Merrill ([email protected]) 1061: 1062: * cvt.c (convert_to_reference): Try UDC's before doing the 1063: reinterpret_cast thang, though. 1064: 1065: Fri Jun 24 01:24:01 1994 Jason Merrill ([email protected]) 1066: 1067: * typeck.c (c_expand_return): Don't USE the return value location 1068: after we've expanded the jump. 1069: 1070: * decl2.c (finish_file): Make sure DECL_SAVED_INSNS is not 0 before 1071: trying to write out an inline. 1072: 1073: * cvt.c (build_up_reference): Also do address adjustment when the 1074: target type uses MI. 1075: (convert_to_reference): Try UDCs only after built-in conversions. 1076: (build_type_conversion_1): Don't play games with the argument to the 1077: method. 1078: (build_type_conversion): #if 0 out code for binding to reference. 1079: 1080: Thu Jun 23 00:22:28 1994 Jason Merrill ([email protected]) 1081: 1082: * decl2.c (finish_file): Use TREE_SYMBOL_REFERENCED to decide 1083: whether to emit inlines. 1084: 1085: * decl.c (grokdeclarator): Set explicit_int for decls that just 1086: specify, say, 'long'. 1087: 1088: * init.c (do_friend): Do overload C functions (or call pushdecl, 1089: anyaway). 1090: 1091: Wed Jun 22 13:40:49 1994 Jason Merrill ([email protected]) 1092: 1093: * cvt.c (build_up_reference): Don't call readonly_error. 1094: (convert_to_reference): Propagate const and volatile from expr to 1095: its type. 1096: 1097: * tree.c (lvalue_p): Random CALL_EXPRs are not lvalues. 1098: 1099: * cvt.c (build_up_reference): Break out WITH_CLEANUP_EXPR when 1100: creating a temporary. 1101: (convert_to_reference): Lose excessive and incorrect trickiness. 1102: (cp_convert): Call build_cplus_new with with_cleanup_p set. 1103: 1104: * typeck2.c (build_functional_cast): Ditto. 1105: 1106: Tue Jun 21 17:38:38 1994 Jason Merrill ([email protected]) 1107: 1108: * decl.c (grokdeclarator): signed, unsigned, long and short all 1109: imply 'int'. 1110: 1111: * decl.c (grokdeclarator): Allow "this is a type" syntax. 1112: (grok_reference_init): Simplify and fix. 1113: 1114: Sun Jun 19 17:08:48 1994 Jason Merrill ([email protected]) 1115: 1116: * decl.c (grokdeclarator): pedwarn about a typedef that specifies no 1117: type. 1118: 1119: Sat Jun 18 04:16:50 1994 Jason Merrill ([email protected]) 1120: 1121: * decl.c (start_function): Move TREE_PUBLIC and DECL_EXTERNAL 1122: tinkering to after call to pushdecl. 1123: 1124: Fri Jun 17 14:48:28 1994 Jason Merrill ([email protected]) 1125: 1126: * call.c (build_method_call): Handle destructors for non-aggregate 1127: types properly. 1128: 1129: Thu Jun 16 16:48:05 1994 Jason Merrill ([email protected]) 1130: 1131: * call.c (build_method_call): Make sure that the name given for the 1132: destructor matches the constructor_name of the instance. 1133: 1134: * pt.c (do_function_instantiation): A non-extern instantiation 1135: overrides a later extern one. 1136: (do_type_instantiation): Ditto. 1137: 1138: Wed Jun 15 19:34:54 1994 Jason Merrill ([email protected]) 1139: 1140: * init.c (expand_aggr_init): Use TYPE_MAIN_VARIANT to get the 1141: unqualified array type. 1142: 1143: * cp-tree.h (EMPTY_CONSTRUCTOR_P): Tests whether NODE is a 1144: CONSTRUCTOR with no elements. 1145: 1146: * decl.c (various): Lose empty_init_node. 1147: (finish_decl): Use EMPTY_CONSTRUCTOR_P, do the empty CONSTRUCTOR 1148: thing depending on the value of DECL_COMMON instead of 1149: flag_conserve_space, do the empty CONSTRUCTOR thing for types that 1150: don't have constructors, don't treat a real empty CONSTRUCTOR 1151: specially. 1152: 1153: * typeck2.c (process_init_constructor): Don't treat empty_init_node 1154: specially. 1155: 1156: Wed Jun 15 19:05:25 1994 Mike Stump ([email protected]) 1157: 1158: * class.c (override_one_vtable): Don't forget to merge in an old 1159: overrider when we wanted to reuse a vtable, but couldn't. 1160: 1161: Wed Jun 15 15:03:16 1994 Jason Merrill ([email protected]) 1162: 1163: * decl.c (start_decl): Put statics in common again. 1164: 1165: * decl.c (grokdeclarator): Return NULL_TREE for an error rather than 1166: setting the type to error_mark_node. 1167: 1168: * typeck.c (build_modify_expr): Build up a COMPOUND_EXPR for enum 1169: bitfield assignments. 1170: 1171: Tue Jun 14 12:23:38 1994 Jason Merrill ([email protected]) 1172: 1173: * decl.c (grok_op_properties): Const objects can be passed by value. 1174: 1175: Mon Jun 13 03:10:59 1994 Jason Merrill ([email protected]) 1176: 1177: * decl2.c (import_export_vtable): Force implicit instantiations to 1178: be interface_only when -fno-implicit-templates. 1179: 1180: * decl.c (duplicate_decls): Redeclaring a class template name is an 1181: error. 1182: 1183: * pt.c (end_template_decl): Call GNU_xref_decl for class templates. 1184: * xref.c (GNU_xref_decl): Support templates. 1185: 1186: Sat Jun 11 17:09:05 1994 Jason Merrill ([email protected]) 1187: 1188: * decl.c (grok_op_properties): Split out checking for whether this 1189: function should suppress the default assignment operator. 1190: * decl2.c (grok_function_init): Ditto. 1191: (copy_assignment_arg_p): New function do do just that. 1192: Now considers virtual assignment operators that take a base as an 1193: argument to count as copy assignment operators. 1194: 1195: * search.c (dfs_debug_mark): Lose checks for DWARF_DEBUG and 1196: TREE_ASM_WRITTEN, as they are redundant. 1197: 1198: * pt.c (end_template_decl): Don't try to set DECL_CLASS_CONTEXT on a 1199: decl that has no LANG_SPECIFIC part. 1200: (do_type_instantiation): Force the debugging information for this 1201: type to be emitted. 1202: 1203: * decl.c (start_decl): Clear up uses of various types of templates 1204: (say sorry for static data members, rather than "invalid template"). 1205: (expand_static_init): Fix initialization of static data members of 1206: template classes. 1207: 1208: Fri Jun 10 00:41:19 1994 Jason Merrill ([email protected]) 1209: 1210: * decl.c (grokdeclarator): Set DECL_CONTEXT on static data members. 1211: 1212: * g++.c (main): Use -xc++-cpp-output for .i files. 1213: 1214: * pt.c (tsubst): Give meaningful error about declaring template for 1215: a copy constructor which was not declared in the class template. 1216: (do_type_instantiation): Explicit instantiation before the class 1217: template is an error. 1218: (instantiate_template): Don't die if tsubst returns error_mark_node. 1219: 1220: Thu Jun 9 19:04:59 1994 Jason Merrill ([email protected]) 1221: 1222: Don't synthesize the copy assignment operator if the one in a base 1223: class is pure virtual. 1224: * cp-tree.h (TYPE_HAS_ABSTRACT_ASSIGN_REF): New macro to indicate 1225: whether the type has a pure virtual copy assignment operator. 1226: * class.c (finish_base_struct): Don't generate the copy assignment 1227: operator if a base class has a pure virtual one. 1228: * decl.c (grok_op_properties): Add disabled code to set 1229: TYPE_HAS_ABSTRACT_ASSIGN_REF with comment pointing to where it is 1230: actually set. 1231: * decl2.c (grok_function_init): Set TYPE_HAS_ABSTRACT_ASSIGN_REF. 1232: 1233: * decl2.c (import_export_vtable): Always treat template 1234: instantiations as if write_virtuals >= 2, and treat implicit 1235: instantiations as external if -fno-implicit-templates. 1236: (finish_file): Output all pending inlines if 1237: flag_keep_inline_functions. 1238: 1239: Wed Jun 8 20:48:02 1994 Mike Stump ([email protected]) 1240: 1241: * tree.c (layout_vbasetypes): Align virtual base classes inside 1242: complete objects, so that we don't core dump on machines such as 1243: SPARCs when we access members that require larger than normal 1244: alignments, such as a double. Also, we bump up the total alignment 1245: on the complete type, as necessary. 1246: 1247: Wed Jun 8 16:18:14 1994 Jason Merrill ([email protected]) 1248: 1249: * gxxint.texi (Free Store): New section with code for examining 1250: cookie. 1251: (Limitations of g++): Remove operator delete entry, since it is no 1252: longer accurate. Fix access control entry. 1253: 1254: * typeck.c (build_unary_op): Pedwarn about taking the address of or 1255: incrementing a cast to non-reference type. 1256: (build_modify_expr): Use convert instead of convert_force again. 1257: 1258: * search.c (get_base_distance): Use IS_AGGR_TYPE_CODE to check for 1259: class type, not == RECORD_TYPE. 1260: 1261: * decl.c (grokdeclarator): Cope with grokfndecl returning NULL_TREE. 1262: 1263: * typeck2.c (report_case_error): #if 0 out. 1264: * lex.c (real_yylex): Lose RANGE. 1265: * parse.y: Ditto. 1266: 1267: Tue Jun 7 18:17:35 1994 Jason Merrill ([email protected]) 1268: 1269: * parse.y (simple_stmt, case ranges): Use ELLIPSIS instead of RANGE. 1270: 1271: Mon Jun 6 19:39:57 1994 Jason Merrill ([email protected]) 1272: 1273: * typeck.c (build_c_cast): Don't shortcut conversions to the same 1274: type. Don't replace consts with their values here, since that's now 1275: done in cp_convert. 1276: 1277: * cvt.c (cp_convert): When converting to bool, take 1278: integer_zero_node to false_node and all other INTEGER_CSTs to 1279: true_node. 1280: (build_type_conversion): Don't complain about multiple conversions 1281: to float if we're not really converting. 1282: 1283: Fri Jun 3 02:10:56 1994 Jason Merrill ([email protected]) 1284: 1285: Implement 'extern template class A<int>;' syntax for suppressing 1286: specific implicit instantiations. 1287: * cp-tree.h: Update prototypes for do_*_instantiation. 1288: * pt.c (do_pending_expansions): Don't compile 'extern' explicit 1289: instantiations. 1290: (do_function_instantiation): Set DECL_EXTERNAL on 'extern' explicit 1291: instantiations. 1292: (do_type_instantiation): Ditto. 1293: * parse.y (explicit_instantiation): Support 'extern template class 1294: A<int>;' syntax. 1295: * decl.c (start_function): Don't modify the settings of TREE_PUBLIC 1296: and DECL_EXTERNAL on explicit instantiations. 1297: 1298: * cvt.c (cp_convert): Replace constants with their values before 1299: converting. 1300: (cp_convert): Consistently use 'e' instead of 'expr'. 1301: 1302: Thu Jun 2 03:53:30 1994 Jason Merrill ([email protected]) 1303: 1304: * typeck2.c (build_x_arrow): Resolve OFFSET_REFs first. 1305: 1306: Wed Jun 1 18:57:35 1994 Jason Merrill ([email protected]) 1307: 1308: * typeck2.c (digest_init): Handle initializing a pmf with an 1309: overloaded method. 1310: * typeck.c (build_ptrmemfunc): Handle overloaded methods. 1311: 1312: * decl.c (pushtag): Use build_decl to make TYPE_DECLs. 1313: (xref_defn_tag): Ditto. 1314: * pt.c (process_template_parm): Ditto. 1315: (lookup_template_class): Ditto. 1316: (push_template_decls): Ditto. 1317: (instantiate_class_template): Ditto. 1318: (create_nested_upt): Ditto. 1319: * class.c (finish_struct): Don't try to set DECL_CLASS_CONTEXT on 1320: TYPE_DECLs. 1321: 1322: * typeck.c (convert_arguments): Make sure type is not NULL before 1323: checking its TREE_CODE. 1324: 1325: Wed Jun 1 17:40:39 1994 Mike Stump ([email protected]) 1326: 1327: * class.c (get_derived_offset): New routine. 1328: * class.c (finish_base_struct): Make sure we set BINFO_VTABLE and 1329: BINFO_VIRTUALS when we choose a new base class to inherit from. 1330: * class.c (modify_one_vtable): Use get_derived_offset to get the 1331: offset to the most base class subobject that we derived this binfo 1332: from. 1333: * class.c (finish_struct): Move code to calculate the 1334: DECL_FIELD_BITPOS of the vfield up, as we need might need it for 1335: new calls to get_derived_offset in modify_one_vtable. 1336: 1337: Wed Jun 1 16:50:59 1994 Jason Merrill ([email protected]) 1338: 1339: * init.c (build_member_call): Use build_pointer_type instead of 1340: TYPE_POINTER_TO. 1341: 1342: Wed Jun 1 11:11:15 1994 Brendan Kehoe ([email protected]) 1343: 1344: * decl.c (grokdeclarator): Make sure we have a DNAME set before we 1345: try to use it in an error. 1346: 1347: Wed Jun 1 09:48:49 1994 Mike Stump ([email protected]) 1348: 1349: * typeck.c (convert_arguments, convert_for_initialization): Don't 1350: strip NOP_EXPRs, when we are converting to a reference. 1351: 1352: Wed Jun 1 01:11:38 1994 Jason Merrill ([email protected]) 1353: 1354: * typeck.c (build_modify_expr): Don't dereference references when 1355: initializing them. 1356: 1357: * decl2.c (grokfield): Don't check for grokdeclarator returning 1358: error_mark_node any more. 1359: 1360: * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node. 1361: (start_method): Return void_type_node instead of error_mark_node. 1362: 1363: * typeck.c (build_modify_expr): Resolve offset refs earlier. 1364: 1365: Tue May 31 16:06:58 1994 Jason Merrill ([email protected]) 1366: 1367: * call.c (build_method_call): Resolve OFFSET_REFs in the object. 1368: 1369: * typeck.c (build_modify_expr): Dereference references before trying 1370: to assign to them. 1371: 1372: * call.c (build_method_call): Don't confuse type conversion 1373: operators with constructors. 1374: * typeck2.c (build_functional_cast): Just call build_c_cast if there 1375: was only one parameter. 1376: * method.c (build_typename_overload): Don't set 1377: IDENTIFIER_GLOBAL_VALUE on these identifiers. 1378: * decl.c (grok_op_properties): Warn about defining a type conversion 1379: operator that converts to a base class (or reference to it). 1380: * cvt.c (cp_convert): Don't try to use a type conversion operator 1381: when converting to a base class. 1382: (build_type_conversion_1): Don't call constructor_name_full on an 1383: identifier. 1384: * cp-tree.h (DERIVED_FROM_P): Should be self-explanatory. 1385: 1386: * decl.c (start_decl): Don't complain that error_mark_node is an 1387: incomplete type. 1388: (finish_decl): Check for type == error_mark_node. 1389: 1390: Mon May 30 23:38:55 1994 Jason Merrill ([email protected]) 1391: 1392: * decl.c (start_function): Set DECL_DEFER_OUTPUT on implicit 1393: instantiations and inline members. 1394: 1395: * spew.c (yylex): Set looking_for_template if the next token is a '<'. 1396: 1397: * lex.h: Declare looking_for_template. 1398: 1399: * decl.c (lookup_name_real): Use looking_for_template to arbitrate 1400: between type and template interpretations of an identifier. 1401: 1402: Sat May 28 04:07:40 1994 Jason Merrill ([email protected]) 1403: 1404: * pt.c (instantiate_template): Zero out p if we found a 1405: specialization. 1406: 1407: * decl.c (grokdeclarator): Elucidate warning. 1408: (grokdeclarator): If pedantic AND -ansi, complain about long long. 1409: 1410: Make explicit instantiation work reasonably. It is now appropriate 1411: to deprecate the use of -fexternal-templates. 1412: * pt.c (instantiate_template): Set DECL_TEMPLATE_SPECIALIZATION or 1413: DECL_IMPLICIT_INSTANTIATION on fndecl as appropriate. 1414: (end_template_instantiation): Reflect changes in USE_TEMPLATE 1415: semantics. 1416: (do_pending_expansions): if (!flag_implicit_templates) DECIDE(0); 1417: (do_function_instantiation): Don't set EXPLICIT_INST if 1418: flag_external_templates is set. Do set TREE_PUBLIC and DECL_EXTERN 1419: appropriately otherwise. 1420: (do_type_instantiation): Set interface info for class. Set 1421: TREE_PUBLIC and DECL_EXTERN for methods. Do none of this if 1422: flag_external_templates is set. 1423: * parse.y: Reflect changes in USE_TEMPLATE semantics. 1424: * decl2.c: New flag flag_implicit_templates determines whether or 1425: not implicit instantiations get emitted. This flag currently 1426: defaults to true, and must be true for -fexternal-templates to work. 1427: (finish_file): Consider flag_implement_inlines when 1428: setting DECL_EXTERNAL. Consider flag_implicit_templates when 1429: deciding whether or not to emit a static copy. 1430: * decl.c (start_function): Set TREE_PUBLIC and DECL_EXTERNAL 1431: properly for template instantiations. 1432: (start_method): Set DECL_IMPLICIT_INSTANTIATION on methods of a 1433: template class. 1434: * cp-tree.h (CLASSTYPE_USE_TEMPLATE): Change semantics. 1435: (DECL_USE_TEMPLATE): Parallel macro for FUNCTION and VAR_DECLs. 1436: (various others): Accessor macros for the above. 1437: 1438: Fri May 27 13:57:40 1994 Jason Merrill ([email protected]) 1439: 1440: * typeck.c (build_binary_op_nodefault): Division by constant zero is 1441: an error. 1442: 1443: Fri May 27 13:50:15 1994 Mike Stump ([email protected]) 1444: 1445: * class.c (override_one_vtable): Don't modify things we don't own. 1446: 1447: Fri May 27 01:42:58 1994 Jason Merrill ([email protected]) 1448: 1449: * decl.c (finish_decl): Don't postpone processing the initializer of 1450: a decl with DECL_EXTERNAL set, and do call rest_of_compilation for a 1451: PUBLIC const at toplevel. 1452: (grokdeclarator): pedwarn about initializing non-const or 1453: non-integral statics in the class body. 1454: 1455: * decl.c (pushtag): Don't try to set DECL_CLASS_CONTEXT on a 1456: TYPE_DECL. 1457: 1458: * call.c (convert_harshness): Dereference reference on rhs before 1459: proceeding, properly grok passing const things to non-const 1460: references. 1461: 1462: * typeck.c (build_unary_op): Soften error about taking the address 1463: of main() to a pedwarn. 1464: 1465: * lex.c (default_copy_constructor_body): Unambiguously specify base 1466: classes (i.e. A((const class ::A&)_ctor_arg) ). 1467: (default_assign_ref_body): Ditto. 1468: 1469: Thu May 26 13:13:55 1994 Gerald Baumgartner ([email protected]) 1470: 1471: * decl2.c (grokfield): Don't complain about local signature 1472: method declaration without definition. 1473: 1474: * call.c (convert_harshness): If `type' is a signature pointer 1475: and `parmtype' is a pointer to a signature, just return 0. We 1476: don't really convert in this case; it's a result of making the 1477: `this' parameter of a signature method a signature pointer. 1478: 1479: * call.c (build_method_call): Distinguish calling the default copy 1480: constructor of a signature pointer/reference from a signature 1481: member function call. 1482: 1483: Thu May 26 12:56:25 1994 Jason Merrill ([email protected]) 1484: 1485: * decl2.c (grokfield): Don't set TREE_PUBLIC on member function 1486: declarations. 1487: 1488: * decl.c (duplicate_decls): A previous function declaration as 1489: static overrides a subsequent non-static definition. 1490: (grokdeclarator): Don't set TREE_PUBLIC on inline method 1491: declarations. 1492: 1493: Wed May 25 14:36:38 1994 Jason Merrill ([email protected]) 1494: 1495: * decl.c (grokdeclarator): Handle initialization of static const 1496: members. 1497: (finish_decl): Ditto. 1498: 1499: * decl2.c (grokfield): Allow initialization of static const members 1500: even when pedantic. 1501: 1502: * decl2.c (grokfield): Deal with grokdeclarator returning 1503: error_mark_node. 1504: 1505: * decl.c (grok_ctor_properties): Return 0 for A(A) constructor. 1506: (grokfndecl): Check the return value of grok_ctor_properties. 1507: (start_method): Ditto. 1508: 1509: * parse.y (absdcl): Expand type_quals inline. 1510: 1511: Tue May 24 19:10:32 1994 Jason Merrill ([email protected]) 1512: 1513: * decl.c (pushtag): Use IS_AGGR_TYPE rather than checking for a 1514: RECORD_TYPE. 1515: 1516: Tue May 24 18:09:16 1994 Per Bothner ([email protected]) 1517: 1518: * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks, 1519: always use "__vt_%s". 1520: * decl2.c (finish_vtable_vardecl): Don't consider abstract virtuals 1521: when looking for a "sentinal" method (to decide on emitting vtables). 1522: * decl2.c (finish_file): Scan all decls for thunks that need 1523: to be emitted. 1524: * decl2.c (finish_vtable_vardecl): Don't bother calling emit_thunk. 1525: * method.c (make_thunk): Use a more meaningful label. If there 1526: exists a matching top-level THUNK_DECL re-use it; otherwise 1527: create a new THUNK_DECL (and declare it). 1528: * method.c (emit_thunk): Make thunk external/public depending 1529: on the underlying method. 1530: 1531: Tue May 24 00:22:04 1994 Jason Merrill ([email protected]) 1532: 1533: * pt.c (tsubst): Use lookup_name_nonclass to find guiding decls, not 1534: lookup_name. 1535: 1536: * call.c (build_overload_call_real): Don't immediately pick a 1537: function which matches perfectly. 1538: 1539: * decl.c (grokdeclarator): Use c_build_type_variant for arrays. 1540: (grokdeclarator): Warn about, and throw away, cv-quals attached to a 1541: reference (like 'int &const j'). 1542: 1543: * typeck.c (convert_arguments): Don't mess with i for methods. 1544: * call.c (build_method_call): Pass the function decl to 1545: convert_arguments. 1546: 1547: * typeck.c (comp_ptr_ttypes_real): New function. Implements the 1548: checking for which multi-level pointer conversions are allowed. 1549: (comp_target_types): Call it. 1550: (convert_for_assignment): Check const parity on the ultimate target 1551: type, too. And make those warnings pedwarns. 1552: 1553: Mon May 23 14:11:24 1994 Jason Merrill ([email protected]) 1554: 1555: * error.c (dump_char): Use TARGET_* for character constants. 1556: 1557: Mon May 23 13:03:03 1994 Brendan Kehoe ([email protected]) 1558: 1559: * tree.c (debug_no_list_hash): Make static. 1560: 1561: * decl.c (decls_match): Say the types don't match if newdecl ends up 1562: with a null type, after we've checked if olddecl does. 1563: (pushdecl): Check if the decls themselves match before looking for 1564: an extern redeclared as static, to avoid inappropriate and incorrect 1565: warnings. 1566: 1567: Fri May 20 14:04:34 1994 Jason Merrill ([email protected]) 1568: 1569: * decl.c (grokdeclarator): Make warning about duplicate short, etc. 1570: a pedwarn. 1571: 1572: * typeck.c (build_c_cast): Casting to function or method type is an 1573: error. 1574: 1575: * class.c (finish_struct): Make warning for anonymous class with no 1576: instances a pedwarn. 1577: 1578: * Makefile.in (stamp-parse): Expect a s/r conflict. 1579: 1580: * typeck.c (build_modify_expr): pedwarn about using a non-lvalue 1581: cast as an lvalue. 1582: 1583: Thu May 19 12:08:48 1994 Jason Merrill ([email protected]) 1584: 1585: * cvt.c (type_promotes_to): Make sure bool promotes to int rather 1586: than unsigned on platforms where sizeof(char)==sizeof(int). 1587: 1588: Wed May 18 14:27:06 1994 Jason Merrill ([email protected]) 1589: 1590: * typeck.c (build_c_cast): Tack on a NOP_EXPR when casting to 1591: another variant. 1592: (build_modify_expr): Don't strip NOP_EXPRs, and don't get tricky 1593: and treat them as lvalues. 1594: 1595: * decl.c (shadow_tag): Do complain about forward declarations of 1596: enums and empty declarations. 1597: * parse.y: Don't complain about forward declarations of enums and 1598: empty declarations. 1599: 1600: * typeck.c (convert_for_assignment): Complain about changing 1601: the signedness of a pointer's target type. 1602: 1603: * parse.y (stmt): Move duplicated code for checking case values from 1604: here. 1605: * decl2.c (check_cp_case_value): To here. And add a call to 1606: constant_expression_warning. 1607: 1608: * typeck.c (convert_for_assignment): Don't complain about assigning 1609: a negative value to bool. 1610: 1611: * decl.c (init_decl_processing): Make bool unsigned. 1612: 1613: * class.c (finish_struct): Allow bool bitfields. 1614: 1615: Wed May 18 12:35:27 1994 Ian Lance Taylor ([email protected]) 1616: 1617: * Make-lang.in (c++.install-man): Get g++.1 from $(srcdir)/cp. 1618: 1619: Wed May 18 03:28:35 1994 Jason Merrill ([email protected]) 1620: 1621: * cvt.c (build_type_conversion): Lose special handling of 1622: truthvalues. 1623: 1624: * search.c (dfs_pushdecls): Improve shadowing warning. 1625: 1626: Tue May 17 13:34:46 1994 Jason Merrill ([email protected]) 1627: 1628: * init.c (build_delete): Throw away const and volatile on `this'. 1629: 1630: * decl.c (finish_enum): Put the constants in TYPE_VALUES again, 1631: rather than the enumerators. 1632: (pushtag): s/cdecl/c_decl/g 1633: 1634: Mon May 16 23:04:01 1994 Stephen R. van den Berg ([email protected]) 1635: 1636: * cp/typeck.c (common_type): Attribute merging. 1637: (comp_types): Utilise COMP_TYPE_ATTRIBUTES macro. 1638: 1639: * cp/parse.y: Revamp attribute parsing. 1640: 1641: Mon May 16 01:40:34 1994 Jason Merrill ([email protected]) 1642: 1643: * decl.c (shadow_tag): Also check for inappropriate use of auto and 1644: register. 1645: 1646: * method.c (build_overload_name): Clarify that the illegal case is a 1647: pointer or reference to array of unknown bound. 1648: 1649: * error.c (dump_type_prefix): Print references to arrays properly. 1650: 1651: * typeck.c (various): Be more helpful in pointer 1652: comparison diagnostics. 1653: 1654: * tree.c (lvalue_p): MODIFY_EXPRs are lvalues again. Isn't this 1655: fun? 1656: 1657: * parse.y: Also catch an error after valid stmts. 1658: 1659: * search.c (dfs_init_vbase_pointers): Don't abort because `this' is 1660: const. 1661: 1662: * typeck.c (convert_for_initialization): If call to 1663: convert_to_reference generated a diagnostic, print out the parm 1664: number and function decl if any. 1665: 1666: * errfn.c (cp_thing): Check atarg1 to determine whether or not we're 1667: specifying a line, not atarg. 1668: 1669: * tree.c (build_cplus_method_type): Always make `this' const. 1670: 1671: * decl2.c (grokclassfn): If -fthis-is-variable and this function is 1672: a constructor or destructor, make `this' non-const. 1673: 1674: * typeck.c (build_modify_expr): Don't warn specially about 1675: assignment to `this' here anymore, since it will be caught by the 1676: usual machinery. 1677: 1678: * various: Disallow specific GNU extensions (variable-size arrays, 1679: etc.) when flag_ansi is set, not necessarily when pedantic is set, 1680: so that people can compile with -pedantic-errors for tighter const 1681: checking and such without losing desirable extensions. 1682: 1683: * typeck2.c (build_functional_cast): Call build_method_call with 1684: LOOKUP_PROTECT. 1685: (process_init_constructor): Only process FIELD_DECLs. 1686: 1687: * decl.c (finish_decl): Also force static consts with no explicit 1688: initializer that need constructing into the data segment. 1689: 1690: * init.c (build_delete): Undo last patch, as it interferes with 1691: automatic cleanups. 1692: 1693: Sat May 14 01:59:31 1994 Jason Merrill ([email protected]) 1694: 1695: * call.c, class.h, cp-tree.h, cvt.c, decl2.c: Lose old overloading 1696: code. 1697: 1698: * init.c (build_delete): pedwarn about using plain delete to delete 1699: an array. 1700: 1701: Fri May 13 16:45:07 1994 Jason Merrill ([email protected]) 1702: 1703: * typeck.c (comp_target_types): Be more helpful in contravariance 1704: warnings, and make them pedwarns. 1705: 1706: * decl.c (grokdeclarator): Use decl_context to decide whether or not 1707: this is an access declaration. 1708: 1709: * class.c (finish_struct_bits): Set TYPE_HAS_INT_CONVERSION if it 1710: has a conversion to enum or bool, too. 1711: 1712: Fri May 13 16:31:27 1994 Mike Stump ([email protected]) 1713: 1714: * method.c (emit_thunk): Make declaration for 1715: current_call_is_indirect local (needed for hppa). 1716: 1717: Fri May 13 16:16:37 1994 Jason Merrill ([email protected]) 1718: 1719: * pt.c (uses_template_parms): Grok BOOLEAN_TYPE. 1720: (tsubst): Ditto. 1721: 1722: Fri May 13 16:23:32 1994 Mike Stump ([email protected]) 1723: 1724: * pt.c (tsubst): If there is already a function for this expansion, 1725: use it. 1726: * pt.c (instantiate_template): Ditto. 1727: 1728: Fri May 13 10:30:42 1994 Brendan Kehoe ([email protected]) 1729: 1730: * parse.y (implicitly_scoped_stmt, simple_stmt case): Use 1731: kept_level_p for MARK_ENDS argument to expand_end_bindings, to avoid 1732: generating debug info for unemitted symbols on some systems. 1733: 1734: * cp-tree.h (build_static_cast, build_reinterpret_cast, 1735: build_const_cast): Add declarations. 1736: 1737: Fri May 13 09:50:31 1994 Mike Stump ([email protected]) 1738: 1739: * search.c (expand_indirect_vtbls_init): Fix breakage from Apr 27 1740: fix. We now try get_binfo, and if that doesn't find what we want, 1741: we go back to the old method, which still sometimes fails. 1742: 1743: Fri May 13 01:43:18 1994 Jason Merrill ([email protected]) 1744: 1745: * parse.y (initdcl): Call cplus_decl_attributes on the right 1746: variable. 1747: * decl2.c (cplus_decl_attributes): Don't call decl_attributes for 1748: void_type_node. 1749: 1750: * typeck.c (build_binary_op_nodefault): Change result_type for 1751: comparison ops to bool. 1752: (build_binary_op): Convert args of && and || to bool. 1753: * cvt.c (build_default_binary_type_conversion): Convert args of && 1754: and || to bool. 1755: (build_default_unary_type_conversion): Convert arg of ! to bool. 1756: (type_promotes_to): bool promotes to int. 1757: 1758: Fri May 13 01:43:18 1994 Mike Stump ([email protected]) 1759: 1760: Implement the new builtin `bool' type. 1761: * typeck.c (build_binary_op_nodefault): Convert args of && and || to 1762: bool. 1763: (build_unary_op): Convert arg of ! to bool. 1764: * parse.y: Know true and false. Use bool_truthvalue_conversion. 1765: * method.c (build_overload_value): Know bool. 1766: (build_overload_name): Ditto. 1767: * lex.c (init_lex): Set up RID_BOOL. 1768: * gxx.gperf: Add bool, true, false. 1769: * error.c (*): Know bool. 1770: * decl.c (init_decl_processing): Set up bool, true, false. 1771: * cvt.c (cp_convert): Handle conversion to bool. 1772: (build_type_conversion): Ditto. 1773: * *.c: Accept bool where integers and enums are accepted (use 1774: INTEGRAL_CODE_P macro). 1775: 1776: Thu May 12 19:13:54 1994 Richard Earnshaw ([email protected]) 1777: 1778: * g++.c: Use #ifdef for __MSDOS__, not #if. 1779: 1780: Thu May 12 18:05:18 1994 Mike Stump ([email protected]) 1781: 1782: * decl2.c (lang_f_options): Handle -fshort-temps. -fshort-temps 1783: gives old behavior , and destroys temporaries earlier. Default 1784: behavior now conforms to the ANSI working paper. 1785: 1786: Thu May 12 14:45:35 1994 Jason Merrill ([email protected]) 1787: 1788: * typeck.c (build_modify_expr): Understand MODIFY_EXPR as an lvalue. 1789: Use convert_force to convert the result of a recursive call when we 1790: are dealing with a NOP_EXPR. Don't automatically wrap MODIFY_EXPRs 1791: in COMPOUND_EXPRs any more. 1792: (various): Lose pedantic_lvalue_warning. 1793: (unary_complex_lvalue): Understand MODIFY_EXPR. 1794: 1795: * cvt.c (convert_to_reference): Allow DECL to be error_mark_node if 1796: we don't know what we're initializing. 1797: 1798: Wed May 11 01:59:36 1994 Jason Merrill ([email protected]) 1799: 1800: * cvt.c (convert_to_reference): Modify to use convtype parameter. 1801: Only create temporaries when initializing a reference, not when 1802: casting. 1803: (cp_convert): New main function. 1804: (convert): Call cp_convert. 1805: * cvt.c, decl.c, typeck.c: Fix calls to convert_to_reference. 1806: * cp-tree.h (CONV_*): New constants used by conversion code for 1807: selecting conversions to perform. 1808: 1809: * tree.c (lvalue_p): MODIFY_EXPRs are no longer lvalues. 1810: 1811: * typeck.c (build_{static,reinterpret,const_cast): Stubs that just 1812: call build_c_cast. 1813: * parse.y: Add {static,reinterpret,const}_cast. 1814: * gxx.gperf: Ditto. 1815: 1816: * typeck.c (common_type): Allow methods with basetypes of different 1817: UPTs. 1818: (comptypes): Deal with UPTs. 1819: (build_modify_expr): Wrap all MODIFY_EXPRs in a COMPOUND_EXPR. 1820: 1821: * pt.c (end_template_decl): Check for multiple definitions of member 1822: templates. 1823: 1824: * call.c (build_method_call): Complain about calling an abstract 1825: virtual from a constructor. 1826: 1827: * typeck.c (pointer_int_sum): Check for the integer operand being 0 1828: after checking the validity of the pointer operand. 1829: 1830: * typeck2.c (digest_init): Pedwarn about string initializer being 1831: too long. 1832: 1833: Tue May 10 12:10:28 1994 Jason Merrill ([email protected]) 1834: 1835: * decl.c (push_overloaded_decl): Only throw away a builtin if the 1836: decl in question is the artificial one. 1837: 1838: * parse.y (simple_stmt, switch): Use implicitly_scoped_stmt because 1839: expand_{start,end}_case cannot happen in the middle of a block. 1840: 1841: * cvt.c (build_type_conversion_1): Use convert again. 1842: 1843: Tue May 10 11:52:04 1994 Brendan Kehoe ([email protected]) 1844: 1845: * typeck2.c (digest_init): Make sure we check for signed and 1846: unsigned chars as well when warning about string initializers. 1847: 1848: * init.c (emit_base_init): Check if there's a DECL_NAME on the 1849: member before trying to do an initialization for it. 1850: 1851: Tue May 10 11:34:37 1994 Mike Stump ([email protected]) 1852: 1853: * except.c: Don't do anything useful when cross compiling. 1854: 1855: Tue May 10 03:04:13 1994 Jason Merrill ([email protected]) 1856: 1857: * decl.c (duplicate_decls): Fix up handling of builtins yet again. 1858: (push_overloaded_decl): Ditto. 1859: 1860: * cvt.c (convert): Don't look for void type conversion. 1861: 1862: Mon May 9 18:05:41 1994 Jason Merrill ([email protected]) 1863: 1864: * init.c (do_friend): Only do a pushdecl for friends, not 1865: pushdecl_top_level. 1866: 1867: Mon May 9 13:36:34 1994 Jim Wilson ([email protected]) 1868: 1869: * decl.c (lookup_name_current_level): Put empty statement after 1870: the label OUT to make the code valid C. 1871: 1872: Mon May 9 12:20:57 1994 Jason Merrill ([email protected]) 1873: 1874: * typeck.c (build_binary_op_nodefault): Only complain about 1875: comparing void * and a function pointer if void * is smaller. 1876: 1877: Sun May 8 01:29:13 1994 Jason Merrill ([email protected]) 1878: 1879: * decl.c (lookup_name_current_level): Move through temporary binding 1880: levels. 1881: 1882: * parse.y (already_scoped_stmt): Revive. 1883: (simple_stmt): Use it again. 1884: 1885: * decl.c (poplevel): Always call poplevel recursively if we're 1886: dealing with a temporary binding level. 1887: 1888: Sat May 7 10:52:28 1994 Mike Stump ([email protected]) 1889: 1890: * decl.c (finish_decl): Make sure we run cleanups for initial values 1891: of decls. Cures memory leak. 1892: * decl.c (expand_static_init): Ditto for static variables. 1893: * decl2.c (finish_file): Ditto for globals. 1894: 1895: Sat May 7 03:57:44 1994 Jason Merrill ([email protected]) 1896: 1897: * typeck.c (commonparms): Don't complain about redefining default 1898: args. 1899: 1900: * decl.c (duplicate_decls): Don't complain twice about conflicting 1901: function decls. 1902: (decls_match): Don't look at default args. 1903: (redeclaration_error_message): Complain about redefining default 1904: args. 1905: 1906: * call.c (build_overload_call_real): Also deal with guiding 1907: declarations coming BEFORE the template decl. 1908: 1909: * pt.c (unify): Allow different parms to have different 1910: cv-qualifiers. 1911: (unify): Allow trivial conversions on non-template parms. 1912: 1913: Fri May 6 03:53:23 1994 Jason Merrill ([email protected]) 1914: 1915: * pt.c (tsubst): Support OFFSET_TYPEs. 1916: (unify): Ditto. 1917: 1918: * decl2.c (finish_decl_parsing): Call push_nested_class with a type. 1919: 1920: * init.c (build_offset_ref): Fix error message. 1921: * search.c (lookup_field): Ditto. 1922: 1923: * call.c (build_scoped_method_call): Pass binfo to 1924: build_method_call. 1925: * typeck.c (build_object_ref): Ditto. 1926: 1927: * typeck2.c (binfo_or_else): Don't return a _TYPE. 1928: 1929: * class.c (finish_struct): Don't complain about re-use of inherited 1930: names or shadowing of type decls. 1931: * decl.c (pushdecl_class_level): Ditto. 1932: 1933: * decl.c (finish_enum): Set the type of all the enums. 1934: 1935: * class.c (finish_struct): Don't get confused by access decls. 1936: 1937: * cp-tree.h (TYPE_MAIN_DECL): New macro to get the _DECL for a 1938: _TYPE. You can stop using TYPE_NAME for that now. 1939: 1940: * parse.y: Lose doing_explicit (check $0 instead). 1941: * gxx.gperf: 'template' now has a RID. 1942: * lex.h (rid): Ditto. 1943: * lex.c (init_lex): Set up the RID for 'template'. 1944: 1945: * parse.y (type_specifier_seq): typed_typespecs or 1946: nonempty_type_quals. Use it. 1947: (handler_args): Fix bogus syntax. 1948: (raise_identifier{,s}, optional_identifier): Lose. 1949: * except.c (expand_start_catch_block): Use grokdeclarator to parse 1950: the catch variable. 1951: (init_exception_processing): The second argument to 1952: __throw_type_match is ptr_type_node. 1953: 1954: Fri May 6 07:18:54 1994 Chip Salzenberg (chip@fin) 1955: 1956: [ change propagated from c-decl.c of snapshot 940429 ] 1957: * cp/decl.c (finish_decl): Setting asmspec_tree should not 1958: zero out the old RTL. 1959: 1960: Fri May 6 01:25:38 1994 Mike Stump ([email protected]) 1961: 1962: Add alpha exception handling support to the compiler. 1963: Quick and dirty backend in except.c. 1964: 1965: * cp/*: Remove most remnants of old exception handling support. 1966: * decl.c (finish_function): Call expand_exception_blocks to put 1967: the exception hanlding blocks at the end of the function. 1968: * dec.c (hack_incomplete_structures): Make sure expand_decl_cleanup 1969: comes after expand_decl_init. 1970: * except.c: Reimplementation. 1971: * expr.c (cplus_expand_expr): Handle THROW_EXPRs. 1972: * lex.c (init_lex): Always have catch, try and throw be reserved 1973: words, so that we may always parse exception handling. 1974: * parse.y: Cleanup to support new interface into exception handling. 1975: * tree.def (THROW_EXPR): Add. 1976: 1977: Thu May 5 17:35:37 1994 Jason Merrill ([email protected]) 1978: 1979: * parse.y (simple_stmt, for loops): Use implicitly_scoped_stmt. 1980: (various): Lose .kindof_pushlevel and partially_scoped_stmt. 1981: 1982: Thu May 5 16:17:27 1994 Kung Hsu ([email protected]) 1983: 1984: * parse.y (already_scoped_stmt): move expand_end_binding() to 1985: fix the unmatched LBB/LBE in stabs. 1986: 1987: Thu May 5 14:36:17 1994 Jason Merrill ([email protected]) 1988: 1989: * decl.c (set_nested_typename): Set TREE_MANGLED on the new 1990: identifiers. 1991: (pushdecl): Check TREE_MANGLED. 1992: (xref_tag): Ditto. 1993: * cp-tree.h (TREE_MANGLED): This identifier is a 1994: DECL_NESTED_TYPENAME (named to allow for future use to denote 1995: mangled function names as well). 1996: 1997: Implement inconsistency checking specified in [class.scope0]. 1998: * decl.c (lookup_name_real): Don't set ICV here after all. 1999: (finish_enum): Also set the type of the enumerators themselves. 2000: (build_enumerator): Put the CONST_DECL in the list instead of its 2001: initial value. 2002: (pushdecl_class_level): Check inconsistent use of a name in the 2003: class body. 2004: * class.c (finish_struct): Check inconsistent use of a name in the 2005: class body. Don't set DECL_CONTEXT on types here anymore. 2006: * parse.y (qualified_type_name): Note that the identifier has now 2007: been used (as a type) in the class body. 2008: * lex.c (do_identifier): Note that the identifier has now been used 2009: (as a constant) in the class body. 2010: * error.c (dump_decl): Print type and enum decls better. 2011: 2012: Thu May 5 09:35:35 1994 Brendan Kehoe ([email protected]) 2013: 2014: * typeck.c (build_modify_expr): Warn about assignment to `this'. 2015: 2016: Wed May 4 15:55:49 1994 Jason Merrill ([email protected]) 2017: 2018: * init.c (build_delete): Use the global operator delete when 2019: requested. 2020: 2021: * decl.c (lookup_name_real): If we find the type we're looking in a 2022: base class while defining a class, set IDENTIFIER_CLASS_VALUE for 2023: the type. 2024: 2025: * class.c (finish_struct): Remove a couple of dependencies on 2026: language linkage. 2027: 2028: * decl.c (pushtag): Classes do nest in extern "C" blocks. 2029: (pushdecl): Only set DECL_NESTED_TYPENAME on the canonical one for 2030: the type. 2031: (pushtag): Remove another dependency on the language linkage. 2032: 2033: * lex.c (cons_up_default_function): Don't set DECL_CLASS_CONTEXT to 2034: a const-qualified type. 2035: 2036: * decl.c (push_overloaded_decl): Throw away built-in decls here. 2037: (duplicate_decls): Instead of here. 2038: 2039: Wed May 4 15:27:40 1994 Per Bothner ([email protected]) 2040: 2041: * typeck.c (get_member_function_from_ptrfunc): Do The Right 2042: Thing (I hope) if we're using thunks. 2043: 2044: Wed May 4 13:52:38 1994 Jason Merrill ([email protected]) 2045: 2046: * parse.y (specialization): aggr template_type_name ';'. 2047: (named_class_head_sans_basetype): Use it. 2048: (explicit_instantiation): Ditto. 2049: (tmpl.2): Revert. 2050: 2051: * cvt.c (build_type_conversion_1): Use convert_for_initialization, 2052: rather than convert, to do conversions after the UDC. 2053: 2054: * cp-tree.h (SHARED_MEMBER_P): This member is shared between all 2055: instances of the class. 2056: 2057: * search.c (lookup_field): If the entity found by two routes is the 2058: same, it's not ambiguous. 2059: 2060: Wed May 4 12:10:00 1994 Per Bothner ([email protected]) 2061: 2062: * decl.c (lookup_name_real): Check for a NULL TREE_VALUE, 2063: to prevent the compiler from crashing ... 2064: 2065: Wed May 4 11:19:45 1994 Jason Merrill ([email protected]) 2066: 2067: * call.c (build_method_call): If we don't have an object, check 2068: basetype_path to figure out where to look up the function. 2069: 2070: * typeck.c (convert_for_initialization): Pass TYPE_BINFO (type) to 2071: build_method_call in case exp is NULL_TREE. 2072: 2073: Tue May 3 16:02:53 1994 Per Bothner ([email protected]) 2074: 2075: Give a vtable entries a unique named type, for the sake of gdb. 2076: * class.c (build_vtable_entry): The addres of a thunk now has 2077: type vtable_entry_type, not ptr_type_node. 2078: * method.c (make_thunk): Fix type of THUNK_DECL. 2079: * class.c (add_virtual_function, override_one_vtable): Use 2080: vfunc_ptr_type_node, instead of ptr_type_node. 2081: * cp-tree.h (vfunc_ptr_type_node): New macro. 2082: * decl.c (init_decl_processing): Make vtable_entry_type 2083: be a unique type of pointer to a unique function type. 2084: 2085: Tue May 3 09:20:44 1994 Jason Merrill ([email protected]) 2086: 2087: * parse.y (do_explicit): Sets doing_explicit to 1. 2088: (explicit_instantiation): Use do_explicit rather than TEMPLATE 2089: directly, add "do_explicit error" rule. 2090: (datadef): Set doing_explicit to 0 after an explicit instantiation. 2091: (tmpl.2): Don't instantiate if we see a ';' unless we're doing an 2092: explicit instantiation. 2093: (named_class_head_sans_basetype): Remove aggr template_type_name 2094: ';' again. 2095: 2096: Mon May 2 23:17:21 1994 Jason Merrill ([email protected]) 2097: 2098: * search.c (lookup_nested_tag): Lose. 2099: 2100: * decl2.c (grokfield): Set DECL_CONTEXT on TYPE_DECLs. 2101: (lookup_name_nonclass): Lose. 2102: 2103: * decl.c (poplevel_class): Add force parameter. 2104: (lookup_name_real): Fix handling of explicit scoping which specifies 2105: a class currently being defined. Add 'nonclass' argument. 2106: (lookup_name, lookup_name_nonclass): Shells for lookup_name_real. 2107: 2108: * class.c (finish_struct): Don't unset IDENTIFIER_CLASS_VALUEs here. 2109: (popclass): Force clearing of IDENTIFIER_CLASS_VALUEs if we're being 2110: called from finish_struct. 2111: 2112: Mon May 2 19:06:21 1994 Per Bothner ([email protected]) 2113: 2114: * decl.c (init_decl_processing), cp-tree.h: Removed memptr_type. 2115: (It seeems redundant, given build_ptrmemfunc_type.) 2116: * typeck.c (get_member_function_from_ptrfunc), gc.c (build_headof, 2117: build_classof): Use vtable_entry_type instead of memptr_type. 2118: * method.c (emit_thunk): Call poplevel with functionbody==0 2119: to prevent DECL_INITIAL being set to a BLOCK. 2120: 2121: Mon May 2 15:02:11 1994 Jason Merrill ([email protected]) 2122: 2123: * parse.y (named_class_head_sans_basetype): Add "aggr 2124: template_type_name ';'" rule for forward declaration of 2125: specializations. 2126: 2127: Mon May 2 15:02:11 1994 Jason Merrill ([email protected]) 2128: 2129: * class.c (instantiate_type): Deal with pmf's. 2130: 2131: * Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since 2132: stamp-objlist does. 2133: 2134: * Makefile.in (../cc1plus): Depend on OBJDEPS. 2135: (OBJDEPS): Dependency version of OBJS. 2136: 2137: Mon May 2 12:51:31 1994 Kung Hsu ([email protected]) 2138: 2139: * search.c (dfs_debug_mark): unmark TYPE_DECL_SUPPRESS_DEBUG, not 2140: DECL_IGNORED_P. 2141: 2142: Fri Apr 29 12:29:56 1994 Jason Merrill ([email protected]) 2143: 2144: * class.c (finish_struct): Clear out memory of local tags. And 2145: typedefs. 2146: 2147: * decl2.c (grokclassfn): Don't set DECL_CONTEXT to a cv-qualified 2148: type. 2149: * search.c (get_matching_virtual): Be more helpful in error message. 2150: 2151: * *: Use DECL_ARTIFICIAL (renamed from DECL_SYNTHESIZED). 2152: 2153: * lex.c (default_assign_ref_body): Expect TYPE_NESTED_NAME to work. 2154: (default_copy_constructor_body): Ditto. 2155: 2156: * class.c (finish_struct): Don't gratuitously create multiple decls 2157: for nested classes. 2158: 2159: Thu Apr 28 23:39:38 1994 Jason Merrill ([email protected]) 2160: 2161: Avoid clobbering the arg types of other functions when reverting 2162: static member functions. 2163: * decl.c (revert_static_member_fn): Rearrange arguments, don't 2164: require values for 'fn' and 'argtypes', add warning to comment 2165: above. 2166: (decls_match): Rearrange arguments in call to rsmf. 2167: (grok_op_properties): Don't pass values for fn and argtypes. 2168: * pt.c (instantiate_template): Don't pass values for fn and argtypes. 2169: 2170: Thu Apr 28 16:29:11 1994 Doug Evans ([email protected]) 2171: 2172: * Make-lang.in (cc1plus): Depend on stamp-objlist. 2173: * Makefile.in (BC_OBJS): Delete. 2174: (OBJS): Cat ../stamp-objlist to get language independent files. 2175: Include ../c-common.o. 2176: (../cc1plus): Delete reference to BC_OBJS. 2177: 2178: Thu Apr 28 02:12:08 1994 Jason Merrill ([email protected]) 2179: 2180: * search.c (compute_access): No really, deal with static members 2181: properly. Would I lie to you? 2182: 2183: Implement lexical hiding of function declarations. 2184: * pt.c (tsubst): Use lookup_name to look for function decls to guide 2185: instantiation. 2186: * method.c (build_opfncall): Use lookup_name_nonclass to look for 2187: non-member functions. 2188: * init.c (do_friend): Use lookup_name_nonclass to look for 2189: functions. 2190: * error.c (ident_fndecl): Use lookup_name to look for functions. 2191: * decl2.c (lookup_name_nonclass): New function, skips over 2192: CLASS_VALUE. 2193: * decl.c (struct binding_level): Lose overloads_shadowed field. 2194: (poplevel): Don't deal with overloads_shadowed. 2195: (push_overloaded_decl): Do lexical hiding for functions. 2196: * class.c (instantiate_type): Don't check non-members if we have 2197: members with the same name. 2198: * call.c (build_method_call): Use lookup_name_nonclass instead of 2199: IDENTIFIER_GLOBAL_VALUE to check for non-member functions. 2200: (build_overload_call_real): Ditto. 2201: 2202: * decl.c (duplicate_decls): Check for ambiguous overloads here. 2203: (push_overloaded_decl): Instead of here. 2204: 2205: * decl.c (pushdecl): Back out Chip's last change. 2206: 2207: * decl.c (grok_op_properties): operators cannot be static members. 2208: 2209: * cp-tree.h (DECL_SYNTHESIZED): DECL_SOURCE_LINE == 0 2210: (SET_DECL_SYNTHESIZED): DECL_SOURCE_LINE = 0 2211: * lex.c (cons_up_default_function): Use SET_DECL_SYNTHESIZED. 2212: 2213: * method.c (do_inline_function_hair): Don't put friends of local 2214: classes into global scope, either. 2215: 2216: * typeck2.c (build_functional_cast): Don't look for a function call 2217: interpretation. 2218: 2219: Thu Apr 28 15:19:46 1994 Mike Stump ([email protected]) 2220: 2221: * cp-tree.h: disable use of backend EH. 2222: 2223: Wed Apr 27 21:01:24 1994 Doug Evans ([email protected]) 2224: 2225: * Make-lang.in (c++.distdir): mkdir tmp/cp first. 2226: * Makefile.in (INCLUDES): Move definition to same place as 2227: parent makefile. 2228: (ALLOCA): Define. 2229: (OLDAR_FLAGS): Delete. 2230: (OLDCC): Define. 2231: (DIR): Delete. 2232: (CLIB): Define. 2233: (####site): Delete. 2234: (SUBDIR_USE_ALLOCA): Don't use ALLOCA if compiling with gcc. 2235: 2236: Wed Apr 27 19:10:04 1994 Kung Hsu ([email protected]) 2237: 2238: * decl.c (xref_tag): not to use strstr(), it's not available on 2239: all platforms. 2240: 2241: Wed Apr 27 18:10:12 1994 Jason Merrill ([email protected]) 2242: 2243: * class.c (finish_struct): Resolve yet another class/pmf confusion. 2244: 2245: * call.c (build_overload_call_real): Don't take the single-function 2246: shortcut if we're dealing with an overloaded operator. 2247: 2248: Wed Apr 27 17:35:37 1994 Mike Stump ([email protected]) 2249: 2250: * search.c (get_base_distance): Search the virtual base class 2251: binfos, incase someone wants to convert to a real virtual base 2252: class. 2253: * search.c (expand_indirect_vtbls_init): Use convert_pointer_to_real 2254: instead of convert_pointer_to, as it now will work. 2255: 2256: Wed Apr 27 15:36:49 1994 Jason Merrill ([email protected]) 2257: 2258: * cvt.c (convert_to_reference): Don't complain about casting away 2259: const and volatile. 2260: 2261: * typeck.c (build_unary_op): References are too lvalues. 2262: 2263: Wed Apr 27 13:58:05 1994 Mike Stump ([email protected]) 2264: 2265: * class.c (override_one_vtable): We have to prepare_fresh_vtable 2266: before we modify it, not after, also, we cannot reuse an old vtable, 2267: once we commit to a new vtable. Implement ambiguous overrides in 2268: virtual bases as abstract. Hack until we make the class 2269: ill-formed. 2270: 2271: Wed Apr 27 01:17:08 1994 Jason Merrill ([email protected]) 2272: 2273: * parse.y (unary_expr): Expand new_placement[opt] and 2274: new_initializer[opt] inline. 2275: 2276: * search.c (lookup_fnfields): Don't throw away the inheritance 2277: information here, either. 2278: (compute_access): Handle static members properly. 2279: 2280: * init.c (build_member_call): Always set basetype_path, and pass it 2281: to lookup_fnfields. 2282: 2283: * search.c (lookup_field): Deal properly with the case where 2284: xbasetype is a chain of binfos; don't throw away the inheritance 2285: information. 2286: (compute_access): protected_ok always starts out at 0. 2287: 2288: * init.c (resolve_offset_ref): Don't cast `this' to the base type 2289: until we've got our basetype_path. 2290: 2291: * cp-tree.h (IS_OVERLOAD_TYPE): aggregate or enum. 2292: 2293: * cvt.c (build_up_reference): Use build_pointer_type rather than 2294: TYPE_POINTER_TO. 2295: 2296: * call.c (convert_harshness_ansi): Call type_promotes_to for reals 2297: as well. 2298: 2299: * cvt.c (type_promotes_to): Retain const and volatile, add 2300: float->double promotion. 2301: 2302: * decl.c (grokdeclarator): Don't bash references to arrays into 2303: references to pointers in function parms. Use type_promotes_to. 2304: 2305: Tue Apr 26 23:44:36 1994 Mike Stump ([email protected]) 2306: 2307: Finish off Apr 19th work. 2308: 2309: * class.c (finish_struct_bits): Rename has_abstract_virtuals to 2310: might_have_abstract_virtuals. 2311: * class.c (strictly_overrides, override_one_vtable, 2312: merge_overrides): New routines to handle virtual base overrides. 2313: * class.c (finish_struct): Call merge_overrides to handle overrides 2314: in virtual bases. 2315: 2316: Tue Apr 26 12:45:53 1994 Jason Merrill ([email protected]) 2317: 2318: * typeck.c (build_function_call): Call build_function_call_real with 2319: LOOKUP_NORMAL. 2320: 2321: * *: Don't deal with TYPE_EXPRs. 2322: 2323: * tree.c (lvalue_p): If the type of the expression is a reference, 2324: it's an lvalue. 2325: 2326: * cvt.c (convert_to_reference): Complain about passing const 2327: lvalues to non-const references. 2328: (convert_from_reference): Don't arbitrarily throw away const and 2329: volatile on the target type. 2330: 2331: * parse.y: Simplify and fix rules for `new'. 2332: 2333: * decl.c (grok_op_properties): operator void is illegal. 2334: 2335: Mon Apr 25 02:36:28 1994 Jason Merrill ([email protected]) 2336: 2337: * parse.y (components): Anonymous bitfields can still have declspecs. 2338: 2339: * decl.c (pushdecl): Postpone handling of function templates like we 2340: do C functions. 2341: 2342: * search.c (expand_indirect_vtbls_init): Fix infinite loop when 2343: convert_pointer_to fails. 2344: 2345: * call.c (compute_conversion_costs_ansi): A user-defined conversion 2346: by itself is better than that UDC followed by standard conversions. 2347: Don't treat integers and reals specially. 2348: 2349: * cp-tree.h: Declare flag_ansi. 2350: 2351: * typeck.c (c_expand_return): pedwarn on return in void function 2352: even if the expression is of type void. 2353: (build_c_cast): Don't do as much checking for casts to void. 2354: (build_modify_expr): pedwarn about array assignment if this code 2355: wasn't generated by the compiler. 2356: 2357: * tree.c (lvalue_p): A comma expression is an lvalue if its second 2358: operand is. 2359: 2360: * typeck.c (default_conversion): Move code for promoting enums and 2361: ints from here. 2362: * cvt.c (type_promotes_to): To here. 2363: * call.c (convert_harshness_ansi): Use type_promotes_to. Also fix 2364: promotion semantics for reals. 2365: 2366: Sun Apr 24 16:52:51 1994 Doug Evans ([email protected]) 2367: 2368: * Make-lang.in (c++.install-common): Check for g++-cross. 2369: * Makefile.in: Remove Cygnus cruft. 2370: (config.status): Delete. 2371: (RTL_H): Define. 2372: (TREE_H): Use complete pathname, some native makes have minimal 2373: VPATH support. 2374: (*.o): Use complete pathname to headers in parent dir. 2375: (doc, info, dvi): Delete. 2376: 2377: Sun Apr 24 16:52:51 1994 Doug Evans ([email protected]) 2378: 2379: * Make-lang.in (c++.install-common): Check for g++-cross. 2380: * Makefile.in: Remove Cygnus cruft. 2381: (config.status): Delete. 2382: (RTL_H): Define. 2383: (TREE_H): Use complete pathname, some native makes have minimal 2384: VPATH support. 2385: (*.o): Use complete pathname to headers in parent dir. 2386: (doc, info, dvi): Delete. 2387: 2388: Sun Apr 24 00:47:49 1994 Jason Merrill ([email protected]) 2389: 2390: * decl.c (pushdecl): Avoid redundant warning on redeclaring function 2391: with different return type. 2392: (decls_match): Compare return types strictly. 2393: 2394: Fri Apr 22 12:55:42 1994 Jason Merrill ([email protected]) 2395: 2396: * cvt.c (build_type_conversion): Do try to convert through other 2397: pointers. This will fail if the class defines multiple pointer 2398: conversions. 2399: 2400: * error.c (dump_type_prefix): Print out pointers to arrays properly. 2401: (dump_type_suffix): Ditto. (was 'int *[]', now 'int (*)[]') 2402: 2403: * typeck.c (build_unary_op): Disallow ++/-- on pointers to 2404: incomplete type. 2405: 2406: * decl.c (duplicate_decls): Check mismatched TREE_CODES after 2407: checking for shadowing a builtin. If we're redeclaring a builtin 2408: function, bash the old decl to avoid an ambiguous overload. 2409: 2410: * cvt.c (convert_to_reference): Don't force arrays to decay here. 2411: 2412: * tree.c (lvalue_p): A MODIFY_EXPR is an lvalue. 2413: 2414: * decl.c (duplicate_decls): Don't assume that the decls will have 2415: types. 2416: 2417: Mon Apr 18 11:35:32 1994 Chip Salzenberg ([email protected]) 2418: 2419: [ cp/* changes propagated from c-* changes in 940318 snapshot ] 2420: * c-decl.c (pushdecl): Warn if type mismatch with another external decl 2421: in a global scope. 2422: 2423: Fri Apr 22 06:38:56 1994 Chip Salzenberg ([email protected]) 2424: 2425: * cp/typeck2.c (signature_error): Use cp_error for "%T". 2426: 2427: Mon Apr 18 11:59:59 1994 Chip Salzenberg ([email protected]) 2428: 2429: [ cp/* changes propagated from c-* changes in 940415 snapshot ] 2430: * cp/decl.c (duplicate_decls, pushdecl, builtin_function): 2431: Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE. 2432: 2433: Mon Apr 18 11:55:18 1994 Chip Salzenberg ([email protected]) 2434: 2435: [ cp/* changes propagated from c-* changes in 940409 snapshot ] 2436: * cp/decl.c (duplicate_decls): Put new type in same obstack as 2437: old ones, or permanent if old ones in different obstacks. 2438: 2439: Mon Apr 18 11:48:49 1994 Chip Salzenberg ([email protected]) 2440: 2441: [ cp/* changes propagated from c-* changes in 940401 snapshot ] 2442: * cp/parse.y (attrib): Handle string args as expressions, 2443: merging the two rules. `mode' attribute now takes a string arg. 2444: Delete the rule for an identifier as arg. 2445: 2446: Mon Apr 18 11:24:00 1994 Chip Salzenberg ([email protected]) 2447: 2448: [ cp/* changes propagated from c-* changes in 940312 snapshot ] 2449: * cp/typeck.c (pointer_int_sum): Multiplication should be done signed. 2450: (pointer_diff): Likewise the division. 2451: 2452: Sun Mar 6 19:43:39 1994 Chip Salzenberg ([email protected]) 2453: 2454: [ cp/* changes propagated from c-* changes in 940304 snapshot ] 2455: * cp/decl.c (finish_decl): Issue warning for large objects, 2456: if requested. 2457: 2458: Sat Feb 19 22:20:32 1994 Chip Salzenberg ([email protected]) 2459: 2460: [ cp/* changes propagated from c-* changes in 940218 snapshot ] 2461: * cp/parse.y (attrib): Handle attribute ((section ("string"))). 2462: * cp/decl.c (duplicate_decls): Merge section name into new decl. 2463: 2464: Tue Feb 8 09:49:17 1994 Chip Salzenberg ([email protected]) 2465: 2466: [ cp/* changes propagated from c-* changes in 940206 snapshot ] 2467: * cp/typeck.c (signed_or_unsigned_type): Check for any 2468: INTEGRAL_TYPE_P not just INTEGER_TYPE. 2469: 2470: Mon Dec 6 13:35:31 1993 Norbert Kiesel ([email protected]) 2471: 2472: * cp/decl.c (finish_enum): Start from 0 when determining precision 2473: for short enums. 2474: 2475: Fri Dec 3 17:07:58 1993 Ralph Campbell ([email protected]) 2476: 2477: * cp/parse.y (unary_expr): Look at $1 for tree_code rather than 2478: casting $$. 2479: 2480: Wed Nov 17 19:22:09 1993 Chip Salzenberg ([email protected]) 2481: 2482: * cp/typeck.c (build_binary_op_nodefault): Propagate code 2483: from C front-end to optimize unsigned short division. 2484: (build_conditional_expr): Fix bug in "1 ? 42 : (void *) 8". 2485: 2486: Wed Nov 17 19:17:18 1993 Chip Salzenberg ([email protected]) 2487: 2488: * cp/call.c (convert_harshness_ansi): Given an (e.g.) char 2489: constant, prefer 'const char &' to 'int'. 2490: 2491: Wed Feb 3 13:11:48 1993 Chip Salzenberg ([email protected]) 2492: 2493: * cp/class.c (finish_struct_methods): Handle multiple 2494: constructors in fn_fields list. 2495: 2496: Fri Apr 22 12:48:10 1994 Kung Hsu ([email protected]) 2497: 2498: * class.c (finish_struct): use TYPE_DECL_SUPPRESS_DEBUG to flag 2499: types not to be dumped in stabs, like types in #pragma interface. 2500: * decl.c (init_decl_processing): use TYPE_DECL_SUPPRESS_DEBUG to 2501: mark unknown type. 2502: 2503: Fri Apr 22 03:27:26 1994 Doug Evans ([email protected]) 2504: 2505: * Language directory reorganization. 2506: See parent makefile. 2507: 2508: Fri Apr 22 03:27:26 1994 Doug Evans ([email protected]) 2509: 2510: * Language directory reorganization. 2511: See parent makefile. 2512: 2513: Thu Apr 21 18:27:57 1994 Per Bothner ([email protected]) 2514: 2515: * cp-tree.h (THUNK_DELTA): It is normally negative, so 2516: use signed .i variant of frame_size rather than unsigned .u. 2517: * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks, 2518: use "VT" rather than "vt" due to binary incompatibility. 2519: * class.c (get_vtable_name): Use strlen of VTABLE_NAME_FORMAT, 2520: rather than sizeof, since it is now an expression. 2521: * class.c (modify_one_vtable): Modify to skip initial element 2522: containing a count of the vtable. 2523: 2524: Thu Apr 21 00:09:02 1994 Jason Merrill ([email protected]) 2525: 2526: * lex.c (check_newline): Force interface_unknown on main input file. 2527: 2528: * pt.c (do_pending_expansions): Always emit functions that have been 2529: explicitly instantiated. 2530: (do_function_instantiation): Set DECL_EXPLICITLY_INSTANTIATED. 2531: (do_type_instantiation): Set CLASSTYPE_VTABLE_NEEDS_WRITING and 2532: DECL_EXPLICITLY_INSTANTIATED on all my methods. 2533: * parse.y (explicit_instantiation): Call do_type_instantiation for 2534: types. 2535: * decl2.c (finish_vtable_vardecl): Call import_export_vtable. 2536: * decl.c (start_function): Don't set DECL_EXTERNAL on a function 2537: that has been explicitly instantiated. 2538: * cp-tree.h (DECL_EXPLICITLY_INSTANTIATED): Alias for 2539: DECL_LANG_FLAG_4. 2540: * class.c: Move import_export_vtable to decl2.c, and comment out all 2541: uses. 2542: 2543: Wed Apr 20 16:51:06 1994 Jason Merrill ([email protected]) 2544: 2545: * lex.c (process_next_inline): Don't muck with DECL_INLINE. 2546: (do_pending_inlines): Ditto. 2547: 2548: Tue Apr 19 22:25:41 1994 Mike Stump ([email protected]) 2549: 2550: Reimplement vtable building, and most vtable pointer setting. 2551: Allows for earier maintenance, easier understandability, and most 2552: importantly, correct semantics. 2553: 2554: * class.c (build_vtable): Removed unneeded 2555: SET_BINFO_VTABLE_PATH_MARKED. 2556: * class.c (prepare_fresh_vtable): Ditto. Added argument. 2557: * class.c (modify_vtable_entry): General cleanup. 2558: * class.c (related_vslot, is_normal, modify_other_vtable_entries, 2559: modify_vtable_entries): Removed. 2560: * class.c (add_virtual_function): General cleanup. 2561: * class.c (finish_base_struct): Setup BINFO_VTABLE and 2562: BINFO_VIRTUALS as early as we can, so that modify_all_vtables can 2563: work. 2564: * class.c (finish_vtbls): New routine, mostly from 2565: unmark_finished_struct. 2566: * class.c (overrides): New routine. 2567: * class.c (modify_one_vtable): New routine, mostly from 2568: modify_other_vtable_entries and modify_vtable_entries. 2569: * class.c (modify_all_direct_vtables, modify_all_indirect_vtables, 2570: modify_all_vtables): New routines. 2571: * class.c (finish_struct): Added arguemnt to prepare_fresh_vtable 2572: call. General cleanup on how pending_hard_virtuals are handled. 2573: General cleanup on modifying vtables. Use finish_vtbls, instead of 2574: unmark_finished_struct. 2575: * cp-tree.h (init_vtbl_ptrs, expand_direct_vtbls_init, 2576: get_first_matching_virtual, get_matching_virtual, 2577: expand_vbase_vtables_init, expand_indirect_vtbls_init): Update. 2578: * cvt.c (convert_pointer_to_real): cleanup error message. 2579: * decl.c (grokfndecl): General cleanup. 2580: * decl.c (finish_function): Change init_vtbl_ptrs call to 2581: expand_direct_vtbls_init. Change expand_vbase_vtables_init call to 2582: expand_indirect_vtbls_init. 2583: * init.c (expand_virtual_init): Remove unneeded argument. 2584: * init.c (init_vtbl_ptrs): Rename to expand_direct_vtbls_init, added 2585: two arguments to make more general. Made more general. Now can be 2586: used for vtable pointer initialization from virtual bases. 2587: * init.c (emit_base_init): Change expand_vbase_vtables_init call to 2588: expand_indirect_vtbls_init. Change init_vtbl_ptrs call to 2589: expand_direct_vtbls_init. 2590: * init.c (expand_virtual_init): General cleanup. 2591: * init.c (expand_default_init): Change expand_vbase_vtables_init 2592: call to expand_indirect_vtbls_init. 2593: * init.c (expand_recursive_init_1): Change expand_vbase_vtables_init 2594: call to expand_indirect_vtbls_init. 2595: * init.c (expand_recursive_init): Change expand_vbase_vtables_init 2596: call to expand_indirect_vtbls_init. 2597: * search.c (get_first_matching_virtual): Rename to 2598: get_matching_virtual. General cleanup and remove setting of 2599: DECL_CONTEXT. That is now done in a cleaner way in 2600: modify_vtable_entry and add_virtual_function. 2601: * search.c (expand_vbase_vtables_init): Rename to 2602: expand_indirect_vtbls_init. General cleanup. Use 2603: expand_direct_vtbls_init to do hard work. Ensures that _all_ vtable 2604: pointers from virtual bases are set up. 2605: * search.c (bfs_unmark_finished_struct, unmark_finished_struct): 2606: Removed. 2607: 2608: * *.[chy]: Remove support for VTABLE_USES_MASK. 2609: 2610: Tue Apr 19 12:51:59 1994 Jason Merrill ([email protected]) 2611: 2612: * cvt.c (convert_to_reference): Use NOP_EXPRs to switch between 2613: reference and pointer types instead of bashing the types directly. 2614: 2615: * call.c (build_overload_call_real): Use the TREE_CODE to determine 2616: whether the function is overloaded or not, rather than 2617: TREE_OVERLOADED. 2618: * *: Remove all uses of TREE_OVERLOADED. 2619: 2620: * decl.c (grokdeclarator): Only complain about initializing const 2621: fields when -ansi or -pedantic. 2622: 2623: Tue Apr 19 12:42:42 1994 Doug Evans ([email protected]) 2624: 2625: * cp-tree.h (THUNK_DELTA): frame_size is now a union. 2626: 2627: Mon Apr 18 00:17:13 1994 Jason Merrill ([email protected]) 2628: 2629: Do overloading on a block-by-block basis, not function-by-function. 2630: * decl.c: Lose overloads_to_forget. 2631: (struct binding_level): Add overloads_shadowed field. 2632: (poplevel): Restore overloads_shadowed. 2633: (push_overloaded_decl): Use overloads_shadowed instead of 2634: overloads_to_forget. 2635: (finish_function): Don't look at overloads_to_forget. 2636: 2637: Copy enum_overflow logic from c-decl.c. 2638: * decl.c (start_enum): Initialize enum_overflow. 2639: (build_enumerator): Use enum_overflow. Also use current_scope(). 2640: 2641: * search.c (current_scope): Move Brendan's comment from 2642: build_enumerator here. 2643: 2644: * typeck.c (convert_for_assignment): Change warnings to pedwarns for 2645: discarding const/volatile. 2646: 2647: Sat Apr 16 01:18:21 1994 Jason Merrill ([email protected]) 2648: 2649: * typeck.c (comp_target_parms): Accept TEMPLATE_TYPE_PARMs on the rhs. 2650: (comp_target_types): Ditto. 2651: 2652: * decl.c (lookup_name): Don't unset got_scope here. 2653: 2654: * spew.c (yylex): Only replace yylval with the TYPE_NESTED_NAME if 2655: got_scope != NULL_TREE. 2656: 2657: Fri Apr 15 16:36:33 1994 Jason Merrill ([email protected]) 2658: 2659: Horrible kludge to prevent templates from being instantiated by 2660: their base classes. 2661: * parse.y (template_instantiate_once): Unset TYPE_BEING_DEFINED 2662: before we get to left_curly. 2663: * pt.c (instantiate_class_template): Set TYPE_BEING_DEFINED. 2664: 2665: * error.c (dump_decl): If it's a typedef, print out the name of the 2666: decl, not just the underlying type. 2667: 2668: * decl.c (pushdecl): If the old duplicate decl was a TYPE_DECL, 2669: update the IDENTIFIER_TYPE_VALUE of its name. 2670: 2671: * decl2.c (finish_file): When processing the initializer for a 2672: static member, pretend that the dummy function is a member of the 2673: same class. 2674: 2675: Fri Apr 15 15:56:35 1994 Kung Hsu ([email protected]) 2676: 2677: * class.c (build_vtable_entry): revert Apr 4 change. 2678: * decl2.c (mark_vtable_entries): replace pure virtual function 2679: decl with abort's. 2680: 2681: Fri Apr 15 13:49:33 1994 Jason Merrill ([email protected]) 2682: 2683: * typeck.c (build_conditional_expr): Pedwarn on pointer/integer 2684: mismatch, and don't pedwarn on 0/function pointer mismatch. 2685: 2686: * typeck2.c (digest_init): Lose code for special handling of unions. 2687: (process_init_constructor): Since they're handled just fine here. 2688: Pedwarn on excess elements. 2689: 2690: * decl2.c (grokfield): Complain about local class method declaration 2691: without definition. 2692: 2693: Fri Apr 15 13:19:40 1994 Per Bothner ([email protected]) 2694: 2695: * method.c (emit_thunk): Add extern declaration for 2696: current_call_is_indirect (needed for hppa). 2697: 2698: Thu Apr 14 16:12:31 1994 Jason Merrill ([email protected]) 2699: 2700: Improve local class support; allow classes in different blocks to 2701: have the same name. 2702: * decl.c (pushtag): Support local classes better. 2703: (pushdecl_nonclass_level): New function for pushing mangled decls of 2704: nested types into the appropriate scope. 2705: (xref_defn_tag): Use pushdecl_nonclass_level instead of 2706: pushdecl_top_level. 2707: (grokfndecl): Don't mess with IDENTIFIER_GLOBAL_VALUE for local 2708: class methods. 2709: * method.c (do_inline_function_hair): Ditto. 2710: 2711: * class.c (finish_struct): It is legal for a class with no 2712: constructors to have nonstatic const and reference members. 2713: 2714: Thu Apr 14 07:15:11 1994 Brendan Kehoe ([email protected]) 2715: 2716: * decl.c (push_overloaded_decl): Avoid giving errors about 2717: built-ins, since duplicate_decls will have given warnings/errors 2718: for them. 2719: 2720: Thu Apr 14 03:45:12 1994 Jason Merrill ([email protected]) 2721: 2722: * cvt.c (convert_to_reference): Warn about casting pointer type to 2723: reference type when this is probably not what they wanted. 2724: 2725: Wed Apr 13 13:12:35 1994 Per Bothner ([email protected]) 2726: 2727: * decl.c (finish_decl): Don't mindlessly set TREE_USED for 2728: static consts any more (toplev.c has now been modified to 2729: not emit warnings if they are unused). 2730: 2731: Wed Apr 13 00:22:35 1994 Jason Merrill ([email protected]) 2732: 2733: * decl.c (grok_op_properties): If op new/delete get here with 2734: METHOD_TYPEs, do a revert_static_member_fn. 2735: 2736: * cp-tree.h (IDENTIFIER_CLASS_TYPE_VALUE): Lose. 2737: * init.c (is_aggr_typedef): Don't look at 2738: IDENTIFIER_CLASS_TYPE_VALUE. 2739: (get_aggr_from_typedef): Ditto. 2740: (get_type_value): Ditto. 2741: * call.c (build_scoped_method_call): Don't rely on overloaded 2742: template names having IDENTIFIER_CLASS_VALUE set. 2743: 2744: * parse.y (component_decl_1, fn.def2): Revert rules for 2745: constructors. 2746: (component_decl_1, fn.def2): Use $1 instead of $$, since $$ is being 2747: clobbered. 2748: 2749: * decl.c (start_function): Only warn about `void main()' if pedantic 2750: || warn_return_type. 2751: 2752: Tue Apr 12 02:14:17 1994 Jason Merrill ([email protected]) 2753: 2754: Clean up overloading of the template name. 2755: * class.c (pushclass): overload the template name whenever pushing 2756: into the scope of a template class, not just if it is 2757: uninstantiated. 2758: (popclass): Correspondingly. 2759: * search.c (push_class_decls): Don't overload_template_name. 2760: * pt.c (overload_template_name): Don't set IDENTIFIER_LOCAL_VALUE or 2761: DECL_CONTEXT on things. 2762: * parse.y (left_curly): Don't overload_template_name. 2763: * class.c (finish_struct): Don't undo_template_name_overload. 2764: 2765: * method.c (build_opfncall): Only pass one argument to global op 2766: delete. 2767: 2768: * call.c (build_method_call): Use TYPE_VEC_DELETE_TAKES_SIZE to 2769: decide how many arguments to use for vec delete. 2770: 2771: * decl.c (grok_op_properties): Be consistent in modifying 2772: current_class_type. 2773: (grokdeclarator): Only complain about function decls with no return 2774: type if we're being pedantic. 2775: 2776: Mon Apr 11 00:10:53 1994 Jason Merrill ([email protected]) 2777: 2778: Add support for operator new [] and operator delete []. 2779: 2780: * tree.def: Add VEC_NEW_EXPR and VEC_DELETE_EXPR. 2781: * ptree.c (print_lang_type): Indicate vec new/delete. 2782: * parse.y: Support vec new/delete. 2783: * method.c (build_decl_overload): Deal with vec new/delete. 2784: (build_opfncall): Ditto. 2785: * lex.c (init_lex): Set up values of ansi_opname and opname_tab for 2786: vec new/delete. vec new uses "__vn", and vec delete uses "__vd". 2787: * init.c (init_init_processing): Set up BIVN and BIVD. 2788: (do_friend): Don't clean up after mistaken setting of TREE_GETS_NEW, 2789: since it doesn't happen any more. 2790: (build_new): Support vec new. Always call something. 2791: (build_x_delete): Support vec delete. 2792: (build_vec_delete): Lose dtor_dummy argument, add use_global_delete, 2793: and pass it to build_x_delete. 2794: * decl2.c (delete_sanity): Don't change behavior by whether or not 2795: the type has a destructor. Pass use_global_delete to 2796: build_vec_delete. 2797: (coerce_delete_type): Make sure that the type returned has a first 2798: argument of ptr_type_node. 2799: * decl.c (init_decl_processing): Also declare the global vec 2800: new/delete. 2801: (grokdeclarator): Also force vec new/delete to be static. 2802: (grok_op_properties): Note presence of vec new/delete, and play with 2803: their args. If vec delete takes the optional size_t argument, set 2804: TYPE_VEC_DELETE_TAKES_SIZE. 2805: * cp-tree.h (TYPE_GETS_{REG,VEC}_DELETE): New macros to simplify 2806: checking for one delete or the other. 2807: (lang_type): gets_new and gets_delete are now two bits long. The 2808: low bit is for the non-array version. Lose gets_placed_new. 2809: (TYPE_VEC_DELETE_TAKES_SIZE): New macro indicating that the vec 2810: delete defined by this class wants to know how much space it is 2811: deleting. 2812: (TYPE_VEC_NEW_USES_COOKIE): New macro to indicate when vec new must 2813: add a header containing the number of elements in the vector; i.e. 2814: when the elements need to be destroyed or vec delete wants to know 2815: the size. 2816: * class.c (finish_struct_methods): Also check for overloading vec 2817: delete. 2818: * call.c (build_method_call): Also delete second argument for vec 2819: delete. 2820: 2821: * decl.c (grokdeclarator): Correct complaints again. 2822: (grokdeclarator): Fix segfault on null declarator. 2823: (decls_match): Also accept redeclaration with no arguments if both 2824: declarations were in C context. Bash TREE_TYPE (newdecl) here. 2825: (duplicate_decls): Instead of here. 2826: 2827: * parse.y (nested_name_specifier_1): Lose rules for dealing with 2828: syntax errors nicely, since they break parsing of 'const i;'. 2829: 2830: * decl.c (lookup_name): if (got_scope == current_class_type) 2831: val = IDENTIFIER_CLASS_VALUE (name). 2832: 2833: * search.c (lookup_nested_tag): Look in enclosing classes, too. 2834: 2835: * spew.c (yylex): Only look one character ahead when checking for a 2836: SCOPE. 2837: 2838: * lex.c (check_newline): Read first nonwhite char before 2839: incrementing lineno. 2840: 2841: * decl.c (grokdeclarator): Don't claim that typedefs are variables 2842: in warning. 2843: 2844: * parse.y: Divide up uses of unqualified_id into 2845: notype_unqualified_id and unqualified_id, so that TYPENAME can be 2846: used as an identifier after an object. 2847: 2848: * class.c (push_nested_class): Don't push into non-class scope. 2849: 2850: * decl.c (grokdeclarator): If an identifier could be a type 2851: conversion operator, but has no associated type, it's not a type 2852: conversion operator. 2853: 2854: * pt.c (unify): Check for equality of constants better. 2855: 2856: * decl.c (grokdeclarator): Don't complain about access decls. 2857: 2858: Sun Apr 10 02:39:55 1994 Jason Merrill ([email protected]) 2859: 2860: * decl.c (grokdeclarator): pedwarn about data definitions without 2861: types here. 2862: 2863: * parse.y (datadef): Don't pedwarn about decls without types here, 2864: since that is valid for functions. 2865: (fn.def2, component_decl): Support constructors with declmods again. 2866: (nomods_initdecls): For decls without any mods, so that we don't try 2867: to get declspecs from some arbitrary $0. 2868: 2869: * search.c (lookup_field): Use cp_error. 2870: 2871: * parse.y (nested_name_specifier_1): Don't check aggr/non-aggr type 2872: here; it breaks destructors for non-aggr types. 2873: 2874: * decl.c (lookup_name): Only look for TYPE_DECLs in base classes of 2875: a type being defined, like the comment says. 2876: If got_scope is not an aggregate, just return NULL_TREE. 2877: 2878: * pt.c (create_nested_upt): Kung's code for creating types nested 2879: within uninstantiated templates now lives here (it used to live in 2880: hack_more_ids). It needs to be expanded. 2881: 2882: * parse.y: Stop calling see_typename so much. 2883: 2884: * decl.c (lookup_name): Deal with TTPs and UPTs. 2885: 2886: * lex.c (real_yylex): Don't set looking_for_typename just because we 2887: saw a 'new'. 2888: (dont_see_typename): #if 0 out. 2889: 2890: * spew.c (yylex): Increment looking_for_typename if the next 2891: character is SCOPE, rather than setting it to 1; this way, the value 2892: from seeing an aggr specifier will not be lost. This kinda relies 2893: on looking_for_typename never being < 0, which is now true. 2894: 2895: * parse.y (nested_name_specifier_1): Accept TEMPLATE_TYPE_PARMs, 2896: too. 2897: (named_class_head_sans_basetype): Accept template types, too. Oops. 2898: 2899: Fri Apr 8 16:39:35 1994 Jason Merrill ([email protected]) 2900: 2901: * decl2.c (reparse_decl_as_expr1): Handle SCOPE_REFs. 2902: 2903: * parse.y: Lose START_DECLARATOR. 2904: 2905: * search.c (lookup_nested_tag): New function to scan CLASSTYPE_TAGS 2906: for a class. 2907: 2908: * parse.y: Simplify fn.def2 and component_decl. Support 'enum 2909: A::foo' syntax. Catch invalid scopes better. 2910: 2911: * parse.y, lex.c: lose TYPENAME_COLON. 2912: 2913: * decl2.c (groktypefield): #if 0 out. 2914: 2915: * decl.c (lookup_name): If the type denoted by got_scope is 2916: currently being defined, look in CLASSTYPE_TAGS rather than FIELDS. 2917: 2918: * class.c (push_nested_class): Don't try to push into 2919: error_mark_node. 2920: 2921: Fri Apr 8 07:26:36 1994 Brendan Kehoe ([email protected]) 2922: 2923: * Makefile.in (stamp-parse): Update count of conflicts to 33. 2924: 2925: Thu Apr 7 17:47:53 1994 Jason Merrill ([email protected]) 2926: 2927: A saner implementation of nested types that treats template types 2928: no differently from non-template types. There are still some 2929: shortcomings of our system; most notably, it is difficult to look 2930: for a nested type that is hidden by another name, because of the way 2931: we keep track of hidden types. But this shouldn't be a problem for 2932: just about anyone. Perhaps lookup_field should be fixed up a bit. 2933: 2934: * spew.c: Moved handling of nested types/scoping from the lexer 2935: into the parser. Removed variable template_type_seen_before_scope. 2936: Removed functions frob_identifier, hack_more_ids, and various cruft 2937: that was #if 0'd out in the past, reducing the size of the file from 2938: 1146 lines to 450 lines. We can't quite do away with spew.c yet, 2939: though; we still need it for do_aggr () and checking for SCOPE after 2940: the current identifier. And setting lastiddecl. 2941: 2942: * parse.y: Moved handling of nested types/scoping from the lexer 2943: into the parser, using a new global variable `got_scope'. Reduced 2944: the number of states by 53. Implemented all uses of explicit global 2945: scope. Removed terminals SCOPED_TYPENAME and SCOPED_NAME. Removed 2946: nonterminals tmpl.1, scoped_base_class, id_scope, typename_scope, 2947: scoped_typename. Added nonterminals nested_type, 2948: qualified_type_name, complete_type_name, qualified_id, ptr_to_mem, 2949: nested_name_specifier, global_scope, overqualified_id, type_name. 2950: Changed many others. Added 9 new reduce/reduce conflicts, which are 2951: nested type parallels of 9 that were already in the grammar for 2952: non-nested types. Eight of the now 33 conflicts should be removed 2953: in the process of resolving the late binding between variable and 2954: function decls. 2955: 2956: * gxxint.texi (Parser): Update. 2957: 2958: * cp-tree.h (IS_AGGR_TYPE_CODE): Add UNINSTANTIATED_P_TYPE. 2959: 2960: * lex.h: Add decl for got_scope. 2961: 2962: * lex.c (see_typename): Claim to be the lexer when calling 2963: lookup_name. 2964: 2965: * decl.c (lookup_name): When called from the lexer, look at 2966: got_scope and looking_at_typename; otherwise don't. 2967: 2968: Thu Apr 7 22:05:47 1994 Mike Stump ([email protected]) 2969: 2970: 31th Cygnus<->FSF merge. 2971: 2972: Thu Apr 7 17:47:53 1994 Jason Merrill ([email protected]) 2973: 2974: * decl2.c (mark_vtable_entries): Call this to mark all the 2975: entries in the vtable addressable. 2976: (finish_decl_parsing): Handle SCOPE_REFs. 2977: 2978: * decl.c (decls_match): Always call compparms with strict == 1. 2979: Handle the special case of C function redecl here. 2980: (duplicate_decls): Only keep the old type if the new decl takes no 2981: arguments. 2982: 2983: * typeck.c (compparms): Also allow t1 to be ... if strict == 0. 2984: 2985: Thu Apr 7 16:17:50 1994 Mike Stump ([email protected]) 2986: 2987: * class.c (build_vtable_entry): Fix breakage introduced Apr 5 2988: 17:48:41. 2989: 2990: Wed Apr 6 16:05:10 1994 Per Bothner ([email protected]) 2991: 2992: * init.c (build_virtual_init), search.c (build_vbase_vtables_init), 2993: ch-tree.h: Every place these functions were called, the result was 2994: immediately passed to expand_expr_stmt. Reduce redundancy by 2995: calling expand_expr_init *inside* these functions. These 2996: makes for a simpler interface, and we don't have to build 2997: compound expressions. Hence, rename these function to: 2998: expand_virtual_init and expand_vbase_vtables_init respectively. 2999: * init.c, decl.c: Change callers of these functions. 3000: * init.c, cp-tree.h (expand_virtual_init): Make static. 3001: 3002: * decl2.c (finish_file): Check TREE_PUBLIC||TREE_ADDRESSABLE 3003: rather than DECL_SAVED_INSNS before emitting inlines. 3004: 3005: Wed Apr 6 13:06:39 1994 Jason Merrill ([email protected]) 3006: 3007: * spew.c (init_spew): #if 0 out stuff used by arbitrate_lookup. 3008: 3009: * decl.c (duplicate_decls): If this is a new declaration of an 3010: extern "C" function, keep the type (for the argtypes). 3011: (redeclaration_error_message): Don't check DECL_LANGUAGE here. 3012: (decls_match): Call compparms with a value of strict dependent on 3013: the value of strict_prototypes for DECL_LANGUAGE (oldecl). 3014: 3015: * typeck.c (compparms): ... is only equivalent to non-promoting 3016: parms if we're not being strict. 3017: 3018: * parse.y (empty_parms): Don't check flag_ansi || pedantic here. 3019: 3020: * decl.c (init_decl_processing): if (flag_ansi || pedantic) 3021: strict_prototypes_lang_c = strict_prototypes_lang_cplusplus; 3022: 3023: * decl2.c (grok_function_init): Don't set DECL_INITIAL on pure 3024: virtuals. 3025: 3026: Tue Apr 5 17:48:41 1994 Per Bothner ([email protected]) 3027: 3028: Support for implementing vtables with thunks. 3029: * tree.def (THUNK_DECL): New TREE_CODE. 3030: * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY), tree.c 3031: (fnaddr_from_vtable_entry): Handle flag_vtable_thunks case. 3032: * cp-tree.h (memptr_type): New variable. 3033: * class.c (build_vtable_entry): Build thunk if necessary. 3034: * class.c (build_vfn_ref): If using thunks, don't need 3035: to add delta field from vtable (there is none!). 3036: * decl.c: Add memptr_type as well as vtable_entry_type. 3037: If using thunks, the latter is just ptr_type_node. 3038: * gc.c, typeck.c: Use memptr_typeChange, not vtable_entry_type. 3039: * decl2.c (finish_vtable_vardecl): Handle thunks. 3040: * expr.c (cplus_expand_expr): Support THUNK_DECL. 3041: 3042: * decl.c (grokdeclarator): Set DECL_THIS_EXTERN if "extern". 3043: * decl.c (start_function): Set current_extern_inline based on 3044: DECL_THIS_EXTERN, not TREE_PUBLIC. 3045: * decl.c (finish_function): Call mark_inline_for_output if needed, 3046: 3047: Improve intelligence about when to emit inlines. 3048: * cp-tree.h (lang_decl_flags): New field saved_inline. 3049: * cp-tree.h (DECL_SAVED_INLINE): New macro. 3050: * class.c (add_virtual_function): Don't set TREE_ADDRESSABLE. 3051: * decl.h, decl.c (pending_addressable_inlines): Removed. 3052: * decl2.c (pending_addressable_inlines): Renamed to saved_inlines. 3053: * decl2.c (mark_inline_for_output): Do nothing if 3054: DECL_SAVED_INLINE; otherwise set it (and add to saved_inlines list). 3055: * decl2.c (finish_vtable_vardecl): SET_CLASSTYPE_INTERFACE_KNOWN 3056: and set CLASSTYPE_INTERFACE_ONLY if there is a non-inline virtual. 3057: * decl2.c (finish_file): Writing out inlines later, so we can 3058: also handle the ones needed for vtbales. 3059: * decl2.c (write_vtable_entries, finish_vtable_typedecl): Removed. 3060: 3061: * cp-tree.h, class.c, decl2.c, search.c: Remove -fvtable-hack 3062: and flag_vtable_hack. Use -fvtable-thunks and flag_vtable_thunks 3063: instead. (The rationale is that these optimizations both break binary 3064: compatibility, but should become the default in a future release.) 3065: 3066: Wed Apr 6 10:53:56 1994 Mike Stump ([email protected]) 3067: 3068: * class.c (modify_vtable_entries): Never reset the DECL_CONTEXT 3069: of a fndecl, as we might not be from that vfield. 3070: 3071: Tue Apr 5 17:43:35 1994 Kung Hsu ([email protected]) 3072: 3073: * class.c (add_virtual_function): fix bug for pure virtual, so 3074: that DECL_VINDEX of the dummy decl copied won't be error. 3075: (see also Apr 4 change) 3076: 3077: Tue Apr 5 17:23:45 1994 Per Bothner ([email protected]) 3078: 3079: * typeck.c (c_expand_return): Before checking that we're not 3080: returning the address of a local, make sure it's a VAR_DECL. 3081: (And don't worry about it being a TREE_LIST.) 3082: 3083: Tue Apr 5 13:26:42 1994 Jason Merrill ([email protected]) 3084: 3085: * parse.y (YYDEBUG): Always define. 3086: * lex.c (YYDEBUG): Ditto. 3087: 3088: Mon Apr 4 11:28:17 1994 Kung Hsu ([email protected]) 3089: 3090: * class.c (finish_struct): backup out the change below, put the 3091: new change for the same purpose. The change below breaks code. 3092: 3093: * class.c (finish_struct): if pure virtual, copy node and make 3094: RTL point to abort, then put in virtual table. 3095: * decl2.c (grok_function_iit): reinstate Mar 31 change. 3096: 3097: Sat Apr 2 03:12:58 1994 Jason Merrill ([email protected]) 3098: 3099: * init.c (build_new): pedwarn about newing const and volatile 3100: types. 3101: 3102: * tree.c (get_identifier_list): Only do the special handling 3103: thing if we're dealing with the main variant of the record type. 3104: 3105: * cvt.c (convert_to_reference): When converting between 3106: compatible reference types, use the pointer conversion machinery. 3107: Don't just blindly overwrite the old type. 3108: 3109: Fri Apr 1 17:14:42 1994 Jason Merrill ([email protected]) 3110: 3111: * call.c (build_method_call): When looking at global functions, 3112: be sure to use instance_ptr for the first argument, not some version 3113: of it that has been cast to a base class. Also do this before 3114: comparing candidates. 3115: 3116: Thu Mar 31 19:50:35 1994 Jason Merrill ([email protected]) 3117: 3118: * call.c (build_method_call): Constructors can be called for 3119: const objects. 3120: 3121: Thu Mar 31 16:20:16 1994 Kung Hsu ([email protected]) 3122: 3123: * decl2.c (grok_func_init): do not abort as rtl for pur virtual 3124: fucntions. They can be defined somewhere else. 3125: 3126: Sat Jan 23 23:23:26 1994 Stephen R. van den Berg ([email protected]) 3127: 3128: * decl.c (init_decl_processing): Declare __builtin_return_address 3129: and __builtin_frame_address for C++ as well. 3130: 3131: Thu Mar 31 12:35:49 1994 Mike Stump ([email protected]) 3132: 3133: * typeck2.c (store_init_value): Integral constant variables are 3134: always constant, even when doing -fpic. 3135: 3136: Sat Jan 23 23:23:26 1994 Stephen R. van den Berg ([email protected]) 3137: 3138: * decl.c (redeclaration_error_message): Pass the types to 3139: comptypes. 3140: 3141: Wed Mar 30 21:29:25 1994 Mike Stump ([email protected]) 3142: 3143: Cures incorrect errors about pure virtuals in a class, when they 3144: have been overridden in a derived class. 3145: 3146: * search.c (get_abstract_virtuals): Reimplement. 3147: * search.c (get_abstract_virtuals_1): New routine. 3148: 3149: Wed Mar 30 14:10:04 1994 Jason Merrill ([email protected]) 3150: 3151: * pt.c (push_template_decls): Make the pushed level pseudo 3152: global. 3153: 3154: * parse.y (extdefs): Don't pop everything if the current binding 3155: level is pseudo_global. 3156: 3157: * decl.c (pop_everything): Stop on reaching a pseudo-global 3158: binding level. 3159: 3160: * cp-tree.h (DECL_FUNCTION_MEMBER_P): Change to more reliable test. 3161: 3162: * decl.c (duplicate_decls): Only copy DECL_SOURCE_{FILE_LINE} if 3163: the old decl actually had an initializer. 3164: 3165: * {various}: Clean up gcc -W complaints. 3166: 3167: * cp-tree.h (DECL_FUNCTION_MEMBER_P): Currently defined to be 3168: (DECL_CONTEXT (NODE) != NULL_TREE). 3169: 3170: * parse.y (lang_extdef): Call pop_everything if necessary. 3171: 3172: * decl.c (pop_everything): New function for popping binding 3173: levels left over after a syntax error. 3174: (pushdecl): Use DECL_FUNCTION_MEMBER_P to decide whether or not 3175: a function is a member. 3176: 3177: Wed Mar 30 14:20:50 1994 Mike Stump ([email protected]) 3178: 3179: Cures calling a more base base class function, when a more derived 3180: base class member should be called in some MI situations. 3181: 3182: * search.c (make_binfo): Use more the more specialized base 3183: binfos from the binfo given as the second argument to make_binfo, 3184: instead of the unspecialized ones from the TYPE_BINFO. 3185: * class.c (finish_base_struct): Ditto, update callers. 3186: * search.c (dfs_get_vbase_types): Ditto. 3187: * tree.c (propagate_binfo_offsets, layout_vbasetypes): Ditto. 3188: * decl.c (xref_tag): Use NULL_TREE instead of 0. 3189: * lex.c (make_lang_type): Ditto. 3190: 3191: Wed Mar 30 14:10:04 1994 Jason Merrill ([email protected]) 3192: 3193: * decl.c (pushdecl): If pushing a C-linkage function, only do a 3194: push_overloaded_decl. 3195: (duplicate_decls): Standard overloading does not shadow built-ins. 3196: 3197: Tue Mar 29 00:54:18 1994 Jason Merrill ([email protected]) 3198: 3199: * pt.c (end_template_decl): Don't call push_overloaded_decl. 3200: 3201: * init.c (do_friend): Don't call push_overloaded_decl. 3202: 3203: * decl.c (pushdecl): Call push_overloaded_decl for functions and 3204: function templates. 3205: (duplicate_decls): functions and function templates are not 3206: duplicates, but don't complain about calling this function to 3207: compare them. 3208: (push_overloaded_decl): Don't deal with linkage. Call 3209: duplicate_decls. 3210: (redeclaration_error_message): Deal with linkage. 3211: 3212: * decl.c (start_function): If push_overloaded_decl returns an 3213: older version of the function, deal with it. 3214: 3215: * decl.c (start_function): Be sure only to push_overloaded_decl 3216: for non-members. 3217: 3218: * decl.c (grokfndecl): Put back clearing of DECL_CHAIN for 3219: methods. 3220: (start_function): Lose broken and redundant code for checking old 3221: decl. 3222: 3223: * init.c (add_friend): Give line numbers of both friend decls 3224: when warning about re-friending. 3225: 3226: * pt.c (tsubst): Use comptypes rather than == to compare the 3227: types of the method as declared and as defined, since default 3228: parameters may be different. 3229: 3230: * call.c (build_method_call): Use brendan's candidate printing 3231: routine. 3232: 3233: * decl.c (start_method): Methods defined in the class body are 3234: inline whether or not it's a template class. 3235: 3236: Mon Mar 28 16:39:26 1994 Jason Merrill ([email protected]) 3237: 3238: * parse.y (initdcl0): Add "extern" to current_declspecs if 3239: have_extern_spec && ! used_extern_spcec. 3240: 3241: * tree.c (really_overloaded_fn): A fn with more than one 3242: overload. 3243: 3244: * pt.c (end_template_decl): Use really_overloaded_fn. 3245: 3246: * decl.c (duplicate_decls): When smashing a decl into a previous 3247: definition, keep the old file and line. 3248: Don't deal with overloaded functions. 3249: Lose old code for checking arg types of functions. 3250: Check for overloaded C functions. 3251: (pushdecl): Deal with overloaded functions. 3252: (start_decl): Expect pushdecl to return an appropriate function decl. 3253: (start_function): Ditto. 3254: (push_overloaded_decl): Don't check for overloaded C functions. 3255: 3256: * *.c: Stop using DECL_OVERLOADED, it being archaic. 3257: TREE_OVERLOADED should probably go, too. 3258: 3259: Mon Mar 28 14:00:45 1994 Ron Guilmette ([email protected]) 3260: 3261: * typeck.c (comp_target_types): Call comp_target_parms with 3262: strict == 1. 3263: 3264: Sun Mar 27 00:07:45 1994 Jason Merrill ([email protected]) 3265: 3266: * parse.y (empty_parms): Don't parse () as (...) in extern "C" 3267: sections if we're compiling with -ansi or -pedantic. 3268: 3269: * decl.c (decls_match): Don't treat (int) and (int&) as matching. 3270: 3271: * decl2.c (grokfield): Don't pedwarn twice about initializing 3272: field. 3273: 3274: * decl.c (push_overloaded_decl): Warn about shadowing 3275: constructor. 3276: (redeclaration_error_message): Don't allow 'int a; int a;' 3277: 3278: * cvt.c (build_up_reference): Only check for valid upcast if 3279: LOOKUP_PROTECT is set, not just any flag. 3280: 3281: Fri Mar 25 01:22:31 1994 Jason Merrill ([email protected]) 3282: 3283: * lex.c (check_newline): When we see a #pragma implementation, 3284: also set it for the main input file. 3285: 3286: * init.c (build_new): Convert array size argument to size_t. 3287: 3288: * parse.y (primary): If we're doing a parenthesized type-id, call 3289: groktypename before passing it to build_new. 3290: 3291: * call.c (build_method_call): Deal properly with const and 3292: volatile for instances of reference type. 3293: 3294: * decl.c (store_return_init): Change 'if (pedantic) error' to 'if 3295: (pedantic) pedwarn'. 3296: 3297: * decl.c (grokdeclarator): Don't complain about putting `static' 3298: and `inline' on template function decls. 3299: 3300: Thu Mar 24 23:18:19 1994 Jason Merrill ([email protected]) 3301: 3302: * call.c (build_method_call): Preserve const & volatile on 3303: `this'. 3304: 3305: Thu Mar 24 16:21:52 1994 Mike Stump ([email protected]) 3306: 3307: * init.c (build_new, build_vec_delete): Use global new and delete 3308: for arrays. 3309: * decl2.c (delete_sanity): Ditto. 3310: 3311: Thu Mar 24 02:10:46 1994 Jason Merrill ([email protected]) 3312: 3313: * cvt.c (convert_to_reference): If i is an lvalue, 3314: (int &)i -> *(int*)&i, as per 5.2.8p9 of the latest WP. 3315: (convert_force): Call convert_to_reference with LOOKUP_COMPLAIN. 3316: 3317: Wed Mar 23 17:45:37 1994 Jason Merrill ([email protected]) 3318: 3319: * decl.c (duplicate_decls): Also propagate DECL_TEMPLATE_MEMBERS 3320: and DECL_TEMPLATE_INSTANTIATIONS. 3321: 3322: * init.c (build_new): Handle array typedefs properly. 3323: 3324: Wed Mar 23 18:23:33 1994 Mike Stump ([email protected]) 3325: 3326: 30th Cygnus<->FSF merge. 3327: 3328: Wed Mar 23 00:46:24 1994 Mike Stump ([email protected]) 3329: 3330: * class.c (modify_vtable_entries): Avoid running off the end of the 3331: virtuals list when processing a virtual destructor. 3332: * class.c (get_vtable_entry): Ditto. 3333: 3334: Wed Mar 23 00:23:59 1994 Jason Merrill ([email protected]) 3335: 3336: * decl.c (duplicate_decls): If two template decls don't match, 3337: just return 0. 3338: 3339: Tue Mar 22 23:49:41 1994 Jason Merrill ([email protected]) 3340: 3341: * typeck.c (convert_for_assignment): Don't pedwarn about 3342: converting function pointer to void *. 3343: 3344: Tue Mar 22 22:23:19 1994 Mike Stump ([email protected]) 3345: 3346: Major revamp of pointer to member functions. Cures major 3347: nonfunctionality when used in casts, and MI situations. 3348: 3349: * cvt.c (convert_force): Update call site of build_ptrmemfunc. 3350: * typeck.c (convert_for_assignment): Ditto. 3351: * typeck2.c (digest_init): Ditto. 3352: * typeck2.c (process_init_constructor): Simplify by moving code into 3353: digest_init. 3354: * typeck2.c (digest_init): Do default_conversions on init value, if 3355: we are processing pointer to member functions. 3356: * class.c (get_vfield_offset): Now non-static. Convert bit offset 3357: into byte offset. 3358: * cp-tree.h (get_vfield_offset): Ditto. 3359: * typeck.c (get_member_function_from_ptrfunc): Convert down to right 3360: instance, before fetching vtable pointer. 3361: * typeck.c (get_delta_difference): New routine. 3362: * typeck.c (build_ptrmemfunc): Revamp to handle casting better, also 3363: get vtable pointer out of right subobject. 3364: 3365: Tue Mar 22 17:56:48 1994 Mike Stump ([email protected]) 3366: 3367: * search.c (get_binfo): Return NULL instead of aborting, when 3368: passed a UNION_TYPE. 3369: 3370: Tue Mar 22 12:44:54 1994 Jason Merrill ([email protected]) 3371: 3372: These patches implement handling of redefinition/redeclaration of 3373: templates. 3374: 3375: * typeck.c (comptypes): Simplify. All TEMPLATE_TYPE_PARMs are 3376: considered compatible. 3377: 3378: * parse.y (template_def): Pass defn argument to end_template_decl. 3379: 3380: * pt.c (end_template_decl): Add defn argument. Check for 3381: redefinition. Simplify. 3382: 3383: * error.c (OB_UNPUT): New macro, to remove mistakes. 3384: (aggr_variety): Subroutine of dump_aggr_type. 3385: 3386: * decl.c (decls_match): Support templates. 3387: (duplicate_decls): No longer static. Don't try to lay out template 3388: decls. 3389: (pushdecl): Simplify. 3390: 3391: * cp-tree.h (DECL_TEMPLATE_MEMBERS): Use DECL_SIZE instead of 3392: DECL_INITIAL. 3393: 3394: Mon Mar 21 11:46:55 1994 Jason Merrill ([email protected]) 3395: 3396: * error.c (dump_decl): Support class template decls. 3397: (dump_type): Don't adorn template type parms. 3398: 3399: * decl.c (duplicate_decls): Save DECL_TEMPLATE_INFO from old decl 3400: if it was a definition. 3401: (redeclaration_error_message): Do the cp_error thang, and reject 3402: redefinition of templates. 3403: 3404: Mon Mar 21 19:36:06 1994 Per Bothner ([email protected]) 3405: 3406: * decl.c (grokdeclarator): Set TREE_PUBLIC for METHOD_TYPE 3407: in FIELD context, when appropriate. Also, 3408: CLASSTYPE_INTERFACE_ONLY is irrelevant to setting TREE_PUBLIC. 3409: Also, simplify check for bogus return specifiers. 3410: 3411: Mon Mar 21 11:46:55 1994 Jason Merrill ([email protected]) 3412: 3413: * parse.y (after_type_declarator1): Expand type_quals. 3414: (notype_declarator1): Ditto. 3415: (absdcl1): Ditto. 3416: 3417: Sat Mar 19 01:05:17 1994 Jason Merrill ([email protected]) 3418: 3419: * decl.c (grokdeclarator): Treat class-local typedefs like static 3420: members; i.e. 'typedef int f();' means that f is a function type, 3421: not a method type. 3422: 3423: * parse.y (decl): Change direct_* back to *. 3424: (type_id): Change direct_abstract_declarator to absdcl. 3425: (direct_declarator, direct_initdecls, direct_initdcl0): Remove again. 3426: 3427: Fri Mar 18 12:47:59 1994 Jason Merrill ([email protected]) 3428: 3429: These two patches fix crashes on instantiating a template inside a 3430: function with C linkage or containing labels. 3431: 3432: * class.c (current_lang_stacksize): No longer static. 3433: 3434: * decl.c (struct saved_scope): Add lang_base, lang_stack, 3435: lang_name, lang_stacksize, and named_labels. 3436: (push_to_top_level): Save them. 3437: (pop_from_top_level): Restore them. 3438: 3439: * gxxint.texi (Parser): Update. 3440: 3441: These two patches finish moving the task of expr/declarator 3442: ambiguity resolution from the lexer to the parser, and add one more 3443: r/r conflict. START_DECLARATOR can now be nuked. 3444: 3445: * parse.y (decl): Add "direct_" in typespec X rules. 3446: (direct_declarator): New nonterminal for 3447: direct_after_type_declarator and direct_notype_declarator. 3448: (direct_initdecls): Like initdecls, but uses direct_initdcl0. 3449: (direct_initdcl0): Like initdcl0, but uses direct_declarator. 3450: (named_parm): Add typespec direct_declarator rule. 3451: 3452: * spew.c (yylex): #if 0 out START_DECLARATOR insertion. 3453: 3454: These two patches disable some excessive cleverness on the part of 3455: g++; a non-class declaration always hides a class declaration in the 3456: same scope, and g++ was trying to unhide it depending on the 3457: enclosing expression. 3458: 3459: * spew.c (arbitrate_lookup): #if 0 out. 3460: 3461: * decl.c (lookup_name): Never call arbitrate_lookup. 3462: 3463: * parse.y (complex_notype_declarator1): Add '*' 3464: complex_notype_declarator1 and '&' complex_notype_declarator1 rules. 3465: 3466: * parse.y (complex_direct_notype_declarator): Restore id_scope 3467: see_typename TYPENAME rule, remove all other rules beginning with 3468: those tokens. 3469: (notype_unqualified_id): Add '~' see_typename IDENTIFIER rule. 3470: 3471: Thu Mar 17 17:30:01 1994 Jason Merrill ([email protected]) 3472: 3473: These changes fix the compiler's handling of the functional cast/ 3474: object declaration ambiguities in section 6.8 of the ARM. They also 3475: add 11 reduce/reduce conflicts. Sigh. 3476: 3477: * parse.y: Add precedence decls for OPERATOR and '~'. 3478: (notype_unqualified_id): New nonterminal, encompasses all of the 3479: ANSI unqualified-id nonterminal except TYPENAMEs. 3480: (expr_or_declarator): New nonterminal to delay parsing of code like 3481: `int (*a)'. 3482: (primary): Use notype_unqualified_id. 3483: (decl): Add typespec initdecls ';' and typespec declarator ';' 3484: rules. 3485: (initdcl0): Deal with the above. 3486: (complex_notype_declarator1): A notype_declarator that is not also 3487: an expr_or_declarator. 3488: (complex_direct_notype_declarator): A direct_notype_declarator that 3489: doesn't conflict with expr_or_declarator. Use 3490: notype_unqualified_id. Remove id_scope see_typename TYPENAME rule. 3491: (functional_cast): New nonterminal, for the three functional cast 3492: rules. So that they can be moved after 3493: complex_direct_notype_declarator. 3494: (see_typename): Don't accept type_quals any more. 3495: 3496: * decl2.c (reparse_decl_as_expr): New function to deal with parse 3497: nodes for code like `int (*a)++;'. 3498: (reparse_decl_as_expr1): Recursive subroutine of the above. 3499: (finish_decl_parsing): New function to deal with parse nodes for 3500: code like `int (*a);'. See the difference? 3501: 3502: Thu Mar 17 12:16:10 1994 Mike Stump ([email protected]) 3503: 3504: These changes break binary compatibility in code with classes 3505: that use virtual bases. 3506: 3507: * search.c (dfs_get_vbase_types): Simplify and correct to make 3508: sure virtual bases are initialized in dfs ordering. 3509: * search.c (get_vbase_types): Simplify and make readable. 3510: 3511: Thu Mar 17 12:01:10 1994 Jason Merrill ([email protected]) 3512: 3513: * parse.y: s/ typename / type_id /g 3514: 3515: Wed Mar 16 17:42:52 1994 Kung Hsu ([email protected]) 3516: 3517: * parse.y (typespec): add SCOPE TYPENAME for global scoped 3518: type. e.g. ::B x. 3519: 3520: * decl.c (complete_array_type): fix a bug that in -pendantic 3521: mode even there's no initializer, it will continue to build 3522: default index. 3523: 3524: Wed Mar 16 17:43:07 1994 Jason Merrill ([email protected]) 3525: 3526: * parse.y (direct_notype_declarator): Add PTYPENAME rule, remove 3527: all of the scoped PTYPENAME rules. 3528: 3529: Wed Mar 16 16:39:02 1994 Mike Stump ([email protected]) 3530: 3531: * init.c (build_offset_ref): The value of A::typedef_name is 3532: always the TYPE_DECL, and never an error. 3533: 3534: Tue Mar 15 20:02:35 1994 Jason Merrill ([email protected]) 3535: 3536: * search.c (get_base_distance_recursive): Two binfos can only 3537: represent the same object if they are both via_virtual. 3538: 3539: * class.c (finish_base_struct): Check vbases for ambiguity, too. 3540: 3541: * search.c (get_vbase_types): Accept binfo argument, too. 3542: 3543: Tue Mar 15 19:22:05 1994 Kung Hsu ([email protected]) 3544: 3545: * decl.c (complete_array_type): complete TYPE_DOMAIN of the 3546: initializer also, because back-end requires it. 3547: 3548: Tue Mar 15 15:33:31 1994 Jason Merrill ([email protected]) 3549: 3550: * error.c (dump_expr): Support member functions (which show up as 3551: OFFSET_REFs). 3552: 3553: Mon Mar 14 16:24:36 1994 Mike Stump ([email protected]) 3554: 3555: * init.c (build_new): Set the return type of multidimensional 3556: news correctly. 3557: 3558: Fri Mar 11 15:35:39 1994 Kung Hsu ([email protected]) 3559: 3560: * call.c (build_method_call): if basetype not equal to type 3561: of the instance, use the type of the instance in building 3562: destructor. 3563: 3564: Thu Mar 10 17:07:10 1994 Kung Hsu ([email protected]) 3565: 3566: * parse.y (direct_notype_declarator): add push_nested_type for 3567: 'template_type SCOPED_NAME' rule. 3568: 3569: Tue Mar 8 00:19:58 1994 Jason Merrill ([email protected]) 3570: 3571: * parse.y (parm): Add typed_declspec1 {absdcl, epsilon} rules. 3572: 3573: Sat Mar 5 04:47:48 1994 Jason Merrill ([email protected]) 3574: 3575: * parse.y (regcast_or_absdcl): New nonterminal to implement late 3576: reduction of constructs like `int ((int)(int)(int))'. 3577: (cast_expr): Use it. 3578: (sub_cast_expr): Everything that can come after a cast. 3579: (typed_declspecs1): typed_declspecs that are not typed_typespecs. 3580: (direct_after_type_declarator): Lose PAREN_STAR_PAREN rule. 3581: (direct_abstract_declarator): Replace '(' parmlist ')' rule with 3582: '(' complex_parmlist ')' and regcast_or_absdcl. 3583: (parmlist): Split 3584: (complex_parmlist): Parmlists that are not also typenames. 3585: (parms_comma): Enabler. 3586: (named_parm): A parm that is not also a typename. Use declarator 3587: rather than dont_see_typename abs_or_notype_decl. Expand 3588: typed_declspecs inline. 3589: (abs_or_notype_decl): Lose. 3590: (dont_see_typename): Comment out. 3591: (bad_parm): Break out abs_or_notype_decl into two rules. 3592: 3593: Fri Mar 4 18:22:39 1994 Jason Merrill ([email protected]) 3594: 3595: * decl2.c (reparse_decl_as_casts): New function to change parse 3596: nodes for `(int)(int)(int)' from "function taking int and returning 3597: function taking int and returning function taking int" to "... cast 3598: to int, cast to int, cast to int". 3599: 3600: * decl2.c (reparse_decl_as_expr): Recursive function to change 3601: parse nodes for `A()()' from "function returning function returning 3602: A" to "A().operator()". 3603: 3604: * parse.y (primary): Replace `typespec LEFT_RIGHT' rule with 3605: `typespec fcast_or_absdcl' rule. 3606: (fcast_or_absdcl): New nonterminal to implement late reduction of 3607: constructs like `A()()()()'. 3608: (typename): Replace `typespec absdcl1' rule with 3609: `typespec direct_abstract_declarator' rule. 3610: (direct_abstract_declarator): Replace `LEFT_RIGHT type_quals' rule 3611: with `fcast_or_absdcl type_quals' rule. 3612: 3613: Fri Mar 4 16:18:03 1994 Mike Stump ([email protected]) 3614: 3615: * tree.c (lvalue_p): Improve OFFSET_REF handling, so that it 3616: matches Section 5.5. 3617: 3618: Fri Mar 4 14:01:59 1994 Jason Merrill ([email protected]) 3619: 3620: * error.c (dump_type_prefix): Don't print basetype twice for 3621: pmfs. 3622: 3623: Fri Mar 4 13:24:33 1994 Mike Stump ([email protected]) 3624: 3625: * typeck.c (convert_arguments): Handle setHandler(A::handlerFn) 3626: so that it is like setHandler(&A::handlerFn). Cures an `invalid 3627: lvalue in unary `&''. 3628: 3629: Fri Mar 4 11:15:59 1994 Jason Merrill ([email protected]) 3630: 3631: * gxxint.texi (Copying Objects): New section discussing default 3632: op= problems with virtual inheritance. 3633: 3634: * decl2.c (grokoptypename): Just does grokdeclarator and 3635: build_typename_overload, since the parser can't call grokdeclarator 3636: directly. 3637: 3638: * method.c (build_typename_overload): Set IDENTIFIER_GLOBAL_VALUE 3639: and TREE_TYPE on generated identifiers. 3640: 3641: * decl.c (grokdeclarator): Don't deal with TYPE_EXPRs anymore. 3642: 3643: * parse.y (parm): Convert `const char *' to `__opPCc' here. 3644: 3645: * error.c (dump_decl): Say sorry rather than my_friendly_aborting 3646: if we can't figure out what to do. 3647: (dump_type*): Ditto. 3648: 3649: * typeck2.c (build_m_component_ref): 'component' is an expr, not 3650: a decl. Also move the IS_AGGR_TYPE check after the stripping of 3651: REFERENCE_TYPE. 3652: 3653: Fri Mar 4 04:46:05 1994 Mike Stump ([email protected]) 3654: 3655: * call.c (build_method_call): Handle b->setHandler(A::handlerFn) 3656: so that it is like b->setHandler(&A::handlerFn). Cures an `invalid 3657: lvalue in unary `&''. 3658: 3659: Thu Mar 3 12:38:15 1994 Jason Merrill ([email protected]) 3660: 3661: * parse.y: Add precedence specification for START_DECLARATOR. 3662: (type_quals): Move before primary. 3663: (typename): Move before typed_declspecs, add 'typespec absdcl1' rule. 3664: 3665: * decl2.c (grokoptypename): Lose. 3666: 3667: * decl.c (grokdeclarator): Parse TYPE_EXPRs in the initial scan, 3668: rather than waiting until later. 3669: 3670: Wed Mar 2 14:12:23 1994 Jason Merrill ([email protected]) 3671: 3672: * parse.y (unary_expr): Use 'typename' in 'new' rules, rather 3673: than expanding it inline. 3674: (typename): Expand empty option of (former) absdcl inline. 3675: (abs_or_notype_decl): Ditto. 3676: (absdcl): Lose empty rule. 3677: (conversion_declarator): New nonterminal for 'typename' of 'operator 3678: typename'. 3679: (operator_name): Use it instead of absdcl. 3680: 3681: * parse.y: Add precedence declarations for SCOPED_TYPENAME, 3682: TYPEOF, and SIGOF. 3683: (typed_declspecs): Accept typed_typespecs, rather than typespec 3684: directly. Add rules with reserved_typespecquals. 3685: (reserved_declspecs): Don't accept typespecqual_reserved at the 3686: beginning of the list. The typed_declspecs rule will deal with this 3687: omission. 3688: (declmods): Accept nonempty_type_quals, rather than TYPE_QUAL 3689: directly. 3690: 3691: * parse.y (direct_notype_declarator, 3692: direct_after_type_declarator, direct_abstract_declarator): Split up 3693: the declarator1 nonterminals to match the draft standard and avoid 3694: ambiguities. 3695: (new_type_id, new_declarator, direct_new_declarator, 3696: new_member_declarator): New nonterminals to implement the subset of 3697: 'typename' allowed in new expressions. 3698: (unary_expr): Use new_type_id instead of typename. 3699: (after_type_declarator1, absdcl1): Fix semantics of member pointers. 3700: (abs_member_declarator, after_type_member_declarator): Lose. 3701: 3702: * parse.y (absdcl1): Don't require parens around 3703: abs_member_declarator. 3704: (abs_member_declarator): Lose see_typename from rules. 3705: (after_type_member_declarator): Ditto. 3706: 3707: * tree.c (get_identifier_list): New function, containing code 3708: previously duplicated in get_decl_list and list_hash_lookup_or_cons. 3709: (get_decl_list): Use it. 3710: (list_hash_lookup_or_cons): Ditto. 3711: 3712: * parse.y (typed_declspecs, declmods): It's not necessary to hash 3713: the declspecs on class_obstack, so don't. This way typed_typespecs 3714: can reduce to typed_declspecs. 3715: 3716: Wed Mar 2 14:29:18 1994 Jason Merrill ([email protected]) 3717: 3718: * cvt.c (build_up_reference): If we aren't checking visibility, 3719: also allow base->derived conversions. 3720: 3721: Mon Feb 28 15:14:29 1994 Per Bothner ([email protected]) 3722: 3723: * typeck.c (build_c_cast): Remove bogus hack when converting 3724: to a reference type. 3725: 3726: * cp-tree.h (lang_decl::vbase_init_list, DECL_VBASE_INIT_LIST): 3727: Removed, not used. 3728: (lang_stype::methods, lang_decl::next_method): New fields. 3729: (CLASSTYPE_METHODS, DECL_NEXT_METHOD): New macros. 3730: * decl.c (duplicate_decls): Preserve DECL_NEXT_METHOD. 3731: 3732: * cp-tree.h, decl2.c (flag_vtable_hack): New flag. 3733: * decl2.c (finish_vtable_vardecl): If flag_vtable_hack, 3734: and !CLASSTYPE_INTERFACE_KNOWN, try to use the presence of 3735: a non-inline virtual function to control emitting of vtables. 3736: * class.c (finish_struct): Build CLASSTYPE_METHODS list. 3737: * search.c (build_vbase_vtables_init): Don't assemble_external 3738: (yet) if flag_vtable_hack. 3739: * class.c (build_vfn_ref): Ditto. 3740: 3741: Mon Feb 28 14:54:13 1994 Jason Merrill ([email protected]) 3742: 3743: * parse.y (component_decl): Don't include "typed_declspecs 3744: declarator ';'" speedup, since it breaks enums. 3745: 3746: Fri Feb 25 15:43:44 1994 Per Bothner ([email protected]) 3747: 3748: * class.c (finish_struct): Minor optimization for building 3749: fn_fields list. 3750: 3751: Fri Feb 25 15:23:42 1994 Jason Merrill ([email protected]) 3752: 3753: * decl.c (start_function): Fix detection of function overloading. 3754: 3755: Thu Feb 24 22:26:19 1994 Mike Stump ([email protected]) 3756: 3757: * lex.c (check_newline): #pragma interface can take a string 3758: argument, just like #pragma implementation. #pragma implementation 3759: checks for garbage on the line, line #pragma interface does. Main 3760: input files do not auto implement like named files, #pragma 3761: implementation must be used explicitly. 3762: 3763: Thu Feb 24 17:09:01 1994 Jason Merrill ([email protected]) 3764: 3765: * parse.y (components): Handle list of one again. 3766: (notype_components): Ditto. 3767: (after_type_declarator1): Take maybe_raises out again. 3768: 3769: * gxxint.texi (Parser): Document additional r/r conflict. 3770: 3771: Wed Feb 23 14:42:55 1994 Jason Merrill ([email protected]) 3772: 3773: * gxxint.texi (Parser): Add node. 3774: 3775: * Makefile.in (stamp-parse): Update expected conflict count. 3776: 3777: * parse.y (various): Replace "declmods declarator" with "declmods 3778: notype_declarator". The comment saying that "declmods declarator ';'" 3779: corresponds to "int i;" was wrong; it corresponds to "const i;". 3780: (component_decl): Add "typed_declspecs declarator ';'" rule; this 3781: *does* correspond to "int i;". Change "declmods components" to 3782: "declmods notype_components". 3783: (components): Don't deal with a list of one anymore. 3784: (notype_components): New nonterminal, corresponds to notype_declarator. 3785: ({after_,no}type_component_decl{,0}): More new nonterminals. 3786: ({after_,no}type_declarator): Fold in START_DECLARATOR token. 3787: Eliminates four reduce/reduce conflicts. 3788: 3789: (expr): Depend on nontrivial_exprlist instead of nonnull_exprlist. 3790: (nontrivial_exprlist): New nonterminal: A list of at least two 3791: expr_no_commas's. 3792: (nonnull_exprlist): Depend on nontrival_exprlist. 3793: Eliminates four reduce/reduce conflicts. 3794: 3795: (named_class_head): Move intermediate code block into separate 3796: nonterminal so that we can stick %prec EMPTY on it. 3797: 3798: Add more %prec EMPTY's to eliminate remaining shift/reduce 3799: conflicts. 3800: 3801: (after_type_declarator): Add maybe_raises to fndecl rules. 3802: (after_type_declarator_no_typename): Remove. 3803: For correctness. 3804: 3805: Document remaining reduce/reduce conflicts. 3806: 3807: Tue Feb 22 12:10:32 1994 Jason Merrill ([email protected]) 3808: 3809: * search.c (get_base_distance): Only bash BINFO_INHERITANCE_CHAIN 3810: (TYPE_BINFO (type)) if we care about the path. 3811: 3812: * tree.c (lvalue_p): A COND_EXPR is an lvalue if both of the 3813: options are. 3814: 3815: Mon Feb 21 19:59:40 1994 Mike Stump ([email protected]) 3816: 3817: * Makefile.in (mostlyclean): lex.c is a source file, don't 3818: remove. 3819: 3820: Sat Feb 19 01:27:14 1994 Jason Merrill ([email protected]) 3821: 3822: * parse.y: Eliminate 20 shift/reduce conflicts. 3823: 3824: Fri Feb 18 11:49:42 1994 Jason Merrill ([email protected]) 3825: 3826: * pt.c (type_unification): Add subr argument; if set, it means 3827: that we are calling ourselves recursively, so a partial match is OK. 3828: (unify): Support pointers to methods and functions. 3829: (tsubst): Support method pointers. 3830: * decl.c (build_ptrmemfunc_type): No longer static, so that 3831: tsubst can get at it. 3832: 3833: * init.c (is_aggr_typedef): Pretend template type parms are 3834: aggregates. 3835: * decl2.c (build_push_scope): If cname refers to a template type 3836: parm, just grin and nod. 3837: 3838: * call.c (build_overload_call_real): Pass subr argument to 3839: type_unification. 3840: * pt.c (do_function_instantiation): Ditto. 3841: * class.c (instantiate_type): Ditto. 3842: 3843: * search.c (get_base_distance): If BINFO is a binfo, use it and 3844: don't mess with its BINFO_INHERITANCE_CHAIN. 3845: 3846: * cvt.c (convert_to_reference): Fix temporary generation. 3847: If ambiguous, return error_mark_node. 3848: 3849: * init.c (build_new): Put back some necessary code. 3850: 3851: Thu Feb 17 15:39:47 1994 Jason Merrill ([email protected]) 3852: 3853: * init.c (build_new): Deal with array types properly. 3854: 3855: * search.c (get_binfo): Become a shell for get_base_distance. 3856: (get_binfo_recursive): Lose. 3857: (get_base_distance_recursive): Find the path to the via_virtual base 3858: that provides the most access. 3859: (get_base_distance): Ditto. 3860: 3861: * parse.y (explicit_instantiation): Syntax is 'template class 3862: A<int>', not 'template A<int>'. 3863: 3864: * typeck.c (convert_for_initialization): Remove bogus warning. 3865: 3866: * parse.y (datadef): Revert patch of Oct 27. 3867: 3868: Thu Feb 17 15:12:29 1994 Per Bothner ([email protected]) 3869: 3870: * class.c (build_vfn_ref): Cast delta field to ptrdiff_type_node, 3871: rather than integer_type_node. Does wonders for the Alpha. 3872: 3873: Thu Feb 17 13:36:21 1994 Jason Merrill ([email protected]) 3874: 3875: * decl.c (build_ptrmemfunc_type): Make sure that the pmf type 3876: goes onto the same obstack as its target type. 3877: 3878: Wed Feb 16 00:34:46 1994 Jason Merrill ([email protected]) 3879: 3880: * cvt.c (convert_to_reference): If converting via constructor 3881: on local level, go back to build_cplus_new approach. 3882: 3883: * tree.c (build_cplus_new): If with_cleanup_p, set cleanup slot 3884: to error_mark_node to prevent expand_expr from building a cleanup 3885: for this variable. 3886: 3887: * lex.c (default_assign_ref_body): Return *this from the memcpy 3888: version, too. 3889: 3890: * decl.c (grok_reference_init): Just return if called with 3891: error_mark_node, don't worry about initializing non-const reference 3892: with temporary. 3893: 3894: * cvt.c (convert_to_reference): Do the right thing for 3895: non-aggregate reference conversions, pedwarn when generating a 3896: non-const reference to a temporary. 3897: 3898: * class.c (finish_struct): TYPE_HAS_COMPLEX_{INIT,ASSIGN}_REF and 3899: TYPE_NEEDS_CONSTRUCTING all depend on TYPE_USES_VIRTUAL_BASECLASSES 3900: again. 3901: 3902: Tue Feb 15 19:47:19 1994 Jason Merrill ([email protected]) 3903: 3904: * decl.c (grok_reference_init): Pawn off a lot of the work on 3905: convert_to_reference. Generally do the right thing. 3906: 3907: * cvt.c (convert_to_reference): Conform to the initial comment; 3908: i.e. don't create temps if decl != error_mark_node. Handle 3909: cleanups better for temps that do get created. Don't pretend 3910: that we can use an 'A' to initialize a 'const double &' just by 3911: tacking on a NOP_EXPR. Support LOOKUP_SPECULATIVELY. 3912: 3913: * call.c (build_method_call): Set TREE_HAS_CONSTRUCTOR on 3914: constructor calls. 3915: 3916: Mon Feb 14 14:50:17 1994 Jason Merrill ([email protected]) 3917: 3918: * decl.c (grok_reference_init): Make a temporary for initializing 3919: const reference from constant expression. 3920: 3921: Mon Feb 14 11:31:31 1994 Per Bothner ([email protected]) 3922: 3923: * cp-tree.h, decl.c (set_identifier_local_value): Deleted function. 3924: * decl.c (pushdecl): Define decl in correct binding_level 3925: (which isn't always the inner_binding_level). 3926: 3927: * cvt.c (build_up_reference): Don't ever call expand_aggr_init. 3928: It's ugly, and I don't think it's the right thing to do. 3929: 3930: * cp-tree.h, class.c, decl.c, decl2.c, sp/search.c: 3931: Remove NEW_CLASS_SCOPING, assuming it is always 1. 3932: * decl.c (pop_decl_level): Removed; manually inlined. 3933: 3934: Sun Feb 13 19:04:56 1994 Jason Merrill ([email protected]) 3935: 3936: * class.h (candidate): Add basetypes field. 3937: 3938: * call.c (build_method_call): Do access checking after choosing a 3939: function, not before. 3940: 3941: * Makefile.in (cvt.o, call.o, method.o): Depend on class.h. 3942: (mostlyclean): Remove ../cc1plus. 3943: 3944: Fri Feb 11 11:52:26 1994 Jason Merrill ([email protected]) 3945: 3946: * class.c (finish_struct): Don't allow adjusting access to a field 3947: of a base class if a local field has the same name. 3948: 3949: * error.c (dump_type_prefix): Output basetype for METHOD_TYPEs. 3950: 3951: hu Jan 13 17:55:51 EST 1994 Gnanasekaran Swaminathan ([email protected]) 3952: 3953: * cp-tree.h (DESTRUCTOR_NAME_P): do not confuse AUTO_TEMP names 3954: with destructor names when either NO_DOLLAR_IN_LABEL or 3955: NO_DOT_IN_LABEL are not defined. 3956: 3957: Now `template <class T, T f(T&), const T*> class A {...}' works. 3958: 3959: * pt.c (grok_template_type): substitute template parm types 3960: with actual types in complex type as well. 3961: (coerce_template_parms): update the grok_template_type () 3962: function call. 3963: 3964: * pt.c (tsubst): Traverse method list using DECL_CHAIN. 3965: 3966: * decl.c (grok_op_properties): Allow operator++/-- to have 3967: default arguments. 3968: 3969: * typeck2.c (store_init_value): Don't abort when called to 3970: initialize a type that needs constructing with a CONSTRUCTOR. 3971: 3972: * init.c (expand_aggr_init_1, CONSTRUCTOR case): If 3973: store_init_value fails, build and expand an INIT_EXPR. If 3974: store_init_value succeeds, call expand_decl_init. 3975: 3976: Fri Feb 11 02:49:23 1994 Mike Stump ([email protected]) 3977: 3978: * class.c (build_vbase_path): Use complete_type_p instead of 3979: resolves_to_fixed_type_p to determine if the virtual bases are in 3980: their right place for the type of expr. Cures problem of thinking a 3981: virtual base class is one place, when it is in fact someplace else. 3982: 3983: Fri Feb 11 00:26:46 1994 Mike Stump ([email protected]) 3984: 3985: * init.c (resolve_offset_ref): Make sure we first convert to 3986: intermediate type, if given, when dealing with members off `this'. 3987: Solves an incorrrect `type `foo' is not a base type for type 3988: `multiple'' when it is infact, a base type. 3989: 3990: Thu Feb 10 21:49:35 1994 Mike Stump ([email protected]) 3991: 3992: * class.c (modify_other_vtable_entries): Use get_binfo, instead 3993: of binfo_value. Solves problem with compiler giving a `base class 3994: `B' ambiguous in binfo_value (compiler error)' on complex MI 3995: herarchies, when a virtual function is first defied in a virtual 3996: base class. 3997: 3998: Thu Feb 10 17:19:32 1994 Mike Stump ([email protected]) 3999: 4000: * class.c (build_vbase_path): Don't complain about ambiguous 4001: intermediate conversion when converting down to a virtual base 4002: class, even if they might seem to be ambiguous. 4003: 4004: Thu Feb 10 12:18:26 1994 Jason Merrill ([email protected]) 4005: 4006: * typeck2.c (build_functional_cast): #if 0 out constructor 4007: inheritance code, improve error messages. 4008: 4009: * class.c (finish_base_struct): Complain about base with only 4010: non-default constructors in derived class with no constructors. 4011: 4012: * decl.c (grokdeclarator): Fix detection of virtual new/delete. 4013: 4014: Wed Feb 9 22:02:32 1994 Mike Stump ([email protected]) 4015: 4016: * search.c (build_mi_virtuals, add_mi_virtuals, 4017: report_ambiguous_mi_virtuals): Removed unneeded code. 4018: * class.c (finish_struct_bits): Ditto. 4019: 4020: Wed Feb 9 11:27:17 1994 Jason Merrill ([email protected]) 4021: 4022: * pt.c (end_template_instantiation): Push decl before 4023: pop_from_top_level. 4024: 4025: * typeck2.c (build_m_component_ref): Make sure datum is of 4026: aggregate type. 4027: 4028: * init.c (get_type_value): New function, returns 4029: IDENTIFIER_TYPE_VALUE or IDENTIFIER_CLASS_TYPE_VALUE or NULL_TREE. 4030: 4031: * call.c (build_method_call): Don't die on call to destructor for 4032: non-type. 4033: 4034: * decl.c (grokdeclarator): Complain about virtual op new and op 4035: delete, make static virtuals unvirtual instead of unstatic. 4036: 4037: * typeck.c (build_c_cast): Also call default_conversion on 4038: methods. 4039: 4040: * decl.c (grokdeclarator): Don't complain about anonymous 4041: bitfields. 4042: 4043: * parse.y (simple_stmt, for loops): Move the continue point after 4044: the cleanups. 4045: 4046: * class.c (finish_struct): Fix setting of 4047: TYPE_HAS_COMPLEX_INIT_REF. 4048: 4049: Tue Feb 8 13:21:40 1994 Jason Merrill ([email protected]) 4050: 4051: * init.c (build_new): Deal with `new double (1)'. 4052: 4053: * class.c (finish_struct): TYPE_HAS_COMPLEX_*_REF are supersets of 4054: TYPE_HAS_REAL_*_REF, but TYPE_HAS_COMPLEX_INIT_REF is independent of 4055: TYPE_NEEDS_CONSTRUCTING. 4056: 4057: * decl.c (duplicate_decls): Propagate access decls. 4058: 4059: * typeck2.c (process_init_constructor): Accept empty_init_node 4060: for initializing unions. 4061: 4062: * class.c, lex.c, cp-tree.h: Use 4063: TYPE_HAS_COMPLEX_ASSIGN_REF where TYPE_HAS_REAL_ASSIGN_REF was used 4064: before, use TYPE_HAS_COMPLEX_INIT_REF for TYPE_NEEDS_CONSTRUCTING in 4065: some places. 4066: 4067: * decl.c (finish_decl): Don't complain about uninitialized const 4068: if it was initialized before. 4069: 4070: Mon Feb 7 18:12:34 1994 Jason Merrill ([email protected]) 4071: 4072: * lex.c (default_assign_ref_body): Don't deal with vbases for 4073: now. 4074: 4075: * decl.c (finish_decl): Fix reversed logic for objects and other 4076: things that need to be constructed but have no initializer. 4077: 4078: * class.c (finish_struct): Don't set TYPE_HAS_* flags that are 4079: set by grok_op_properties or finish_decl. 4080: 4081: * decl.c: Don't warn about extern redeclared inline unless 4082: -Wextern-inline is given. 4083: * decl2.c (lang_decode_option): Ditto. 4084: * cp-tree.h: Ditto. 4085: 4086: Mon Feb 7 17:29:24 1994 Per Bothner ([email protected]) 4087: 4088: * decl.c (pushdecl_with_scope): Fix thinko. Add forward 4089: declaration. 4090: 4091: * decl.c (pushdecl_with_scope): New function. 4092: * decl.c (pushdecl_top_level): Use new function. 4093: * decl.c (pushtag): Initialize newdecl. 4094: * decl.c (pushtag): Push new type decl into correct scope. 4095: 4096: Mon Feb 7 14:42:03 1994 Jason Merrill ([email protected]) 4097: 4098: * call.c, cvt.c, init.c, search.c, cp-tree.h: 4099: Eradicate LOOKUP_PROTECTED_OK. 4100: 4101: Mon Feb 7 13:57:19 1994 Per Bothner ([email protected]) 4102: 4103: * decl.c (pushtag, xref_tag), cp-tree.h: Add extra parameter 4104: 'globalize' to signify implicit declarations. 4105: * decl.c (globalize_nested_type, maybe_globalize_type): Removed. 4106: * decl.c (set_identifier_type_value_with_scope): New function. 4107: * decl.c (set_identifier_local_value): Simplify. 4108: * spew.c (yylex, do_addr): Modify to return a _DEFN if a 4109: forward declaration (followed by ';' and not preceded by 'friend'). 4110: * class.c, decl.c, except.c, init.c, parse.y, 4111: pt.c, search.c: Add new argument to calls to xref_tag and 4112: pushtag. 4113: 4114: Mon Feb 7 00:22:59 1994 Jason Merrill ([email protected]) 4115: 4116: * cp-tree.h (ACCESSIBLY_UNIQUELY_DERIVED_P): New macro, means what 4117: ACCESSIBLY_DERIVED_FROM_P meant before. 4118: (ACCESSIBLY_DERIVED_FROM_P): Now disregards ambiguity. 4119: 4120: * cvt.c (build_up_reference): Call get_binfo with PROTECT == 1. 4121: 4122: * search.c (get_base_distance_recursive): Members and friends of 4123: a class X can implicitly convert an X* to a pointer to a private or 4124: protected immediate base class of X. 4125: (get_binfo_recursive): Ditto. 4126: (get_base_distance): Ignore ambiguity if PROTECT < 0. 4127: (get_binfo): Lose multiple values of PROTECT. 4128: (compute_access): Protected is OK if the start of the 4129: search is an accessible base class of current_class_type. 4130: 4131: * method.c (build_opfncall): Do check access on operator new here. 4132: 4133: * decl.c (finish_function): Don't check access on operator new 4134: here. 4135: 4136: Sun Feb 6 14:06:58 1994 Jason Merrill ([email protected]) 4137: 4138: * decl.c (xref_tag): The base of a derived struct is NOT always 4139: public. Duh. 4140: 4141: * pt.c (do_explicit_instantiation): New function, called from 4142: parser to do explicit function instantiation. 4143: (type_unification): Allow the args list to be terminated with 4144: void_list_node. 4145: (do_pending_expansions): Look at i->interface for non-member 4146: templates. 4147: 4148: * parse.y (datadef): Move explicit_instantiation here. 4149: (structsp): From here. 4150: (datadef): Complain about `int;'. 4151: 4152: Sun Feb 6 12:33:18 1994 Per Bothner ([email protected]) 4153: 4154: * pt.c (end_template_instantiation), cp-tree.h: Remove unused 4155: second parameter, and simplify first from a TREE_LIST where 4156: we only care about its TREE_VALUE to just the value (an IDENTIFIER). 4157: * pt.c (instantiate_member_templates): Simplify argument list 4158: from a TREE_LIST to just an IDENTIFIER. 4159: * lex.c (yyprint): PRE_PARSED_CLASS_DECL is now just an IDENTIFIER. 4160: * parse.y (template_instantiate_once): Simplify accordingly. 4161: * decl.c (inner_binding_level): New. Use various places to 4162: simplify. 4163: 4164: Sun Feb 6 02:49:37 1994 Jason Merrill ([email protected]) 4165: 4166: * typeck2.c (build_functional_cast): int() -> int(0). 4167: 4168: Sat Feb 5 00:53:21 1994 Jason Merrill ([email protected]) 4169: 4170: * class.c (finish_struct): Don't do a bitwise copy for op= if the 4171: class has a virtual function table. 4172: 4173: * typeck.c (convert_for_initialization): Restore warnings about 4174: not using defined op=. Should really be my_friendly_aborts, I 4175: s'pose. 4176: 4177: Fri Feb 4 14:21:00 1994 Jason Merrill ([email protected]) 4178: 4179: * class.c (finish_struct): Tidy up conditions for doing bitwise 4180: copies of objects. 4181: 4182: * decl.c (build_default_constructor): #if 0 out. 4183: 4184: * *: Eradicate TYPE_GETS_{ASSIGNMENT,ASSIGN_REF,CONST_ASSIGN_REF, 4185: CONST_INIT_REF}, TYPE_HAS_REAL_CONSTRUCTOR. 4186: 4187: * decl.c (grokdeclarator): Don't return void_type_node for 4188: friends being defined here. 4189: 4190: * init.c (perform_member_init): Only do the init if it's useful. 4191: 4192: * lex.c (default_copy_constructor_body): If we don't need to do 4193: memberwise init, just call __builtin_memcpy. 4194: (default_assign_ref_body): Ditto. 4195: 4196: * decl.c (grokdeclarator): If friendp && virtualp, friendp = 0. 4197: 4198: Fri Feb 4 13:02:56 1994 Mike Stump ([email protected]) 4199: 4200: * lex.c (reinit_parse_for_method, cons_up_default_function): 4201: Don't give warn_if_unknown_interface warning when it came from a 4202: system header file. 4203: * pt.c (end_template_decl, instantiate_template): Ditto. 4204: * decl.c (start_decl): Ditto. 4205: 4206: Fri Feb 4 00:41:21 1994 Jason Merrill ([email protected]) 4207: 4208: * decl.c (grokdeclarator): Don't try to set TYPE_WAS_ANONYMOUS on 4209: enums. 4210: 4211: * decl2.c (constructor_name_full): Use IS_AGGR_TYPE_CODE instead of 4212: IS_AGGR_TYPE, since we don't know it's a type. 4213: 4214: Thu Feb 3 11:36:46 1994 Jason Merrill ([email protected]) 4215: 4216: * decl.c (grokdeclarator): Don't complain about anonymous unions. 4217: 4218: * cp-tree.h (TYPE_WAS_ANONYMOUS): This struct was originally 4219: anonymous, but had a name given to it by a typedef. 4220: 4221: * decl.c (grokdeclarator): When renaming an anonymous struct, set 4222: TYPE_WAS_ANONYMOUS. 4223: 4224: * decl2.c (constructor_name_full): Use TYPE_WAS_ANONYMOUS. 4225: 4226: * cp-tree.h (DECL_UNDEFINED_FRIENDS): #if 0 out. 4227: 4228: * init.c (xref_friend): Don't set up DECL_UNDEFINED_FRIENDS. 4229: (embrace_waiting_friends): Don't use DECL_UNDEFINED_FRIENDS. 4230: 4231: * decl.c (grokdeclarator): Set TYPE_NESTED_NAME properly on nested 4232: anonymous structs that get typedef'd. 4233: 4234: * decl.c (grokdeclarator): Always return void_type_node for 4235: friends. 4236: 4237: * error.c (dump_function_decl): Don't use DECL_CLASS_CONTEXT for 4238: friends. 4239: (dump_function_decl): Don't print out default args for 4240: a function used in an expression. 4241: 4242: * decl.c (grokdeclarator): Give error on abstract declarator used 4243: in an invalid context (i.e. `void (*)();'). 4244: 4245: * error.c (cp_line_of): Support _TYPE nodes. 4246: (cp_file_of): Ditto. 4247: 4248: * cvt.c (build_up_reference): Don't abort if passed a SAVE_EXPR; 4249: it can happen for the RHS of an assignment stmt where the LHS is 4250: a COND_EXPR. 4251: 4252: * init.c (expand_aggr_init_1): Deal with bracketed initializer 4253: lists properly. 4254: 4255: * class.c (finish_struct): Deal with enumerators and typedefs 4256: again. 4257: 4258: Wed Feb 2 11:30:22 1994 Jason Merrill ([email protected]) 4259: 4260: * class.c (finish_struct): Tidy up loop over fields. 4261: 4262: * errfn.c (cp_thing): Don't advance twice after a format. 4263: 4264: * class.c (finish_struct): Complain about needing a constructor 4265: if a member has only non-default constructors, and don't try to 4266: generate a default constructor. 4267: 4268: * decl.c (finish_decl): Also do the constructor thing if 4269: TYPE_NEEDS_CONSTRUCTING is set (for arrays). 4270: 4271: * search.c (unuse_fields): New function: mark all fields in this 4272: type unused. 4273: (dfs_unuse_fields): Helper function. 4274: 4275: * class.c (pushclass): If the new class is the same as the old 4276: class, still unuse the fields. 4277: (unuse_fields): Move to search.c. 4278: 4279: * decl.c (grok_op_properties): Add friendp argument. 4280: (grokfndecl): Pass it. 4281: (start_method): Ditto. 4282: 4283: * decl2.c (delete_sanity): Add use_global_delete parameter to catch 4284: ::delete calls. 4285: 4286: * parse.y (unary_expr): Pass new parameter to delete_sanity. 4287: 4288: * lex.c (default_copy_constructor_body): Don't choke if the union 4289: has no fields. 4290: (default_assign_ref_body): Ditto. 4291: 4292: * call.c (compute_conversion_costs_ansi): Do the right thing for 4293: ellipsis matches. 4294: 4295: * decl.c (push_to_top_level): Optimize. 4296: 4297: * decl.c (start_function): Look for the lexical scope of a friend 4298: in DECL_CLASS_CONTEXT. 4299: 4300: * init.c (do_friend): Set DECL_CLASS_CONTEXT on global friends. 4301: 4302: Tue Feb 1 15:59:24 1994 Jason Merrill ([email protected]) 4303: 4304: * cp-tree.h (TREE_GETS_PLACED_NEW): New macro. 4305: 4306: * init.c (init_init_processing): Don't assign BIN/BID to the 4307: IDENTIFIER_GLOBAL_VALUEs of their respective operators. 4308: (build_new): Check TREE_GETS_PLACED_NEW. 4309: 4310: * decl.c (grok_op_properties): Don't set TREE_GETS_NEW for a decl of 4311: op new with placement, set TREE_GETS_PLACED_NEW. 4312: 4313: * cp-tree.h (ANON_UNION_P): New macro. Applies to decls. 4314: 4315: * class.c (finish_struct): Don't treat anonymous unions like 4316: other aggregate members. Do synthesize methods for unions without 4317: a name, since they may or may not be "anonymous unions". 4318: 4319: * decl2.c (grok_x_components): Wipe out memory of synthesized methods 4320: in anonymous unions. 4321: 4322: * lex.c (default_copy_constructor_body): Support unions. 4323: (default_assign_ref_body): Ditto. 4324: 4325: Mon Jan 31 12:07:30 1994 Jason Merrill ([email protected]) 4326: 4327: * cp-tree.h: Fix documentation of LOOKUP_GLOBAL, add prototypes. 4328: 4329: * error.c (args_as_string): New function (%A), like type_as_string 4330: except NULL_TREE -> "..." 4331: 4332: * call.c (build_overload_call_real): Fix for new overloading. 4333: 4334: * decl.c (grok_op_properties): Set all of the TYPE_OVERLOADS_* flags 4335: here. 4336: 4337: * parse.y (operator_name): Instead of here. 4338: 4339: * typeck2.c (build_functional_cast): Treat a TREE_LIST as a list 4340: of functions. 4341: 4342: * call.c (build_overload_call_real): Support LOOKUP_SPECULATIVELY. 4343: 4344: * method.c (build_opfncall): Don't need to massage return value 4345: any more, call build_overload_call with all flags. 4346: 4347: * typeck.c (build_x_binary_op): Put back speculative call to 4348: build_opfncall. 4349: (build_x_unary_op): Ditto. 4350: (build_x_conditional_expr): Ditto. 4351: 4352: Mon Jan 31 10:00:30 1994 Mike Stump ([email protected]) 4353: 4354: * cvt.c (build_type_conversion_1): Change call to pedwarn into 4355: warning, and conditionalize upon warn_cast_qual. 4356: 4357: Fri Jan 28 11:48:15 1994 Jason Merrill ([email protected]) 4358: 4359: * search.c (lookup_field): If xbasetype is a binfo, copy it to 4360: avoid clobbering its inheritance info. 4361: 4362: * call.c (build_method_call): Don't overwrite basetype_path with 4363: TYPE_BINFO (inst_ptr_basetype) if they have the same type. 4364: 4365: * search.c (compute_access): Fix handling of protected inheritance 4366: and friendship with the enclosing class. 4367: 4368: * typeck2.c (store_init_value): Allow passing of TREE_CHAIN for 4369: initialization of arbitrary variable. 4370: 4371: * typeck2.c (build_functional_cast): Only try calling a method if 4372: one exists. 4373: 4374: * decl.c (grokdeclarator): Move handling of constructor syntax 4375: initialization into first loop for generality. 4376: (parmlist_is_random): Lose. 4377: 4378: * lex.c (cons_up_default_function): Set TREE_PARMLIST on arguments 4379: to default function. 4380: 4381: Thu Jan 27 19:26:51 1994 Jason Merrill ([email protected]) 4382: 4383: * decl.c (grokparms): Abort if we get called with something we don't 4384: expect. 4385: 4386: Thu Jan 27 17:37:25 1994 Mike Stump ([email protected]) 4387: 4388: * call.c (build_overload_call_real): Change argument complain to 4389: flags to match style of rest of code. Pass it down to 4390: build_function_call_real as necessary. 4391: * call.c (build_overload_call, build_overload_call_maybe): Change 4392: argument complain to flags to match style of rest of code. 4393: * cp-tree.h (build_function_call_real): Added fourth flags 4394: argument. 4395: * cvt.c (convert_to_reference): Only give warning messages, if 4396: LOOKUP_COMPLAIN is set. 4397: * typeck.c (build_x_function_call): Change simple complain 4398: argument to build_overload_call_maybe and build_overload_call, to 4399: LOOKUP_COMPLAIN to match style of rest of code. 4400: * typeck2.c (build_functional_cast): Ditto. 4401: * typeck.c (build_function_call_real): Add flags, so that we can 4402: not complain, if we don't want to complain. Complain about 4403: arguments, if we are complaining, otherwise don't. 4404: * typeck.c (build_function_call, build_function_call_maybe): 4405: Stick in flags argument. 4406: * typeck.c (build_x_binary_op, build_x_unary_op, 4407: build_x_conditional_expr, build_x_compound_expr): Follow style of 4408: build_x_indirect_ref, as it is more correct and more common. 4409: 4410: Thu Jan 27 14:36:20 1994 Jason Merrill ([email protected]) 4411: 4412: * call.c (build_method_call): Don't check for being called with 4413: a pointer. 4414: 4415: * decl2.c (finish_file): Don't play with DECL_CLASS_CONTEXT for the 4416: static initializer function. 4417: 4418: * init.c (build_member_call): Use convert_force here, too. 4419: 4420: * search.c (compute_access): Only treat static members specially 4421: if they are referenced directly. 4422: 4423: Wed Jan 26 18:28:14 1994 Jason Merrill ([email protected]) 4424: 4425: * gxxint.texi (Access Control): New node. 4426: 4427: * search.c (current_scope): New function; returns whichever of 4428: current_class_type and current_function_decl is the most nested. 4429: (compute_access): Total overhaul to make it clearer and more 4430: correct. Don't use the cache for now; in the only situation where 4431: it was used before, it gained nothing. This frees up three of the 4432: DECL_LANG_FLAGs for possible other use! 4433: 4434: * cp-tree.h: #if 0 out DECL_PUBLIC & friends. 4435: 4436: * typeck.c (build_component_ref_1): Don't check DECL_PUBLIC. 4437: 4438: * call.c (build_method_call): Use convert_force to cast `this' -- 4439: rely on the access checking for the method itself. 4440: 4441: * init.c (is_friend): Do the nesting thing, handle types. I am 4442: my own friend. 4443: (is_friend_type): Become a shell for is_friend. 4444: (add_friend): Never stick in ctype. 4445: Why are the friendship functions in init.c, anyway? 4446: 4447: Wed Jan 26 17:50:00 1994 Mike Stump ([email protected]) 4448: 4449: * cvt.c (build_type_conversion_1): Don't conditionalize call to 4450: pedwarn upon pedantic. 4451: 4452: Wed Jan 26 17:20:46 1994 Mike Stump ([email protected]) 4453: 4454: * cvt.c (convert_to_reference): Add 8.4.3 checking so that one 4455: gets a warning if one tries to initialize a non-const & from a 4456: non-lvalue. 4457: * cvt.c (convert_to_reference): Use %P format for argument 4458: numbers in warnings. 4459: 4460: Wed Jan 26 14:35:06 1994 Mike Stump ([email protected]) 4461: 4462: * init.c (build_delete): Follow style in call.c to construct the 4463: virtual call to the desctructor, as that code is right. Fixes a 4464: problem of the compiler saying a pointer conversion is ambiguous. 4465: 4466: Wed Jan 26 11:28:14 1994 Jason Merrill ([email protected]) 4467: 4468: * cp-tree.h (VTABLE_NAME_P): Change other occurrence of 4469: VTABLE_NAME_FORMAT to VTABLE_NAME. 4470: 4471: * *: s/visibility/access/g 4472: 4473: Tue Jan 25 18:39:12 1994 Jason Merrill ([email protected]) 4474: 4475: * typeck.c (build_modify_expr): Don't smash references if INIT_EXPR. 4476: 4477: Tue Jan 25 13:54:29 1994 Mike Stump ([email protected]) 4478: 4479: * init.c (build_delete): Back out Jan 17th & 18th pacthes, as 4480: they break libg++. 4481: 4482: Tue Jan 25 13:11:45 1994 Jason Merrill ([email protected]) 4483: 4484: * decl.c (duplicate_decls): Fix pointer arithmetic. 4485: 4486: Mon Jan 24 15:50:06 1994 Chip Salzenberg ([email protected]) 4487: 4488: [ cp-* changes propagated from c-* changes in 940114 snapshot ] 4489: * cp-parse.y (maybe_attribute): Allow multiple __attribute__ 4490: clauses on a declaration. 4491: 4492: Mon Jan 24 17:06:23 1994 Jason Merrill ([email protected]) 4493: 4494: * class.c (finish_struct): Do synthesize methods for anon 4495: structs, just not unions. 4496: 4497: Mon Jan 24 13:50:13 1994 Kung Hsu ([email protected]) 4498: 4499: * decl.c (xref_tag): handle anonymous nested type. 4500: * decl.c (globalize_nested_type): add no globalize bit check. 4501: * spew.c (hack_more_ids) : templated nested decl not push top 4502: level. 4503: 4504: * parse.y : get rid of 'goto do_components'. It is much better 4505: for debugging. 4506: 4507: * decl.c (is_anon_name): get rid of the function and use the 4508: macro ANON_AGGRNAME_P. 4509: * pt.c : ditto. 4510: 4511: Fri Jan 21 14:06:02 1994 Jason Merrill ([email protected]) 4512: 4513: * class.c (finish_struct): Don't synthesize any methods for 4514: anonymous structs/unions. 4515: 4516: * typeck.c (build_modify_expr): Don't treat pmf's as class objects. 4517: 4518: Thu Jan 20 18:56:46 1994 Jason Merrill ([email protected]) 4519: 4520: * method.c (build_opfncall): Call build_indirect_ref on 4521: synthesized instance for operator delete. 4522: 4523: * pt.c (type_unification): Don't abort if called with a list of 4524: types in ARGS. 4525: 4526: * class.c (instantiate_type): Deal with function templates. 4527: 4528: Thu Jan 20 16:55:35 1994 Jim Wilson ([email protected]) 4529: 4530: * Makefile.in (CC): Default to cc not gcc. 4531: 4532: Thu Jan 20 13:47:54 1994 Jason Merrill ([email protected]) 4533: 4534: * typeck.c (build_modify_expr): Call constructor if appropriate. 4535: 4536: * decl.c (push_to_top_level): Clear out class-level bindings cache. 4537: 4538: Wed Jan 19 13:51:22 1994 Jason Merrill ([email protected]) 4539: 4540: * call.c (resolve_scope_to_name): Work recursively (previously only 4541: looked down one level). 4542: 4543: * lex.c (do_pending_inlines): If we're still dealing with the last 4544: batch of inlines, don't start working on a new one. 4545: 4546: * Makefile.in (stamp-parse): Update conflict count. 4547: (TAGS): Fix. 4548: 4549: * parse.y (explicit_instantiation): New rule; implements 4550: 'template A<int>' syntax (though not 'template foo(int)' yet). 4551: (structsp): Add explicit_instantiation. 4552: 4553: Tue Jan 18 13:53:05 1994 Jason Merrill ([email protected]) 4554: 4555: * class.c (finish_struct, etc.): Simplify decision to synthesize 4556: a destructor. 4557: 4558: * call.c, class.c, cp-tree.h, decl.c, init.c, 4559: ptree.c, search.c, typeck.c, typeck2.c: Nuke 4560: TYPE_NEEDS_CONSTRUCTOR (change all calls to TYPE_NEEDS_CONSTRUCTING). 4561: * init.c (expand_aggr_init_1): Don't try non-constructor methods 4562: of initializing objects. 4563: (build_new): Don't try other methods if the constructor lookup fails. 4564: 4565: * class.c (finish_base_struct): Set cant_have_default_ctor and 4566: cant_synth_copy_ctor properly. 4567: (finish_struct): Ditto. 4568: 4569: Mon Jan 17 13:58:18 1994 Jason Merrill ([email protected]) 4570: 4571: * typeck.c (build_modify_expr_1): #if 0 out again. 4572: (build_modify_expr): #if 0 out memberwise init code again. 4573: 4574: * lex.c (default_copy_constructor_body): Be const-correct. 4575: (default_assign_ref_body): Ditto. 4576: 4577: * init.c (perform_member_init): Use TYPE_HAS_CONSTRUCTOR to decide 4578: whether or not to use it, rather than TYPE_NEEDS_CONSTRUCTING. 4579: (expand_aggr_init): Disable silent conversion from initializer list 4580: to list of args for a constructor. 4581: 4582: * class.c (base_info): Lose needs_default_ctor. 4583: (finish_base_struct): Ditto. 4584: (finish_struct): Ditto. 4585: 4586: * decl.c (init_decl_processing): Don't turn off flag_default_inline 4587: just because flag_no_inline is on. 4588: (finish_decl): Use TYPE_HAS_CONSTRUCTOR to decide to use 4589: constructor. 4590: 4591: * class.c (finish_struct): Synthesize default ctor whenever 4592: allowed. 4593: 4594: * Makefile.in (TAGS): Don't try to run etags on cp-parse.y. 4595: 4596: Sat Jan 15 18:34:33 1994 Mike Stump ([email protected]) 4597: 4598: * Makefile.in, configure: Handle the C++ front-end in a 4599: subdirectory. 4600: * cp-*: Move C++ front-end to cp/*. 4601: 4602: Fri Jan 14 14:09:37 1994 Jason Merrill ([email protected]) 4603: 4604: * cp-typeck.c (build_function_call_real): Modify to match other 4605: instances of taking the address of the function. 4606: 4607: * cp-class.c (finish_struct): Set TYPE_HAS_REAL_CONSTRUCTOR to 1 if 4608: there are non-synthesized constructors. 4609: Only set TYPE_NEEDS_CONSTRUCTOR if TYPE_HAS_REAL_CONSTRUCTOR. 4610: Always generate copy constructor if possible. 4611: 4612: * cp-tree.h (lang_type): Add has_real_constructor bitfield. 4613: (TYPE_HAS_REAL_CONSTRUCTOR): Define. 4614: 4615: * cp-lex.c (default_copy_constructor_body): Use init syntax 4616: for all bases. 4617: 4618: * cp-type2.c (store_init_value): Only give error for initializer list 4619: if TYPE_HAS_REAL_CONSTRUCTOR. 4620: 4621: Thu Jan 13 15:38:29 1994 Jason Merrill ([email protected]) 4622: 4623: * cp-tree.h (DECL_SYNTHESIZED): Add defn. 4624: (lang_decl): Add synthesized bitfield to decl_flags. 4625: 4626: * cp-lex.c (cons_up_default_function): Use DECL_SYNTHESIZED to mark 4627: artificial methods, rather than a line # of 0. 4628: 4629: Fri Jan 14 18:25:29 1994 Kung Hsu ([email protected]) 4630: 4631: * cp-decl (xref_tag): fix a bug in conflict type. 4632: * cp-parse.y : add SCOPED_NAME for uninstantiated template nested 4633: type reference. 4634: * cp-spew.c (yylex) : generated SCOPED_NAME token. 4635: * cp-lex.c (yyprint): handle SCOPED_NAME. 4636: 4637: Fri Jan 14 17:00:29 1994 Mike Stump ([email protected]) 4638: 4639: * cp-decl.c (pushdecl): Revert patch from Jan 11 19:33:03, as it is 4640: not right. 4641: 4642: Thu Jan 13 14:00:35 1994 Kung Hsu ([email protected]) 4643: 4644: * cp-decl2.c (grok_x_components): fix a bug that enum type does not 4645: have type_flags. 4646: 4647: Thu Jan 13 11:39:34 1994 Mike Stump ([email protected]) 4648: 4649: Ensure that all vtable pointers are initialized with all the right 4650: values. 4651: 4652: * cp-class.c (is_normal): Changed to reflect new meaning of 4653: CLASSTYPE_VFIELD_PARENT. 4654: * cp-class.c (maybe_fixup_vptrs): Use of 4655: CLASSTYPE_NEEDS_VIRTUAL_REINIT here is misguided. Use 4656: BINFO_MODIFIED instead. 4657: * cp-class.c (finish_struct): Changed to reflect new meaning of 4658: CLASSTYPE_VFIELD_PARENT. 4659: * cp-decl.c (get_binfo_from_vfield): Removed, unneeded now. 4660: * cp-decl.c (finish_function): Use init_vtbl_ptrs, instead of open 4661: coding it here. 4662: * cp-init.c (init_vfields): Changed name to init_vtbl_ptrs, and 4663: re-implement. 4664: * cp-init.c (emit_base_init): Use new name init_vtbl_ptrs. 4665: * cp-tree.h (vfield_parent): Changed to integer. 4666: * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Changed docs to reflect new 4667: meaning. 4668: * cp-tree.h (init_vtbl_ptrs): Added init_vtbl_ptrs. 4669: 4670: Wed Jan 12 18:24:16 1994 Kung Hsu ([email protected]) 4671: 4672: * cp-decl.c (xref_tag): re-implement globalize nested type. 4673: * cp-decl2.c (grok_x_components): ditto. 4674: * cp-parse.y: ditto. 4675: * cp-tree.h (lang_type): add no_globalize bit in type_flags. 4676: 4677: Wed Jan 12 14:08:09 1994 Jason Merrill ([email protected]) 4678: 4679: * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC on friend 4680: decls with a definition attached. 4681: 4682: * cp-typeck.c (build_modify_expr): Undo previous change in the case 4683: of INIT_EXPRs. 4684: 4685: Tue Jan 11 19:33:03 1994 Jason Merrill ([email protected]) 4686: 4687: * cp-typeck.c (build_modify_expr): Replace code for generating 4688: assignment semantics for classes with an error. 4689: (build_modify_expr_1): #if 0 out. 4690: 4691: * cp-decl.c (pushdecl): Patch bogus design of pushdecl 4692: behavior for overloaded functions (it doesn't push anything). 4693: 4694: * cp-class.c (finish_struct): When generating default op=, 4695: set TYPE_HAS_ASSIGNMENT. 4696: 4697: Mon Jan 10 18:48:06 1994 Mike Stump ([email protected]) 4698: 4699: * cp-cvt.c (convert): Make {double, clashing enum} -> enum 4700: invalid. 4701: * cp-typeck.c (convert_for_assignment): Simplify. 4702: * cp-decl2.c (warn_enum_clash): Removed. 4703: * invoke.texi (-Wenum-clash): Removed. 4704: * toplev.c (-Wenum-clash): Removed. 4705: 4706: Mon Jan 10 17:48:37 1994 Kung Hsu ([email protected]) 4707: 4708: * cp-decl.c (finish_decl): fix incorrect popclass call. 4709: 4710: * cp-decl.c (is_anon_name): new function, check whether the name 4711: is anonymous name generated by compiler. 4712: * cp-decl.c (grokdeclarator): allow nested SCOPE_REF 4713: * cp-spew.c (hack_more_ids): handle nested type in template. 4714: * cp-parse.y : handle nested type reference in uninstantiated 4715: template. 4716: * cp-call.c (build_method_call): handle uninstantiated template 4717: case. 4718: * cp-pt.c (search_nested_type_in_tmpl): new function, search nested 4719: type in template. 4720: * cp-pt.c (lookup_nested_type_by_name): new function, lookup nested 4721: type by name. 4722: * cp-pt.c (tsubst): handle nested type search by name. 4723: 4724: Mon Jan 10 14:32:18 1994 Jason Merrill ([email protected]) 4725: 4726: * cp-init.c (build_member_call): Propagate qualifiers to new type. 4727: 4728: * cp-call.c (build_method_call): Count functions the new way. 4729: 4730: Fri Jan 7 19:03:26 1994 Jason Merrill ([email protected]) 4731: 4732: * cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for nested classes, 4733: too. 4734: 4735: Tue Jan 4 16:45:51 1994 Kung Hsu ([email protected]) 4736: 4737: * cp-parse.y: change to handle whether to globalize nested class. 4738: * cp-decl.c(xref_tag, maybe_globalize_type): Ditto. 4739: 4740: Mon Jan 3 22:22:32 1994 Gerald Baumgartner ([email protected]) 4741: 4742: * Makefile.in cp-call.c cp-class.c cp-cvt.c cp-decl.c cp-decl2.c 4743: cp-error.c cp-init.c cp-lex.c cp-lex.h cp-method.c cp-parse.y 4744: cp-spew.c cp-tree.c cp-tree.h cp-type2.c cp-typeck.c cp-xref.c 4745: gplus.gperf toplev.c: Incorporated C++ signature extension. 4746: * cp-sig.c: New file, contains most of signature processing. 4747: * cp-hash.h: Regenerated from gplus.gperf. 4748: 4749: * gcc.1 g++.1: Added explanation for the `-fhandle-signatures' 4750: and `-fno-handle-signatures' command line flags. 4751: 4752: * gcc.texi: Changed the last-modification date. 4753: * invoke.texi: Added `-fhandle-signatures' in the list of 4754: C++ language options. Added explanation for this option. 4755: 4756: Tue Dec 28 21:10:03 1993 Mike Stump ([email protected]) 4757: 4758: * cp-init.c (expand_vec_init): Remove comptypes test, as it is too 4759: harsh here. 4760: 4761: Tue Dec 28 13:42:22 1993 Mike Stump ([email protected]) 4762: 4763: * cp-pt.c (do_pending_expansions): Decide to expand a template 4764: member function, based upon it's class type, not the class type of 4765: the first place it was declared. 4766: 4767: Tue Dec 28 05:42:31 1993 Mike Stump ([email protected]) 4768: 4769: * cp-class.c (is_normal): New routine, use to determine when the 4770: given binfo is the normal one. (The one that should have the simple 4771: vtable name.) 4772: * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME 4773: to check if two fndecls are `the same'. Sometimes this routine can 4774: modify the main vtable, and normal should be 1, in that case, so use 4775: is_normal() to determine if this is the main vtable for the class. 4776: Don't recurse down virtual bases, as they are shared, and we take 4777: care of them elsewhere. 4778: * cp-class.c (modify_vtable_entries): If we have already updated the 4779: vtable with the new virtual, don't do it again. 4780: * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as 4781: appropriate. Do virtual function overriding in virtual bases, after 4782: normal overriding, so that the base function list in DECL_VINDEX is 4783: not overridden, before we have a chance to run through the list. 4784: Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'. 4785: Make sure we pass the right address into modify_vtable_entries. 4786: * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which 4787: binfo is the one that has the vtable that we based our vtable on. 4788: 4789: Fri Dec 24 09:40:52 1993 Michael Tiemann ([email protected]) 4790: 4791: * cp-typeck.c (c_expand_start_case): Use default_conversion to 4792: convert expression from reference type if necessary. 4793: 4794: Wed Dec 22 17:58:43 1993 Jason Merrill ([email protected]) 4795: 4796: * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before 4797: trying to read its TREE_VALUE. 4798: 4799: * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here. 4800: (finish_struct): Instead of here. 4801: 4802: Tue Dec 21 14:34:25 1993 Brendan Kehoe ([email protected]) 4803: 4804: * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't 4805: have TYPE_PTRMEMFUNC_P set before we try to build its 4806: CLASSTYPE_ID_AS_LIST. 4807: (get_decl_list): Likewise, when trying to read it. 4808: 4809: * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined. 4810: (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT. 4811: 4812: Mon Dec 20 13:35:03 1993 Brendan Kehoe ([email protected]) 4813: 4814: * cp-typeck.c (rationalize_conditional_expr): New function. 4815: (unary_complex_lvalue): Use it. 4816: (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it 4817: with build_unary_op won't cut it. Don't wrap the COND_EXPR with a 4818: SAVE_EXPR either. 4819: 4820: * cp-decl2.c (explicit_warn_return_type): Deleted variable. 4821: (lang_decode_option): Set warn_return_type, not explicit_*, for 4822: -Wreturn-type and -Wall. This is what rest_of_compilation uses to 4823: decide if it should go into jump_optimize or not. 4824: * cp-tree.h (explicit_warn_return_type): Deleted. 4825: * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*. 4826: (finish_function): Also complain about no return in a non-void fn if 4827: we're being pedantic (don't rely on use of -Wreturn-type). 4828: 4829: Fri Dec 17 15:45:46 1993 Brendan Kehoe ([email protected]) 4830: 4831: * cp-decl.c (grokdeclarator): Forbid declaration of a function as 4832: static if it's being done inside another function. 4833: 4834: * cp-search.c (compute_visibility): Check for friendship both ways. 4835: 4836: Fri Dec 17 14:28:25 1993 Jason Merrill ([email protected]) 4837: 4838: * cp-cvt.c (build_default_binary_type_conversion): Make error 4839: messages more helpful. 4840: 4841: * cp-error.c (op_as_string): New function, returns "operator ==" 4842: given EQ_EXPR or suchlike. 4843: 4844: Fri Dec 17 13:28:11 1993 Brendan Kehoe ([email protected]) 4845: 4846: * cp-call.c (print_n_candidates): New function. 4847: (build_overload_call_real): Use it when we complain about a call 4848: being ambiguous. 4849: 4850: Fri Dec 17 12:41:17 1993 Jason Merrill ([email protected]) 4851: 4852: * cp-call.c (build_method_call): Fix checking for static call 4853: context. 4854: 4855: * cp-method.c (build_opfncall): Call build_indirect_ref on argument 4856: to operator new. 4857: 4858: * cp-init.c (build_new): Don't mess with rval when building 4859: indirect ref. 4860: 4861: Thu Dec 16 16:48:05 1993 Kung Hsu ([email protected]) 4862: 4863: * cp-lex.c (default_assign_ref_body): add check when TYPE_NESTED_ 4864: NAME(type) may not be exist. It's not a problem for old compiler. 4865: 4866: Thu Dec 16 14:46:06 1993 Brendan Kehoe ([email protected]) 4867: 4868: * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's 4869: never used for anything. 4870: (struct lang_type, member type_flags): Delete field 4871: `alters_visibility', and up `dummy' by 1. 4872: * cp-class.c (finish_base_struct): Delete code that copies the 4873: setting of CLASSTYPE_ALTERS_VISIBILITIES_P. 4874: (finish_struct): Delete code that sets it. 4875: 4876: Thu Dec 16 14:44:39 1993 Jason Merrill ([email protected]) 4877: 4878: * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to 4879: build_method_call that I messed up before. 4880: 4881: * cp-search.c (get_base_distance): If protect > 1, allow immediate 4882: private base. 4883: 4884: * cp-class.c (finish_base_struct): Set cant_synth_* correctly. 4885: (finish_struct): Ditto. Well, nigh-correctly; it won't deal 4886: properly with the case where a class contains an object of an 4887: ambiguous base class which has a protected op=. Should be fixed 4888: when the access control code gets overhauled. 4889: (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly. 4890: 4891: Thu Dec 16 12:17:06 1993 Brendan Kehoe ([email protected]) 4892: 4893: * cp-lex.c (real_yylex): Turn the code back on that deals with 4894: __FUNCTION__ and __PRETTY_FUNCTION__. Don't use lookup_name, to 4895: avoid the ambiguity problems that led to it being turned off in the 4896: first place. 4897: 4898: * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P 4899: to see if something is a method. 4900: 4901: Wed Dec 15 18:35:58 1993 Mike Stump ([email protected]) 4902: 4903: * cp-typeck.c (build_modify_expr): Avoid error messages on small 4904: enum bit fields. 4905: * cp-typeck.c (convert_for_assignment): Add missing argument to 4906: cp_warning and cp_pedwarn calls. 4907: 4908: Wed Dec 15 18:25:32 1993 Jason Merrill ([email protected]) 4909: 4910: * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base 4911: initializers; it's just anachronistic. 4912: 4913: * cp-decl.c (finish_decl): Don't require external-linkage arrays 4914: to have a complete type at declaration time when pedantic. 4915: 4916: Tue Dec 14 11:37:23 1993 Jason Merrill ([email protected]) 4917: 4918: * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set. 4919: 4920: * cp-call.c (build_method_call): Don't dereference pointer given 4921: as instance. 4922: 4923: * cp-decl.c (finish_function): Don't pass pointer to 4924: build_method_call. 4925: (finish_function): Ditto. 4926: 4927: * cp-typeck.c (build_x_function_call): Ditto. 4928: 4929: * cp-method.c (build_component_type_expr): Ditto. 4930: 4931: * cp-init.c (build_member_call): Ditto. 4932: (build_new): Ditto. 4933: 4934: Mon Dec 13 18:04:33 1993 Kung Hsu ([email protected]) 4935: 4936: * cp-decl.c (xref_tag): fix regression created by changes made 4937: in Dec. 7 1993. 4938: * cp-decl.c (xref_defn_tag): fix parallel nested class problem. 4939: 4940: Fri Dec 10 12:40:25 1993 Brendan Kehoe ([email protected]) 4941: 4942: * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print 4943: out the final evaluation of the function, so we can see if ELLIPSIS, 4944: USER, and EVIL were set at the end. 4945: 4946: * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue, 4947: only go for setting TRIVIAL_CODE if we are dealing with types that 4948: are compatible. 4949: 4950: Thu Dec 9 18:27:22 1993 Mike Stump ([email protected]) 4951: 4952: * cp-decl.c (flag_huge_objects): New flag to allow large objects. 4953: * toplev.c (lang_options): Ditto. 4954: * cp-decl2.c (flag_huge_objects, lang_f_options): Ditto. 4955: * cp-decl.c (delta_type_node): New type for delta entries. 4956: * cp-tree.h (delta_type_node): Ditto. 4957: * cp-decl.c (init_decl_processing): Setup delta_type_node. 4958: * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use 4959: delta_type_node instead of short_integer_type_node. 4960: * cp-class.c (build_vtable_entry): Ditto. 4961: 4962: Thu Dec 9 16:19:05 1993 Brendan Kehoe ([email protected]) 4963: 4964: * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of 4965: NO_{DOLLAR,DOT} macro checks, so it always gets defined. 4966: (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL. 4967: 4968: Wed Dec 8 17:38:06 1993 Mike Stump ([email protected]) 4969: 4970: * cp-decl.c (finish_decl): Make sure things that can go into 4971: "common", do go into common, if -fcommon is given. 4972: 4973: Wed Dec 8 13:01:54 1993 Brendan Kehoe ([email protected]) 4974: 4975: * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function. 4976: (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out 4977: argument matching diagnostics to make instantly clear what the 4978: compiler is doing. 4979: 4980: * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue, 4981: then check to see if the penalty was increased due to 4982: signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't. 4983: 4984: Tue Dec 7 18:29:14 1993 Kung Hsu ([email protected]) 4985: 4986: * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution 4987: problem. 4988: 4989: Tue Dec 7 16:09:34 1993 Jason Merrill ([email protected]) 4990: 4991: * cp-class.c (finish_struct): Before synthesizing methods, if no 4992: methods have yet been declared then set nonprivate_method. Don't 4993: set non_private method after synthesizing a method. 4994: 4995: * cp-lex.c (extract_interface_info): If flag_alt_external_templates 4996: is set, tie emitted code to the location of template instantiation, 4997: rather than definition. 4998: 4999: * cp-tree.h: Declare flag_alt_external_templates. 5000: 5001: * cp-decl2.c (lang_decode_option): Support -falt-external-templates. 5002: 5003: * toplev.c (lang_options): Ditto. 5004: 5005: Mon Oct 4 12:50:02 1993 Chip Salzenberg ([email protected]) 5006: 5007: [changes propagated from 930810 snapshot] 5008: * cp-decl.c (init_decl_processing): Make long long available for use 5009: as SIZE_TYPE and PTRDIFF_TYPE. 5010: (finish_decl): Allow file-scope static incomplete array. 5011: (grokdeclarator): Don't pass on const and volatile fron function 5012: value type to function type. 5013: Warn here for volatile fn returning non-void type. 5014: * cp-parse.y (attrib): Accept attributes `volatile' with alias 5015: `noreturn', and `const'. 5016: * cp-typeck.c (default_conversion): Don't lose const and volatile. 5017: (build_binary_op_nodefault): Generate pedantic warning for comparison 5018: of complete pointer type with incomplete pointer type. 5019: (build_c_cast): Be careful that null pointer constant be INTEGER_CST. 5020: 5021: Tue Dec 7 10:46:48 1993 Jason Merrill ([email protected]) 5022: 5023: * cp-init.c (expand_vec_init): When creating a temporary for copying 5024: arrays, use the type of the source, not the target. 5025: 5026: * cp-cvt.c (convert): Pass an argument for errtype to 5027: convert_to_reference. 5028: 5029: * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with 5030: methods, -> and `this'. 5031: 5032: Mon Dec 6 17:12:33 1993 Jason Merrill ([email protected]) 5033: 5034: * cp-error.c (parm_as_string): New function; returns `this' or arg 5035: number. Corresponds to %P. 5036: (dump_expr): Deal with method calls. 5037: 5038: * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment. 5039: * cp-typeck.c (convert_for_assignment): Ditto. 5040: (warn_for_assignment): Lose. 5041: 5042: Mon Dec 6 11:33:35 1993 Brendan Kehoe ([email protected]) 5043: 5044: * cp-call.c (ideal_candidate_ansi): Delete code that was never 5045: doing anything useful. Instead, sort once, and DO NOT wipe 5046: out any codes with EVIL_CODE, since that's what we use as a 5047: marker for the end of the list of candidates. 5048: 5049: * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN. 5050: 5051: Mon Dec 6 12:49:17 1993 Jason Merrill ([email protected]) 5052: 5053: * cp-init.c (get_aggr_from_typedef): New function, like 5054: is_aggr_typedef but returns the _TYPE. 5055: 5056: * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name. 5057: 5058: Sun Dec 5 18:12:48 1993 Brendan Kehoe ([email protected]) 5059: 5060: * cp-lex.c (readescape): Pedwarn when a hex escape is out of range. 5061: 5062: Thu Nov 25 23:50:19 1993 Chip Salzenberg ([email protected]) 5063: 5064: Delay language context change until beginning of next decl. 5065: 5066: * cp-lex.h (c_header_level): Removed. 5067: (pending_lang_change): Declared. 5068: * cp-lex.c (c_header_level): Renamed from in_c_header, made static. 5069: (pending_lang_change): Defined. 5070: (check_newline): Rework code that recognizes line number and 5071: filename changes. Instead of pushing and popping lang context, 5072: increment and decrement pending_lang_change. 5073: (do_pending_lang_change): Push and pop lang context according 5074: to value of pending_lang_change. 5075: * cp-parse.y (extdefs): Use lang_extdef instead of extdef. 5076: (extdef): Same as extdef, but call do_pending_lang_change() first. 5077: 5078: Mon Nov 15 15:39:15 1993 Chip Salzenberg ([email protected]) 5079: 5080: * cp-typeck.c (build_binary_op_nodefault): Warn for ordered 5081: compare of ptr with 0 only if pedantic in both cases. 5082: 5083: Thu Nov 25 13:31:37 1993 Chip Salzenberg ([email protected]) 5084: 5085: Reinstate the below patch, which got lost in the Cygnus merge: 5086: Tue Nov 23 13:59:24 1993 Hallvard B Furuseth ([email protected]) 5087: * cp-parse.y (maybe_type_qual): Don't fail to set $$. 5088: 5089: Wed Nov 17 19:03:30 1993 Chip Salzenberg ([email protected]) 5090: 5091: * cp-parse.y (attrib): Allow "ident(ident)" like the C front end. 5092: 5093: Fri Oct 22 20:43:37 1993 Paul Eggert ([email protected]) 5094: 5095: * cp-lex.c (real_yylex): Diagnose floating point constants 5096: that are too large. 5097: 5098: Wed Nov 17 19:10:37 1993 Chip Salzenberg ([email protected]) 5099: 5100: * cp-type2.c (build_functional_cast): ARM page 16: When a class 5101: and an object, function or enumerator are declared in the same 5102: scope with the same name, the class name is hidden. 5103: 5104: Wed Nov 17 19:07:18 1993 Chip Salzenberg ([email protected]) 5105: 5106: * cp-call.c (convert_harshness_ansi): Distinguish float, double, 5107: and long double from each other when overloading. 5108: (compute_conversion_costs_{ansi,old}, build_method_call, 5109: build_overlay_call_real, convert_to_aggr): Always set and 5110: always use H_LEN member of candidate structure. 5111: 5112: Mon Oct 11 23:10:53 1993 Chip Salzenberg ([email protected]) 5113: 5114: * cp-decl.c (duplicate_decls): Note redeclarations of library 5115: functions, and generate distinct warnings for them. 5116: 5117: Mon Oct 4 12:26:49 1993 Chip Salzenberg ([email protected]) 5118: 5119: Support format warnings in G++. 5120: 5121: * cp-tree.h: Protect against multiple inclusion. 5122: Declare all public functions in c-common.c (copy from c-tree.h). 5123: (STDIO_PROTO): Define. 5124: (warn_format): Declare. 5125: (record_format_info): Remove declaration. 5126: * cp-decl.c (init_decl_processing): Call init_function_format_info. 5127: * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format. 5128: * cp-typeck.c (build_function_call_real): Call check_function_format. 5129: (record_format_info): Remove -- obsolete stub. 5130: 5131: Sat Jul 24 12:04:29 1993 Chip Salzenberg ([email protected]) 5132: 5133: * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl 5134: following an extern one (for -Wredundant-decls). 5135: * cp-parse.y (primary): In statement expression case, if compstmt 5136: returns something other than a BLOCK, return it unchanged. 5137: 5138: Thu Dec 2 20:44:58 1993 Chip Salzenberg ([email protected]) 5139: 5140: * cp-decl.c (warn_extern_redeclared_static): New function made 5141: from code extracted from pushdecl. 5142: (duplicate_decls, pushdecl): Call new function. 5143: (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE 5144: to be a TREE_LIST when function is declared in 'extern "C" {}'. 5145: 5146: Fri Dec 3 16:01:10 1993 Jason Merrill ([email protected]) 5147: 5148: * cp-class.c (duplicate_tag_error): Use cp_error. 5149: (finish_base_struct): Check for ambiguity with direct base, and don't 5150: generate op= or copy ctor if it exists. 5151: 5152: Fri Dec 3 15:32:34 1993 Kung Hsu ([email protected]) 5153: 5154: * cp-init.c (expand_member_init): when initializer name is null, 5155: don't try to build it now because emit_base_init will handle it. 5156: 5157: Fri Dec 3 12:28:59 1993 Jason Merrill ([email protected]) 5158: 5159: * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for 5160: code such as ExceptionHandler::operator=. 5161: 5162: Fri Dec 3 10:32:08 1993 Jason Merrill ([email protected]) 5163: 5164: * cp-decl.c (grokdeclarator): Don't try to print out dname when 5165: complaining about arrays of references if decl_context==TYPENAME, 5166: since it will be null. 5167: 5168: * cp-decl2.c: Default to flag_ansi_overloading. 5169: 5170: Thu Dec 2 18:05:56 1993 Kung Hsu ([email protected]) 5171: 5172: * cp-call.c (build_method_call): use binfo from instance if it's 5173: different from binfo (basetype_path) passed from above. 5174: 5175: Thu Dec 2 12:48:36 1993 Brendan Kehoe ([email protected]) 5176: 5177: Wed Nov 17 19:14:29 1993 Chip Salzenberg ([email protected]) 5178: 5179: cp-error.c (dump_expr): Use unsigned chars to output a 5180: TREE_REAL_CST in hex. 5181: 5182: Thu Dec 2 11:05:48 1993 Jason Merrill ([email protected]) 5183: 5184: * cp-class.c (finish_struct): Fix typo in setting 5185: cant_synth_asn_ref. 5186: 5187: * cp-tree.h (TYPE_NESTED_NAME): New macro, does 5188: DECL_NESTED_TYPENAME (TYPE_NAME (NODE)). 5189: 5190: * cp-lex.c (default_copy_constructor_body): Change 5191: DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype). 5192: (default_assign_ref_body): Ditto. 5193: (default_copy_constructor_body): Call operator= explicitly for 5194: base classes that have no constructor. 5195: 5196: Thu Dec 2 10:47:15 1993 Michael Tiemann ([email protected]) 5197: 5198: * cp-call.c (build_method_call): If the instance variable is 5199: converted to error_mark_node when we're trying to convert it to the 5200: base type of a method we're looking up, return error_mark_node. 5201: 5202: Thu Dec 2 10:41:16 1993 Torbjorn Granlund ([email protected]) 5203: 5204: * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR 5205: cases, tests for unsigned operands by peeking inside a NOP_EXPR. 5206: 5207: Wed Dec 1 13:33:34 1993 Brendan Kehoe ([email protected]) 5208: 5209: * cp-call.c (compute_conversion_costs_ansi): Use the size of struct 5210: harshness_code, not the size of short, for clearing out the 5211: ansi_harshness. 5212: 5213: * cp-call.c (print_candidates): New function. 5214: (build_method_call): When we had some candidates, but didn't get a 5215: usable match, don't report that we got an error with the first 5216: candidate. Instead, say there were no matches, and list the 5217: candidates with print_candidates. In the second pass, make sure we 5218: clear out ever_seen, so we can accurately count the number of 5219: functions that qualified. 5220: 5221: Wed Dec 1 09:53:59 1993 Torbjorn Granlund ([email protected]) 5222: 5223: * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR 5224: only if op1 is known to be != -1. 5225: (build_binary_op_nodefault): Handle *_DIV_EXPR likewise. 5226: 5227: Tue Nov 30 14:07:26 1993 Brendan Kehoe ([email protected]) 5228: 5229: * cp-method.c (hack_identifier): If the field itself is private, and 5230: not from a private base class, say so. 5231: 5232: Mon Nov 29 03:00:56 1993 Jason Merrill ([email protected]) 5233: 5234: * cp-decl.c (grokdeclarator): Always warn on initialization of 5235: const member. 5236: 5237: Wed Nov 24 00:49:35 1993 Jason Merrill ([email protected]) 5238: 5239: * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly. 5240: (finish_base_struct): Set cant_synth_asn_ref properly. 5241: 5242: * cp-lex.c (cons_up_default_function): Add section for operator=. 5243: (default_assign_ref_body): New function, mostly cribbed from 5244: default_copy_constructor_body. 5245: 5246: * cp-class.c (base_info): Add members cant_synth_copy_ctor, 5247: cant_synth_asn_ref, no_const_asn_ref. 5248: (finish_base_struct): Update no_const_asn_ref, note that you should 5249: update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF. 5250: (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and 5251: initialize them properly. Set no_const_asn_ref properly. Set 5252: cant_synth_* in some of the situations where they should be set. 5253: Propagate TYPE_GETS_ASSIGN_REF. Use cant_synth_copy_ctor. Add call 5254: to cons_up_default_function for operator=. 5255: 5256: Tue Nov 23 20:24:58 1993 Mike Stump ([email protected]) 5257: 5258: * cp-cvt.c (convert_force): Add code to perform casting of pointer 5259: to member function types. 5260: * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate 5261: when the conversion should be done, regardless. 5262: * cp-tree.h (build_ptrmemfunc): Ditto. 5263: * cp-type2.c (digest_init): Ditto. 5264: * cp-typeck.c (convert_for_assignment): Ditto. 5265: 5266: Tue Nov 23 18:06:58 1993 Jason Merrill ([email protected]) 5267: 5268: * cp-error.c (dump_expr): Do the right thing for variables of 5269: reference type. 5270: 5271: * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF 5272: and its kin properly. 5273: (xref_tag): Propagate TYPE_GETS_ASSIGN_REF. 5274: 5275: Tue Nov 23 12:26:13 1993 Mike Stump ([email protected]) 5276: 5277: * cp-method.c (build_opfncall): Don't count pointer to member 5278: functions as aggregates here, as we don't want to look up methods in 5279: them. The compiler would core dump if we did, as they don't have 5280: normal names. 5281: * cp-typeck.c (build_indirect_ref): Improve wording on error 5282: message. 5283: 5284: Mon Nov 22 14:22:23 1993 Jason Merrill ([email protected]) 5285: 5286: * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn 5287: (since it's supported in other compiler bits). 5288: 5289: * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name 5290: argument. 5291: 5292: * cp-error.c (dump_function_decl): Don't print return type for 5293: constructors and destructors. 5294: 5295: * cp-cvt.c (cp_convert_to_pointer): Import code from 5296: convert_to_pointer so we can return error_mark_node in the case of an 5297: error, and to allow more meaningful error messages. 5298: (build_type_conversion): Don't go through void* when trying 5299: to convert to a pointer type. 5300: 5301: * cp-decl.c (grokfndecl): Move call to grok_op_properties back 5302: after grokclassfn so that it's dealing with the right decl. 5303: (grok_op_properties): Don't assert !methodp for op new and op delete. 5304: 5305: * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now 5306: no uses of it in the compiler). 5307: 5308: * cp-call.c (build_scoped_method_call): Fix for destructors of simple 5309: types. 5310: (build_method_call): Ditto. 5311: 5312: Fri Nov 19 12:59:38 1993 Jason Merrill ([email protected]) 5313: 5314: * cp-tree.c (count_functions): Abstraction function. 5315: 5316: * cp-call.c (build_overload_call_real): Deal with new overloading 5317: properly, remove dead code. 5318: 5319: * gcc.c (default_compilers): Generate and use .ii files in the 5320: intermediate stage of compiling C++ source. 5321: 5322: Fri Nov 19 11:26:09 1993 Jim Wilson ([email protected]) 5323: 5324: * cp-expr.c (cplus_expand_expr): Make call_target a valid memory 5325: address before using it, so it can be later safely compared. 5326: 5327: Fri Nov 12 15:30:27 1993 Jason Merrill ([email protected]) 5328: 5329: * cp-pt.c (tsubst): Deal with new overloading. 5330: 5331: * cp-typeck.c (fntype_p): is the arg function type? 5332: (comp_target_parms): pedwarn on conversion from (anything) to (...). 5333: (build_x_function_call): Deal with new overloading. 5334: 5335: * cp-tree.c (decl_list_length): Deal with new overloading. 5336: (decl_value_member): Like value_member, but for DECL_CHAINs. 5337: 5338: * cp-decl.c (duplicate_decls): Deal with new overloading. 5339: (start_decl): Ditto. 5340: 5341: * cp-class.c (instantiate_type): Deal with new overloading. 5342: 5343: * cp-call.c (convert_harshness_ansi): Deal with new overloading. 5344: (convert_harshness_old): Deal with new overloading. 5345: (build_overload_call_real): Ditto. 5346: 5347: Mon Nov 8 13:50:49 1993 Jason Merrill ([email protected]) 5348: 5349: * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL 5350: if unambiguous, NULL_TREE otherwise. 5351: (get_first_fn): Returns the first appropriate FUNCTION_DECL. 5352: (is_overloaded_fn): Returns whether or not the passed tree is 5353: a function or list of functions. 5354: 5355: * cp-init.c (init_init_processing): use `get_first_fn' to find 5356: the FUNCTION_DEFN for new and delete. 5357: 5358: * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut 5359: code size in half (I spit on special cases). 5360: 5361: Tue Sep 7 20:03:33 1993 Jason Merrill ([email protected]) 5362: 5363: * cp-decl.c: Allow references and template type parameters as well 5364: 5365: Local Variables: 5366: eval: (auto-fill-mode) 5367: left-margin: 8 5368: fill-column: 76 5369: End:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.