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