ChangeLog revision 90075
150472Speter2002-02-01 Jason Merrill <jason@redhat.com> 237Srgrimes 378822Snik * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS. 450203Srgrimes (dump_function_decl): Always dump parms. 537Srgrimes 639161Sobrien * decl2.c (finish_static_data_member_decl): Complain about a local 739490Sobrien class with a static data member. 88571Srgrimes 92878Srgrimes PR c++/4286 1072515Sru * search.c (lookup_field_1): Don't xref a static data member 1172515Sru just because we looked it up. 128571Srgrimes 132878Srgrimes2002-01-31 Jason Merrill <jason@redhat.com> 148571Srgrimes 158571Srgrimes * Make-lang.in (parse.c): Handle .output file. 1672515Sru 172878Srgrimes PR c++/3395 1872515Sru * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES, 19155345Srwatson not TREE_TYPE. 20155197Srwatson * semantics.c (finish_class_definition): Adjust. 21155197Srwatson 22155345Srwatson Allow attributes in parms and casts. 2372515Sru * parse.y (named_parm): Don't strip attrs. 242878Srgrimes (declmods): Remove 'attributes' production. 2572515Sru (nonempty_cv_qualifiers): Accept attributes. 262878Srgrimes (ATTRIBUTE): Give precedence. 2772515Sru * decl.c (groktypename): Handle attributes. 2872515Sru (grokparms): Likewise. 292878Srgrimes 302878Srgrimes2002-01-29 Jakub Jelinek <jakub@redhat.com> 3172515Sru 3272515Sru * decl2.c (cxx_decode_option): Pass 0 as last argument to 3372515Sru cpp_handle_option. 3445173Sasami * lang-specs.h: Use cpp_unique_options instead of cpp_options 35161748Scperciva when used together with cc1_options. 36161748Scperciva 3786601Sru2002-01-29 Nathan Sidwell <nathan@codesourcery.com> 3885220Sdarrenr 3972515Sru PR c++/5132 4072515Sru * typeck2.c (digest_init): Make sure non-array core type is 41124753Seivind instantiated. 42124753Seivind * decl2.c (reparse_absdcl_as_casts): Just store the type in the 43148871Scperciva constructor, rather than build a new one. 44148871Scperciva (build_expr_from_tree, CONSTRUCTOR case): Be careful with the 452878Srgrimes PURPOSE of constructor elts. 46123051Sru 4798699Sdes2002-01-23 Zack Weinberg <zack@codesourcery.com> 48123051Sru 49106403Smarkm * Make-lang.in (parse.c): Adjust expected number of 5085484Sru shift-reduce conflicts. 5180516Smarkm (decl.o): Depend on diagnostic.h. 5239490Sobrien * decl.c: Include diagnostic.h. 532878Srgrimes (grokdeclarator): Check for null pointer. 5486601Sru (finish_function): Don't abort when 552878Srgrimes current_binding_level->parm_flag != 1, if errors have 5612388Sache occurred; throw away the statement tree and extra binding 572878Srgrimes levels, and continue. 58136552Sru * lex.c (note_list_got_semicolon): Check for null pointer. 59135875Sdougb * method.c (hack_identifier): Just return error_mark_node if 6039490Sobrien value is error_mark_node. 612878Srgrimes * parse.y (primary: TYPEID(type_id)): No need to use 6239490Sobrien TYPE_MAIN_VARIANT here. 6382191Skuriyama (handler_seq): Accept an empty list of catch clauses and 6482191Skuriyama generate a fake handler block to avoid later crashes. 6585848Scjc (ansi_raise_identifier): Accept the error token too. 6685916Scjc * semantics.c (begin_class_definition, 672878Srgrimes finish_class_definition): Check for error_mark_node. 6886601Sru 692878Srgrimes2002-01-23 Zack Weinberg <zack@codesourcery.com> 7072515Sru 7186601Sru * typeck2.c (friendly_abort): Delete definition. 722878Srgrimes * cp-tree.h (friendly_abort): Don't prototype. 7372515Sru (my_friendly_assert): Use fancy_abort. 7441855Speter 752878Srgrimes2002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 7641855Speter 772878Srgrimes * cp-tree.h (my_friendly_abort): Remove. 7850296Srgrimes 7950296Srgrimes2002-01-23 Jakub Jelinek <jakub@redhat.com> 8041855Speter 8150296Srgrimes * spew.c (pending_inlines, pending_inlines_tail, 8250296Srgrimes processing_these_inlines): Make static. 832878Srgrimes (mark_pending_inlines): Remove static. 8486601Sru (begin_parsing_inclass_inline): If in function, save pi 852878Srgrimes for GC to cp_function_chain->unparsed_inlines instead. 8672515Sru (process_next_inline): Likewise. 8772515Sru * cp-tree.h (struct cp_language_function): Add unparsed_inlines. 888571Srgrimes (mark_pending_inlines): Add prototype. 892878Srgrimes * decl.c (spew_debug): Remove unused extern. 9041855Speter (mark_lang_function): Call mark_pending_inlines. 918571Srgrimes 92949Snate2002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 93 94 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, 95 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, 96 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: 97 Change my_fancy_abort() to abort(). 98 992002-01-23 Jason Merrill <jason@redhat.com> 100 101 PR c++/5453 102 * class.c (fixed_type_or_null): Fix thinko. 103 104 PR c++/3331 105 * init.c (resolve_offset_ref): Use build_indirect_ref. 106 107 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. 108 1092002-01-22 Jason Merrill <jason@redhat.com> 110 111 * parse.y (function_body): Suppress the block for the outermost 112 curly braces. 113 * decl.c (pushdecl): Don't try to skip it. 114 (begin_function_body): Keep the block we create, not the next one. 115 * init.c (emit_base_init): Don't mess with keep_next_level. 116 117 * class.c (build_base_path): Tweak formatting. 118 1192002-01-19 Nathan Sidwell <nathan@codesourcery.com> 120 121 Fix regression introduced with patch for c++/775 122 * parse.y (class_head_defn): Check for template specializations 123 with a different class-key. 124 1252002-01-17 Jason Merrill <jason@redhat.com> 126 127 * decl.c (begin_constructor_body, begin_destructor_body): New fns. 128 (begin_function_body): Call them and keep_next_level. 129 * init.c (emit_base_init): Call keep_next_level. 130 * semantics.c (setup_vtbl_ptr): Lose. 131 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p. 132 (vtbls_set_up_p): Lose. 133 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init. 134 * method.c (do_build_copy_constructor): Likewise. 135 (synthesize_method): Call finish_mem_initializers. 136 * parse.y (nodecls): Likewise. 137 138 * error.c (dump_type_suffix): Print the exception specs before 139 recursing. 140 (dump_function_decl): Here, too. 141 142 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT. 143 1442002-01-10 Ira Ruben <ira@apple.com> 145 146 PR c++/907 147 * decl.c (start_method): Handle attrlist. 148 1492002-01-10 Jakub Jelinek <jakub@redhat.com> 150 151 * decl2.c (max_tinst_depth): Increase default limit to 500. 152 1532002-01-10 Graham Stott <grahams@redhat.com> 154 155 * spew.c (YYCHAR): Uppercase macro parameter and add 156 parenthesis. 157 (YYCODE): Likewise. 158 (NAME): Uppercase macro parameter. 159 1602002-01-09 Graham Stott <grahams@redhat.com> 161 162 * decl.h (grokdeclarator): Wrap long line. 163 164 * semantics.c (FINISH_COND): Uppercase macro paramaters and 165 add parenthesis. 166 1672002-01-08 Graham Stott <grahams@redhat.com> 168 169 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis. 170 (PALLOC): Uppercase macro parameter and whitespace. 171 (SALLOC): Uppercase macro parameter. 172 (SFREE): Uppercase macros parameter, add parenthese and 173 whitespace. 174 (STREQL): Uppercase macro parameter and whitespace. 175 (STRNEQ): Likewise. 176 (STRLSS): Likewise. 177 (STRLEQ): Likewise. 178 (STRGTR): Likewise. 179 (STRGEQ): Likewise. 180 181 * call.c (convert_like): Add parenthesis and wrap. 182 (convert_like_with_context): Likewise. 183 (ICS_RANK): Whitespace. 184 (NEED_TEMPORARY_P): Remove parenthesis. 185 186 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and 187 whitespace. 188 (VTT_MARKED_BINFO_P): Likewise. 189 190 * decl.c (BINDING_LEVEL): Add parenthesis. 191 (DEF_OPERATOR): Likewise. 192 193 * mangle.c (MANGLE_TRACE): Add parenthesis. 194 (MANGLE_TRACE_TREE): Likewise. 195 (write_signed_number): Likewise. 196 (write_unsigned_number): Likewise. 197 198 * pt.c (ccat): Uppercase macro parameter. 199 (cat): Likewise 200 201 * search.c (SET_BINFO_ACCESS): Add parenthesis. 202 2032002-01-07 Jason Merrill <jason@redhat.com> 204 205 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch 206 to pedwarn. 207 208 PR c++/3536 209 * method.c (make_thunk): If !flag_weak, give the thunk the 210 function's linkage. 211 (use_thunk): Here, too. 212 2132002-01-07 Graham Stott <grahams@redhat.com> 214 215 * error.c: Update copyright date. 216 (print_scope_operator): Add parenthesis. 217 (print_left_paren): Likewise. 218 (print_right_paren): Likewise. 219 (print_left_bracket): Likewise. 220 (print_right_bracket): Likewise. 221 (print_template_argument_list_start): Likewise. 222 (print_template_argument_list_end): Likewise. 223 (print_non_consecutive_character): Likewise. 224 (print_tree_identifier): Likewise. 225 (print_identifier): Likewise. 226 (NEXT_CODE): Uppercase macro parameter. 227 (ident_fndecl): Delete unused. 228 (GLOBAL_THING): Likewise. 229 2302002-01-06 Graham Stott <grahams@redhat.com> 231 232 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis. 233 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise. 234 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise. 235 (RECORD_OR_UNION_TYPE_CHECK): Likewise. 236 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise. 237 (C_IS_RESERVED_WORD): Uppercase macro parameter. 238 (C_RID_YYCODE) Likewise. 239 (ptrmem_cst): Use rtx. 240 (LOCAL_BINDING_P): Add whitespace. 241 (INHERITED_VALUE_BINDING_P): Likewise. 242 (BINDING_SCOPE): Wrap long line. 243 (BINDING_HAS_LEVEL_P): Remove parenthesis. 244 (BINDING_VALUE): Wrap long line. 245 (BINDING_TYPE): Whitespace. 246 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis. 247 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise. 248 (IDENTIFIER_NAMESPACE_VALUE): Likewise. 249 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise. 250 (same_type_p): Uppercase macro parameters. 251 (same_type_ignoring_top_level_qualifiers_p): Likewise. 252 (OVL_FUNCTION): Wrap long line. 253 (OVL_CHAIN): Whitespace. 254 (OVL_CURRENT): Add parenthesis and whitespace. 255 (OVL_NEXT): Whitespace. 256 (OVL_USED): Likewise. 257 (IDENTIFIER_TYPE_VALUE): Likewise. 258 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis. 259 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace. 260 (LANG_ID_FIELD): Whitespace. 261 (SET_LANG_ID(NODE,VALUE,NAME): Likewise. 262 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap. 263 (SET_IDENTIFIER_LABEL_VALUE): Whitespace. 264 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap. 265 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace. 266 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap. 267 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace. 268 (IDENTIFIER_VIRTUAL_P): Likewise. 269 (IDENTIFIER_OPNAME_P): Likewise. 270 (IDENTIFIER_TYPENAME_P): Remove parenthesis. 271 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters. 272 (C_SET_EXP_ORIGINAL_CODE): Likewise. 273 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line. 274 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise. 275 (IS_AGGR_TYPE): Uppercase macro parameter. 276 (CLASS_TYPE_P): Likewise. 277 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis. 278 (IS_AGGR_TYPE_2): Whitespace. 279 (TAGGED_TYPE_P): Uppercase macro parameter. 280 (TYPE_BUILT_IN): Whitespace. 281 (TYPE_FOR_JAVA): Likewise. 282 (FUNCTION_ARG_CHAIN): Remove parenthesis. 283 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis. 284 (FUNCTION_FIRST_USER_PARAM): Likewise. 285 (PROMOTES_TO_AGGR_TYPE): Whitespace. 286 (DERIVED_FROM_P): Add parenthesis and wrap. 287 (UNIQUELY_DERIVED_FROM_P): Likewise. 288 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise. 289 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 290 (CLASSTYPE_USE_TEMPLATE): Whitespace. 291 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis. 292 (TYPE_GETS_DELETE): Add parenthesis. 293 (TYPE_HAS_CONVERSION): Add parenthesis and wrap. 294 (TYPE_HAS_ASSIGN_REF): Likewise, 295 (TYPE_HAS_CONST_ASSIGN_REF): Likewise. 296 (TYPE_HAS_INIT_REF): Likewise. 297 (TYPE_HAS_CONST_INIT_REF): Likewise. 298 (TYPE_BEING_DEFINED): Likewise. 299 (TYPE_LANG_SPECIFIC): Likewise. 300 (CLASSTYPE_RTTI): Likewise. 301 (TYPE_OVERLOADS_CALL_EXPR): Likewise. 302 (TYPE_OVERLOADS_ARRAY_REF): Likewise. 303 (TYPE_OVERLOADS_ARROW): Likewise. 304 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise. 305 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis. 306 (CLASSTYPE_METHOD_VEC): Likewise. 307 (CLASSTYPE_MARKED_N): Likewise. 308 (CLASSTYPE_MARKED): Likewise. 309 (CLASSTYPE_MARKED2): Likewise. 310 (CLASSTYPE_MARKED3): Likewise. 311 (CLASSTYPE_MARKED4): Likewise. 312 (CLASSTYPE_MARKED5): Likewise. 313 (CLASSTYPE_MARKED6): Likewise. 314 (SET_CLASSTYPE_MARKED): Whitespace. 315 (CLEAR_CLASSTYPE_MARKED): Likewise. 316 (SET_CLASSTYPE_MARKED2): Likewise. 317 (CLEAR_CLASSTYPE_MARKED2): Likewise. 318 (SET_CLASSTYPE_MARKED3): Likewise. 319 (CLEAR_CLASSTYPE_MARKED3): Likewise. 320 (SET_CLASSTYPE_MARKED4): Likewise. 321 (CLEAR_CLASSTYPE_MARKED4): Likewise. 322 (SET_CLASSTYPE_MARKED5): Likewise. 323 (CLEAR_CLASSTYPE_MARKED5): Likewise. 324 (SET_CLASSTYPE_MARKED6): Likewise. 325 (CLEAR_CLASSTYPE_MARKED6): Likewise. 326 (CLASSTYPE_TAGS): Likewise. 327 (CLASSTYPE_VSIZE): Likewise. 328 (CLASSTYPE_VBASECLASSES): Likewise. 329 (CANONICAL_BINFO): Add parenthesis. 330 (CLASSTYPE_SIZE(NODE): Likewise. 331 (CLASSTYPE_SIZE_UNIT): Likewise. 332 (CLASSTYPE_ALIGN(NODE): Likewise. 333 (CLASSTYPE_USER_ALIGN): Likewise. 334 (TYPE_JAVA_INTERFACE): Likewise. 335 (CLASSTYPE_PURE_VIRTUALS): Likewise. 336 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap. 337 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. 338 (CLASSTYPE_HAS_MUTABLE): Likewise. 339 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise. 340 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap. 341 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise. 342 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise. 343 (CLASSTYPE_INTERFACE_ONLY): Likewise. 344 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 345 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 346 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 347 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 348 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 349 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap. 350 (BINFO_UNSHARED_MARKED): Whitespace. 351 (BINFO_MARKED): Whitespace and wrap. 352 (SET_BINFO_MARKED): Likewise. 353 (CLEAR_BINFO_MARKED): Likewise. 354 (BINFO_VTABLE_PATH_MARKED): Likewise. 355 (SET_BINFO_VTABLE_PATH_MARKED): Likewise. 356 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise. 357 (BINFO_SUBVTT_INDEX): Remove parenthesis. 358 (BINFO_VPTR_INDEX): Likewise. 359 (BINFO_PRIMARY_BASE_OF): Likewise, 360 (CLASSTYPE_VFIELDS): Whitespace. 361 (VF_DERIVED_VALUE): Wrap long line. 362 (NAMESPACE_LEVEL): Whitespace. 363 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis. 364 (DEFARG_POINTER): Whitespace. 365 (DECL_NEEDED_P): Remove parenthesis. 366 (DECL_LANGUAGE): Whitespace. 367 (SET_DECL_LANGUAGE): Add parenthesis. 368 (DECL_CONSTRUCTOR_P): Whitespace and wrap. 369 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis. 370 (DECL_IN_AGGR_P): Whitespace. 371 (DECL_FRIEND_P): Likewise. 372 (DECL_BEFRIENDING_CLASSES): Likewise. 373 (DECL_STATIC_FUNCTION_P): Whitespace and wrap. 374 (DECL_NONCONVERTING_P): Whitespace. 375 (DECL_PURE_VIRTUAL_P): Likewise. 376 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise. 377 (DECL_PENDING_INLINE_INFO): Whitespace. 378 (DECL_SORTED_FIELDS): Likewise. 379 (DECL_DEFERRED_FN): Likewise. 380 (DECL_TEMPLATE_INFO): Likewise. 381 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap. 382 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise. 383 (SET_TYPE_TEMPLATE_INFO): Add parenthesis. 384 (TMPL_ARGS_LEVEL): Likewise. 385 (SET_TMPL_ARGS_LEVEL): Likewise. 386 (INNERMOST_TEMPLATE_PARMS): Whitespace. 387 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter. 388 (INTEGRAL_CODE_P(CODE): Add parenthesis. 389 (CP_INTEGRAL_TYPE_P): Remove parenthesis. 390 (TYPE_HAS_CONSTRUCTOR): Whitespace. 391 (TREE_HAS_CONSTRUCTOR): Likewise. 392 (TYPE_HAS_DESTRUCTOR): Likewise. 393 (TYPE_HAS_REAL_ASSIGN_REF): Likewise. 394 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise. 395 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise. 396 (TYPE_HAS_COMPLEX_INIT_REF): Likewise. 397 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. 398 (TYPE_PTRMEMFUNC_P): Likewise. 399 (TYPE_PTRMEMFUNC_FLAG): Likewise. 400 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise. 401 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise. 402 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis. 403 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 404 (DECL_ACCESS): Whitespace. 405 (DECL_GLOBAL_CTOR_P): Remove parenthesis. 406 (DECL_GLOBAL_DTOR_P): Likewise. 407 (GLOBAL_INIT_PRIORITY): Likewise. 408 (DECL_TEMPLATE_PARMS): Likewise. 409 (DECL_TEMPLATE_RESULT): Likewise. 410 (DECL_TEMPLATE_INSTANTIATIONS): Likewise. 411 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise. 412 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis. 413 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 414 (PRIMARY_TEMPLATE_P): Add parenthesis. 415 (DECL_USE_TEMPLATE): Whitespace. 416 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 417 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 418 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 419 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 420 (CALL_DECLARATOR_PARMS): Remove parenthesis. 421 (CALL_DECLARATOR_QUALS): Likewise. 422 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise. 423 (TEMP_NAME_P): Wrap. 424 (VFIELD_NAME_P): Likewise. 425 (B_SET): Uppercase macro parameters and add parenthesis. 426 (B_CLR): Likewise. 427 (B_TST): Likewise. 428 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters. 429 (LOOKUP_TYPES_ONLY): Uppercase macro parameters. 430 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters. 431 (same_or_base_type_p): Likewise. 432 (cp_deprecated): Likewise. 433 4342002-01-05 Richard Henderson <rth@redhat.com> 435 436 * semantics.c (expand_body): Revert last change. 437 4382002-01-04 Jason Merrill <jason@redhat.com> 439 440 PR c++/4122 441 * class.c (update_vtable_entry_for_fn): Set delta to zero for a 442 lost primary. 443 444 * class.c (build_vtbl_initializer): Check for a lost primary 445 before calculating the vtable entry to throw away. 446 4472002-01-02 Jason Merrill <jason@redhat.com> 448 449 * semantics.c (expand_body): Call outlining_inline_function when 450 emitting an inline function out of line. 451 4522002-01-02 Nathan Sidwell <nathan@codesourcery.com> 453 454 PR c++/5116, c++/764 reversion 455 * call.c (build_new_op): Revert the instantiations. They are 456 incorrect. 457 4582002-01-02 Nathan Sidwell <nathan@codesourcery.com> 459 460 PR c++/5089 461 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void. 462 4632002-01-02 Nathan Sidwell <nathan@codesourcery.com> 464 465 PR c++/3716 466 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst. 467 (tsubst, case POINTER_TYPE): Handle pmfs here. 468 (tsubst, case OFFSET_TYPE): Check it is not an offset to 469 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE. 470 4712002-01-02 Nathan Sidwell <nathan@codesourcery.com> 472 473 PR c++/35 474 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too. 475 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too. 476 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the 477 PARM_DECL. 478 (tsubst_template_parms): Break up loop statements. 479 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template 480 parm PARM_DECLs don't get promoted. 481 4822002-01-02 Nathan Sidwell <nathan@codesourcery.com> 483 484 PR c++/5123 485 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR. 486 (build_x_function_call): Cope with a COMPONENT_REF containing a 487 TEMPLATE_ID_EXPR. 488 4892002-01-02 Nathan Sidwell <nathan@codesourcery.com> 490 491 PR c++/5213 492 * pt.c (convert_template_argument): Be more careful determining 493 when RECORD_TYPE templates are or are not templates. 494 4952002-01-02 Nathan Sidwell <nathan@codesourcery.com> 496 497 PR c++/775 498 * cp-tree.h (handle_class_head): Adjust prototype. 499 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P 500 parameters. Use for all class heads. 501 * parse.y (named_class_head_sans_basetype, named_class_head, 502 named_complex_class_head_sans_basetype, 503 named_class_head_sans_basetype_defn, 504 unnamed_class_head): Remove. 505 (class_head, class_head_apparent_template): Recognize class heads 506 (class_head_decl, class_head_defn): New reductions. Process class 507 heads. 508 (structsp): Adjust class definition and class declaration 509 reductions. 510 (maybe_base_class_list): Give diagnostic on empty list. 511 5122002-01-02 Nathan Sidwell <nathan@codesourcery.com> 513 514 PR c++/4379 515 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a 516 single non-static member. 517 (unary_complex_lvalue): If it cannot be a pointer to member, don't 518 make it so. Check it is not pointer to reference. 519 5202002-01-02 Nathan Sidwell <nathan@codesourcery.com> 521 522 PR c++/5132 523 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we 524 are processing a template decl. 525 5262002-01-02 Nathan Sidwell <nathan@codesourcery.com> 527 528 PR c++/5116, c++/764 529 * call.c (build_new_op): Make sure template class operands are 530 instantiated. Simplify arglist construction. 531 5322001-12-29 Nathan Sidwell <nathan@codesourcery.com> 533 534 * call.c (build_user_type_conversion_1): Use my_friendly_assert 535 rather than if ... abort. 536 * cvt.c (convert_to_reference): Likewise. 537 * semantics.c (setup_vtbl_ptr): Likewise. 538 * pt.c (lookup_template_class): Comment typo. 539 5402001-12-29 Nathan Sidwell <nathan@codesourcery.com> 541 542 PR c++/5125 543 * pt.c (push_template_decl_real): Make sure DECL has 544 DECL_LANG_SPECIFIC. 545 5462001-12-29 Nathan Sidwell <nathan@codesourcery.com> 547 548 PR c++/335 549 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 550 for non-reference fields. 551 * typeck.c (require_complete_type): Use resolve_offset_ref). 552 5532001-12-26 Nathan Sidwell <nathan@codesourcery.com> 554 555 PR c++/196 556 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 557 5582001-12-24 Nathan Sidwell <nathan@codesourcery.com> 559 560 PR c++/160 561 * typeck.c (build_modify_expr): Remove old unreachable code & tidy 562 up. Don't stabilize_references when initializing a reference. 563 5642001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 565 566 * decl2.c (lang_f_options): Const-ify. 567 5682001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 569 570 * config-lang.in (diff_excludes): Remove. 571 5722001-12-19 Nathan Sidwell <nathan@codesourcery.com> 573 574 PR c++/90 575 * typeck.c (build_function_call_real): Use original function 576 expression for errors. 577 5782001-12-18 Jason Merrill <jason@redhat.com> 579 580 PR c++/3242 581 * class.c (add_method): Do compare 'this' quals when trying to match a 582 used function. Don't defer to another used function. 583 5842001-12-18 Nathan Sidwell <nathan@codesourcery.com> 585 586 * pt.c (instantiate_clone): Remove, fold into ... 587 (instantiate_template): ... here. Simplify by removing mutual 588 recursion. 589 * typeck2.c (build_m_component_ref): Don't cv qualify the function 590 pointed to by a pointer to function. 591 * class.c (delete_duplicate_fields_1): Typo. 592 5932001-12-18 Jason Merrill <jason@redhat.com> 594 595 C++ ABI change: destroy value arguments in caller. 596 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 597 create an extra binding level for the parameters. 598 * decl.c (store_parm_decls): Don't do parameter cleanups. 599 6002001-12-18 Nathan Sidwell <nathan@codesourcery.com> 601 602 * call.c (build_new_method_call): Use '%#V'. 603 * error.c (cv_to_string): Use V parameter to determine padding. 604 6052001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 606 607 * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 608 spellings in messages. 609 6102001-12-17 Zack Weinberg <zack@codesourcery.com> 611 612 * cp-tree.h: Delete #defines for cp_error, cp_warning, 613 cp_pedwarn, and cp_compiler_error. 614 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 615 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 616 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 617 typeck2.c: Change calls to the above macros to use their 618 language-independent equivalents: error, warning, pedwarn, and 619 internal_error respectively. 620 6212001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 622 623 * decl2.c (finish_file): Remove back_end_hook. 624 6252001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 626 627 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 628 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 629 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 630 6312001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 632 633 * lang-options.h: Use American spelling in messages. 634 6352001-12-13 Jason Merrill <jason@redhat.com> 636 637 * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 638 639 Use cleanups to run base and member destructors. 640 * init.c (push_base_cleanups): New function, split out from... 641 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 642 * decl.c (finish_destructor_body): Move vbase destruction code to 643 push_base_cleanups. 644 (begin_function_body, finish_function_body): New fns. 645 (finish_function): Move [cd]tor handling and call_poplevel to 646 finish_function_body. 647 (pushdecl): Skip the new level. 648 * semantics.c (genrtl_try_block): Don't call end_protect_partials. 649 (setup_vtbl_ptr): Call push_base_cleanups. 650 * method.c (synthesize_method): Call {begin,end}_function_body. 651 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 652 * cp-tree.h: Declare new fns. 653 * parse.y (function_body, .begin_function_body): New nonterminals. 654 (fndef, pending_inline, function_try_block): Use function_body. 655 (ctor_initializer_opt, function_try_block): No longer has a value. 656 (base_init): Remove .set_base_init token. 657 (.set_base_init, compstmt_or_error): Remove. 658 * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 659 660 * optimize.c (maybe_clone_body): Fix parameter updating. 661 6622001-12-12 Jason Merrill <jason@redhat.com> 663 664 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 665 * semantics.c (genrtl_start_function): Don't pass 666 parms_have_cleanups or push an extra binding level. 667 (genrtl_finish_function): Lose cleanup_label cruft. 668 669 * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 670 (ctor_label): Remove. 671 * semantics.c (finish_return_stmt): Lose ctor_label support. 672 * decl.c (finish_constructor_body, mark_lang_function): Likewise. 673 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 674 dtor_label. 675 676 * call.c (build_new_method_call): Let resolves_to_fixed_type_p 677 check for [cd]tors. 678 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 679 680 * decl.c (finish_function): Check VMS_TARGET, not VMS. 681 682 * decl.c (start_cleanup_fn): Remove redundant pushlevel. 683 (end_cleanup_fn): And poplevel. 684 685 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 686 if we're in a template. 687 6882001-12-12 Jakub Jelinek <jakub@redhat.com> 689 690 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 691 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 692 THIS_NAME_P): Delete. 693 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 694 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 695 with internal naming scheme. 696 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 697 6982001-12-12 Nathan Sidwell <nathan@codesourcery.com> 699 700 * decl.c (grokdeclarator): Deprecated implicit typename use. 701 7022001-12-11 Nathan Sidwell <nathan@codesourcery.com> 703 704 PR g++/51 705 * parse.y (frob_specs): Indicate it is a language linkage which 706 contained the extern. 707 * decl.c (grokdeclarator): Allow extern language linkage with 708 other specifiers. 709 7102001-12-10 Nathan Sidwell <nathan@codesourcery.com> 711 712 PR g++/72 713 * decl.c (add_binding): Don't reject duplicate typedefs involving 714 template parameters. 715 7162001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 717 718 * parse.y, semantics.c: Similarly. 719 7202001-12-09 Nathan Sidwell <nathan@codesourcery.com> 721 722 PR g++/87 723 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 724 (copy_args_p): Rename to ... 725 (copy_fn_p): ... here. 726 (grok_special_member_properties): New function. 727 (grok_op_properties): Lose VIRTUALP parameter. 728 (copy_assignment_arg_p): Remove. 729 * call.c (build_over_call): Use copy_fn_p. 730 * decl.c (grokfndecl): Reformat. Adjust call to 731 grok_op_properties. 732 (copy_args_p): Rename to ... 733 (copy_fn_p): ... here. Reject template functions. Check for pass 734 by value. 735 (grok_special_member_properties): Remember special functions. 736 (grok_ctor_properties): Don't remember them here, just check. 737 (grok_op_properties): Likewise. 738 (start_method): Call grok_special_member_properties. 739 * decl2.c (grokfield): Likewise. 740 (copy_assignment_arg_p): Remove. 741 (grok_function_init): Don't remember abstract assignment here. 742 * pt.c (instantiate_class_template): Call 743 grok_special_member_properties. 744 (tsubst_decl): Adjust grok_op_properties call. 745 7462001-12-08 Aldy Hernandez <aldyh@redhat.com> 747 748 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 749 RID_TYPES_COMPATIBLE_P. 750 7512001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 752 753 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 754 call to build_aggr_init. 755 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 756 7572001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 758 759 * parse.y: Replace uses of the string non-terminal with STRING. 760 Don't perform string concatentaion here. 761 (string): Remove non-terminal. 762 * semantics.c (finish_asm_stmt): Don't concatenate strings here. 763 7642001-12-05 Jason Merrill <jason@redhat.com> 765 766 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 767 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 768 * tree.c (cp_start_inlining, cp_end_inlining): New fns. 769 * pt.c (push_tinst_level): No longer static. 770 * cp-tree.h: Declare them. 771 772 * init.c (resolve_offset_ref): Don't check access for the base 773 conversion to access a FIELD_DECL. 774 775 * cp-tree.h (TYPE_REFFN_P): New macro. 776 * decl.c (bad_specifiers): Check it, too. 777 778 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 779 on the __*_type_info type if we haven't seen a definition. 780 7812001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 782 783 * decl.c: Include c-common.h. 784 (shadow_warning): Move to c-common.c. 785 786Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 787 788 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 789 7902001-12-04 Nathan Sidwell <nathan@codesourcery.com> 791 792 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 793 7942001-12-04 Nathan Sidwell <nathan@codesourcery.com> 795 796 PR g++/164 797 * init.c (sort_base_init): Allow binfos to be directly specified. 798 * method.c (do_build_copy_constructor): Explicitly convert to the 799 base instance. 800 (do_build_assign_ref): Likewise. 801 8022001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 803 804 * decl.c (xref_basetypes): Don't use C99 construct in tag_code 805 declaration and initialization. 806 8072001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 808 809 * typeck2.c: Remove leading capital from diagnostic messages, as 810 per GNU coding standards. 811 8122001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 813 814 PR c++/3394 815 * decl.c (xref_basetypes): Handle attributes between 816 'class' and name. 817 8182001-12-03 Nathan Sidwell <nathan@codesourcery.com> 819 820 PR g++/3381 821 * parse.y (named_complex_class_head_sans_basetype): Add new 822 reduction. 823 * Make-lang.in (parse.c): Adjust expected conflict count. 824 8252001-12-03 Jason Merrill <jason@redhat.com> 826 827 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 828 immediate binfos for our virtual bases. 829 8302001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 831 832 * call.c (build_java_interface_fn_ref): Similarly. 833 * except.c (is_admissible_throw_operand): Similarly. 834 * init.c (build_java_class_ref): Similarly. 835 * xref.c (open_xref_file): Similarly. 836 8372001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 838 839 * class.c (finish_struct): Remove trailing periods from messages. 840 * decl.c (check_tag_decl): Similarly. 841 * lex.c (cxx_set_yydebug): Similarly. 842 * typeck2.c (friendly_abort): Similarly. 843 8442001-11-29 Mark Mitchell <mark@codesourcery.com> 845 846 PR c++/3048 847 * cp-tree.h (ovl_member): Remove. 848 * decl2.c (merge_functions): Handle extern "C" functions 849 specially. 850 * tree.c (ovl_member): Remove. 851 8522001-11-29 Mark Mitchell <mark@codesourcery.com> 853 854 PR c++/4842 855 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 856 FUNCTION_DECL, as input. 857 (mark_overriders): Remove. 858 (warn_hidden): Rework for the new ABI. 859 8602001-11-29 Mark Mitchell <mark@codesourcery.com> 861 862 PR c++/3471 863 * call.c (convert_like_real): Do not build additional temporaries 864 for rvalues of class type. 865 8662001-11-28 Nathan Sidwell <nathan@codesourcery.com> 867 868 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 869 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 870 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 871 (DERIVED_FROM_P): Likewise. 872 (enum base_access): Renumber, add ba_quiet bit mask. 873 (get_binfo): Remove. 874 (get_base_distance): Remove. 875 (binfo_value): Remove. 876 (ACCESSIBLY_DERIVED_FROM_P): Remove. 877 * call.c (standard_conversion): Use lookup_base. 878 * class.c (strictly_overrides): Likewise. 879 (layout_virtual_bases): Likewise. 880 (warn_about_ambiguous_direct_bases): Likewise. 881 (is_base_of_enclosing_class): Likewise. 882 (add_vcall_offset_vtbl_entries_1): Likewise. 883 * cvt.c (build_up_reference): Adjust comment. 884 * init.c (build_member_call): Reformat. 885 * search.c (get_binfo): Remove. 886 (get_base_distance_recursive): Remove. 887 (get_base_distance): Remove. 888 (lookup_base_r): Tweak. 889 (lookup_base): Add ba_quiet control. Complete the types here. 890 (covariant_return_p): Use lookup_base. 891 * tree.c (binfo_value): Remove. 892 (maybe_dummy_object): Use lookup_base. 893 * typeck.c (build_static_cast): Use lookup_base. 894 (get_delta_difference): Likewise. 895 * typeck2.c (binfo_or_else): Use lookup_base. 896 (build_scoped_ref): Add back error_mark_check. 897 (build_m_component_ref): Use lookup_base. 898 8992001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 900 901 * Make-lang.in (c++.generated-manpages): New dummy target. 902 903Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 904 905 * Make-lang.in (cp-lang.o): Depends on c-common.h. 906 * cp-lang.c (c-common.h): Include. 907 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 908 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 909 * expr.c (init_cplus_expand): Don't set lang_expand_constant. 910 9112001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 912 913 * decl2.c (c_language): Move to c-common.c. 914 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 915 functions. 916 (cxx_init): Update. 917 9182001-11-26 Jason Merrill <jason@redhat.com> 919 920 * call.c (joust): Remove COND_EXPR hack. 921 9222001-11-25 Aldy Hernandez <aldyh@redhat.com> 923 924 * search.c (lookup_base_r): Declare bk in variable declaration 925 space. 926 9272001-11-25 Nathan Sidwell <nathan@codesourcery.com> 928 929 PR g++/3145 930 * class.c (build_vbase_pointer): Remove. 931 (build_vbase_path): Remove. 932 (build_base_path): New function. 933 * cp-tree.h (base_access, base_kind): New enumerations. 934 (build_base_path): Declare. 935 (convert_pointer_to_real): Remove. 936 (convert_pointer_to): Remove. 937 (lookup_base): Declare. 938 (convert_pointer_to_vbase): Remove. 939 * call.c (build_scoped_method_call): Use lookup_base & 940 build_base_path instead of convert_pointer_to_real, 941 get_base_distance & get_binfo. 942 (build_over_call): Likewise. 943 * cvt.c (cp_convert_to_pointer): Likewise. 944 (convert_to_pointer_force): Likewise. 945 (build_up_reference): Likewise. 946 (convert_pointer_to_real): Remove. 947 (convert_pointer_to): Remove. 948 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 949 instead of convert_pointer_to_vbase & build_vbase_path. 950 (emit_base_init): Use build_base_path instead of 951 convert_pointer_to_real. 952 (expand_virtual_init): Lose unrequired conversions. 953 (resolve_offset_ref): Use lookup_base and build_base_path 954 instead of convert_pointer_to. 955 * rtti.c (build_dynamic_cast_1): Use lookup_base & 956 build_base_path instead of get_base_distance & build_vbase_path. 957 * search.c (get_vbase_1): Remove. 958 (get_vbase): Remove. 959 (convert_pointer_to_vbase): Remove. 960 (lookup_base_recursive): New function. 961 (lookup_base): New function. 962 * typeck.c (require_complete_type): Use lookup_base & 963 build_base_path instead of convert_pointer_to. 964 (build_component_ref): Likewise. 965 (build_x_function_call): Likewise. 966 (get_member_function_from_ptrfunc): Likewise. 967 (build_component_addr): Likewise. 968 * typeck2.c (build_scoped_ref): Likewise. 969 9702001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 971 972 * cp-tree.h (CP_TYPE_QUALS): Removed. 973 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 974 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 975 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 976 * dump.c (cp_dump_tree): Use void* dump_info argument to match 977 lang-hooks prototype. 978 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 979 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 980 CP_TYPE_QUALS changed to cp_type_quals. 981 * Make-lang.in: References to c-dump.h changed to tree-dump.h. 982 (CXX_C_OBJS): Remove c-dump.o. 983 9842001-11-21 Mark Mitchell <mark@codesourcery.com> 985 986 PR c++/3637 987 * pt.c (lookup_template_class): Ensure that all specializations 988 are registered on the list corresponding to the most general 989 template. 990 9912001-11-20 Mark Mitchell <mark@codesourcery.com> 992 993 * call.c (non_reference): Add documentation. 994 (convert_class_to_reference): Do not strip reference types 995 from conversion operators. 996 (maybe_handle_ref_bind): Simplify. 997 (compare_ics): Correct handling of references. 998 9992001-11-19 John Wilkinson <johnw@research.att.com> 1000 1001 * dump.c (dump_op): New function. 1002 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 1003 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 1004 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 1005 10062001-11-19 Mark Mitchell <mark@codesourcery.com> 1007 1008 PR4629 1009 * semantics.c (finish_sizeof): Make sure that expression created 1010 while processing a template do not have a type. 1011 (finish_alignof): Likewise. 1012 * typeck.c (c_sizeof): Likewise. 1013 (expr_sizeof): Likewise. 1014 10152001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 1016 1017 * lex.c (cxx_finish): Call c_common_finish. 1018 (finish_parse): Remove. 1019 10202001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1021 1022 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 1023 when displaying error message about missing array bounds. 1024 10252001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1026 1027 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 1028 CONST_CAST_EXPR. 1029 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 1030 10312001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 1032 1033 * cp-tree.h (print_class_statistics): Restore. 1034 10352001-11-15 Jason Merrill <jason@redhat.com> 1036 1037 * method.c (use_thunk): Don't emit debugging information for thunks. 1038 1039 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 1040 * decl.c (make_typename_type): Handle getting a class template. 1041 * search.c (lookup_field_r): A class template is good enough for 1042 want_type. 1043 1044 * call.c (convert_like_real): Only use cp_convert for the bad part. 1045 (standard_conversion): Also allow bad int->enum. 1046 * typeck.c (ptr_reasonably_similar): Also allow functions to 1047 interconvert. Pointers to same-size integers are reasonably 1048 similar. 1049 1050 * cvt.c (convert_to_void): If we build a new COND_EXPR, always 1051 give it void type. 1052 10532001-11-15 Nathan Sidwell <nathan@codesourcery.com> 1054 1055 PR g++/3154 1056 * init.c (sort_base_init): Remove unreachable code. 1057 (expand_member_init): Adjust comment to reflect reality. Simplify 1058 and remove unreachable code. 1059 10602001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 1061 1062 * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 1063 (cxx_init): Update prototype. 1064 * decl.c (init_decl_processing): Rename. Move null node init 1065 to its creation time. 1066 * lex.c (cxx_init_options): Update. 1067 (cxx_init): Combine with old init_parse; also call 1068 cxx_init_decl_processing. 1069 10702001-11-14 Richard Sandiford <rsandifo@redhat.com> 1071 1072 * decl.c (check_initializer): Try to complete the type of an 1073 array element before checking whether it's complete. Don't 1074 complain about arrays with complete element types but an 1075 unknown size. 1076 (cp_finish_decl): Build the hierarchical constructor before 1077 calling maybe_deduce_size_from_array_init. 1078 10792001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 1080 1081 * Make-lang.in: Change all uses of $(manext) to $(man1ext). 1082 10832001-11-13 Nathan Sidwell <nathan@codesourcery.com> 1084 1085 PR g++/4206 1086 * parse.y (already_scoped_stmt): Remove. 1087 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 1088 10892001-11-12 H.J. Lu <hjl@gnu.org> 1090 1091 * cvt.c (ocp_convert): Don't warn the address of a weak 1092 function is always `true'. 1093 10942001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 1095 1096 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 1097 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 1098 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 1099 * cp-tree.h (print_class_statistics): Remove. 1100 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 1101 cxx_print_identifier, cxx_set_yydebug): New. 1102 * lex.c (set_yydebug): Rename c_set_yydebug. 1103 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 1104 lang_print_xnode): Rename. 1105 * tree.c (print_lang_statistics): Rename. 1106 11072001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1108 1109 * class.c (dump_array): Fix format specifier warning. 1110 11112001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 1112 1113 * cp-lang.c (LANG_HOOKS_NAME): Override. 1114 (struct lang_hooks): Constify. 1115 * lex.c (cxx_init_options): Update. 1116 (lang_identify): Remove. 1117 * parse.y (language_string): Remove. 1118 11192001-11-08 Andreas Franck <afranck@gmx.de> 1120 1121 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 1122 DEMANGLER_CROSS_NAME): Handle program_transform_name the way 1123 suggested by autoconf. 1124 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 1125 (c++.install-common): Use the transformed target alias names. 1126 11272001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 1128 1129 * Make-lang.in: Update. 1130 * cp-lang.c: Include langhooks-def.h. 1131 11322001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1133 1134 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 1135 11362001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1137 1138 * lex.c (copy_lang_type): Add static prototype. 1139 11402001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1141 1142 * pt.c (unify): Handle SCOPE_REF. 1143 11442001-11-01 Jakub Jelinek <jakub@redhat.com> 1145 1146 * tree.c (cp_copy_res_decl_for_inlining): Adjust 1147 DECL_ABSTRACT_ORIGIN for the return variable. 1148 11492001-10-31 Zack Weinberg <zack@codesourcery.com> 1150 1151 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 1152 11532001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 1154 1155 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 1156 semantics.c, spew.c: Fix spelling errors. 1157 11582001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1159 1160 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 1161 11622001-10-25 Zack Weinberg <zack@codesourcery.com> 1163 1164 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 1165 pop_everything. 1166 1167Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1168 1169 * cp-lang.c (cxx_get_alias_set): New function. 1170 Point LANG_HOOKS_GET_ALIAS_SET to it. 1171 11722001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1173 1174 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 1175 * cp-tree.h (make_unbound_class_template): Prototype new function. 1176 * decl.c (make_unbound_class_template): New function. 1177 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 1178 * error.c (dump_type): Likewise. 1179 * mangle.c (write_type): Likewise. 1180 * parse.y (template_parm): Likewise. 1181 (template_argument): Use make_unbound_class_template. 1182 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 1183 (tsubst): Likewise. 1184 (tsubst_copy): Likewise. 1185 (unify): Likewise. 1186 * tree.c (walk_tree): Likewise. 1187 * typeck.c (comptypes): Likewise. 1188 11892001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1190 1191 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 1192 extra calls into fewer ones. 1193 11942001-10-18 Alexandre Oliva <aoliva@redhat.com> 1195 1196 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 1197 Warn when merging inline with attribute noinline. 1198 (start_decl, start_function): Warn if inline and attribute 1199 noinline appear in the same declaration. 1200 12012001-10-16 H.J. Lu <hjl@gnu.org> 1202 1203 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 1204 for tree checking disabled. 1205 12062001-10-16 Hans-Peter Nilsson <hp@axis.com> 1207 1208 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 1209 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 1210 12112001-10-15 Richard Sandiford <rsandifo@redhat.com> 1212 1213 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 1214 (unify): Only handle MINUS_EXPR specially if the above flag is set 1215 and the subtracted constant is 1. Clear the flag on recursive calls. 1216 Set it when unifying the maximum value in an INTEGER_TYPE's range. 1217 12182001-10-15 Richard Sandiford <rsandifo@redhat.com> 1219 1220 * decl.c (bad_specifiers): Don't allow exception specifications 1221 on any typedefs. 1222 12232001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 1224 1225 * cp/lex.c (init_cp_pragma): Similarly. 1226 12272001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1228 1229 * pt.c (lookup_template_class): Build complete template arguments 1230 for BOUND_TEMPLATE_TEMPLATE_PARM. 1231 12322001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1233 1234 * cp-tree.h (TYPE_BINFO): Update comment. 1235 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 1236 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 1237 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 1238 (copy_type): Prototype new function. 1239 * lex.c (copy_lang_decl): Gather tree node statistics. 1240 (copy_lang_type): New function. 1241 (copy_type): Likewise. 1242 (cp_make_lang_type): Create lang_type for 1243 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 1244 and BOUND_TEMPLATE_TEMPLATE_PARM. 1245 * pt.c (tsubst): Use copy_type instead of copy_node. 1246 * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 1247 12482001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1249 1250 * pt.c (determine_specialization): Ignore functions without 1251 DECL_TEMPLATE_INFO. 1252 12532001-10-12 Nathan Sidwell <nathan@codesourcery.com> 1254 1255 PR g++/4476 1256 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 1257 12582001-10-11 Jason Merrill <jason_merrill@redhat.com> 1259 1260 * typeck2.c (store_init_value): Don't re-digest a bracketed 1261 initializer. 1262 1263 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 1264 ANON_AGGR_TYPE_P. 1265 12662001-10-11 Richard Henderson <rth@redhat.com> 1267 1268 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 1269 of an asm statement. 1270 (build_vtbl_ref_1): Split out from build_vtbl_ref. 1271 (build_vfn_ref): Use it to handle vtable descriptors before 1272 calling build_vtable_entry_ref. 1273 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 1274 12752001-10-10 Richard Henderson <rth@redhat.com> 1276 1277 * parse.y (asm_operand): Allow named operands. 1278 * semantics.c (finish_asm_stmt): Tweek for changed location 1279 of the operand constrant. 1280 12812001-10-09 Jason Merrill <jason_merrill@redhat.com> 1282 1283 * call.c (standard_conversion): Add bad conversion between 1284 integers and pointers. 1285 (convert_like_real): Don't use convert_for_initialization for bad 1286 conversions; complain here and use cp_convert. 1287 (build_over_call): Don't handle bad conversions specially. 1288 (perform_implicit_conversion): Allow bad conversions. 1289 (can_convert_arg_bad): New fn. 1290 * cp-tree.h: Declare it. 1291 * typeck.c (convert_for_assignment): Use it. 1292 (ptr_reasonably_similar): Any target type is similar to void. 1293 12942001-10-08 Alexandre Oliva <aoliva@redhat.com> 1295 1296 * Make-lang.in (CXX_OBJS): Added cp-lang.o. 1297 (cp/cp-lang.o): New rule. 1298 * cp-tree.h: Declare hooks. 1299 * tree.c: Make hooks non-static. 1300 (init_tree): Don't initialize hooks here. 1301 * lex.c: Likewise. Move definition of lang_hooks to... 1302 * cp-lang.c: ... new file. 1303 13042001-10-08 Richard Henderson <rth@redhat.com> 1305 1306 * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 1307 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 1308 13092001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1310 1311 * class.c (build_vtable_entry_ref): Const-ify. 1312 * decl.c (predefined_identifier, 1313 initialize_predefined_identifiers): Likewise. 1314 * init.c (build_new_1): Likewise. 1315 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 1316 Likewise. 1317 13182001-10-05 Alexandre Oliva <aoliva@redhat.com> 1319 1320 * optimize.c (struct inline_data): Moved to ../tree-inline.c. 1321 (INSNS_PER_STMT): Likewise. 1322 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 1323 (copy_body, initialize_inlined_parameters): Likewise. 1324 (declare_return_variable, inlinable_function_p): Likewise. 1325 (expand_call_inline, expand_calls_inline): Likewise. 1326 (optimize_inline_calls, clone_body): Likewise. 1327 * tree.c (walk_tree): Moved to ../tree-inline.c. 1328 (walk_tree_without_duplicates): Likewise. 1329 (copy_tree_r, remap_save_expr): Likewise. 1330 13312001-10-04 Alexandre Oliva <aoliva@redhat.com> 1332 1333 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 1334 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 1335 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 1336 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 1337 (flag_inline_trees): Moved declaration to ../tree-inline.h. 1338 (walk_tree): Moved declaration to ../tree-inline.h. 1339 (walk_tree_without_duplicates, copy_tree_r): Likewise. 1340 (remap_save_expr): Likewise. 1341 * decl.c: Include tree-inline.h. 1342 (lang_mark_tree): Don't mark inlined_fns. 1343 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 1344 * optimize.c: Include tree-inline.h. 1345 (optimize_inline_calls): Move declaration to ../tree.h, as 1346 non-static. 1347 (remap_decl): Use language-independent constructs and hooks. 1348 (remap_block, copy_body_r, declare_return_variable): Likewise. 1349 (inlinable_function_p): Likewise. Don't test for 1350 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 1351 no longer language-specific. 1352 (optimize_inline_calls): Likewise. Make it non-static. Moved 1353 call of dump_function to... 1354 (optimize_function): Here... 1355 (clone_body): New function, extracted from... 1356 (maybe_clone_body): ... here. Build decl_map locally and pass 1357 it on to clone_body. 1358 * pt.c, semantics.c: Include tree-inline.h. 1359 * tree.c: Likewise. 1360 (cp_walk_subtrees): New language-specific hook for tree inlining. 1361 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 1362 cp_is_overload_p, cp_auto_var_in_fn_p, 1363 cp_copy_res_decl_for_inlining): Likewise. 1364 (walk_tree): Move language-specific constructs into... 1365 (cp_walk_subtrees): this new function. 1366 (copy_tree_r): Use language-independent constructs and hooks. 1367 (init_tree): Initialize tree inlining hooks. 1368 (remap_save_expr): Adjust prototype so that the declaration 1369 does not require the definition of splay_tree. 1370 13712001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 1372 1373 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 1374 to build the declaration instead of the declaration itself. 1375 13762001-10-02 Jason Merrill <jason_merrill@redhat.com> 1377 1378 * decl2.c (cxx_decode_option): Add 'else'. 1379 1380 * spew.c (end_input): No longer static. 1381 * cp-tree.h: Declare it. 1382 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 1383 13842001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 1385 1386 * call.c (build_over_call), typeck.c (build_function_call_real): 1387 Pass type attributes to check_function_format rather than name or 1388 assembler name. Don't require there to be a name or assembler 1389 name to check formats. 1390 13912001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 1392 1393 * decl.c (init_decl_processing): Don't call 1394 init_function_format_info. Initialize lang_attribute_table 1395 earlier. 1396 (builtin_function): Call decl_attributes. 1397 (insert_default_attributes): New. 1398 13992001-10-01 Jason Merrill <jason_merrill@redhat.com> 1400 1401 * decl.c (grokdeclarator): Copy array typedef handling from C 1402 frontend. 1403 1404 * decl.c (grokdeclarator): Copy too-large array handling from C 1405 frontend. 1406 14072001-09-29 Alexandre Oliva <aoliva@redhat.com> 1408 1409 * config-lang.in (target_libs): Added target-gperf, so that we 1410 don't try to build it if C++ is disabled. 1411 14122001-09-23 Zack Weinberg <zack@codesourcery.com> 1413 1414 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 1415 (cp/errfn.o): Delete rule. 1416 (cp/error.o): Depend on flags.h. 1417 * errfn.c: Delete file. 1418 * cp-tree.h: Declare warn_deprecated. Remove definitions of 1419 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 1420 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 1421 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 1422 internal_error respectively. Make cp_deprecated into a macro. 1423 Don't define cp_printer typedef or declare cp_printers. 1424 * error.c: Include flags.h. 1425 Delete: struct tree_formatting_info, print_function_argument_list, 1426 print_declaration, print_expression, print_function_declaration, 1427 print_function_parameter, print_type_id, print_cv_qualifier_seq, 1428 print_type_specifier_seq, print_simple_type_specifier, 1429 print_elaborated_type_specifier, print_rest_of_abstract_declarator, 1430 print_parameter_declaration_clause, print_exception_specification, 1431 print_nested_name_specifier, and definition of cp_printers. 1432 (locate_error): New function. 1433 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 1434 rewritten in terms of locate_error and diagnostic.c. 1435 (cp_tree_printer): Rename cp_printer; wire up to *_to_string 1436 instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 1437 (init_error): Adjust to match. 1438 1439Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1440 1441 * Make-lang.in (CXX_C_OBJS): Add attribs.o. 1442 14432001-09-21 Richard Henderson <rth@redhat.com> 1444 1445 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 1446 (build_vtbl_initializer): Likewise. 1447 (build_vfn_ref): New. 1448 * cp-tree.h: Declare it. 1449 * call.c (build_over_call): Use it. 1450 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 1451 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 1452 1453Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com> 1454 1455 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 1456 14572001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 1458 1459 Table-driven attributes. 1460 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 1461 * decl2.c (cplus_decl_attributes): Only take one attributes 1462 parameter. 1463 * cp-tree.c (cplus_decl_attributes): Update prototype. 1464 * class.c (finish_struct), decl.c (start_decl, start_function), 1465 decl2.c (grokfield), friend.c (do_friend), parse.y 1466 (parse_bitfield): Update calls to cplus_decl_attributes. 1467 * decl.c (grokdeclarator): Take a pointer to a single ordinary 1468 attribute list. 1469 * decl.h (grokdeclarator): Update prototype. 1470 * decl2.c (grokfield): Take a single ordinary attribute list. 1471 * friend.c (do_friend): Likewise. 1472 * decl.c (shadow_tag, groktypename, start_decl, 1473 start_handler_parms, grokdeclarator, grokparms, start_function, 1474 start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 1475 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 1476 (process_template_parm, do_decl_instantiation): Pass single 1477 ordinary attribute lists around. 1478 * decl.c (grokdeclarator): Correct handling of nested attributes. 1479 Revert the patch 1480 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 1481 * decl.c (grokdeclarator): Embedded attrs bind to the right, 1482 not the left. 1483 . 1484 * cp-tree.h (cp_valid_lang_attribute): Remove declaration 1485 (cp_attribute_table): Declare. 1486 * decl.c (valid_lang_attribute): Don't define. 1487 (lang_attribute_table): Define. 1488 (init_decl_processing): Initialize lang_attribute_table instead of 1489 valid_lang_attribute. 1490 * tree.c (cp_valid_lang_attribute): Remove. 1491 (handle_java_interface_attribute, handle_com_interface_attribute, 1492 handle_init_priority_attribute): New functions. 1493 (cp_attribute_table): New array. 1494 * decl2.c (import_export_class): Don't use 1495 targetm.valid_type_attribute. 1496 14972001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 1498 1499 * Make-lang.in (cp/error.o): Depend on real.h 1500 * error.c: #include "real.h" 1501 15022001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1503 1504 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 1505 xmalloc/strcpy/strcat. 1506 15072001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1508 1509 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 1510 Const-ification. 1511 * pt.c (tsubst_decl): Likewise. 1512 15132001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1514 1515 * decl2.c (lang_f_options): Const-ification. 1516 * lex.c (cplus_tree_code_name): Likewise. 1517 * spew.c (yyerror): Likewise. 1518 15192001-09-06 Nathan Sidwell <nathan@codesourcery.com> 1520 1521 PR c++/3986 1522 * class.c (force_canonical_binfo_r): Check & move an indirect 1523 primary base first. 1524 (force_canonical_binfo): Check that it's not already 1525 canonical. 1526 (mark_primary_virtual_base): Remove BINFO parameter. 1527 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 1528 15292001-09-06 Nathan Sidwell <nathan@codesourcery.com> 1530 1531 Remove TYPE_NONCOPIED_PARTS. 1532 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 1533 CLASSTYPE_PURE_VIRTUALS. 1534 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 1535 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 1536 (layout_class_type): Don't call fixup_inline_methods here ... 1537 (finish_struct_1): ... call it here. 1538 15392001-09-04 Mark Mitchell <mark@codesourcery.com> 1540 1541 * decl.c (duplicate_decls): Remove code deadling with 1542 DECL_SAVED_INSNS. 1543 * decl2.c (finish_file): Likewise. 1544 * pt.c (instantiate_decl): Likewise. 1545 * semantics.c (expand_body): Don't defer local functions if 1546 they wouldn't be deferred for some other reason. Don't 1547 generate RTL for functions that will not be emitted. 1548 (genrtl_start_function): Remove code deadling with 1549 DECL_SAVED_INSNS. 1550 (genrtl_finish_function): Likewise. 1551 15522001-09-04 Nathan Sidwell <nathan@codesourcery.com> 1553 1554 PR c++/4203 1555 * call.c (build_over_call): Do not optimize any empty base 1556 construction. 1557 15582001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1559 1560 * error.c (dump_template_decl): Output template parameters 1561 together with their specifiers. 1562 Output `class' prefix for template template parameter. 1563 (dump_decl): Fix formatting. 1564 15652001-08-30 Kurt Garloff <garloff@suse.de> 1566 1567 * optimize.c (inlinable_function_p): Allow only smaller single 1568 functions. Halve inline limit after reaching recursive limit. 1569 15702001-08-30 Joern Rennecke <amylaar@redhat.com> 1571 Jason Merrill <jason_merrill@redhat.com> 1572 1573 * class.c (build_vtable_entry_ref): Subtract in char*, not 1574 ptrdiff_t. 1575 15762001-08-23 Jason Merrill <jason_merrill@redhat.com> 1577 1578 * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 1579 (build_cplus_array_type): Use cp_build_qualified_type, not 1580 TYPE_MAIN_VARIANT, to get an unqualified version. 1581 1582 * decl2.c (grok_alignof): Lose. 1583 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 1584 * typeck.c (c_alignof): Lose. 1585 * semantics.c (finish_sizeof, finish_alignof): New. 1586 * parse.y: Use them. 1587 * cp-tree.h: Declare them. 1588 15892001-08-22 Jason Merrill <jason_merrill@redhat.com> 1590 1591 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 1592 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 1593 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 1594 15952001-08-19 Jakub Jelinek <jakub@redhat.com> 1596 1597 * typeck2.c (add_exception_specifier): Only require complete type if 1598 not in processing template declaration. 1599 16002001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1601 1602 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 1603 GNU_xref_start_scope and GNU_xref_end_scope. 1604 1605 * tree.c (TYPE_HASH): Moved to ../tree.h. 1606 16072001-08-16 Mark Mitchell <mark@codesourcery.com> 1608 1609 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 1610 on COMPOUND_EXPRs. 1611 16122001-08-14 Richard Henderson <rth@redhat.com> 1613 1614 * class.c, cp-tree.h (build_vfn_ref): Remove. 1615 * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 1616 16172001-08-13 Mark Mitchell <mark@codesourcery.com> 1618 1619 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 1620 empty class assignment as having side-effects to avoid 1621 spurious warnings. 1622 16232001-08-13 Zack Weinberg <zackw@panix.com> 1624 1625 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 1626 * except.c: Include libfuncs.h. 1627 16282001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 1629 1630 * decl.c (grokdeclarator): Clarify diagnostic message. 1631 16322001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1633 1634 * decl2.c (do_nonmember_using_decl): Replace using directive 1635 with using declaration in the error message. 1636 16372001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1638 1639 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 1640 criterion to avoid rebuilding expression tree instead of 1641 processing_template_decl. 1642 16432001-08-07 Jason Merrill <jason_merrill@redhat.com> 1644 1645 Support named return value optimization for inlines, too. 1646 * decl.c (finish_function): Nullify returns here. 1647 * semantics.c (genrtl_start_function): Not here. 1648 (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 1649 (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 1650 Also nullify the CLEANUP_STMT for the nrv. 1651 * cp-tree.h: Declare it. 1652 * optimize.c (declare_return_variable): Replace the nrv with the 1653 return variable. 1654 * typeck.c (check_return_expr): Be more flexible on alignment check. 1655 Ignore cv-quals when checking for a matching type. 1656 16572001-08-09 Richard Henderson <rth@redhat.com> 1658 1659 * decl2.c (finish_objects): Use target hooks instead of 1660 assemble_constructor and assemble_destructor. 1661 16622001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 1663 1664 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 1665 16662001-08-07 Nathan Sidwell <nathan@codesourcery.com> 1667 1668 PR c++/3820 1669 Stop using TYPE_NONCOPIED_PARTS. 1670 * call.c (build_over_call): Be careful when copy constructing 1671 or assigning to an empty class. 1672 * class.c (check_bases_and_members): It has a 1673 COMPLEX_ASSIGN_REF if it has a vptr. 1674 (layout_class_type): Don't add empty class padding to 1675 TYPE_NONCOPIED_PARTS. 1676 (finish_struct_1): Don't add the VFIELD either. 1677 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 1678 initialization. 1679 16802001-08-07 Jason Merrill <jason_merrill@redhat.com> 1681 1682 * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 1683 16842001-08-06 Richard Henderson <rth@redhat.com> 1685 1686 * decl2.c (finish_objects): Pass a symbol_ref and priority to 1687 assemble_{constructor,destructor}. Remove priority handling. 1688 16892001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 1690 1691 Don't allow template-id in using-declaration. 1692 * decl2.c (validate_nonmember_using_decl): Handle template-ids. 1693 (do_class_using_decl): Likewise. 1694 16952001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 1696 1697 * cp/spew.c (read_token): No need to pop buffers. 1698 16992001-08-02 Stan Shebs <shebs@apple.com> 1700 1701 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 1702 (fnaddr_from_vtable_entry): Remove decl. 1703 * method.c (use_thunk): Update comment. 1704 17052001-08-01 Andrew Cagney <ac131313@redhat.com> 1706 1707 * repo.c (get_base_filename): Change return value to const char 1708 pointer. 1709 17102001-08-02 Nathan Sidwell <nathan@codesourcery.com> 1711 1712 Kill -fhonor-std. 1713 * NEWS: Document. 1714 * cp-tree.h (flag_honor_std): Remove. 1715 (CPTI_FAKE_STD): Remove. 1716 (std_node): Remove comment about it being NULL. 1717 (fake_std_node): Remove. 1718 * decl.c (in_fake_std): Remove. 1719 (walk_namespaces_r): Remove fake_std_node check. 1720 (push_namespace): Remove in_fake_std code. 1721 (pop_namespace): Likewise. 1722 (lookup_name_real): Remove fake_std_node check. 1723 (init_decl_processing): Always create std_node. Always add 1724 std:: things there. 1725 (builtin_function): Always put non '_' fns in std. 1726 * decl2.c (flag_honor_std): Remove. 1727 (lang_f_options): Remove honor-std. 1728 (unsupported_options): Add honor-std. 1729 (set_decl_namespace): Remove fake_std_node check. 1730 (validate_nonmember_using_decl): Likewise. 1731 (do_using_directive): Likewise. 1732 (handle_class_head): Likewise. 1733 * dump.c (cp_dump_tree): Likewise. 1734 * except.c (init_exception_processing): Adjust. 1735 * init.c (build_member_call): Remove fake_std_node check. 1736 (build_offset_ref): Likewise. 1737 * lang-options.h: Remove -fhonor-std, -fno-honor-std. 1738 * rtti.c (init_rtti_processing): Adjust. 1739 17402001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 1741 1742 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 1743 operand while calling cp_tree_equal. 1744 17452001-07-31 Nathan Sidwell <nathan@codesourcery.com> 1746 1747 The 3.0 ABI no longer has vbase pointer fields. 1748 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 1749 FORMAT_VBASE_NAME): Remove. 1750 * method.c (do_build_copy_constructor): Adjust. 1751 (do_build_assign_ref): Adjust. 1752 * search.c (lookup_field_r): Adjust. 1753 * typeck.c (build_component_ref): Adjust. 1754 1755 The 3.0 ABI always has a vtable pointer at the start of every 1756 polymorphic class. 1757 * rtti.c (build_headof_sub): Remove. 1758 (build_headof): Adjust. 1759 (get_tinfo_decl_dynamic): No need to check flag_rtti 1760 here. Adjust. 1761 (create_real_tinfo_var): Explain why we need a hidden name. 1762 17632001-07-31 Nathan Sidwell <nathan@codesourcery.com> 1764 1765 PR c++/3631 1766 * class.c (update_vtable_entry_for_fn): The fixed adjustment 1767 of a virtual thunk should be from declaring base. 1768 17692001-07-31 Nathan Sidwell <nathan@codesourcery.com> 1770 1771 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 1772 the shared virtual base, so preserving inheritance graph order. 1773 17742001-07-30 Andreas Jaeger <aj@suse.de> 1775 1776 * decl2.c: Remove unused var global_temp_name_counter. 1777 17782001-07-28 Richard Henderson <rth@redhat.com> 1779 1780 * method.c (pending_inlines): Remove. 1781 17822001-07-27 Nathan Sidwell <nathan@codesourcery.com> 1783 1784 * class.c (mark_primary_virtual_base): Don't adjust base 1785 offsets here. 1786 (dfs_unshared_virtual_bases): Adjust them here. 1787 (mark_primary_bases): Explain why we adjust at the end. 1788 17892001-07-27 Nathan Sidwell <nathan@codesourcery.com> 1790 1791 * class.c (finish_struct_1): When copying the primary base's 1792 VFIELD, make sure we find it is at offset zero. 1793 17942001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1795 1796 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 1797 tsubst_expr for default template arguments. 1798 17992001-07-26 Nathan Sidwell <nathan@codesourcery.com> 1800 1801 PR c++/3621 1802 * spew.c (yylex): Only copy the token's lineno, if it is 1803 non-zero. 1804 18052001-07-26 Nathan Sidwell <nathan@codesourcery.com> 1806 1807 PR c++/3624 1808 * call.c (resolve_args): Simplify, call 1809 convert_from_reference. 1810 (build_new_op): Resolve and convert from reference ARG1 1811 earlier. Adjust ARG2 & ARG3 resolve and conversion. 1812 18132001-07-26 Nathan Sidwell <nathan@codesourcery.com> 1814 1815 * decl.c (last_function_parm_tags): Remove. 1816 (current_function_parm_tags): Remove. 1817 (init_decl_processing): Adjust. 1818 (start_function): Adjust. 1819 (store_parm_decls): Adjust. 1820 1821 PR c++/3152 1822 * decl.c (grokdeclarator): Detect when a function typedef is 1823 declaring a function, and create last_function_parms correctly. 1824 18252001-07-25 Jason Merrill <jason_merrill@redhat.com> 1826 1827 * call.c (joust): Only prefer a non-builtin candidate to a builtin 1828 one if they have the same signature. 1829 1830 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 1831 it rather than toplevel_bindings_p. Give it a mangled name if static. 1832 (convert_to_reference): Adjust. 1833 * decl2.c (get_temp_name): Lose. 1834 * mangle.c (mangle_ref_init_variable): New fn. 1835 (mangle_guard_variable): Strip the ref-init header. 1836 * cp-tree.h: Adjust. 1837 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 1838 initializer. 1839 (grok_reference_init): Always use DECL_INITIAL. 1840 18412001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1842 1843 PR c++/3416 1844 * call.c (build_conditional_expr): Recheck args after 1845 conversions. 1846 * cp-tree.h (build_conditional_expr): Move to correct file. 1847 * typeck.c (decay_conversion): Diagnose any unknown types 1848 reaching here. 1849 (build_binary_op): Don't do initial decay or default 1850 conversions on overloaded functions. 1851 (build_static_cast): Don't do a decay conversion here. 1852 18532001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1854 1855 PR c++/3543 1856 * typeck.c (condition_conversion): Resolve an OFFSET_REF. 1857 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 1858 18592001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1860 1861 * class.c (build_vtbl_or_vbase_field): Remove, move into ... 1862 (create_vtbl_ptr): ... here. 1863 18642001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1865 1866 * class.c (build_vbase_offset_vbtl_entries): Look for 1867 non-primary base of which we are a sub vtable. 1868 18692001-07-24 Phil Edwards <pme@sources.redhat.com> 1870 1871 * semantics.c (finish_this_expr): Remove unused code. 1872 18732001-07-24 Nathan Sidwell <nathan@codesourcery.com> 1874 1875 Simplify rtti, now we've only one ABI. 1876 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 1877 CPTI_TINFO_VAR_ID. 1878 (tinfo_decl_id, tinfo_var_id): Remove. 1879 (get_typeid_1): Remove. 1880 * rtti.c 1881 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 1882 (typeid_ok_p): New function. 1883 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 1884 (get_tinfo_decl): Remove old abi documentation. 1885 (tinfo_from_decl): Remove. 1886 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 1887 (get_typeid_1): Remove. 1888 (get_base_offset): Remove. 1889 (synthesize_tinfo_var): Absorb get_base_offset. 1890 (create_real_tinfo_var): Don't use tinfo_decl_id. 1891 18922001-07-23 Graham Stott <grahams@redhat.com> 1893 1894 * cp/class.c (type_requires_array_cookie): Fix use of uninitialised 1895 variable has_two_argument_delete_p. 1896 18972001-07-21 Nathan Sidwell <nathan@codesourcery.com> 1898 1899 Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 1900 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 1901 (CPTI_INDEX_IDENTIFIER): Remove. 1902 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 1903 (delta2_identifier): Remove. 1904 (index_identifier): Remove. 1905 (pfn_or_delta2_identifier): Remove. 1906 (flag_vtable_thunks): Remove. 1907 (VTABLE_DELTA2_NAME): Remove. 1908 (VTABLE_INDEX_NAME): Remove. 1909 (FNADDR_FROM_VTABLE_ENTRY): Adjust. 1910 (vfunc_ptr_type_node): Adjust. 1911 (VTABLE_NAME_PREFIX): Adjust. 1912 (build_vfn_ref): Lose first parameter. 1913 (fixup_all_virtual_upcast_offsets): Remove. 1914 * decl.c (initialize_predefined_identifiers): Remove 1915 delta2_identifier, index_identifier, pfn_or_delta2_identifier. 1916 (init_decl_processing): Remove no-vtable-thunk code. 1917 * decl2.c (flag_vtable_thunks): Remove. 1918 (mark_vtable_entries): Remove no-vtable-thunk code. 1919 * error.c (dump_decl): Remove no-vtable-thunk code. 1920 (dump_expr): Adjust ptr to member function code. 1921 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 1922 code. 1923 * rtti.c (build_headof): Remove no-vtable-thunk code. 1924 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 1925 * search.c (get_base_distance): Remove expand_upcast_fixups case. 1926 (virtual_context) Remove. 1927 (expand_upcast_fixups): Remove. 1928 (fixup_virtual_upcast_offsets): Remove. 1929 (fixup_all_virtual_upcast_offsets): Remove. 1930 * typeck.c (get_member_function_from_ptrfunc): Remove 1931 no-vtable-thunk code. 1932 * call.c (build_over_call): Adjust call to build_vfn_ref. 1933 * class.c (build_vfn_ref): Lose first parameter. Remove 1934 no-vtable-thunk code. 1935 (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 1936 (build_vtable_entry): Remove no-vtable-thunk code. 1937 19382001-07-20 Nathan Sidwell <nathan@codesourcery.com> 1939 1940 Remove old-abi remnants. Remove comments about old abi 1941 behaviour. Remove references to 'new-abi' in comments. 1942 * cp-tree.h: Adjust comments. 1943 (vbase_offsets_in_vtable_p): Delete. 1944 (vcall_offsets_in_vtable_p): Delete. 1945 (vptrs_present_everywhere_p): Delete. 1946 (all_overridden_vfuns_in_vtables_p): Delete. 1947 (merge_primary_and_secondary_vtables_p): Delete. 1948 (TYPE_CONTAINS_VPTR_P): Adjust. 1949 (VTT_NAME_PREFIX): Remove. 1950 (CTOR_VTBL_NAME_PREFIX): Remove. 1951 (init_vbase_pointers): Remove. 1952 * class.c: Adjust coments. 1953 (build_vbase_pointer_fields): Delete. 1954 (build_vbase_pointer): Remove old-abi code. 1955 (build_secondary_vtable): Likewise. 1956 (modify_all_vtables): Likewise. 1957 (create_vtable_ptr): Likewise. 1958 (layout_class_type): Likewise. 1959 (finish_struct_1): Likewise. 1960 (finish_vtbls): Likewise. 1961 (dfs_finish_vtbls): Delete. 1962 (build_vbase_offset_vtbl_entries): Remove old-abi code. 1963 * cvt.c: Adjust comments. 1964 * decl.c: Adjust comments. 1965 * decl2.c: Adjust comments. 1966 * init.c: Adjust comments. 1967 (construct_virtual_bases): Remove old-abi code. 1968 * lang-specs.h: Remove -fno-new-abi. 1969 * mangle.c: Adjust comments. 1970 * rtti.c: Adjust comments. 1971 (get_base_offset): Remove old-abi-code. 1972 * search.c: Adjust comments. 1973 (dfs_init_vbase_pointers): Remove. 1974 (dfs_vtable_path_unmark): Remove. 1975 (init_vbase_pointers): Remove. 1976 * semantics.c: Adjust comments. 1977 (emit_associated_thunks): Remove old-abi code. 1978 * typeck.c: Adjust comments. 1979 19802001-07-20 Daniel Berlin <dan@cgsoftware.com> 1981 1982 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 1983 params.h. 1984 19852001-07-19 Mark Mitchell <mark@codesourcery.com> 1986 1987 * class.c (finish_struct_anon): Forbid nested classes. 1988 19892001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 1990 1991 * decl2.c: Don't include dwarfout.h and dwarf2out.h. 1992 * optimize.c: Include debug.h. 1993 (maybe_clone_body): Use debug hook. 1994 * semantics.c: Include debug.h. 1995 (expand_body): Use debug hook. 1996 19972001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 1998 1999 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 2000 20012001-07-18 Mark Mitchell <mark@codesourcery.com> 2002 2003 * class.c (type_requires_array_cookie): New function. 2004 (check_methods): Don't try to figure out whether the type needs a 2005 cookie here. 2006 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 2007 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 2008 (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 2009 * pt.c (instantiate_class_template): Don't set 2010 TYPE_VEC_DELETE_TAKES_SIZE. 2011 * NEWS: Document ABI changes from GCC 3.0. 2012 20132001-07-18 Xavier Delacour <xavier@fmaudio.net>, 2014 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 2015 2016 * NEWS (Changes in GCC 3.0): Fix typo. 2017 20182001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 2019 2020 * decl2.c (cplus_decl_attributes): Take a pointer to the node to 2021 which attributes are to be attached, and a flags argument. Update 2022 call to decl_attributes. 2023 (grokfield): Update call to decl_attributes. 2024 * class.c (finish_struct): Update call to cplus_decl_attributes. 2025 * cp-tree.h (cplus_decl_attributes): Update prototype. 2026 * decl.c (start_decl, grokdeclarator, start_function): Update 2027 calls to decl_attributes and cplus_decl_attributes. 2028 * friend.c (do_friend): Update call to cplus_decl_attributes. 2029 * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 2030 20312001-07-12 Mark Mitchell <mark@codesourcery.com> 2032 2033 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 2034 for `register' variables with an asm-specification. 2035 20362001-07-11 Mark Mitchell <mark@codesourcery.com> 2037 2038 * semantics.c (finish_asm_stmt): Mark the output operands 2039 to an asm addressable, if necessary. 2040 20412001-07-11 Ben Elliston <bje@redhat.com> 2042 2043 * Revert this change -- there is a subtle bug. 2044 2045 PR c++/80 2046 * decl.c (finish_enum): New "attributes" argument; pass it to 2047 cplus_decl_attributes. Use a narrower type if the enum is packed. 2048 * cp-tree.h (finish_enum): Adjust prototype. 2049 * parse.y (enum_head): New non-terminal. 2050 (structsp): Use it. Enums now may be preceded or followed by 2051 optional attributes -- pass their chained tree to finish_enum(). 2052 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 2053 20542001-07-10 Mark Mitchell <mark@codesourcery.com> 2055 2056 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 2057 variables. 2058 20592001-07-10 Jason Merrill <jason_merrill@redhat.com> 2060 2061 * semantics.c (cp_expand_stmt): Fix for null 2062 current_function_return_value. 2063 20642001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 2065 2066 * call.c (build_op_delete_call): Initialize fn. 2067 (convert_like_real): Delete conditional. 2068 (joust): Initialize *w and *l. 2069 * class.c: Add prototype for binfo_ctor_vtable. 2070 (get_primary_binfo): Initialize result. 2071 * init.c (build_java_class_ref): Initialize name. 2072 20732001-07-09 Erik Rozendaal <dlr@acm.org> 2074 2075 * typeck.c (unary_complex_lvalue): Do not duplicate the 2076 argument to modify, pre-, or post-increment when used as an 2077 lvalue and when the argument has side-effects. 2078 20792001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 2080 2081 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 2082 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 2083 cplus_decl_attributes even if attrs is NULL. 2084 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 2085 20862001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 2087 2088 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 2089 calls to decl_attributes. 2090 20912001-07-06 Ira Ruben <ira@apple.com> 2092 2093 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 2094 be DECL_TEMPLATE_RESULT. 2095 20962001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2097 2098 * cp-tree.h (copy_template_template_parm): Rename to ... 2099 (bind_template_template_parm): ... here. 2100 * tree.c (copy_template_template_parm): Rename to ... 2101 (bind_template_template_parm): ... here. Remove the case when 2102 NEWARGS is NULL_TREE. 2103 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 2104 BOUND_TEMPLATE_TEMPLATE_PARM. 2105 * pt.c (lookup_template_class): Adjust. 2106 21072001-07-05 Jason Merrill <jason_merrill@redhat.com> 2108 2109 * cvt.c (convert_lvalue): New fn. 2110 * cp-tree.h: Declare it. 2111 * method.c (do_build_assign_ref): Use it. 2112 (do_build_copy_constructor): Convert parm to base types 2113 before calling base constructors. 2114 2115 * typeck.c (check_return_expr): Check DECL_ALIGN instead of 2116 DECL_USER_ALIGN. Check flag_elide_constructors instead of 2117 optimize. 2118 * semantics.c (cp_expand_stmt): Don't destroy the named return value. 2119 21202001-07-02 Nathan Sidwell <nathan@codesourcery.com> 2121 2122 * optimize.c (optimize_inline_calls): New function, broken out 2123 of ... 2124 (optimize_function): ... here. Call it. Don't inline if it is 2125 a thunk. 2126 (dump_function): Print name of dump flag causing this dump. 2127 * semantics.c (expand_body): Move thunk inline check to 2128 optimize_function. 2129 21302001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 2131 2132 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 2133 (comptypes): Use target.comp_type_attributes. 2134 21352001-06-29 Nathan Sidwell <nathan@codesourcery.com> 2136 2137 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 2138 21392001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 2140 2141 * error.c (lang_print_error_function): Add a `diagnostic_context *' 2142 parameter. Tweak. 2143 21442001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2145 2146 * decl2.c (import_export_class): Update. 2147 21482001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 2149 2150 * error.c (init_error): Adjust settings. 2151 21522001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 2153 2154 * error.c (init_error): Adjust settings. 2155 21562001-06-19 Richard Sandiford <rsandifo@redhat.com> 2157 2158 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 2159 return pointers to data members by reference rather than by value. 2160 21612001-06-18 Jason Merrill <jason_merrill@redhat.com> 2162 2163 Implement the Named Return Value optimization. 2164 * cp-tree.h (struct cp_language_function): Add x_return_value. 2165 (current_function_return_value): Now a macro. 2166 * decl.c: Don't define it. 2167 (define_label, finish_case_label): Don't clear it. 2168 (init_decl_processing): Don't register it with GC. 2169 * semantics.c (genrtl_finish_function): Don't check it for 2170 no_return_label. Copy the RTL from the return value to 2171 current_function_return_value and walk, calling... 2172 (nullify_returns_r): ...this new fn. 2173 * typeck.c (check_return_expr): Set current_function_return_value. 2174 21752001-06-15 Jason Merrill <jason_merrill@redhat.com> 2176 2177 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 2178 sharing a ctor vtable with. Merge code for cases 1 and 2. 2179 (binfo_ctor_vtable): New fn. 2180 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 2181 21822001-06-14 Jason Merrill <jason_merrill@redhat.com> 2183 2184 * class.c (dfs_find_final_overrider): Fix logic. 2185 2186 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 2187 virtual thunk instead of non-virtual. 2188 (get_matching_virtual): Uncomment. 2189 2190 * pt.c (unify): Don't recurse between the POINTER_TYPE and the 2191 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 2192 PARM, not ARG. 2193 21942001-06-14 Nathan Sidwell <nathan@codesourcery.com> 2195 2196 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 2197 we've not emerged from the hierarchy of RTTI_BINFO on reaching 2198 a non-virtual base. 2199 22002001-06-13 Mark Mitchell <mark@codesourcery.com> 2201 2202 * NEWS: Update release number. 2203 22042001-06-12 Nathan Sidwell <nathan@codesourcery.com> 2205 2206 PR c++/3130, c++/3131, c++/3132 2207 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 2208 * class.c (force_canonical_binfo_r): Move 2209 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 2210 virtual bases unless they're primary and what they're primary 2211 too has been moved. 2212 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 2213 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 2214 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 2215 derived binfo. 2216 (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 2217 (layout_nonempty_base_or_field): Add most derived type 2218 parameter. Adjust. 2219 (layout_empty_base): Likewise. 2220 (build_base_field): Likewise. 2221 (build_base_fields): Likewise. 2222 (propagate_binfo_offsets): Add most derived type 2223 parameter. Skip non canonical virtual bases too. 2224 (dfs_set_offset_for_unshared_vbases): Don't skip primary 2225 bases. Do skip canonical bases. 2226 (layout_virtual_bases): Adjust. 2227 (layout_class_type): Adjust. 2228 (dfs_get_primary_binfo): Build list of virtual primary base 2229 candidates. 2230 (get_primary_binfo): Check that the shared virtual primary 2231 base candidate was found first. 2232 (accumulate_vtbl_inits): Don't do anything for non-vptr 2233 containing binfos. For case 1 primary virtual bases, keep 2234 checking that we've not emerged from the hierarchy of RTTI_BINFO. 2235 22362001-06-12 Nathan Sidwell <nathan@codesourcery.com> 2237 2238 PR c++/3089 2239 * class.c (dfs_accumulate_vtbl_inits): Always walk down the 2240 hierarchy looking for primary bases for a ctor 2241 vtable. Recursively call oneself, if we meet our primary via 2242 this route and haven't met it yet via inheritance graph order. 2243 22442001-06-11 Mark Mitchell <mark@codesourcery.com> 2245 2246 * lang-options.h: Emit documentation for -fno-honor-std, not 2247 -fhonor-std. 2248 22492001-06-10 Alexandre Oliva <aoliva@redhat.com> 2250 2251 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 2252 Don't clobber delta. 2253 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 2254 22552001-06-10 Mark Mitchell <mark@codesourcery.com> 2256 Gabriel Dos Reis <gdr@codesourcery.com> 2257 2258 * Make-lang.in (cp/call.o): Depend on diagnostic.h 2259 (cp/typeck.o): Depend on diagnostic.h 2260 (cp/typeck2.o): Depend on diagnostic.h 2261 (cp/repo.o): Depend on dignostic.h 2262 * typeck.c: #include diagnostic.h 2263 (convert_for_initialization): Remove extern declaration for 2264 warningcount and errorcount. 2265 2266 * call.c: #include diagnostic.h 2267 (convert_like_real): Remove extern declaration for warnincount and 2268 errorcount. 2269 2270 * repo.c: #include diagnostic.h 2271 * typeck2.c: #include diagnostic.h 2272 22732001-06-08 Nathan Sidwell <nathan@codesourcery.com> 2274 2275 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 2276 in previous change. 2277 22782001-06-08 Nathan Sidwell <nathan@codesourcery.com> 2279 2280 PR c++/2929 2281 * friend.c (do_friend): Use push_decl_namespace for classes at 2282 namespace scope. 2283 22842001-06-08 Nathan Sidwell <nathan@codesourcery.com> 2285 Jason Merrill <jason_merrill@redhat.com> 2286 2287 PR c++/3061 2288 * class.c (build_secondary_vtable): Use assert, rather than an error 2289 message. 2290 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 2291 (dfs_accumulate_vtbl_inits): A lost primary virtual base may 2292 be between ORIG_BINFO and RTTI_BINFO, but neither of them. 2293 Don't set BINFO_VTABLE for a primary virtual base. 2294 22952001-06-07 Mark Mitchell <mark@codesourcery.com> 2296 2297 * decl.c (duplicate_decls): Update source position information 2298 when a template function is defined. 2299 23002001-06-07 Phil Edwards <pme@sources.redhat.com> 2301 2302 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 2303 23042001-06-07 Nathan Sidwell <nathan@codesourcery.com> 2305 2306 PR c++/2914 2307 * decl.c (pushtag): Don't push into a complete type's scope. 2308 23092001-06-06 Jason Merrill <jason_merrill@redhat.com> 2310 2311 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 2312 (struct lang_decl_flags): Lose generate_with_vtable_p. 2313 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 2314 * class.c (copy_virtuals): Adjust. 2315 * decl2.c (mark_vtable_entries): Adjust. 2316 * method.c (make_thunk, build_vtable_entry): Adjust. 2317 * class.c (update_vtable_entry_for_fn): Only look as far as the 2318 first defining class. 2319 (build_vtbl_initializer): Put nothing in the slot for a function only 2320 defined in a lost primary virtual base. 2321 (add_vcall_offset_vtbl_entries_1): Use the same code for 2322 the lost primary case and the normal case. 2323 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 2324 (get_vfield_offset, get_derived_offset): Lose. 2325 (dfs_find_final_overrider): Use look_for_overrides_here. 2326 (get_matching_virtual): New fn. 2327 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 2328 not BV_VCALL_INDEX. 2329 * search.c (look_for_overrides_here): Split out from... 2330 (look_for_overrides_r): Here. 2331 2332 * class.c (find_final_overrider): Return error_mark_node on error. 2333 2334 * decl2.c (key_method): #if 0 accidental change. 2335 23362001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 2337 2338 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 2339 (build_over_call): Likewise. 2340 * decl.c (grokparms): Likewise. 2341 * pt.c (tsubst_decl): Likewise. 2342 * typeck.c (convert_arguments): Likewise. 2343 23442001-06-05 Mark Mitchell <mark@codesourcery.com> 2345 2346 * semantics.c (begin_class_definition): Robustify. 2347 2348 * pt.c (instantiate_decl): Tell the repository code about the 2349 clones, not the cloned functions. 2350 * repo.c (repo_template_used): Explicitly instantiate the cloned 2351 function, not the clones. 2352 23532001-06-05 Nathan Sidwell <nathan@codesourcery.com> 2354 2355 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 2356 ICS_BAD_FLAG on created conversion. 2357 (compare_ics): Break out rank. 2358 23592001-06-05 Nathan Sidwell <nathan@codesourcery.com> 2360 2361 * decl.c (xref_tag): Remove extraneous %s on dependent name 2362 lookup warning. 2363 23642001-06-05 Nathan Sidwell <nathan@codesourcery.com> 2365 2366 * class.c (layout_vtable_decl): Fix off by one error on 2367 build_index_type. 2368 (build_vtt): Likewise. 2369 (build_ctor_vtbl_group): Likewise. 2370 23712001-06-05 Nathan Sidwell <nathan@codesourcery.com> 2372 2373 * class.c (maybe_indent_hierarchy): New function. 2374 (dump_class_hierarchy_r): Add flags. Dump extra binfo 2375 information, if enabled. Use maybe_indent_hierarchy. Adjust 2376 output format. 2377 (dump_class_hierarchy): Adjust prototype. Adjust output format. 2378 (dump_array, dump_vtable, dump_vtt): New functions. 2379 (finish_struct_1): Adjust hierarchy dumping. 2380 (initialize_vtable): Call dump_vtable. 2381 (build_vtt): Call dump_vtt. 2382 (build_ctor_vtbl_group): Call dump_vtable. 2383 * decl2.c (flag_dump_class_layout): Remove. 2384 (cxx_decode_option): Remove dump translation unit 2385 and dump class hierarchy check. Call dump_switch_p. 2386 (finish_file): Adjust dumping. 2387 (dump.c): Only dump base classes if not TDF_SLIM. 2388 Only dump namespace members if not TDF_SLIM. 2389 * optimize.c (dump_function): New function. 2390 (optimize_function): Call dump_function. 2391 * semantics.c (expand_body): Use dump_enabled_p. 2392 23932001-06-01 Nathan Sidwell <nathan@codesourcery.com> 2394 2395 PR g++/2936 2396 Part missed from first commit 2397 * decl2.c (finish_anon_union): Copy context. 2398 23992001-05-30 Nathan Sidwell <nathan@codesourcery.com> 2400 2401 PR g++/2936 2402 * optimize.c (remap_decl): Remap anonymous aggregate members too. 2403 24042001-05-26 Nathan Sidwell <nathan@codesourcery.com> 2405 2406 PR g++/2823 2407 * semantics.c (expand_body): Don't optimize thunks. 2408 24092001-05-25 Sam TH <sam@uchicago.edu> 2410 2411 * cp-tree.h lex.h: Fix header include guards. 2412 24132001-05-25 Mark Mitchell <mark@codesourcery.com> 2414 2415 * decl.c (init_decl_processing): Tweak. 2416 24172001-05-24 Mark Mitchell <mark@codesourcery.com> 2418 2419 * decl.c (duplicate_decls): Tidy. 2420 (init_decl_processing): Always set flag_no_builtin. 2421 24222001-05-24 Nathan Sidwell <nathan@codesourcery.com> 2423 2424 PR c++/2184 2425 * decl2.c (do_local_using_decl): Push the decls, even in a 2426 template. 2427 24282001-05-22 Mark Mitchell <mark@codesourcery.com> 2429 2430 * optimize.c (initialize_inlined_parameters): Don't set 2431 TREE_READONLY for a VAR_DECL taking the place of an inlined 2432 PARM_DECL. 2433 24342001-05-22 Jason Merrill <jason_merrill@redhat.com> 2435 2436 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 2437 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 2438 attribute. 2439 24402001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 2441 2442 * parse.y: Refer to compound literals as such, not as 2443 constructor-expressions. 2444 24452001-05-21 Mark Mitchell <mark@codesourcery.com> 2446 2447 * call.c (build_op_delete_call): Ignore exception-specifications 2448 when looking for matching delete operators. 2449 * init.c (build_new_1): Compute whether or not the allocation 2450 function used is a placement allocation function or not, and 2451 communicate this information to build_op_delete_call. 2452 24532001-05-21 Jason Merrill <jason_merrill@redhat.com> 2454 2455 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 2456 (build_vtbl_ref): Adjust. 2457 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 2458 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 2459 Re-add vtable-gc. 2460 (unsupported_options): Correspondingly. 2461 2462 * decl2.c (maybe_make_one_only): Check flag_weak, not 2463 supports_one_only(). 2464 2465 * cp-tree.def (START_CATCH_STMT): Lose. 2466 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 2467 * tree.c (cp_statement_code_p): Don't case it. 2468 * semantics.c (cp_expand_stmt): Likewise. 2469 * cp-tree.h (START_CATCH_TYPE): Lose. 2470 (HANDLER_TYPE): New. 2471 * except.c (expand_start_catch_block): Don't start any blocks. 2472 Return the type. 2473 (expand_end_catch_block): Don't end any blocks. 2474 * parse.y (handler): Don't pass anything from finish_handler_parms 2475 to finish_handler. 2476 * pt.c (tsubst_expr): Likewise. 2477 * semantics.c (begin_handler): Call note_level_for_catch here. 2478 (finish_handler_parms): Don't return anything. 2479 (genrtl_catch_block, begin_catch_block): Lose. 2480 (genrtl_handler): Call expand_start_catch here. 2481 24822001-05-18 Jason Merrill <jason_merrill@redhat.com> 2483 2484 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 2485 (get_vtable_decl, build_vtt): Not here. 2486 24872001-05-20 Nathan Sidwell <nathan@codesourcery.com> 2488 2489 PR c++/2781 2490 * optimize.c (update_cloned_parm): Copy addressability and other 2491 flags. 2492 24932001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2494 2495 * pt.c (determine_specialization): Ignore artificial functions. 2496 24972001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 2498 2499 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 2500 (C_RID_CODE): Remove. 2501 * lex.c (cxx_init_options): Call set_identifier_size. Update. 2502 (init_parse): Don't do it here. 2503 25042001-05-18 Diego Novillo <dnovillo@redhat.com> 2505 2506 * decl2.c (finish_objects): Use the original SYMBOL_REF from the 2507 function declaration to avoid stripping the symbol's attributes. 2508 25092001-05-18 Nathan Sidwell <nathan@codesourcery.com> 2510 2511 * decl.c (pushdecl): Adjust error string. 2512 (xref_tag): Adjust friend class injection warning. Remove the 2513 inherited name from the class shadowed scope. 2514 25152001-05-17 Mark Mitchell <mark@codesourcery.com> 2516 2517 * except.c (cp_protect_cleanup_actions): New function. 2518 (init_exception_processing): Don't set protect_cleanup_actions 2519 here. Do set lang_protect_cleanup_actions. 2520 25212001-05-16 Nathan Sidwell <nathan@codesourcery.com> 2522 2523 * spew.c (read_token): Call yyerror on all unexpected tokens. 2524 25252001-05-16 Nathan Sidwell <nathan@codesourcery.com> 2526 2527 * init.c (member_init_ok_or_else): Take a tree rather than 2528 string for name. 2529 (expand_member_init): Adjust. 2530 25312001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 2532 2533 * decl.c (duplicate_decls): Suppress warning about duplicate 2534 decls if the first decl is a friend. 2535 25362001-05-12 Zack Weinberg <zackw@stanford.edu> 2537 2538 * except.c (choose_personality_routine): Export. Add 2539 explanatory comment. Take an enum languages, not a boolean. 2540 (initialize_handler_parm): Adjust to match. 2541 * cp-tree.h: Prototype choose_personality_routine. 2542 * lex.c (handle_pragma_java_exceptions): New function. 2543 (init_cp_pragma): Register #pragma GCC java_exceptions. 2544 25452001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2546 2547 * method.c (build_mangled_C99_name): Remove unused prototype. 2548 25492001-05-12 Alexandre Oliva <aoliva@redhat.com> 2550 2551 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 2552 * typeck.c (get_member_function_from_ptrfunc, 2553 build_ptrmemfunc, expand_ptrmemfunc_cst): Take 2554 TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 2555 2556 Reverted Geoff Keating's 2001-05-03's patch. 2557 25582001-05-11 Ira Ruben <ira@apple.com> 2559 2560 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 2561 25622001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 2563 2564 * cp-tree.h (finish_label_expr, lookup_label): Delete. 2565 * parse.y: Update for '&&'; don't issue warning here. 2566 * semantics.c (finish_label_expr): Delete. 2567 25682001-05-07 Mark Mitchell <mark@codesourcery.com> 2569 2570 * splay-tree.h (splay_tree_max): New function. 2571 (splay_tree_min): Likewise. 2572 25732001-05-03 Geoffrey Keating <geoffk@redhat.com> 2574 2575 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 2576 (pfn_vflag_identifier): Define. 2577 Update comment about layout of pointer functions. 2578 (build_ptrmemfunc1): Update prototype. 2579 (expand_ptrmemfunc_cst): Update prototype. 2580 * decl.c (initialize_predefined_identifiers): Initialize 2581 pfn_vflag_identifier. 2582 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 2583 an extra field to the type. 2584 * expr.c (cplus_expand_constant): Pass 'flag' between 2585 expand_ptrmemfunc_cst and build_ptrmemfunc1. 2586 * typeck.c (get_member_function_from_ptrfunc): When 2587 FUNCTION_BOUNDARY < 16, look at additional field to determine 2588 if a pointer-to-member is a real pointer or a vtable offset. 2589 (build_ptrmemfunc1): Add new parameter to contain extra field. 2590 (build_ptrmemfunc): Pass the extra field around. 2591 (expand_ptrmemfunc_cst): Add new parameter to return extra field. 2592 (pfn_from_ptrmemfunc): Ignore the extra field. 2593 25942001-05-03 Mark Mitchell <mark@codesourcery.com> 2595 2596 * cp-tree.h (flag_inline_trees): Update documentation. 2597 * decl.c (init_decl_processing): Adjust handling of 2598 flag_inline_functions and flag_inline_trees to support -O3. 2599 (grokfndecl): Set DECL_INLINE on all functions if that's what 2600 the user requested. 2601 (save_function_data): Clear DECL_INLINE in 2602 current_function_cannot_inline is non-NULL. 2603 * decl2.c (flag_inline_trees): Update documentation. 2604 26052001-05-03 Nathan Sidwell <nathan@codesourcery.com> 2606 2607 * dump.c (cp_dump_tree, USING_STMT case): New case. 2608 * tree.c (cp_statement_code_p): Add USING_STMT. 2609 * decl2.c (do_using_directive): Add the using directive statement. 2610 2611 * tree.c (walk_tree): Reformat an if block. 2612 26132001-05-02 Mark Mitchell <mark@codesourcery.com> 2614 2615 * decl.c (compute_array_index_type): Don't try to do anything with 2616 the indices when processing a template. 2617 26182001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2619 2620 * call.c: NULL_PTR -> NULL. 2621 * class.c: Likewise. 2622 * cvt.c: Likewise. 2623 * decl.c: Likewise. 2624 * decl2.c: Likewise. 2625 * except.c: Likewise. 2626 * init.c: Likewise. 2627 * rtti.c: Likewise. 2628 * search.c: Likewise. 2629 * tree.c: Likewise. 2630 * typeck.c: Likewise. 2631 * typeck2.c: Likewise. 2632 26332001-05-02 Mark Mitchell <mark@codesourcery.com> 2634 2635 * decl2.c (do_using_directive): Revert previous patch. 2636 26372001-05-01 Nathan Sidwell <nathan@codesourcery.com> 2638 2639 * cp-tree.def (USING_STMT): New statement node. 2640 * cp-tree.h (USING_STMT_NAMESPACE): New macro. 2641 * decl2.c (do_using_directive): Add USING_STMT to statement 2642 tree. Don't emit errors when processing template decl. 2643 * pt.c (tsubst_expr, USING_STMT case): New case. 2644 * semantics.c (cp_expand_stmt, USING_STMT case): New case. 2645 26462001-05-01 Nathan Sidwell <nathan@codesourcery.com> 2647 2648 * call.c (build_new_op): Convert args from reference here. 2649 (build_conditional_expr): Don't convert here. 2650 26512001-05-01 Nathan Sidwell <nathan@codesourcery.com> 2652 2653 * spew.c (last_token_id): New static variable. 2654 (read_token): Set it here. 2655 (yyerror): Use it here. 2656 26572001-04-30 Richard Henderson <rth@redhat.com> 2658 2659 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 2660 * decl.c: Likewise. 2661 26622001-04-30 Mark Mitchell <mark@codesourcery.com> 2663 2664 * gxxint.texi: Remove. 2665 * Make-lang.in: Remove all traces of gxxint.texi. 2666 2667Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com> 2668 2669 * decl2.c (start_static_initialization_or_destruction): Correct 2670 logic to handle the -fno-use-cxa-atexit case. 2671 26722001-04-30 Mark Mitchell <mark@codesourcery.com> 2673 2674 * optimize.c (update_cloned_parm): New function. 2675 (maybe_clone_body): Use it. Update the `this' parameter too. 2676 26772001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 2678 2679 * decl2.c (unsupported_options): Add new-abi. 2680 * lang-options.h: Remove no longer supported options. 2681 26822001-04-27 Nathan Sidwell <nathan@codesourcery.com> 2683 2684 * except.c (can_convert_eh): Don't check template parms, 2685 typename types etc. 2686 26872001-04-27 Nathan Sidwell <nathan@codesourcery.com> 2688 2689 * optimize.c (maybe_clone_body): Copy parameter names and locations. 2690 26912001-04-27 Nathan Sidwell <nathan@codesourcery.com> 2692 2693 * cp-tree.h (adjust_clone_args): Prototype new function. 2694 * class.c (adjust_clone_args): New function. 2695 * decl.c (start_function): Call it for in charge ctors. 2696 26972001-04-26 Mark Mitchell <mark@codesourcery.com> 2698 2699 * method.c (use_thunk): Make sure that thunks really are emitted 2700 when requested. 2701 27022001-04-26 Nathan Sidwell <nathan@codesourcery.com> 2703 2704 * mangle.c (write_chars): New macro. 2705 (hwint_to_ascii): New function 2706 (write_number): Use it. 2707 (write_integer_cst): Deal with really big numbers. 2708 27092001-04-25 Mark Mitchell <mark@codesourcery.com> 2710 2711 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 2712 the clone. 2713 27142001-04-25 Nathan Sidwell <nathan@codesourcery.com> 2715 2716 * decl.c (grokdeclarator): Set context of namespace scope 2717 TYPE_DECLS. 2718 27192001-04-24 Zack Weinberg <zackw@stanford.edu> 2720 2721 * cp/optimize.c: Include hashtab.h. 2722 (struct inline_data): Add tree_pruner. 2723 (expand_call_inline, expand_calls_inline): Use it when calling 2724 walk_tree. 2725 (optimize_function): Initialize and free tree_pruner. 2726 27272001-04-24 Nathan Sidwell <nathan@codesourcery.com> 2728 2729 Lazy __FUNCTION__ generation. 2730 * cp-tree.def (FUNCTION_NAME): Remove. 2731 * cp-tree.h (function_name_declared_p): Remove. 2732 (cp_fname_init): Prototype. 2733 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 2734 don't call declare_function_name. Call start_fname_decls. 2735 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 2736 clobber the line number. 2737 (cp_fname_init): New function. 2738 (start_function): Call start_fname_decls. 2739 (finish_function): Call finish_fname_decls. 2740 * lex.c (reswords): Add slots for __FUNCTION__ et al. 2741 (rid_to_yy): Add mappings for __FUNCTION__ et al. 2742 * optimize.c (maybe_clone_body): Remove function_name_declared_p. 2743 * parse.y (VAR_FUNC_NAME): New token. 2744 (primary): Add VAR_FUNC_NAME. 2745 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 2746 generation. 2747 (tsubst, FUNCTION_NAME case): Remove. 2748 (tsubst_copy, FUNCTION_NAME case): Remove. 2749 (tsubst_expr, DECL_STMT case): Be careful with a 2750 DECL_PRETTY_FUNCTION_P. 2751 (instantiate_decl): Remove function_name_declared_p. 2752 * semantics.c (begin_compound_statement): Don't call 2753 declare_function_name here. 2754 (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 2755 (finish_translation_unit): Call finish_fname_decls. 2756 (expand_body): Remove function_name_declared_p. 2757 * typeck2.c (digest_init): Allow any ERROR_MARK. 2758 27592001-04-24 Nathan Sidwell <nathan@codesourcery.com> 2760 2761 * pt.c (tsubst_decl): Use VOID_TYPE_P. 2762 * semantics.c: Fix some typos. 2763 27642001-04-23 Phil Edwards <pme@sources.redhat.com> 2765 2766 * cp/decl2.c (flag_honor_std): Always initialize to 1. 2767 27682001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2769 2770 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 2771 27722001-04-23 Jason Merrill <jason_merrill@redhat.com> 2773 2774 * except.c (build_throw): Wrap the initialization of the exception 2775 object in a MUST_NOT_THROW_EXPR. 2776 (do_free_exception): #if 0. 2777 27782001-04-20 Mark Mitchell <mark@codesourcery.com> 2779 2780 * cp-tree.h (finish_enum): Change prototype. 2781 * decl.c (finish_enum): Reorganize. 2782 * parse.y (structsp): Adjust calls to finish_enum. 2783 27842001-04-20 Nathan Sidwell <nathan@codesourcery.com> 2785 2786 * tree.c (cp_tree_equal): Adjust final switch formatting. Add 2787 't' case. 2788 27892001-04-20 Nathan Sidwell <nathan@codesourcery.com> 2790 2791 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 2792 (layout_empty_base): Return at end flag. 2793 (build_base_field): Likewise. 2794 (build_base_fields): Likewise. 2795 (layout_virtual_bases): Don't add 1 to eoc value. 2796 (end_of_class): Use full size for empty bases. 2797 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 2798 empty bases. Don't add 1 to eoc value. Only add trailing padding 2799 if we're an empty class with no empty bases. 2800 (dump_class_hierarchy): Dump size and alignment. 2801 28022001-04-20 Jakub Jelinek <jakub@redhat.com> 2803 2804 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 2805 ICS_BAD_FLAG. 2806 28072001-04-20 Jakub Jelinek <jakub@redhat.com> 2808 2809 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 2810 is found, look first if name does not match the structure name. 2811 28122001-04-19 Mark Mitchell <mark@codesourcery.com> 2813 2814 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 2815 set. 2816 (SET_DECL_LANGUAGE): New macro. 2817 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 2818 (pushdecl): Likewise. 2819 (build_library_fn_1): Likewise. 2820 (build_cp_library_fn): Likewise. 2821 (grokfndecl): Likewise. 2822 (grokvardecl): Mark `extern "C"' variables as having C linkage. 2823 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 2824 * lex.c (retrofit_lang_decl): Likewise. 2825 * mangle.c (mangle_decl_string): Don't mangle the names of 2826 variables declared with C language linkage. 2827 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 2828 28292001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 2830 2831 * semantics.c (simplify_aggr_init_exprs_r): Don't restore 2832 flag_access_control from uninitialized storage. 2833 28342001-04-15 Mark Mitchell <mark@codesourcery.com> 2835 2836 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 2837 * mangle.c (write_pointer_to_member_type): Fix mangling of 2838 pointers to cv-qualified member function types. 2839 2840 * init.c (build_delete): Create a SAVE_EXPR for the address if 2841 we're going to use it more than once. 2842 28432001-04-13 Mark Mitchell <mark@codesourcery.com> 2844 2845 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 2846 (expand_ptremfunc_cst): Change prototype. 2847 (delta2_from_ptrmemfunc): Remove. 2848 * expr.c (cplus_expand_constant): Adjust call to 2849 expand_ptrmemfunc_cst. 2850 * typeck.c (build_ptrmemfunc1): Simplify. 2851 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 2852 results in a constant. 2853 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 2854 (delta2_from_ptrmemfunc): Remove. 2855 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 2856 28572001-04-12 Jason Merrill <jason_merrill@redhat.com> 2858 2859 * cp-tree.h (decl_namespace_list): New macro. 2860 (struct saved_scope): Add decl_ns_list. 2861 * decl.c (mark_saved_scope): Mark it. 2862 * decl2.c: Lose static decl_namespace_list. 2863 (init_decl2): Don't save it. 2864 28652001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2866 2867 * cp-tree.h (warn_return_type, yylex): Delete redundant 2868 declarations. 2869 2870 * decl.c (current_class_depth, global_namespace): Likewise. 2871 2872 * decl2.c (current_class_depth, flag_gnu_xref): Likewise 2873 2874 * repo.c (flag_use_repository): Likewise. 2875 28762001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2877 2878 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 2879 set_block, pushdecl, getdecls, gettags, init_decl_processing, 2880 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 2881 lvalue_or_else, print_lang_statistics, comp_target_types, 2882 unsigned_type, signed_type, signed_or_unsigned_type, 2883 build_function_call, mark_addressable, incomplete_type_error): 2884 Delete redundant declarations. 2885 28862001-04-11 Jason Merrill <jason_merrill@redhat.com> 2887 2888 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 2889 (TYPE_ANONYMOUS_P): New macro. 2890 (TAGGED_TYPE_P): New macro. 2891 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 2892 (grokfndecl, grokvardecl, grokdeclarator): Likewise. 2893 * tree.c (no_linkage_helper): Likewise. 2894 * semantics.c (begin_class_definition): Likewise. 2895 * pt.c (convert_template_argument): Likewise. 2896 * lex.c (check_for_missing_semicolon): Likewise. 2897 28982001-04-12 Nathan Sidwell <nathan@codesourcery.com> 2899 2900 * class.c (dfs_unshared_virtual_bases): New function. 2901 (mark_primary_bases): Call it. 2902 (check_bases): Ignore virtual bases when determining 2903 nearly-emptiness. 2904 29052001-04-12 Nathan Sidwell <nathan@codesourcery.com> 2906 2907 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 2908 29092001-04-11 Mark Mitchell <mark@codesourcery.com> 2910 2911 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 2912 cloned function to the clone. 2913 29142001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2915 2916 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 2917 2918 * semantics.c: Include expr.h. 2919 29202001-04-11 Nathan Sidwell <nathan@codesourcery.com> 2921 2922 * method.c (implicitly_declare_fn): Commonize code for copy ctor 2923 and assignment op. Set TREE_USED for parameter. 2924 29252001-04-10 Mark Mitchell <mark@codesourcery.com> 2926 2927 * class.c (find_final_overrider_data): Add `candidates'. 2928 (dfs_find_final_overrider): Don't issue error messages 2929 prematurely. 2930 (find_final_overrider): Issue error messages here. 2931 (build_base_field): Don't warn about amgibuous direct bases here. 2932 (warn_about_ambiguous_direct_bases): New function. 2933 (layout_class_type): Use it. 2934 29352001-04-10 Richard Henderson <rth@redhat.com> 2936 2937 * typeck.c (build_array_ref): Push the array reference inside 2938 COMPOUND_EXPR and COND_EXPR. 2939 29402001-04-05 Mark Mitchell <mark@codesourcery.com> 2941 2942 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 2943 * decl.c (duplicate_decls): Adjust accordingly. 2944 (maybe_commonize_var): Likewise. 2945 (grokfndecl): Likewise. 2946 (start_function): Likewise. 2947 (start_method): Likewise. 2948 * decl2.c (key_method): Likewise. 2949 (import_export_decl): Likewise. 2950 * method.c (implicitly_declare_fn): Likewise. 2951 * optimize.c (maybe_clone_body): Likewise. 2952 29532001-04-05 Benjamin Kosnik <bkoz@redhat.com> 2954 2955 * lang-specs.h: Add __DEPRECATED. 2956 2957Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com> 2958 2959 * search.c (get_dynamic_cast_base_type): When building a new 2960 constant, set its type to ssizetype. 2961 29622001-04-04 Jakub Jelinek <jakub@redhat.com> 2963 2964 * optimize.c (expand_call_inline): Only add newly inlined statements 2965 into inlined_stmts. 2966 29672001-04-03 Mark Mitchell <mark@codesourcery.com> 2968 2969 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 2970 (OPERATOR_FORMAT): Likewise. 2971 (OPERATOR_TYPENAME_FORMAT): Likewise. 2972 * operators.def: Remove old name-mangling information. 2973 * decl.c (grok_op_properties): Adjust accordingly. 2974 * lex.c (init_operators): Likewise. 2975 * rtti.c (get_tinfo_decl): Issue error messages about types that 2976 have variable size. 2977 29782001-04-03 Mark Mitchell <mark@codesourcery.com> 2979 2980 * decl2.c (import_export_decl): Don't call import_export_class 2981 when processing an inline member function. 2982 * semantics.c (expand_body): Call import_export_decl before 2983 emitting inline functions. 2984 29852001-03-28 Richard Henderson <rth@redhat.com> 2986 2987 IA-64 ABI Exception Handling: 2988 * cp-tree.def (EH_SPEC_BLOCK): New. 2989 (MUST_NOT_THROW_EXPR): New. 2990 * cp-tree.h: Update changed function declarations. 2991 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 2992 (CPTI_CALL_UNEXPECTED): New. 2993 (struct cp_language_function): Rename x_eh_spec_try_block 2994 to x_eh_spec_block. 2995 (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 2996 * decl.c (current_binding_level): If no current function 2997 bindings, revert to scope_chain. 2998 (initialize_predefined_identifiers): Remove __cp_push_exception. 2999 (store_parm_decls): Use begin_eh_spec_block. 3000 (finish_function): Use finish_eh_spec_block. 3001 (mark_lang_function): Update for name changes. 3002 * decl2.c (finish_file): No mark_all_runtime_matches. 3003 * dump.c (cp_dump_tree): Handle new tree codes. 3004 * error.c (dump_expr) [BIND_EXPR]: Fix typo. 3005 * except.c (catch_language_init, catch_language): Remove. 3006 (init_exception_processing): Don't set language code. 3007 Initialize call_unexpected_node, protect_cleanup_actions, 3008 eh_personality_libfunc, lang_eh_runtime_type. 3009 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 3010 (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 3011 (prepare_eh_type): Split out type canonicalizations ... 3012 (build_eh_type_type): ... from here. 3013 (build_eh_type_type_ref): Remove. 3014 (mark_all_runtime_matches): Remove. 3015 (build_exc_ptr): New. 3016 (do_begin_catch, do_end_catch): New. 3017 (do_pop_exception): Remove. 3018 (build_terminate_handler): Remove. 3019 (choose_personality_routine): Split out language choice from ... 3020 (initialize_handler_parm): ... here. 3021 Use MUST_NOT_THROW_EXPR. 3022 (expand_start_catch_block): Use do_begin_catch. Simplify Java 3023 exception object handling. 3024 (expand_start_eh_spec, expand_end_eh_spec): Remove. 3025 (expand_exception_blocks, alloc_eh_object): Remove. 3026 (begin_eh_spec_block, finish_eh_spec_block): New. 3027 (do_allocate_exception, do_free_exception): New. 3028 (expand_throw): Merge into ... 3029 (build_throw): ... here. Update for abi. 3030 * expr.c (cplus_expand_expr): No expand_internal_throw. 3031 Handle MUST_NOT_THROW_EXPR. 3032 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 3033 * semantics.c (*) Update for except.h name changes. 3034 (genrtl_try_block): No protect_with_terminate. 3035 (genrtl_eh_spec_block): New. 3036 (genrtl_handler): Don't emit the goto here. 3037 (cp_expand_stmt): Handle EH_SPEC_BLOCK. 3038 (genrtl_finish_function): Don't expand_exception_blocks. 3039 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 3040 30412001-03-28 Richard Henderson <rth@redhat.com> 3042 3043 * decl.c (struct named_label_list): Rename eh_region to 3044 in_try_scope, add in_catch_scope. 3045 (struct binding_level): Rename eh_region to is_try_scope, 3046 add is_catch_scope. 3047 (note_level_for_try): Rename from note_level_for_eh. 3048 (note_level_for_catch): New. 3049 (poplevel): Copy both is_try_scope and is_catch_scope to 3050 the named_label_list struct. 3051 (check_previous_goto_1): Don't check for catch block via 3052 DECL_ARTIFICIAL; use in_try_scope instead. 3053 (check_goto): Likewise. 3054 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 3055 * except.c (expand_start_catch_block): Call note_level_for_catch. 3056 * semantics.c (begin_compound_stmt): Update for note_level_for_try. 3057 30582001-03-27 Richard Henderson <rth@redhat.com> 3059 3060 * except.c: Use USING_SJLJ_EXCEPTIONS instead of 3061 exceptions_via_longjmp. 3062 30632001-03-27 Phil Edwards <pme@sources.redhat.com> 3064 3065 * pt.c (check_default_tmpl_args): Make error messages clearer. 3066 30672001-03-26 Phil Edwards <pme@sources.redhat.com> 3068 3069 * error.c: Also undefine 'A' macro used for cp_printers definition. 3070 30712001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3072 3073 * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 3074 30752001-03-26 Mike Yang <yang@research.att.com> 3076 Mark Mitchell <mark@codesourcery.com> 3077 3078 * dump.c (dump_access): New function. 3079 (cp_dump_tree): Use it. Dump basetype information for class 3080 types. 3081 30822001-03-26 Mark Mitchell <mark@codesourcery.com> 3083 3084 * Makefile.in (optimize.o): Depend on params.h. 3085 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 3086 (init_decl_processing): Set flag_no_inline when doing 3087 inlining-on-trees. 3088 * optimize.c: Include params.h. 3089 (struct inline_data): Improve documentation of FNS. Add 3090 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 3091 (INSNS_PER_STMT): New macro. 3092 (remap_block): Use CLONING_P. 3093 (inlinable_function_p): Don't inline big functions. 3094 (expand_call_inline): Keep track of how much inlining we've done. 3095 (optimize_function): Set FIRST_INLINED_FN. 3096 (maybe_clone_body): Set CLONING_P. 3097 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 3098 tree nodes. 3099 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 3100 rest_of_compilation. Clear DECL_RTL for local variables 3101 afterwards. 3102 (clear_decl_rtl): New function. 3103 31042001-03-26 Nathan Sidwell <nathan@codesourcery.com> 3105 3106 Implement DR 209 3107 * cp-tree.h (skip_type_access_control, 3108 reset_type_access_control): Prototype. 3109 * decl.c (grokdeclarator): Access of friends is not checked. 3110 * parse.y (component_decl_list): Reset type access control. 3111 * semantics.c (decl_type_access_control): Clear 3112 current_type_lookups. 3113 (save_type_access_control): Don't save if not deferring. 3114 (skip_type_access_control, reset_type_access_control): New 3115 functions. 3116 (begin_class_definition): Do type access control for basetypes. 3117 Start deferred access control. 3118 (finish_class_definition): Resume immediate access control if 3119 this is a local class. 3120 31212001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3122 3123 * class.c (add_method): Use memcpy/memmove, not bcopy. 3124 3125 * decl.c (duplicate_decls): Likewise. 3126 31272001-03-23 Jakub Jelinek <jakub@redhat.com> 3128 3129 * mangle.c (write_discriminator): Use `_0' for discriminator 1, 3130 not `_'. 3131 31322001-03-23 Jakub Jelinek <jakub@redhat.com> 3133 3134 * decl.c (local_names): Define. 3135 (push_local_name): New. 3136 (grok_reference_init): Return init if initializing static reference 3137 variable with non-constant instead of emitting it. 3138 Move expand_static_init call to cp_finish_decl. 3139 (layout_var_decl): Call push_local_name. 3140 (maybe_commonize_var): Allow inlining functions even if they have 3141 static local variables, use comdat_linkage for them if flag_weak. 3142 (check_initializer): Call obscure_complex_init if 3143 grok_reference_init returned non-zero. 3144 (save_function_data): Clear x_local_names. 3145 (pop_cp_function_context): Free x_local_names. 3146 (mark_inlined_fns): Remove. 3147 (mark_lang_function): Mark x_local_names. 3148 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 3149 Mark inlined_fns as tree, remove call to mark_inlined_fns. 3150 * class.c (alter_access): Ensure DECL_ACCESS is never set if 3151 DECL_DISCRIMINATOR_P. 3152 * cp-tree.h (cp_language_function): Add x_local_names. 3153 (lang_decl_flags): Add discriminator into u2. 3154 (lang_decl_inlined_fns): Remove. 3155 (lang_decl): inlined_fns is now a TREE_VEC. 3156 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 3157 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 3158 TREE_VEC, not a custom structure. 3159 (optimize_function): Likewise. 3160 * mangle.c (discriminator_for_local_entity): Discriminate among 3161 VAR_DECL local entities. 3162 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 3163 is not valid. 3164 31652001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 3166 3167 Add support for Java interface method calls. 3168 * cp-tree.h (struct lang_type): Add java_interface flag. 3169 (TYPE_JAVA_INTERFACE): New macro. 3170 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 3171 by setting TYPE_JAVA_INTERFACE. 3172 * call.c (java_iface_lookup_fn): New static. 3173 (build_over_call): If calling a method declared in a 3174 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 3175 expression which resolves the function address. 3176 (build_java_interface_fn_ref): New function. 3177 31782001-03-22 Richard Henderson <rth@redhat.com> 3179 3180 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 3181 * except.c: Don't include it. 3182 31832001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 3184 based on an idea from Joe Buck <jbuck@synopsys.com> 3185 3186 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 3187 New nonterminals. 3188 (data_def, component_decl): Add reductions to bad_decl. 3189 31902001-03-22 Jakub Jelinek <jakub@redhat.com> 3191 3192 * method.c (do_build_assign_ref): Don't use build_modify_expr for 3193 anonymous aggregates, since they don't have assignment operator 3194 method. 3195 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 3196 assignment operators for anonymous structure fields. 3197 31982001-03-21 Jason Merrill <jason@redhat.com> 3199 3200 * pt.c (instantiate_decl): Abort if we see a member constant 3201 instantiation that doesn't already have its initializer. 3202 Downgrade explicit instantiation without definition to pedwarn. 3203 3204 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 3205 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 3206 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 3207 3208 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 3209 (pending_vtables): Remove. 3210 * decl2.c (pending_vtables): Remove. 3211 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 3212 CLASSTYPE_VTABLE_NEEDS_WRITING. 3213 (import_export_class): Likewise. 3214 (init_decl2): Don't mark pending_vtables. 3215 * lex.c (handle_pragma_vtable): Just sorry. 3216 * pt.c (instantiate_class_template): Don't mess with 3217 CLASSTYPE_VTABLE_NEEDS_WRITING. 3218 (mark_class_instantiated): Likewise. 3219 * ptree.c (print_lang_type): Don't print it. 3220 * semantics.c (begin_class_definition): Don't set it. 3221 3222 * pt.c (template_tail): Replace with last_pending_template. 3223 (maybe_templates, maybe_template_tail): Remove. 3224 (add_pending_template): Adjust. 3225 (instantiate_pending_templates): Adjust. 3226 3227 * cp-tree.h (struct saved_scope): Remove lang_stack field. 3228 (current_lang_stack): Remove. 3229 * decl.c (maybe_push_to_top_level): Don't initialize it. 3230 (duplicate_decls): Use current_lang_depth. 3231 (xref_basetypes): Likewise. 3232 * class.c (current_lang_depth): New fn. 3233 (push_lang_context): Use more varray functionality. 3234 (pop_lang_context): Likewise. 3235 3236 * error.c (GLOBAL_THING): Always use '__'. 3237 32382001-03-21 Mark Mitchell <mark@codesourcery.com> 3239 3240 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 3241 3242 * mangle.c (mangle_decl_string): Mangle the names of overloaded 3243 operators, even when they have `extern "C"' linkage. 3244 32452001-03-19 Mark Mitchell <mark@codesourcery.com> 3246 3247 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 3248 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 3249 where it's not necessary. 3250 (add_method): Remove optimization involving comparison of 3251 DECL_ASSEMBLER_NAME. 3252 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 3253 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 3254 where it's not necessary. 3255 (check_methods): Likewise. 3256 (build_clone): Likewise. 3257 (built_vtt): Likewise. 3258 * cp-tree.h (DECL_NEEDED_P): Likewise. 3259 * decl.c (pushtag): Likewise. 3260 (duplicate_decls): Likewise. 3261 (pushdecl): Likewise. 3262 (builtin_function): Likewise. 3263 (build_library_fn_1): Set DECL_LANGUAGE for library functions. 3264 (build_cp_library_fn): Likewise. 3265 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 3266 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 3267 where it's not necessary. 3268 (make_rtl_for_nonlocal_decl): Likewise. 3269 (cp_finish_decl): Likewise. 3270 (grokfndecl): Likewise. 3271 (grokvardecl): Likewise. 3272 (grokdeclarator): Likewise. 3273 (start_function): Likewise. 3274 (cp_missing_return_ok_p): Likewise. 3275 * decl2.c (grokclassfn): Likewise. 3276 (check_classfn): Likewise. 3277 (finish_static_data_member_decl): Likewise. 3278 (grokfield): Likewise. 3279 * error.c (GLOBAL_IORD_P): Remove. 3280 (dump_global_iord): Improve output. 3281 (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 3282 * except.c (nothrow_libfn_p): Summarily reject any function not in 3283 namespace-scope. 3284 * init.c (build_java_class_ref): Don't explicitly set 3285 DECL_ASSEMBLER_NAME after calling mangle_decl. 3286 * mangle.c (mangle_decl_string): Handle extern "C" functions. 3287 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 3288 * method.c (set_mangled_name_for_decl): Don't explicitly set 3289 DECL_ASSEMBLER_NAME after calling mangle_decl. 3290 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 3291 IDENTIFIER_GLOBAL_VALUE for the thunk. 3292 * pt.c (set_mangled_name_for_template_decl): Remove. 3293 (check_explicit_specialization): Don't use it. 3294 (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 3295 (tsubst_friend_function): Likewise. 3296 (tsubst_decl): Likewise. 3297 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 3298 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 3299 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 3300 where it's not necessary. 3301 (tinfo_base_init): Likewise. 3302 (create_real_tinfo_var): Likewise. 3303 * search.c (looup_field_1): Likewise. 3304 * semantics.c (finish_named_return_value): Likewise. 3305 * tree.c (init_tree): Set lang_set_decl_assembler_name. 3306 33072001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 3308 3309 Correct semantics restrictions checking in throw-expression. 3310 * except.c (is_admissible_throw_operand): New function. 3311 (build_throw): Use it. 3312 33132001-03-14 Mark Mitchell <mark@codesourcery.com> 3314 3315 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 3316 and its ilk. 3317 33182001-03-14 Mark Mitchell <mark@codesourcery.com> 3319 3320 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 3321 * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 3322 * decl.c (duplicate_decls): Likewise. 3323 (builtin_function): Likewise. 3324 (build_library_fn): Likewise. 3325 (build_cp_library_fn): Likewise. 3326 (check_initializer): Likewise. 3327 (cp_finish_decl): Likewise. 3328 * decl2.c (grokfield): Likewise. 3329 (grok_function_init): Remove #if 0'd code. 3330 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 3331 * friend.c (do_friend): Likewise. 3332 * init.c (get_temp_regvar): Likewise. 3333 * method.c (make_thunk): Likewise. 3334 * pt.c (tsubst_friend_function): Likewise. 3335 (tsubst_decl): Likewise. 3336 (regenerate_decl_from_template): Likewise. 3337 * semantics.c (genrtl_named_return_value): Likewise. 3338 (expand_body): Likewise. 3339 (genrtl_finish_function): Likewise. 3340 * tree.c (cp_tree_equal): Likewise. 3341 33422001-03-12 Nathan Sidwell <nathan@codesourcery.com> 3343 3344 * call.c (convert_like_real): Add extra semantics to INNER 3345 parameter. Don't convert to temporary if a user conversion 3346 gives us an lvalue that we're about to bind to a reference. 3347 Set INNER to indicate pending reference binding on recursive 3348 calls. 3349 33502001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 3351 3352 * cp/lex.c: Delete duplicate pending_lang_change. 3353 33542001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 3355 3356 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 3357 Similarly. 3358 * cp/repo.c (get_base_filename, open_repo_file): Similarly. 3359 * cp/cp-tree.h: Remove file_name_nondirectory prototype. 3360 33612001-03-09 Zack Weinberg <zackw@stanford.edu> 3362 3363 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 3364 33652001-03-08 Stan Shebs <shebs@apple.com> 3366 3367 * cp-tree.h (set_identifier_local_value): Remove unused decl. 3368 33692001-03-06 Zack Weinberg <zackw@stanford.edu> 3370 3371 * spew.c: Remove references to CPP_OSTRING. 3372 33732001-03-06 Andrew Haley <aph@redhat.com> 3374 3375 * typeck.c (convert_arguments): Check that we have an fndecl. 3376 33772001-03-05 Andrew Haley <aph@redhat.com> 3378 3379 * typeck.c (convert_arguments): Don't do ellipsis conversion for 3380 __built_in_constant_p. 3381 33822001-03-02 Nathan Sidwell <nathan@codesourcery.com> 3383 3384 * typeck.c (build_static_cast): Allow enum to enum conversions 3385 as per DR 128. 3386 33872001-03-02 Nathan Sidwell <nathan@codesourcery.com> 3388 3389 * class.c (check_field_decls): Pointers to member do not a 3390 non-pod struct make, as per DR 148. 3391 33922001-03-02 Nathan Sidwell <nathan@codesourcery.com> 3393 3394 * call.c (joust): cp_pedwarn when using gnu extension concerning 3395 worst conversion sequences. 3396 33972001-03-01 Zack Weinberg <zackw@stanford.edu> 3398 3399 * decl.c: Replace all uses of 'boolean' with 'bool'. 3400 34012001-03-01 Zack Weinberg <zackw@stanford.edu> 3402 3403 * lang-specs.h: Add zero initializer for cpp_spec field to 3404 all array elements that need one. Don't put an #ifdef inside 3405 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 3406 use it. 3407 34082001-03-01 Nathan Sidwell <nathan@codesourcery.com> 3409 3410 Implement using decls inside template functions. 3411 * decl2.c (validate_nonmember_using_decl): Don't special case 3412 fake_std_node in the global namespace. Don't reject early when 3413 processing a template. 3414 (do_local_using_decl): Add to statement tree. Don't do further 3415 processing when building a template. 3416 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 3417 34182001-03-01 Nathan Sidwell <nathan@codesourcery.com> 3419 3420 * decl2.c (do_nonmember_using_decl): Don't complain if we find 3421 same function. Do complain about ambiguating extern "C" 3422 declarations. 3423 34242001-02-28 Nathan Sidwell <nathan@codesourcery.com> 3425 3426 Remove floating point and complex type template constant parms. 3427 * pt.c (convert_nontype_argument): Remove REAL_TYPE and 3428 COMPLEX_TYPE extensions. 3429 (invalid_nontype_parm_type_p): Likewise. 3430 34312001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 3432 3433 * except.c (call_eh_info): Revert "match_function"'s type. 3434 34352001-02-27 Nathan Sidwell <nathan@codesourcery.com> 3436 3437 Fix ctor vtable vcall offsets. 3438 * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 3439 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 3440 (get_matching_base): Remove. 3441 (get_original_base): New function. 3442 (build_vtbl_initializer): Initialize vid.rtti_binfo. 3443 Use a virtual thunk for a ctor vtable with an index 3444 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 3445 primary base within a constructor vtable. Only set 3446 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 3447 when primary base has been lost. 3448 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 3449 34502001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 3451 3452 * call.c (joust): Ensure more_specialized()'s argument length 3453 parameter has correct value for constructors. 3454 34552001-02-26 Nathan Sidwell <nathan@codesourcery.com> 3456 3457 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 3458 3459 * decl.c (mark_inlined_fns): Prototype. 3460 34612001-02-22 Mark Mitchell <mark@codesourcery.com> 3462 3463 * spew.c (yylex): Correct handling of friends. 3464 34652001-02-22 Mark Mitchell <mark@codesourcery.com> 3466 3467 * mangle.c (write_encoding): Pass write_function_type the 3468 FUNCTION_DECL for the function being encoded. 3469 (write_function_type): Pass it along to write_bare_function_type. 3470 (write_bare_function_type): Pass it along to write_method_parms. 3471 (write_method_parms): Don't mangle the compiler-generated 3472 parameters to a constructor or destructor. 3473 34742001-02-22 Andreas Jaeger <aj@suse.de> 3475 3476 * optimize.c: Include toplev.h for 3477 note_deferral_of_defined_inline_function prototype. 3478 34792001-02-22 Jakub Jelinek <jakub@redhat.com> 3480 3481 * cp-tree.h (struct lang_decl_inlined_fns): New. 3482 (struct lang_decls): Add inlined_fns. 3483 (DECL_INLINED_FNS): New macro. 3484 * optimize.c (struct inline_data): Add inlined_fns. 3485 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 3486 (inlinable_function_p): Likewise, fix typo in comment, 3487 function is not inlinable if it already inlined function currently 3488 being optimized. 3489 (expand_call_inline): Add fn to inlined_fns if necessary. 3490 (optimize_function): Initialize inlined_fns. 3491 Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 3492 * decl.c (mark_inlined_fns): New function. 3493 (lang_mark_tree): Call it. 3494 34952001-02-21 Jason Merrill <jason@redhat.com> 3496 3497 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 3498 (DECL_UNINLINABLE): Move to middle-end. 3499 3500 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 3501 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 3502 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 3503 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 3504 parms and outer BLOCK. note_deferral_of_defined_inline_function. 3505 3506 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 3507 second parm of op=. 3508 35092001-02-19 Mark Mitchell <mark@codesourcery.com> 3510 3511 * decl2.c (set_decl_namespace): Allow explicit instantiations in 3512 any namespace. 3513 35142001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3515 3516 * optimize.c (expand_call_inline): Don't walk subtrees of type 3517 nodes. 3518 35192001-02-18 Mark Mitchell <mark@codesourcery.com> 3520 3521 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 3522 for a destructor. 3523 35242001-02-18 Jason Merrill <jason@redhat.com> 3525 3526 Do put the VTT parameter in DECL_ARGUMENTS. 3527 * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 3528 (current_vtt_parm): New macro. 3529 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 3530 (DECL_HAS_VTT_PARM_P): New macro. 3531 (DECL_VTT_PARM): Remove. 3532 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 3533 * decl.c (duplicate_decls): Only copy the operator code if 3534 appropriate. 3535 (start_function): Set current_vtt_parm. 3536 (lang_mark_tree): Don't mark vtt_parm. 3537 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 3538 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 3539 * class.c (build_clone): Maybe remove the VTT parm. 3540 * optimize.c (maybe_clone_body): Set up the VTT parm. 3541 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 3542 * call.c (build_over_call): Just allow the VTT arg. 3543 * method.c (make_thunk): Don't set DECL_VTT_PARM. 3544 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 3545 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 3546 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 3547 * error.c (dump_function_decl): Likewise. 3548 * call.c (build_user_type_conversion_1, convert_like_real): Abort 3549 if we try to call a constructor with in-charge or VTT parms. 3550 * method.c (skip_artificial_parms_for): New fn. 3551 * call.c (add_function_candidate, build_over_call): Call it. 3552 * call.c (build_new_method_call): Use current_vtt_parm. 3553 * init.c (expand_virtual_init): Likewise. 3554 * class.c (same_signature_p): No longer static. 3555 * cp-tree.h: Declare it. 3556 * search.c (look_for_overrides_r): Use it. 3557 35582001-02-17 Mark Mitchell <mark@codesourcery.com> 3559 3560 * cp-tree.h (new_abi_rtti_p): Remove. 3561 (name_mangling_version): Likewise. 3562 (flag_do_squangling): Likewise. 3563 * class.c (build_rtti_vtbl_entries): Remove old ABI support. 3564 * decl.c (grokfndecl): Likewise. 3565 * decl2.c (name_mangling_version): Remove. 3566 (flag_do_squangling): Likewise. 3567 (lang_f_options): Remove `squangle'. 3568 (unsupported_options): Add `squangle'. 3569 (cxx_decode_option): Issue a warning about uses of 3570 -fname-mangling-version. 3571 (finish_file): Remove old ABI support. 3572 * pt.c (check_explicit_specialization): Likewise. 3573 (tsubst_decl): Likewise. 3574 * rtti.c (init_rtti_processing): Likewise. 3575 (build_headof): Likewise. 3576 (get_tinfo_decl_dynamic): Likewise. 3577 (tinfo_from_decl): Likewise. 3578 (build_dynamic_cast_1): Likewise. 3579 (synthesize_tinfo_var): Likewise. 3580 * init.c (build_new): Allow enumeration types for the array-bounds 3581 in a direct-new-declarator. 3582 3583 * semantics.c (finish_typeof): Resolve OFFSET_REFs. 3584 3585 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 3586 TREE_PROTECTED from the template being specialized. 3587 35882001-02-17 Jason Merrill <jason@redhat.com> 3589 3590 * decl2.c (build_artificial_parm): Set TREE_READONLY. 3591 3592 * decl.c (bad_specifiers): Allow throw specs on things with 3593 pointer-to-function or -member-function type. 3594 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 3595 a pmf. 3596 35972001-02-17 Mark Mitchell <mark@codesourcery.com> 3598 3599 * call.c (check_dtor_name): Handle template names correctly. 3600 36012001-02-16 Jason Merrill <jason@redhat.com> 3602 3603 * cp-tree.h (DECL_USE_VTT_PARM): Remove. 3604 * decl2.c (maybe_retrofit_in_chrg): Don't create it. 3605 * optimize.c (maybe_clone_body): Don't substitute it. 3606 * call.c (build_new_method_call): Check in_chrg instead. 3607 * init.c (expand_virtual_init): Likewise. 3608 36092001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 3610 3611 * decl.c (check_tag_decl): Make sure a typedef for an anonymous 3612 class-type introduces at least a type-name. 3613 36142001-02-16 Jakub Jelinek <jakub@redhat.com> 3615 3616 * call.c (convert_like_real): Create a temporary for non-lvalue. 3617 36182001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 3619 3620 * cp-tree.h: Fix typos in comments. 3621 36222001-02-16 Jason Merrill <jason@redhat.com> 3623 3624 * optimize.c (remap_block): If we're compiling a clone, pass the 3625 new block to insert_block. 3626 36272001-02-16 Mark Mitchell <mark@codesourcery.com> 3628 3629 * semantics.c (finish_asm_stmt): Robustify. 3630 36312001-02-15 Mark Mitchell <mark@codesourcery.com> 3632 3633 * pt.c (push_template_decl_real): Don't remangle the name of a 3634 class template. 3635 36362001-02-15 Jim Meyering <meyering@lucent.com> 3637 3638 * Make-lang.in (c++.install-common): Depend on installdirs. 3639 (c++.install-info): Likewise. 3640 (c++.install-man): Likewise. 3641 36422001-02-15 Mark Mitchell <mark@codesourcery.com> 3643 3644 * typeck2.c (build_m_component_ref): Robustify. 3645 36462001-02-15 Alexandre Oliva <aoliva@redhat.com> 3647 3648 * friend.c (do_friend): Don't take the nested [template] class 3649 into account when deciding whether to warn about the friend 3650 function not referring to a template function. 3651 36522001-02-14 Jakub Jelinek <jakub@redhat.com> 3653 3654 * typeck.c (build_unary_op): Clarify error message. 3655 36562001-02-08 Aldy Hernandez <aldyh@redhat.com> 3657 3658 * parse.y (component_constructor_declarator): allow optional 3659 parentheses around constructor class name. 3660 36612001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3662 3663 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 3664 section. 3665 * init.c (emit_base_init): Remove incorrect comment about 3666 virtual bases. 3667 * method.c (make_thunk): Fix comment alignment. 3668 36692001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3670 3671 Kill remnants of this is variable. 3672 * cp-tree.h (flag_this_is_variable): Remove. 3673 * decl2.c (flag_this_is_variable): Remove. 3674 * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 3675 (build_vbase_path): The path is non-static, even in a cdtor. 3676 (resolves_to_fixed_type_p): Add additional return value. 3677 * search.c (init_vbase_pointers): Adjust. 3678 * tree.c (lvalue_p_1): Adjust. 3679 * typeck.c (mark_addressable): Adjust. 3680 36812001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3682 3683 * pt.c (unify): Don't check cv quals of array types. 3684 36852001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3686 3687 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 3688 check whether we already have the type. 3689 36902001-02-13 Mark Mitchell <mark@codesourcery.com> 3691 3692 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 3693 * call.c (build_op_delete_call): Simplify to remove duplicate 3694 code. 3695 * class.c (clone_function_decl): Don't build the deleting variant 3696 of a non-virtual destructor. 3697 * decl.c (finish_destructor_body): Don't call delete if this is a 3698 non-virtual destructor. 3699 * init.c (build_delete): Explicitly call `operator delete' when 3700 deleting an object with a non-virtual destructor. 3701 37022001-02-13 Jason Merrill <jason@redhat.com> 3703 3704 * lang-specs.h: Add more __EXCEPTIONS. 3705 37062001-02-12 Nathan Sidwell <nathan@codesourcery.com> 3707 3708 * typeck2.c (process_init_constructor): Check 3709 TREE_HAS_CONSTRUCTOR before issuing missing init warning. 3710 37112001-02-12 Nathan Sidwell <nathan@codesourcery.com> 3712 3713 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 3714 Remove spurious information in comment. Allow further 3715 adjustments of REFERENCE_TYPE args. 3716 37172001-02-12 Nathan Sidwell <nathan@codesourcery.com> 3718 3719 * errfn.c (cp_deprecated): Tweak diagnostic text. 3720 * parse.y (new_initializer): Deprecate initializer lists 3721 extension. 3722 37232001-02-12 Mark Mitchell <mark@codesourcery.com> 3724 3725 Remove old ABI support. 3726 37272001-02-11 Mark Mitchell <mark@codesourcery.com> 3728 3729 * decl2.c (flag_vtable_thunks): Always set it to 1. 3730 (flag_new_abi): Likewise. 3731 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 3732 3733 * Makefile.in (g++spec.o): Fix typo. 3734 37352001-02-09 Jason Merrill <jason@redhat.com> 3736 3737 * lang-specs.h: Restore definition of __EXCEPTIONS. 3738 37392001-02-08 Jason Merrill <jason@redhat.com> 3740 3741 * search.c (shared_member_p): New function. 3742 (lookup_field_r): Use it. 3743 * cp-tree.h (SHARED_MEMBER_P): Remove. 3744 3745 * method.c (process_overload_item): Handle template-dependent array 3746 bounds. 3747 * pt.c (type_unification_real): If we end up with undeduced nontype 3748 parms, try again. 3749 3750 * decl.c (lookup_name_real): Tweak warning to refer to decls, not 3751 types. 3752 3753 * typeck2.c (friendly_abort): Don't say anything if we have 3754 earlier errors or sorries. 3755 3756 * decl.c (check_tag_decl): Notice attempts to redefine bool and 3757 wchar_t. Ignore if in_system_header. 3758 3759 * decl.c (maybe_push_cleanup_level): New fn... 3760 (start_decl_1): ...split out from here. 3761 * cvt.c (build_up_reference): Use it. 3762 * cp-tree.h: Declare it. 3763 37642001-02-07 Mark Mitchell <mark@codesourcery.com> 3765 3766 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 3767 spec. 3768 37692001-02-06 Nathan Sidwell <nathan@codesourcery.com> 3770 3771 * pt.c (lookup_template_class): Make sure it's a primary 3772 template or template_template_parm when called from the parser. 3773 (instantiate_template_class): Add assertion. 3774 37752001-02-05 Alexandre Oliva <aoliva@redhat.com> 3776 3777 * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 3778 from error_mark_node. 3779 37802001-02-05 Nathan Sidwell <nathan@codesourcery.com> 3781 3782 Fix specification and implementation bugs in V3 ABI 3783 construction vtables. 3784 * cp-tree.h (flag_dump_class_layout): New flag. 3785 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 3786 (BINFO_LOST_PRIMARY_P): New flag. 3787 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 3788 (BINFO_PRIMARY_MARKED_P): Rename to ... 3789 (BINFO_PRIMARY_P): ... here. 3790 (binfo_via_virtual): New prototype. 3791 * decl2.c (flag_dump_class_layout): New flag. 3792 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 3793 use `=' as a file name separator. 3794 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 3795 bases. 3796 (build_vtbl_address): If this is a virtual primary base, then 3797 get the vtbl of what it is ultimately primary for. 3798 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 3799 for BINFO_PRIMARY_P. 3800 (dfs_skip_nonprimary_vbases_markedp): Likewise. 3801 (get_shared_vbase_if_not_primary): Likewise. 3802 (dfs_get_pure_virtuals): Likewise. 3803 (expand_upcast_fixups): Likewise. 3804 (fixup_virtual_upcast_offsets): Likewise. 3805 (dfs_find_vbase_instance): Likewise. 3806 (find_vbase_instance): Likewise. 3807 (binfo_from_vbase): Adjust comment to reflect reality. 3808 (binfo_via_virtual): New function. 3809 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 3810 for binfo walking during VTT construction. 3811 (dfs_mark_primary_bases): Remove. 3812 (force_canonical_binfo_r): New function. 3813 (force_canonical_binfo): New function. 3814 (mark_primary_virtual_base): New function. 3815 (mark_primary_bases): Walk in inheritance graph order, use 3816 mark_primary_virtual_base. 3817 (determine_primary_base): Use some more intermediate variables. 3818 (dfs_find_final_overrider): Don't check for overriding along a 3819 virtual path. 3820 (dfs_modify_vtables): Walk into primary virtual bases too. 3821 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 3822 (build_base_fields): Likewise. 3823 (dfs_set_offset_for_unshared_vbases): Likewise. 3824 (layout_virtual_bases): Likewise. 3825 (end_of_class): Likewise. 3826 (finish_struct_1): Call dump_class_hierarchy, if requested. 3827 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 3828 (dump_class_hierarchy_r): Add stream parameter. Emit more information. 3829 (dump_class_hierarchy): Add file parameter. Append to file, if 3830 required. 3831 (finish_vtbls): Adjust accumulate_vtbl_inits call. 3832 Use canonical base for virtual bases. 3833 (build_vtt): Add more comments. Adjust build_vtt_inits call. 3834 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 3835 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 3836 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 3837 virtual VTTs. 3838 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 3839 from DATA. We want virtual primary bases and all bases via virtual. 3840 Only set BINFO_VPTR_INDEX for top level. Look up from a primary 3841 virtual base when not a construction vtable. 3842 (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 3843 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 3844 Use canonical bases when processing virtual bases. 3845 (accumulate_vtbl_inits): We're interested in any base via a 3846 virtual path. 3847 (dfs_accumulate_vtbl_inits): If this is a primary virtual base 3848 within a construction vtable, determine what is being overridden. 3849 (build_vtbl_initializer): Add more comments 3850 (add_vcall_offset_vtbl_entries_1): Adjust comment. 3851 (build_rtti_vtbl_entries): Check if the base has lost its 3852 primary. 3853 38542001-02-05 Mark Mitchell <mark@codesourcery.com> 3855 3856 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 3857 3858Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3859 3860 * decl.c (pushdecl): Call abort instead of fatal. 3861 * except.c (decl_is_java_type): Call fatal_error instead of fatal. 3862 * init.c (build_new_1): Likewise. 3863 (build_java_class_ref): Call internal_error and fatal_error, not fatal. 3864 * decl.c (build_typename_type): hash_table_init now returns void. 3865 decl.c (init_decl_processing): Make an error non-fatal. 3866 38672001-02-04 Mark Mitchell <mark@codesourcery.com> 3868 3869 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 3870 Document. 3871 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 3872 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 3873 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 3874 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 3875 * decl.c (maybe_commonize_var): Use the new name-mangling where 3876 appropriate. 3877 * decl2.c (comdat_linkage): Enhance comments. Make all 3878 compiler-generated things static, if COMDAT is not available. 3879 (get_tinfo_decl): Do not make typeinfo objects that belong in the 3880 library COMDAT. 3881 (tinfo_base_init): Use the correct mangled name for typeinfo 3882 strings, and push them into the global scope. 3883 (typeinfo_in_lib_p): New function. 3884 (synthesize_tinfo_var): Use it. 3885 (create_real_tinfo_var): Likewise. 3886 38872001-02-03 Jakub Jelinek <jakub@redhat.com> 3888 3889 * decl.c (push_class_binding): Use context_for_name_lookup instead 3890 of CP_DECL_CONTEXT. 3891 * search.c (context_for_name_lookup): Remove static. Check for NULL 3892 context in the loop. 3893 * cp-tree.h (context_for_name_lookup): Add prototype. 3894 38952001-02-02 Jakub Jelinek <jakub@redhat.com> 3896 3897 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 3898 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 3899 Remove. 3900 * call.c (convert_class_to_reference, build_user_type_conversion_1, 3901 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 3902 39032001-02-02 Mark Mitchell <mark@codesourcery.com> 3904 3905 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 3906 of macros used when compiling g++spec.c. 3907 * g++spec.c (lang_specific_driver): Link with the shared 3908 libgcc by default. 3909 39102001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 3911 3912 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 3913 make_reference_declarator, make_call_declarator), method.c 3914 (implicitly_declare_fn), parse.y (namespace_using_decl, 3915 notype_unqualified_id, expr_or_declarator, new_type_id, 3916 after_type_declarator, direct_after_type_declarator, 3917 notype_declarator, complex_notype_declarator, 3918 complex_direct_notype_declarator, qualified_id, 3919 notype_qualified_id, overqualified_id, direct_new_declarator, 3920 absdcl, direct_abstract_declarator, conversion_declarator), pt.c 3921 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 3922 instead of build_parse_node. 3923 39242001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3925 3926 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 3927 (minus_one_node): Moved to top level gcc directory. Renamed 3928 to integer_minus_one_node. 3929 3930 * init.c (init_init_processing): Don't set minus_one_node. 3931 (build_vec_init): Use integer_minus_one_node. 3932 3933 * rtti.c (get_tinfo_decl_dynamic): Likewise. 3934 39352001-01-28 Jakub Jelinek <jakub@redhat.com> 3936 3937 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 3938 identical and they would be replaced with constant, remove 3939 MODIFY_EXPR from the tree. 3940 39412001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3942 3943 * Make-lang.in: Remove all dependencies on defaults.h. 3944 * call.c: Don't include defaults.h. 3945 * decl.c: Likewise. 3946 * decl2.c: Likewise. 3947 * except.c: Likewise. 3948 * pt.c: Likewise. 3949 * rtti.c: Likewise. 3950 * tree.c: Likewise. 3951 * typeck.c: Likewise. 3952 39532001-01-25 Jakub Jelinek <jakub@redhat.com> 3954 3955 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 3956 operators even in "C" linkage. 3957 * method.c (set_mangled_name_for_decl): Likewise. 3958 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 3959 overloaded operators in "C" linkage. 3960 39612001-01-24 Nathan Sidwell <nathan@codesourcery.com> 3962 3963 * pt.c (tsubst_decl): Remove IN_DECL parameter. 3964 (tsubst_arg_types): Check parameter is not void. 3965 (tsubst): Adjust tsubst_decl call. 3966 39672001-01-24 Nathan Sidwell <nathan@codesourcery.com> 3968 3969 * call.c (add_builtin_candidate): Quote std properly, from 3970 previous change. 3971 39722001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3973 3974 * pt.c (check_explicit_specialization): Clone constructors and 3975 destructors. 3976 39772001-01-23 Nathan Sidwell <nathan@codesourcery.com> 3978 3979 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 3980 indicates anything special about template depth. Make sure we 3981 only count the user visible template classes. 3982 39832001-01-23 Nathan Sidwell <nathan@codesourcery.com> 3984 3985 * call.c (build_conv): Typo in comment. 3986 (add_builtin_candidate): Add more explanation. 3987 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 3988 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 3989 when we have enumeral types. 3990 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 3991 candidates for relops and eqops. 3992 (joust): Simplify control flow. Allow a non-template user 3993 function to hide a builtin. 3994 39952001-01-22 Nathan Sidwell <nathan@codesourcery.com> 3996 3997 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 3998 (more_specialized): Add deduction parameter. 3999 * call.c (joust): Adjust more_specialized call. 4000 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 4001 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 4002 (get_bindings_order): Remove. 4003 (get_bindings_real): Add DEDUCE parameter. 4004 (maybe_adjust_types_for_deduction): Return extra unify flags. Do 4005 REFERENCE_TYPE jig for DEDUCE_ORDER. 4006 (type_unification_real): Deal with DEDUCE_ORDER. Use result of 4007 maybe_adjust_types_for_deduction. 4008 (more_specialized): Add DEDUCE parameter. Call get_bindings_real 4009 directly. 4010 (try_one_overload): Use result of maybe_adjust_types_for_deduction. 4011 (check_cv_quals_for_unify): Use new unify qualifier flags. 4012 (unify): Clear new unify qualifier flags. 4013 (get_bindings_real): Add DEDUCE parameter. 4014 (get_bindings): Adjust call to get_bindings_real. 4015 (get_bindings_overload): Likewise. 4016 (most_specialized_instantiation): Adjust call to 4017 more_specialized. 4018 40192001-01-19 Jason Merrill <jason@redhat.com> 4020 4021 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 4022 4023 * decl.c (init_decl_processing): Just force -fvtable-thunks on if 4024 -fnew-abi. 4025 40262001-01-19 Ute Pelkmann <scope.muc@t-online.de> 4027 4028 * decl2.c (arg_assoc_class): Fix double iteration logic. 4029 40302001-01-19 Jason Merrill <jason@redhat.com> 4031 4032 * init.c (build_delete): Always call convert_force to strip cv-quals. 4033 4034 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 4035 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 4036 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 4037 40382001-01-19 Nathan Sidwell <nathan@codesourcery.com> 4039 4040 * search.c (get_vbase_1): Count only virtual bases. 4041 40422001-01-19 Nathan Sidwell <nathan@codesourcery.com> 4043 4044 * class.c (duplicate_tag_error): Robustify flag clearing. 4045 40462001-01-19 Nathan Sidwell <nathan@codesourcery.com> 4047 4048 * cp-tree.h (lookup_template_class): Add complain parm. 4049 * decl.c (lookup_namespace_name): Adjust call to 4050 lookup_template_class. 4051 (make_typename_type): Likewise. 4052 * semantics.c (finish_template_type): Likewise. 4053 * pt.c (lookup_template_class): Add complain parm. Adjust. 4054 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 4055 (tsubst): Likewise. 4056 40572001-01-19 Nathan Sidwell <nathan@codesourcery.com> 4058 4059 * pt.c (copy_default_args_to_explicit_spec): Preserve 4060 object's CV quals. Reorganize. 4061 40622001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4063 4064 * typeck.c (build_modify_expr): Say `initialization' for 4065 INIT_EXPRs. 4066 * init.c (build_default_init): Convert to enumeral type, if 4067 needed. 4068 40692001-01-18 Jakub Jelinek <jakub@redhat.com> 4070 4071 * parse.y (nomods_initdcl0): Properly set things up for 4072 initdcl0_innards. 4073 40742001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4075 4076 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 4077 (type_unification_real): Set it. 4078 (unify): Use it. 4079 40802001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4081 4082 * decl.c (finish_destructor_body): Convert to vbase pointer here. 4083 40842001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4085 4086 * semantics.c (begin_class_definition): Check we're not inside a 4087 template parm list. 4088 40892001-01-18 Nathan Sidwell <nathan@codesourcery.com> 4090 4091 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 4092 BASELINK_P. 4093 40942001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4095 4096 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 4097 * call.c (build_over_call): Add comment. 4098 40992001-01-16 Daniel Berlin <dberlin@redhat.com> 4100 4101 * cvt.c (ocp_convert): Handle vector type conversion 4102 * typeck2.c (digest_init): Handle vector type initializations 4103 41042001-01-16 Phil Edwards <pme@sources.redhat.com> 4105 4106 * g++spec.c: Don't add libraries needlessly if -fsyntax-only 4107 was given. 4108 41092001-01-15 Nathan Sidwell <nathan@codesourcery.com> 4110 4111 * pt.c (check_nontype_parm): Rename to ... 4112 (invalid_nontype_parm_type_p): ... here. 4113 (process_template_parm): Adjust. 4114 (convert_template_argument): Adjust. 4115 41162001-01-15 Nathan Sidwell <nathan@codesourcery.com> 4117 4118 * pt.c (check_nontype_parm): New function. 4119 (process_template_parm): Use it. 4120 (convert_template_argument): Use it. 4121 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 4122 member. 4123 41242001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 4125 4126 * tree.c: Add defaults.h 4127 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 4128 * Make-lang.in (cp/tree.o): Add defaults.h. 4129 41302001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 4131 4132 * Make-lang.in (CXX_C_OBJS): Add c-format.o. 4133 41342001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 4135 4136 * g++.1: Change to be ".so man1/gcc.1". 4137 41382001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 4139 4140 * Make-lang.in (c++.info, c++.install-info): Build and install g++ 4141 internals info. 4142 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 4143 ($(srcdir)/cp/g++int.info): New target. 4144 * gxxint.texi: Add info directory entry. Use @@ in email address. 4145 * .cvsignore: Update. 4146 41472001-01-12 Nathan Sidwell <nathan@codesourcery.com> 4148 4149 * typeck.c (build_c_cast): Do template processing earlier. 4150 Always pedwarn on array casts. 4151 41522001-01-12 Nathan Sidwell <nathan@codesourcery.com> 4153 4154 * friend.c (make_friend_class): Make sure a templated class is 4155 actually a template. 4156 41572001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4158 4159 * decl2.c (get_guard): Set linkage from guarded decl. 4160 41612001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4162 4163 * call.c (convert_default_arg): Check for unprocessed 4164 DEFAULT_ARG. 4165 * cp-tree.h (replace_defarg): Move to spew.c. 4166 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 4167 spew.c, which is where they really are. 4168 (done_pending_defargs): Declare. 4169 (unprocessed_defarg_fn): Declare. 4170 * decl.c (replace_defarg): Move to spew.c 4171 * parse.y (structsp): Call done_pending_defargs. 4172 * spew.c (defarg_fns): Rearrange list structure. 4173 (defarg_fnsdone): New static variable. 4174 (defarg_depfns): New static variable. 4175 (init_spew): Adjust. 4176 (add_defarg_fn): Store the type in TREE_TYPE. 4177 (do_pending_defargs): Detect and deal with ordering constraints 4178 and circularity. 4179 (done_pending_defargs): New function. 4180 (unprocessed_defarg_fn): New function. 4181 (replace_defarg): Moved from decl.c. Robustify. Don't save 4182 if circularity detected. 4183 41842001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4185 4186 * pt.c (unify): Check array has a domain, before checking 4187 whether it is variable sized. 4188 41892001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4190 4191 * decl.c (grokparms): Unobfuscate and get correct diagnostic for 4192 parameters with pointers to arrays of unknown bound. 4193 41942001-01-11 Nathan Sidwell <nathan@codesourcery.com> 4195 4196 * parse.y (template_parm_header, template_spec_header): New 4197 reductions. Split out from ... 4198 (template_header): ... here. Use them. 4199 (template_template_parm): Use template_parm_header. 4200 * semantics.c (finish_template_template_parm): Add assert. 4201 42022001-01-10 Mark Mitchell <mark@codesourcery.com> 4203 4204 * mangle.c (write_builtin_type): Fix thinko. 4205 4206 * pt.c (copy_default_args_to_explicit_spec_1): New function. 4207 (copy_default_args_to_explicit_spec): Likewise. 4208 (check_explicit_specialization): Use it. 4209 4210 * class.c (finish_struct_1): Remove last argument in call to 4211 make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 4212 * decl.c (builtin_function): Likewise. 4213 (build_cp_library_fn): Likewise. 4214 (check_initializer): Likewise. 4215 (make_rtl_for_nonlocal_decl): Likewise. 4216 (cp_finish_decl): Likewise. 4217 (start_function): Likewise. 4218 * decl2.c (finish_anon_union): Likewise. 4219 * friend.c (do_friend): Likewise. 4220 * init.c (build_java_class_ref): Likewise. 4221 * method.c (make_thunk): Likewise. 4222 * pt.c (tsubst_friend_function): Likewise. 4223 * semantics.c (expand_body): Likewise. 4224 42252001-01-10 Mark Mitchell <mark@codesourcery.com> 4226 4227 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 4228 looking at DECL_CLONED_FUNCTION for non-functions. 4229 42302001-01-10 Nathan Sidwell <nathan@codesourcery.com> 4231 4232 * error.c (dump_template_parameter): Use parm to determine how 4233 to print default value. 4234 42352001-01-10 Nathan Sidwell <nathan@codesourcery.com> 4236 4237 * class.c (duplicate_tag_error): Clear more flags. 4238 42392001-01-10 Nathan Sidwell <nathan@codesourcery.com> 4240 4241 * call.c (build_new_method_call): Use binfo_for_vbase. 4242 42432001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 4244 4245 * cp-tree.h (flag_cond_mismatch): Don't declare. 4246 * decl2.c (flag_cond_mismatch): Don't define. 4247 (lang_f_options): Remove cond-mismatch. 4248 (unsupported_options): Add cond-mismatch. 4249 42502001-01-09 Nathan Sidwell <nathan@codesourcery.com> 4251 4252 * class.c (handle_using_decl): Reject using of constructor name 4253 of sourcing class. Allow injecting of a method with same name as 4254 nested class. Fixup error messages. 4255 42562001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 4257 4258 * decl2.c (lang_decode_option): Handle -Wformat=2. 4259 42602001-01-08 Nathan Sidwell <nathan@codesourcery.com> 4261 4262 * cp-tree.h (lang_decl_flags): Rename defined_in_class to 4263 initialized_in_class. 4264 (DECL_DEFINED_IN_CLASS_P): Rename to ... 4265 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 4266 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 4267 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 4268 * pt.c (check_default_tmpl_args): Adjust for 4269 DECL_INITIALIZED_IN_CLASS_P. 4270 (instantiate_class_template): Likewise. 4271 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 4272 4273 * class.c (finish_struct): Constify saved_filename. 4274 42752001-01-08 Nathan Sidwell <nathan@codesourcery.com> 4276 4277 * class.c (duplicate_tag_error): Adjust diagnostic. 4278 (finish_struct): Locally set location to start of struct. 4279 * decl.c (fixup_anonymous_aggr): Use cp_error_at. 4280 42812001-01-08 Nathan Sidwell <nathan@codesourcery.com> 4282 4283 * decl.c (struct binding_level): Adjust class_shadowed comments 4284 to reflect reality. 4285 (push_class_level_binding): Adjust comments to reflect reality. 4286 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 4287 Don't set TREE_VALUE on the class_shadowed list. 4288 42892001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 4290 4291 * decl2.c (acceptable_java_type): Allow references too. 4292 * init.c (build_java_class_ref): When using the new ABI, search 4293 `class$' and have it mangled with `mangle_decl.' 4294 * mangle.c (write_java_integer_type_codes): New function. 4295 (write_builtin_type): Detect and mangle Java integer and real 4296 types. 4297 42982001-01-07 Mark Mitchell <mark@codesourcery.com> 4299 4300 * decl2.c (grokfield): Don't accept `asm' specifiers for 4301 non-static data members. 4302 43032001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4304 4305 * expr.c (cplus_expand_expr): Don't reset `target'. 4306 43072001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 4308 4309 * cp/decl2.c (cxx_post_options): Call cpp_post_options. 4310 43112001-01-05 Nathan Sidwell <nathan@codesourcery.com> 4312 4313 * parse.y (template_datadef): Check for error_mark_node. 4314 43152001-01-05 Nathan Sidwell <nathan@codesourcery.com> 4316 4317 * cp-tree.def (DEFAULT_ARG): Make `x' class. 4318 43192001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 4320 4321 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 4322 (record_builtin_type): Make non-static. 4323 (flag_short_double): Don't declare. 4324 (init_decl_processing): Remove the creation of many tree nodes now 4325 in c_common_nodes_and_builtins. 4326 (build_void_list_node): New function. 4327 * decl2.c (flag_short_double, flag_short_wchar): Don't define. 4328 * cp-tree.h (flag_short_wchar): Don't declare. 4329 43302001-01-04 Mark Mitchell <mark@codesourcery.com> 4331 4332 * call.c (build_conv): Don't use build1 for USER_CONV. 4333 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 4334 43352001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 4336 4337 * lex.c (lang_init): Call c_common_lang_init. 4338 43392001-01-03 Nathan Sidwell <nathan@codesourcery.com> 4340 4341 * search.c (lookup_fnfields_here): Remove. 4342 (look_for_overrides_r): Use lookup_fnfields_1. 4343 Ignore functions from using declarations. 4344 43452001-01-03 Nathan Sidwell <nathan@codesourcery.com> 4346 4347 Implement exceptions specifiers for implicit member functions. 4348 * cp-tree.h (merge_exceptions_specifiers): Declare new function. 4349 * method.c (synthesize_exception_spec): New function. 4350 (locate_dtor, locate_ctor, locate_copy): New functions. 4351 (implicitly_declare_fn): Generate the exception spec too. 4352 * search.c (check_final_overrider): Check artificial functions 4353 too. 4354 * typeck2.c (merge_exception_specifiers): New function. 4355 43562001-01-03 Jason Merrill <jason@redhat.com> 4357 4358 * init.c (build_default_init): New fn. 4359 (perform_member_init): Split out from here. 4360 (build_new_1): Use it. Simplify initialization logic. 4361 (build_vec_init): Take an array, rather than a pointer and maxindex. 4362 Speed up simple initializations. Don't clean up if we're assigning. 4363 * cp-tree.h: Adjust. 4364 * decl2.c (do_static_initialization): Remove TREE_VEC case. 4365 * parse.y (new_initializer): Return void_zero_node for (). 4366 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 4367 * typeck2.c (digest_init): Only complain about user-written 4368 CONSTRUCTORs. 4369 43702000-12-22 Mike Stump <mrs@wrs.com> 4371 4372 * decl2.c: (max_tinst_depth): Increase to 50. 4373 43742001-01-02 Mark Mitchell <mark@codesourcery.com> 4375 4376 * class.c (invalidate_class_lookup_cache): Zero the 4377 previous_class_values. 4378 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 4379 TREE_INT_CST_HIGH. 4380 (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 4381 * decl.c (free_bindings): New variable. 4382 (push_binding): Don't create a new binding if we have one on the 4383 free list. 4384 (pop_binding): Put old bindings on the free list. 4385 (init_decl_processing): Use size_int, not build_int_2. 4386 Register free_bindings as a GC root. 4387 (cp_make_fname_decl): Use size_int, not build_int_2. 4388 (push_inline_template_parms_recursive): Likewise. 4389 (end_template_parm_list): Likewise. 4390 (for_each_tempalte_parm): Do not use walk_tree_without_duplicates. 4391 (tsubst_template_parms): Use size_int, not build_int_2. 4392 (tsubst): Likewise. 4393 * rtti.c (get_vmi_pseudo_type_info): Likewise. 4394 43952001-01-02 Richard Henderson <rth@redhat.com> 4396 4397 * parse.y (asm): Set ASM_INPUT_P. 4398 43992001-01-02 Jason Merrill <jason@redhat.com> 4400 4401 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 4402 for v3 ABI. 4403 4404 * typeck.c (cp_truthvalue_conversion): New fn. 4405 * cvt.c (ocp_convert): Use it. 4406 4407 * cp-tree.h: Lose c-common.c decls. 4408 4409 * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 4410 * cvt.c (convert_to_void): Use type_unknown_p. 4411 4412 * typeck.c (strip_all_pointer_quals): Also strip quals from 4413 pointer-to-member types. 4414 4415 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 4416 parse.y as C. 4417 4418 * call.c (build_new_method_call): Do evaluate the object parameter 4419 when accessing a static member. 4420 * typeck.c (build_component_ref): Likewise. 4421 44222001-01-02 Andreas Jaeger <aj@suse.de> 4423 4424 * decl.c (cp_missing_noreturn_ok_p): New. 4425 (init_decl_processing): Set lang_missing_noreturn_ok_p. 4426 44272000-12-29 Jakub Jelinek <jakub@redhat.com> 4428 4429 * decl.c (init_decl_processing): Fix sign of wchar_type_node. 4430 44312000-12-29 Mark Mitchell <mark@codesourcery.com> 4432 4433 * class.c (pushclass): Remove #if 0'd code. 4434 * cp-tree.h (overload_template_name): Remove. 4435 * decl.c (store_bindings): Simplify. 4436 (pop_from_top_level): Likewise. 4437 * pt.c (overload_template_name): Remove. 4438 (instantiate_decl): Don't call push_to_top_level if it's not 4439 needed. 4440 44412000-12-28 Mark Mitchell <mark@codesourcery.com> 4442 4443 * pt.c (register_local_specialization): Don't return a value. 4444 (lookup_template_class): Use move-to-front heuristic when looking 4445 up template instantiations. 4446 (instantiate_decl): Only push_to_top_level when we're actually 4447 going to instantiate the template. 4448 44492000-12-29 Hans-Peter Nilsson <hp@bitrange.com> 4450 4451 * search.c (binfo_for_vtable): Return least derived class, not 4452 most. Handle secondary vtables. 4453 44542000-12-22 Jason Merrill <jason@redhat.com> 4455 4456 * pt.c (more_specialized): Don't optimize len==0. 4457 (fn_type_unification): If we're adding the return type, increase len. 4458 4459 * typeck.c (build_binary_op): Fix pmf comparison logic. 4460 4461 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not 4462 DECL_STATIC_FUNCTION_P. 4463 4464 * semantics.c (genrtl_finish_function): Don't try to jump to 4465 return_label unless it exists. 4466 4467 In partial ordering for a call, ignore parms for which we don't have 4468 a real argument. 4469 * call.c (joust): Pass len to more_specialized. 4470 (add_template_candidate_real): Strip 'this', pass len. 4471 * pt.c (more_specialized): Pass len down. Lose explicit_args parm. 4472 (get_bindings_order): New fn. Pass len down. 4473 (get_bindings_real): Strip 'this', pass len. 4474 (fn_type_unification): Likewise. 4475 (type_unification_real): Succeed after checking 'len' args. 4476 (most_specialized_instantiation): Lose explicit_args parm. 4477 * class.c (resolve_address_of_overloaded_function): Strip 'this', 4478 pass len. 4479 44802000-12-21 Jason Merrill <jason@redhat.com> 4481 4482 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not 4483 DECL_TEMPLATE_RESULT. 4484 4485 * search.c (lookup_field_r): Call lookup_fnfields_1, not 4486 lookup_fnfields_here. 4487 4488 * parse.y (typename_sub2): Return the TYPE_DECL, not the type. 4489 4490 * call.c (build_object_call): Also allow conversions that return 4491 reference to pointer to function. 4492 (add_conv_candidate): Handle totype being ref to ptr to fn. 4493 (build_field_call): Also allow members of type reference to function. 4494 Lose support for calling pointer to METHOD_TYPE fields. 4495 4496 * error.c (dump_expr): Handle *_CAST_EXPR. 4497 4498 * typeck2.c (build_scoped_ref): Always convert to the naming class. 4499 4500 * tree.c (break_out_cleanups): Lose. 4501 * cp-tree.h: Remove prototype. 4502 * typeck.c (build_component_ref): Don't break_out_cleanups. 4503 (build_compound_expr): Likewise. 4504 * semantics.c (finish_expr_stmt): Likewise. 4505 45062000-12-20 Richard Henderson <rth@redhat.com> 4507 4508 * cp-tree.h: Update declarations. 4509 * decl.c (finish_case_label): Return the new stmt node. 4510 * semantics.c (finish_goto_stmt): Likewise. 4511 (finish_expr_stmt, finish_return_stmt): Likewise. 4512 (finish_break_stmt, finish_continue_stmt): Likewise. 4513 (finish_asm_stmt): Likewise. 4514 * parse.y (already_scoped_stmt): Set STMT_LINENO. 4515 (compstmt, implicitly_scoped_stmt, stmt): Likewise. 4516 (simple_if, simple_stmt): Return the new stmt node. 4517 (save_lineno): New. 4518 45192000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 4520 4521 * cp-tree.h: Don't declare warn_long_long. 4522 45232000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4524 4525 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of 4526 IS_AGGR_TYPE. 4527 45282000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4529 4530 * pt.c (unify): Handle when both ARG and PARM are 4531 BOUND_TEMPLATE_TEMPLATE_PARM. 4532 45332000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4534 4535 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and 4536 DECL_TEMPLATE_PARM_P. 4537 45382000-12-15 Jason Merrill <jason@redhat.com> 4539 4540 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs! 4541 4542 * init.c (build_new_1): Don't strip quals from type. 4543 4544 * decl.c (pushdecl): Don't check for linkage on a non-decl. 4545 4546 * call.c (build_op_delete_call): See through ARRAY_TYPEs. 4547 4548 * call.c (build_new_function_call): Lose space before paren in 4549 error message. 4550 (build_new_method_call): Likewise. 4551 4552 * typeck2.c (build_m_component_ref): Propagate quals from datum. 4553 45542000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4555 4556 * pt.c (check_explicit_specialization): Propagate default 4557 function arguments to explicit specializations. 4558 45592000-12-13 DJ Delorie <dj@redhat.com> 4560 4561 * typeck.c (build_binary_op): Do signed/unsigned warnings for >? 4562 and <? operators. 4563 45642000-12-08 Jason Merrill <jason@redhat.com> 4565 4566 * error.c (dump_function_name): Don't let the user see __comp_ctor. 4567 4568 Clean up copy-initialization in overloading code. 4569 * call.c (build_user_type_conversion_1): Die if we are asked to 4570 convert to the same or a base type. 4571 (implicit_conversion): Avoid doing so. Lose reference binding code. 4572 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit 4573 direct-initialization. Also do direct-init part of copy-init. 4574 (build_user_type_conversion): Don't provide context to convert_like. 4575 * cvt.c (ocp_convert): build_user_type_conversion will now provide 4576 the constructor call for copy-init. 4577 4578 * pt.c (tsubst_decl): Call clone_function_decl here if this is an 4579 instantiation of a member template. 4580 (do_decl_instantiation): Not here. 4581 45822000-12-07 Nathan Sidwell <nathan@codesourcery.com> 4583 4584 * class.c (check_field_decls): Don't special case anonymous 4585 fields in error messages. 4586 (note_name_declared_in_class): Use %D on diagnostic. 4587 4588 * tree.c (pod_type_p): Use strip_array_types. 4589 (cp_valid_lang_attribute): Likewise. 4590 * typeck.c (cp_type_quals): Strip arrays separately, to avoid 4591 multiple evaluations. 4592 (cp_has_mutable_p): Use strip_array_types. 4593 45942000-12-07 Nathan Sidwell <nathan@codesourcery.com> 4595 4596 * cp-tree.h (sufficient_parms_p): Declare new function. 4597 * call.c (sufficient_parms_p): New function, broken out of ... 4598 (add_function_candidate): ... here. Use it. 4599 (add_conv_candidate): Use it. 4600 * decl.c (grok_ctor_properties): Use it. 4601 46022000-12-07 Jakub Jelinek <jakub@redhat.com> 4603 4604 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. 4605 46062000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> 4607 4608 * decl2.c (lang_decode_option): Handle -Wformat-security. 4609 46102000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4611 4612 * pt.c (verify_class_unification): New function. 4613 (get_class_bindings): Use it. 4614 (try_class_unification): Tidy. 4615 (unify): Handle when argument of a template-id is not 4616 template parameter dependent. 4617 (template_args_equal): Handle when TREE_CODE's do not match. 4618 46192000-12-06 Alexandre Oliva <aoliva@redhat.com> 4620 4621 * lang-specs.h (c++): When invoking the stand-alone preprocessor 4622 for -save-temps, pass all relevant -Defines to it, and then don't 4623 pass them to cc1plus. 4624 46252000-12-05 Will Cohen <wcohen@redhat.com> 4626 4627 * decl.c (finish_case_label): Cleared 4628 more_cleanups_ok in surrounding function scopes. 4629 (define_label): Likewise. 4630 46312000-12-05 Nathan Sidwell <nathan@codesourcery.com> 4632 4633 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document. 4634 (get_matching_virtual): Remove. 4635 (look_for_overrides): Declare new function. 4636 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or 4637 DECL_VINDEX here. 4638 * class.c (check_for_override): Move base class iteration code 4639 to look_for_overrides. 4640 * search.c (next_baselink): Remove. 4641 (get_virtuals_named_this): Remove. 4642 (get_virtual_destructor): Remove. 4643 (tree_has_any_destructors_p): Remove. 4644 (struct gvnt_info): Remove. 4645 (check_final_overrider): Remove `virtual' from error messages. 4646 (get_matching_virtuals): Remove. Move functionality to ... 4647 (look_for_overrides): ... here, and ... 4648 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found 4649 to be overriding. 4650 46512000-12-05 Nathan Sidwell <nathan@codesourcery.com> 4652 4653 * typeck.c (get_delta_difference): If via a virtual base, 4654 return zero. 4655 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no 4656 adjustment. 4657 46582000-12-04 Richard Henderson <rth@redhat.com> 4659 4660 * error.c (dump_tree): Use output_add_string not OB_PUTS. 4661 46622000-12-04 Jason Merrill <jason@redhat.com> 4663 4664 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". 4665 (write_builtin_type): Pass intSI_type_node and the like through 4666 type_for_mode. 4667 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. 4668 Pass intSI_type_node and the like through type_for_mode. 4669 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. 4670 * pt.c (tsubst, unify): Likewise. 4671 * tree.c (walk_tree): Likewise. 4672 * error.c (dump_type): Likewise. 4673 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. 4674 4675 * Make-lang.in: Tweak top comment for emacs. 4676 (cp/TAGS): Restore. 4677 4678 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. 4679 4680 * class.c (clone_function_decl): Robustify. 4681 46822000-12-04 Michael Matz <matzmich@cs.tu-berlin.de> 4683 4684 * decl.c (store_bindings): Only search in the non modified 4685 old_bindings for duplicates. 4686 46872000-12-04 Nathan Sidwell <nathan@codesourcery.com> 4688 4689 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not 4690 TYPE_POLYMORPHIC_P. 4691 4692 * typeck.c (build_static_cast): Remove unused variable. 4693 46942000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4695 4696 * pt.c: Fix typo in comment. 4697 46982000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 4699 4700 * decl2.c (warn_format): Remove definition. 4701 (lang_decode_option): Handle -Wformat-nonliteral, 4702 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat. 4703 47042000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 4705 4706 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. 4707 (init_decl_processing): Don't create string_type_node, 4708 const_string_type_node, wint_type_node, intmax_type_node, 4709 uintmax_type_node, default_function_type, ptrdiff_type_node and 4710 unsigned_ptrdiff_type_node. Adjust position of call to 4711 c_common_nodes_and_builtins. 4712 (identifier_global_value): New function. 4713 47142000-12-01 Nathan Sidwell <nathan@codesourcery.com> 4715 4716 * call.c (standard_conversion): Reject pointer to member 4717 conversions from ambiguous, inaccessible or virtual bases. 4718 * typeck.c (build_static_cast): Don't check pointers to members 4719 specially. 4720 47212000-11-30 Nathan Sidwell <nathan@codesourcery.com> 4722 4723 * method.c (do_build_copy_constructor): Preserve cv 4724 qualifications when accessing source object members. 4725 (do_build_assign_ref): Likewise. Remove separate diagnostics for 4726 unnamed fields. 4727 47282000-11-30 Nathan Sidwell <nathan@codesourcery.com> 4729 4730 * method.c (do_build_assign_ref): Construct appropriately 4731 CV-qualified base reference. Don't allow const casts in base 4732 conversion. 4733 47342000-11-30 Nathan Sidwell <nathan@codesourcery.com> 4735 4736 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on 4737 incomplete return type. 4738 47392000-11-28 Nathan Sidwell <nathan@codesourcery.com> 4740 4741 * parse.y (base_class.1): Produce a _TYPE not a _DECL. 4742 * semantics.c (finish_base_specifier): Accept a _TYPE not a 4743 _DECL. 4744 47452000-11-28 Nathan Sidwell <nathan@codesourcery.com> 4746 4747 * spew.c (yyerror): Cope if yylval.ttype is NULL. 4748 47492000-11-28 Nathan Sidwell <nathan@codesourcery.com> 4750 4751 * decl.c (grokdeclarator): Diagnose undefined template contexts. 4752 47532000-11-28 Nathan Sidwell <nathan@codesourcery.com> 4754 4755 * decl.c (grokdeclarator): Do type access control on friend 4756 class. 4757 47582000-11-27 Nathan Sidwell <nathan@codesourcery.com> 4759 4760 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by 4761 bison parser ickiness. 4762 * pt.c (tsubst_friend_function): Enter namespace scope when 4763 tsubsting the function name. 4764 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality. 4765 47662000-11-27 Nathan Sidwell <nathan@codesourcery.com> 4767 4768 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo. 4769 * cvt.c (cp_convert_to_pointer): Add force parameter. 4770 Allow conversions via virtual base if forced. 4771 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer. 4772 (ocp_convert): Likewise. 4773 * search.c (binfo_from_vbase): Return the virtual base's binfo. 4774 * typeck.c (get_delta_difference): Adjust handling of virtual 4775 bases. 4776 47772000-11-26 Mark Mitchell <mark@codesourcery.com> 4778 4779 * tree.c (struct list_hash): Remove. 4780 (list_hash_table): Make it be an htab. 4781 (struct list_proxy): New type. 4782 (list_hash_eq): New function. 4783 (list_hash_pieces): Renamed from ... 4784 (list_hash): ... this. 4785 (list_hash_lookup): Remove. 4786 (list_hash_add): Remove. 4787 (hash_tree_cons): Use the generic hashtable. 4788 (mark_list_hash): Remove. 4789 (init_tree): Create the hashtable. 4790 47912000-11-25 Joseph S. Myers <jsm28@cam.ac.uk> 4792 4793 * method.c (build_mangled_C9x_name): Rename to 4794 build_mangled_C99_name. Change C9X references in comments to 4795 refer to C99. 4796 47972000-11-24 Nathan Sidwell <nathan@codesourcery.com> 4798 4799 * parse.y (unary_expr): Move VA_ARG from here ... 4800 (primary): ... to here. 4801 48022000-11-24 Nathan Sidwell <nathan@codesourcery.com> 4803 4804 * semantics.c (finish_id_expr): If type is error_mark, return 4805 error_mark. 4806 48072000-11-23 Nathan Sidwell <nathan@codesourcery.com> 4808 4809 * pt.c (lookup_template_class): Simplify loop exit constructs. 4810 Cope when there is no partial instantiation of a template 4811 template member. 4812 4813Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com> 4814 4815 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). 4816 48172000-11-22 Mark Mitchell <mark@codesourcery.com> 4818 4819 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op' 4820 prefix. 4821 4822 * pt.c (do_decl_instantiate): Explicitly clone constructors and 4823 destructors that haven't already been cloned. 4824 48252000-11-20 Richard Henderson <rth@redhat.com> 4826 4827 * parse.y (yyparse_1): Rename the parser entry point. 4828 48292000-11-20 Alex Samuel <samuel@codesourcery.com> 4830 4831 * mangle.c (write_name): Use <unscoped-name> for names directly in 4832 function scope. 4833 (write_unscoped_name): Accept names directly in function scope. 4834 48352000-11-20 Nathan Sidwell <nathan@codesourcery.com> 4836 4837 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. 4838 * parse.y (extdef): Add EXPORT reduction. 4839 * spew.c (yylex): Don't skip export here. 4840 48412000-11-19 Mark Mitchell <mark@codesourcery.com> 4842 4843 * decl.c (init_decl_processing): Correct name of pure virtual 4844 function under the new ABI. 4845 * rtti.c (throw_bad_cast): Likewise, for bad cast function. 4846 (throw_bad_typeid): Likewise for bad typeid function. 4847 48482000-11-18 Mark Mitchell <mark@codesourcery.com> 4849 4850 * decl.c (grokparms): Don't even function types of `void' type, 4851 either. 4852 * mangle.c (write_type): Don't crash when confronted with the 4853 error_mark_node. 4854 4855 * decl.c (grokparms): Don't create parameters of `void' type. 4856 48572000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 4858 4859 * lex.c (mark_impl_file_chain): Delete. 4860 (init_parse): Remove call to ggc_add_string_root. No need to 4861 ggc_strdup a string constant. Do not add impl_file_chain to GC 4862 roots. 4863 (handle_pragma_implementation): No need to ggc_strdup main_filename. 4864 48652000-11-17 Nathan Sidwell <nathan@codesourcery.com> 4866 4867 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type. 4868 48692000-11-17 Nathan Sidwell <nathan@codesourcery.com> 4870 4871 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro. 4872 * decl.c (grokdeclarator): Don't reject void parms here. 4873 (require_complete_types_for_parms): Simplify, use 4874 complete_type_or_else. 4875 (grokparms): Remove bitrot. Remove funcdef parm. 4876 Deal with ellipsis parm lists here. 4877 * semantics.c (finish_parmlist): Don't append void_list_node 4878 here. Set PARMLIST_ELLIPSIS_P. 4879 48802000-11-17 Nathan Sidwell <nathan@codesourcery.com> 4881 4882 * typeck2.c (incomplete_type_error): Reorganise to avoid 4883 excessive diagnostics. 4884 48852000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 4886 4887 * lex.c (struct impl_files, internal_filename): Constify a char *. 4888 48892000-11-16 Mark Mitchell <mark@codesourcery.com> 4890 4891 * mangle.c (write_special_name_constructor): Don't generate 4892 assembler junk when confronted with an old-style constructor. 4893 (write_special_name_destructor): Likewise. 4894 (mangle_decl_string): Do it here instead. 4895 48962000-11-16 Nathan Sidwell <nathan@codesourcery.com> 4897 4898 * call.c (op_error): Make error messages clearer. 4899 49002000-11-15 Mark Mitchell <mark@codesourcery.com> 4901 4902 * decl.c (wrapup_globals_for_namespace): Don't mark things 4903 TREE_ASM_WRITTEN when they're not. 4904 49052000-11-15 Jason Merrill <jason@redhat.com> 4906 4907 * typeck2.c (friendly_abort): Uncount the error before handing 4908 off to fancy_abort. 4909 49102000-11-15 Nathan Sidwell <nathan@codesourcery.com> 4911 4912 * typeck.c (lookup_anon_field): Cope with qv qualifiers. 4913 49142000-11-14 Mark Mitchell <mark@codesourcery.com> 4915 4916 * class.c (build_vtbl_initializer): Fix typo in comment. 4917 * typeck.c (expr_sizeof): Don't crash on errors. 4918 49192000-11-14 Jim Wilson <wilson@redhat.com> 4920 4921 * lang-specs.h: Add %2 after %(cc1_options). 4922 49232000-11-14 Richard Henderson <rth@redhat.com> 4924 4925 * typeck.c (c_sizeof): Be strict about casting result value 4926 back to c_size_type_node. 4927 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise. 4928 49292000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 4930 4931 * typeck.c (build_unary_op): Use boolean_increment from 4932 c-common.c, moving the relevant code there. 4933 49342000-11-11 Jason Merrill <jason@redhat.com> 4935 4936 * typeck.c (mark_addressable): Don't call put_var_into_stack. 4937 4938 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics 4939 in inlines. 4940 49412000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4942 4943 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy. 4944 * lex.c (copy_lang_decl): Likewise. 4945 49462000-11-09 Mark Mitchell <mark@codesourcery.com> 4947 4948 * dump.c (cp_dump_tree): Don't dump function bodies here. 4949 4950 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 4951 (dump.o): Update dependency list. 4952 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove. 4953 (flag_dump_translation_unit): Likewise. 4954 (CP_TYPE_QUALS): Adjust definition. 4955 (DECL_C_BIT_FIELD): Remove. 4956 (SET_DECL_C_BIT_FIELD): Likewise. 4957 (CLEAR_DECL_C_BIT_FIELD): Likewise. 4958 (add_maybe_template): Likewise. 4959 (strip_array_types): Likewise. 4960 (dump_node_to_file): Likewise. 4961 (cp_dump_tree): New function. 4962 * decl.c (init_decl_processing): Set lang_dump_tree. 4963 * decl2.c (flag_dump_translation_unit): Remove. 4964 * dump.c: Move most of it to ../c-dump.c. 4965 (cp_dump_tree): New function. 4966 * pt.c (add_maybe_template): Remove. 4967 * typeck.c (strip_array_types): Likewise. 4968 49692000-11-07 Eric Christopher <echristo@redhat.com> 4970 4971 * decl.c (init_decl_processing): Change definition of 4972 __wchar_t to wchar_t. Remove artificial declaration of 4973 wchar_t. 4974 * lex.c: Change instances of __wchar_t to wchar_t. 4975 49762000-11-09 Nathan Sidwell <nathan@codesourcery.com> 4977 4978 * lex.c (do_identifier): Don't lookup_name for operators. 4979 * parse.y (operator): Save looking_for_typename. 4980 (unoperator): Restore it. 4981 * spew.c (frob_opname): Use nth_token for lookahead. 4982 49832000-11-08 Nathan Sidwell <nathan@codesourcery.com> 4984 4985 * decl.c (grok_op_properties): Always use coerce_new_type and 4986 coerce_delete_type. 4987 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve 4988 exception specification. Tidy up. 4989 (coerce_delete_type): Preserve exception specification. Tidy up. 4990 49912000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 4992 4993 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c 4994 (push_binding_level), error.c (cp_tree_printer), pt.c 4995 (process_partial_specialization, tsubst_template_arg_vector), 4996 search.c (lookup_member): Use memset () instead of bzero (). 4997 49982000-11-07 Nathan Sidwell <nathan@codesourcery.com> 4999 5000 * decl.c (build_ptrmemfunc_type): Allow error_mark_node. 5001 50022000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 5003 5004 * Make-lang.in (c++.distdir): Remove. 5005 50062000-11-04 Mark Mitchell <mark@codesourcery.com> 5007 5008 * decl2.c (do_nonmember_using_decl): Allow `extern "C"' 5009 declarations from different namespaces to be combined. 5010 50112000-11-03 Zack Weinberg <zack@wolery.stanford.edu> 5012 5013 * decl.c: Include tm_p.h. 5014 50152000-11-03 Joseph S. Myers <jsm28@cam.ac.uk> 5016 5017 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp (). 5018 50192000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> 5020 5021 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c 5022 (build_overload_value), repo.c (open_repo_file), xref.c 5023 (open_xref_file): Use strchr () and strrchr () instead of index () 5024 and rindex (). 5025 50262000-11-01 Bernd Schmidt <bernds@redhat.co.uk> 5027 5028 * call.c (build_over_call): Call fold on the CALL_EXPR. 5029 50302000-11-01 Gabriel Dos Reis <gdr@codesourcery.com> 5031 5032 * error.c (dump_template_decl): Separate template hearders with 5033 space not comma. 5034 50352000-10-31 Gabriel Dos Reis <gdr@codesourcery.com> 5036 5037 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace 5038 TS_* flags with corresponding TFF_*. Adjust prototypes of 5039 functions (which used to take a tree_string_flags) to take an int. 5040 5041 * cp-tree.h (enum tree_string_flags): Remove 5042 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, 5043 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, 5044 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 5045 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 5046 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, 5047 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. 5048 (type_as_string, decl_as_string, expr_as_string, 5049 context_as_string): Adjust prototype. 5050 5051 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER 5052 instead of TS_PLAIN. 5053 5054 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF 5055 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of 5056 plain `0'. 5057 50582000-10-30 Mark Mitchell <mark@codesourcery.com> 5059 5060 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. 5061 (linkage_kind): New enumeration. 5062 (decl_linkage): New function. 5063 * decl2.c (comdat_linkage): Extend comment. 5064 * error.c (dump_function_decl): Print the arguments used to 5065 instantiate a template, even when not printing the type of the 5066 function. 5067 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, 5068 not TREE_PUBLIC, to test for external linkage. 5069 * tree.c (decl_linkage): New function. 5070 50712000-10-28 Mark Mitchell <mark@codesourcery.com> 5072 5073 * pt.c (instantiate_decl): Always instantiate static data members 5074 initialized in-class. 5075 50762000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 5077 5078 * Make-lang.in: Move all build rules here from Makefile.in, 5079 adapt to new context. Wrap all rules that change the current 5080 directory in parentheses. Expunge all references to $(P). 5081 When one command depends on another and they're run all at 5082 once, use && to separate them, not ;. Add OUTPUT_OPTION to 5083 all object-file generation rules. Delete obsolete variables. 5084 5085 * Makefile.in: Delete. 5086 * config-lang.in: Delete outputs= line. 5087 50882000-10-26 Gabriel Dos Reis <gdr@codesourcery.com> 5089 5090 * error.c (dump_function_decl): Print no space between 5091 `ptr-operator' the `type-specifier' of the return type. 5092 (dump_type_prefix): Make sure we put space at the appropriate 5093 place. 5094 50952000-10-23 Jason Merrill <jason@redhat.com> 5096 5097 * call.c (equal_functions): Also call decls_match for extern "C" fns. 5098 50992000-10-22 Jason Merrill <jason@redhat.com> 5100 5101 * call.c (build_conditional_expr): Use ocp_convert to force 5102 rvalue conversion. 5103 51042000-10-22 Mark Mitchell <mark@codesourcery.com> 5105 5106 * call.c (standard_conversion): Use RVALUE_CONVs for all 5107 expressions that satisfy lvalue_p, not just those that satisfy 5108 real_lvalue_p. 5109 5110 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. 5111 5112 * typeck.c (c_sizeof): Return an expression of `size_t' type, 5113 not one with TYPE_IS_SIZETYPE set. 5114 (dubious_conversion_warnings): Remove special-case code. 5115 51162000-10-21 Geoffrey Keating <geoffk@cygnus.com> 5117 5118 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE. 5119 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. 5120 (dump_type_prefix): Print vector-of-int as 'int vector'. 5121 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. 5122 * tree.c (walk_tree): Handle VECTOR_TYPE. 5123 5124 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS. 5125 51262000-10-21 Jason Merrill <jason@redhat.com> 5127 5128 * parse.y (operator): Set got_object from got_scope. 5129 Set looking_for_typename. 5130 * decl.c (lookup_name_real): Clear val after setting from_obj. 5131 Reorganize diagnostic. 5132 51332000-10-20 Jason Merrill <jason@redhat.com> 5134 5135 * tree.c (walk_tree): Don't walk into default args. 5136 5137 * error.c (dump_expr): Use host_integerp. 5138 51392000-10-20 David Edelsohn <edelsohn@gnu.org> 5140 5141 * typeck2.c (abstract_virtuals_error): Use "because" instead of 5142 "since" in error message. 5143 5144Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5145 5146 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. 5147 51482000-10-20 Jeffrey Oldham <oldham@codesourcery.com> 5149 5150 * decl.c (revert_static_member_fn): Fixed typo. 5151 51522000-10-19 Mark Mitchell <mark@codesourcery.com> 5153 5154 * class.c (subobject_offset_fn): New type. 5155 (dfs_record_base_offsets): Remove. 5156 (record_base_offsets): Likewise. 5157 (dfs_search_base_offsets): Likewise. 5158 (record_subobject_offset): New function. 5159 (check_subobject_offset): Likewise. 5160 (walk_subobject_offsets): Likewise. 5161 (record_subobject_offsets): Likewise. 5162 (layout_conflict_p): Reimplement. 5163 (layout_nonempty_base_or_field): Correct handling of type 5164 conflicts during layout. 5165 (layout_empty_base): Likewise. 5166 (build_base_field): Adjust to handle new representation of empty 5167 base offset table. 5168 (build_base_fields): Likewise. 5169 (layout_virtual_bases): Likewise. 5170 (splay_tree_compare_integer_csts): New function. 5171 (layout_class_type): Use a splay_tree, rather than a varray, to 5172 represent the offsets of empty bases. 5173 5174 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL. 5175 * decl.c (select_decl): Don't return declarations that are 5176 DECL_ANTICIPATED. 5177 51782000-10-18 Mark Mitchell <mark@codesourcery.com> 5179 5180 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD. 5181 (fake_std_node): New macro. 5182 * decl.c (in_std): Rename to ... 5183 (in_fake_std): ... this. 5184 (flag_no_builtin): Remove. 5185 (flag_no_nonansi_builtin): Likewise. 5186 (walk_namespaces_r): Use fake_std_node. 5187 (push_namespace): Use std_identifier. 5188 (pop_namespace): Use in_fake_std. 5189 (lookup_name_real): Use fake_std_node. 5190 (init_decl_processing): When -fhonor-std, create the `std' 5191 namespace. Don't create a dummy fake_std_node in that case. 5192 Adjust call to c_common_nodes_and_builtins. Use std_identifier. 5193 (builtin_function): Put builtins whose names don't begin 5194 with `_' in the std namespace. 5195 * decl2.c (flag_no_builtin): Remove. 5196 (flag_no_nonansi_builtin): Likewise. 5197 (set_decl_namespace): Use fake_std_node. 5198 (validate_nonmember_using_decl): Likewise. 5199 (do_using_directive): Likewise. 5200 (handle_class_head): Likewise. 5201 * dump.c (dequeue_and_dump): Likewise. 5202 * except.c (init_exception_processing): Use std_identifier. 5203 * init.c (build_member_call): Use fake_std_node. 5204 * rtti.c (init_rtti_processing): Use std_identifier. 5205 52062000-10-17 Mark Mitchell <mark@codesourcery.com> 5207 5208 * cp-tree.h (back_end_hook): Remove declaration. 5209 * decl2.c (back_end_hook): Remove definition. 5210 5211 * dump.c (dequeue_and_dump): Dump TREE_USED. 5212 5213Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu> 5214 5215 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). 5216 52172000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 5218 5219 * decl.c (WINT_TYPE): Define. 5220 (init_decl_processing): Create types unsigned_ptrdiff_type_node, 5221 c_size_type_node, signed_size_type_node and wint_type_node. 5222 52232000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 5224 5225 * decl2.c (warn_missing_format_attribute): New variable. 5226 (lang_decode_option): Decode -Wmissing-format-attribute. 5227 52282000-10-16 Mark Mitchell <mark@codesourcery.com> 5229 5230 * typeck.c (qualify_type): Remove. 5231 (composite_pointer_type): Fix handling of conversions to `cv void*'. 5232 52332000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5234 5235 * Makefile.in (parse.c, parse.h): Fix think-o in last patch. 5236 52372000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5238 5239 * Makefile.in (parse.c, parse.h): Create atomically. 5240 52412000-10-12 Mark Mitchell <mark@codesourcery.com> 5242 5243 * class.c (current_obstack): Remove. 5244 * decl.c (ggc_p): Remove. 5245 (start_decl): Don't use decl_tree_cons. 5246 (grokdeclarator): Don't use build_decl_list. 5247 (start_function): Don't use decl_tree_cons. 5248 (finish_function): Don't mess with obstacks. 5249 * decl2.c (grok_x_components): Don't use build_decl_list. 5250 * lex.c (make_call_declarator): Don't call decl_tree_cons. 5251 (implicitly_declare_fn): Don't call build_decl_list. 5252 * parse.y (frob_specs): Don't call build_decl_list or 5253 decl_tree_cons. 5254 (expr_or_declarator_intern): Don't call decl_tree_cons. 5255 (primary): Don't call build_decl_list. 5256 (fcast_or_absdcl): Likewise. 5257 (typed_declspecs): Don't call decl_tree_cons. 5258 (reserved_declspecs): Don't call build_decl_list. 5259 (declmods): Likewise. 5260 (reserved_typespecquals): Likewise. 5261 (aggr): Likewise. 5262 (new_type_id): Likewise. 5263 (cv_qualifiers): Likewise. 5264 (after_type_declarator_intern): Likewise. 5265 (notype_declarator_intern): Likewise. 5266 (absdcl_intern): Likewise. 5267 (named_parm): Likewise. 5268 * pt.c (most_specialized_class): Likewise. 5269 * repo.c (temporary_obstack): Make it a structure, not a pointer. 5270 (init_repo): Initialize it. 5271 * search.c (current_obstack): Remove. 5272 * typeck2.c (add_exception_specifier): Don't call build_decl_list. 5273 52742000-10-09 Richard Henderson <rth@cygnus.com> 5275 5276 * Make-lang.in (CXX_EXTRA_HEADERS): Remove. 5277 (c++ language support bits for libgcc): Remove. 5278 (c++.clean): Remove cplib2.txt cleanup. 5279 * config-lang.in (headers, lib2funcs): Remove. 5280 5281 * exception.cc, new.cc, new1.cc, new2.cc: Remove files. 5282 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files. 5283 * inc/cxxabi.h, inc/exception, inc/new: Remove files. 5284 * inc/new.h, inc/typeinfo: Remove files. 5285 52862000-10-08 Joseph S. Myers <jsm28@cam.ac.uk> 5287 5288 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already 5289 defined. 5290 (init_decl_processing): Initialize intmax_type_node and 5291 uintmax_type_node. 5292 52932000-10-06 Richard Henderson <rth@cygnus.com> 5294 5295 * cp-tree.h (struct cp_language_function): Remove x_result_rtx. 5296 (original_result_rtx): Remove. 5297 * decl.c (save_function_data): Don't clear x_result_rtx. 5298 (mark_lang_function): Don't mark it either. 5299 * expr.c (fixup_result_decl): Remove. 5300 * semantics.c (genrtl_named_return_value): Frob the return decl 5301 before calling emit_local_var. 5302 (genrtl_finish_function): Don't call fixup_result_decl. 5303 Always emit the jump to return_label. 5304 53052000-10-06 Nathan Sidwell <nathan@codesourcery.com> 5306 5307 * pt.c (lookup_template_class): Set current access for enum. 5308 (tsubst_enum): Set file & line for enum decl. 5309 5310 * spew.c (yylex): Remove unused variable. 5311 53122000-10-05 Richard Henderson <rth@cygnus.com> 5313 5314 * semantics.c (genrtl_finish_function): Don't init or check 5315 can_reach_end; remove noreturn and return value checks. 5316 53172000-10-05 Tom Tromey <tromey@cygnus.com> 5318 5319 * init.c (build_java_class_ref): Use `build_static_name' with a 5320 suffix, not a prefix, to build the class object's name. 5321 53222000-10-05 Nathan Sidwell <nathan@codesourcery.com> 5323 5324 * cp-tree.h (access_kind): Fix comment typo. 5325 * decl2.c (grokfield): Fix diagnostic typo. 5326 * semantics.c (finish_template_type): Fix comment typo. 5327 (finish_qualified_object_call_expr): Likewise. 5328 53292000-10-05 Nathan Sidwell <nathan@codesourcery.com> 5330 5331 * pt.c (tsubst_expr, DECL_STMT case): Don't process if 5332 tsubsting fails. 5333 53342000-10-05 Nathan Sidwell <nathan@codesourcery.com> 5335 5336 * spew.c (frob_id): New static function. 5337 (frob_opname): Use it. 5338 (yylex): Use it. 5339 53402000-10-01 Mark Mitchell <mark@codesourcery.com> 5341 5342 * decl.c (lang_mark_false_label_stack): Remove. 5343 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared. 5344 53452000-09-30 Joseph S. Myers <jsm28@cam.ac.uk> 5346 5347 * gxxint.texi: Use @email for formatting email addresses. 5348 53492000-09-29 Gabriel Dos Reis <gdr@codesourcery.com> 5350 5351 * error.c: Remove direct obstack manipulation. Replace with 5352 output_buffer-based formatting. Adjust calls to removed macros. 5353 (obstack_chunk_alloc, obstack_chunk_free): Remove. 5354 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, 5355 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. 5356 53572000-09-24 Mark Mitchell <mark@codesourcery.com> 5358 5359 * ir.texi: Move to ../c-tree.texi. 5360 53612000-09-20 Jason Merrill <jason@redhat.com> 5362 5363 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P. 5364 53652000-09-21 Andreas Jaeger <aj@suse.de> 5366 5367 * errfn.c: Move declaration of cp_printer and cp_printers to ... 5368 * cp-tree.h: ... here. 5369 5370 * error.c: Remove declaration of cp_printer. 5371 53722000-09-20 Mark Mitchell <mark@codesourcery.com> 5373 5374 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. 5375 53762000-09-20 Hans-Peter Nilsson <hp@axis.com> 5377 5378 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and 5379 users. 5380 53812000-09-18 Mark Mitchell <mark@codesourcery.com> 5382 5383 * decl.c (start_function): Robustify. 5384 53852000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5386 5387 * cp-tree.h (check_function_format): Accept a `status' parameter. 5388 5389 * call.c, typeck.c: Updates calls to `check_function_format'. 5390 53912000-09-17 Geoffrey Keating <geoffk@cygnus.com> 5392 5393 * decl2.c (handle_class_head): Always push some scope even 5394 in the error case. 5395 53962000-09-16 Mark Mitchell <mark@codesourcery.com> 5397 5398 * cp-tree.h (struct cp_language_function): Remove 5399 x_scope_stmt_stack and name_declared. 5400 (current_scope_stmt_stack): Remove. 5401 (function_name_declared_p): New macro. 5402 (struct lang_decl_flags): Use c_lang_decl as a base class. 5403 (context): Remove. 5404 (struct lang_decl): Replace saved_tree with context. 5405 (DECL_FRIEND_CONTEXT): Adjust accordingly. 5406 (SET_DECL_FRIEND_CONTEXT): Likewise. 5407 (DECL_VIRTUAL_CONTEXT): Likewise. 5408 (DECL_SAVED_TREE): Remove. 5409 (C_DECLARED_LABEL_FLAG): Likewise. 5410 (cplus_expand_expr_stmt): Don't declare. 5411 (add_decl_stmt): Likewise. 5412 (add_scope_stmt): Likewise. 5413 * decl.c (mark_stmt_tree): Remove. 5414 (case_compare): Likewise. 5415 (finish_case_label): Use c_add_case_label. 5416 (init_decl_processing): Set more language-specific hooks. 5417 (build_enumerator): Fix typo in comment. 5418 (cplus_expand_expr_stmt): Remove. 5419 (mark_lang_function): Use mark_c_language_function. 5420 (lang_mark_tree): Use c_mark_lang_decl. 5421 * decl2.c: Change order of inclusion. 5422 * except.c: Likewise. 5423 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall 5424 back on c_expand_expr. 5425 * friend.c: Include expr.h. 5426 * init.c: Change order of inclusion. 5427 * Makefile.in: Update dependencies. 5428 * lex.h (free_lang_decl_chain): Remove. 5429 * optimize.c (maybe_clone_body): Use function_name_declared_p. 5430 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if 5431 it doesn't exist. 5432 (instantiate_decl): Use function_name_declared_p. 5433 * semantics.c (lang_expand_expr_stmt): Remove. 5434 (set_current_function_name_declared): Likewise. 5435 (current_function_name_declared): Likewise. 5436 (begin_compound_stmt): Use function_name_declared_p. 5437 (add_decl_stmt): Remove. 5438 (setup_vtbl_ptr): Use function_name_declared_p. 5439 (add_scope_stmt): Remove. 5440 (current_scope_stmt_stack): New function. 5441 (cp_expand_stmt): Don't handle SCOPE_STMTs. 5442 (expand_body): Use function_name_declared_p. 5443 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. 5444 * typeck.c: Change order of includes. 5445 (convert_sequence): Remove. 5446 54472000-09-14 Joseph S. Myers <jsm28@cam.ac.uk> 5448 5449 * lex.c (reswords): Add _Complex. 5450 5451Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5452 5453 * Make-lang.in (cplib2.txt): Depend on cp/Makefile. 5454 54552000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> 5456 5457 * init.c (begin_init_stmts): Don't use // comments. 5458 54592000-09-12 Jason Merrill <jason@redhat.com> 5460 5461 * decl.c (maybe_deduce_size_from_array_init): Set do_default for 5462 all non-extern arrays. 5463 5464 * decl.c (grokdeclarator): Complain about 'friend T' for implicit 5465 typenames, too. Downgrade complaint to pedwarn. 5466 (xref_tag): Warn about surprising behavior of 'friend struct T'. 5467 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for 5468 'class This::Inherited'. 5469 54702000-09-12 Mark Mitchell <mark@codesourcery.com> 5471 5472 * decl.c (finish_case_label): Given the LABEL_DECL a 5473 DECL_CONTEXT. 5474 54752000-09-12 Gabriel Dos Reis <gdr@codesourcery.com> 5476 5477 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, 5478 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, 5479 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 5480 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 5481 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): 5482 New macros. 5483 (sorry_for_unsupported_tree, print_scope_operator, 5484 print_left_paren, print_right_paren, print_left_bracket, 5485 print_right_bracket, print_whitespace): Likewise. 5486 (aggr_variety): Rename to class_key_or_enum. 5487 (print_type): Rename to print_type_id. 5488 (print_type_specifier_seq, print_simple_type_specifier, 5489 print_elaborated_type_specifier, 5490 print_rest_of_abstract_declarator, 5491 print_parameter_declaration_clause, print_exception_specification, 5492 print_nested_name_specifier, print_template_id, 5493 typedef_original_name, print_template_argument_list_start, 5494 print_template_argument_list_end): New functions. 5495 54962000-09-11 Gabriel Dos Reis <gdr@codesourcery.com> 5497 5498 * ir.texi: Add more documentation. 5499 55002000-09-11 Mark Mitchell <mark@codesourcery.com> 5501 5502 * cp-tree.h (struct saved_scope): Remove x_function_parms. 5503 (current_function_parms): Don't define. 5504 (struct cp_language_function): Remove parms_stored. 5505 (current_function_just_assigned_this): Don't define. 5506 (current_function_parms_stored): Likewise. 5507 (static_ctors): Declare. 5508 (static_dtors): Likewise. 5509 (SF_EXPAND): Don't define. 5510 (expand_start_early_try_stmts): Remove declaration. 5511 (store_parm_decls): Likewise. 5512 * decl.c (static_ctors): Don't declare. 5513 (static_dtors): Likewise. 5514 (struct binding_level): Remove this_block. 5515 (poplevel): Remove dead code. 5516 (set_block): Likewise. 5517 (mark_binding_level): Don't mark this_block. 5518 (mark_saved_scope): Don't mark x_function_parms. 5519 (init_decl_processing): Don't add current_function_parms as a GC 5520 root. 5521 (check_function_type): Change prototype. 5522 (start_function): Remove RTL-generation code. 5523 (expand_start_early_try_stmts): Remove. 5524 (store_parm_decls): Give it internal linkage. Remove 5525 RTL-generation code. 5526 (finish_function): Remove RTL-generation code. 5527 * decl2.c (static_ctors): Fix formatting. 5528 (static_dtors): Likewise. 5529 * method.c (use_thunk): Don't call store_parm_decls. 5530 (synthesize_method): Likewise. 5531 * optimize.c (maybe_clone_body): Likewise. 5532 * parse.y (fn.def2): Likewise. 5533 (.set_base_init): Likewise. 5534 (nodecls): Likewise. 5535 * pt.c (instantiate_decl): Likewise. 5536 * rtti.c (synthesize_tinfo_fn): Likewise. 5537 * semantics.c (genrtl_try_block): Simplify. 5538 (expand_body): Use genrtl_start_function and 5539 genrtl_finish_function. 5540 (genrtl_start_function): New function. 5541 (genrtl_finish_function): Likewise. 5542 55432000-09-11 Nathan Sidwell <nathan@codesourcery.com> 5544 5545 * error.c (cp_tree_printer, case 'P'): Append break. 5546 55472000-09-11 Nathan Sidwell <nathan@codesourcery.com> 5548 5549 * cp-tree.h (frob_opname): Declare. 5550 * parse.y (saved_scopes): New static variable. 5551 (cp_parse_init): Adjust. 5552 (do_id): If lastiddecl is NULL, do do_identifier. 5553 (operator): Save scope information. 5554 (unoperator): New reduction. Restore scope information. 5555 (operator_name): Append unoperator. Call frob_opname. 5556 * spew.c (frob_opname): Define. 5557 55582000-09-10 Zack Weinberg <zack@wolery.cumb.org> 5559 5560 * decl.c, rtti.c: Include defaults.h if not already included. 5561 Don't define the *_TYPE_SIZE macros. 5562 55632000-09-09 Mark Mitchell <mark@codesourcery.com> 5564 5565 * cp-tree.h (push_switch): Change prototype. 5566 (check_cp_case_value): Remove declaration. 5567 (decl_constant_value): Likewise. 5568 * decl.c (struct cp_switch): Add switch_stmt and cases. 5569 (case_compare): New function. 5570 (push_switch): Set switch_stmt. Initialize cases. 5571 (pop_switch): Clean up cases. 5572 (define_case_label): Rename to ... 5573 (finish_case_label): ... this. Do semantic analysis for case 5574 labels here. 5575 (start_function): Correct comment. 5576 * decl2.c (check_cp_case_value): Remove. 5577 * expr.c (do_case): Remove. 5578 * pt.c (tsubst_expr): Adjust call to finish_case_label. 5579 * semantics.c (genrtl_do_poplevel): Remove declaration. 5580 (RECHAIN_STMTS): Remove. 5581 (finish_break_stmt): Use build_break_stmt. 5582 (finish_continue_stmt): Use build_continue_stmt. 5583 (finish_switch_cond): Adjust condition here, rater than in 5584 c_expand_start_case. 5585 (finish_case_label): Remove. 5586 * typeck.c (c_expand_return): Remove. 5587 (c_expand_start_case): Likewise. 5588 55892000-09-07 Gabriel Dos Reis <gdr@codesourcery.com> 5590 5591 * ir.texi: Document type nodes. 5592 55932000-09-06 Mark Mitchell <mark@codesourcery.com> 5594 5595 * cp-tree.h (init_cp_semantics): Declare. 5596 (genrtl_try_block): Don't declare. 5597 (genrtl_handler): Likewise. 5598 (genrtl_catch_block): Likewise. 5599 (genrtl_ctor_stmt): Likewise. 5600 (genrtl_subobject): Likewise. 5601 (genrtl_do_poplevel): Likewise. 5602 (genrtl_named_return_value): Likewise. 5603 * lex.c (init_parse): Call init_cp_semantics. 5604 * semantics.c (genrtl_try_block): Give it internal linkage. 5605 (genrtl_handler): Likewise. 5606 (genrtl_catch_block): Likewise. 5607 (genrtl_ctor_stmt): Likewise. 5608 (genrtl_subobject): Likewise. 5609 (genrtl_do_poplevel): Likewise. 5610 (genrtl_named_return_value): Likewise. 5611 (lang_expand_stmt): Rename to ... 5612 (cp_expand_stmt): ... this. Only handle C++-specific nodes. 5613 (init_cp_semantics): Define. 5614 5615 * decl.c (initialize_local_var): Remove RTL-generating code. 5616 * semantics.c (genrtl_try_block): Fix formatting. 5617 5618 Move statement-tree facilities from C++ to C front-end. 5619 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. 5620 (void_zero_node): Remove. 5621 (stmt_tree): Likewise. 5622 (scope_chain): Adjust. 5623 (language_function): Rename to cp_language_function. 5624 (cp_function_chain): Adjust. 5625 (current_stmt_tree): Remove. 5626 (last_tree): Likewise. 5627 (last_expr_type): Likewise. 5628 (struct lang_decl): Adjust. 5629 (STMT_IS_FULL_EXPR_P): Remove. 5630 (add_tree): Remove. 5631 (begin_stmt_tree): Likewise. 5632 (finish_stmt_tree): Likewise. 5633 (walk_tree_fn): Likewise. 5634 (walk_stmt_tree): Likewise. 5635 * class.c (finish_struct): Replace use of add_tree with add_stmt. 5636 * decl.c (mark_stmt_tree): Adjust type. 5637 (init_decl_processing): Don't build void_zero_node. 5638 (initialize_local_var): Adjust usage of current_stmt_tree. 5639 (finish_enum): Use add_stmt, not add_tree. 5640 (save_function_data): Adjust use of language_function. 5641 (finish_constructor_body): Use add_stmt, not add_tree. 5642 (finish_destructor_body): Likewise. 5643 (push_cp_function_context): Adjust use of language_function. 5644 (pop_cp_function_context): Likewise. 5645 (mark_lang_function): Likewise. 5646 (mark_cp_function_context): Likewise. 5647 * init.c (build_aggr_init): Adjust use of current_stmt_tree. 5648 (build_vec_init): Likewise. 5649 * semantics.c (SET_LAST_STMT): Remove. 5650 (RECHAIN_STMTS): Don't use it. 5651 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. 5652 (current_stmt_tree): Define. 5653 (add_tree): Remove. 5654 (finish_goto_stmt): Use add_stmt, not add_tree. 5655 (finish_expr_stmt): Likewise. 5656 (begin_if_stmt): Likewise. 5657 (finish_then_clause): Likewise. 5658 (begin_while_stmt): Likewise. 5659 (begin_do_stmt): Likewise. 5660 (finish_return_stmt): Likewise. 5661 (begin_for_stmt): Likewise. 5662 (finish_break_stmt): Likewise. 5663 (finish_continue_stmt): Likewise. 5664 (begin_switch_stmt): Likewise. 5665 (finish_case_label): Likewise. 5666 (begin_try_block): Likewise. 5667 (begin_function_try_block): Likewise. 5668 (begin_handler): Likewise. 5669 (begin_catch_block): Likewise. 5670 (begin_compound_stmt): Likewise. 5671 (begin_asm_stmt): Likewise. 5672 (finish_asm_stmt): Likewise. 5673 (finish_label_stmt): Likewise. 5674 (add_decl_stmt): Likewise. 5675 (finish_subobject): Likewise. 5676 (finish_decl_cleanup): Likewise. 5677 (finish_named_return_value): Likewise. 5678 (setup_vtbl_ptr): Likewise. 5679 (add_scope_stmt): Likewise. 5680 (finish_stmt_expr): Likewise. 5681 (prune_unused_decls): Remove. 5682 (begin_stmt_tree): Likewise. 5683 (finish_stmt_tree): Likewise. 5684 (prep_stmt): Adjust use of current_stmt_tree. 5685 (lang_expand_stmt): Likewise. 5686 * tree.c (statement_code_p): Remove. 5687 (cp_statement_code_p): New function. 5688 (walk_stmt_tree): Remove. 5689 (init_tree): Set lang_statement_code_p. 5690 56912000-09-06 Zack Weinberg <zack@wolery.cumb.org> 5692 5693 Integrated preprocessor. 5694 5695 * Make-lang.in, Makefile.in: Remove all references to input.c, 5696 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. 5697 * gxx.gperf, hash.h, input.c: Delete. 5698 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is 5699 initialized properly. 5700 5701 * class.c (fixup_pending_inline): Take a tree, not a 5702 struct pending_inline *. All callers changed. 5703 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, 5704 RID_PROTECTED entries in ridpointers[] array here. 5705 * decl.c (duplicate_decls): Do not refer to struct 5706 pending_inline. 5707 (record_builtin_type, init_decl_processing): Use RID_MAX not 5708 CP_RID_MAX. 5709 (grokdeclarator): Use C_IS_RESERVED_WORD. 5710 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of 5711 cpplib. 5712 (grok_x_components): Do not inspect pending_inlines chain. 5713 5714 * cp-tree.h (struct lang_identifier): Add rid_code entry. 5715 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. 5716 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. 5717 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, 5718 TIME_IDENTIFIER_FILEINFO): Kill. 5719 Update prototypes. 5720 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a 5721 single 32-bit word. 5722 * parse.y: Call do_pending_inlines unconditionally. 5723 reinit_parse_for_method is now snarf_method. fn.defpen is no 5724 longer necessary. Remove unnecessary <itype> annotation on 5725 SCOPE. Do not refer to end_of_file or struct pending_inline. 5726 * semantics.c (begin_inline_definitions): Call 5727 do_pending_inlines unconditionally. 5728 5729 * lex.c: Remove all code now shared with C front end. 5730 Initialize cpplib properly if USE_CPPLIB. Put reserved words 5731 into the get_identifier table. Rewrite pragma handling to 5732 work with the registry. Move code to save tokens for later 5733 processing to spew.c. 5734 5735 * spew.c: Rewrite everything in terms of token streams instead 5736 of text. Move routines here from lex.c / input.c as 5737 appropriate. GC-mark trees hanging off the pending inlines 5738 chain. 5739 57402000-09-06 Mark Mitchell <mark@codesourcery.com> 5741 5742 * NEWS: Mention that the named return value extension has been 5743 deprecated. 5744 * cp-tree.h (original_result_rtx): Define. 5745 (TREE_REFERENCE_EXPR): Remove. 5746 (DECL_VPARENT): Likewise. 5747 (pushdecl_nonclass_level): Likewise. 5748 (store_return_init): Likewise. 5749 (reinit_lang_specific): Likewise. 5750 (genrtl_named_return_value): Change prototype. 5751 * decl.c (original_result_rtx): Remove. 5752 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. 5753 Do not generate RTL for local variables here. 5754 (store_return_init): Remove. 5755 * semantics.c (genrtl_named_return_value): Simplify. Fold in 5756 store_return_init. 5757 (finish_named_return_value): Adjust accordingly. Warn that this 5758 extension is deprecated. 5759 (lang_expand_stmt): Adjust call to genrtl_named_return_value. 5760 57612000-09-06 Nathan Sidwell <nathan@codesourcery.com> 5762 5763 * pt.c (type_unification_real): Replace switch with if. 5764 (unify): Tsubst non-type parms before comparing. 5765 57662000-09-06 Nathan Sidwell <nathan@codesourcery.com> 5767 5768 * error.c (dump_typename): New function, broken out of ... 5769 (dump_type): ... here. Use it. 5770 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. 5771 57722000-09-06 Nathan Sidwell <nathan@codesourcery.com> 5773 5774 * init.c (build_offset_ref): Deal with namespace scoped 5775 TEMPLATE_ID_EXPRs. 5776 57772000-09-06 Nathan Sidwell <nathan@codesourcery.com> 5778 5779 * class.c (resolve_address_of_overloaded_function): Add 5780 explanation message. 5781 * decl.c (define_case_label): Reformat explanation. 5782 * decl2.c (finish_static_data_member_decl): Likewise. 5783 (grokfield): Likewise. 5784 * friend.c (do_friend): Likewise. 5785 57862000-09-05 Zack Weinberg <zack@wolery.cumb.org> 5787 5788 * tree.c (walk_tree): Expose tail recursion. 5789 (walk_stmt_tree): New function. 5790 * cp-tree.h: Prototype walk_stmt_tree. 5791 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not 5792 the BLOCKs directly. If a BLOCK has no variables after 5793 pruning, discard it. 5794 (finish_stmt_tree): Use walk_stmt_tree. No need to save and 5795 restore the line number. 5796 57972000-09-05 Mark Mitchell <mark@codesourcery.com> 5798 5799 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H. 5800 (pt.o): Remove dependency on HTAB_H. 5801 * cp-tree.h: Include hashtab.h. 5802 (walk_tree): Change prototype. 5803 (walk_tree_without_duplicates): New function. 5804 * decl.c (check_default_argument): Use it. 5805 * optimize.c (remap_decl): Adjust calls to walk_tree. 5806 (copy_body): Likewise. 5807 (expand_calls_inline): Likewise. 5808 (calls_setjmp_p): Use walk_tree_without_duplicates. 5809 * pt.c: Don't include hashtab.h. 5810 (for_each_template_parm): Use walk_tree_without_duplicates. 5811 * semantics.c (finish-stmt_tree): Likewise. 5812 (expand_body): Likewise. 5813 * tree.c (walk_tree): Add additional parameter. 5814 (walk_tree_without_duplicates): New function. 5815 (count_trees): Use it. 5816 (verify_stmt_tree): Adjust call to walk_tree. 5817 (find_tree): Use walk_tree_without_duplicates. 5818 (no_linkage_check): Likewise. 5819 (break_out_target_exprs): Adjust call to walk_tree. 5820 (cp_unsave): Likewise. 5821 58222000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5823 5824 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. 5825 (TEMPLATE_TEMPLATE_PARM): Adjust comment. 5826 * cp-tree.h (TYPE_BINFO): Adjust comment. 5827 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 5828 (TEMPLATE_TYPE_PARM_INDEX): Likewise. 5829 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 5830 (TYPE_TEMPLATE_INFO): Likewise. 5831 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. 5832 * class.c (push_nested_class): Likewise. 5833 * decl.c (lookup_name_real): Likewise. 5834 (grokdeclarator): Likewise. 5835 (grok_op_properties): Likewise. 5836 (xref_tag): Likewise. 5837 (xref_basetypes): Likewise. 5838 * decl2.c (constructor_name_full): Likewise. 5839 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. 5840 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 5841 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. 5842 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. 5843 (dump_type_suffix): Likewise. 5844 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM 5845 instead. 5846 (get_aggr_from_typedef): Likewise. 5847 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. 5848 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. 5849 (write_template_parm): Likewise. 5850 (write_template_template_parm): Check tree code instead of 5851 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 5852 * method.c (build_overload_nested_name): Add 5853 BOUND_TEMPLATE_TEMPLATE_PARM. 5854 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. 5855 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. 5856 * pt.c (convert_template_argument): Check tree code instead of 5857 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 5858 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. 5859 (for_each_template_parm): Adjust comment. 5860 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. 5861 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. 5862 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use 5863 template_args_equal to compare template template parameter cases. 5864 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. 5865 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM 5866 instead. 5867 * tree.c (copy_template_template_parm): Decide whether to create 5868 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. 5869 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. 5870 (copy_tree_r): Likewise. 5871 * typeck.c (comptypes): Likewise. Check tree code instead of 5872 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 5873 58742000-09-04 Mark Elbrecht <snowball3@bigfoot.com> 5875 5876 * decl.c (finish_function): Move the code for handling functions 5877 marked with the constructor and destructor attributes inside the 5878 expand_p block. 5879 58802000-09-04 Nathan Sidwell <nathan@codesourcery.com> 5881 5882 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR. 5883 58842000-09-04 Nathan Sidwell <nathan@codesourcery.com> 5885 5886 * pt.c (lookup_template_class): Remove abort. 5887 * tree.c (get_type_decl): Allow error_mark_node. 5888 58892000-09-04 Nathan Sidwell <nathan@codesourcery.com> 5890 5891 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside 5892 TEMPLATE_ID_EXPRs. 5893 58942000-09-03 Mark Mitchell <mark@codesourcery.com> 5895 5896 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change 5897 new ABI mangling. 5898 58992000-09-01 Nathan Sidwell <nathan@codesourcery.com> 5900 5901 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify 5902 union tag mismatch error reporting. 5903 59042000-09-01 Nathan Sidwell <nathan@codesourcery.com> 5905 5906 * call.c (build_scoped_method_call): Check it is not a namespace. 5907 59082000-08-30 Jason Merrill <jason@redhat.com> 5909 5910 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context. 5911 5912 * tree.c (bot_manip): Check TREE_CONSTANT rather than 5913 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and 5914 build_target_expr_with_type for the non-AGGR_INIT_EXPR case. 5915 5916 * decl.c (start_function): Always call make_function_rtl. 5917 59182000-08-29 Zack Weinberg <zack@wolery.cumb.org> 5919 5920 * semantics.c (prune_unused_decls): New function. 5921 (finish_stmt_tree): Call it via walk_tree. 5922 59232000-08-29 Zack Weinberg <zack@wolery.cumb.org> 5924 5925 * class.c (build_secondary_vtable): Constify a char *. 5926 * decl.c (init_decl_processing): Initialize function_id_node, 5927 pretty_function_id_node, and func_id_node. 5928 * input.c (struct input_source): Constify 'str'. 5929 (feed_input): Constify first argument. 5930 * mangle.c (write_identifier): Constify argument. 5931 * pt.c (mangle_class_name_for_template): Constify argument. 5932 59332000-08-29 Mark Mitchell <mark@codesourcery.com> 5934 5935 * typeck.c (mark_addressable): Remove code that pokes around in 5936 RTL. 5937 59382000-08-28 Jason Merrill <jason@redhat.com> 5939 5940 * lex.c (file_name_nondirectory): Move to toplev.c. 5941 5942 * cp-tree.h (LOCAL_CLASS_P): New macro. 5943 * class.c (finish_struct_1): Use it. 5944 59452000-08-27 Alex Samuel <samuel@codesourcery.com> 5946 5947 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo. 5948 (write_encoding): Pass another argument to write_name. 5949 (write_name): Add ignore_local_scope parameter. Fix handling of 5950 local names. 5951 (write_nested_name): Use write_unqualified_name. 5952 (write_prefix): Likewise. Skip out on FUNCTION_DECLs. 5953 (write_template_prefix): Use write_unqualified_name. 5954 (write_component): Remove. 5955 (write_local_name): Add parameter. Use direct local entity to 5956 discriminator calculation. 5957 (write_class_enum_type): Pass another argument to write_name. 5958 (write_template_template_arg): Likewise. 5959 (make_guard_variable): Likewise. 5960 59612000-08-27 Jason Merrill <jason@redhat.com> 5962 5963 * decl.c (pushdecl): Matching decls for local externs are found in 5964 the current level. Propagate linkage information from previous 5965 declarations. 5966 59672000-08-26 Gabriel Dos Reis <gdr@codesourcery.com> 5968 5969 * ir.texi (Expressions): Fix typo. 5970 59712000-08-25 Greg McGary <greg@mcgary.org> 5972 5973 * tree.c (init_tree): Use ARRAY_SIZE. 5974 59752000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 5976 5977 * error.c (cp_tree_printer): Rework. 5978 59792000-08-25 Mark Mitchell <mark@codesourcery.com> 5980 5981 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and 5982 dyn-string.o. 5983 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c. 5984 (cp-demangle.o): Remove target. 5985 (dyn-string.o): Likewise. 5986 5987 * decl.c (grokfndecl): Require that `main' return an `int'. 5988 * mangle.c (write_encoding): Don't mangle return types for 5989 conversion functions. 5990 59912000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 5992 5993 * error.c (tree_formatting_info): New data type. 5994 (tree_being_formatted): New macro. 5995 (tree_formatting_flags): Likewise. 5996 (put_whitespace): Likewise. 5997 (print_tree_identifier): Likewise. 5998 (print_identifier): Likewise. 5999 (cp_tree_printer, print_function_argument_list, print_declaration, 6000 print_expression, print_function_declaration, 6001 print_function_parameter, print_type, print_cv_qualifier): New 6002 functions. 6003 (init_error): Initialize lang_printer. 6004 60052000-08-24 Jason Merrill <jason@redhat.com> 6006 6007 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no 6008 adjustment necessary. 6009 60102000-08-24 Greg McGary <greg@mcgary.org> 6011 6012 * cp-tree.h (MAIN_NAME_P): Remove macro. 6013 60142000-08-24 Gabriel Dos Reis <gdr@codesourcery.com> 6015 6016 * error.c (print_instantiation_context): Don't forget to flush the 6017 buffer. 6018 60192000-08-23 Jason Merrill <jason@redhat.com> 6020 6021 * typeck.c (build_ptrmemfunc): Save the input pmf. 6022 6023 * method.c (process_modifiers): Use same_type_p. 6024 60252000-08-23 Mark Mitchell <mark@codesourcery.com> 6026 6027 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC. 6028 * mangle.c (write_function_type): Change prototype. 6029 (write_encoding): Don't mangle return types for 6030 constructors or destructors. 6031 (write_type): Adjust call to write_function_type. 6032 * pt.c (instantiate_template): Instantiate alternate entry points 6033 when instantiating the main function. 6034 60352000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 6036 6037 * error.c (cp_print_error_function): Don't use embedded '\n' in 6038 output_printf. 6039 60402000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 6041 6042 * decl.c (init_decl_processing): Remove bogus initialization. 6043 * error.c (lang_print_error_function): Restore here. 6044 (init_error): Initialize print_error_function. 6045 60462000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 6047 6048 * decl2.c (arg_assoc): Revert my 2000-08-11 change. 6049 60502000-08-22 Gabriel Dos Reis <gdr@codesourcery.com> 6051 6052 * Makefile.in (error.o): Depends on diagnostic.h 6053 6054 * cp-tree.h (problematic_instantiation_changed, 6055 record_last_problematic_instantiation, current_instantiation, 6056 print_instantiation_context): Declare. 6057 (maybe_print_template_context): Remove. 6058 6059 * decl.c (init_decl_processing): Set print_error_function to NULL. 6060 (lang_print_error_function): Remove, since we're using a new 6061 machinery. 6062 6063 * error.c: #include diagnostic.h 6064 (function_category): New function. 6065 (cp_diagnostic_starter): Likewise. 6066 (cp_diagnostic_finalizer): Likewise. 6067 (cp_print_error_function): Likewise. 6068 (maybe_print_instantiation_context): Likewise. 6069 (print_instantiation_full_context): Likewise. 6070 (print_instantiation_partial_context): Likewise. 6071 (print_instantiation_context): Define. 6072 (init_error): Initialize diagnostic pager and finalizer. 6073 6074 * pt.c (problematic_instantiation_changed): Define. 6075 (record_last_problematic_instantiation): Likewise. 6076 (current_instantiation): Likewise. 6077 (maybe_print_template_context): Remove. 6078 (print_template_context): Likewise. 6079 (current_tinst_level): Make static to reflect Brendan Kehoe's 6080 change of 1995-04-13. 6081 (push_tinst_level): Call print_instantiation_context. 6082 60832000-08-21 Nix <nix@esperi.demon.co.uk> 6084 6085 * lang-specs.h: Do not process -o or run the assembler if 6086 -fsyntax-only. 6087 60882000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> 6089 6090 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New 6091 variables. 6092 * decl2.c (lang_decode_option): Disable gettext attributes for 6093 -ansi. 6094 60952000-08-21 Gabriel Dos Reis <gdr@codesourcery.com> 6096 6097 * lex.c (lang_init_options): Default diagnostic message maximum 6098 length to 80, when line-wrapping. 6099 61002000-08-20 Mark Mitchell <mark@codesourcery.com> 6101 6102 * class.c (build_vtbl_initializer): Clear the entire 6103 vtbl_init_data. Start keeping track of the functions for which we 6104 have created vcall offsets here. 6105 (dfs_build_vcall_offset_vtbl_entries): Remove. 6106 (build_vcall_offset_vtbl_entries): Reimplement. 6107 (add_vcall_offset_vtbl_entries_r): New function. 6108 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for 6109 computing when vcall offsets are necessary. 6110 61112000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6112 6113 * decl.c (member_function_or_else): Use cp_error ... %T. 6114 (grokdeclarator): Likewise. 6115 (start_method): Likewise. 6116 * friend.c (make_friend_class): Use cp_pedwarn ... %T. 6117 61182000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6119 6120 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class 6121 TYPE_DECLs. 6122 61232000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6124 6125 * cp-tree.h (PTRMEM_OK_P): New macro. 6126 (itf_ptrmem_ok): New enumeration value. 6127 * class.c (resolve_address_of_overloaded_function): Add PTRMEM 6128 argument. Diagnose implicit pointer to member. 6129 (instantiate_type): Don't diagnose implicit pointer to member 6130 here. Pass itf_ptrmem_ok if ok. Adjust calls to 6131 resolve_address_of_overloaded_function. 6132 * init.c (build_offset_ref): Set PTRMEM_OK_P. 6133 (resolve_offset_ref): Don't diagnose implicit pointer to member here. 6134 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here. 6135 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P. 6136 (build_unary_op): Deal with single non-static member in 6137 microsoft-land. 6138 61392000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6140 6141 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE. 6142 61432000-08-18 Nathan Sidwell <nathan@codesourcery.com> 6144 6145 * cp-tree.h (enum_name_string): Remove prototype. 6146 (report_case_error): Remove prototype. 6147 * cp/typeck2.c (enum_name_string): Remove. 6148 (report_case_error): Remove. 6149 * error.c (dump_expr): Deal with enum values directly. 6150 Correctly negate integer constant. 6151 61522000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6153 6154 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare. 6155 (__cxa_vec_delete2, __cxa_vec_delete3): Declare. 6156 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement. 6157 (__cxa_vec_delete2, __cxa_vec_delete3): Implement. 6158 (__cxa_vec_new): Use __cxa_vec_new2. 6159 (__cxa_vec_delete): Use __cxa_vec_delete2. 6160 61612000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6162 6163 * vec.cc (__cxa_vec_new): Set "C" linkage. 6164 (__cxa_vec_ctor): Likewise. 6165 (__cxa_vec_cctor): Likewise. 6166 (__cxa_vec_dtor): Likewise. 6167 (__cxa_vec_delete): Likewise. 6168 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage. 6169 (__cxa_vec_ctor): Likewise. 6170 (__cxa_vec_cctor): Likewise. 6171 (__cxa_vec_dtor): Likewise. 6172 (__cxa_vec_delete): Likewise. 6173 61742000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6175 6176 * class.c (instantiate_type): Reinstate local variable 6177 deleted in previous change. 6178 6179 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not 6180 itf_no_attributes. 6181 61822000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6183 6184 * cp-tree.h (instantiate_type_flags): New enumeration. 6185 (instantiate_type): Change parameter. 6186 * class.c (instantiate_type): Adjust prototype. Adjust. 6187 * call.c (standard_conversion): Adjust instantiate_type call. 6188 (reference_binding): Likewise. 6189 (build_op_delete_call): Likewise. 6190 (convert_like_real): Likewise. 6191 * cvt.c (cp_convert_to_pointer): Likewise. 6192 (convert_to_reference): Likewise. 6193 * pt.c (convert_nontype_argument): Likewise. 6194 * typeck.c (build_binary_op): Likewise. 6195 (build_ptrmemfunc): Likewise. 6196 (convert_for_assignment): Likewise. 6197 61982000-08-17 Nathan Sidwell <nathan@codesourcery.com> 6199 6200 * cp-tree.h (CPTR_AGGR_TAG): New global tree node. 6201 (current_aggr): Define. 6202 * decl.c (grokdeclarator): Make sure a friend class is an 6203 elaborated type specifier. 6204 * parse.y (current_aggr): Remove static definition. 6205 (cp_parse_init): Adjust. 6206 (structsp): Clear and restore current_aggr. 6207 (component_decl_list): Clear current_aggr. 6208 6209 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the 6210 aggregate tag on the typename's context. 6211 6212 * pt.c (tsubst_friend_class): Return error_mark_node, if 6213 parms becomes NULL. 6214 (instantiate_class_template): Ignore error_mark_node friend types. 6215 62162000-08-14 Nathan Sidwell <nathan@codesourcery.com> 6217 6218 * cvt.c (warn_ref_binding): New static function, broken out of ... 6219 (convert_to_reference): ... here. Use it. 6220 62212000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 6222 6223 * parse.y (template_arg): Add rule for template qualified with 6224 global scope. 6225 62262000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 6227 6228 * decl2.c (add_function): Reorganize. 6229 (arg_assoc): Do not consider function template decls. 6230 62312000-08-11 Jason Merrill <jason@redhat.com> 6232 6233 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're 6234 looking inside. 6235 62362000-08-11 Nathan Sidwell <nathan@codesourcery.com> 6237 6238 * cp-tree.h (resolve_scope_to_name): Remove unused prototype. 6239 (lookup_nested_tag): Likewise. 6240 6241 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs 6242 can be produced. 6243 62442000-08-11 Nathan Sidwell <nathan@codesourcery.com> 6245 6246 * parse.y (named_complex_class_head_sans_basetype): Remove 6247 always true if. 6248 62492000-08-11 Nathan Sidwell <nathan@codesourcery.com> 6250 6251 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build 6252 explicit TEMPLATE_ID_EXPR args. 6253 (build_expr_from_tree, case CALL_EXPR): Likewise. 6254 62552000-08-11 Nathan Sidwell <nathan@codesourcery.com> 6256 6257 * decl.c (check_tag_decl): Diagnose typename's which don't 6258 declare anything. 6259 62602000-08-10 Nathan Sidwell <nathan@codesourcery.com> 6261 6262 * init.c (build_aggr_init): Reject bogus array initializers 6263 early. 6264 62652000-08-09 Nathan Sidwell <nathan@codesourcery.com> 6266 6267 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi 6268 runtime. 6269 * cp/tinfo.cc (__dynamic_cast): Likewise. 6270 * cp/inc/cxxabi.h (__dynamic_cast): Likewise. 6271 62722000-08-09 Nathan Sidwell <nathan@codesourcery.com> 6273 6274 * cvt.c (convert_to_pointer_force): Fix error message when 6275 attempting to cast from ambiguous base. 6276 62772000-08-08 Jason Merrill <jason@redhat.com> 6278 6279 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails. 6280 (tsubst_template_arg_vector): Likewise. 6281 6282 * decl2.c (build_anon_union_vars): Choose the largest field; don't 6283 assume that one will be as large as the union. 6284 62852000-08-07 Kazu Hirata <kazu@hxi.com> 6286 6287 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo. 6288 * decl.c (pop_labels): Likewise. 6289 62902000-08-04 Jeffrey Oldham <oldham@codesourcery.com> 6291 6292 * inc/cxxabi.h (__pbase_type_info): Changed member names to match 6293 specifications. 6294 (__pointer_to_member_type_info): Likewise. 6295 (__base_class_info): Likewise. 6296 (__class_type_info): Likewise. 6297 (__si_class_type_info): Likewise. 6298 (__vmi_class_type_info): Likewise. 6299 * tinfo.cc (__si_class_type_info::__do_find_public_src): 6300 Changed member names to match specifications. 6301 (__vmi_class_type_info::__do_find_public_src): Likewise. 6302 (__si_class_type_info::__do_dyncast): Likewise. 6303 (__vmi_class_type_info::__do_dyncast): Likewise. 6304 (__si_class_type_info::__do_upcast): Likewise. 6305 (__vmi_class_type_info::__do_upcast): Likewise. 6306 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise. 6307 (__pbase_type_info::__pointer_catch): Likewise. 6308 (__pointer_type_info::__pointer_catch): Likewise. 6309 (__pointer_to_member_type_info::__pointer_catch): Likewise. 6310 63112000-08-04 Zack Weinberg <zack@wolery.cumb.org> 6312 6313 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. 6314 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. 6315 (cc1plus): Link with $(BACKEND) and $(C_OBJS). 6316 63172000-08-04 Mark Mitchell <mark@codesourcery.com> 6318 6319 * cp-tree.h (add_method): Change prototype. 6320 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. 6321 Don't double the size of the method vector in the error case. 6322 (handle_using_decl): Adjust call to add_method. 6323 (add_implicitly_declared_members): Likewise. 6324 (clone_function_decl): Likewise. 6325 * decl2.c (check_classfn): Likewise. 6326 * semantics.c (finish_member_declaration): Likewise. 6327 63282000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> 6329 6330 * decl.c (flag_isoc94): New variable. 6331 63322000-08-02 Jason Merrill <jason@redhat.com> 6333 6334 * pt.c (do_type_instantiation): Add complain parm; don't complain 6335 if called recursively. 6336 * cp-tree.h, parse.y: Adjust. 6337 63382000-08-02 Zack Weinberg <zack@wolery.cumb.org> 6339 6340 * decl2.c: Silently ignore -Wstrict-prototypes; warn about 6341 -Wno-strict-prototypes. 6342 6343 * g++spec.c: Adjust type of second argument to 6344 lang_specific_driver, and update code as necessary. 6345 6346 * cp-tree.h: Don't prototype min_precision here. 6347 (my_friendly_assert): Cast expression to void. 6348 * semantics.c (do_poplevel): Initialize scope_stmts. 6349 63502000-08-02 Mark Mitchell <mark@codesourcery.com> 6351 6352 * cp-tree.h (DECL_NEEDED_P): Tweak. 6353 63542000-07-28 Jason Merrill <jason@redhat.com> 6355 6356 * lang-specs.h: Use %i in rule for .ii files. 6357 63582000-07-31 Zack Weinberg <zack@wolery.cumb.org> 6359 6360 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 6361 63622000-07-30 Mark Mitchell <mark@codesourcery.com> 6363 6364 Allow indirect primary bases. 6365 * cp-tree.h (struct lang_type): Remove vfield_parent. Add 6366 primary_base. 6367 (CLASSTYPE_VFIELD_PARENT): Remove. 6368 (CLASSTYPE_PRIMARY_BINFO): Reimplement. 6369 (BINFO_PRIMARY_BINFO): Remove. 6370 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. 6371 (BINFO_VBASE_PRIMARY_P): Likewise. 6372 (BINFO_PRIMARY_BASE_OF): New macro. 6373 (BINFO_INDIRECT_PRIMARY_P): Likewise. 6374 (get_primary_binfo): New function. 6375 * decl.c (lang_mark_tree): Make lang_type::primary_base. 6376 * class.c (vcall_offset_data_s): Rename to ... 6377 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, 6378 and add ctor_vtbl_p. 6379 (get_derived_offset): Use get_primary_binfo. 6380 (dfs_mark_primary_bases): Adjust handling of virtual primary 6381 bases. 6382 (mark_primary_bases): Likewise. 6383 (set_primary_base): Take a binfo, not an integer, as a 6384 representation of the primary base. 6385 (indirect_primary_base_p): Remove. 6386 (determine_primary_base): Adjust for indirect primary bases. 6387 (dfs_find_final_overrider): Fix typo in coment. 6388 (update_vtable_entry_for_fn): Use get_primary_binfo. 6389 (layout_nonempty_base_or_field): Tweak. 6390 (build_base_fields): Adjust for new primary base semantics. 6391 (dfs_propagate_binfo_offsets): Remove. 6392 (propagate_binfo_offsets): Rewrite. 6393 (dfs_set_offset_for_shared_vbases): Remove. 6394 (layout_virtual_bases): Don't use it. 6395 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new 6396 ABI. 6397 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not 6398 CLASSTYPE_VFIELD_PARENT. 6399 (dfs_get_primary_binfo): New function. 6400 (get_primary_binfo): Likewise. 6401 (dump_class_hierarchy_r): Tweak printing of primary bases. 6402 (build_vtbl_initializer): Fix typo in comments. Use 6403 vtbl_init_data. 6404 (build_vcall_and_vbase_vtbl_entries): Likewise. 6405 (build_vbaes_offset_vtbl_entries): Likewise. 6406 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of 6407 BV_VCALL_INDEX to handle indirect primary bases. 6408 (build_vcall_offset_vtbl_entries): Use vtbl_init_data. 6409 (build_rtti_vtbl_entries): Likewise. 6410 * search.c (get_shared_vbase_if_not_primary): Tweak. 6411 (find_vbase_instance): Likewise. 6412 (binfo_for_vtable): Simplify. 6413 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. 6414 (make_binfo): Make it have 11 entries. 6415 64162000-07-30 Alex Samuel <samuel@codesourcery.com> 6417 6418 * mangle.c (DECL_TEMPLATE_ID_P): Remove. 6419 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when 6420 ascertaining primaryness. 6421 (G): Remove template_args. 6422 (decl_is_template_id): New function. 6423 (write_encoding): Use decl_is_template_id. 6424 (write_name): Likewise. Handle type_decls. Get main variant of 6425 type decls. 6426 (write_nested_name): Likewise. 6427 (write_prefix): Likewise. 6428 (write_template_prefix): Likewise. 6429 (write_special_name_constructor): Remove defunct production from 6430 comment. 6431 (write_bare_function_type): Remove comment about absent parameter. 6432 (write_template_template_arg): Add missing grammar production to 6433 comment. 6434 64352000-07-27 Jason Merrill <jason@redhat.com> 6436 6437 * decl.c (duplicate_decls): If common_type produces a non-typedef 6438 type for a typedef, just use the old type. 6439 64402000-07-27 Mark Mitchell <mark@codesourcery.com> 6441 6442 * cp-tree.h (function_depth): Declare. 6443 (verify_stmt_tree): Likewise. 6444 (find_tree): Likewise. 6445 * decl.c (function_depth): Give it external linkage. 6446 * optimize.c (optimize_function): Increment and decrement it. 6447 * tree.c (verify_stmt_tree_r): New function. 6448 (verify_stmt_tree): Likewise. 6449 (find_tree_r): Likewise. 6450 (find_tree): Likewise. 6451 64522000-07-27 Jason Merrill <jason@redhat.com> 6453 6454 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use 6455 TYPE_PTRMEMFUNC_P. 6456 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. 6457 64582000-07-26 Mark Mitchell <mark@codesourcery.com> 6459 6460 * decl.c (start_cleanup_fn): Mark the function as `inline'. 6461 * decl2.c (get_guard): Call cp_finish_decl, not 6462 rest_of_decl_compilation, for local guards. 6463 * lex.c (do_identifier): Remove unused variable. 6464 6465Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 6466 6467 * parse.y: Add missing ';'. 6468 64692000-07-26 Mark Mitchell <mark@codesourcery.com> 6470 6471 * parse.y (empty_parms): Use `()', not `(...)', when in the scope 6472 of `extern "C++"'. 6473 64742000-07-25 Nathan Sidwell <nathan@codesourcery.com> 6475 6476 Kill strict_prototype. Backwards compatibility only for 6477 non NO_IMPLICIT_EXTERN_C systems. 6478 * cp-tree.h (flag_strict_prototype): Remove. 6479 (strict_prototype): Remove. 6480 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 6481 * decl.c (maybe_push_to_top_level): Adjust. 6482 (pop_from_top_level): Adjust. 6483 (decls_match): Only allow sloppy parm matching for ancient 6484 system headers. 6485 (init_decl_processing): Adjust. 6486 (grokdeclarator): Adjust. 6487 * decl2.c (flag_strict_prototype): Remove. 6488 (strict_prototype): Remove. 6489 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 6490 (lang_f_options): Remove "strict-prototype". 6491 (unsupported-options): Add "strict-prototype". 6492 * lex.c (do_identifier): Adjust. 6493 (do_scoped_id): Adjust. 6494 * parse.y (empty_parms): Adjust. 6495 * class.c (push_lang_context): Adjust. 6496 (pop_lang_context): Adjust. 6497 * typeck.c (comp_target_parms): Adjust. 6498 64992000-07-25 Nathan Sidwell <nathan@codesourcery.com> 6500 6501 * decl.c (poplevel): Deal with anonymous variables at for scope. 6502 (maybe_inject_for_scope_var): Likewise. 6503 65042000-07-25 Zack Weinberg <zack@wolery.cumb.org> 6505 6506 * decl.c: Remove all signal handling code, now done in toplev.c. 6507 65082000-07-23 Mark Mitchell <mark@codesourcery.com> 6509 6510 * decl.c (make_rtl_for_nonlocal_decl): Rework. 6511 6512 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set 6513 correctly. 6514 65152000-07-20 Zack Weinberg <zack@wolery.cumb.org> 6516 6517 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__. 6518 Define my_friendly_assert and my_friendly_abort as macros 6519 which may call friendly_abort. Prototype friendly abort, not 6520 my_friendly_abort or my_friendly_assert. 6521 * decl.c (signal_catch): Report the signal caught in the error 6522 message. Call fatal directly. 6523 * typeck2.c (ack, my_friendly_assert): Delete. 6524 (my_friendly_abort): Rename to friendly_abort. Expect file, 6525 line, and function parameters. Report the abort code, then 6526 call fancy_abort. Do not mask an abort if errors have 6527 already occurred. 6528 65292000-07-18 Nathan Sidwell <nathan@codesourcery.com> 6530 6531 * typeck.c (comp_target_parms): Remove obsolete parameter. 6532 (comp_target_types): Adjust. 6533 65342000-07-17 Jason Merrill <jason@redhat.com> 6535 6536 * typeck.c (mark_addressable): Never set TREE_USED. 6537 * call.c (build_call): Don't abort on calls to library functions 6538 that have been declared normally. 6539 6540 * typeck.c (build_binary_op): Fix grammar in warning. 6541 6542 * exception.cc (__eh_free): Fix prototype. 6543 6544 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR. 6545 6546 * decl.c (pushdecl): Handle seeing an OVERLOAD in 6547 IDENTIFIER_NAMESPACE_VALUE. 6548 65492000-07-16 Mark Mitchell <mark@codesourcery.com> 6550 6551 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation. 6552 * method.c (use_thunk): Correct handling of vcall offsets. 6553 65542000-07-14 Zack Weinberg <zack@wolery.cumb.org> 6555 6556 * .cvsignore: parse.h and parse.c have no cp- prefix. 6557 65582000-07-13 Mark Mitchell <mark@codesourcery.com> 6559 6560 * .cvsignore: New file. 6561 65622000-07-13 Zack Weinberg <zack@wolery.cumb.org> 6563 6564 * lang-specs.h: Use the new named specs. Remove unnecessary braces. 6565 65662000-07-12 Mark Mitchell <mark@codesourcery.com> 6567 6568 * Makefile.in ($(PARSE_H)): Depend directly on parse.y. 6569 * parse.c: Remove. 6570 * parse.h: Likewise. 6571 65722000-07-11 Mark Mitchell <mark@codesourcery.com> 6573 6574 * class.c (layout_class_type): Add pointers to virtual bases after 6575 base classes under the old ABI. 6576 65772000-07-10 Benjamin Chelf <chelf@codesourcery.com> 6578 6579 * semantics.c (finish_for_stmt): Remove call to emit_line_note. 6580 (finish_continue_stmt): Likewise. 6581 (begin_for_stmt): Remove call to note_level_for_for. 6582 (finish_goto_stmt): Change call from build_min_nt 6583 to build_stmt. 6584 (finish_expr_stmt): Likewise. 6585 (begin_if_stmt): Likewise. 6586 (begin_while_stmt): Likewise. 6587 (finish_while_stmt): Likewise. 6588 (finish_return_stmt): Likewise. 6589 (begin_for_stmt): Likewise. 6590 (finish_for_stmt): Likewise. 6591 (finish_break_stmt): Likewise. 6592 (begin_switch_stmt): Likewise. 6593 (finish_case_label): Likewise. 6594 (genrtl_try_block): Likewise. 6595 (begin_try_block): Likewise. 6596 (begin_handler): Likewise. 6597 (begin_compound_stmt): Likewise. 6598 (finish_asm_stmt): Likewise. 6599 (finish_label_stmt): Likewise. 6600 (add_decl_stmt): Likewise. 6601 (finish_subobject): Likewise. 6602 (finish_decl_cleanup): Likewise. 6603 (finish_named_return_value): Likewise. 6604 (setup_vtbl_ptr): Likewise. 6605 (add_scope_stmt): Likewise. 6606 * decl.c (finish_constructor_body): Likewise. 6607 (finish_destructor_body): Likewise. 6608 * optimize.c (copy_body_r): Likewise. 6609 (initialize_inlined_parameters): Likewise. 6610 (declare_return_variable): Likewise. 6611 (expand_call_inline): Likewise. 6612 66132000-07-10 Jakub Jelinek <jakub@redhat.com> 6614 6615 * semantics.c (expand_body): Sync interface information 6616 at the end of function body expansion. 6617 66182000-07-09 Jason Merrill <jason@redhat.com> 6619 6620 * init.c (build_new_1): Bail early if the call to new fails. 6621 6622 * decl.c (compute_array_index_type): Check specifically for 6623 an INTEGER_CST, not just TREE_CONSTANT. 6624 6625 * decl.c (duplicate_decls): Don't call duplicate_decls on 6626 the DECL_TEMPLATE_RESULT. 6627 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different 6628 codes. 6629 6630 * error.c (dump_template_bindings): Don't crash if we had an 6631 invalid argument list. 6632 6633 * typeck.c (c_expand_start_case): Do narrowing here. 6634 * semantics.c (finish_switch_cond): Not here. 6635 66362000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com> 6637 6638 * parse.y (asm_clobbers): Do string concatenation. 6639 66402000-07-09 Mark Mitchell <mark@codesourcery.com> 6641 6642 * decl.c (pushtag): Don't put local classes in template functions 6643 on the local_classes list. 6644 66452000-07-04 Scott Snyder <snyder@fnal.gov> 6646 6647 * decl2.c (get_guard): Add missing return for old ABI local 6648 variable case. 6649 66502000-07-09 Mark Mitchell <mark@codesourcery.com> 6651 6652 * cp-tree.h (char_type_p): New function. 6653 * decl.c (init_decl_processing): Don't initialize 6654 signed_wchar_type_node or unsigned_wchar_type_node. 6655 (complete_array_type): Handle brace-enclosed string-constants. 6656 * rtti.c (emit_support_tinfos): Remove #if 0'd code. 6657 * tree.c (char_type_p): New function. 6658 * typeck2.c (digest_init): Use char_type_p. 6659 66602000-07-06 Nathan Sidwell <nathan@codesourcery.com> 6661 6662 * pt.c (tsubst): Don't layout type, if it's error_mark. 6663 66642000-07-06 Nathan Sidwell <nathan@codesourcery.com> 6665 6666 * pt.c (instantiate_pending_templates): Reset template level. 6667 66682000-07-05 Jason Merrill <jason@redhat.com> 6669 6670 * call.c (joust): Don't complain about `operator char *()' beating 6671 `operator const char *() const'. 6672 66732000-07-04 scott snyder <snyder@fnal.gov> 6674 Jason Merrill <jason@redhat.com> 6675 6676 * repo.c (repo_get_id): Handle the case where a class with virtual 6677 bases has a null TYPE_BINFO_VTABLE. 6678 66792000-07-04 Kevin Buhr <buhr@stat.wisc.edu> 6680 Jason Merrill <jason@redhat.com> 6681 6682 * parse.y (member_init): Just pass in the type. 6683 * init.c (expand_member_init): Handle getting a type. 6684 66852000-07-04 Martin v. L�wis <loewis@informatik.hu-berlin.de> 6686 Jason Merrill <jason@redhat.com> 6687 6688 * decl.c (finish_function): Warn if a function has no return 6689 statement. 6690 Suggested by Andrew Koenig. 6691 * typeck.c (check_return_expr): Do set current_function_returns_value 6692 if we got an error_mark_node. 6693 66942000-07-03 Nathan Sidwell <nathan@codesourcery.com> 6695 6696 * decl2.c (push_decl_namespace): Push the original namespace. 6697 66982000-07-03 Nathan Sidwell <nathan@codesourcery.com> 6699 6700 * pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES. 6701 * semantics.c (begin_class_definition): Clear it. 6702 67032000-07-02 Benjamin Chelf <chelf@codesourcery.com> 6704 6705 * cp-tree.h (genrtl_goto_stmt): Remove declaration. 6706 (genrtl_expr_stmt): Likewise. 6707 (genrtl_decl_stmt): Likewise. 6708 (genrtl_if_stmt): Likewise. 6709 (genrtl_while_stmt): Likewise. 6710 (genrtl_do_stmt): Likewise. 6711 (genrtl_return_stmt): Likewise. 6712 (genrtl_for_stmt): Likewise. 6713 (genrtl_break_stmt): Likewise. 6714 (genrtl_continue_stmt): Likewise. 6715 (genrtl_scope_stmt): Likewise. 6716 (genrtl_switch_stmt): Likewise. 6717 (genrtl_case_label): Likewise. 6718 (genrtl_begin_compound_stmt): Likewise. 6719 (genrtl_finish_compound_stmt): Likewise. 6720 (genrtl_compound_stmt): Likewise. 6721 (genrtl_asm_stmt): Likewise. 6722 6723 * init.c (begin_init_stmts): Remove call to 6724 genrtl_begin_compound_stmt. 6725 (finish_init_stmts): Remove call to genrtl_finish_compound_stmt. 6726 6727 * semantics.c (lang_expand_stmt): Changed call to 6728 genrtl_compound_stmt to ignore return value. 6729 67302000-07-02 Mark Mitchell <mark@codesourcery.com> 6731 6732 * mangle.c (canonicalize_for_substitution): Return the canonical 6733 variant of a type. 6734 6735 * decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a 6736 TYPE_DECL. 6737 * typeck.c (commonparms): Remove obstack manipulations. 6738 67392000-07-01 Benjamin Chelf <chelf@codesourcery.com> 6740 6741 * Make-lang.in (cc1plus$(exeext)): Added c-semantics.o. 6742 6743 * Makefile.in (OBJS): Added ../c-semantics.o. 6744 (OBJDEPS): Likewise. 6745 6746 * cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to 6747 ../c-common.h. 6748 (struct stmt_tree): Added comment. 6749 (current_function_name_declared): Removed. 6750 (stmts_are_full_exprs_p): Likewise. 6751 (genrtl_do_pushlevel): Likewise. 6752 (genrtl_clear_out_block): Likewise. 6753 (COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h. 6754 (DECL_ANON_UNION_ELEMS): Likewise. 6755 (emit_local_var): Likewise. 6756 (make_rtl_for_local_static): Likewise. 6757 (do_case): Likewise. 6758 (expand_stmt): Likewise. 6759 (genrtl_decl_cleanup): Likewise. 6760 (c_expand_asm_operands): Likewise. 6761 (c_expand_return): Likewise. 6762 (c_expand_start_case): Likewise. 6763 6764 * decl.c (make_rtl_for_local_static): Moved to c-semantics.c. 6765 (emit_local_var): Likewise. 6766 (initialize_local_var): Change reference to 6767 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 6768 Change reference to stmts_are_full_exprs_p to 6769 current_stmt_tree->stmts_are_full_exprs_p. 6770 (push_cp_function_context): Likewise. 6771 6772 * expect.c (expand_throw): Change reference to 6773 stmts_are_full_exprs_p. 6774 6775 * init.c (build_aggr_init): Change reference to 6776 stmts_are_full_exprs_p. 6777 (build_vec_init): Likewise. 6778 6779 * optimize.c (maybe_clone_body): Change reference to 6780 current_function_name_declared to 6781 cp_function_chain->name_declared. 6782 6783 * pt.c (instantiate_decl): Change reference to 6784 current_function_name_declared to 6785 cp_function_chain->name_declared. 6786 6787 * semantics.c (expand_cond): Moved declaration to c-common.h. 6788 (genrtl_do_pushlevel): Moved to c-semantics.c. 6789 (genrtl_clear_out_block): Likewise. 6790 (genrtl_goto_stmt): Likewise. 6791 (genrtl_expr_stmt): Likewise. 6792 (genrtl_decl_stmt): Likewise. 6793 (gerntl_if_stmt): Likewise. 6794 (genrtl_while_stmt): Likewise. 6795 (genrtl_do_stmt): Likewise. 6796 (genrtl_return_stmt): Likewise. 6797 (genrtl_for_stmt): Likewise. 6798 (genrtl_break_stmt): Likewise. 6799 (genrtl_continue_stmt): Likewise. 6800 (genrtl_scope_stmt): Likewise. 6801 (genrtl_switch_stmt): Likewise. 6802 (genrtl_case_label): Likewise. 6803 (genrtl_begin_compound_stmt): Likewise. 6804 (genrtl_finish_compound_stmt): Likewise. 6805 (genrtl_compound_stmt): Likewise. 6806 (genrtl_asm_stmt): Likewise. 6807 (genrtl_decl_cleanup): Likewise. 6808 (expand_cond): Likewise. 6809 (expand_stmt): Renamed to ... 6810 (lang_expand_stmt): ... this. 6811 (lang_expand_expr_stmt): Initialize. 6812 (set_current_function_name_declared): Likewise. 6813 (stmts_are_full_exprs_p): Likewise. 6814 (current_function_name_declared): Likewise. 6815 (anon_aggr_type_p): Likewise. 6816 (do_poplevel): Change reference to 6817 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 6818 Change reference to stmts_are_full_exprs_p to 6819 current_stmt_tree->stmts_are_full_exprs_p. 6820 (add_tree): Likewise. 6821 (finish_expr_stmt): Likewise. 6822 (prep_stmt): Likewise. 6823 (lang_expand_stmt): Likewise. 6824 (begin_compound_stmt): Change reference to 6825 current_function_name_declared to 6826 cp_function_chain->name_declared and call to 6827 current_function_name_declared(). 6828 (setup_vtbl_ptr): Likewise. 6829 (genrtl_do_poplevel): Removed. 6830 68312000-06-30 Jason Merrill <jason@redhat.com> 6832 6833 * init.c (init_init_processing): Go back to aligning like 6834 double_type_node for old ABI. 6835 (get_cookie_size): Make cookie larger if we get a type that needs 6836 more alignment. 6837 (build_vec_delete): Call it. 6838 6839 * typeck.c (qualify_type_recursive): New fn. 6840 (composite_pointer_type): Use it. 6841 (build_binary_op): Use composite_pointer_type. 6842 68432000-06-24 Carlos O'Ryan <coryan@cs.wustl.edu> 6844 Jason Merrill <jason@redhat.com> 6845 6846 * typeck.c (check_return_expr): Don't complain about returning 6847 NULL from operator new if -fcheck-new. 6848 * cp-tree.h: Declare flag_check_new here. 6849 * init.c: Not here. 6850 68512000-06-28 Alex Samuel <samuel@codesourcery.com> 6852 6853 * mangle.c (find_substitution): Use same_type_p. 6854 (write_encoding): Don't check for substitutions. 6855 68562000-06-30 Nathan Sidwell <nathan@codesourcery.com> 6857 6858 * parse.y (expr_no_comma_rangle): New non-terminal. 6859 (template_parm): Use it for default parameter case. 6860 (template_arg): Use it. 6861 (expr_no_commas): Remove commented out undefined extensions. 6862 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 6863 * parse.h, parse.c: Rebuilt. 6864 68652000-06-30 Mark Mitchell <mark@codesourcery.com> 6866 6867 * semantics.c (genrtl_asm_stmt): Don't decay input operands here. 6868 (finish_asm_stmt): Do it here, instead. 6869 6870 * cp-tree.h (ridpointers): Don't declare. 6871 * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. 6872 (record_builtin_java_type): Likewise. 6873 (init_decl_processing): Likewise. 6874 * lex.c: Move inclusion of lex.h. 6875 (ridpointers): Don't define. 6876 (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of 6877 RID_MAX. 6878 * lex.h (enum rid): Rename to ... 6879 (enum cp_rid): ... this. 6880 (ridpointers): Don't declare. 6881 * parse.y: Move inclusion of lex.h. 6882 * parse.c: Regenerated. 6883 * spew.c: Move inclusion of lex.h. 6884 6885 * cp-tree.h (struct language_function): Remove temp_name_counter. 6886 (temp_name_counter): Remove. 6887 (get_temp_name): Change prototype. 6888 (get_guard): New function. 6889 (get_guard_cond): Likewise. 6890 (set_guard): Likewise. 6891 * cvt.c (build_up_reference): Adjust call to get_temp_name. 6892 * decl.c (expand_static_init): Use get_guard and friends to 6893 implement guard variables. 6894 * decl2.c (get_temp_name): Assume that the variables created are 6895 always static. 6896 (get_sentry): Rename to ... 6897 (get_guard): ... this. Implement new ABI guard variables. 6898 (get_guard_bits): New function. 6899 (get_guard_cond): Likewise. 6900 (set_guard): Likewise. 6901 (start_static_initialization_or_destruction): Use them. 6902 (do_static_initialization): Replace sentry with guard throughout. 6903 (do_static_destruction): Likewise. 6904 * init.c (create_temporary_var): Add comment. 6905 69062000-06-28 Alex Samuel <samuel@codesourcery.com> 6907 6908 * mangle.c (find_substitution): Use same_type_p. 6909 (write_encoding): Don't check for substitutions. 6910 69112000-06-30 Nathan Sidwell <nathan@codesourcery.com> 6912 6913 * parse.y (expr_no_comma_rangle): New non-terminal. 6914 (template_parm): Use it for default parameter case. 6915 (template_arg): Use it. 6916 (expr_no_commas): Remove commented out undefined extensions. 6917 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 6918 * parse.h, parse.c: Rebuilt. 6919 69202000-06-29 Mark Mitchell <mark@codesourcery.com> 6921 6922 * cp-tree.h (flag_const_strings): Remove. 6923 (warn_parentheses): Likewise. 6924 (warn_format): Likewise. 6925 (common_type): Likewise. 6926 (default_conversion): Likewise. 6927 (build_binary_op): Likewise. 6928 (cp_build_binary_op): New macro. 6929 * call.c (build_new_op): Use cp_build_binary_op instead of 6930 build_binary_op. 6931 * class.c (build_vtable_entry_ref): Likewise. 6932 * decl.c (expand_static_init): Likewise. 6933 (compute_array_index_type): Likewise. 6934 (build_enumerator): Likewise. 6935 * decl2.c (delete_sanity): Likewise. 6936 (start_static_initialization_or_destruction): Likewise. 6937 * error.c (dump_type_suffix): Likewise. 6938 * init.c (resolve_offset_ref): Likewise. 6939 (build_new): Likewise. 6940 (build_new_1): Likewise. 6941 (build_vec_delete_1): Likewise. 6942 (build_vec_init): Likewise. 6943 (build_delete): Likewise. 6944 * rtti.c (synthesize_tinfo_fn): Likewise. 6945 (synthesize_tinfo_var): Likewise. 6946 * search.c (expand_upcast_fixups): Likewise. 6947 (fixup_all_virtual_upcast_offsets): Likewise. 6948 * typeck.c (build_array_ref): Likewise. 6949 (get_member_function_from_ptrfunc): Likewise. 6950 (build_binary_op): Add parameter. 6951 (pointer_int_sum): Use cp_build_binary_op. 6952 (pointer_diff): Likewise. 6953 (build_modify_expr): Likewise. 6954 (get_delta_difference): Likewise. 6955 (build_ptrmemfunc): Likewise. 6956 69572000-06-29 Nathan Sidwell <nathan@codesourcery.com> 6958 6959 * cp-tree.h (SET_DECL_ARTIFICIAL): Remove. 6960 * decl.c (create_implicit_typedef): Adjust. 6961 * decl2.c (build_artificial_parm): Adjust. 6962 * method.c (implicitly_declare_fn): Adjust. 6963 * pt.c (push_inline_template_parms_recursive): Adjust. 6964 (process_template_parm): Adjust. 6965 (overloaded_template_name): Adjust. 6966 * semantics.c (finish_template_template_parm): Adjust. 6967 69682000-06-28 Mark Mitchell <mark@codesourcery.com> 6969 6970 * cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove. 6971 * class.c (update_vtable_entry_for_fn): Correct logic for deciding 6972 where to emit thunks. 6973 (build_vtt): Adjust call to build_vtt_inits. 6974 (build_vtt_inits): Add parameter to indicate whether or not 6975 sub-VTTs for virtual bases should be included. Adjust handling of 6976 construction vtables. 6977 (get_matching_base): New function. 6978 (dfs_build_vtt_inits): Rename to ... 6979 (dfs_build_secondary_vptr_vtt_inits): Adjust handling of 6980 construction vtables. 6981 (dfs_fixup_binfo_vtbls): Likewise. 6982 (build_ctor_vtbl_groups): Build construction vtables for virtual 6983 bases, too. 6984 (accumulate_vtbl_inits): Tweak logic for deciding whether or not 6985 to build construction vtbls. 6986 (dfs_accumulate_vtbl_inits): Adjust handling of 6987 construction vtables. 6988 6989 * pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified 6990 types correctly. 6991 69922000-06-27 Mark Mitchell <mark@codesourcery.com> 6993 6994 * decl.c (grokfndecl): Set DECL_CONTEXT for static functions too. 6995 69962000-06-26 Nathan Sidwell <nathan@codesourcery.com> 6997 6998 * search.c (hides): Remove. 6999 (is_subobject_of_p): Add most_derived parameter. Use 7000 CANONICAL_BINFO. 7001 (lookup_field_queue_p): Adjust. 7002 (lookup_field_r): Adjust. 7003 70042000-06-26 Nathan Sidwell <nathan@codesourcery.com> 7005 7006 * decl2.c (handle_class_head): Bash typedefs to the type's main 7007 decl. 7008 70092000-06-25 Mark Mitchell <mark@codesourcery.com> 7010 7011 * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... 7012 (begin_global_stmt_expr): ... this. 7013 (genrtl_finish_stmt_expr): Rename to ... 7014 (finish_global_stmt_expr): ... this. 7015 * init.c (begin_init_stmts): Adjust calls. 7016 (finish_init_stmts): Likewise. 7017 * semantics.c (genrtl_begin_stmt_expr): Rename to ... 7018 (begin_global_stmt_expr): ... this. 7019 (genrtl_finish_stmt_expr): Rename to ... 7020 (finish_global_stmt_expr): ... this. 7021 70222000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 7023 7024 * search.c (lookup_member): Fix typo in comment. 7025 70262000-06-24 Jason Merrill <jason@redhat.com> 7027 7028 * decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace. 7029 (push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL. 7030 70312000-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 7032 7033 * parse.y (complex_direct_notype_declarator): Support global_scope. 7034 * Makefile.in: Adjust conflict count. 7035 70362000-06-23 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 7037 7038 * parse.y (template_arg): Convert TEMPLATE_DECL 7039 that is a template template parameter to 7040 TEMPLATE_TEMPLATE_PARM here. 7041 7042 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment. 7043 * cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro. 7044 (copy_template_template_parm): Adjust prototype. 7045 * decl.c (grokdeclarator): Remove dead code. 7046 * pt.c (process_template_parm): Tidy. 7047 (lookup_template_class): Construct nodes in 7048 copy_template_template_parm. 7049 (tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to 7050 lookup_template_class. Use TYPE_TI_TEMPLATE. 7051 * tree.c (copy_template_template_parm): Add NEWARGS 7052 parameter. 7053 (mapcar): Adjust call to copy_template_template_parm. 7054 * typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 7055 * method.c (build_template_template_parm_names): Change error 7056 code to avoid compilation warning. 7057 7058 * gxxint.texi: Document template template parameter 7059 name mangling. 7060 70612000-06-21 Alex Samuel <samuel@codesourcery.com> 7062 7063 * Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o. 7064 (CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c. 7065 (cp-demangle.o): New rule. 7066 (dyn-string.o): Likewise. 7067 * inc/cxxabi.h (__cxa_demangle): New declaration. 7068 70692000-06-22 Mark Mitchell <mark@codesourcery.com> 7070 7071 * cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. 7072 (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. 7073 (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset 7074 a tree, not an int. 7075 (THUNK_GENERATE_WITH_VTABLE_P): New macro. 7076 (make_thunk): Change prototype. 7077 (emit_thunk): Rename to use_thunk. 7078 (mangle_thunk): Change prototype. 7079 * class.c (get_derived_offset): Simplify. 7080 (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and 7081 BV_GENERATE_THUNK_WITH_VTABLE_P. 7082 (build_primary_vtable): Simplify. 7083 (add_virtual_function): Use BV_FN, rather than TREE_VALUE. 7084 (dfs_find_base): Remove. 7085 (update_vtable_entry_for_fn): Correct bug in finding the base 7086 where a virtual function was first declared. Figure out whether 7087 or not to emit a vcall-thunk with the vtables in which it appears. 7088 Correct logic for deciding whether to use an ordinary thunk, or a 7089 vcall thunk. 7090 (finish_struct_1): Remove unnecssary code. 7091 (build_vtbl_initializer): Use ssize_int for the running counter of 7092 negative indices. 7093 (build_vtbl_initializer): Only use vcall thunks where necessary. 7094 Mark thunks as needing to be emitted with their vtables, or not. 7095 (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in 7096 indices. Use size_binop. 7097 (dfs_build_vcall_offset_vtbl_entries): Don't rely on 7098 BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use 7099 size_binop. 7100 (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. 7101 (build_vtable_entry): Mark thunks as needing to be emitted with 7102 their vtables, or not. 7103 * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. 7104 * decl2.c (mark_vtable_entries): Use use_thunk instead of 7105 emit_thunk. 7106 * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk 7107 information. 7108 * error.c (dump_expr): Use BV_FN. 7109 * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, 7110 not an int. 7111 * method.c (make_thunk): Likewise. 7112 (emit_thunk): Rename to use_thunk. Allow callers to decide 7113 whether or not to actually emit the thunk. Adjust for changes in 7114 representation of vcall offsets. 7115 * search.c (dfs_get_pure_virtuals): Use BV_FN. 7116 * semantics.c (emit_associated_thunks): New function. 7117 (expand_body): Use it. 7118 * ir.texi: Adjust decriptions of thunks. 7119 71202000-06-22 Jason Merrill <jason@redhat.com> 7121 7122 * pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE. 7123 (tsubst_friend_function): Copy it here. 7124 7125 * decl.c (grok_op_properties): Fix typo. 7126 7127 * decl2.c (delete_sanity): Clarify warning, avoid failure on 7128 deleting void*. 7129 7130 * pt.c (check_explicit_specialization): Clarify error. 7131 7132 * decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from 7133 an old OVERLOAD when we're declaring a non-function. 7134 (pushdecl, destroy_local_var): Check for error_mark_node. 7135 (warn_extern_redeclared_static): Also bail early if 7136 we're a CONST_DECL. 7137 (push_overloaded_decl): Ignore an old error_mark_node. 7138 71392000-06-22 Nathan Sidwell <nathan@codesourcery.com> 7140 7141 * call.c (build_x_va_arg): Check if in a template decl. 7142 * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg. 7143 71442000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 7145 7146 * class.c (push_lang_context): TYPE_NAME gets you to the Java 7147 types DECLs. 7148 * decl.c (check_goto): Computed gotos assumed OK. 7149 71502000-06-20 Jason Merrill <jason@redhat.com> 7151 7152 * pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs 7153 for which we don't need to look for instantiations. 7154 71552000-06-21 Nathan Sidwell <nathan@codesourcery.com> 7156 7157 * parse.y (program): Always call finish_translation_unit. 7158 * parse.c, parse.h: Rebuilt. 7159 71602000-06-20 Zack Weinberg <zack@wolery.cumb.org> 7161 7162 * method.c: Don't include hard-reg-set.h. 7163 71642000-06-20 Nathan Sidwell <nathan@codesourcery.com> 7165 7166 * rtti.c (get_base_offset): Cope when vbase field is in a base. 7167 71682000-06-20 Nathan Sidwell <nathan@codesourcery.com> 7169 7170 * call.c (build_conditional_expr): Use VOID_TYPE_P. 7171 * cvt.c (cp_convert_to_pointer): Likewise. 7172 (convert_to_void): Likewise. 7173 * error.c (dump_expr): Likewise. 7174 * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. 7175 * init.c (build_delete): Likewise. 7176 * method.c (emit_thunk): Likewise. 7177 * optmize.c (declare_return_variable): Likewise. 7178 * rtti.c (get_tinfo_decl_dynamic): Likewise. 7179 (get_typeid): Likewise. 7180 (build_dynamic_cast_1): Likewise. 7181 * typeck.c (composite_pointer_type): Likewise. 7182 (common_type): Likewise. 7183 (build_indirect_ref): Likewise. 7184 (build_binary_op): Likewise. 7185 (build_x_compound_expr): Likewise. 7186 (check_return_expr): Likewise. 7187 * typeck2.c (add_exception_specifier): Likewise. 7188 7189 * mangle.c (write_method_parms): Use direct comparison for end 7190 of parmlist. 7191 71922000-06-19 Benjamin Chelf <chelf@codesourcery.com> 7193 7194 * cp-tree.h (genrtl_try_block): Declare function. 7195 (genrtl_handler): Likewise. 7196 (genrtl_catch_block): Likewise. 7197 (genrtl_ctor_stmt): Likewise. 7198 (genrtl_subobject): Likewise. 7199 (genrtl_decl_cleanup): Likewise. 7200 (genrtl_do_poplevel): Likewise. 7201 (genrtl_do_pushlevel): Likewise. 7202 (genrtl_clear_out_block): Likewise. 7203 (genrtl_goto_stmt): Likewise. 7204 (genrtl_expr_stmt): Likewise. 7205 (genrtl_decl_stmt): Likewise. 7206 (genrtl_if_stmt): Likewise. 7207 (genrtl_while_stmt): Likewise. 7208 (genrtl_do_stmt): Likewise. 7209 (genrtl_return_stmt): Likewise. 7210 (genrtl_for_stmt): Likewise. 7211 (genrtl_break_stmt): Likewise. 7212 (genrtl_continue_stmt): Likewise. 7213 (genrtl_scope_stmt): Likewise. 7214 (genrtl_switch_stmt): Likewise. 7215 (genrtl_case_label): Likewise. 7216 (genrtl_begin_compound_stmt): Likewise. 7217 (genrtl_finish_compound_stmt): Likewise. 7218 (genrtl_compound_stmt): Likewise. 7219 (genrtl_asm_stmt): Likewise. 7220 (genrtl_named_return_value): Likewise. 7221 (genrtl_begin_stmt_expr): Likewise. 7222 (genrtl_finish_stmt_expr): Likewise. 7223 (finish_for_stmt): Removed first argument. 7224 (finish_switch_stmt): Likewise. 7225 7226 * semantics.c (genrtl_try_block): Define function. 7227 (genrtl_handler): Likewise. 7228 (genrtl_catch_block): Likewise. 7229 (genrtl_ctor_stmt): Likewise. 7230 (genrtl_subobject): Likewise. 7231 (genrtl_decl_cleanup): Likewise. 7232 (genrtl_do_poplevel): Likewise. 7233 (genrtl_do_pushlevel): Likewise. 7234 (genrtl_clear_out_block): Likewise. 7235 (genrtl_goto_stmt): Likewise. 7236 (genrtl_expr_stmt): Likewise. 7237 (genrtl_decl_stmt): Likewise. 7238 (genrtl_if_stmt): Likewise. 7239 (genrtl_while_stmt): Likewise. 7240 (genrtl_do_stmt): Likewise. 7241 (genrtl_return_stmt): Likewise. 7242 (genrtl_for_stmt): Likewise. 7243 (genrtl_break_stmt): Likewise. 7244 (genrtl_continue_stmt): Likewise. 7245 (genrtl_scope_stmt): Likewise. 7246 (genrtl_switch_stmt): Likewise. 7247 (genrtl_case_label): Likewise. 7248 (genrtl_begin_compound_stmt): Likewise. 7249 (genrtl_finish_compound_stmt): Likewise. 7250 (genrtl_compound_stmt): Likewise. 7251 (genrtl_asm_stmt): Likewise. 7252 (genrtl_named_return_value): Likewise. 7253 (genrtl_begin_stmt_expr): Likewise. 7254 (genrtl_finish_stmt_expr): Likewise. 7255 (finish_for_stmt): Removed first argument and generate rtl 7256 specific code. 7257 (finish_switch_stmt): Likewise. 7258 (do_poplevel): Removed generate rtl specific code. 7259 (do_pushlevel): Likewise. 7260 (add_tree): Likewise. 7261 (finish_goto_stmt): Likewise. 7262 (finish_expr_stmt): Likewise. 7263 (begin_if_stmt): Likewise. 7264 (finish_if_stmt_cond): Likewise. 7265 (finish_then_clause): Likewise. 7266 (begin_else_clause): Likewise. 7267 (finish_else_clause): Likewise. 7268 (finish_if_stmt): Likewise. 7269 (clear_out_block): Likewise. 7270 (begin_while_stmt): Likewise. 7271 (finish_while_stmt_cond): Likewise. 7272 (finish_while_stmt): Likewise. 7273 (begin_do_stmt): Likewise. 7274 (finish_do_body): Likewise. 7275 (finish_do_stmt): Likewise. 7276 (finish_return_stmt): Likewise. 7277 (begin_for_stmt): Likewise. 7278 (finish_for_init_stmt): Likewise. 7279 (finish_for_cond): Likewise. 7280 (finish_for_expr): Likewise. 7281 (finish_break_stmt): Likewise. 7282 (finish_continue_stmt): Likewise. 7283 (begin_switch_stmt): Likewise. 7284 (finish_switch_cond): Likewise. 7285 (finish_case_label): Likewise. 7286 (begin_try_block): Likewise. 7287 (begin_function_try_block): Likewise. 7288 (finish_try_block): Likewise. 7289 (finish_cleanup_try_block): Likewise. 7290 (finish_cleanup): Likewise. 7291 (finish_function_try_block): Likewise. 7292 (finish_handler_sequence): Likewise. 7293 (finish_function_handler_sequence): Likewise. 7294 (begin_handler): Likewise. 7295 (finish_handler_parms): Likewise. 7296 (begin_catch_block): Likewise. 7297 (finish_handler): Likewise. 7298 (begin_compound_stmt): Likewise. 7299 (finish_compound_stmt): Likewise. 7300 (finish_asm_stmt): Likewise. 7301 (finish_label_stmt): Likewise. 7302 (finish_label_decl): Likewise. 7303 (finish_subobject): Likewise. 7304 (finish_decl_cleanup): Likewise. 7305 (finish_named_return_value): Likewise. 7306 (begin_stmt_expr): Likewise. 7307 (finish_stmt_expr): Likewise. 7308 7309 * decl.c (initialize_local_var): Changed call to finish_expr_stmt 7310 to call genrtl_expr_stmt when appropriate. 7311 7312 * init.c (begin_init_stmts): Changed calls to begin_stmt_expr and 7313 begin_compound_expr to call genrtl_begin_stmt_expr and 7314 genrtl_begin_compound_expr when appropriate. 7315 (finish_init_stmts): Changed calls to finish_compound_expr and 7316 finish_stmt_expr to call genrtl_finish_compound_expr and 7317 genrtl_finish_stmt_expr when appropriate. 7318 (expand_default_init): Changed call to finish_expr_stmt to call 7319 genrtl_expr_stmt when appropriate. 7320 (build_vec_init): Likewise. 7321 7322 * parse.y (simple_stmt): Removed first argument from call to 7323 finish_for_stmt. Removed first argument from call to 7324 finish_switch_stmt. 7325 7326 * parse.c: Regenerated. 7327 7328 * pt.c (tsubst_expr): Removed first argument from call to 7329 finish_for_stmt. Removed first argument from call to 7330 finish_switch_stmt. 7331 73322000-06-16 Benjamin Chelf <chelf@codesourcery.com> 7333 7334 * cp-tree.h (enum cplus_tree_code): Changed __DUMMY to 7335 CP_DUMMY_TREE_CODE. Remove #include "c-common.def". 7336 7337 * lex.c (cplus_tree_code_type[]): Removed #include "c-common.def". 7338 (cplus_tree_code_length[]): Likewise. 7339 (cplus_tree_code_name[]): Likewise. 7340 (init_parse): Added call to add_c_tree_codes. Changed 7341 LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE. 7342 73432000-06-16 Mark Mitchell <mark@codesourcery.com> 7344 7345 * cp-tree.h (finish_mem_initializers): Declare. 7346 (count_trees): Likewise. 7347 * parse.y (base_init): Use finish_mem_initializers. 7348 * semantics.c (finish_mem_initializers): New function. 7349 7350 * tree.c (count_trees_r): Prototype. Use DATA parameter to store 7351 the number of trees. 7352 (n_trees): Remove. 7353 (count_trees): Don't use it. 7354 73552000-06-15 Jason Merrill <jason@redhat.com> 7356 7357 * tree.c (count_trees): New debugging function. 7358 7359 * typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P. 7360 * init.c (build_member_call): Pull out the name of a DECL. 7361 7362 * Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H. 7363 * semantics.c (expand_body): Push to TV_INTEGRATION here. 7364 * optimize.c (optimize_function): Not here. 7365 * pt.c (instantiate_decl): Push to TV_PARSE. 7366 73672000-06-15 Mark Mitchell <mark@codesourcery.com> 7368 7369 * cp-tree.h (struct language_function): Remove x_base_init_list 7370 and x_member_init_list. 7371 (current_base_init_list): Remove. 7372 (current_member_init_list): Likewise. 7373 (setup_vtbl_ptr): Change prototype. 7374 (emit_base_init): Likewise. 7375 (expand_member_init): Likewise. 7376 (reinit_parse_for_function): Remove. 7377 * decl.c (save_function_data): Don't clear x_base_init_list and 7378 x_member_init_list. 7379 (mark_language_function): Don't mark them. 7380 * init.c (perform_member_init): Tweak comment. 7381 (sort_member_init): Take the list of initializers as an argument. 7382 (sort_base_init): Likewise. 7383 (emit_base_init): Likewise. 7384 (expand_member_init): Return the initializer. Don't use global 7385 variables. 7386 * lex.c (reinit_parse_for_function): Remove. 7387 * method.c (build_template_parm_names): Correct substitution. 7388 (do_build_copy_constructor): Don't use current_member_init_list 7389 and current_base_init_list. 7390 (synthesize_method): Likewise. 7391 * parse.y (base_init): Split mem-initializers into 7392 base-initializers and field-initializers. 7393 (member_init_list): Build up the list here. 7394 (member_init): Return the initializer. 7395 (fn.depfn): Don't use reinit_parse_for_function. 7396 * parse.c: Regenerated. 7397 * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the 7398 ERROR_MARK. 7399 (tsubst_expr): Don't use current_member_init_list 7400 and current_base_init_list. 7401 (tsubst_expr_values): Rename to ... 7402 (tsubst_initializer_list): ... this. Use convert_from_reference. 7403 * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list 7404 and current_base_init_list. 7405 (begin_function_definition): Don't call reinit_parse_for_function. 7406 7407 * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. 7408 7409 * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE 7410 correctly. 7411 7412 * cp-tree.h (DECL_PENDING_INLINE_P): Relax checking. 7413 74142000-06-14 Benjamin Chelf <chelf@codesourcery.com> 7415 7416 * cp-tree.h (IF_COND): Move to c-common.h. 7417 (THEN_CLAUSE): Likewise. 7418 (ELSE_CLAUSE): Likewise. 7419 (WHILE_COND): Likewise. 7420 (WHILE_BODY): Likewise. 7421 (DO_COND): Likewise. 7422 (DO_BODY): Likewise. 7423 (RETURN_EXPR): Likewise. 7424 (EXPR_STMT_EXPR): Likewise. 7425 (FOR_INIT_STMT): Likewise. 7426 (FOR_COND): Likewise. 7427 (FOR_EXPR): Likewise. 7428 (FOR_BODY): Likewise. 7429 (SWITCH_COND): Likewise. 7430 (SWITCH_BODY): Likewise. 7431 (CASE_LOW): Likewise. 7432 (CASE_HIGH): Likewise. 7433 (GOTO_DESTINATION): Likewise. 7434 (COMPOUND_BODY): Likewise. 7435 (ASM_CV_QUAL): Likewise. 7436 (ASM_STRING): Likewise. 7437 (ASM_OUTPUTS): Likewise. 7438 (ASM_INPUTS): Likewise. 7439 (ASM_CLOBBERS): Likewise. 7440 (DECL_STMT_DECL): Likewise. 7441 (STMT_EXPR_STMT): Likewise. 7442 (LABEL_STMT_LABEL): Likewise. 7443 (SCOPE_BEGIN_P): Likewise. 7444 (SCOPE_END_P): Likewise. 7445 (SCOPE_STMT_BLOCK): Likewise. 7446 (SCOPE_NULLIFIED_P): Likewise. 7447 (SCOPE_NO_CLEANUPS_P): Likewise. 7448 (SCOPE_PARTIAL_P): Likewise. 7449 (ASM_VOLATILE_P): Likewise. 7450 (STMT_LINENO): Likewise. 7451 (STMT_LINENO_FOR_FN_P): Likewise. 7452 7453 * cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR, 7454 ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, 7455 FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, 7456 CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, 7457 SCOPE_STMT, CASE_LABEL, STMT_EXPR. 7458 7459 * Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def. 7460 7461 * Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def. 7462 (cc1plus$(exeext)): Added $(srcdir)/c-common.def. 7463 7464 * lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'. 7465 (cplus_tree_code_length[]): Added '#include "c-common.def"'. 7466 (cplus_tree_code_name[]): Added '#include "c-common.def"'. 7467 74682000-06-14 Mark Mitchell <mark@codesourcery.com> 7469 7470 * cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro. 7471 * class.c (dfs_find_final_overrider): Set it appropriately. 7472 (dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to 7473 avoid unneeded secondary vptrs. 7474 74752000-06-13 Jakub Jelinek <jakub@redhat.com> 7476 7477 * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. 7478 (check_bitfield_decl, check_field_decl): Likewise. 7479 (build_vtbl_or_vbase_field, build_base_field): Likewise. 7480 (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. 7481 * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. 7482 (xfer_tag, finish_enum): Likewise. 7483 * decl2.c (finish_builtin_type): Likewise. 7484 * init.c (init_init_processing): Likewise. 7485 * pt.c (instantiate_class_template): Likewise. 7486 * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. 7487 * cp-tree.h (struct lang_type): Add user_align member. 7488 (CLASSTYPE_USER_ALIGN): Define. 7489 7490Tue Jun 13 15:48:03 2000 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 7491 7492 * Make-lang.in (c++.install-common): Install g++-cross in 7493 $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as 7494 $(target_alias)-g++ and $(target_alias)-c++. 7495 74962000-06-12 Mark Mitchell <mark@codesourcery.com> 7497 7498 * class.c (vcall_offset_data_s): Add last_init and fns. 7499 (overrides): Rename to same_signature_p. 7500 (dfs_find_final_overrider): Adjust accordingly. 7501 (mark_overriders): Likewise. 7502 (warn_hidden): Likewise. 7503 (build_vtbl_initializer): Reorganize machinery for building things 7504 at negative offsets. 7505 (build_vcall_and_vbase_vtbl_entries): Likewise. 7506 (build_vbase_offset_vtbl_entries): Likewise. 7507 (dfs_build_vcall_offset_vtbl_entries): Correct order of vcall 7508 offset entries. Do not create two entries for functions with the 7509 same signature. 7510 (build_vcall_offset_vtbl_entries): Initialize vod->fns. 7511 (build_rtti_vtbl_entries): Reorganize machinery for building things 7512 at negative offsets. 7513 7514 * optimize.c (expand_call_inline): Don't recurse into the code 7515 used to initialize the parameters more than once. 7516 75172000-06-11 Mark Mitchell <mark@codesourcery.com> 7518 7519 * mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment. 7520 (is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here. 7521 (find_substitution): Only use the `Sa' substitution for 7522 std::allocator, not instantiations of it. 7523 (write_template_prefix): Move comment. Only use a TREE_LIST to 7524 represent substitutions for a member template. 7525 (write_array_type): Mangle array dimensions correctly. 7526 * optimize.c (maybe_clone_body): Copy more information from the 7527 cloned function. 7528 * pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE 7529 on the regenerated declaration. 7530 75312000-06-11 Chip Salzenberg <chip@valinux.com> 7532 Mark Mitchell <mark@codesourcery.com> 7533 7534 * class.c (build_vtable): Clarify comment. 7535 (build_ctor_vtbl_group): Pass the most derived type to 7536 build_vtable. 7537 75382000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7539 7540 * decl2.c (compare_options): Don't needlessly cast away const-ness. 7541 75422000-06-10 Mark Mitchell <mark@codesourcery.com> 7543 7544 * decl.c (add_binding): Handle duplicate declarations of external 7545 variables. 7546 75472000-06-09 Chip Salzenberg <chip@valinux.com> 7548 Mark Mitchell <mark@codesourcery.com> 7549 7550 * mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an 7551 argument. 7552 (write_signed_number): New macro. 7553 (write_unsigned_number): Likewise. 7554 (write_source_name): Use them. 7555 (write_number): Handle signed and unsigned values. 7556 (write_integer_cst): Use tree_int_cst_sgn, and use 7557 write_unsigned_number or write_signed_number as appropriate. 7558 (write_discriminator): Use write_unsigned_number or 7559 write_signed_number as appropriate. 7560 (write_template_arg_literal): Likewise. 7561 (write_array_type): Use tree_low_cst. 7562 (write_template_parm): Use write_unsigned_number or 7563 write_signed_number as appropriate. 7564 (write_substitution): Adjust call to write_number. 7565 (write_type): Get the TYPE_MAIN_VARIANT before mangling it. 7566 (write_expression): Handle non-type template arguments of 7567 reference type correctly. 7568 (mangle_thunk): Use write_signed_number. 7569 75702000-06-09 Chip Salzenberg <chip@valinux.com> 7571 7572 * mangle.c (find_substition): Don't mangle objects with typename 7573 substitutions (e.g. "cin" as "Si"). 7574 75752000-06-09 Zack Weinberg <zack@wolery.cumb.org> 7576 7577 * call.c (add_candidate): Use ggc_alloc_cleared. 7578 * decl.c (lookup_label): Likewise. 7579 * lex.c (retrofit_lang_decl): Likewise. 7580 75812000-06-09 Jason Merrill <jason@casey.soma.redhat.com> 7582 7583 * semantics.c (expand_body): Push to TV_EXPAND. 7584 * optimize.c (optimize_function): Push to TV_INTEGRATION. 7585 * decl.c (start_function): Always call announce_function. 7586 7587 * tinfo2.cc: Just declare abort. 7588 75892000-06-09 Gabriel Dos Reis <gdr@codesourcery.com> 7590 7591 * lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @' 7592 whenever @ is a symbolic name. 7593 75942000-06-08 Jakub Jelinek <jakub@redhat.com> 7595 7596 * method.c (make_thunk): Clear DECL_VTT_PARM in thunk. 7597 75982000-06-07 Mark Mitchell <mark@codesourcery.com> 7599 7600 * decl.c (pushdecl): Look up functions by DECL_NAME, not 7601 DECL_ASSEMBLER_NAME. 7602 76032000-06-06 Mark Mitchell <mark@codesourcery.com> 7604 7605 * decl2.c (c_language): Define. 7606 76072000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 7608 7609 * lex.c (lang_init_options): Tweak. 7610 7611 * decl2.c: Remove #inclusion of diagnostic.h 7612 (lang_decode_option): Move diagnostic formatting options to 7613 toplevel. 7614 7615 * lang-options.h: Remove documentation for diagnostic options. 7616 7617 * Makefile.in (lex.o): Depends upon diagnostic.h 7618 76192000-06-06 Mark Mitchell <mark@codesourcery.com> 7620 7621 * decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have 7622 the same DECL_RESULT, it's not a redefinition. 7623 * pt.c (tsubst_decl): Remove code to handle illegal 7624 specializations. 7625 76262000-06-06 Nathan Sidwell <nathan@codesourcery.com> 7627 7628 * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c 7629 76302000-06-05 Jason Merrill <jason@casey.soma.redhat.com> 7631 7632 * search.c (maybe_suppress_debug_info): Don't check 7633 CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set. 7634 7635 * pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION 7636 here if extern_p. 7637 7638 Remember instantiation context in deferred instantiations. 7639 * cp-tree.h (struct tinst_level): Remove. 7640 (TINST_DECL, TINST_LINE, TINST_FILE): New macros. 7641 * pt.c (current_tinst_level): Now a tree. 7642 (print_template_context, push_tinst_level, pop_tinst_level, 7643 tinst_for_decl): Adjust. 7644 (reopen_tinst_level): New fn. 7645 (init_pt): Register current_tinst_level as a root. 7646 (add_pending_template): Put current_tinst_level in TREE_PURPOSE 7647 of the pending templates list. 7648 (instantiate_pending_templates): Adjust. Call reopen_tinst_level. 7649 * lex.c (extract_interface_info): Adjust. 7650 * decl2.c (warn_if_unknown_interface): Adjust. 7651 76522000-06-05 Mark Mitchell <mark@codesourcery.com> 7653 7654 * class.c (indirect_primary_base_p): New function. 7655 (determine_primary_base): Use it. 7656 76572000-06-05 Nathan Sidwell <nathan@codesourcery.com> 7658 7659 Update new-abi dynamic cast algorithm. 7660 * tinfo.cc (__class_type_info::__dyncast_result): Add 7661 whole_details. Adjust constructor. 7662 (__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags. 7663 Avoid unnecessary searching. 7664 (__dynamic_cast): Adjust for __dyncast_result::whole_details. 7665 7666Mon Jun 5 06:48:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 7667 7668 * decl.c (init_decl_processing): Don't call record_component_aliases. 7669 * tree.c (build_cplus_array_type_1): Likewise. 7670 76712000-06-04 Mark Mitchell <mark@codesourcery.com> 7672 7673 * ir.texi: Correct typo. 7674 * mangle.c (write_expression): Handle non-type template arguments 7675 with reference type. 7676 * method.c (build_overload_value): Likewise. 7677 * pt.c (convert_nontype_argument): Explicitly represent conversion 7678 to a reference with an ADDR_EXPR. 7679 (unify): Always unify arguments in left-to-right order. 7680 76812000-06-03 Alex Samuel <samuel@codesourcery.com> 7682 Mark Mitchell <mark@codesourcery.com> 7683 7684 * Make-lang.in (CXX_SRCS): Add mangle.c. 7685 * Makefile.in (CXX_OBJS): Add mangle.o. 7686 (mangle.o): New rule. 7687 7688 * class.c (local_classes): New variable. 7689 * class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI. 7690 (get_vtt_name): Use mangle_vtt_name for new ABI. 7691 (init_class_processing): Initialize local_classes. 7692 (build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI. 7693 * cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER. 7694 (std_identifier): New macro. 7695 (DECL_VOLATILE_MEMFUNC_P): New macro. 7696 (DECL_NAMESPACE_STD_P): Likewise. 7697 (local_classes): Declare. 7698 (get_mostly_instantiated_function_type): Declare. 7699 (init_mangle): Declare. 7700 (mangle_decl): Likewise. 7701 (mangle_type_string): Likewise. 7702 (mangle_type): Likewise. 7703 (mangle_typeinfo_for_type): Likewise. 7704 (mangle_typeinfo_string_for_type): Likewise. 7705 (mangle_vtbl_for_type): Likewise. 7706 (mangle_vtt_for_type): Likewise. 7707 (mangle_ctor_vtbl_for_type): Likewise. 7708 (mangle_thunk): Likewise. 7709 (mangle_conv_op_name_for_type): Likewise. 7710 (mangle_guard_variable): Likewise. 7711 * decl.c (pushtag): Keep track of local classes. 7712 (initialize_predefined_identifiers): Initialize std_identifier. 7713 (init_decl_processing): Use std_identifier. 7714 (start_decl): Don't treat instantiations as specializations. 7715 (grokdeclarator): Likewise. 7716 (grokvardecl): Call mangle_decl for new ABI. Only set mangled 7717 name for fully-instantiated templates. 7718 * decl2.c (grokclassfn): Use set_mangled_name_for_decl for 7719 destructors with the new ABI. 7720 (finish_static_data_member_decl): Use mangle_decl under the new ABI. 7721 (grokfield): Use mangle_type for new ABI. 7722 (grokoptypename): Use mangle_conv_op_for_type for new ABI. 7723 (get_sentry): Use mangle_guard_variable for new ABI. 7724 (start_static_initialization_or_destruction): Likewise. 7725 * expr.c (extract_aggr_init): Remove. 7726 (extract_scalar_init): Likewise. 7727 (extract_init): Remove #if 0'd code. 7728 * mangle.c: New function. 7729 * method.c (build_mangled_name): Assert not flag_new_abi. 7730 (build_static_name): Likewise. 7731 (build_decl_overload_real): Likewise. 7732 (build_typename_overload): Likewise. 7733 (build_overload_with_type): Likewise. 7734 (build_overload_name): Likewise. 7735 (get_ctor_vtbl_name): Likewise. 7736 (start_squangling): Likewise. 7737 (get_id_2): Likewise. 7738 (set_mangled_name_for_decl): Call mangle_decl for new ABI. 7739 (init_method): Call init_mangle for new ABI. 7740 (make_thunk): Call mangle_thunk for new ABI. 7741 * operators.def: Correct new ABI manglings for the `%' operator. 7742 Add `::' operator. 7743 * pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and 7744 DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL. 7745 (lookup_template_class): Call mangle_decl for new ABI. 7746 (get_mostly_instantiated_function_type): New function. 7747 (set_mangled_name_for_template_decl): Use it. 7748 (tsubst_decl): Use set_mangled_name_for_decl for destructors with 7749 the new ABI. Use mangle_conv_op_name_for_type for instantiated 7750 conversion op names. 7751 * rtti.c (tinfo_name): Call mangle_type_string for new ABI. 7752 (get_tinfo_decl): Call mangle_typeinfo_for_type for new ABI. 7753 (tinfo_base_init): Likewise. Mangle typeinfo string name with 7754 mangle_typeinfo_string_for_type. 7755 77562000-06-03 Mark Mitchell <mark@codesourcery.com> 7757 7758 * cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. 7759 (INNERMOST_TEMPLATE_ARGS): New macro. 7760 (innermost_args): Remove. 7761 (get_innermost_template_args): New function. 7762 * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. 7763 * error.c (dump_function_decl): Be caution when using 7764 most_general_template. 7765 * method.c (build_template_parm_names): Use 7766 INNERMOST_TEMPLATE_ARGS. 7767 * pt.c (add_to_template_args): Tidy comment 7768 (get_innermost_template_args): New function. 7769 (check_explicit_specialization): Clear DECL_INITIAL for a new 7770 specialization. 7771 (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. 7772 Tidy. 7773 (push_template_decl): Always register specializations of the most 7774 general template. 7775 (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. 7776 (coerce_template_parms): Likewise. 7777 (lookup_template_class): Likewise. 7778 (innermost_args): Remove. 7779 (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. 7780 (tsubst_decl): Handle tricky specializations. Use 7781 get_innermost_template_args. 7782 (instantiate_template): Simplify handling of partial 7783 instantiations. 7784 (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. 7785 (most_general_template): Reimplement, in a more straightforward 7786 manner. 7787 (regenerate_decl_from_template): Tweak formatting. Use 7788 TMPL_ARGS_DEPTH for clarity. 7789 (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. 7790 7791 * dump.c (dequeue_and_dump): Dump information about thunks. 7792 77932000-06-01 Richard Henderson <rth@cygnus.com> 7794 7795 * decl.c (init_decl_processing): Set lang_get_alias_set first thing. 7796 77972000-06-01 Richard Henderson <rth@cygnus.com> 7798 7799 * decl2.c (unsupported_options): Fix typo, make const. 7800 (lang_decode_option): Fix bsearch argument order. 7801 78022000-06-01 Mark Mitchell <mark@codesourcery.com> 7803 7804 * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE 7805 on FIELD_DECLs. 7806 7807Wed May 31 14:09:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 7808 7809 * cp-tree.h (c_get_alias_set): Deleted. 7810 * Makefile.in (decl.o): Include ../expr.h. 7811 * decl.c (expr.h): Include. 7812 (init_decl_processing): Call record_component_aliases for arrays. 7813 (grokdeclarator): Likewise. 7814 Set TREE_ADDRESSABLE for fields that aren't bitfields. 7815 * tree.c (build_cplus_array_type_1): Call record_component_aliases. 7816 78172000-05-31 Mark Mitchell <mark@codesourcery.com> 7818 7819 Remove guiding declaration support. 7820 * cp/cp-tree.h (flag_dump_translation_unit): Make it const. 7821 (flag_guiding_decls): Remove. 7822 * call.c (build_user_type_conversion_1): Remove support for 7823 guiding decls. 7824 (build_new_function_call): Likewise. 7825 (build_new_op): Likewise. 7826 (build_new_method_call): Likewise. 7827 * decl.c (start_function): Likewise. 7828 * friend.c (is_friend): Likewise. 7829 (do_friend): Likewise. 7830 * decl2.c ((flag_dump_translation_unit): Make it const. 7831 (flag_guiding_decls): Remove. 7832 (unsupported_options): New variable 7833 (compare_options): New function. 7834 (lang_decode_option): Use them. 7835 7836 * decl.c (build_cp_library_fn): Set DECL_CONTEXT. 7837 7838 * method.c (mangle_expression): Adjust test for legal expression 7839 operators. 7840 7841 * pt.c (instantiate_decl): Save and restore the local 7842 specializations list. 7843 78442000-05-30 Jason Merrill <jason@decepticon.cygnus.com> 7845 7846 * decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING. 7847 78482000-05-30 Mark Mitchell <mark@codesourcery.com> 7849 7850 * call.c (add_template_candidate_real): Handle member template 7851 constructors for classes with virtual bases. 7852 (build_user_type_conversion_1): Use in_charge_arg_for_name. 7853 (build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P. 7854 7855 * ir.texi: Update thunk documentation. 7856 7857 * call.c (joust): Fix handling of overloaded builtin operators. 7858 78592000-05-30 Zack Weinberg <zack@wolery.cumb.org> 7860 7861 * cp-tree.h (DECL_ANTICIPATED): New macro. 7862 Document new use of DECL_LANG_FLAG_7. 7863 * decl.c (builtin_function): Set DECL_ANTICIPATED on builtins 7864 in the user namespace. 7865 * lex.c (do_identifier): If the identifier's declaration has 7866 DECL_ANTICIPATED on, it has not yet been declared. But do not 7867 replace it with an ordinary implicit declaration. 7868 7869 * tinfo2.cc: Include stdlib.h. 7870 78712000-05-29 Mark Mitchell <mark@codesourcery.com> 7872 7873 * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. 7874 * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not 7875 CLASSTYPE_ALIGN. 7876 78772000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> 7878 7879 * decl2.c (lang_decode_option): Use skip_leading_substring instead 7880 of plain strncmp. 7881 78822000-05-28 Alexandre Oliva <aoliva@cygnus.com> 7883 7884 * operators.def (<?): Duplicated, should have been... 7885 (>?): this. Fixed. 7886 78872000-05-27 Alex Samuel <samuel@codesourcery.com> 7888 Mark Mitchell <mark@codesourcery.com> 7889 7890 * cp-tree.h (ansi_opname): Make it a macro. 7891 (ansi_assopname): Likewise. 7892 (struct lang_decl_flags): Add assignment_operator_p. 7893 (struct lang_decl): Add operator_code. 7894 (DECL_VTT_PARM): Adjust. 7895 (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an 7896 overloaded operator. 7897 (SET_OVERLOADED_OPERATOR_CODE): New macro. 7898 (DECL_ASSIGNMENT_OPERATOR_P): New macro. 7899 (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. 7900 (opname_tab): Remove. 7901 (assignop_tab): Likewise. 7902 (operator_name_info_t): New type. 7903 (operator_name_info): New variable. 7904 (assignment_operator_name_info): Likewise. 7905 (build_cp_library_fn): Remove declaration. 7906 (push_cp_library_fn): Likewise. 7907 (operator_name_string): Likewise. 7908 (build_decl_overload): Likewise. 7909 * call.c (print_z_candidates): Simplify. 7910 (build_object_call): Adjust usage of ansi_opname. Use 7911 DECL_OVERLOADED_OPERATOR_P. 7912 (op_error): Adjust operator name lookup. 7913 (build_conditional_expr): Adjust usage of ansi_opname. 7914 (build_new_op): Likewise. 7915 (build_op_delete_call): Likewise. 7916 (build_over_call): Likewise. 7917 (joust): Use DECL_OVERLOADED_OPERATOR_P. 7918 * decl.c (duplicate_decls): Copy operator_code. 7919 (init_decl_processing): Adjust parameters to push_cp_library_fn. 7920 (builtin_function): Adjust parameters to build_library_fn_1. 7921 (build_library_fn_1): Accept an overloaded operator code. 7922 (build_library_fn): Pass ERROR_MARK. 7923 (build_cp_library_fn): Accept an overloaded operator code. 7924 (push_cp_library_fn): Likewise. 7925 (grokfndecl): Tweak. 7926 (grokdeclarator): Simplify code to compute names of overloaded 7927 operators. Adjust use of ansi_opname. 7928 (ambi_op_p): Work on tree_codes, not identifiers. 7929 (unary_op_p): Likewise. 7930 (grok_op_properties): Likewise. 7931 (start_function): Use DECL_OVERLOADED_OPERATOR_P. 7932 (lang_mark_tree): Don't try to mark the operator_code. 7933 * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. 7934 * error.c (dump_decl): Remove special handling for operator 7935 names. 7936 (dump_function_name): Likewise. 7937 (dump_expr): Adjust name lookup of operators. 7938 (op_to_string): Simplify. 7939 (assop_to_string): Likewise. 7940 * init.c (build_new_1): Adjust use of ansi_opname. 7941 * lex.c (opname_tab): Remove. 7942 (assignop_tab): Likewise. 7943 (ansi_opname): Likewise. 7944 (ansi_assopname): Likewise. 7945 (operator_name_string): Likewise. 7946 (reinit_lang_specific): Likewise. 7947 (operator_name_info): New variable. 7948 (assignment_operator_name_info): Likewise. 7949 (init_operators): New function. 7950 (init_parse): Use it. 7951 (do_identifier): Adjust use of ansi_opname. 7952 * method.c (mangle_expression): Don't use ansi_opname for 7953 mangling. 7954 (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. 7955 (build_decl_overload): Remove. 7956 (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. 7957 (do_build_assign_ref): Adjust use of ansi_opname. 7958 (synthesize_method): Likewise. 7959 (implicitly_declare_fn): Likewise. 7960 * operators.def: New file. 7961 * parse.y (operator): Adjust use of ansi_opname. 7962 * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. 7963 (set_mangled_name_for_template_decl): Don't play games with 7964 current_namespace. 7965 (special_function_p): Adjust use of ansi_opname. 7966 * typeck.c (check_return_expr): Likewise. 7967 * Make-lang.in (cc1plus): Depend on operators.def. 7968 * Makefile.in (lex.o): Likewise. 7969 (decl.o): Likewise. 7970 79712000-05-27 Zack Weinberg <zack@wolery.cumb.org> 7972 7973 * Make-lang.in (cplib2.ready): Eradicate. 7974 7975Sat May 27 11:25:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 7976 7977 * method.c (mangle_expression): Use TREE_CODE_LENGTH. 7978 * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. 7979 (built_min, cp_tree_equal): Likewise. 7980 79812000-05-26 Mark Mitchell <mark@codesourcery.com> 7982 7983 * class.c (layout_nonempty_base_or_field): Replace 7984 `record_layout_info' with `record_layout_info_s'. 7985 79862000-05-26 Jason Merrill <jason@casey.soma.redhat.com> 7987 7988 Fix goto checking. 7989 * cp-tree.h (struct language_function): x_named_labels is now 7990 a struct named_label_list*. 7991 * decl.c (struct named_label_use_list): Renamed from... 7992 (struct named_label_list): ...this. New struct. 7993 (push_binding_level): Don't set eh_region. 7994 (note_level_for_eh): New fn. 7995 (pop_label): Take label and old value directly. 7996 (pop_labels): Adjust for new named_labels format. 7997 (lookup_label): Likewise. 7998 (poplevel): Note characteristics of a binding level containing a 7999 named label. Mess with named label lists earlier. 8000 (mark_named_label_lists): New fn. 8001 (mark_lang_function): Call it. 8002 (use_label): New fn, split out from... 8003 (make_label_decl): ...here. Don't call it. 8004 (decl_jump_unsafe, check_previous_goto, check_previous_goto_1, 8005 check_previous_gotos): New fns, split out from... 8006 (define_label): ...here. 8007 (check_switch_goto): New fn. 8008 (define_case_label): Call it. 8009 (check_goto): New fn. 8010 * semantics.c (finish_goto_stmt): Call it and use_label. 8011 (begin_compound_stmt): If we're a try block, call note_level_for_eh. 8012 (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings. 8013 80142000-05-26 Mark Mitchell <mark@codesourcery.com> 8015 8016 * class.c (build_vtable_entry_ref): Correct usage of 8017 get_vtbl_decl_for_binfo. 8018 8019 * decl2.c (grokclassfn): Set DECL_LANGUAGE here. 8020 * method.c (implicitly_declare_fn): Not here. 8021 80222000-05-26 Nathan Sidwell <nathan@codesourcery.com> 8023 8024 * cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... 8025 (CPTI_PTMD_DESC_TYPE): ... here. 8026 (ptmd_desc_type_node): Rename to ... 8027 (ptm_desc_type_node): ... here. 8028 * decl.c: Likewise. 8029 * rtti.c (ptmd_initializer): Rename to ... 8030 (ptm_initializer): ... here. 8031 (sythesize_tinfo_var): Adjust. Deal with pointer to member 8032 function. 8033 (create_tinfo_types): Adjust. 8034 80352000-05-25 Mark Mitchell <mark@codesourcery.com> 8036 8037 Finish implementation of VTTs. 8038 * cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and 8039 CPTI_VTT_PARM_IDENTIFIER. 8040 (vtt_parm_identifier): New macro. 8041 (vtt_parm_type): Likewise. 8042 (BINFO_SUBVTT_INDEX): Likewise. 8043 (BINFO_VPTR_INDEX): Likewise. 8044 (struct lang_decl): Add vtt_parm. 8045 (DECL_VTT_PARM): New macro. 8046 (DECL_USE_VTT_PARM): Likewise. 8047 (DECL_NEEDS_VTT_PARM_P): Likewise. 8048 (get_vtt_name): Declare. 8049 (build_artificial_parm): Likewise. 8050 (fixup_all_virtual_upcast_offsets): Likewise. 8051 (expand_indirect_vtbls_init): Remove. 8052 * call.c (build_new_method_call): Pass the vtt to subobject 8053 constructors and destructors. 8054 * class.c (get_vtt_name): Give it external linkage. 8055 (build_clone): Handle the magic VTT parameters for clones. 8056 (clone_function_decl): Fix typo in comment. 8057 (build_vtt): Keep track of the indices in the VTTs where various 8058 entities are stored. 8059 (build_vtt_inits): Likewise. 8060 (dfs_build_vtt_inits): Likewise. 8061 (build_ctor_vtbl_group): Tweak type of construction vtables. 8062 (dfs_accumulate_vtbl_inits): Build vtables for all bases, even 8063 primary bases, when building construction vtables. 8064 * decl.c (duplicate_decls): Handle DECL_VTT_PARM. 8065 (initialize_predefined_identifiers): Add vtt_parm_identifier. 8066 (init_decl_processing): Initialize vtt_parm_type. 8067 (grokfndecl): Use DECL_OVERLOADED_OPERATOR_P. 8068 (lang_mark_tree): Make vtt_parm. 8069 * decl2.c (build_artificial_parm): New function. 8070 (maybe_retrofit_in_chrg): Use it. Add VTT parameters. 8071 (grokclassfn): Use build_artificial_parm. 8072 * init.c (initialize_vtbl_ptrs): Call 8073 fixup_all_virtual_upcast_offsets directly. 8074 (perform_member_init): Use the complete subobject destructor for 8075 member cleanups. 8076 (build_vtbl_address): New function. 8077 (expand_virtual_init): Handle VTTs. 8078 * optimize (maybe_clone_body): Likewise. 8079 * search.c (fixup_all_virtual_upcast_offsets): Give it external 8080 linkage. 8081 (expand_indirect_vtbls_init): Remove. 8082 * semantics.c (setup_vtbl_ptr): Fix typos in comment. 8083 * tree.c (make_binfo): Make them bigger. 8084 80852000-05-25 Nathan Sidwell <nathan@codesourcery.com> 8086 8087 * inc/cxxabi.h (__pbase_type_info): Define, based on 8088 __pointer_type_info. 8089 (__pointer_type_info): Derive from __pbase_type_info. Adjust. 8090 (__pointer_to_member_type_info): Likewise. 8091 * tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement. 8092 (__pointer_to_member_type_info::__is_pointer_p): Remove. 8093 (__pointer_type_info::__do_catch): Rename to ... 8094 (__pbase_type_info::__do_catch): ... here. Adjust. 8095 (__pbase_type_info::__pointer_catch): Implement. 8096 (__pointer_type_info::__pointer_catch): Adjust. 8097 (__pointer_to_member_type_info::__pointer_catch): Adjust. 8098 80992000-05-25 Nathan Sidwell <nathan@codesourcery.com> 8100 8101 * tinfo.h (__user_type_info::contained_virtual_p): New 8102 predicate. 8103 * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond 8104 shaped hierarchy. 8105 (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to 8106 diamond shaped hierarchy. Add early out for mixed diamond and 8107 duplicate shaped hierarchy. 8108 81092000-05-24 Mark Mitchell <mark@codesourcery.com> 8110 8111 * cp-tree.h (build_delete): Change prototype. 8112 (build_vec_delete): Likewise. 8113 * call.c (build_scoped_method_call): Use special_function_kind 8114 values to indicate the kind of destruction to be done. 8115 (build_method_call): Likewise. 8116 * decl.c (finish_destructor_body): Likewise. 8117 (maybe_build_cleanup_1): Likewise. Rename to ... 8118 (maybe_build_cleanup): ... this. 8119 * decl2.c (delete_sanity): Use special_function_kind 8120 values to indicate the kind of destruction to be done. 8121 (build_cleanup): Likewise. 8122 * init.c (perform_member_init): Likewise. 8123 (build_vec_delete_1): Likewise. 8124 (build_dtor_call): Simplify. 8125 (build_delete): Use special_function_kind 8126 values to indicate the kind of destruction to be done. 8127 (build_vbase_delete): Likewise. 8128 (build_vec_delete): Likewise. 8129 8130 * init.c (sort_member_init): Fix typo in error message generation 8131 code. 8132 8133Mon May 15 11:46:29 2000 Donald Lindsay <dlindsay@cygnus.com> 8134 8135 * semantics.c (begin_class_definition): make the packed 8136 attribute be sensitive to the "-fpack-struct" command line flag 8137 81382000-05-24 Nathan Sidwell <nathan@codesourcery.com> 8139 8140 Update new-abi upcast algorithm. 8141 * inc/cxxabi.h (__class_type_info::__do_upcast): Change 8142 prototype and meaning of return value. 8143 (__si_class_type_info::__do_upcast): Likewise. 8144 (__vmi_class_type_info::__do_upcast): Likewise. 8145 * tinfo.cc (__class_type_info::__upcast_result): Replace 8146 whole2dst with part2dst. Adjust ctor. 8147 (__class_type_info::__do_upcast): Adjust call of worker function. 8148 (__class_type_info::__do_upcast): Adjust. 8149 (__si_class_type_info::__do_upcast): Adjust. Use parent's 8150 __do_upcast. 8151 (__vmi_class_type_info::__do_upcast): Likewise. Fix private 8152 virtual base in diamond hierarchy bug. 8153 81542000-05-23 Mark Mitchell <mark@codesourcery.com> 8155 8156 * cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable 8157 and bitfield to tinfo_fn_p. 8158 (DECL_TINFO_FN_P): Adjust. 8159 (SET_DECL_TINFO_FN_P): Likewise. 8160 (DECL_MUTABLE_P): Likewise. 8161 (DECL_C_BIT_FIELD): Likewise. 8162 (SET_DECL_C_BIT_FIELD): Likewise. 8163 (CLEAR_DECL_C_BIT_FIELD): Likewise. 8164 (DECL_UNINLINABLE): Likewise. 8165 * class.c (alter_access): Call retrofit_lang_decl if ncessary. 8166 (handle_using_decl): Remove assertion. 8167 (build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl, 8168 to build FIELD_DECLs. 8169 (build_base_field): Likewise. 8170 (layout_class_type): Likewise. 8171 * decl.c (init_decl_processing): Likewise. 8172 (build_ptrmemfunc_type): Likewise. 8173 (grokdeclarator): Likewise. 8174 * decl2.c (grok_x_components): Likewise. 8175 * except.c (call_eh_info): Likewise. 8176 * init.c (init_init_processing): Likewise. 8177 * rtti.c (expand_class_desc): Likewise. 8178 (create_pseudo_type_info): Likewise. 8179 (get_vmi_pseudo_type_info): Likewise. 8180 (create_tinfo_types): Likewise. 8181 * ptree.c (print_lang_decl): Adjust. 8182 * typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC 8183 before checking DECL_MUTABLE_P. 8184 8185 * decl2.c (maybe_retrofit_in_chrg): Don't create in-charge 8186 parameters for template functions. 8187 * pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for 8188 destructors as well as constructors. 8189 81902000-05-22 Mark Mitchell <mark@codesourcery.com> 8191 8192 * class.c (build_ctor_vtbl_group): Set inits. 8193 * optimize.c (maybe_clone_body): Set DECL_INLINE and 8194 DECL_THIS_INLINE appropriately for clones. 8195 8196 * cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. 8197 (DECL_CONV_FN_P): Simplify. 8198 (DECL_OPERATOR): Remove. 8199 (language_to_string): Declare. 8200 * decl.c (duplicate_decls): Fix typo in comment. 8201 (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. 8202 (grok_op_properties): Use DECL_CONV_FN_P instead of 8203 IDENTIFIER_TYPENAME_P. 8204 * dump.c (dequeue_and_dump): Dump the language linkage of 8205 declarations. 8206 * error.c (language_to_string): Give it external linkage. 8207 * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. 8208 (implicitly_declare_fn): Set DECL_LANGUAGE. 8209 * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not 8210 IDENTIFIER_TYPENAME_P. 8211 (tsubst_decl): Likewise. 8212 (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. 8213 * semantics.c (finish_member_declaration): Don't mark members of 8214 classes declared in an extern "C" region as extern "C". 8215 82162000-05-22 Martin v. L�wis <loewis@informatik.hu-berlin.de> 8217 8218 * decl2.c (qualified_lookup_using_namespace): Look through 8219 namespace aliases. 8220 8221 * decl.c (push_using_decl): Return the old decl on namespace level. 8222 82232000-05-21 Mark Mitchell <mark@codesourcery.com> 8224 8225 * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks. 8226 (VTT_NAME_PREFIX): New macro. 8227 (CTOR_VTBL_NAME_PREFIX): Likewise. 8228 (get_ctor_vtbl_name): New function. 8229 * class.c (get_vtable_name): Simplify. 8230 (get_vtt_name): New function. 8231 (get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE. 8232 (dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list 8233 when a virtual base becomes primary. 8234 (finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier. Build 8235 VTTs. 8236 (finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in 8237 additional parameters. 8238 (dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED. 8239 (initialize_array): New function. 8240 (build_vtt): Likewise. 8241 (build_vtt_inits): Likewise. 8242 (dfs_build_vtt_inits): Likewise. 8243 (dfs_fixup_binfo_vtbls): Likewise. 8244 (build_ctor_vtbl_group): Likewise. 8245 (initialize_vtable): Use initialize_array. 8246 (accumulate_vtbl_inits): Reimplement to handle construction 8247 vtables. 8248 (dfs_accumulate_vtbl_inits): Likewise. 8249 (bulid_vtbl_initializer): Adjust parameter name. 8250 * method.c (build_typename_overload): Remove #if 0'd code. 8251 (get_ctor_vtbl_name): New function. 8252 * search.c (dfs_walk_real): Use BINFO_N_BASETYPES. 8253 (init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo. 8254 8255 * cp-tree.h (struct lang_type): Remove search_slot. 8256 (CLASSTYPE_SEARCH_SLOT): Remove. 8257 (emit_base_init): Change prototype. 8258 (initialize_vtbl_ptrs): Likewise. 8259 (expand_indirect_vtbls_init): Likewise. 8260 (clear_search_slots): Remove. 8261 * decl.c (lang_mark_tree): Don't mark search_slot. 8262 * init.c (initialize_vtbl_ptrs): Simplify. 8263 (emit_base_init): Likewise. 8264 * search.c (struct vbase_info): Document decl_ptr. 8265 (convert_pointer_to_single_level): Remove. 8266 (dfs_find_vbases): Remove. 8267 (dfs_init_base_pointers): Simplify. 8268 (dfs_clear_vbase_slots): Remove. 8269 (dfs_vtable_path_unmark): New function. 8270 (init_vbase_pointers): Simplify. 8271 (expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT. 8272 (expand_indirect_vtbls_init): Simplify. Don't call 8273 mark_all_temps_used. 8274 * semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and 8275 initialize_vtbl_ptrs. 8276 82772000-05-20 Zack Weinberg <zack@wolery.cumb.org> 8278 8279 * except.c: Add static prototypes. 8280 82812000-05-20 H.J. Lu <hjl@gnu.org> 8282 8283 * Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext). 8284 82852000-05-19 Mark Mitchell <mark@codesourcery.com> 8286 8287 Don't create a separate copy of virtual bases for the 8288 CLASSTYPE_VBASECLASSES list. 8289 * cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation. 8290 (BINFO_FOR_VBASE): Remove. 8291 (CANONICAL_BINFO): Adjust. 8292 (binfo_for_vbase): New function. 8293 * class.c (build_vbase_pointer_fields): Use binfo_for_vbase 8294 instead of BINFO_FOR_VBASE. 8295 (build_vbase_pointer): Likewise. 8296 (build_secondary_vtable): Likewise. 8297 (dfs_mark_primary_bases): Likewise. 8298 (mark_primary_bases): Likewise. 8299 (layout_nonempty_base_or_field): Likewise. 8300 (dfs_set_offset_for_shared_vbases): Likewise. 8301 (dfs_set_offset_for_unshared_vbases): Likewise. 8302 (layout_virtual_bases): Likewise. Adjust for changes to the 8303 CLASSTYPE_VBASECLASSES list. 8304 (dump_class_hierarchy_r): Use binfo_for_vbase 8305 instead of BINFO_FOR_VBASE. 8306 (dump_class_hierarchy): Likewise. 8307 (finish_vtbls): Likewise. 8308 (build_vtbl_initializer): Adjust for changes to the 8309 CLASSTYPE_VBASECLASSES list. 8310 (build_vbase_offset_vtbl_entries): Use binfo_for_vbase. 8311 * decl.c (finish_destructor_body): Adjust for changes to the 8312 CLASSTYPE_VBASECLASSES list. 8313 * init.c (sort_base_init): Use binfo_for_vbase. 8314 (construct_virtual_bases): Adjust for changes to the 8315 CLASSTYPE_VBASECLASSES list. 8316 (expand_member_init): Use binfo_for_vbase. 8317 (build_vbase_delete): Adjust for changes to the 8318 CLASSTYPE_VBASECLASSES list. 8319 * method.c (do_build_copy_constructor): Likewise. 8320 * rtti.c (get_base_offset): Use binfo_for_vbase. 8321 (expand_class_desc): Remove #if 0'd code. 8322 * search.c (struct vbase_info): Remove vbase_types. 8323 (get_base_distance): Use binfo_for_vbase. 8324 (lookup_field_queue_p): Use CANONICAL_BINFO. 8325 (get_shared_vbase_if_not_primary): Use binfo_for_vbase. 8326 (get_pure_virtuals): Adjust for changes to the 8327 CLASSTYPE_VBASECLASSES list. 8328 (dfs_find_vbases): Use binfo_for_vbase. 8329 (dfs_init_vbase_pointers): Likewise. 8330 (init_vbase_pointers): Don't initialize vi.vbase_types. 8331 (virtual_context): Use binfo_for_vbase. 8332 (fixup_all_virtual_upcast_offsets): Adjust for changes to the 8333 CLASSTYPE_VBASECLASSES list. 8334 (expand_indirect_vtbls_init): Simplify. 8335 (dfs_get_vbase_types): Don't replicate virtual bases. 8336 (find_vbase_instance): Use binfo_for_vbase. 8337 (binfo_for_vbase): New function. 8338 * typeck.c (get_delta_difference): Use binfo_for_vbase. 8339 83402000-05-17 Mark Mitchell <mark@codesourcery.com> 8341 8342 * decl2.c (finish_anon_union): Generalize error messages to handle 8343 anonymous structures. 8344 * init.c (perform_member_init): Remove `name' parameter. 8345 (build_field_list): New function. 8346 (sort_member_init): Handle anonymous union initialization order 8347 correctly. Check for multiple initializations of the same union. 8348 (emit_base_init): Don't look up fields by name here. 8349 (expand_member_init): Record the result of name lookup for future 8350 reference. 8351 * typeck.c (build_component_ref): Fix formatting. 8352 8353Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> 8354 8355 * decl.c (pop_label): Replace warn_unused with warn_unused_label. 8356 * typeck.c (build_x_compound_expr): Replace warn_unused with 8357 warn_unused_value. 8358 8359 * decl2.c (lang_decode_option): Update -Wall unused flags by 8360 calling set_Wunused. 8361 83622000-05-16 Mark Mitchell <mark@codesourcery.com> 8363 8364 * cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation. 8365 * init.c (dfs_vtable_path_unmark): Remove. 8366 * search.c (marked_new_vtable_p): Likewise. 8367 (unmarked_new_vtable_p): Likewise. 8368 (dfs_search_slot_nonempty_p): Likewise. 8369 (dfs_mark): Likewise. 8370 (dfs_vtable_path_unmark): Likewise. 8371 (dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED. 8372 (dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED. 8373 (dfs_init_vbase_pointers): Remove special-case new ABI code. 8374 (dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED. 8375 (init_vbase_pointers): Simplify. 8376 (expand_indirect_vtbls_init): Likewise. 8377 8378 * class.c (copy_virtuals): New function. 8379 (build_primary_table): Use it. 8380 (build_secondary_vtable): Likewise. 8381 (modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to 8382 indicate that no vcall offset is required. 8383 (add_virtual_function): Likewise. 8384 (modify_all_vtables): Likewise. 8385 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 8386 (dfs_accumulate_vtbl_inits): Likewise. 8387 (build_vtbl_initializer): Make changes to handle construction 8388 vtables. 8389 (dfs_build_vcall_offset_vtbl_entries): Likewise. 8390 (build_rtti_vtbl_entries): Likewise. 8391 (build_vtable_entries): Handle a NULL vcall_index. 8392 83932000-05-15 Gabriel Dos Reis <gdr@codesourcery.com> 8394 8395 * decl2.c (lang_decode_option): Fix thinko. 8396 83972000-05-14 Jason Merrill <jason@casey.cygnus.com> 8398 8399 * except.c (check_handlers): New fn. 8400 * cp-tree.h: Declare it. 8401 * semantics.c (finish_handler_sequence): Call it. 8402 (finish_function_handler_sequence): Likewise. 8403 (finish_handler_parms): Set TREE_TYPE on the handler. 8404 * cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro. 8405 * search.c (get_base_distance_recursive): If protect>1, ignore 8406 special access. 8407 (get_base_distance): Don't reduce watch_access. 8408 84092000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> 8410 8411 * lex.c: #include diagnostic.h. 8412 (lang_init_options): Set default prefixing rules. 8413 8414 * lang-options.h: Add -fdiagnostics-show-location=. 8415 8416 * decl2.c: #include diagnostic.h. 8417 (lang_decode_option): Handle -fdiagnostics-show-location=. 8418 84192000-05-12 Nathan Sidwell <nathan@codesourcery.com> 8420 8421 * tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes. 8422 * vec.cc: Revert my 2000-05-07 change. 8423 84242000-05-11 Jason Merrill <jason@casey.cygnus.com> 8425 8426 * class.c (check_field_decls): Complain about non-static data 8427 members with same name as class in class with constructor. 8428 84292000-05-10 Jason Merrill <jason@casey.cygnus.com> 8430 8431 * decl.c (grokdeclarator): Allow non-static data members with 8432 same name as class. 8433 84342000-05-09 Zack Weinberg <zack@wolery.cumb.org> 8435 8436 * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, 8437 and pending_inline.filename. Update prototypes. 8438 * decl.c (define_label): Constify filename parameter. 8439 * decl2.c (warn_if_unknown_interface): Constify local char *. 8440 * input.c Constify input_source.filename. Don't declare 8441 input_filename or lineno. Constify filename parameter to feed_input. 8442 * lex.c (init_parse): Constify parameter and return value. 8443 (cp_pragma_interface, cp_pragma_implementation): Constify 8444 filename argument. 8445 (reinit_parse_for_method, reinit_parse_for_block, 8446 reinit_parse_for_expr, feed_defarg, handle_cp_pragma): 8447 Constify local char *. 8448 * pt.c: Don't declare lineno or input_filename. 8449 (print_template_context, tsubst_friend_function, tsubst_decl, 8450 tsubst, instantiate_decl): Constify local char *. 8451 * semantics.c (expand_body): Constify local char *. 8452 * tree.c (build_srcloc): Constify filename parameter. 8453 * typeck.c (c_expand_asm_operands): Constify filename 8454 parameter. 8455 84562000-05-08 Nathan Sidwell <nathan@codesourcery.com> 8457 8458 * tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix 8459 offsetof expansion. 8460 84612000-05-08 Branko Cibej <branko.cibej@hermes.si> 8462 8463 * inc/cxxabi.h: Fix typos in comment. 8464 (__base_class_info::__offset): Use a static_cast. 8465 84662000-05-07 Nathan Sidwell <nathan@codesourcery.com> 8467 8468 * inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place 8469 of std::size_t and std::ptrdiff_t respectively. 8470 * tinfo.cc: Likewise. 8471 * vec.cc: Likewise. 8472 84732000-05-06 Richard Henderson <rth@cygnus.com> 8474 8475 * typeck.c (build_c_cast): Don't warn integer->pointer size 8476 mismatch for constants. 8477 84782000-05-06 Nathan Sidwell <nathan@codesourcery.com> 8479 8480 * rtti.c (ptmd_initializer): Set non-public, if class is 8481 incomplete. 8482 8483 * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". 8484 (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 8485 __cxa_vec_delete): Likewise. 8486 * tinfo.cc (__dynamic_cast): Likewise. 8487 * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 8488 __cxa_vec_delete): Likewise. 8489 84902000-05-04 Mark Mitchell <mark@codesourcery.com> 8491 8492 * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. 8493 (SET_FNADDR_FROM_VTABLE_ENTRY): Likewise. 8494 (lang_decl_flags): Add vcall_offset. 8495 (THUNK_VCALL_OFFSET): Use it. 8496 * decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk. 8497 * method.c (make_thunk): Create the lang_decl here, not in 8498 emit_thunk. 8499 (emit_thunk): Make generic thunks into ordinary functions once 8500 they have been fed to expand_body. 8501 * semantics.c (expand_body): Set current_function_is_thunk here. 8502 85032000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8504 8505 * class.c (update_vtable_entry_for_fn): Prototype. 8506 8507 * pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl' 8508 and `tmpl'. 8509 8510 * search.c (dfs_build_inheritance_graph_order): Prototype. 8511 85122000-05-04 Mark Mitchell <mark@codesourcery.com> 8513 8514 * cp-tree.h (special_function_kind): Add various kinds of 8515 destructors. 8516 (special_function_p): New function. 8517 * class.c (overrides): Don't let one kind of destructor override 8518 another. 8519 * decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding 8520 whether or not to instantiate a template. 8521 * tree.c (special_function_p): Define. 8522 85232000-05-03 Mark Mitchell <mark@codesourcery.com> 8524 8525 * cp-tree.def (THUNK_DECL): Remove. 8526 * cp-tree.h (DECL_THUNK_P): New macro. 8527 (DECL_NON_THUNK_FUNCTION_P): Likewise. 8528 (DECL_EXTERN_C_FUNCTION_P): Likewise. 8529 (SET_DECL_THUNK_P): Likewise. 8530 (DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P. 8531 (FNADDR_FROM_VTABLE_ENTRY): Likewise. 8532 (DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P. 8533 * decl.c (decls_match): Use DECL_EXTERN_C_P. 8534 (duplicate_decls): Likewise. 8535 (pushdecl): Likewise. Adjust thunk handling. 8536 (grokfndecl): Use DECL_EXTERN_C_P. 8537 * decl2.c (mark_vtable_entries): Use DECL_THUNK_P. 8538 * dump.c (dequeue_and_dump): Remove THUNK_DECL handling. 8539 * except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P. 8540 * expr.c (cplus_expand_expr): Remove THUNK_DECL handling. 8541 * method.c (make_thunk): Use SET_DECL_THUNK_P. Set 8542 DECL_NO_STATIC_CHAIN. 8543 (emit_thunk): Don't play games with TREE_CODE on thunks. Don't 8544 set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk. 8545 * search.c (covariant_return_p): Remove THUNK_DECL handling. 8546 * ir.texi: Update. 8547 85482000-05-01 Jason Merrill <jason@casey.cygnus.com> 8549 8550 * tree.c (walk_tree): Set lineno. 8551 85522000-05-01 Mark Mitchell <mark@codesourcery.com> 8553 8554 * exception.cc: Update license notice. 8555 * new.cc: Likewise. 8556 * new1.cc: Likewise. 8557 * new2.cc: Likewise. 8558 * tinfo.cc: Likewise. 8559 * tinfo2.cc: Likewise. 8560 * vec.cc: Likewise. 8561 * inc/cxxabi.h: Likewise. 8562 * inc/exception: Likewise. 8563 * inc/new: Likewise. 8564 * inc/new.h: Likewise. 8565 * inc/typeinfo: Likewise. 8566 85672000-05-01 Jason Merrill <jason@casey.cygnus.com> 8568 8569 * tree.c (build_target_expr_with_type): If we already have a 8570 TARGET_EXPR, just return it. 8571 8572 * optimize.c (initialize_inlined_parameters): Don't generate an 8573 EXPR_STMT if we can just use DECL_INITIAL. 8574 * decl.c (emit_local_var): Only make the initialization a 8575 full-expression if stmts_are_full_exprs_p. 8576 85772000-05-01 Mark Mitchell <mark@codesourcery.com> 8578 8579 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New 8580 macro. 8581 * call.c (standard_conversion): Use it. 8582 (direct_reference_binding): Likewise. 8583 (build_over_call): Likewise. 8584 (is_properly_derived_from): Likewise. 8585 (compare_ics): Likewise. 8586 * class.c (resolves_to_fixed_type_p): Likewise. 8587 * optimize.c (declare_return_variable): Likewise. 8588 * pt.c (is_specialization_of): Likewise. 8589 (unify): Likewise. 8590 * typeck.c (comp_target_parms): Likeiwse. 8591 (build_static_cast): Likewise. 8592 (build_reinterpret_cast): Likewise. 8593 (build_const_cast): Likewise. 8594 (comp_ptr_ttypes_real): Likewise. 8595 (comp_ptr_ttypes_const): Likewise. 8596 * typeck2.c (process_init_constructor): Likewise. 8597 85982000-04-30 Scott Snyder <snyder@fnal.gov> 8599 8600 * decl.c (finish_destructor_body): Use the base destructor when 8601 destroying virtual bases. 8602 86032000-04-30 Mark Mitchell <mark@codesourcery.com> 8604 8605 * expr.c (cplus_expand_expr): Preserve temporaries when expanding 8606 STMT_EXPRs. 8607 * optimize.c (struct inline_data): Add target_exprs field. 8608 (declare_return_variable): When a function returns an aggregate, 8609 use the variable declared in the TARGET_EXPR as the remapped 8610 DECL_RESULT. 8611 (expand_call_inline): Update the pending target_exprs stack. 8612 (optimize_function): Initialize the stack. 8613 8614 * decl2.c (finish_file): Fix typo in comment. 8615 8616 * method.c (emit_thunk): Don't try to return a `void' value. 8617 8618 * optimize.c (initialize_inlined_parameters): If the parameter is 8619 addressable, we need to make a new VAR_DECL, even if the 8620 initializer is constant. 8621 86222000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro> 8623 8624 * decl.c (grok_op_properties): Add an extra check of argtypes. 8625 86262000-04-27 Mark Mitchell <mark@codesourcery.com> 8627 8628 * optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying 8629 variables. 8630 (initialize_inlined_parameters): Try to avoid creating new 8631 VAR_DECLs. 8632 86332000-04-27 Alex Samuel <samuel@codesourcery.com> 8634 8635 * lex.c (my_get_run_time): Remove. 8636 (init_filename_times): Use get_run_time instead of my_get_run_time. 8637 (check_newline): Likewise. 8638 (dump_time_statistics): Likewise. 8639 * decl2.c (finish_file): Push and pop timevar TV_VARCONST instead 8640 of computing elapsed time explicitly. 8641 86422000-04-26 Mark Mitchell <mark@codesourcery.com> 8643 8644 * cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P. 8645 * init.c (decl_constant_value): Check TREE_READONLY_DECL_P. 8646 * call.c (convert_like_real): Don't test TREE_READONLY_DECL_P 8647 before calling decl_constant_value. 8648 * class.c (check_bitfield_decl): Likewise. 8649 * cvt.c (ocp_convert): Likewise. 8650 (convert): Likewise. 8651 * decl.c (compute_array_index_type): Likewise. 8652 (build_enumerator): Likewise. 8653 * decl2.c (check_cp_case_value): Likewise. 8654 * pt.c (convert_nontype_argument): Likewise. 8655 (tsubst): Likewise. 8656 * typeck.c (decay_conversion): Likewise. 8657 (build_compound_expr): Likewise. 8658 (build_reinterpret_cast): Likewise. 8659 (build_c_cast): Likewise. 8660 (convert_for_assignment): Likewise. 8661 86622000-04-26 Jason Merrill <jason@casey.cygnus.com> 8663 8664 * decl.c (finish_function): Don't play games with DECL_INLINE. 8665 86662000-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 8667 8668 * ir.texi: Correct typo. 8669 86702000-04-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 8671 8672 * decl.c (grokdeclarator): Reject VLAs as members. 8673 86742000-04-24 Gabriel Dos Reis <gdr@codesourcery.com> 8675 8676 * call.c (standard_conversion): Accept conversion between 8677 COMPLEX_TYPEs. 8678 8679 * cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE. 8680 86812000-04-24 Zack Weinberg <zack@wolery.cumb.org> 8682 8683 * decl2.c (finish_file): Remove double setup for accounting 8684 compile time. 8685 86862000-04-24 Robert Lipe <robertlipe@usa.net> 8687 8688 * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD. 8689 86902000-04-23 Benjamin Kosnik <bkoz@cygnus.com> 8691 8692 * new.cc (set_new_handler): Needs to be in std::. 8693 86942000-04-23 Mark Mitchell <mark@codesourcery.com> 8695 8696 * cp-tree.h (lang_decl): Remove pretty_function_p. 8697 (DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the 8698 language-specific node. 8699 * decl.c (cp_make_fname_decl): Use build_decl, not 8700 build_lang_decl, to build the variables. 8701 (grokvardecl): Don't call build_lang_decl for local variables in 8702 templates. 8703 (grokdeclarator): Don't call build_lang_decl for local type 8704 declarations in templates. 8705 * lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated 8706 zero'd memory, rather than calling memset. 8707 * pt.c: Include hashtab.h. 8708 (local_specializations): New variable. 8709 (retrieve_local_specialization): Use it. 8710 (register_local_specialization): Likewise. 8711 (tsubst_decl): Don't assume local variables have 8712 DECL_LANG_SPECIFIC. 8713 (instantiate_decl): Set up local_specializations. 8714 * Makefile.in (HTAB_H): New variable. 8715 87162000-04-23 Richard Henderson <rth@cygnus.com> 8717 8718 * typeck.c (c_expand_asm_operands): Restore the original 8719 contents of the output list. 8720 87212000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 8722 8723 * ir.texi: Document complex number representation. 8724 87252000-04-20 Nathan Sidwell <nathan@codesourcery.com> 8726 8727 * rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi. 8728 (target_incomplete_p): New function. 8729 (tinfo_base_init): Create comdat NTBS name variable. 8730 (ptr_initializer): Add non_public parameter. Calculate it. 8731 (ptmd_initializer): Likewise. 8732 (synthesize_tinfo_var): Adjust. Emit incomplete class tinfo. 8733 (create_real_tinfo_var): Add non_public parameter. Use it. 8734 Push proxy into global namespace. 8735 * inc/cxxabi.h (__pointer_type_info::incomplete_class_mask): 8736 New enumeration. 8737 * inc/typeinfo (type_info::before, type_info::operator==): 8738 Compare __name addresses. 8739 8740 * tinfo2.cc: Remove new-abi builtins comment. 8741 87422000-04-20 Jason Merrill <jason@casey.cygnus.com> 8743 8744 * typeck.c (build_x_function_call): Resolve an OFFSET_REF. 8745 8746 * call.c (joust): Exit early if we get the same function, too. 8747 8748 * decl2.c (key_method): Return NULL_TREE for template classes. 8749 (import_export_class): Don't need to check for template classes. 8750 87512000-04-18 Zack Weinberg <zack@wolery.cumb.org> 8752 8753 * lex.c: Remove references to cccp.c. 8754 87552000-04-18 Mark Mitchell <mark@codesourcery.com> 8756 8757 * cp-tree.h (lang_decl_flags): Remove const_memfunc and 8758 volatile_memfunc. Add destructor_attr. Adjust dummy. 8759 (DECL_DESTRUCTOR_P): Use destructor_attr. 8760 (DECL_CONST_MEMFUNC_P): Reimplement. 8761 (DECL_VOLATILE_MEMFUNC_P): Remove. 8762 * class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS. 8763 (overrides): Use DECL_DESTRUCTOR_P. 8764 (check_for_override): Likewise. 8765 * decl.c (start_function): Likewise. 8766 * decl2.c (grokfclassfn): Likewise. 8767 (check_classfn): Likewise. 8768 (grok_function_init): Likewise. 8769 87702000-04-17 Mark Mitchell <mark@codesourcery.com> 8771 8772 * decl2.c (grokfield): Issue error on illegal data member 8773 declaration. 8774 8775Mon Apr 17 17:11:16 2000 Mark P Mitchell <mark@codesourcery.com> 8776 8777 * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. 8778 87792000-04-16 Mark Mitchell <mark@codesourcery.com> 8780 8781 * class.c (build_vtable_entry): Don't build thunks for type-info 8782 functions. 8783 87842000-04-16 Jason Merrill <jason@casey.cygnus.com> 8785 8786 * decl.c (decls_match): Allow a redeclaration of a builtin to 8787 specify args while the builtin did not. 8788 87892000-04-15 Mark Mitchell <mark@codesourcery.com> 8790 8791 * cp-tree.def (THUNK_DECL): Add to documentation. 8792 * cp-tree.h (flag_huge_objects): Declare. 8793 * class.c (modify_vtable_entry): Tidy. 8794 (update_vtable_entry_for_fn): Split out from dfs_modify_vtables. 8795 Calculate delta appropriately for the new ABI. 8796 (dfs_modify_vtables): Use it. 8797 (modify_all_vtables): Fix thinko in code to add overriding copies 8798 of functions to primary vtables. 8799 (build_clone): Fix typo in comment. 8800 (clone_function_decl): Correct order of destructors in vtable. 8801 (build_vbase_offset_vtbl_entries): Adjust comment. 8802 (dfs_vcall_offset_queue_p): Remove. 8803 (dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX. 8804 (build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases. 8805 (build_vtable_entry): Correct check for pure virtual functions. 8806 Don't declare flag_huge_objects. 8807 * decl.c (flag_huge_objects): Remove declaration. 8808 * method.c (make_thunk): Tweak mangling for vcall offset thunks. 8809 Use int_size_in_bytes. 8810 (emit_thunk): Handle vcall offset thunks. 8811 8812Sat Apr 15 16:00:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8813 8814 * decl2.c (parse_time, varconst_time): Delete declarations. 8815 (finish_file): Delete LINENO declaration. 8816 START_TIME and THIS_TIME now long. 8817 88182000-04-13 Nathan Sidwell <nathan@codesourcery.com> 8819 8820 * class.c (build_base_field): Reformat comment. 8821 8822 * inc/cxxabi.h (stddef.h): Comment inclusion. 8823 (__base_class_info::__offset): Comment shift. 8824 88252000-04-12 Mark Mitchell <mark@codesourcery.com> 8826 8827 * cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro. 8828 (cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER. 8829 (cp_push_exception_identifier): New macro. 8830 (DECL_COMPLETE_DESTRUCTOR_P): New macro. 8831 (DECL_BASE_DESTRUCTOR_P): Likewise. 8832 (DECL_DELETING_DESTRUCTOR_P): Likewise. 8833 (get_vtbl_decl_for_binfo): Fix formatting. 8834 (in_charge_arg_for_name): New macro. 8835 (maybe_build_cleanup_and_delete): Remove declaration. 8836 * call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P. 8837 (in_charge_arg_for_name): New function. 8838 (build_new_method_call): Use it. Handle cloned destructors. 8839 (build_clone): Don't make the base constructor virtual. 8840 Automatically defer generated functions. 8841 (clone_function_decl): Handle destructors, too. 8842 (clone_constructors_and_destructors): Likewise. 8843 (create_vtable_ptr): Don't create a vtable entry for a cloned 8844 function. 8845 * decl.c (predefined_identifier): Add ctor_or_dtor_p. 8846 (initialize_predefined_identifiers): Update appropriately. 8847 (finish_destructor_body): Simplify. 8848 (maybe_build_cleanup_and_delete): Remove. 8849 * except.c (expand_throw): Handle new-ABI destructors. 8850 * init.c (expand_cleanup_for_base): Use base_dtor_identifier. 8851 (build_dtor_call): New function. 8852 (build_delete): Use it. Simplify. 8853 * optimize.c (maybe_clone_body): Handle destructors. 8854 * search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P. 8855 8856 * exception.cc (cleanup_fn): New typedef. 8857 (CALL_CLEANUP): New macro. 8858 (cp_eh_info): Use them. 8859 (__cp_push_exception): Likewise. 8860 (__cp_pop_exception): Likewise. 8861 88622000-04-11 Mark Mitchell <mark@codesourcery.com> 8863 8864 * cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. 8865 (complete_dtor_identifier): New macro. 8866 (CLASSTYPE_FIRST_CONVERSION): Remove. 8867 (CLASSTYPE_CONSTRUCTOR_SLOT): New macro. 8868 (CLASSTYPE_DESTRUCTOR_SLOT): Likewise. 8869 (CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise. 8870 (CLASSTYPE_CONSTRUCTORS): Likewise. 8871 (CLASSTYPE_DESTRUCTORS): Likewise. 8872 (lang_decl): Add cloned_function. 8873 (DECL_COMPLETE_CONSTRUCTOR_P): New macro. 8874 (DECL_BASE_CONSTRUCTOR_P): Likewise. 8875 (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. 8876 (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. 8877 (DECL_CLONED_FUNCTION_P): Likewise. 8878 (DECL_CLONED_FUNCTION): Likewise. 8879 (clone_function_decl): Declare. 8880 (maybe_clone_body): Likewise. 8881 * call.c (build_user_type_conversion_1): Call complete object 8882 constructors in the new ABI. 8883 (build_new_method_call): Don't add in-charge parameters under the 8884 new ABI. 8885 * class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, 8886 DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and 8887 CLASSTYPE_DESTRUCTOR_SLOT. 8888 (build_clone): New function. 8889 (clone_function_decl): Likewise. 8890 (clone_constructors_and_destructors): Likewise. 8891 (check_bases_and_members): Use it. 8892 * decl.c (iniitialize_predefined_identifiers): Initialize 8893 complete_dtor_identifier. 8894 (finish_function): Don't add extra code to a clone. 8895 (lang_mark_tree): Mark cloned_function. 8896 * decl2.c (mark_used): Don't bother trying to instantiate things 8897 we synthesized. 8898 * dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice. 8899 * method.c (set_mangled_name_for_decl): Don't treat clones as 8900 constructors. 8901 (synthesize_method): Sythesize cloned functions, not the clones. 8902 * optimize.c (inline_data): Update comment on ret_label. 8903 (remap_block): Don't assume DECL_INITIAL exists. 8904 (copy_body_r): Allow ret_label to be NULL. 8905 (maybe_clone_body): Define. 8906 * pt.c (tsubst_decl): Handle clones. 8907 (instantiate_clone): New function. 8908 (instantiate_template): Use it. 8909 (set_mangled_name_for_template_decl): Don't treat clones as 8910 constructors. 8911 * search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT, 8912 CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT. 8913 * semantics.c (expand_body): Clone function bodies as necessary. 8914 8915 * optimize.c (remap_decl): Avoid sharing structure for arrays 8916 whose size is only known at run-time. 8917 * tree.c (copy_tree_r): Don't copy PARM_DECLs. 8918 8919 * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr 8920 to has_in_charge_parm_p. 8921 (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... 8922 (DECL_HAS_IN_CHARGE_PARM_P): ... this. 8923 (DECL_COPY_CONSTRUCTOR_P): New macro. 8924 * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. 8925 (build_user_type_conversion_1): Likewise. 8926 (convert_like_real): Likewise. 8927 (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. 8928 * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. 8929 (copy_args_p): Likewise. 8930 (grok_ctor_properties): Likewise. 8931 (start_function): Likewise. 8932 * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. 8933 * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. 8934 * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. 8935 * method.c (do_build_copy_constructor): Use 8936 DECL_HAS_IN_CHARGE_PARM_P. 8937 (synthesize_method): Likewise. 8938 * pt.c (instantiate_template): Remove goto. 8939 * tree.c (build_cplus_method_type): Remove mention of obstacks in 8940 comment. 8941 8942 * cp-tre.h (finish_function): Change prototype. 8943 * decl.c (end_cleanup_fn): Adjust caller. 8944 (finish_function): Take only one parameter. 8945 * decl2.c (finish_objects): Adjust caller. 8946 (finish_static_storage_duration_function): Likewise. 8947 * method.c (emit_thunk): Likewise. 8948 * parse.y: Likewise. 8949 * parse.c: Regenerated. 8950 * pt.c (instantiate_decl): Likewise. 8951 * rtti.c (synthesize_tinfo_fn): Likewise. 8952 * semantics.c (expand_body): Likewise. 8953 8954 * cp-tree.h (copy_decl): New function. 8955 * class.c (finish_struct_1): Use it. 8956 * lex.c (copy_decl): Define it. 8957 * pt.c (tsubst_decl): Likewise. 8958 * tree.c (copy_template_template_parm): Likewise. 8959 8960 * cp-tree.h (lang_type): Remove has_nonpublic_ctor and 8961 has_nonpublic_assign_ref. 8962 (TYPE_HAS_NONPUBLIC_CTOR): Don't declare. 8963 (TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise. 8964 * class.c (finish_struct_methods): Don't set 8965 TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF. 8966 (interface_only): Don't declare. 8967 (interface_unknown): Likewise. 8968 89692000-04-11 Martin v. L�wis <loewis@informatik.hu-berlin.de> 8970 8971 * tree.h (HAVE_TEMPLATES): Remove definition. 8972 * lang-options.h (-fthis-is-variable): Remove documentation. 8973 89742000-04-10 Jason Merrill <jason@casey.cygnus.com> 8975 8976 * class.c (instantiate_type): Handle object-relative template-id. 8977 8978 * semantics.c (finish_expr_stmt): Call convert_to_void here. 8979 * decl.c (cplus_expand_expr_stmt): Not here. 8980 8981 * rtti.c (build_dynamic_cast_1): Call non_lvalue. 8982 Initialize exprtype earlier. 8983 8984 * parse.y (fn.def1): Check for defining types in return types. 8985 8986 * decl.c (check_tag_decl): Notice extra fundamental types. 8987 Diagnose empty decls in classes, too. 8988 8989 * decl.c (grokdeclarator): Don't override an anonymous name if no 8990 declarator was given. 8991 8992 * cvt.c (convert_to_void): Call resolve_offset_ref. 8993 8994 * typeck.c (build_x_function_call): Abort if we get an OFFSET_REF. 8995 8996 * decl2.c (decl_namespace): Handle getting a type. 8997 8998 * typeck.c (build_c_cast): Re-enable warning for cast between 8999 pointer and integer of different size. 9000 90012000-04-10 Nathan Sidwell <nathan@codesourcery.com> 9002 9003 * inc/cxxabi.h (__pointer_type_info): Add restrict and 9004 incomplete flags. 9005 (__pointer_type_info::__pointer_catch): New virtual function. 9006 (__pointer_to_member_type_info): Derive from 9007 __pointer_type_info. Adjust. 9008 (__pointer_to_member_type_info::__do_catch): Remove. 9009 (__pointer_to_member_type_info::__is_pointer_p): Declare. 9010 (__pointer_to_member_type_info::__pointer_catch): Declare. 9011 * rtti.c (qualifier_flags): Add restrict flag. 9012 (ptmd_initializer): Reorder members. 9013 (create_tinfo_types): Expand comments. Reorder 9014 ptmd_desc_type_node members. 9015 * tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p): 9016 Implement. 9017 (__pointer_type_info::__do_catch): Move specific code into 9018 __pointer_catch. Call it. 9019 (__pointer_type_info::__pointer_catch): Non-pointer-to-member 9020 specific catch checking. Fix void conversion check. 9021 (__pointer_to_member_type_info::__do_catch): Remove. 9022 (__pointer_to_member_type_info::__pointer_catch): Implement. 9023 90242000-04-10 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9025 9026 * lex.c (init_parse): Remove traces of classof and headof. 9027 * decl2.c (flag_operator_names): Default to 1. 9028 (lang_decode_option): Do not set it for -ansi. 9029 90302000-04-09 Mark Mitchell <mark@codesourcery.com> 9031 9032 * cp-tree.h (struct lang_decl): Remove main_decl_variant. 9033 (DECL_MAIN_VARIANT): Remove. 9034 * decl.c (duplicate_decls): Don't set it. 9035 (start_function): Likewise. 9036 (lang_mark_tree): Don't mark it. 9037 * decl2.c (defer_fn): Don't use it. 9038 * lex.c (retrofit_lang_decl): Don't set it. 9039 * pt.c (tsubst_decl): Likewise. 9040 * ptree.c (print_lang_decl): Don't print it. 9041 * typeck.c (mark_addressable): Don't use it. 9042 90432000-04-09 Nathan Sidwell <nathan@codesourcery.com> 9044 9045 * vec.cc: Include <new> and <exception>. 9046 (__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup. 9047 (__cxa_vec_dtor): Catch dtor exceptions, and rethrow or 9048 terminate. 9049 (__cxa_vec_delete): Catch dtor exceptions. 9050 90512000-04-09 Nathan Sidwell <nathan@codesourcery.com> 9052 9053 Prepend __ to implementation defined names. 9054 * inc/typeinfo (type_info): Rename _name to __name. 9055 (type_info::type_info): Rename parameter. 9056 (type_info::operator==, type_info::operator!=, 9057 type_info::before): Likewise. 9058 (type_info::is_pointer_p, type_info::is_function_p, 9059 type_info::do_catch, type_info::do_upcast): Prepend __. Rename 9060 parameters. 9061 * inc/cxxabi.h 9062 (__fundamental_type_info::__fundamental_type_info) Rename parameters. 9063 (__pointer_type_info::__pointer_type_info): Likewise. 9064 (__pointer_type_info::is_pointer_p, 9065 __pointer_type_info::do_catch): Prepend __. Rename parameters. 9066 (__array_type_info::__array_type_info): Rename parameters. 9067 (__function_type_info::__function_type_info): Likewise. 9068 (__function_type_info::is_function_p): Prepend __. 9069 (__enum_type_info::__enum_type_info): Rename parameters. 9070 (__pointer_to_member_type_info::__pointer_to_member_type_info): 9071 Likewise. 9072 (__pointer_to_member_type_info::do_catch): Prepend __. Rename 9073 parameters. 9074 (__base_class_info::is_virtual_p, is_public_p, offset): Prepend __. 9075 (__class_type_info::__class_type_info): Rename parameters. 9076 (__class_type_info::sub_kind): Prepend __. Adjust member names. 9077 (__class_type_info::upcast_result, 9078 __class_type_info::dyncast_result): Prepend __. Move definition 9079 into tinfo.cc. 9080 (__class_type_info::do_upcast, __class_type_info::do_catch, 9081 __class_type_info::find_public_src, 9082 __class_type_info::do_dyncast, 9083 __class_type_info::do_find_public_src): Prepend __. Rename 9084 parameters. 9085 (__si_class_type_info::__si_class_type_info): Rename parameters. 9086 (__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast, 9087 __si_class_type_info::do_find_public_src): Prepent __. Rename 9088 parameters. 9089 (__vmi_class_type_info::__vmi_class_type_info): Rename parameters. 9090 (__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast, 9091 __vmi_class_type_info::do_find_public_src): Prepent __. Rename 9092 parameters. 9093 (__dynamic_cast): Rename parameters. 9094 * tinfo.cc (type_info::is_pointer_p, type_info::is_function_p, 9095 type_info::do_catch, type_info::do_upcast): Prepend __. 9096 (contained_p, public_p, virtual_p, contained_public_p, 9097 contained_nonpublic_p, contained_nonvirtual_p): Adjust. 9098 (__class_type_info::do_catch, 9099 __class_type_info::do_upcast): Prepend __. Adjust. 9100 (__class_type_info::__upcast_result, 9101 __class_type_info::__dyncast_result): Move from inc/cxxabi.h. 9102 Adjust. 9103 (__class_type_info::find_public_src): Prepend __. Adjust. 9104 (__class_type_info::do_find_public_src, 9105 __si_class_type_info::do_find_public_src, 9106 __vmi_class_type_info::do_find_public_src): Likewise. 9107 (__class_type_info::do_dyncast, 9108 __si_class_type_info::do_dyncast, 9109 __vmi_class_type_info::do_dyncast): Likewise. 9110 (__class_type_info::do_upcast, 9111 __si_class_type_info::do_upcast, 9112 __vmi_class_type_info::do_upcast): Likewise. 9113 (__dynamic_cast): Adjust. 9114 * tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __. 9115 (__function_type_info::is_function_p): Likewise. 9116 (__pointer_type_info::do_catch): Likewise. Adjust. 9117 (__pointer_to_member_type_info::do_catch): Likewise. Adjust. 9118 (__throw_type_match_rtti_2): Adjust. 9119 (__is_pointer): Adjust. 9120 91212000-04-08 Mark Mitchell <mark@codesourcery.com> 9122 9123 * cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER. 9124 (complete_ctor_identifier): New macro. 9125 (special_function_kind): Add sfk_copy_constructor and 9126 sfk_assignment_operator. 9127 (LOOKUP_HAS_IN_CHARGE): Remove. 9128 (cons_up_default_function): Rename to ... 9129 (implicitly_declare_fn): ... this. 9130 * call.c (build_new_method_call): Add in-charge parameters for 9131 constructors here. 9132 * class.c (add_implicitly_declared_members): Change parameter name 9133 from cant_have_assignment to cant_have_const_assignment. 9134 Replace calls to cons_up_default_function to implicitly_declare_fn. 9135 * cvt.c (ocp_convert): Use complete_ctor_identifier. 9136 * decl.c (initialize_predefined_identifiers): Initialize it. 9137 (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of 9138 complex expression. 9139 * init.c (expand_default_init): Don't calculate the in-charge 9140 parameter here. 9141 (build_new_1): Likewise. 9142 * lex.c (cons_up_default_function): Move to method.c. 9143 * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. 9144 (implicitly_declare_fn): New function. 9145 * typeck.c (build_static_cast): Use complete_ctor_identifier. 9146 (build_modify_expr): Likewise. 9147 * typeck2.c (build_functional_cast): Likewise. 9148 9149 Under the new ABI, constructors don't return `this'. 9150 * cp-tree.h (warn_reorder): Declare. 9151 (special_function_kind): New enum. 9152 (global_base_init_list): Remove declaration. 9153 (emit_base_init): Don't return a value. 9154 (check_base_init): Don't declare. 9155 (is_aggr_typedef): Likewise. 9156 * decl.c (check_special_function_return_type): New function. 9157 (return_types): Remove. 9158 (grokdeclarator): Use check_special_function_return_type. 9159 (start_function): Don't initialize ctor_label under the new ABI. 9160 (finish_construtor_body): Don't create a corresponding LABEL_STMT. 9161 * init.c (begin_init_stmts): Move to top of file. 9162 (finish_init_stmts): Likewise. 9163 (warn_reorder): Don't declare. 9164 (emit_base_init): Don't create a STMT_EXPR here. Don't return a 9165 value. 9166 (check_base_init): Remove. 9167 (is_aggr_typedef): Likewise. 9168 (build_new_1): Don't use the return value of a constructor. 9169 * semantics.c (setup_vtbl_ptr): Don't use the return value 9170 of emit_base_init. 9171 * typeck.c (check_return_expr): Don't magically convert return 9172 statements into `return this' in constructors under the new ABI. 9173 9174 * cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER, 9175 CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER. 9176 (base_ctor_identifier): New macro. 9177 (base_dtor_identifier): Likewise. 9178 (deleting_dtor_identifier): Likewise. 9179 * decl.c: Don't include obstack.h. 9180 (obstack_chunk_alloc): Don't define. 9181 (obstack_chunk_free): Likewise. 9182 (struct predefined_identifier): New type. 9183 (initialize_predefined_identifiers): New function. 9184 (init_decl_processing): Use it. 9185 (debug_temp_inits): Remove. 9186 (start_method): Don't call preserve_data. 9187 (hack_incomplete_structures): Update comment. 9188 * init.c (init_init_processing): Don't initialize 9189 nelts_identifier. 9190 (build_offset_rf): Remove dead code. 9191 (build_delete): Use CLASSTYPE_N_BASECLASSES. 9192 * search.c (init_search_processing): Don't initialize 9193 vptr_identifier. 9194 91952000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9196 9197 * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide 9198 some sign_compare warnings. 9199 92002000-04-07 Nathan Sidwell <nathan@codesourcery.com> 9201 9202 Rename abi::__vmi_class_type_info members. 9203 * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, 9204 base_list, detail_masks members to vmi_flags, vmi_base_count, 9205 vmi_bases and vmi_flags_masks respectively. 9206 (__vmi_class_type_info::vmi_flags_masks): Rename 9207 details_unknown_mask to flags_unknown_mask. 9208 * tinfo.cc (__class_type_info::do_upcast): Adjust. 9209 (__vmi_class_type_info::do_find_public_src): Adjust. 9210 (__vmi_class_type_info::do_dyncast): Adjust. 9211 (__vmi_class_type_info::do_upcast): Adjust. 9212 92132000-04-07 Nathan Sidwell <nathan@codesourcery.com> 9214 9215 * tinfo.cc (convert_to_base): New function. 9216 (get_vbase_offset): Remove. Move into convert_to_base. 9217 (__vmi_class_type_info::do_find_public_src): Adjust. 9218 (__vmi_class_type_info::do_dyncast): Adjust. 9219 (__vmi_class_type_info::do_upcast): Adjust. 9220 92212000-04-06 Jason Merrill <jason@yorick.cygnus.com> 9222 9223 * tinfo.cc (operator=): Use __builtin_strcmp. 9224 * tinfo2.cc (before): Likewise. 9225 92262000-04-06 Mark Mitchell <mark@codesourcery.com> 9227 9228 * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred. 9229 (DECL_SAVED_INLINE): Rename to ... 9230 (DECL_DEFERRED_FN): ... this. 9231 (in_function_p): Remove declaration. 9232 (mark_inline_for_output): Rename to ... 9233 (defer_fn): ... this. 9234 * decl.c (finish_function): Adjust call to mark_inline_for_output. 9235 (in_function_p): Remove definition. 9236 * decl2.c (saved_inlines): Rename to ... 9237 (deferred_fns): ... this. 9238 (saved_inlines_used): Rename to ... 9239 (deferred_fns_used): ... this. 9240 (mark_inline_for_output): Rename to ... 9241 (defer_fn): ... this. 9242 (finish_file): Adjust accordingly. 9243 (init_decl2): Likewise. 9244 * lex.c (cons_up_default_function): Likewise. 9245 * pt.c (mark_decl_instantiated): Likewise. 9246 (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any 9247 circumstances. 9248 * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. 9249 * semantics.c (expand_body): Defer more functions. 9250 92512000-04-06 Nathan Sidwell <nathan@codesourcery.com> 9252 9253 * vec.cc: New file. 9254 * Make-lang.in (CXX_LIB2FUNCS): Add it. 9255 (vec.o): Build it. 9256 * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 9257 __cxa_vec_delete): Declare. 9258 92592000-04-06 Nathan Sidwell <nathan@codesourcery.com> 9260 9261 * rtti.c (dfs_class_hint_mark): New static function. 9262 (dfs_class_hint_unmark): New static function. 9263 (class_hint_flags): Use them. 9264 92652000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 9266 9267 * decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE. 9268 92692000-04-05 Mark Mitchell <mark@codesourcery.com> 9270 9271 * cp-tree.h (instantiate_decl): Change prototype. 9272 * decl2.c (mark_used): Adjust call. 9273 * optimize.c (inlinable_function_p): Adjust handling of templates. 9274 * pt.c (do_decl_instantiation): Adjust call to instantiate_decl. 9275 (do_type_instantiation): Likewise. 9276 (instantiate_decl): Defer more templates. 9277 (instantiate_pending_templates): Adjust logic to handle inline 9278 friend functions. 9279 9280 * Makefile.in (GGC_H): New variable. Use it throughout in place 9281 of ggc.h. 9282 9283 * call.c: Don't include obstack.h. Include ggc.h. 9284 (obstack_chunk_alloc): Don't define. 9285 (obstack_chunk_free): Likewise. 9286 (add_candidate): Allocate the z_candidate with ggc_alloc_obj. 9287 * decl.c (push_switch): Use xmalloc to allocate the cp_switch. 9288 (pop_switch): Free it. 9289 9290 * decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs. 9291 9292 * dump.c (dequeue_and_dump): Don't try to print the bit_position 9293 if we don't have a DECL_FIELD_OFFSET. 9294 9295Wed Apr 5 15:12:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 9296 9297 * optimize.c (calls_setjmp_r): Use setjmp_call_p instead of 9298 special_function_p. 9299 93002000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9301 9302 * cfns.gperf (hash, libc_name_p): Prototype. 9303 9304 * rtti.c (build_dynamic_cast_1): Constification. 9305 9306 * search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes. 9307 9308 * semantics.c (deferred_type_access_control): Prototype. 9309 93102000-04-04 Mark Mitchell <mark@codesourcery.com> 9311 9312 Correct many new ABI issues regarding vbase and vcall offset 9313 layout. 9314 * cp-tree.h (BINFO_VTABLE): Document. 9315 (struct lang_type): Tweak formatting. 9316 (BINFO_PRIMARY_BINFO): Add to documentation. 9317 (CLASSTYPE_VSIZE): Fix typo in comment. 9318 (CLASSTYPE_VBASECLASSES): Update documentation. 9319 (BINFO_VBASE_MARKED): Remove. 9320 (SET_BINFO_VBASE_MARKED): Likewise. 9321 (CLEAR_BINFO_VBASE_MARKED): Likewise. 9322 (BINFO_FIELDS_MARKED): Remove. 9323 (SET_BINFO_FIELDS_MARKED): Likewise. 9324 (CLEAR_BINFO_FIELDS_MARKED): Likewise. 9325 (enum access_kind): New enumeration. 9326 (num_extra_vtbl_entries): Remove declaration. 9327 (size_extra_vtbl_entries): Likewise. 9328 (get_vtbl_decl_for_binfo): New function. 9329 (dfs_vbase_unmark): Remove declaration. 9330 (mark_primary_bases): Likewise. 9331 * class.c (SAME_FN): Remove. 9332 (struct vcall_offset_data_s): Move definition. 9333 (build_vbase_pointer): Use `build', not `build_binary_op', to 9334 access the vbase pointer under the new ABI. 9335 (build_vtable_entry_ref): Use get_vtbl_decl_for_binfo. 9336 (build_primary_vtable): Likewise. 9337 (dfs_mark_primary_bases): Move here from search.c. 9338 (mark_primary_bases): Likewise. 9339 (determine_primary_bases): Under the new ABI, don't make a base 9340 class a primary base just because we don't yet have any virtual 9341 functions. 9342 (layout_vtable_decl): Use get_vtbl_decl_for_binfo. 9343 (num_vfun_entries): Remove. 9344 (dfs_count_virtuals): Likewise. 9345 (num_extra_vtbl_entries): Likewise. 9346 (size_extra_vtbl_entries): Likewise. 9347 (layout_virtual_bases): Iterate in inheritance graph order under 9348 the new ABI. 9349 (finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to 9350 indicate that a vfield is present. 9351 (init_class_processing): Initialize access_public_node, etc., from 9352 ak_public, etc. 9353 (get_vtbl_decl_for_binfo): New function. 9354 (dump_class_hierarchy_r): Likewise. 9355 (dump_class_hierarchy): Use it. 9356 (finish_vtbls): Build the vtbls in inheritance graph order. 9357 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 9358 (initialize_vtable): Use get_vtbl_decl_for_binfo. 9359 (accumulate_vtbl_inits): Add comments explaining why a pre-order 9360 walk is required. 9361 (dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location 9362 where the vptr points, even for primary vtables. 9363 (build_vtbl_initializer): Adjust handling of vbase and vcall 9364 offsets. 9365 (build_vcall_and_vbase_vtable_entries): New function. 9366 (dfs_build_vbase_offset_vtbl_entries): Remove. 9367 (build_vbase_offset_vtbl_entries): Reimplement. 9368 (dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that 9369 were already handled in a primary base class vtable. 9370 (build_vcall_offset_vtbl_entries): Adjust. 9371 (build_rtti_vtbl_entries): Adjust. 9372 * decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo. 9373 * init.c (expand_virtual_init): Simplify. 9374 * repo.c (repo_get_id): Use get_vtbl_decl_for_binfo. 9375 * rtti.c (create_pseudo_type_info): Adjust calculation of vptr. 9376 * search.c (BINFO_ACCESS): New macro. 9377 (SET_BINFO_ACCESS): Likewise. 9378 (dfs_access_in_type): Manipulate access_kinds, not access nodes. 9379 (access_in_type): Likewise. 9380 (dfs_accessible_p): Likewise. 9381 (protected_accessible_p): Likewise. 9382 (lookup_fnfields_1): Adjust documentation. 9383 (dfs_mark_primary_bases): Move to class.c 9384 (mark_primary_bases): Likewise. 9385 (dfs_vbase_unmark): Remove. 9386 (virtual_context): Use BINFO_FOR_VBASE. 9387 (dfs_get_vbase_types): Simplify. 9388 (dfs_build_inheritance_graph_order): New function. 9389 (get_vbase_types): Use it. 9390 * tree.c (debug_binfo): Use get_vtbl_decl_for_binfo. 9391 9392 * tinfo.cc (get_vbase_offset): New function. 9393 (__vmi_class_type_info::do_find_public_src): Use it. 9394 (__vmi_class_type_info::do_dyncast): Likewise. 9395 (__vmi_class_type_info::do_upcast): Likewise. 9396 93972000-04-03 Zack Weinberg <zack@wolery.cumb.org> 9398 9399 * lang-specs.h: Pass -fno-show-column to the preprocessor. 9400 94012000-03-30 Nathan Sidwell <nathan@codesourcery.com> 9402 9403 * rtti.c (class_hint_flags): Rename flags. 9404 (class_initializer): Remove flags. 9405 (synthesize_tinfo_var): Combine offset and flags. Add flags 9406 for __vmi_class_type_info. 9407 (create_tinfo_types): Remove flags from __class_type_info and 9408 __si_class_type_info. Merge flags and offset from 9409 base_class_type_info. 9410 * inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags. 9411 (__base_class_info::is_virtual_p): Adjust. 9412 (__base_class_info::is_public_p): Adjust. 9413 (__base_class_info::offset): New accessor. 9414 (__class_type_info::details): Remove member. 9415 (__class_type_info::__class_type_info): Lose details. 9416 (__class_type_info::detail_masks): Remove. 9417 (__si_class_type_info::__si_class_type_info): Lose details. 9418 (__vmi_class_type_info::details): New member. 9419 (__vmi_class_type_info::__vmi_class_type_info): Adjust. 9420 (__vmi_class_type_info::detail_masks): New member. 9421 * tinfo.cc (__class_type_info::do_upcast): Initialize result 9422 with unknown_details_mask. 9423 (__vmi_class_type_info::do_find_public_src): Adjust 9424 (__vmi_class_type_info::do_dyncast): Adjust. 9425 (__vmi_class_type_info::do_upcast): Set result details, if 9426 needed. Adjust. 9427 (__dynamic_cast): Temporarily #if out optimization. 9428 94292000-03-29 Nathan Sidwell <nathan@codesourcery.com> 9430 9431 * rtti.c (get_tinfo_decl): Mark used. 9432 (emit_tinfo_decl): Don't optimize polymorphic type_info. Only 9433 mark as dealt with, if we output it. 9434 94352000-03-28 Mark Mitchell <mark@codesourcery.com> 9436 9437 * class.c: Reorganize to put virtual function table initialization 9438 machinery at the end of the file. 9439 94402000-03-28 Jason Merrill <jason@casey.cygnus.com> 9441 9442 * class.c (finish_struct): Use bitsize_zero_node. 9443 * pt.c (instantiate_class_template): Likewise. 9444 94452000-03-28 Mark Mitchell <mark@codesourcery.com> 9446 9447 Put RTTI entries at negative offsets in new ABI. 9448 * class.c (dfs_build_vbase_offset_vtbl_entries): Put the first 9449 vbase offset at index -3, not -1. 9450 (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not 9451 dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. 9452 (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. 9453 (build_rtti_vtbl_entries): New function. 9454 (set_rtti_entry): Remove. 9455 (build_primary_vtable): Don't use it. 9456 (build_secondary_vtable): Likewise. 9457 (start_vtable): Remove. 9458 (first_vfun_index): New function. 9459 (set_vindex): Likewise. 9460 (add_virtual_function): Don't call start_vtable. Do call 9461 set_vindex. 9462 (set_primary_base): Rename parameter. 9463 (determine_primary_base): Likewise. 9464 (num_vfun_entries): Don't use skip_rtti_stuff. 9465 (num_extra_vtbl_entries): Include RTTI information. 9466 (build_vtbl_initializer): Use build_rtti_vtbl_entries. 9467 (skip_rtti_stuff): Remove. 9468 (dfs_modify_vtables): Don't use it. 9469 (modify_all_vtables): Don't use start_vtable. Do use set_vindex. 9470 (layout_nonempty_base_or_field): Update size handling. 9471 (create_vtable_ptr): Tweak. 9472 (layout_class_type): Adjust parameter names. 9473 (finish_struct_1): Simplify. 9474 * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. 9475 (skip_rtti_stuff): Remove. 9476 (first_vfun_index): New function. 9477 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 9478 (dfs_vtable_path_marked_real_bases_queue_p): Remove. 9479 (marked_vtable_pathp): Declare. 9480 (unmarked_vtable_pathp): Likewise. 9481 * error.c (dump_expr): Use first_vfun_index to calculate vtable 9482 offsets. 9483 * rtti.c (build_headof): Look for RTTI at negative offsets. 9484 (get_tinfo_decl_dynamic): Likewise. 9485 (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL 9486 here. 9487 (create_pseudo_type_info): Do it here instead. Adjust so that 9488 vptr points at first virtual function. 9489 * search.c (marked_vtable_pathp): Make it global. 9490 (unmarked_vtable_pathp): Likewise. 9491 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 9492 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 9493 (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. 9494 (get_pure_virtuals): Likewise. 9495 (expand_upcast_fixups): Likewise. 9496 * tree.c (debug_binfo): Likewise. 9497 * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate 9498 negative offset. 9499 9500Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9501 9502 * class.c (check_field_decl): Fix typo. 9503 (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. 9504 (check_methods): Likewise. 9505 (check_field_decls): Likewise. 9506 Use DECL_CONTEXT, not DECL_FIELD_CONTEXT. 9507 * cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT): 9508 Use DECL_RESULT_FLD, not DECL_RESULT. 9509 * decl.c (xref_tag): Use DECL_TEMPLATE_RESULT. 9510 * lex.c (identifier_type): Likewise. 9511 * pt.c (determine_specialization, lookup_template_class): Likewise. 9512 (tsubst_friend_function, tsubst_decl, instantiate_template): Likewise. 9513 (resolve_overloaded_unification, more_specialized): Likewise. 9514 * semantics.c (finish_member_declaration): Likewise. 9515 * typeck.c (build_x_function_call): Likewise. 9516 95172000-03-26 Mark Mitchell <mark@codesourcery.com> 9518 9519 * class.c (layout_empty_base): Handle empty bases with non-byte 9520 alignment. 9521 (build_base_field): Likewise. 9522 (layout_virtual_bases): Likewise. 9523 9524 * class.c (finish_struct_1): Fix typo in this change: 9525 9526 Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9527 95282000-03-25 Mark Mitchell <mark@codesourcery.com> 9529 9530 * decl.c (grokdeclarator): Count partial specializations when 9531 keeping track of how many template classes have been seen. 9532 9533 * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. 9534 9535Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9536 9537 * class.c (build_vbase_pointer_fields): layout_field now place_field. 9538 (get_vfield_offset): Use byte_position. 9539 (set_rtti_entry): Set OFFSET to ssizetype zero. 9540 (get_binfo_offset_as_int): Deleted. 9541 (dfs_record_base_offsets): Use tree_low_cst. 9542 (dfs_search_base_offsets): Likewise. 9543 (layout_nonempty_base_or_field): Reflect changes in RLI format 9544 and call byte_position. 9545 (layout_empty_base): Convert offset to ssizetype. 9546 (build_base_field): use rli_size_unit_so_far. 9547 (dfs_propagate_binfo_offsets): Do computation in proper type. 9548 (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. 9549 (layout_class_type): Reflect changes in RLI names and fields. 9550 (finish_struct_1): Set DECL_FIELD_OFFSET. 9551 * dump.c (dequeue_and_dump): Call bit_position. 9552 * expr.c (cplus_expand_constant): Use byte_position. 9553 * rtti.c (expand_class_desc): Use bitsize_one_node. 9554 * typeck.c (build_component_addr): Use byte_position and don't 9555 special case for zero offset. 9556 95572000-03-24 Nathan Sidwell <nathan@codesourcery.com> 9558 9559 * decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P. 9560 9561 * rtti.c (get_tinfo_decl): Set comdat linkage on new-abi 9562 tinfo object. 9563 (emit_tinfo_decl): Only emit polymorphic tinfo's when emitting 9564 vtable. 9565 95662000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 9567 9568 * call.c (check_dtor_name, build_new_method_call): Use TYPE_P and 9569 DECL_P macros. 9570 * decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name, 9571 make_typename_type, check_initializer, cp_finish_decl, 9572 xref_tag): Likewise. 9573 * decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree, 9574 decl_namespace, arg_assoc_template_arg, arg_assoc, 9575 validate_nonmember_using_decl, do_class_using_decl): Likewise. 9576 * error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of, 9577 args_to_string): Likewise. 9578 * friend.c (is_friend): Likewise. 9579 * lex.c (note_got_semicolon, note_list_got_semicolon, 9580 is_global): Likewise. 9581 * method.c (build_overload_nested_name, build_overload_value, 9582 build_qualified_name, build_qualified_name, hack_identifier): Likewise. 9583 * parse.y (typename_sub, typename_sub1): Likewise. 9584 * pt.c (push_inline_template_parms_recursive, check_template_shadow, 9585 process_partial_specialization, convert_template_argument, 9586 template_args_equal, add_pending_template, lookup_template_class, 9587 for_each_template_parm_r, maybe_fold_nontype_arg, 9588 tsubst, instantiate_template, type_unification_real, unify, 9589 instantiate_pending_templates, set_mangled_name_for_template_decl): 9590 Likewise. 9591 * repo.c (repo_get_id, repo_template_used): Likewise. 9592 * search.c (lookup_field_1): Likewise. 9593 * tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise. 9594 * xref.c (classname): Likewise. 9595 95962000-03-22 Mark Mitchell <mark@codesourcery.com> 9597 9598 * cp-tree.h (BINFO_FOR_VBASE): Adjust documentation. 9599 (CANONICAL_BINFO): New macro. 9600 (BINFO_NEW_VTABLE_MARKED): Use it. 9601 (SET_BINFO_NEW_VTABLE_MARKED): Likewise. 9602 (CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise. 9603 * class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE, 9604 not TREE_TYPE. 9605 (build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED. 9606 (build_secondary_vtable): Likewise. 9607 (dfs_finish_vtbls): Likewise. 9608 (dfs_accumulate_vtbl_inits): Likewise. 9609 (accumulate_vtbl_inits): New function. 9610 (finish_vtbls): Make sure that virtual bases come after 9611 non-virtual bases in the vtable group. 9612 (record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL. 9613 (finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED. 9614 * search.c (struct vbase_info): Move definition. 9615 (marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED. 9616 (unmarked_new_vtable_p): Likewise. 9617 (dfs_mark_vtable_path): Remove. 9618 (dfs_mark_new_vtable): Remove. 9619 (dfs_unmark_new_vtable): Likewise. 9620 (dfs_clear_search_slot): Likewise. 9621 (dfs_find_vbases): Adjust usage of BINFO_NEW_VTABLE_MARKED. 9622 (dfs_clear_vbase_slots): Likewise. 9623 (init_vbase_pointers): LIkewise. 9624 96252000-03-22 Jason Merrill <jason@casey.cygnus.com> 9626 9627 * typeck.c (type_after_usual_arithmetic_conversions): Prefer a 9628 SIZETYPE to a non-SIZETYPE. 9629 96302000-03-21 Mark Mitchell <mark@codesourcery.com> 9631 9632 * class.c (layout_virtual_bases): Adjust names in conditionally 9633 compiled code. 9634 9635 * class.c (record_base_offsets): New function. 9636 (layout_conflict_p): Likewise. 9637 (layout_nonempty_base_or_field): Use it. 9638 (layout_empty_base): New function. 9639 (build_base_field): Use it. 9640 (build_base_fields): Update comment. 9641 (layout_virtual_bases): Fold in a little code form 9642 layout_basetypes. Use layout_empty_base. 9643 (layout_basetypes): Remove. 9644 (end_of_class): New function. 9645 (layout_class_type): Use it. Adjust. 9646 9647 * cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment. 9648 (fntype_p): Remove. 9649 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in 9650 comment. 9651 (dfs_skip_nonprimary_vbases_markedp): Likewise. 9652 * typeck.c (fntype_p): Remove. 9653 9654 * cp-tree.h (TI_SPEC_INFO): Remove. 9655 (CLASSTYPE_TI_SPEC_INFO): Likewise. 9656 * pt.c (process_partial_specialization): Likewise. 9657 9658 * class.c (build_base_field): Fix thinko in computation of binfo 9659 offsets. 9660 9661 * tree.c (mark_local_for_remap_p): Mark variables declared in 9662 TARGET_EXPRs as well. 9663 96642000-03-21 Nathan Sidwell <nathan@codesourcery.com> 9665 9666 * typeck.c (require_complete_type, complete_type, 9667 complete_type_or_else, c_sizeof, c_sizeof_nowarn, 9668 build_array_ref, convert_arguments, pointer_diff, 9669 build_x_unary_op, build_unary_op, build_c_cast, 9670 build_modify_expr): Use COMPLETE_TYPE_P etc. 9671 * call.c (is_complete, convert_like_real, 9672 build_new_method_call): Likewise. 9673 * class.c (build_vbase_pointer_fields, check_bases, 9674 build_base_field, finish_struct_1, pushclass): Likewise. 9675 * cvt.c (cp_convert_to_pointer, convert_to_void): Likewise. 9676 * decl.c (maybe_process_template_type_declaration, pushtag, 9677 pushdecl, redeclaration_error_message, start_decl, start_decl_1, 9678 layout_var_decl, check_initializer, cp_finish_decl, 9679 grokdeclarator, require_complete_types_for_parms, 9680 grok_op_properties, xref_tag, xref_basetypes, 9681 check_function_type): Likewise. 9682 * decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise. 9683 * friend.c (do_friend): Likewise. 9684 * init.c (build_offset_ref): Likewise. 9685 * parse.y (structsp): Likewise. 9686 * pt.c (maybe_process_partial_specialization, 9687 tsubst_friend_function, instantiate_class_template, tsubst, 9688 do_type_instantiation, instantiate_pending_templates): Likewise. 9689 * repo.c (repo_get_id): Likewise. 9690 * rtti.c (build_typeid, get_typeid, build_dynamic_cast_1, 9691 synthesize_tinfo_var, emit_support_tinfos): Likewise. 9692 * search.c (lookup_fnfields_1, lookup_conversions): Likewise. 9693 * semantics.c (begin_class_definition): Likewise. 9694 * tree.c (build_cplus_method_type): Likewise. 9695 * typeck2.c (digest_init, build_functional_cast, 9696 add_exception_specifier): Likewise. 9697 * parse.h, parse.c: Regenerated. 9698 96992000-03-21 Nathan Sidwell <nathan@codesourcery.com> 9700 9701 * inc/cxxabi.h: New header file. Define new-abi entry points. 9702 (__pointer_type_info::target): Rename member to ... 9703 (__pointer_type_info::type): ... here. 9704 (__base_class_info::type): Rename member to ... 9705 (__base_class_info::base): ... here. 9706 * Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h 9707 * cp-tree.h (CPTI_ABI): New global tree enumeration. 9708 (abi_node): New global tree node. 9709 * decl.c (abi_node): Document. 9710 (init_decl_processing): Initialize abi_node. 9711 * rtti.c (build_dynamic_cast_1): Use abi_node for new-abi. 9712 (get_vmi_pseudo_type_info): Likewise. 9713 (create_tinfo_types): Likewise. 9714 (emit_support_tinfos): Likewise. 9715 * tinfo.h (cxxabi.h): Include for new-abi. 9716 Move rtti class definitions to new header file. 9717 * tinfo.cc (abi): Use the namespace. 9718 (std): Move new abi rtti classes from here ... 9719 (__cxxabiv1): ... to here. 9720 * tinfo2.cc (cxxabi.h): Include for new-abi. 9721 Move rtti class definitions to new header file. 9722 (std): Move new abi rtti classes from here ... 9723 (__cxxabiv1): ... to here. 9724 * inc/typeinfo (__class_type_info): Move into __cxxabiv1 9725 namespace. 9726 97272000-03-20 Jed Wing <jedwin@zloty.ugcs.caltech.edu> 9728 Jason Merrill <jason@casey.cygnus.com> 9729 9730 * method.c (build_overload_int): Use host_integerp. 9731 97322000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 9733 9734 * init.c (build_offset_ref): Handle the case of a templated member 9735 function. 9736 97372000-03-19 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9738 9739 * except.c (expand_exception_blocks): Clear catch_clauses_last. 9740 97412000-03-18 Mark Mitchell <mark@codesourcery.com> 9742 9743 * cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro. 9744 * class.c (check_bitfield_decl): Turn illegal bitfields into 9745 non-bitfields. 9746 (dfs_propagate_binfo_offsets): Adjust for new size_binop 9747 semantics. 9748 (dfs_offset_for_unshared_vbases): Likewise. 9749 * cvt.c (cp_convert_to_pointer): Convert NULL to a 9750 pointer-to-member correctly under the new ABI. 9751 * expr.c (cplus_expand_constant): Don't use cp_convert when 9752 turning an offset into a pointer-to-member. 9753 * init.c (resolve_offset_ref): Don't adjust pointers-to-members 9754 when dereferencing them under the new ABI. 9755 * typeck.c (get_member_function_from_ptrfunc): Tweak calculation 9756 of pointers-to-members under the new ABI. 9757 9758 * class.c (check_bitfield_decl): Remove restriction on really long 9759 bitfields. 9760 (layout_class_type): Implement new ABI handling of bitfields 9761 longer than their types. 9762 97632000-03-18 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9764 9765 * parse.y (extdefs): Call ggc_collect. 9766 * parse.c: Regenerated. 9767 97682000-03-18 Nathan Sidwell <nathan@codesourcery.com> 9769 9770 * class.c (build_base_field): Use TYPE_ALIGN to examine a type. 9771 (note_name_declared_in_class): Use OVL_CURRENT to get at a 9772 potential overload. 9773 9774Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9775 9776 * class.c (build_vbase_path): Use integer_zerop. 9777 (build_vtable_entry): Use tree_low_cst. 9778 (get_vfield_offset): Use bit_position. 9779 (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. 9780 Use tree_low_cst. 9781 (check_bitfield_decl): Set DECL_SIZE using convert. 9782 (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. 9783 (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. 9784 Use tree_low_cst. 9785 (finish_struct_1): Use bit_position. 9786 (dump_class_hierarchy): Use tree_low_cst. 9787 * cp-tree.h (min_precision): Add declaration. 9788 * decl.c (xref_tag, xref_basetypes): Use tree_low_cst. 9789 * error.c (dump_type_suffix): Use host_integerp and tree_low_cst. 9790 (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. 9791 * expr.c (cplus_expand_constant): Use bit_position. 9792 * init.c (build_vec_init): Use host_integerp and tree_low_cst. 9793 * rtti.c (get_base_offset): Use bit_position. 9794 * typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, 9795 host_integerp, and tree_low_cst. 9796 (pointer_int_sum): Use integer_zerop. 9797 (build_component_addr): Use bit_position. 9798 97992000-03-17 Nathan Sidwell <nathan@codesourcery.com> 9800 9801 * typeck.c (require_complete_type): Don't assume size_zero_node. 9802 (complete_type_or_else): Likewise. 9803 98042000-03-16 Steven Grady <grady@digitaldeck.com> 9805 Jason Merrill <jason@casey.cygnus.com> 9806 9807 * rtti.c (build_dynamic_cast_1): Improve diagnostics. 9808 98092000-03-16 Nathan Sidwell <nathan@codesourcery.com> 9810 9811 * decl2.c (grokfield): Bail out if type is error_mark_node. 9812 98132000-03-15 Nathan Sidwell <nathan@codesourcery.com> 9814 9815 * tinfo2.cc (__ptr_to_member_data): Rename to ... 9816 (__pointer_to_member_data): ... here. Adjust. 9817 * rtti.c (create_tinfo_types): Adjust. 9818 98192000-03-15 Nathan Sidwell <nathan@codesourcery.com> 9820 9821 * cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove. 9822 * decl.c (ref_desc_type_node): Undocument. 9823 * rtti.c (ptr_ref_initializer): Rename to ... 9824 (ptr_initializer): ... here. Adjust comments. 9825 (ptmd_initializer): Fix comment thinko. 9826 (synthesize_tinfo_var): Remove REFERENCE_TYPE case. 9827 (create_tinfo_types): Remove ref_desc_type_node init. 9828 * tinfo2.cc (__reference_type_info): Remove. 9829 98302000-03-15 Nathan Sidwell <nathan@codesourcery.com> 9831 9832 * decl.c (cp_finish_decl): Remove obsolete comment. 9833 9834 * typeck.c (build_ptrmemfunc1): Kill uninitialized warning. 9835 98362000-03-14 Mark Mitchell <mark@codesourcery.com> 9837 9838 * cp-tree.h: Tweak documentation. 9839 * class.c (build_vbase_pointer_fields): Layout the fields, too. 9840 (avoid_overlap): Remove. 9841 (get_binfo_offset_as_int): New function. 9842 (dfs_serach_base_offsets): Likewise. 9843 (layout_nonempty_base_or_field): Likewise. 9844 (build_base_field): Layout fields here. Avoid placing two objects 9845 of the same type at the same address, under the new ABI. 9846 (build_base_fields): Adjust accordingly. 9847 (create_vtable_ptr): Return the new field, but don't attach it to 9848 TYPE_FIELDS. 9849 (remove_base_field): Remove. 9850 (remove_base_fields): Remove. 9851 (layout_basetypes): Adjust accordingly. 9852 (layout_class_type): Call layout_field for each field, rather than 9853 just making a wholesale call to layout_type. 9854 98552000-03-14 Jeff Sturm <jsturm@sigma6.com> 9856 9857 * except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw. 9858 98592000-03-13 Jason Merrill <jason@casey.cygnus.com> 9860 9861 * decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P. 9862 9863 * except.c (dtor_nothrow): New fn. 9864 (do_pop_exception): Use it. Take type parm. 9865 (push_eh_cleanup): Take type parm. 9866 (expand_start_catch_block): Pass it. 9867 (build_eh_type_type_ref): Accept null type. 9868 98692000-03-12 Mark Mitchell <mark@codesourcery.com> 9870 9871 * cp-tree.h (revert_static_member_fn): Change prototype. 9872 * decl.c (grokfndecl): Adjust call to revert_static_member_fn. 9873 (grok_op_properties): Likewise. 9874 (start_function): Likewise. 9875 (revert_static_member_fn): Simplify. 9876 * pt.c (check_explicit_specialization): Adjust call to 9877 revert_static_member_fn. 9878 98792000-03-11 Mark Mitchell <mark@codesourcery.com> 9880 9881 * cp-tree.h (scope_kind): New type. 9882 (tmpl_spec_kind): Likewise. 9883 (declare_pseudo_global_level): Remove. 9884 (pseudo_global_level_p): Rename to template_parm_scope_p. 9885 (pushlevel): Remove declaration. 9886 (begin_scope): New function. 9887 (finish_scope): Likewise. 9888 (current_tmpl_spec_kind): Likewise. 9889 * decl.c (struct binding_level): Shorten parm_flag to 2 bits. 9890 Shorten keep to 2 bits. Rename pseudo_global to template_parms_p. 9891 Add template_spec_p. 9892 (toplevel_bindings_p): Adjust. 9893 (declare_pseudo_global_level): Remove. 9894 (pseudo_global_level_p): Rename to template_parm_scope_p. 9895 (current_tmpl_spec_kind): New function. 9896 (begin_scope): Likewise. 9897 (finish_scope): Likewise. 9898 (maybe_push_to_top_level): Adjust. 9899 (maybe_process_template_type_declaration): Likewise. 9900 (pushtag): Likewise. 9901 (pushdecl_nonclass_level): Likewise. 9902 (lookup_tag): Likewise. 9903 (grokfndecl): Handle member template specializations. Share 9904 constructor and non-constructor code. 9905 * decl2.c (check_classfn): Handle member template specializations. 9906 * pt.c (begin_template_parm_list): Use begin_scope. 9907 (begin_specialization): Likewise. 9908 (end_specialization): Likewise. 9909 (check_explicit_specialization): Use current_tmpl_spec_kind. 9910 Handle member template specializations. 9911 (end_template_decl): Use finish_scope. Remove call to 9912 get_pending_sizes. 9913 (push_template_decl_real): Remove bogus error message. 9914 (tsubst_decl): Fix typo in code contained in comment. 9915 (instantiate_template): Handle member template specializations. 9916 (most_general_template): Likewise. 9917 99182000-03-11 Gabriel Dos Reis <gdr@codesourcery.com> 9919 9920 * lex.c (whitespace_cr): Compress consecutive calls to warning(). 9921 (do_identifier): Ditto for error(). 9922 9923 * pt.c (convert_nontype_argument): Ditto for cp_error(). 9924 (convert_template_argument): Ditto for cp_pedwarn(). 9925 99262000-03-11 Jason Merrill <jason@casey.cygnus.com> 9927 9928 * exception.cc (__check_null_eh_spec): New fn. 9929 * except.c (expand_end_eh_spec): Call it if the spec is throw(). 9930 99312000-03-10 Jason Merrill <jason@casey.cygnus.com> 9932 9933 * decl.c (push_throw_library_fn): Take the FUNCTION_TYPE. 9934 * except.c (expand_end_eh_spec): Add the return type. 9935 * rtti.c (throw_bad_cast): Add the parmtypes. 9936 (throw_bad_typeid): Likewise. 9937 9938 * semantics.c (expand_stmt): Only leave out rtl for unused 9939 artificials, and set DECL_IGNORED_P on them as well. 9940 * decl.c (wrapup_globals_for_namespace): Likewise. 9941 99422000-03-09 Nathan Sidwell <nathan@codesourcery.com> 9943 9944 * decl.c (maybe_commonize_var): Skip all artificial decls. 9945 * pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN. 9946 99472000-03-10 Jason Merrill <jason@casey.cygnus.com> 9948 9949 * lang-options.h, decl2.c: Add -fno-enforce-eh-specs. 9950 * cp-tree.h: Declare flag_enforce_eh_specs. 9951 * decl.c (store_parm_decls, finish_function): Check it. 9952 9953 C library functions don't throw. 9954 * Makefile.in (cfns.h): New target. 9955 (except.o): Depend on it. 9956 * Make-lang.in (cc1plus): Depend on cfns.gperf. 9957 * cfns.gperf: New file. 9958 * cfns.h: Generated. 9959 * except.c: Include it. 9960 (nothrow_libfn_p): New fn. 9961 * decl.c (grokfndecl): Use it. 9962 * cp-tree.h: Declare it. 9963 9964 * decl.c (push_overloaded_decl_1, auto_function, 9965 define_function): Lose. 9966 (build_library_fn_1): New static fn. 9967 (builtin_function): Use it. 9968 (get_atexit_node): Use build_library_fn_ptr. 9969 (build_library_fn, build_cp_library_fn, build_library_fn_ptr, 9970 build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn, 9971 push_void_library_fn, push_throw_library_fn): New fns. 9972 * cp-tree.h: Declare them. 9973 (cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID. 9974 (throw_bad_cast_node, throw_bad_typeid_node): Lose. 9975 * except.c (init_exception_processing, call_eh_info, do_pop_exception, 9976 (expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns. 9977 * rtti.c (build_runtime_decl): Lose. 9978 (throw_bad_cast, throw_bad_typeid, get_tinfo_decl, 9979 build_dynamic_cast_1, expand_si_desc, expand_class_desc, 9980 expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns. 9981 9982 * call.c (build_call): Remove result_type parm. 9983 Call mark_used on unused artificial fns. 9984 * init.c, method.c, typeck.c, except.c, rtti.c: Adjust. 9985 99862000-03-09 Jason Merrill <jason@casey.cygnus.com> 9987 9988 * call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as 9989 appropriate. 9990 * decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL. 9991 * except.c (call_eh_info, alloc_eh_object, expand_throw): Set 9992 TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate. 9993 * rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1, 9994 expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 9995 expand_generic_desc): Likewise. 9996 99972000-03-08 Nathan Sidwell <nathan@codesourcery.com> 9998 9999 * exception.cc (__cp_pop_exception): Cleanup the original object. 10000 100012000-03-08 Nathan Sidwell <nathan@codesourcery.com> 10002 10003 * decl.c (grok_op_properties): Merge conversion to void warning 10004 with other silly op warnings. 10005 100062000-03-08 Jason Merrill <jason@casey.cygnus.com> 10007 10008 * typeck2.c (process_init_constructor): Set TREE_PURPOSE of 10009 array CONSTRUCTOR elements. Don't use expr_tree_cons. 10010 100112000-03-08 Nathan Sidwell <nathan@codesourcery.com> 10012 10013 * decl.c (cp_make_fname_decl): New function. 10014 (wrapup_globals_for_namespace): Don't emit unused static vars. 10015 (init_decl_processing): Remove comment about use of 10016 array_domain_type. Set make_fname_decl. 10017 (cp_finish_decl): Remove __FUNCTION__ nadgering. 10018 * semantics.c (begin_compound_stmt): Remove 10019 current_function_name_declared flagging. 10020 (expand_stmt): Don't emit unused local statics. 10021 * typeck.c (decay_conversion): Don't treat __FUNCTION__ decls 10022 specially. 10023 100242000-03-08 Nathan Sidwell <nathan@codesourcery.com> 10025 10026 * typeck.c (convert_for_assignment): Don't look at array 10027 initializer. 10028 * call.c (convert_like_real): Likewise. 10029 100302000-03-07 Jason Merrill <jason@casey.cygnus.com> 10031 10032 Add initial support for '\uNNNN' specifier. 10033 * lex.c (read_ucs): New fn. 10034 (readescape, skip_white_space): Call it. 10035 (is_extended_char, is_extended_char_1): New fns. 10036 (utf8_extend_token): New fn, #if 0'd out. 10037 (real_yylex): Treat extended chars like letters. 10038 10039 * search.c (note_debug_info_needed): Walk the bases even if we 10040 weren't deferring the type itself. 10041 100422000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10043 10044 * decl2.c (finish_objects): Constify a char*. 10045 10046 * method.c (emit_thunk): Likewise. 10047 100482000-03-06 Nathan Sidwell <nathan@codesourcery.com> 10049 10050 * typeck.c (dubious_conversion_warnings): Look through 10051 REFERENCE_TYPE. 10052 10053Mon Mar 6 08:46:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10054 10055 * class.c (dfs_modify_vtables): I is now unsigned. 10056 (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. 10057 (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. 10058 * error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. 10059 * init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 10060 * method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. 10061 * typeck.c (build_binary_op, case TRUNC_DIV_EXPR): 10062 Call integer_all_onesp. 10063 * typeck2.c (process_init_constructor): Use compare_tree_int. 10064 10065 * lang-specs.h (as): Don't call if -syntax-only. 10066 100672000-03-06 Mark Mitchell <mark@codesourcery.com> 10068 10069 * expr.c (cplus_expand_expr, case STMT_EXPR): Don't set 10070 RTL_EXPR_HAS_NO_SCOPE after all. 10071 100722000-03-05 Mark Mitchell <mark@codesourcery.com> 10073 10074 * expr.c (cplus_expand_expr, case STMT_EXPR): Use 10075 expand_start_stmt_expr and expand_end_stmt_expr directly. Set 10076 RTL_EXPR_HAS_NO_SCOPE. 10077 10078 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little 10079 later. 10080 10081 * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. 10082 100832000-03-05 Nathan Sidwell <nathan@codesourcery.com> 10084 10085 * call.c (convert_like): Macrofy. 10086 (convert_like_with_context): New macro. 10087 (convert_like_real): Renamed from convert_like. Add calling 10088 context parameters, for diagnostics. Add recursive flag. Call 10089 dubious_conversion_warnings for outer conversion. 10090 (build_user_type_conversion): Use convert_like_with_context. 10091 (build_over_call): Likewise. Don't warn about dubious 10092 conversions here. Adjust convert_default_arg calls. 10093 (convert_default_arg): Add context parameters for diagnostics. 10094 Pass through to convert_like_with_context. 10095 * cp-tree.h (convert_default_arg): Add context parameters. 10096 (dubious_conversion_warnings): Prototype new function. 10097 * typeck.c (convert_arguments): Adjust convert_default_arg call. 10098 (dubious_conversion_warnings): New function, broken 10099 out of convert_for_assignment. 10100 (convert_for_assignment): Adjust. 10101 101022000-03-03 Jason Merrill <jason@casey.cygnus.com> 10103 10104 * decl2.c (key_method): Break out from... 10105 (import_export_vtable, import_export_class): ...here. 10106 10107 * decl.c (finish_function): Don't mess with flag_keep_inline_functions. 10108 * decl2.c (finish_vtable_vardecl): Don't check decl_function_context. 10109 10110 * search.c (note_debug_info_needed, dfs_debug_mark, 10111 dfs_debug_unmarkedp): Uncomment. Adjust for new scheme. 10112 * decl2.c (finish_vtable_vardecl): Call note_debug_info_needed. 10113 101142000-03-03 Nathan Sidwell <nathan@codesourcery.com> 10115 10116 * decl.c (cp_finish_decl): Remove obsolete obstack comments, fix 10117 typos. 10118 101192000-03-02 Mark Mitchell <mark@codesourcery.com> 10120 10121 * cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ... 10122 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this. 10123 (TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro. 10124 (lang_type): Split gets_new into has_new and has_array_new. 10125 (TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10126 (TYPE_GETS_NEW): Split into ... 10127 (TYPE_HAS_NEW_OPERATOR): ... this, and ... 10128 (TYPE_HAS_ARRAY_NEW_OPERATOR): ... this. 10129 (DECL_ARRAY_DELETE_OPERATOR_P): New macro 10130 (build_op_new_call): Don't declare. 10131 (build_new_1): Likewise. 10132 * call.c (build_op_new_call): Remove. 10133 * class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 10134 instead of TYPE_NEEDS_DESTRUCTOR. 10135 (finish_struct_bits): Likewise. 10136 (add_implicitly_declared_members): Likewise. 10137 (check_field_decl): Likewise. 10138 (check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it 10139 correctly under the new ABI. 10140 * decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 10141 instead of TYPE_NEEDS_DESTRUCTOR. 10142 (initialize_local_var): Likewise. 10143 (destroy_local_var): Likewise. 10144 (cp_finish_decl): Likewise. 10145 (register_dtor_fn): Likewise. 10146 (grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and 10147 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. Don't set 10148 TYPE_VEC_DELETE_TAKES_SIZE here. 10149 (xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and 10150 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. 10151 (store_parm_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10152 (finish_destructor_body): Likewise. 10153 (maybe_build_cleanup_1): Likewise. 10154 * decl2.c (do_static_destruction): Likewise. 10155 * init.c (build_new_1): Make it static. 10156 (perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10157 (expand_cleanup_for_base): Likewise. 10158 (get_cookie_size): New function. 10159 (build_new_1): Handle array-new cookies correctly under the new 10160 ABI. 10161 (build_vec_delete_1): Likewise. 10162 (build_vec_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10163 (build_delete): Likewise. 10164 (build_vec_delete): Handle array-new cookies correctly under the new 10165 ABI. 10166 * lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10167 * pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and 10168 TYPE_HAS_ARRAY_NEW_OPERATOR. 10169 * ptree.c (print_lang_type): Check them. 10170 * search.c (context_for_name_lookup): Fix typo in comment. 10171 (tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 10172 * tree.c (break_out_cleanups): Likewise. 10173 (build_cplus_array_test_1): Likewise. 10174 (cp_build_qualified_type_real): Likewise. 10175 * typeck.c (complete_type): Likewise. 10176 10177 * g++spec.c (lang_specific_driver): Add -fnew-abi at the start of 10178 the command-line, not the end. 10179 101802000-03-01 Jason Merrill <jason@casey.cygnus.com> 10181 10182 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG. 10183 101842000-03-02 Tom Tromey <tromey@cygnus.com> 10185 10186 * cp-tree.h (build_java_class_ref): Declare. 10187 * init.c (build_java_class_ref): No longer static. 10188 * except.c (expand_throw): Generate a Java-style `throw' if the 10189 thrown object is a "Java" object. 10190 (initialize_handler_parm): Generate a Java-style lookup of 10191 exception info if the caught object is a "Java" object. 10192 (catch_language, catch_language_init): New globals. 10193 (decl_is_java_type): New function. 10194 (expand_start_catch_block): Don't call push_eh_info() or 10195 push_eh_cleanup() when handling a Java-style "catch". Pass Java 10196 class reference to build_catch_block. 10197 10198Thu Mar 2 13:32:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10199 10200 * typeck.c (comptypes): Treat sizetype like its language equivalent. 10201 102022000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 10203 10204 * typeck.c (maybe_warn_about_returning_address_of_local): Reorganize 10205 to merge reference/pointer code and fix incorrect warnings. 10206 102072000-02-29 Jason Merrill <jason@casey.cygnus.com> 10208 10209 * search.c (protected_accessible_p): Use context_for_name_lookup. 10210 10211 * init.c (construct_virtual_bases): Fix thinko. 10212 * typeck.c (expand_ptrmemfunc_cst): Fix thinko. 10213 102142000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> 10215 10216 * decl.c (current_function_decl): Move to toplev.c. 10217 102182000-02-29 Nathan Sidwell <nathan@codesourcery.com> 10219 10220 * pt.c (fn_type_unification): Unify return type, whenever 10221 provided. 10222 (get_bindings_real): Only pass return type when necessary. 10223 Remove explicit return type check. 10224 * class.c (resolve_address_of_overloaded_function): Pass desired 10225 return type to fn_type_unification. 10226 10227Mon Feb 28 08:15:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10228 10229 * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear 10230 DECL_FIELD_SIZE. 10231 (check_bitfield_decl, check_field_decls): Set DECL_SIZE, not 10232 DECL_FIELD_SIZE. 10233 * rtti.c (expand_class_desc): Likewise. 10234 * cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name. 10235 (THUNK_VCALL_OFFSET): Likewise. 10236 (THUNK_DELTA): Reflect changes in ../tree.h. 10237 102382000-02-28 Jason Merrill <jason@casey.cygnus.com> 10239 10240 * search.c (protected_accessible_p): Also allow the access if 10241 the member is public in DERIVED. Lose TYPE parm. 10242 (friend_accessible_p): Lose TYPE parm. 10243 (accessible_p): Adjust. 10244 10245Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10246 10247 * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop 10248 on things that are not sizes; ssize_binop deleted. 10249 Call size_diffop when appropriate. 10250 (dfs_build_vcall_offset_vtbl_entries): Likewise. 10251 (build_primary_vtable, build_secondary_vtable): Likewise. 10252 (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. 10253 Variable I is HOST_WIDE_INT. 10254 (get_vfield_offset): Pass proper types to size_binop. 10255 (size_extra_vtbl_entries, layout_virtual_bases): Likewise. 10256 (finish_struct_1): Likewise. 10257 (skip_rtti_stuff): Arg N is now pointer to signed. 10258 (layout_class_type): Use size_zero_node. 10259 * cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. 10260 * cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. 10261 * decl.c (complete_arry_type): Pass proper types to size_binop. 10262 (xref_basetypes): BINFO_OFFSET is sizetype. 10263 * error.c (dump_expr): Don't use size_binop non-sizes. 10264 * expr.c (cplus_expand_constant): Pass proper types to size_binop. 10265 * init.c (construct_virtual_bases): Fix type error. 10266 (build_vec_delete_1): Pass proper type to size_binop and don't 10267 fold result. 10268 * lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. 10269 * rtti.c (get_base_offset): Pass proper type to size_binop. 10270 * search.c (dfs_find_vbases): Fix type error. 10271 (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. 10272 (dfs_get_vbase_types): BINFO_OFFSET is sizetype. 10273 * tree.c (debug_binfo): Variable N is signed. 10274 Use HOST_WIDE_INT_PRINT_DEC. 10275 * typeck.c (comptypes): sizetype is same as equivalent integer type. 10276 (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, 10277 size_one_node and size_zero_node. 10278 (c_alignof): Use size_one_node. 10279 (build_component_addr): Pass proper types to size_binop. 10280 (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. 10281 102822000-02-26 Jason Merrill <jason@casey.cygnus.com> 10283 10284 Implement class scope using-declarations for functions. 10285 * class.c (handle_using_decl): Call add_method for used functions. 10286 Use IDENTIFIER_CLASS_VALUE to check for conflicts. 10287 (add_method): Used functions are hidden by local functions. 10288 (check_bases_and_members): Handle using-decls before finalizing 10289 CLASSTYPE_METHOD_VEC. 10290 * call.c (add_function_candidate): Add ctype parm; if non-zero, 10291 override the type of 'this' accordingly. 10292 (add_template_candidate, add_template_candidate_real): Add ctype parm. 10293 (convert_class_to_reference, build_user_type_conversion_1, 10294 build_new_function_call, build_object_call, build_new_op, 10295 build_new_method_call): Pass ctype parm. 10296 10297 * search.c (lookup_member): Put rval_binfo, not basetype_path, in 10298 the baselink. 10299 * call.c (convert_class_to_reference, build_user_type_conversion_1, 10300 build_new_function_call, build_object_call, build_new_op, 10301 build_new_method_call, build_op_delete_call): Don't get basetype_path 10302 from a baselink. 10303 * typeck.c (build_component_ref): Likewise. 10304 * init.c (build_offset_ref): Likewise. 10305 (resolve_offset_ref): Don't call enforce_access. 10306 Call build_scoped_ref. 10307 * typeck2.c (build_scoped_ref): Simplify. Do nothing if it 10308 would cause an error or if -pedantic. 10309 * class.c (alter_access): Lose binfo parm. 10310 103112000-02-26 Mark Mitchell <mark@codesourcery.com> 10312 10313 * semantics.c (simplify_aggr_init_exprs_p): Don't walk into 10314 types. 10315 103162000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at> 10317 10318 * rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info 10319 pseudo_type_info creation into the std namespace 10320 103212000-02-26 Mark Mitchell <mark@codesourcery.com> 10322 10323 * cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. 10324 (import_export_class): Remove declaration. 10325 * decl2.c (import_export_class): Make it static. 10326 * dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR, 10327 PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, 10328 EXPR_WITH_FILE_LOCATION. 10329 * lex.c (check_newline): Tweak filename/lineno setting. 10330 * semantics.c (begin_while_stmt): Fix typo in comment. 10331 10332Sat Feb 26 19:50:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10333 10334 * lang-options.h (-fmessage-length=): Add missing option. 10335 10336 * Make-lang.in (CXX_SRCS): Add .h files and sort list. 10337 103382000-02-26 Zack Weinberg <zack@wolery.cumb.org> 10339 10340 * Make-lang.in: Delete refs to LIBGCC2_DEPS. 10341 10342Fri Feb 25 14:52:33 2000 Jim Wilson <wilson@cygnus.com> 10343 10344 * optimize.c (expand_call_inline): Emit the return label before 10345 evaluating the return value. 10346 103472000-02-24 Mark Mitchell <mark@codesourcery.com> 10348 10349 * lex.c (check_newline): Use push_srcloc and pop_srcloc, rather 10350 than duplicating functionality here. 10351 * optimize.c: Include input.h. 10352 (expand_call_inline): Use push_srcloc and pop_srcloc. 10353 * parse.y (maybe_cv_qualifier): Remove calls to emit_line_note. 10354 * parse.c: Regenerated. 10355 * Makefile.in (lex.o): Depend on input.h. 10356 (optimize.o): Likewise. 10357 103582000-02-24 Nathan Sidwell <nathan@codesourcery.com> 10359 10360 * decl.c (grokdeclarator): Diagnose qualifiers on non-member 10361 function type, rather than ICE. 10362 103632000-02-23 Jason Merrill <jason@casey.cygnus.com> 10364 10365 * decl.c (grokdeclarator): Call decl_type_access_control. 10366 * parse.y (parse_end_decl): Don't call decl_type_access_control if 10367 decl is null. 10368 103692000-02-23 Nathan Sidwell <nathan@codesourcery.com> 10370 10371 * decl.c (decls_match): Remove obsolete static member nadgering. 10372 103732000-02-21 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10374 10375 * decl.c (grokdeclarator): Change ANSI to ISO. 10376 * lex.c (consume_string, readescape, do_identifier): Likewise. 10377 (parse_float, real_yylex): Likewise. 10378 * parse.y (paren_expr_or_null, paren_cond_or_null): Likewise. 10379 (unary_expr, new_initializer, cast_expr, primary, primary_no_id, 10380 new_type_id, maybe_label_decls, simple_stmt, 10381 for.init.statement): Likewise. 10382 * pt.c (do_decl_instantiation, do_type_instantiation): Likewise. 10383 * semantics.c (finish_named_return_value): Likewise. 10384 * parse.c: Regenerate. 10385 103862000-02-21 Mark Mitchell <mark@codesourcery.com> 10387 10388 * cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro. 10389 (CPTI_CLASS_STAR_TYPE): Remove. 10390 (vtable_index_type): Likewise. 10391 (class_star_type_node): Remove. 10392 (TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI. 10393 (build_binary_op_nodefault): Remove. 10394 * call.c (build_new_op): Use build_binary_op instead of 10395 build_binary_op_nodefault. 10396 * decl.c (init_decl_processing): Remove class_star_type_node 10397 initialization. Make delta_type_node ptrdiff_type_node under the 10398 new ABI. Initialize vtable_index_type. 10399 (build_ptrmemfunc_type): Build different structures for the new 10400 ABI. 10401 (build_enumerator): Use build_binary_op instead of 10402 build_binary_op_nodefault. 10403 * method.c (build_overload_value): Mangle pointers-to-members 10404 appropriately under the new ABI. 10405 * typeck.c (build_array_ref): Use build_binary_op instead of 10406 build_binary_op_nodefault. 10407 (get_member_function_from_ptrfunc): Adjust for the new ABI. 10408 (build_binary_op_nodefault): Rename to ... 10409 (build_binary_op): ... this. Remove old version. Adjust for 10410 pointer-to-member comparisons under the new ABI. 10411 (build_ptrmemfunc1): Remove dead code. Adjust for the new ABI. 10412 (build_ptrmemfunc): Adjust for the new ABI. 10413 (expand_ptrmemfunc_cst): Likewise. 10414 (delta2_from_ptrmemfunc): Assert that we're not using the new ABI. 10415 (pfn_from_ptrmemfunc): Adjust for the new ABI. 10416 104172000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 10418 10419 * call.c (build_object_call): Compress consecutive calls to 10420 cp_error. 10421 (build_conditional_expr): Say 'ISO C++' not 'ANSI C++'. 10422 (build_op_delete_call): Adjust message formatting. 10423 10424 * class.c (check_bases): Compress consecutive calls to 10425 cp_pedwarn. 10426 (finish_struct_anon): Say 'ISO C++'. 10427 10428 * decl.c (start_decl): Same here. 10429 (grok_reference_init): Likewise. 10430 (grokfndecl): Correct message formatting. 10431 (grokfndecl): Improve diagnostic. 10432 (check_static_variable_definition): Likewise. Say 'ISO C++' 10433 (compute_array_index_type): Say 'ISO C++' 10434 (create_array_type_for_decl): Compress consecutive calls to 10435 cp_error. 10436 (grokdeclarator): Say 'ISO C++' 10437 (grok_op_properties): Likewise. 10438 10439 * decl2.c (delete_sanity): Clairify diagnostic. 10440 (check_member_template): Same here. 10441 (grok_function_init): Use consistent terminology. 10442 10443 * expr.c (do_case): Say 'ISO C++' 10444 10445 * friend.c (do_friend): Compress consecutive calls to warning. 10446 104472000-02-20 Mark Mitchell <mark@codesourcery.com> 10448 10449 * cp-tree.h (merge_primary_and_secondary_vtables_p): New macro. 10450 * class.c (build_secondary_vtable): Reorganize. Don't create a 10451 new vtable under the new ABI. 10452 (layout_vtable_decl): Don't add num_extra_vtbl_entries when 10453 computing the size. 10454 (build_vtbl_initializer): Don't return a CONSTRUCTOR; just return 10455 the initializing elements. 10456 (initialize_vtable): New function. 10457 (dfs_finish_vtbls): Use it. 10458 (dfs_accumulate_vtbl_inits): New function. 10459 (finish_vtbls): Merge primary and secondary vtables under the new 10460 ABI. 10461 (finish_struct_1): Remove redundant call to layout_vtable_decl. 10462 * init.c (expand_virtual_init): Deal with BINFO_VTABLEs that 10463 aren't VAR_DECLs. 10464 10465 * class.c (build_vtable): New function, split out from ... 10466 (get_vtable_decl): ... here, and ... 10467 (build_secondary_vtable): ... here. 10468 10469 * pt.c (tsubst_decl): Fix formatting. 10470 10471Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10472 10473 * class.c (build_primary_vtable, layout_vtable_decl): Likewise. 10474 (avoid_overlap, build_base_field): Likewise. 10475 (build_base_field, build_base_fields, is_empty_class): 10476 Test DECL_SIZE with integer_zero. 10477 (layout_class_type): Set CLASSTYPE_SIZE_UNIT. 10478 * cp-tree.h (struct lang_type): New field size_unit. 10479 (CLASSTYPE_SIZE_UNIT): New macro. 10480 * decl.c (init_decl_processing): Set DECL_SIZE_UNIT. 10481 (cp_finish_decl): Delete -Wlarger-than processing. 10482 * optimize.c (remap_decl): Walk DECL_SIZE_UNIT. 10483 * pt.c (tsubst_decl): Set DECL_SIZE_UNIT. 10484 * tree.c (make_binfo): binfo vector is one entry longer. 10485 (walk_tree): Walk DECL_SIZE_UNIT. 10486 104872000-02-19 Mark Mitchell <mark@codesourcery.com> 10488 10489 * class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in 10490 comment. 10491 (build_vtable_entry): Don't assume all vtable entries are 10492 functions. 10493 (build_vtbl_initializer): Adjust accordingly. 10494 (get_vtable_decl): Fix formatting. 10495 104962000-02-18 Jason Merrill <jason@casey.cygnus.com> 10497 10498 * semantics.c (deferred_type_access_control): Walk the entire 10499 type_lookups list. 10500 (save_type_access_control): Rename from 10501 initial_deferred_type_access_control. Just remember the value. 10502 (decl_type_access_control): New fn. 10503 (begin_function_definition): Use deferred_type_access_control, after 10504 we've started the function. Set type_lookups to error_mark_node. 10505 * parse.y (frob_specs, fn.def1): Adjust. 10506 (parse_decl0, parse_field, parse_field0, parse_bitfield): New fns. 10507 (parse_end_decl, parse_bitfield0, parse_method): New fns. 10508 (fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them. 10509 (after_type_component_declarator0): Likewise. 10510 (after_type_component_declarator): Likewise. 10511 (notype_component_declarator): Likewise. 10512 * cp-tree.h: Adjust. 10513 10514 * decl.c (redeclaration_error_message): Allow redeclaration of 10515 namespace-scope decls. 10516 105172000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 10518 10519 * typeck2.c (my_friendly_abort): Use GCCBUGURL. 10520 105212000-02-17 Mark Mitchell <mark@codesourcery.com> 10522 10523 * class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT. 10524 * decl2.c (grokclassfn): Likewise. 10525 10526 * ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS. 10527 10528 * decl2.c (lang_decode_option): Don't set default message length 10529 here. 10530 * lex.c (lang_init_options): Set it here. 10531 105322000-02-16 Mark Mitchell <mark@codesourcery.com> 10533 10534 Make DECL_CONTEXT mean the class in which a member function was 10535 declared, even for a virtual function. 10536 * cp-tree.h (DECL_CLASS_CONTEXT): Adjust. 10537 (DECL_FRIEND_CONTEXT): New macro. 10538 (DECL_REAL_CONTEXT): Remove. 10539 (SET_DECL_FRIEND_CONTEXT): Likewise. 10540 (DECL_VIRTUAL_CONTEXT): Adjust. 10541 (DECL_CLASS_SCOPE_P): Use TYPE_P. 10542 (add_friends): Remove. 10543 (hack_decl_function_context): Likewise. 10544 * call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with 10545 CP_DECL_CONTEXT. 10546 (build_over_call): Fix indentation. Use DECL_CONTEXT 10547 instead of DECL_CLASS_CONTEXT. 10548 * class.c (dfs_build_vcall_offset_vtbl_entries): Likewise. 10549 (add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 10550 (strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 10551 (build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT. 10552 (build_base_field): Likewise. 10553 (finish_struct_1): Likewise. 10554 (build_self_reference): Likewise. 10555 * decl.c (push_class_binding): Use CP_DECL_CONTEXT, not 10556 DECL_REAL_CONTEXT. 10557 (pushtag): Use decl_function_context, not 10558 hack_decl_function_context. 10559 (decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 10560 (duplicate_decls): Use DECL_VIRTUAL_CONTEXT. 10561 (pushdecl): Remove bogus code. 10562 (start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT. 10563 (cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 10564 (grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 10565 Use decl_function_context, nothack_decl_function_context. 10566 (grokvardecl): Don't set DECL_CLASS_CONTEXT. 10567 (grokdeclarator): Likewise. Use decl_function_context, not 10568 hack_decl_function_context. 10569 (copy_args_p): Document. Don't use DECL_CLASS_CONTEXT. 10570 (start_function): Use DECL_FRIEND_CONTEXT, not 10571 DECL_CLASS_CONTEXT. Use decl_function_context, not 10572 hack_decl_function_context. 10573 (finish_function): Use decl_function_context, not 10574 hack_decl_function_context. 10575 (maybe_retrofit_in_chrg): Use DECL_CONTEXT, not 10576 DECL_CLASS_CONTEXT. 10577 (grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT. 10578 (finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT. 10579 (grokfield): Likewise. 10580 (finish_builtin_type): Likewise. 10581 (finish_vtable_vardec): Use decl_function_context, not 10582 hack_decl_function_context. 10583 (import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 10584 (start_static_initialization_or_destruction): Likewise. 10585 (finish_static_initialization_or_destruction): Likewise. 10586 (mark_used): Adjust logic for deciding when to synthesize methods. 10587 * dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not 10588 DECL_REAL_CONTEXT. 10589 * error.c (dump_function_decl): Use DECL_CONTEXT, not 10590 DECL_CLASS_CONTEXT. 10591 * friend.c (is_friend): Likewise. 10592 (add_friends): Remove. 10593 (do_friend): Use SET_DECL_FRIEND_CONTEXT. 10594 * lex.c (begin_definition_of_inclass_inline): Use 10595 decl_function_context, not hack_decl_function_context. 10596 (process_next_inline): Likewise. 10597 (do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 10598 * method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not 10599 DECL_CLASSS_CONTEXT. 10600 (hack_identifier): Likewise. 10601 (synthesize_method): Use decl_function_context, not 10602 hack_decl_function_context. 10603 * pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not 10604 DECL_REAL_CONTEXT. 10605 (is_member_template): Use decl_function_context, not 10606 hack_decl_function_context. Use DECL_CONTEXT, not 10607 DECL_CLASS_CONTEXT. 10608 (build_template_decl): Set DECL_VIRTUAL_CONTEXT, not 10609 DECL_CLASS_CONTEXT. 10610 (check_default_tmpl_args): Use CP_DECL_CONTEXT, not 10611 DECL_REAL_CONTEXT. 10612 (push_template_decl_real): Likewise. 10613 (instantiate_class_template): Don't call add_friends. 10614 (tsubst_default_argument): Use DECL_CONTEXT, not 10615 DECL_REAL_CONTEXT. 10616 (tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 10617 Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 10618 (set_meangled_name_for_template_decl): Use DECL_CONTEXT, not 10619 DECL_CLASS_CONTEXT. 10620 * repo.c (repo_inline_used): Likewise. 10621 * search.c (current_scope): Adjust for new _CONTEXT macros. 10622 (context_for_name_lookup): Use CP_DECL_CONTEXT, not 10623 DECL_REAL_CONTEXT. 10624 (friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 10625 (lookup_fnfields_here):Likewise. 10626 (check_final_overrider): Likewise. 10627 (init_vbase_pointers): Likewise. 10628 (virtual_context): Likewise. 10629 * semantics.c (finish_member_declaration): Just set DECL_CONTEXT. 10630 (expand_body): Use decl_function_context, not 10631 hack_decl_function_context. 10632 * tree.c (hack_decl_function_context): Remove. 10633 * typeck.c (build_x_function_call): Use DECL_CONTEXT, not 10634 DECL_CLASS_CONTEXT. 10635 * typeck2.c (error_not_base_type): Likewise. 10636 106372000-02-15 Jason Merrill <jason@casey.cygnus.com> 10638 10639 * decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE. 10640 106412000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10642 10643 * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h. 10644 106452000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 10646 10647 * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. 10648 106492000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> 10650 10651 * decl2.c (lang_decode_option): Enable automatic line wrapping. 10652 106532000-02-13 Jason Merrill <jason@casey.cygnus.com> 10654 10655 * parse.y (frob_specs): Split out... 10656 (parse_decl): From here. 10657 (fn.def2): Call initial_deferred_type_access_control. 10658 (after_type_component_declarator0): Call frob_specs. 10659 (notype_component_declarator0): Likewise. 10660 * search.c (friend_accessible_p): Nested classes are friends of their 10661 enclosing classes. 10662 106632000-02-10 Mark Mitchell <mark@codesourcery.com> 10664 10665 * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be 10666 used to create an implicit temporary. 10667 10668 * class.c (dfs_modify_vtables): Tweak calculation of functions to 10669 override. 10670 106712000-02-08 Nathan Sidwell <nathan@acm.org> 10672 10673 * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to 10674 strip array element qualifiers too. 10675 106762000-02-07 Mark Mitchell <mark@codesourcery.com> 10677 10678 * decl.c (store_parm_decls): Don't build cleanups for parameters 10679 while processing_template_decl. 10680 106812000-02-07 Jason Merrill <jason@casey.cygnus.com> 10682 10683 * cp-tree.h (struct saved_scope): Add incomplete field. 10684 (namespace_scope_incomplete): New macro. 10685 * decl.c (pushdecl): Use it. 10686 (hack_incomplete_structures): Use it. See through artificial 10687 binding levels. 10688 (mark_saved_scope): Mark it. 10689 10690 Implement access control for nested types. 10691 * search.c (type_access_control): New fn. 10692 (accessible_p): Now we do perform access control for types. 10693 * semantics.c (deferred_type_access_control): New fn. 10694 (initial_deferred_type_access_control): New fn. 10695 (begin_function_definition): Call it. Add lookups parm. 10696 * decl.c (struct binding_level): Add this_class field. 10697 (pushlevel_class): Set it. 10698 (mark_binding_level): Mark it. 10699 (lookup_name_real): Use it. Call type_access_control. 10700 (mark_saved_scope): Mark lookups field. 10701 * cp-tree.h (flagged_type_tree): Add lookups field. 10702 (struct saved_scope): Add lookups field. 10703 (type_lookups): New macro. 10704 * parse.y (declmods): Now <ftype>. 10705 (parse_decl): Add lookups parm. Call 10706 initial_deferred_type_access_control. 10707 (lang_extdef): Clear type_lookups. 10708 (typed_declspecs, declmods, typespec): Set lookups field. 10709 (initdcl): Call deferred_type_access_control. 10710 (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0, 10711 component_decl_1, named_parm): Adjust. 10712 * friend.c (is_friend): Nested classes are friends of their 10713 enclosing classes. 10714 10715 * class.c (currently_open_derived_class): New fn. 10716 * method.c (hack_identifier): Use it. 10717 10718 * lex.c (do_identifier): Remove obsolete code. 10719 10720 * parse.y (typed_typespecs): Propagate new_type_flag properly. 10721 107222000-02-05 Zack Weinberg <zack@wolery.cumb.org> 10723 10724 * tinfo.h: Remove apostrophes from C++ comment (xgettext 10725 thinks this file is plain C). 10726 107272000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10728 10729 * Makefile.in (call.o): Depend on $(EXPR_H). 10730 10731 * call.c: Include "expr.h". 10732 10733 * class.c (dump_class_hierarchy): Add prototype. 10734 10735 * search.c (dfs_get_pure_virtuals): Likewise. 10736 107372000-02-1 Ulrich Drepper <drepper@redhat.com> 10738 10739 * parse.y (simple_stmt): Allow :: token in asm parameter list. 10740 * parse.c: Rebuilt. 10741 10742Mon Jan 31 15:35:29 2000 Jim Wilson <wilson@cygnus.com> 10743 10744 * class.c (build_vtbl_or_vbase_field): New parameter fcontext. 10745 Store it in DECL_FCONTEXT. 10746 (build_vbase_pointer_fields, create_vtable_ptr): Fix callers. 10747 107482000-01-31 Jason Merrill <jason@casey.cygnus.com> 10749 10750 * tinfo.h (old abi): #include "tconfig.h". 10751 * tinfo.cc (convert_to_base): Move into old abi section. 10752 107532000-01-31 Mark Mitchell <mark@codesourcery.com> 10754 10755 * cp-tree.h (BINFO_VIRTUALS): Tweak documentation. 10756 (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO. 10757 (BINFO_PRIMARY_BINFO): New macro. 10758 (BF_DELTA): Rename to ... 10759 (BV_DELTA): ... this. 10760 (BF_VCALL_INDEX): Rename to ... 10761 (BV_VCALL_INDEX): ... this. 10762 (BF_FN): Rename to ... 10763 (BV_FN): ... this. 10764 * class.c (build_vbase_path): Adjust for changes to reverse_path. 10765 (set_rtti_entry): Rename BF_ macros to BV_ variants. 10766 (modify_vtable_entry): Simplify. 10767 (add_virtual_function): Rename BF_ macros to BV_ variants. 10768 (build_vtable_initializer): Likewise. 10769 (get_class_offset_1): Remove. 10770 (dfs_get_class_offset): Likewise. 10771 (get_class_offset): Likewise. 10772 (dfs_find_final_overrider): New function. 10773 (find_final_overrider): Likewise. 10774 (modify_one_vtable): Remove. 10775 (dfs_find_base): New function. 10776 (dfs_modify_vtables): Fold modify_one_vtable in here. Use 10777 find_final_overrider. 10778 (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new 10779 virtuals. 10780 (dfs_fixup_vtable_deltas): Remove. 10781 (override_one_vtable): Remove. 10782 (merge_overrides): Likewise. 10783 (layout_virtual_bases): Make sure BINFO_OFFSET is set right for 10784 unreal chilren of virtual bases. 10785 (finish_struct_1): Don't use merge_overrides. Don't use 10786 dfs_fixup_vtable_deltas. 10787 * tree.c (reverse_path): Return a TREE_LIST, not a chain of 10788 BINFOs. 10789 107902000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 10791 Jason Merrill <jason@yorick.cygnus.com> 10792 10793 * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. 10794 107952000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> 10796 10797 * exception.cc (__throw_bad_typeid): Add missing std::. 10798 107992000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10800 10801 * cp-tree.h (make_thunk): PROTO -> PARAMS. 10802 108032000-01-31 Nathan Sidwell <sidwell@codesourcery.com> 10804 10805 * cp-tree.h (new_abi_rtti_p): Use flag_new_abi. 10806 10807 Runtime support for new-abi rtti. 10808 * inc/typeinfo (type_info::operator!=): Define in class. 10809 (type_info::before, type_info::name, type_info::operator==, 10810 type_info::operator!=): Define new ABI implementations. 10811 (type_info::is_pointer_p, type_info::is_function_p): Declare 10812 new virtual functions. 10813 (type_info::do_catch, type_info::do_upcast): Likewise. 10814 10815 * tinfo.h (__base_class_info): Define new class. 10816 (__class_type_info): Likewise. 10817 (__si_class_type_info): Likewise. 10818 (__vmi_class_type_info): Likewise. 10819 (__dynamic_cast): Prototype. 10820 10821 * tinfo.cc: Conditionalize old and new rtti mechanisms. 10822 (type_info::is_pointer_p): Define new function. 10823 (type_info::is_function_p): Likewise. 10824 (type_info::do_catch): Likewise. 10825 (type_info::do_upcast): Likewise. 10826 (vtable_prefix): New structure for vtable access. 10827 (adjust_pointer): Define new template function. 10828 (contained_p, public_p, virtual_p, contained_public_p, 10829 contained_nonpublic_p, contained_nonvirtual_p): Define new 10830 functions. 10831 (nonvirtual_base_type): New local variable. 10832 (__class_type_info::~__class_type_info): Define. 10833 (__si_class_type_info::~__si_class_type_info): Likewise. 10834 (__vmi_class_type_info::~__vmi_class_type_info): Likewise. 10835 (__class_type_info::do_catch): Define new function. 10836 (__class_type_info::do_upcast): Likewise. 10837 (__class_type_info::find_public_src): Likewise. 10838 (__class_type_info::do_find_public_src): Likewise. 10839 (__si_class_type_info::do_find_public_src): Likewise. 10840 (__vmi_class_type_info::do_find_public_src): Likewise. 10841 (__class_type_info::do_dyncast): Likewise. 10842 (__si_class_type_info::do_dyncast): Likewise. 10843 (__vmi_class_type_info::do_dyncast): Likewise. 10844 (__class_type_info::do_upcast): Likewise. 10845 (__si_class_type_info::do_upcast): Likewise. 10846 (__vmi_class_type_info::do_upcast): Likewise. 10847 (__dynamic_cast): Likewise. 10848 10849 * tinfo2.cc (__fundamental_type_info): Define new class. 10850 (__pointer_type_info): Likewise. 10851 (__reference_type_info): Likewise. 10852 (__array_type_info): Likewise. 10853 (__function_type_info): Likewise. 10854 (__enum_type_info): Likewise. 10855 (__ptr_to_member_type_info): Likewise. 10856 (__fundamental_type_info::~__fundamental_type_info): Define. 10857 (__pointer_type_info::~__pointer_type_info): Likewise. 10858 (__reference_type_info::~__reference_type_info): Likewise. 10859 (__array_type_info::~__array_type_info): Likewise. 10860 (__function_type_info::~__function_type_info): Likewise. 10861 (__enum_type_info::~__enum_type_info): Likewise. 10862 (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise. 10863 (__pointer_type_info::do_catch): Define new function. 10864 (__ptr_to_member_type_info::do_catch): Define new function. 10865 10866 (__throw_type_match_rtti_2): Use new ABI interface, if enabled. 10867 (__is_pointer): Likewise. 10868 10869 * exception.cc (__cplus_type_matcher): Deal with new-abi rtti. 10870 108712000-01-30 Mark Mitchell <mark@codesourcery.com> 10872 10873 * cp/class.c (build_vtable): Rename to build_primary_vtable. 10874 (prepare_fresh_vtable): Rename to build_secondary_vtable. 10875 (make_new_vtable): New function. 10876 (modify_vtable_entry): Handle generation of new vtables correctly. 10877 (modify_one_vtable): Remove unused parameter. 10878 (dfs_fixup_vtable_deltas): Likewise. 10879 (override_one_vtable): Use build_secondary_vtable. 10880 (finish_struct_1): Use build_primary_vtable and 10881 build_secondary_vtable. 10882 108832000-01-28 Ulrich Drepper <drepper@redhat.com> 10884 10885 * cp/decl.c: Adjust variable names, comments, help strings. 10886 108872000-01-29 Nathan Sidwell <nathan@acm.org> 10888 10889 * new2.cc (operator delete[]): Use operator delete, don't assume 10890 implementation. 10891 108922000-01-29 Nathan Sidwell <sidwell@codesourcery.com> 10893 10894 * class.c (build_vtbl_initializer): Add argument to 10895 build_vtable_entry call. 10896 108972000-01-27 Mark Mitchell <mark@codesourcery.com> 10898 10899 * cp-tree.def (THUNK_DECL): Discuss vcall indices. 10900 * cp-tree.h (BINFO_VIRTUALS): Update documentation. 10901 (BF_DELTA): New macro. 10902 (BF_VCALL_INDEX): Likewise. 10903 (BF_FN): Likewise. 10904 (THUNK_VCALL_OFFSET): Likewise. 10905 (make_thunk): Change prototype. 10906 * class.c (build_vtable_entry): Integrate 10907 build_vtable_entry_for_fn. Handle vcall indices. 10908 (build_vtable_entry_for_fn): Remove. 10909 (set_rtti_entry): Handle vcall indices. Use BF_DELTA, 10910 BF_VCALL_INDEX, BF_FN. 10911 (modify_vtable_entry): Integrate common code from 10912 modify_one_vtable and dfs_fixup_vtable_deltas. 10913 (add_virtual_function): Set BF_VCALL_INDEX. 10914 (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX, 10915 and BF_FN. 10916 (modify_one_vtable): Simplify. 10917 (dfs_fixup_vtable_deltas): Likewise. 10918 (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN. 10919 * method.c (make_thunk): Handle vcall indices. 10920 109212000-01-28 Nathan Sidwell <sidwell@codesourcery.com> 10922 10923 Compiler side new abi rtti (not enabled). 10924 * cp-tree.h (new_abi_rtti_p): New macro. 10925 (emit_support_tinfos): Prototype new function. 10926 (tinfo_decl_p): Likewise. 10927 (emit_tinfo_decl): Likwise. 10928 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor 10929 macros. 10930 (doing_runtime): New local static. 10931 (init_rtti_processing): Add new-abi initializer. 10932 (get_tinfo_decl): Add new-abi logic. 10933 (tinfo_from_decl): Likewise. 10934 (build_dynamic_cast_1): Likewise. 10935 (qualifier_flags): New static function. 10936 (tinfo_base_init): Likewise. 10937 (generic_initializer): Likewise. 10938 (ptr_ref_initializer): Likewise. 10939 (ptmd_initializer): Likewise. 10940 (class_hint_flags): Likewise. 10941 (class_initializer): Likewise. 10942 (synthesize_tinfo_var): Likewise. 10943 (create_real_tinfo_var): Likewise. 10944 (create_pseudo_type_info): Likewise. 10945 (get_vmi_pseudo_type_info): Likewise. 10946 (create_tinfo_types): Likewise. 10947 (emit_support_tinfos): New global function. 10948 (tinfo_decl_p): New global predicate. 10949 (emit_tinfo_decl): New global function. 10950 * class.c (set_rtti_entry): Generalize for old and new rtti. 10951 (build_vtbl_initializer): Likewise. 10952 * decl2.c (finish_file): Likewise. 10953 10954Thu Jan 27 20:53:36 2000 Jim Wilson <wilson@cygnus.com> 10955 10956 * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) 10957 and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). 10958 10959Thu Jan 27 13:54:12 2000 Mike Stump <mrs@wrs.com> 10960 10961 * decl.c (pushdecl): Fix up shadow warnings with respect to implicit 10962 for scopes. 10963 109642000-01-26 Jason Merrill <jason@casey.cygnus.com> 10965 10966 * pt.c (unify): Use fold, not maybe_fold_nontype_arg. 10967 10968Wed Jan 26 22:19:14 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 10969 10970 * optimize.c (calls_setjmp_r): Supply new argument 10971 to special_function_p. 10972 109732000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10974 10975 * call.c: PROTO -> PARAMS. 10976 * class.c: Likewise. 10977 * cp-tree.h: Likewise. 10978 * cvt.c: Likewise. 10979 * decl.c: Likewise. 10980 * decl.h: Likewise. 10981 * decl2.c: Likewise. 10982 * dump.c: Likewise. 10983 * errfn.c: Likewise. 10984 * error.c: Likewise. 10985 * except.c: Likewise. 10986 * expr.c: Likewise. 10987 * init.c: Likewise. 10988 * input.c: Likewise. 10989 * lex.c: Likewise. 10990 * lex.h: Likewise. 10991 * method.c: Likewise. 10992 * optimize.c: Likewise. 10993 * parse.y: Likewise. 10994 * pt.c: Likewise. 10995 * repo.c: Likewise. 10996 * rtti.c: Likewise. 10997 * search.c: Likewise. 10998 * semantics.c: Likewise. 10999 * spew.c: Likewise. 11000 * tree.c: Likewise. 11001 * typeck.c: Likewise. 11002 * typeck2.c: Likewise. 11003 * xref.c: Likewise. 11004 110052000-01-25 Richard Henderson <rth@cygnus.com> 11006 11007 * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. 11008 110092000-01-25 Mark Mitchell <mark@codesourcery.com> 11010 11011 * cp-tree.h (vcall_offset_in_vtable_p): New macro. 11012 * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment. 11013 (struct vcall_offset_data_s): New type. 11014 (dfs_vcall_offset_queue_p): New function. 11015 (dfs_build_vcall_offset_vtbl_entries): Likewise. 11016 (build_vcall_offset_vtbl_entries): Likewise. 11017 (layout_vtable_decl): Likewise. 11018 (num_vfun_entries): Likewise. 11019 (num_extra_vtbl_entries): Add the entries for vcall offsets. 11020 (build_vtbl_initializer): Likewise. 11021 (dfs_finish_vtabls): Use layout_vtable_decl. 11022 (modify_one_vtables): Always duplicate vtables under the new ABI. 11023 (finish_struct_1): Use layout_vtable_decl. 11024 110252000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11026 11027 * decl.c (member_function_or_else): Change third arg from a format 11028 specifier to an `enum overload_flags'. Callers changed. 11029 110302000-01-25 Gabriel Dos Reis <gdr@codesourcery.com> 11031 11032 * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof, 11033 build_binary_op_nodefault, build_unary_op, build_reinterpret_cast, 11034 build_const_cast, get_delta_difference, check_return_expr): Avoid 11035 ANSI string concatenation usage. 11036 110372000-01-24 Mark Mitchell <mark@codesourcery.com> 11038 11039 * class.c (layout_class_type): Put the fields required to make a 11040 class non-empty at the end, not the beginning, of the TYPE_FIELDs 11041 list. 11042 110432000-01-24 Jason Merrill <jason@casey.cygnus.com> 11044 11045 * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a 11046 template. 11047 11048 * decl2.c (mark_used): Do instantiate inlines that have been 11049 explicitly instantiated. 11050 110512000-01-24 Richard Henderson <rth@cygnus.com> 11052 11053 * call.c (build_over_call): Use expand_tree_builtin. 11054 * typeck.c (build_function_call_real): Likewise. 11055 (build_binary_op_nodefault): Handle unordered compares. 11056 110572000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 11058 11059 * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New 11060 cp_tree_index values. 11061 (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node): 11062 New global node #defines for them. 11063 * rtti.c (call_void_fn): Replace with ... 11064 (build_runtime_decl): ... new static function. 11065 (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl. 11066 (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl. 11067 (build_dynamic_cast_1): Always produce correctly typed result. 11068 Explicitly produce type_info addresses. Use dynamic_cast_node. 11069 * exception.cc (__throw_bad_cast): Return `void *'. 11070 (__throw_bad_typeid): Return `const type_info &'. 11071 110722000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 11073 11074 * cp-tree.h (get_vtable_decl): Prototype new function. 11075 * class.c (get_vtable_decl): New function. Broken out from ... 11076 (build_vtable): ... here. Use it. 11077 * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created 11078 by get_vtable_decl. 11079 110802000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 11081 11082 * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE, 11083 CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE, 11084 CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations. 11085 (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE, 11086 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE, 11087 CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations. 11088 (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ... 11089 (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here. 11090 (CPTI_TINFO_VAR_ID): New enumeration. 11091 (__tp_desc_type_node, __access_mode_type_node, 11092 __bltn_desc_type_node, __user_desc_type_node, 11093 __class_desc_type_node, __ptr_desc_type_node, 11094 __attr_desc_type_node, __func_desc_type_node, 11095 __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines. 11096 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 11097 ref_desc_type_node, ary_desc_type_node, func_desc_type_node, 11098 enum_desc_type_node, class_desc_type_node, 11099 si_class_desc_type_node, vmi_class_desc_type_node, 11100 ptmd_desc_type_node, base_desc_type_node): New #defines. 11101 (tinfo_fn_id, tinfo_fn_type): Rename to ... 11102 (tinfo_decl_id, tinfo_decl_type): ... here. Adjust. 11103 (tinfo_var_id): New enumeration. 11104 (DECL_TINFO_FN_P): Augment comment. 11105 * decl.c (cp_global_trees): Adjust documentation. 11106 * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id, 11107 tinfo_decl_type and tinfo_var_id. 11108 (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type. 11109 (build_typeid): Remove unused variable. 11110 (get_tinfo_var): Use tinfo_var_id. 11111 (tinfo_name): New static function. 11112 (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type. 11113 (tinfo_from_decl): Likewise. 11114 (get_base_offset): New static function, broken out of 11115 expand_class_desc. 11116 (expand_si_desc): Use tinfo_name. 11117 (expand_class_desc): Likewise. Lose local static variable. 11118 Use base_desc_type_node. Use get_base_offset. 11119 (expand_ptr_desc): Use tinfo_name. 11120 (expand_attr_desc): Likewise. 11121 (expand_generic_desc): Likewise. 11122 11123 * tinfo.cc (__GXX_ABI_VERSION): Test value and existence. 11124 * tinfo.h (__GXX_ABI_VERSION): Test value and existence. 11125 111262000-01-23 Mark Mitchell <mark@codesourcery.com> 11127 11128 * cp-tree.h (__eprintf): Remove declaration. 11129 * tree.c (__eprintf): Remove definition. 11130 111312000-01-23 Zack Weinberg <zack@rabi.columbia.edu> 11132 Mark Mitchell <mark@codesourcery.com> 11133 11134 * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N, 11135 CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings. 11136 111372000-01-23 Brad Lucier <lucier@math.purdue.edu> 11138 11139 * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. 11140 111412000-01-23 Mark Mitchell <mark@codesourcery.com> 11142 11143 * cp-tree.h (register_dtor_fn): New function. 11144 * decl.c (destroy_local_static): Rename to ... 11145 (register_dtor_fn): ... this. Give it external linkage. 11146 (expand_static_init): Use it. 11147 * decl2.c (do_static_initialization): Likewise, if using 11148 __cxa_atexit. 11149 (do_static_destruction): Check that __cxa_atexit is not in use. 11150 (finish_file): Don't call do_static_destruction if using 11151 __cxa_atexit. 11152 11153 * typeck.c (convert_arguments): Restore two-message error 11154 reporting. 11155 111562000-01-20 Nathan Sidwell <sidwell@codesourcery.com> 11157 11158 Remap dynamic cast hint values to be consistent across ABIs. 11159 * search.c (dynamic_cast_base_recurse): Remap generated value. 11160 (get_dynamic_cast_base_type): Adjust documentation. 11161 * tinfo.h (__user_type_info::dyncast): Likewise. 11162 (__user_type_info::find_public_subobj): Remap BOFF meaning. 11163 * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning. 11164 (__class_type_info::do_dyncast): Likewise. 11165 (__class_type_info::do_find_public_subobj): Likewise. 11166 * tinfo2.cc (__dynamic_cast): Remap BOFF parameter. 11167 111682000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 11169 11170 * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn. 11171 11172 * typeck2.c (incomplete_type_error): Restore previous 11173 cp_error and cp_error_at call sequence. 11174 111752000-01-20 Brad Lucier <lucier@math.purdue.edu> 11176 11177 * class.c (dump_class_hierarchy): Make format agree with argument; 11178 cast pointer to unsigned long and print with %lx. 11179 111802000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 11181 11182 * decl2.c (lang_decode_option): Set default line-wrap length to 72. 11183 11184 * typeck.c (composite_pointer_type, common_type, 11185 comp_target_parms, c_sizeof, expr_sizeof, build_array_ref, 11186 build_function_call_real, convert_arguments, 11187 build_binary_op_nodefault, pointer_int_sum, pointer_diff, 11188 build_unary_op, mark_addressable, build_compound_expr, 11189 build_static_cast, build_reinterpret_cast, build_const_cast, 11190 build_c_cast, build_modify_expr, get_delta_difference, 11191 build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with 11192 'ISO C++'. Fusion consecutive calls to diagnostic message routines 11193 into a single one. 11194 * typeck2.c (readonly_error, abstract_virtuals_error, 11195 process_init_constructor, check_for_new_type): Likewise. 11196 111972000-01-19 Mark Mitchell <mark@codesourcery.com> 11198 11199 * tree.c (bot_manip): Set DECL_CONTEXT for newly created 11200 VAR_DECLs. 11201 112022000-01-18 Nathan Sidwell <sidwell@codesourcery.com> 11203 11204 * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype. 11205 (build_x_typeid): Likewise. 11206 (get_tinfo_fn): Likewise. 11207 (get_tinfo_fn_unused): Rename to ... 11208 (get_tinfo_decl): ... here. 11209 * rtti.c (build_headof): Replace logic error with assertion. 11210 (get_tinfo_fn_dynamic): Rename to ... 11211 (get_tinfo_decl_dynamic): ... here. Make static. Use 11212 complete_type_or_else. 11213 (build_x_typeid): Move into ... 11214 (build_typeid): ... here. Adjust call to 11215 get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify 11216 throw_bad_typeid expression. 11217 (get_tinfo_fn_unused): Rename to ... 11218 (get_tinfo_decl): ... here. Adjust comment. 11219 (get_tinfo_fn): Delete. 11220 (tinfo_from_decl): New static function. 11221 (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl. 11222 (get_typeid): Use complete_type_or_else. 11223 (build_dynamic_cast_1): Adjust calls to 11224 get_tinfo_decl_dynamic. Simplify throw_bad_cast expression. 11225 * parse.y (primary): Adjust call to build_typeid. 11226 * except.c (build_eh_type_type_ref): Adjust call to 11227 get_tinfo_decl. Mark as used. 11228 * class.c (set_rtti_entry): Adjust call to get_tinfo_decl. 11229 * decl2.c (build_expr_from_tree): Adjust call to build_typeid. 11230 * parse.c: Regenerated. 11231 112322000-01-17 Mark Mitchell <mark@codesourcery.com> 11233 11234 * class.c (fixed_type_or_null): Don't clear NONNULL. Document 11235 calling convention. 11236 (resolves_to_fixed_type_p): Document calling convention. 11237 * rtti.c (build_x_typeid): Initialize NONNULL. 11238 11239 * cp-tree.h (build_shared_int_cst): New function. 11240 * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity. 11241 * class.c (modify_vtable_entry): Likewise. 11242 (add_virtual_function): Split out code to generated shared 11243 INTEGER_CSTs to build_share_int_cst. 11244 (modify_all_vtables): Handle all the overridden functions here. 11245 Add overridden functions from non-primary virtual bases to the 11246 primary vtable. 11247 (finish_struct_1): Adjust call to modify_all_vtables. Add 11248 overridden functions from non-primary bases to the vtable. 11249 * tree.c (build_shared_int_cst): New function. 11250 11251 * cp-tree.h (scratchalloc): Remove. 11252 (build_scratch_list): Likewise. 11253 * call.c (convert_class_to_reference): Replace build_scratch_list 11254 and build_expr_list with build_tree_list. 11255 (add_candidate): Replace scratchalloc with expralloc. Note memory 11256 leak. 11257 (build_user_type_conversion_1): Replace build_scratch_list 11258 and build_expr_list with build_tree_list. 11259 (build_new_op): Likewise. 11260 (build_op_delete_call): Likewise. 11261 (convert_like): Likewise. 11262 * cvt.c (ocp_convert): Likewise. 11263 * decl.c (start_decl): Likewise. 11264 (start_function): Likewise. 11265 (finish_destructor_body): Likewise. 11266 (maybe_build_cleanup_1): Likewise. 11267 * decl2.c (reparse_decl_as_expr): Likewise. 11268 * init.c (perform_member_init): Likewise. 11269 (expand_cleanup_for_base): Likewise. 11270 (build_builtin_delete_call): Likewise. 11271 (build_new_1): Likewise. 11272 (build_delete): Likewise. 11273 * method.c (do_build_assign_ref): Likewise. 11274 * parse.y (already_scoped_stmt): Likewise. 11275 (nontrivial_exprlist): Likewise. 11276 (net_initializer): Likewise. 11277 (initlist): Likewise. 11278 * parse.c: Regenerated. 11279 * rtti.c (build_x_typeid): Likewise. 11280 (build_dynamic_cast_1): Likewise. 11281 * typeck.c (build_x_compound_expr): Likewise. 11282 (build_static_cast): Likewise. 11283 (build_modify_expr): Likewise. 11284 11285 * cp-tree.h (DECL_VINDEX): Add documentation. 11286 * class.c (build_vtable_entry): Likewise. 11287 (start_vtable): Add comment. 11288 (add_virtual_function): Replace pending_hard_virtuals with 11289 overridden_virtuals and pending_virtuals with new_virtuals. 11290 Replace redundant assignments with assertions. 11291 (check_for_override): Add comment. 11292 (check_bases_and_members): Replace pending_hard_virtuals with 11293 overridden_virtuals and pending_virtuals with new_virtuals. 11294 (create_vtbl_ptr): Likewise. 11295 (layout_class_type): Likewise. 11296 (finish_struct_1): Likewise. Add comments. 11297 112982000-01-16 Mark Mitchell <mark@codesourcery.com> 11299 11300 * class.c (finish_struct_1): Replace redundant code with 11301 assertions. 11302 11303 * cp-tree.h (flag_new_abi): Move. 11304 (flag_use_cxa_atexit): Likewise. 11305 (flag_honor_std): Likewise. 11306 (flag_rtti): Likewise. 11307 (vbase_offsets_in_vtable_p): Define. 11308 (vptrs_present_everywhere_p): Likewise. 11309 (TYPE_CONTAINS_VPTR_P): Likewise. 11310 (dfs_walk_real): Declare. 11311 * class.c (build_vbase_pointer_fields): Check 11312 vbase_offsets_in_vtable_p. 11313 (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in 11314 BINFO_VPTR_FIELD. 11315 (build_vbase_offset_vtbl_entries): Simplify. 11316 (build_vbase_offset_vtbl_entries): Adjust. 11317 (build_vbase_pointer): Add ability to look up vbase offsets in 11318 vtable. 11319 (start_vtable): New function. 11320 (add_virtual_function): Use it. 11321 (determine_primary_base): Use TYPE_CONTAINS_VPTR_P. 11322 (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p. 11323 (build_vtbl_initializer): Take the type of the complete object as 11324 input. Use it to correctly calculate vbase offsets. 11325 (dfs_finish_vtbls): Pass the complete type to 11326 build_vtbl_initializer. 11327 (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P. 11328 (create_vtable_ptr): Create a vtable even if there are no 11329 new virtual functions, under the new ABI. 11330 (finish_struct_1): Likewise. 11331 (get_vfield_name): Use TYPE_CONTAINS_VPTR_P. 11332 * decl.c (exapnd_static_init): Remove call to 11333 preserve_initializer. 11334 * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in 11335 vtables. 11336 * init.c (initialize_vtbl_ptrs): Initialize them in pre-order. 11337 (expand_virtual_init): Use vbase_offsets_in_vtable_p. 11338 (construct_virtual_bases): Don't initialize virtual base pointers 11339 under the new ABI. 11340 (build_aggr_init): Clean up comment. 11341 (expand_aggr_init_1): Likewise. 11342 * rtti.c (expand_class_desc): Store the virtual function table 11343 index where the vbase offset lives in the offset field. 11344 * search.c (dfs_walk_real): Make it global. 11345 (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P. 11346 * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD. 11347 11348 * tinfo.h (USItype): Make it signed under the new ABI. 11349 * tinfo.cc (convert_to_base): New function. Encapsulate base 11350 conversion logic here. 11351 (__class_type_info::do_upcast): Use it. 11352 (__class_type_info::do_dyncast): Likewise. 11353 (__class_type_info::do_find_public_subobj): Likewise. 11354 11355 * init.c (construct_virtual_bases): Don't look up the addresses of 11356 virtual bases at run-time. 11357 11358 * class.c (build_vbase_pointer): Relocate. 11359 (build_vbase_pointer_fields): Likewise. 11360 (dfs_build_vbase_offset_vtbl_entries): Likewise. 11361 (build_vbase_offset_vtbl_entries): Likewise. 11362 11363 * decl.c (init_decl_processing): Complain if -fnew-abi 11364 -fno-vtable-thunks is used. 11365 11366 * decl2.c (lang_decode_option): Don't couple flag_honor_std to 11367 flag_new_abi. 11368 113692000-01-15 Mark Mitchell <mark@codesourcery.com> 11370 11371 * cp-tree.h (num_extra_vtbl_entries): New function. 11372 (size_extra_vtbl_entries): Likewise. 11373 (dfs_vtable_path_unmark): Likewise. 11374 (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise. 11375 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 11376 * class.c (num_extra_vtbl_entries): New function. 11377 (size_extra_vtbl_entries): Likewise. 11378 (dfs_build_vbase_offset_vtbl_entries): New function. 11379 (build_vbase_offset_vtbl_entries): Likewise. 11380 (build_vtbl_initializer): Use it. 11381 (finish_struct_1): Adjust vtable sizes (using 11382 num_extra_vtbl_entries). 11383 * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a 11384 THUNK_DECL is non-NULL before expanding it. 11385 * init.c (expand_virtual_init): Adjust the vtable pointer by 11386 size_extra_vtbl_entries before storing it. 11387 * search.c (get_shared_vase_if_not_primary): Adjust prototype. 11388 Handle TREE_LIST parameters here, not in the dfs_* functions. 11389 (dfs_unmarked_real_bases_queue_p): Adjust. 11390 (dfs_marked_real_bases_queue_p): Likewise. 11391 (dfs_vtable_path_unmarked_real_bases_queue_p): New function. 11392 (dfs_vtable_path_marked_real_bases_queue_p): New function. 11393 (dfs_vtable_path_unmark): Likewise. 11394 113952000-01-14 Mark Mitchell <mark@codesourcery.com> 11396 11397 * optimize.c (copy_body_r): Clear the operand three of a 11398 TARGET_EXPR when copying it. 11399 114002000-01-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 11401 11402 * method.c (build_decl_overload_real): Check whether we are in :: 11403 before returning __builtin_new/delete. 11404 114052000-01-13 Mark Mitchell <mark@codesourcery.com> 11406 11407 * pt.c (tsubst_friend_function): Improve comment. 11408 (instantiate_decl): Avoid crashing when a "nested" function is 11409 instantiated from the top level. 11410 11411 * dump.c (dqeueue_and_dump): Dump 11412 DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION. 11413 114142000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11415 11416 * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. 11417 114182000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 11419 11420 * g++spec.c (lang_specific_driver): Add -fnew-abi if 11421 ENABLE_NEW_GXX_ABI defined. 11422 * Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o, 11423 opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o, 11424 opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch. 11425 114262000-01-12 Mark Mitchell <mark@codesourcery.com> 11427 11428 * decl.c (start_cleanup_fn): Call pushdecl. 11429 11430 * call.c (convert_class_to_reference): Fix typos. 11431 (build_conditional_expr): Handle errors gracefully. 11432 * class.c (push_nested_class): Likewise. 11433 * cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro. 11434 (DECL_THIS_EXTERN): Use it. 11435 (DECL_THIS_STATIC): Likewise. 11436 * cvt.c (convert_to_void): Handle errors gracefully. 11437 (build_expr_type_conversion): Likewise. 11438 * decl.c (maybe_push_decl): Likewise. 11439 (start_decl_1): Likewise. 11440 (require_complete_types_for_parms): Likewise. 11441 * parse.y (structsp): Likewise. 11442 (base_class): Likewise. 11443 * parse.c: Regenerated. 11444 * pt.c (finish_member_template_decl): Likewise. 11445 * typeck.c (decay_conversion): Likewise. 11446 11447 * cp-tree.h (dfs_skip_vbases): New function. 11448 (find_vbase_instance): Likewise. 11449 * class.c (determine_primary_base): Allow a nearly empty base to 11450 serve as a primary base class under the new ABI. 11451 (get_class_offset_1): Rename to ... 11452 (dfs_get_class_offset): ... this. Simplify. Don't issue error 11453 messages here. 11454 (get_class_offset): Use it. Issue error messages here. 11455 (dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to 11456 find the right copies of virtual bases. 11457 (fixup_vtable_deltas1): Rename to ... 11458 (dfs_fixup_vtable_deltas): ... this. Adjust to handle virtual 11459 bases as primary bases. 11460 (fixup_vtable_deltas): Remove. 11461 (override_one_vtable): Handle virtual bases as primary bases. 11462 (merge_overrides): Likewise. 11463 (finish_struct_1): Likewise. 11464 (dump_class_hierarchy): Dump primary-ness of bases as well. 11465 * search.c (mark_primary_bases): Use a pre-order traversal to 11466 handle primary virtual bases. 11467 (dfs_skip_vbases): New fiunction. 11468 (expand_upcast_fixups): Adjust to handle primary virtual bases. 11469 (fixup_virtual_upcast_offsets): Likewise. 11470 (fixup_all_virtual_upcast_offsets): Likewise. 11471 (dfs_find_vbase_instances): New function. 11472 (find_vbase_instance): Likewise. 11473 114742000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 11475 11476 * lex.c (DIR_SEPARATOR): Delete macro. 11477 114782000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 11479 11480 * decl2.c (lang_decode_option): Handle automatic line wrapping 11481 option. 11482 114832000-01-11 Mark Mitchell <mark@codesourcery.com> 11484 11485 * friend.c (do_friend): Don't resolve scopes when processing 11486 template declarations, even if the qualifying scope doesn't 11487 involve template parameters. 11488 114892000-01-10 Mark Mitchell <mitchell@dumbledore.codesourcery.com> 11490 11491 * class.c (dfs_modify_vtables_queue_p): Remove. 11492 (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p 11493 and dfs_marked_real_bases_queue_p instead of 11494 dfs_modify_vtables_queue_p. 11495 11496 * class.c (build_vbase_path): Simplify. 11497 (dfs_propagate_binfo_offsets): New function. 11498 (propagate_binfo_offsets): Use it. 11499 (remove_base_field): Simplify. 11500 (dfs_set_offset_for_vbases): Remove. 11501 (dfs_set_offset_for_shared_vbases): New function. 11502 (dfs_set_offset_for_unshared_vbases): Likewise. 11503 (layout_virtual_bases): Use them. 11504 (layout_basetypes): Don't call propagate_binfo_offsets. 11505 * search.c (dfs_get_vbase_types): Clone completely fresh binfos 11506 for the vbases. 11507 11508 * class.c (build_base_field): New function, split out from ... 11509 (build_base_fields): ... here. Use it. Allocate primary bases 11510 first, under the new ABI. 11511 (get_vtable_entry): Remove. 11512 (remove_base_field): New function, split out from ... 11513 (remove_base_fields): ... here. Adjust since primary bases come 11514 first under the new ABI. 11515 11516 * cp-tree.h (expand_direct_vtbls_init): Remove declaration. 11517 (initialize_vtbl_ptrs): New function. 11518 (expand_indirect_vtbls_init): Change prototype. 11519 (convert_pointer_to_vbase): Declare. 11520 * init.c (expand_direct_vtbls_init): Remove. 11521 (dfs_initialize_vtbl_ptrs): New function. 11522 (initialize_vtbl_ptrs): Likewise. 11523 (emit_base_init): Use initialize_vtbl_ptrs. 11524 * search.c (convert_pointer_to_vbase): Make it global. 11525 (expand_indirect_vtbls_init): Remove vtable initialization code. 11526 * semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs. 11527 11528 * class.c (dfs_finish_vtbls): New function. 11529 (finish_vtbls): Use it. 11530 (dump_class_hierarchy): New function. 11531 11532 * cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition. 11533 (BINFO_VBASE_PRIMARY_P): New macro. 11534 (BINFO_VIRTUALS): Add to documentation. 11535 (SET_BINFO_PRIMARY_MARKED_P): Remove. 11536 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 11537 (dfs_mark_primary_bases_queue_p): Likewise. 11538 (dfs_unmarked_real_bases_queue_p): New function. 11539 (dfs_marked_real_bases_queue_p): Likewise. 11540 * search.c (dfs_mark_primary_bases): Adjust. 11541 (mark_primary_bases): Likewise. 11542 (get_shared_vbase_if_not_primary): New function. 11543 (dfs_unmarked_real_bases_queue_p): Likewise. 11544 (dfs_marked_real_bases_queue_p): Likewise. 11545 (dfs_get_pure_virtuals): Simplify. 11546 (get_pure_virtuals): Likewise. 11547 115482000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11549 11550 * lex.c: Include tm_p.h. 11551 115522000-01-07 Nathan Sidwell <sidwell@codesourcery.com> 11553 11554 * lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro. 11555 115562000-01-06 Jason Merrill <jason@casey.cygnus.com> 11557 11558 * decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT. 11559 * pt.c (instantiate_decl): Defer comdat templates that might not be 11560 needed. 11561 11562 * cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT. 11563 * decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT. 11564 (finish_file): Likewise. 11565 11566 * decl2.c (import_export_class): Undo 12/14 change. 11567 11568 * error.c (dump_decl): operator new, not operatornew. 11569 11570 * class.c (field_decl_cmp): A nontype is "greater" than a type. 11571 * search.c (lookup_field_1): Look for the last field with the 11572 desired name. 11573 115742000-01-05 Nathan Sidwell <nathan@acm.org> 11575 11576 * decl2.c (lookup_arg_dependent): Deal with FNS not being a 11577 FUNCTION_DECL. 11578 115792000-01-05 Nathan Sidwell <nathan@acm.org> 11580 11581 * typeck.c (build_static_cast): Don't strip target qualifiers 11582 when casting from a class. 11583 115842000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11585 11586 * class.c (warn_hidden): Initialize variable `fndecl'. 11587 115882000-01-03 Ulrich Drepper <drepper@cygnus.com> 11589 11590 * decl.c (flag_isoc9x): New variable to be able to use code in 11591 c-common.c. For now always zero. 11592 115932000-01-03 Mark Mitchell <mark@codesourcery.com> 11594 11595 * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 11596 * class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN 11597 or unshare_base_binfos for virtual bases here. 11598 * search.c (dfs_get_vbase_types): Do it here. 11599 (get_vbase_types): Adjust. 11600 116012000-01-02 Mark Mitchell <mark@codesourcery.com> 11602 11603 * cp-tree.h (CLASSTYPE_VFIELDS): Move definition. 11604 (BINFO_PRIMARY_MARKED_P): Use flag 5. 11605 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 11606 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 11607 (unmark_primary_bases): Remove declaration. 11608 (unmarkedp): Declare. 11609 (dfs_vbase_unmark): Likewise. 11610 * class.c (determine_primary_base): Return immediately if there 11611 are no base classes. Call mark_primary_bases here. 11612 (modify_all_direct_vtables): Remove. 11613 (modify_all_indirect_vtables): Remove. 11614 (dfs_modify_vtables_queue_p): New function. 11615 (dfs_modify_vtables): New function. 11616 (modify_all_vtables): Use them. 11617 (build_base_fields): Build FIELD_DECLs for primary virtual base 11618 classes. 11619 (create_vtable_ptr): Don't call determine_primary_base here. 11620 (dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ... 11621 (dfs_set_offset_for_vbases): ... this. 11622 (layout_virtual_bases): Use it. 11623 (layout_class_type): Call determine_primary_base here. 11624 * search.c (unmarkedp): Make it global. 11625 (shared_marked_p): Simplify. 11626 (shared_unmarked_p): Likewise. 11627 (dfs_primary_bases_queue_p): Remove. 11628 (dfs_unmark_primary_bases): Likewise. 11629 (unmark_primary_bases): Likewise. 11630 (mark_primary_bases): Simplify. 11631 (get_pure_virtuals): Don't call mark_primary_bases here. 11632 (dfs_vbase_unmark): New function. 11633 (get_vbase_types): Simplify. 11634 11635 * class.c (struct base_info): Remove. 11636 (determine_primary_base): Take has_virtual_p rather than a 11637 base_info as input. Don't calculate max_has_virtual. 11638 (finish_struct_bits): Remove max_has_virtual argument. 11639 (create_vtable_ptr): Remove max_has_virtual_p argument. 11640 (layout_virtual_bases): Remove max argument. 11641 (layout_basetypes): Likewise. 11642 (layout_class_type): Remove max_has_virtual_p argument. 11643 (finish_struct_1): Remove max_has_virtual. 11644 11645 * cp-tree.h (dfs_mark_primary_bases_queue_p): New function. 11646 (layout_basetypes): Remove. 11647 * class.c (propagate_binfo_offsets): Moved here from tree.c. 11648 Update to handle primary virtual bases. 11649 (remove_base_fields): New function, split out from 11650 layout_basetypes. 11651 (dfs_mark_primary_bases_and_set_vbase_offsets): New function. 11652 (layout_virtual_bases): New function, split out from 11653 layout_basetypes. Update to handle primary virtual bases. 11654 (layout_basetypes): Moved here from tree.c. Use 11655 remove_base_fields and layout_virtual_bases. 11656 * search.c (dfs_mark_primary_bases_queue_p): New function. 11657 (mark_primary_bases): Use it. 11658 * tree.c (CEIL): Remove. 11659 (propagate_binfo_offsets): Remove. 11660 (layout_basetypes): Remove. 11661 116622000-01-01 Mark Mitchell <mark@codesourcery.com> 11663 11664 * cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES. 11665 (BINFO_PRIMARY_MARKED_P): New macro. 11666 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 11667 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 11668 (mark_primary_bases): New function. 11669 (unmark_primary_bases): Likewise. 11670 * search.c (get_abstract_virtuals_1): Remove. 11671 (dfs_mark_primary_bases): New function. 11672 (mark_primary_bases): Likewise. 11673 (dfs_unmark_primary_bases): Likewise. 11674 (unmark_primary_bases): Likewise. 11675 (dfs_get_pure_virtuals): Likewise. 11676 116772000-01-01 Mark Mitchell <mark@codesourcery.com> 11678 11679 * cp-tree.h (skip_rtti_stuff): Adjust prototype. 11680 * class.c (skip_rtti_stuff): Reorganize parameters and return value. 11681 (modify_one_vtable): Adjust. 11682 (fixup_vtable_deltas1): Likewise. 11683 (override_one_vtable): Likewise. 11684 * search.c (get_abstract_virtuals_1): Likewise. 11685 (get_pure_virtuals): Likewise. 11686 (expand_upcast_fixups): Likewise. 11687 * tree.c (debug_binfo): Likewise. 11688 11689 * class.c (build_vtable): Don't return a value. Don't rebuild 11690 vtables for bases that have already been handled. 11691 (prepare_fresh_vtable): Don't rebuild vtables for bases that have 11692 already been handled. 11693 (modify_one_vtable): Adjust accordingly. 11694 (fixup_vtable_deltas1): Likewise. 11695 (finish_struct_1): Likewise. 11696 116972000-01-01 Martin v. L�wis <loewis@informatik.hu-berlin.de> 11698 11699 * call.c (build_new_method_call): Also check destructors. 11700