1 2004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
3 * error.c (enum pad): Remove.
4 (dump_qualifiers): Likewise.
5 (dump_type): Replace dump_qualifiers with pp_cxx_cv_qualifier_seq.
6 (dump_aggr_type): Likewise.
7 (dump_type_suffix): Likewise.
8 (dump_simple_decl): Likewise.
9 (dump_function_decl): Likewise.
10 (cv_to_string): Likewise.
11 (dump_type_prefix): Likewise. Adjust return void.
12 * cxx-pretty-print.c (pp_cxx_cv_qualifier_seq): Move to
14 (pp_cxx_template_keyword_if_needed): Document.
15 (pp_cxx_qualified_id): Document case FUNCTION_DECL. Tidy.
16 (pp_cxx_expression): Handle NON_DEPENDENT_EXPR and
19 2004-03-21 Mark Mitchell <mark@codesourcery.com>
22 * decl.c (cp_finish_decl): Compute the size of arrays declared in
23 templates, if their type is non-dependent.
25 2004-03-19 Mark Mitchell <mark@codesourcery.com>
27 * call.c (build_op_delete_call): Do not forget the placement
28 arguments when iterating through mutiple delete operators.
30 * cp-tree.h (svaed_scope): Remove last_parms.
31 (NEW_DELETE_OPNAME_P): New macro.
32 (last_function_parms): Remove.
33 (do_friend): Adjust prototype.
34 * decl.c (grokparms): Return the PARM_DECLs directly, rather than
35 using last_function_parms.
36 (grokfndecl): Take the PARM_DECLs as an argument, rather than
37 using last_function_parms.
38 (grokdeclarator): Adjust accordingly. Do not form METHOD_TYPEs
39 for class-specific operator new and operator delete.
40 (grok_op_properties): Do not look for allocation functions with
42 (start_function): Use DECL_ARGUMENTS instead of
44 * decl.h (last_function_parms): Do not declare.
45 * decl2.c (grokclassfn): Do not use last_function_parms.
46 * friend.c (do_friend): Remove parmdecls parameter.
47 * name-lookup.c (push_to_top_level): Do not save last_function_parms.
48 (pop_from_top_level): Do not restore it.
49 * pt.c (check_explicit_specialization): Do not adjust
52 * name-lookup.c (do_local_using_decl): Create a local binding for
53 types brought in via using declarations.
55 * name-lookup.c (lookup_arg_dependent): Handle block-scope
56 function declarations correctly.
58 * semantics.c (finish_id_expression): Correct handling of
59 conversion operators to dependent types.
61 * typeck.c (lookup_destructor): Allow the use of destructors from
64 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
66 * cxx-pretty-print.c (pp_cxx_unqualified_id): Use
67 TEMPLATE_TYPE_PARM_INDEX instead of TYPE_FIELDS.
68 * search.c (dfs_unuse_fields): Add two more TREE_CODES that mean
69 the field is named TEMPLATE_TYPE_PARM_INDEX.
71 2004-03-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
74 * parser.c (cp_parser_functional_cast): A cast to anything
75 but integral or enumaration type is not an integral constant
77 * pt.c (value_dependent_expression_p): Handle cast expressions
78 without operands (such as "int()").
80 2004-03-18 Mark Mitchell <mark@codesourcery.com>
82 * semantics.c (finish_pseudo_destructor_expr): Allow differing
83 cv-qualification between the type named by the
84 pseudo-destructor-name and the object-type.
86 * search.c (accessible_base_p): Handle non-proper bases.
88 * name-lookup.c (do_nonmember_using_decl): If a using declaration
89 refers to a single overloaded function, set the type of the
91 * tree.c (lvalue_type): Simplify.
92 * typeck.c (type_unknown_p): Do not assume all OVERLOADs have an
94 (build_unary_op): Handle OVERLOADs with known types.
96 * decl.c (duplicate_decls): Do not destroy DECL_ARGUMENTS for
99 * parser.c (cp_parser_postfix_expression): Handle the use of
100 "typename" in non-dependent contexts. Convert appropriately when
101 when using a qualified name after "->" or ".".
103 * call.c (conditional_conversion): Honor the requirement that some
104 conversions refer to the original object.
106 2004-03-18 Mark Mitchell <mark@codesourcery.com>
108 * call.c (build_conditional_expr): Do not call force_rvalue for
109 operands of void_type when the conditional expression itself has
111 * name-lookup.c (pushdecl): Don't consider a declaration of a
112 function named "main" to be an overload of a type named "main".
113 * parser.c (cp_parser_template_name): Perform name lookup when the
114 template name is proceeded by "template" if the qualifying scope
116 * typeck.c (composite_pointer_type_r): Correctly handle
117 pointer-to-member types.
118 (build_const_cast): Likewise.
120 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
122 * cp-tree.def (TEMPLATE_TYPE_PARM, TYPEOF_TYPE): Update comments.
123 * cp-tree.h (NEW_EXPR_USE_GLOBAL, DELETE_EXPR_USE_GLOBAL): Add check.
124 (DELETE_EXPR_USE_VEC, COMPOUND_EXPR_OVERLOADED): Likewise.
125 (KOENIG_LOOKUP_P, PTRMEM_OK_P, TEMPLATE_TYPE_PARM_INDEX): Likewise.
126 (TYPENAME_TYPE_FULLNAME): Add check and use type.values.
127 (TYPEOF_TYPE_EXPR): New macro.
128 * class.c (finish_struct_bits): Use TYPE_VFIELD and TYPE_METHODS.
129 * error.c (dump_type): Use TYPEOF_TYPE_EXPR.
130 * pt.c (tsubst): Likewise.
131 * semantics.c (finish_typeof): Likewise.
132 * search.c (dfs_unuse_fields): Handle TYPENAME_TYPE, TYPEOF_TYPE,
133 and TEMPLATE_TYPE_PARM.
134 * typeck.c (comptypes): Use TYPE_ORIG_SIZE_TYPE, not TYPE_DOMAIN.
135 (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
137 2004-03-16 Mark Mitchell <mark@codesourcery.com>
140 * cp-tree.h (build_new_op): Change prototype.
141 (build_x_binary_op): Likewise.
142 * call.c (build_new_op): Add overloaded_p parameter.
143 * decl2.c (grok_array_decl): Adjust call to build_new_op.
144 * parser.c (cp_parser_binary_expression): Note that uses of
145 overloaded operators prevents an expression from being considered
146 an integral constant.
147 * pt.c (tsubst_copy_and_build): Adjust calls to build_new_op and/or
149 * semantics.c (finish_call_expr): Likewise.
150 * typeck.c (rationalize_conditional_expr): Likewise.
151 (build_x_indirect_ref): Likewise.
152 (build_x_binary_op): Likewise.
153 (build_x_unary_op): Likewise.
154 (build_x_compound_expr): Likewise.
155 (build_modify_expr): Likewise.
156 * typeck2.c (build_x_arrow): Likewise.
158 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
160 * cp-lang.c, ptree.c: Update copyright.
162 2004-03-13 Mark Mitchell <mark@codesourcery.com>
165 * parser.c (cp_parser_non_integral_constant_expression): Encode
166 more of the idiom that surrounded calls to this function within
168 (cp_parser_primary_expression): Adjust accordingly.
169 (cp_parser_postfix_expression): Likewise.
170 (cp_parser_unary_expression): Likewise.
171 (cp_parser_cast_expression): Likewise.
172 (cp_parser_assignment_expression): Likewise.
173 (cp_parser_expression): Likewise.
174 (cp_parser_new_expression): Note that new-expressions are not
175 allowed in integral constant expressions.
176 (cp_parser_delete_expression): Likewise.
178 2004-03-12 Matt Austern <austern@apple.com>
180 * decl2.c (maybe_make_one_only): Look at
181 TARGET_EXPLICIT_INSTANTIATION_ONE_ONLY when deciding whether
182 to make an explicit instantiation weak.
183 * method.c (use_thunk): Make sure we call comdat_linkage
185 * pt.c (do_type_instantiation): On systems where weak symbols
186 don't go in a static archive's TOC, explicit instantiation of a
187 class must imply *explicit* instantiation of its memeber.
189 2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
191 * call.c, cp-tree.h, pt.c: Fix comment typos.
193 2004-03-10 Mark Mitchell <mark@codesourcery.com>
196 * decl.c (xref_tag): Disregard non-type declarations when
197 looking up a tagged type.
199 2004-03-09 Nathan Sidwell <nathan@codesourcery.com>
202 * call.c (convert_like_real): Build a const qualified temporary,
203 when testing ctor access.
205 2004-03-09 Mark Mitchell <mark@codesourcery.com>
207 * call.c (initialize_reference): Fix typo.
209 2004-03-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
212 * pt.c (determine_specialization): For member templates, match also
216 * parser.c (cp_parser_initializer_clause): Fold initializer if it is
218 * pt.c (tsubst_copy_and_build): Handle NOP_EXPRs.
220 2004-03-09 Mark Mitchell <mark@codesourcery.com>
223 * call.c (initialize_reference): Handle initializers that are
224 class-member access expressions applies to rvalues.
226 2004-03-09 Mark Mitchell <mark@codesourcery.com>
229 * name-lookup.c (supplement_binding): Ignore functions that are
230 marked DECL_ANTICIPATED.
232 2004-03-08 Mark Mitchell <mark@codesourcery.com>
235 * class.c (check_field_decls): Complain about non-static data
236 members of reference type in unions. Propagate
237 CLASSTYPE_REF_FIELDS_NEED_INIT and
238 CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
240 * init.c (perform_member_init): Complain about mbmers with const
241 type that are not explicitly initialized.
243 2004-03-08 Mark Mitchell <mark@codesourcery.com>
245 * class.c (check_methods): Don't use IDENTIFIER_ERROR_LOCUS.
246 * cp-tree.h (DECL_INVALID_OVERRIDER_P): New macro.
247 (lang_identifier): Remove implicit_decl and error_locus.
248 (IDENTIFIER_IMPLICIT_DECL): Remove.
249 (SET_IDENTIFIER_IMPLICTI_DECL): Likewise.
250 (IDENTIFIER_ERROR_LOCUS): Likewise.
251 (SET_IDENTIFIER_ERROR_LOCUS): Likewise.
252 (TYPE_ASSEMBLER_NAME_STRING): Likewise.
253 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
254 (implicitly_declare): Remove.
255 * decl.c (warn_extern_redeclared_static): Remove check of
256 IDENTIFIER_IMPLICIT_DECL.
257 (duplicate_decls): Don't check IDENTIFIER_ERROR_LOCUS.
258 (implicitly_declare): Remove.
259 (grok_ctor_properties): Don't set IDENTIFIER_ERROR_LOCUS.
260 (start_function): Don't check IDENTIFIER_IMPLICIT_DECL.
261 (start_method): Don't check IDENTIFIER_ERROR_LOCUS.
262 * lex.c (unqualified_name_lookup_error): Create a dummy VAR_DECL
263 in the innermost scope, rather than at namespace scope.
264 * name-lookup.c (push_local_binding): Give it external linkage.
265 (pushdecl): Remove dead code.
266 * name-lookup.h (push_local_binding): Declare it.
267 * ptree.c (cxx_print_identifier): Don't print
268 IDENTIFIER_IMPLICIT_DECL or IDENTIFIER_ERROR_LOCUS.
269 * search.c (check_final_overrider): Use DECL_INVALID_OVERRIDER_P,
270 not IDENTIFIER_ERROR_LOCUS.
271 * typeck.c (build_function_call): Remove dead code.
273 2004-03-08 Jason Merrill <jason@redhat.com>
276 * decl.c (xref_tag): Remove attribute handling.
277 * cp-tree.h: Adjust prototype.
278 * decl.c, parser.c, rtti.c: Adjust callers.
279 * parser.c (cp_parser_class_head): Pass back attributes in the
281 (cp_parser_class_specifier): Adjust.
283 2004-03-08 Matt Austern <austern@apple.com>
286 * name-lookup.c (add_decl_to_level): Add extern variables, as well
287 as static, to static_decls array.
289 2004-03-05 Jason Merrill <jason@redhat.com>
291 * tree.c (list_hash_pieces): s/TYPE_HASH/TREE_HASH/.
293 2004-03-04 Geoffrey Keating <geoffk@apple.com>
295 * decl.c (grokfndecl): Update old incorrect comment.
296 (grokvardecl): Diagnose C++ variables of type with no linkage.
298 2004-03-01 Mark Mitchell <mark@codesourcery.com>
301 * pt.c (build_non_dependent_expr): Do not create a
302 NON_DEPENDENT_EXPR for a THROW_EXPR.
304 2004-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
307 * error.c (dump_expr): Handle THROW_EXPR.
309 2004-03-01 Mark Mitchell <mark@codesourcery.com>
312 * parser.c (cp_parser_postfix_expression): Do not perform Koenig
313 lookup if ordinary name-lookup finds a non-function.
314 * pt.c (tsubst_copy_and_build): Likewise.
317 * parser.c (cp_parser_late_parsing_default_args): Check that there
318 are no extra tokens after the end of the default-argument
321 2004-03-01 Mark Mitchell <mark@codesourcery.com>
324 * lex.c (retrofit_lang_decl): Treat entities with no linkage as
325 having C++ linkage for name-mangling purposes.
328 * parser.c (cp_parser_direct_declarator): Recognize constructor
329 declarators that use a template-id to name the class being
333 * pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
334 (tsubst_expr): Do not call tsubst_copy, even when
335 processing_template_decl.
337 2004-03-01 Jeff Law <law@redhat.com>
339 * init.c (build_vec_delete_1): Convert 2nd argument to NE_EXPR to
342 2004-02-29 Mark Mitchell <mark@codesourcery.com>
345 * name-lookup.h (push_scope): Change prototype.
346 * name-lookup.c (push_scope): Do not reenter the current class
348 * decl.c (grokfndecl): Check return code from push_scope before
350 * decl2.c (check_classfn): Likewise.
351 * parser.c (cp_parser_conversion_function_id): Likewise.
352 (cp_parser_init_declarator): Likewise.
353 (cp_parser_direct_declarator): Likewise.
354 (cp_parser_class_specifier): Likewise.
355 (cp_parser_class_head): Likewise.
356 (cp_parser_lookup_name): Likewise.
357 (cp_parser_constructor_declarator_p): Likewise.
358 * pt.c (instantiate_class_template): Likewise.
359 (resolve_typename_type): Likewise.
361 2004-02-29 Mark Mitchell <mark@codesourcery.com>
364 * typeck.c (build_modify_expr): Remove more of the cast-as-lvalue
368 * class.c (update_vtable_entry_for_fn): Do not go through
369 covariance machinery if the type returned by an overrider is the
370 same as the original.
372 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
374 * call.c: Fix a comment typo.
376 2004-02-27 Ziemowit Laski <zlaski@apple.com>
378 * tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.
380 2004-02-26 Mark Mitchell <mark@codesourcery.com>
383 * parser.c (cp_parser_parameter_declaration_list): Commit
384 to fewer tentative parses.
386 2004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org>
389 * pt.c (dependent_type_p_r): A template template parameter is a
392 2004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org>
395 * mangle.c (write_template_arg_literal): Don't rely on identity for
398 2004-02-24 Jason Merrill <jason@redhat.com>
400 * tree.c (build_exception_variant): Use check_qualified_type.
402 2004-02-23 Zack Weinberg <zack@codesourcery.com>
403 Kazu Hirata <kazu@cs.umass.edu>
405 * decl.c (cxx_init_decl_processing): Don't check
406 flag_writable_strings.
408 2004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
411 * typeck.c (maybe_warn_about_returning_address_of_location):
412 Change check for VAR_DECL to use DECL_P instead.
414 2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
417 * cvt.c (build_expr_type_conversion): Type must be complete before
418 looking up for conversions.
420 2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
423 * name-lookup.c (arg_assoc_class): Don't look into template
424 arguments if it is not a primary template.
426 2004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
429 * method.c (use_thunk): Always clone function argument tree.
431 2004-02-20 Mark Mitchell <mark@codesourcery.com>
434 * pt.c (tsubst_copy): Call mark_used for a PARM_DECL.
437 * semantics.c (begin_class_definition): Set TYPE_PACKED correctly
438 for all type variants.
440 2004-02-19 Mark Mitchell <mark@codesourcery.com>
443 * decl.c (duplicate_decls): Return error_mark_node for invalid
445 * name-lookup.c (push_namespace): Ignore the return value from
447 * pt.c (push_template_decl_real): Robustify.
450 * name-lookup.c (push_class_level_binding): Do not complain about
451 adding a binding for a member whose name is the same as the
452 enclosing class if the member is located in a base class of the
455 2004-02-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
458 * parser.c (cp_parser_new_expression): Parse an ill-formed
459 direct-new-declarator after a parenthesized type-id to emit good
462 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
464 * cp-tree.def, cvt.c: Update copyright.
466 2004-02-17 Mark Mitchell <mark@codesourcery.com>
469 * cp-tree.h (abi_version_at_least): Remove.
470 * mangle.c: Include flags.h.
472 2004-02-15 Mark Mitchell <mark@codesourcery.com>
475 * call.c (build_conditional_expr): Handle conversions between
476 class types which result in differently cv-qualified type
480 * class.c (delete_duplicate_fields_1): Remove.
481 (delete_duplicate_fields): Likewise.
482 (finish_struct_anon): Remove check for members with the same name
483 as their enclosing class.
484 (check_field_decls): Do not call duplicate_fields.
485 * decl.c (grokdeclarator): Remove check for static data members
486 with the same name as their enclosing class.
487 * name-lookup.c (push_class_level_binding): Check for members with
488 the same name as their enclosing class.
490 2004-02-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
493 * error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.
495 2004-02-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
498 * pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
499 has full set of arguments.
501 2004-02-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
504 * error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.
506 2004-02-13 Mark Mitchell <mark@codesourcery.com>
509 * cp-tree.h (delete_sanity): Change prototype.
510 * decl2.c (delete_sanity): Make doing_vec a bool, not an int.
511 Remove dead code. Adjust code to warn about deleting an array.
512 * typekc.c (decay_conversion): Use build_address and build_nop.
515 * search.c (accessible_p): Do not check access in thunks.
518 * call.c (build_conditional_expr): Call force_rvalue on the
519 non-void operand in the case that one result is a throw-expression
520 and the other is not.
522 2004-02-13 Ian Lance Taylor <ian@wasabisystems.com>
525 * parser.c (cp_parser_pseudo_destructor_name): Check for errors on
526 the type name and look ahead for ::~, and bail out early with a
527 better error message if the parse is going to fail.
529 2004-02-12 Mark Mitchell <mark@codesourcery.com>
531 * call.c (conversion_kind): New type.
532 (conversion_rank): Likewise.
533 (conversion): Likewise.
534 (CONVERSION_RANK): New macro.
535 (conversion_obstack): New variable.
536 (obstack_initialized): Likewise.
537 (z_candidate): Change type of convs and second_conv.
538 (candidate_warning): New type.
539 (IDENTITY_RANK): Remove.
540 (EXACT_RANK): Likewise.
541 (PROMO_RANK): Likewise.
542 (STD_RANK): Likewise.
543 (PBOOL_RANK): Likewise.
544 (USER_RANK): Likewise.
545 (ELLIPSIS_RANK): Likewise.
546 (BAD_RANK): Likewise.
547 (ICS_RANK): Likewise.
548 (ICS_STD_RANK): Likewise.
549 (ICS_USER_FLAG): Likewise.
550 (ICS_ELLIPSIS_FLAG): Likewise.
551 (ICS_THIS_FLAG): Likewise.
552 (ICS_BAD_FLAG): Likewise.
553 (NEED_TEMPORARY_P): Likewise.
554 (CHECK_COPY_CONSTRUCTOR_P): Likewise.
555 (USER_CONV_CAND): Likewise.
556 (USER_CONV_FN): Likewise.
557 (conversion_obstack_alloc): New function.
558 (alloc_conversion): Likewise.
559 (validate_conversion_obstack): Likewise.
560 (alloc_conversions): Likewise.
561 (build_conv): Adjust to deal with new conversion data structures.
562 (build_identity_conv): New function.
563 (build_ambiguous_conv): Likewise.
564 (standard_conversion): Adjust to deal with new conversion data
566 (convert_class_to_reference): Likewise.
567 (direct_reference_binding): Likewise.
568 (reference_binding): Likewise.
569 (implicit_conversion): Likewise.
570 (add_candidate): Likewise.
571 (add_function_candidate): Likewise.
572 (add_conv_candidate): Likewise.
573 (build_builtin_candidate): Likewise.
574 (print_z_candidate): Likewise.
575 (merge_conversion_sequences): Likewise.
576 (build_user_type_conversion_1): Likewise.
577 (build_user_type_conversion): Likewise.
578 (build_new_function_call): Likewise.
579 (build_object_call): Likewise.
580 (conditional_conversion): Likewise.
581 (build_conditional_expr): Likewise.
582 (build_new_op): Likewise.
583 (build_op_delete_call): Likewise.
584 (convert_like_real): Likewise.
585 (build_over_call): Likewise.
586 (build_new_method_call): Likewise.
587 (is_subseq): Likewise.
588 (maybe_handle_implicit_object): Likewise.
589 (maybe_handle_ref_bind): Likewise.
590 (compare_ics): Likewise.
591 (source_type): Likewise.
592 (add_warning): Likewise.
594 (can_convert_arg): Likewise.
595 (can_convert_arg_bad): Likewise.
596 (perform_implicit_conversion): Likewise.
597 (perform_direct_initialization_if_possible): Likewise.
598 (initialize_reference): Likewise.
599 * cp-lang.c (cp_tree_size): Do not handle WRAPPER.
600 * cp-tree.def (WRAPPER): Likewise.
601 (IDENTITY_CONV): Remove.
602 (LVALUE_CONV): Likewise.
603 (QUAL_CONV): Likewise.
604 (STD_CONV): Likewise.
605 (PTR_CONV): Likewise.
606 (PMEM_CONV): Likewise.
607 (BASE_CONV): Likewise.
608 (REF_BIND): Likewise.
609 (USER_CONV): Likewise.
610 (AMBIG_CONV): Likewise.
611 (RVALUE_CONV): Likewise.
612 * cp-tree.h (tree_wrapper): Remove.
613 (WRAPPER_ZC): Remove.
614 (lang_tree_node): Remove wrapper.
615 (LOOKUP_SPECULATIVELY): Remove.
616 (build_op_delete_call): Adjust prototype.
617 (validate_conversion_obstack): Declare.
618 (build_zc_wrapper): Remove.
619 * cvt.c (convert_to_reference): Remove dead code.
620 (ocp_convert): Likewise.
621 * decl.c (redeclaration_error_message): Correct handling of
623 (finish_destructor_body): Do not use LOOKUP_SPECULATIVELY.
624 (cp_tree_node_structure): Remove WRAPPER case.
625 * decl2.c (finish_file): Call validate_conversion_obstack.
626 * init.c (build_new_1): Remove use of LOOKUP_SPECULATIVELY.
627 (build_op_delete_call): Likewise.
628 (build_x_delete): Likewise.
629 (build_delete): Adjust call to build_op_delete_call.
630 * pt.c (tsubst_friend_declaration): Adjust code to determine
631 whether or not a friend template is a definition.
632 (tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
633 * tree.c (build_zc_wrapper): Remove.
635 2004-02-12 Zack Weinberg <zack@codesourcery.com>
637 * cp-lang.c: Don't define LANG_HOOKS_BUILTIN_TYPE_DECLS.
638 * cp-tree.h: Don't declare cxx_builtin_type_decls.
639 * decl.c (builtin_type_decls, cxx_builtin_type_decls): Delete.
640 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
642 2004-02-10 Mark Mitchell <mark@codesourcery.com>
644 * typeck.c (lookup_destructor): Fix typo in error message.
646 2004-02-09 Kazu Hirata <kazu@cs.umass.edu>
648 * call.c, parser.c, tree.c: Fix comment typos.
650 2004-02-07 Zack Weinberg <zack@codesourcery.com>
653 * optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
654 * decl.c (duplicate_decls, start_function): Likewise.
656 2004-02-07 Zack Weinberg <zack@codesourcery.com>
658 * name-lookup.c (pushdecl): Issue shadow warnings directly.
659 * parser.c (free_parser_stacks): Delete.
661 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
663 * rtti.c: Update copyright.
665 2003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
668 * decl.c (require_complete_types_for_parms): Do not insert
669 error_mark_node in the parameter list.
671 2003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
674 * parser.c (cp_parser_enclosed_template_argument_list): Emit straight
675 error when terminator can not be found.
677 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
679 Make-lang.in (po-generated): Delete.
681 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
683 * call.c (type_passed_as): Replace PROMOTE_PROTOTYPES with
684 targetm.calls.promote_prototypes.
686 2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
690 2004-01-15 Geoffrey Keating <geoffk@apple.com>
692 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
693 (handle_pragma_implementation): Likewise.
695 2004-02-05 Mark Mitchell <mark@codesourcery.com>
698 * typeck.c (lookup_destructor): Tweak error message.
700 2004-02-05 Jan Hubicka <jh@suse.cz>
702 * tree.c (cp_cannot_inline_tree_fn): Allow inlining of comdat
705 2003-02-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
708 * parser.c (cp_parser_diagnose_invalid_typename): Removed parsing
709 code, only emits the diagnostic now. Added lookup of the identifier
710 and support for qualified ids.
711 (cp_parser_parse_and_diagnose_invalid_type_name): New function.
712 Parse an (invalid) type name as id-expression within a declarator.
713 (cp_parser_simple_declaration): Use it.
714 (cp_parser_member_declaration): Likewise.
715 (cp_parser_make_typename_type): New function. Handle errors through
716 cp_parser_diagnose_invalid_typename.
717 (cp_parser_elaborated_type_specifier): Use it.
719 2004-02-04 Mark Mitchell <mark@codesourcery.com>
722 * call.c (convert_like_real): Use "converting" rather than
723 "argument" as the descriptive keyword to
724 dubious_conversion_warnings.
725 * typeck.c (convert_for_assignment): Do not call
726 dubious_conversion_warnings.
728 2004-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
731 * init.c (build_delete): Emit a more informative error message in
732 case of an incomplete type, and on the correct source line.
734 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
736 * error.c, search.c: Update copyright.
738 2004-02-04 Mark Mitchell <mark@codesourcery.com>
741 * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
742 linkage for the typeinfo name string.
744 2004-02-04 Mark Mitchell <mark@codesourcery.com>
747 * cp-tree.h (fold_non_dependent_expr): New function.
748 * parser.c (cp_parser_fold_non_dependent_expr): Remove.
749 (cp_parser_template_argument): Use fold_non_dependent_expr.
750 (cp_parser_direct_declarator): Likewise.
751 * pt.c (fold_non_dependent_expr): New function.
752 (convert_nontype_argument): Use it.
753 (tsubst_qualified_id): Simplify.
754 (tsubst_copy_and_build): Likewise.
756 2004-02-04 Mark Mitchell <mark@codesourcery.com>
758 * decl.c (cxx_push_function_context): Do not set
759 current_function_is_thunk.
760 * method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
763 2003-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
766 * pt.c (more_specialized_class): Increase processing_template_decl
767 while partial ordering.
769 2004-02-03 Mark Mitchell <mark@codesourcery.com>
772 * decl.c (start_function): Do not call pushdecl for any
773 instantiation or specialization of a primary template.
775 2004-02-03 Mark Mitchell <mark@codesourcery.com>
778 * parser.c (cp_parser_class_name): Robustify.
781 * parser.c (cp_parser_cache_group): Do not consume the EOF token.
784 * semantics.c (finish_id_expression): Do not return an
785 IDENTIFIER_NODE when lookup finds a PARM_DECL.
787 2004-02-03 Mark Mitchell <mark@codesourcery.com>
790 * pt.c (build_non_dependent_expr): Do not build
791 NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
794 * semantics.c (finish_id_expression): Do not return an
795 IDENTIFIER_NODE when lookup finds a VAR_DECL.
798 * parser.c (cp_parser_simple_declaration): When skipping to the
799 end of the statement swallow the terminating semicolon.
801 2004-02-02 Mark Mitchell <mark@codesourcery.com>
804 * init.c (build_offset_ref): Improve error recovery for invalid
805 uses of non-static member functions.
808 * cp-tree.h (cp_build_type_attribute_variant): New function.
809 * class.c (build_clone): Use cp_build_type_attribute_variant.
810 * decl.c (duplicate_decls): Likewise.
811 * pt.c (copy_default_args_to_explicit_spec): Likewise.
812 (tsubst_function_type): Likewise.
813 * tree.c (build_exception_variant): Check attributes before
814 concluding that two types are the same.
815 (cp_build_type-attribute_variant): New method.
816 * typeck.c (merge_types): Use cp_build_type_attribute_variant.
819 * call.c (convert_class_to_reference): Keep better track of
820 pedantically invalid user-defined conversions.
822 2004-02-01 Giovanni Bajo <giovannibajo@gcc.gnu.org>
825 * pt.c (tsubst_qualified_id): Improved error message when a type
826 is expected but not found.
828 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
830 * class.c: Fix comment typos.
833 * parser.c: Likewise.
835 * search.c: Likewise.
836 * typeck.c: Likewise.
838 2004-01-30 Richard Henderson <rth@redhat.com>
841 * method.c (use_thunk): Don't force_target_expr for void thunks.
842 * tree.c (build_target_expr_with_type): Assert non-void type.
843 (force_target_expr): Likewise.
845 2004-01-30 Michael Matz <matz@suse.de>
847 * parser.c (cp_parser_labeled_statement): Accept case ranges.
849 2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
853 * decl.c (grokdeclarator): Check immediatly type completeness for
856 2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
859 * call.c (convert_arg_to_ellipsis): Don't emit a warning if within
860 a sizeof expression.block
862 2004-01-29 Mark Mitchell <mark@codesourcery.com>
865 * mangle.c (write_encoding): Correct encoding of member template
868 2004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
870 * parser.c (cp_parser_template_id): Parse tentatively `[:' after a
871 template name as it was `<::' (digraph typo).
872 (cp_parser_nth_token_starts_template_argument_list_p): New function.
873 (cp_parser_id_expression): Use it.
874 (cp_parser_nested_name_specifier_opt): Likewise.
875 (cp_parser_template_name): Likewise.
876 (cp_parser_class_name): Likewise.
877 (cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
879 2004-01-28 Mark Mitchell <mark@codesourcery.com>
882 * typeck.c (merge_types): Do not merge attributes into
886 * parser.c (cp_parser_direct_declarator): Do not prevent
887 backtracking inside a parenthesized declarator.
888 (cp_parser_parameter_declaration): Fix typo in comment.
890 2004-01-28 Jan Hubicka <jh@suse.cz>
892 * semantics.c (expand_body) Do emit_associated_thunks before
895 2004-01-27 Devang Patel <dpatel@apple.com>
897 * name-lookup.c: Include "debug.h"
898 (do_namespace_alias): Invoke debug_hooks to emit debug info
900 (do_local_using_decl): Invoke debug_hooks to emit debug info
902 (do_class_using_decl): Same.
903 (do_toplevel_using_decl): Same.
904 (do_using_directive): Same.
905 (cp_emit_debug_info_for_using): New function.
906 * Make-lang.in (cp/parser.o): Depend on debug.h
907 (cp/name-lookup.o): Same.
909 2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
911 * cp-tree.h (language_function, lang_type_header): Use
913 * name-lookup.h (cp_binding_level): Likewise.
915 2004-01-26 Mark Mitchell <mark@codesourcery.com>
918 * semantics.c (finish_for_expr): Check for unresolved overloaded
921 * class.c (add_method): Just check processing_template_decl to
922 determine whether or not we are within a template.
923 * decl2.c (maybe_retrofit_in_chrg): Likewise.
924 * init.c (decl_constant_value): Check the type of the declaration,
926 * name-lookup.c (maybe_push_to_top_level): Rename to ...
927 (push_to_top_level): ... this.
928 * name-lookup.h (maybe_push_to_top_level): Do not declare it.
929 * pt.c (push_template_decl_real): Reorder condition for speed.
930 (convert_template_argument): Use dependency-checking functions in
931 place of uses_template_parms.
932 (lookup_template_class): Avoid calling uses_template_parms more
934 (uses_template_parms): Reimplement, using dependency-checking
936 (instantiate_class_template): Use push_to_top_level, not
937 maybe_push_to_top_level.
938 (type_unification_real): Simplify.
939 (type_dependent_expression_p): Handle OFFSET_REFs and
941 (any_dependent_template_arguments_p): Handle multiple levels of
943 * semantics.c (expand_or_defer_fn): Do not check
944 uses_template_parms for template instantiations.
945 * typeck.c (comptypes): Avoid calling cp_type_quals.
947 2004-01-25 Mark Mitchell <mark@codesourcery.com>
950 * call.c (build_over_call): Do not convert arguments when
951 processing a template.
952 * pt.c (build_non_dependent_expr): Do not build a
953 NON_DEPENDENT_EXPR for arithmetic constants.
955 2004-01-25 Giovanni Bajo <giovannibajo@gcc.gnu.org>
958 * parser.c (cp_parser_type_parameter): When cp_parser_id_expression
959 returns a TYPE_DECL. no further lookup is required.
960 * semantics.c (check_template_template_default_arg): A TYPE_DECL
961 is invalid. Rework to give better diagnostics.
963 2004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
966 * pt.c (instantiate_class_template): Add an error_mark_node
968 (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
970 2004-01-23 Andrew Pinski <pinskia@physics.uc.edu>
973 * decl.c (finish_function): Move the call to
974 finish_fname_decls below the call to
975 finish_eh_spec_block.
977 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
979 * optimize.c, typeck2.c: Update copyright.
981 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
983 * Make-lang.in, call.c, class.c, decl2.c, except.c, expr.c,
984 init.c, mangle.c, typeck.c: Update copyright.
986 2004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
988 * parser.c (cp_parser_class_specifier): Prevent garbage collection.
990 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
992 * Make-lang.in: Replace $(docdir) with doc.
993 (c++.info, c++.srcinfo): Dummy entry.
994 (c++.man, c++.srcman): New rules.
995 (c++.install-man): Revamp rule.
997 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
999 * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
1000 CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
1001 immediate $(shell) instead of deferred backquote.
1003 2004-01-19 Mark Mitchell <mark@codesourcery.com>
1006 * parser.c (cp_parser_postfix_expression): When encountering
1007 incomplete type on left-hand side of "->" or ".", treat the entire
1008 expression as erroneous.
1011 * call.c (build_field_call): Remove.
1012 (n_build_method_call): Likewise.
1013 (build_method_call): Likewise.
1014 (build_new_method_call): Do not call build_field_call.
1015 * class.c (n_build_method_call): Remove.
1016 (print_class_statistics): Do not print it.
1017 * cp-tree.h (build_method_call): Remove declaration.
1018 (finish_object_call_expr): Likewise.
1019 (build_new_1): Do not use build_method_call.
1020 * parser.c (cp_parser_postfix_expression): Use finish_call_expr
1021 when the function appearing on the right-hand-side of "." or "->"
1022 is not actually a function.
1023 * pt.c (tsubst_copy_and_build): Likewise.
1024 * semantics.c (finish_object_call_expr): Remove.
1026 2004-01-18 Mark Mitchell <mark@codesourcery.com>
1029 * pt.c (tsubst): Use finish_typeof.
1031 2004-01-18 Jason Merrill <jason@redhat.com>
1034 * except.c (build_throw): In a template, set
1035 current_function_returns_abnormally.
1037 2004-01-17 Fred Fish <fnf@intrinsity.com>
1040 * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
1041 except don't call array_type_nelts() with a VECTOR_TYPE.
1043 2004-01-16 Jan Hubicka <jh@suse.cz>
1045 * mangle.c (write_mangled_name): Remove inline modifier.
1047 2004-01-16 Mark Mitchell <mark@codesourcery.com>
1050 * decl.c (compute_array_index_type): Fix grammar in comment.
1051 * init.c (build_zero_init): Handle zero-sized arrays correctly.
1054 * call.c (name_as_c_string): Print conversion operator names
1058 * call.c (initialize_reference): Pass -1 for inner parameter to
1061 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1064 * parser.c (cp_parser_base_specifier): Check for an invalid
1065 keyword `typename' and emit an user-friendly error message.
1067 2004-01-15 Geoffrey Keating <geoffk@apple.com>
1070 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
1071 (handle_pragma_implementation): Likewise.
1073 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1076 * typeck.c (build_class_member_access_expr): Allow to access members
1077 of the currently open class.
1078 (finish_class_member_access_expr): Likewise.
1080 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
1083 * name-lookup.c (validate_nonmember_using_decl): Take scope and
1084 name by value, instead of computing them.
1085 (do_local_using_decl, do_toplevel_using_decl): Add scope and name
1086 arguments. Pass them to validate_nonmember_using_decl.
1087 * name-lookup.h (do_local_using_decl): Adjust.
1088 (do_toplevel_using_decl): Likewise.
1089 * parser.c (cp_parser_using_declaration): Likewise.
1090 * pt.c (tsubst_expr): Likewise.
1092 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
1096 * name-lookup.c (qualified_lookup_using_namespace): Search
1097 strongly-associated namespaces first, and only then try other
1100 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
1102 * Make-lang.in (c++.srcextra): Dummy entry.
1104 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1107 * parser.c (cp_parser_template_name): Don't try to parse a
1108 conversion-function-id, as it cannot be a template-name.
1109 (cp_parser_simple_type_specifier): Check for invalid template-ids
1110 even after a built-in type.
1112 2004-01-14 Jan Hubicka <jh@suse.cz>
1115 * pt.c (instantiate_decl): Do not increase function_depth.
1117 2004-01-14 Danny Smith <dannysmith@users,sourceforge.net>
1121 * parser.c (cp_parser_elaborated_type_specifier): Warn about
1122 attributes and discard.
1123 * decl.c (xref_tag): Don't overwite existing attributes with
1126 2004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1129 * parser.c (cp_parser_lookup_name): Return error_mark_node if there
1130 is no destructor while looking up a BIT_NOT_EXPR.
1132 2004-01-13 Ian Lance Taylor <ian@wasabisystems.com>
1134 * cxxfilt.c: Remove unused file.
1136 2004-01-14 Jan Hubicka <jh@suse.cz>
1138 Partial fix to PR c++/12850
1139 * decl2.c (mark_used): Do not proactively instantiate templates
1140 when compiling in unit-at-a-time or not optimizing.
1141 * optimize.c (maybe_clone_body): Do not increase function depth.
1143 2004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1146 * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
1148 2003-01-12 Steven Bosscher <stevenb@suse.de>
1151 * parser.c (cp_parser_member_declaration): Any non-type is also
1152 not a class or a function.
1154 2004-01-12 Jason Merrill <jason@redhat.com>
1157 * class.c (build_base_path): Do not mark vtable references as
1159 (build_vtbl_ref_1): Likewise.
1161 2004-01-12 Richard Henderson <rth@redhat.com>
1164 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
1165 (store_init_value): Use it.
1166 * decl.c (check_initializer): Expect full initialization code
1167 from store_init_value.
1168 * init.c (expand_aggr_init_1): Likewise.
1169 * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
1171 2004-01-12 Mark Mitchell <mark@codesourcery.com>
1173 * class.c (layout_class_type): For non-POD class types, also copy
1174 the DECL_SIZE and DECL_MODE of fields to the base class type.
1176 2004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1179 * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
1180 calling regenerate_decl_from_template.
1182 2004-01-12 Scott Brumbaugh <scottb.lists@verizon.net>
1185 * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
1186 decl-specifier occurring along with a class definition.
1188 2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
1190 * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
1191 clauses to comments describing declares_class_or_enum.
1192 (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
1195 2004-01-12 Jan Hubicka <jh@suse.cz>
1197 * pt.c (for_each_template_parm): Do not check for duplicates.
1198 (for_each_template_parm): Use walk_tree duplicate checking code.
1200 2004-01-11 Ian Lance Taylor <ian@wasabisystems.com>
1203 * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
1204 is error_mark_node, don't add any more decl_specs.
1205 (cp_parser_init_declarator): After committing to a declaration, if
1206 the decl_specifiers start with error_mark_node, issue an error and
1207 change the type to "int".
1209 2004-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
1212 * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
1214 2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1218 * pt.c (tsubst): Substitution must fail if we are attempting to
1219 create an array with element type that is an abstract class type.
1220 * decl.c (cp_finish_decl): Strip pointers and array types recursively
1221 before calling abstract_virtuals_error.
1223 2004-01-09 Alexandre Oliva <aoliva@redhat.com>
1225 * name-lookup.c (qualified_lookup_using_namespace): Consider
1226 strong using directives even if we've already found a binding.
1228 2004-01-09 Mark Mitchell <mark@codesourcery.com>
1230 * cp-tree.h (cxx_expand_expr): Change prototype.
1231 * expr.c (cxx_expand_expr): Add alt_rtl parameter.
1233 2004-01-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1236 * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
1237 looking into them recursively. They can be there because of the
1238 new __offsetof__ extension.
1240 2004-01-07 Zack Weinberg <zack@codesourcery.com>
1242 * parser.c (cp_parser_save_member_function_body): Mark the
1245 2004-01-05 Mark Mitchell <mark@codesourcery.com>
1248 * class.c (build_clone): Copy type attributes from the original
1249 function to the clone.
1252 * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
1253 references as constant.
1256 * parser.c (cp_parser_explicit_instantiation): Improve error
1258 (cp_parser_require): Improve indication of the error location.
1261 * parser.c (cp_parser_class_head): Reorder logic to check for
1262 invalid qualification.
1264 2004-01-04 Mark Mitchell <mark@codesourcery.com>
1267 * name-lookup.c (lookup_using_namespace): Remove spacesp
1269 (unqualified_namespace_lookup): Likewise.
1270 (lookup_qualified_name): Adjust accordingly.
1271 (lookup_name_real): Likewise.
1272 (lookup_arg_dependent): Do not eliminate the namespace of the
1273 functions found by unqualified name lookup unless that is the
1276 2004-01-04 Andrew Pinski <pinskia@physics.uc.edu>
1278 * semantics.c (push_deferring_access_checks): Fix format.
1279 (resume_deferring_access_checks): Likewise.
1280 (stop_deferring_access_checks): Likewise.
1281 (pop_deferring_access_checks): Likewise.
1282 (get_deferred_access_checks): Likewise.
1283 (pop_to_parent_deferring_access_checks): Likewise.
1284 (perform_deferred_access_checks): Likewise.
1285 (perform_or_defer_access_check): Likewise.
1287 2004-01-04 Richard Henderson <rth@redhat.com>
1289 * call.c (build_over_call): Don't create a save_expr of an
1290 aggregate, but rather its address.
1292 2004-01-04 Mark Mitchell <mark@codesourcery.com>
1295 * parser.c (cp_parser_postfix_expression): Allow "." to appear in
1296 an offsetof expression.
1298 * parser.c (cp_parser_parameter_declaration): Fix comment.
1301 * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
1302 (reference_binding): Set it when appropriate.
1303 (build_temp): New function, split out from ...
1304 (convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P.
1305 (initialize_reference): Likewise.
1308 * parser.c (cp_parser): Add in_type_id_in_expr_p.
1309 (cp_parser_new): Initialize it.
1310 (cp_parser_postfix_expression): Set it.
1311 (cp_parser_sizeof_operand): Likewise.
1312 (cp_parser_parameteR_declaration): Do not commit early to tenative
1313 parsers when in_type_id_in_expr_p is set.
1315 2004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1318 * parser.c (cp_parser_template_argument): Don't call
1319 make_unbound_class_template directly.
1320 (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
1321 UNBOUND_CLASS_TEMPLATE tree node.
1323 2004-01-02 Richard Sandiford <rsandifo@redhat.com>
1326 * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
1328 2004-01-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1331 * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
1332 (DECL_FUNCTION_TEMPLATE_P): Use it.
1333 (DECL_CLASS_TEMPLATE_P): Likewise.
1334 * parser.c (cp_parser_lookup_name): Add is_template parameter.
1335 (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
1336 (cp_parser_template_name): Likewise.
1337 (cp_parser_elaborated_type_specifier): Likewise.
1338 (cp_parser_namespace_name): Likewise.
1339 (cp_parser_class_name): Likewise.
1340 (cp_parser_lookup_name_simple): Likewise.
1342 See ChangeLog.3 for earlier changes.