1 2004-01-16 Mark Mitchell <mark@codesourcery.com>
4 * call.c (convert_like_real): Do not perform an additional
5 direct-initialization when binding to a reference.
7 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
10 * parser.c (cp_parser_base_specifier): Check for an invalid
11 keyword `typename' and emit an user-friendly error message.
13 2004-01-15 Geoffrey Keating <geoffk@apple.com>
16 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
17 (handle_pragma_implementation): Likewise.
19 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
22 * typeck.c (build_class_member_access_expr): Allow to access members
23 of the currently open class.
24 (finish_class_member_access_expr): Likewise.
26 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
29 * name-lookup.c (validate_nonmember_using_decl): Take scope and
30 name by value, instead of computing them.
31 (do_local_using_decl, do_toplevel_using_decl): Add scope and name
32 arguments. Pass them to validate_nonmember_using_decl.
33 * name-lookup.h (do_local_using_decl): Adjust.
34 (do_toplevel_using_decl): Likewise.
35 * parser.c (cp_parser_using_declaration): Likewise.
36 * pt.c (tsubst_expr): Likewise.
38 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
42 * name-lookup.c (qualified_lookup_using_namespace): Search
43 strongly-associated namespaces first, and only then try other
46 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
48 * Make-lang.in (c++.srcextra): Dummy entry.
50 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
53 * parser.c (cp_parser_template_name): Don't try to parse a
54 conversion-function-id, as it cannot be a template-name.
55 (cp_parser_simple_type_specifier): Check for invalid template-ids
56 even after a built-in type.
58 2004-01-14 Jan Hubicka <jh@suse.cz>
61 * pt.c (instantiate_decl): Do not increase function_depth.
63 2004-01-14 Danny Smith <dannysmith@users,sourceforge.net>
67 * parser.c (cp_parser_elaborated_type_specifier): Warn about
68 attributes and discard.
69 * decl.c (xref_tag): Don't overwite existing attributes with
72 2004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
75 * parser.c (cp_parser_lookup_name): Return error_mark_node if there
76 is no destructor while looking up a BIT_NOT_EXPR.
78 2004-01-13 Ian Lance Taylor <ian@wasabisystems.com>
80 * cxxfilt.c: Remove unused file.
82 2004-01-14 Jan Hubicka <jh@suse.cz>
84 Partial fix to PR c++/12850
85 * decl2.c (mark_used): Do not proactively instantiate templates
86 when compiling in unit-at-a-time or not optimizing.
87 * optimize.c (maybe_clone_body): Do not increase function depth.
89 2004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
92 * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
94 2003-01-12 Steven Bosscher <stevenb@suse.de>
97 * parser.c (cp_parser_member_declaration): Any non-type is also
98 not a class or a function.
100 2004-01-12 Jason Merrill <jason@redhat.com>
103 * class.c (build_base_path): Do not mark vtable references as
105 (build_vtbl_ref_1): Likewise.
107 2004-01-12 Richard Henderson <rth@redhat.com>
110 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
111 (store_init_value): Use it.
112 * decl.c (check_initializer): Expect full initialization code
113 from store_init_value.
114 * init.c (expand_aggr_init_1): Likewise.
115 * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
117 2004-01-12 Mark Mitchell <mark@codesourcery.com>
119 * class.c (layout_class_type): For non-POD class types, also copy
120 the DECL_SIZE and DECL_MODE of fields to the base class type.
122 2004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
125 * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
126 calling regenerate_decl_from_template.
128 2004-01-12 Scott Brumbaugh <scottb.lists@verizon.net>
131 * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
132 decl-specifier occurring along with a class definition.
134 2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
136 * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
137 clauses to comments describing declares_class_or_enum.
138 (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
141 2004-01-12 Jan Hubicka <jh@suse.cz>
143 * pt.c (for_each_template_parm): Do not check for duplicates.
144 (for_each_template_parm): Use walk_tree duplicate checking code.
146 2004-01-11 Ian Lance Taylor <ian@wasabisystems.com>
149 * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
150 is error_mark_node, don't add any more decl_specs.
151 (cp_parser_init_declarator): After committing to a declaration, if
152 the decl_specifiers start with error_mark_node, issue an error and
153 change the type to "int".
155 2004-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
158 * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
160 2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
164 * pt.c (tsubst): Substitution must fail if we are attempting to
165 create an array with element type that is an abstract class type.
166 * decl.c (cp_finish_decl): Strip pointers and array types recursively
167 before calling abstract_virtuals_error.
169 2004-01-09 Alexandre Oliva <aoliva@redhat.com>
171 * name-lookup.c (qualified_lookup_using_namespace): Consider
172 strong using directives even if we've already found a binding.
174 2004-01-09 Mark Mitchell <mark@codesourcery.com>
176 * cp-tree.h (cxx_expand_expr): Change prototype.
177 * expr.c (cxx_expand_expr): Add alt_rtl parameter.
179 2004-01-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
182 * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
183 looking into them recursively. They can be there because of the
184 new __offsetof__ extension.
186 2004-01-07 Zack Weinberg <zack@codesourcery.com>
188 * parser.c (cp_parser_save_member_function_body): Mark the
191 2004-01-05 Mark Mitchell <mark@codesourcery.com>
194 * class.c (build_clone): Copy type attributes from the original
195 function to the clone.
198 * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
199 references as constant.
202 * parser.c (cp_parser_explicit_instantiation): Improve error
204 (cp_parser_require): Improve indication of the error location.
207 * parser.c (cp_parser_class_head): Reorder logic to check for
208 invalid qualification.
210 2004-01-04 Mark Mitchell <mark@codesourcery.com>
213 * name-lookup.c (lookup_using_namespace): Remove spacesp
215 (unqualified_namespace_lookup): Likewise.
216 (lookup_qualified_name): Adjust accordingly.
217 (lookup_name_real): Likewise.
218 (lookup_arg_dependent): Do not eliminate the namespace of the
219 functions found by unqualified name lookup unless that is the
222 2004-01-04 Andrew Pinski <pinskia@physics.uc.edu>
224 * semantics.c (push_deferring_access_checks): Fix format.
225 (resume_deferring_access_checks): Likewise.
226 (stop_deferring_access_checks): Likewise.
227 (pop_deferring_access_checks): Likewise.
228 (get_deferred_access_checks): Likewise.
229 (pop_to_parent_deferring_access_checks): Likewise.
230 (perform_deferred_access_checks): Likewise.
231 (perform_or_defer_access_check): Likewise.
233 2004-01-04 Richard Henderson <rth@redhat.com>
235 * call.c (build_over_call): Don't create a save_expr of an
236 aggregate, but rather its address.
238 2004-01-04 Mark Mitchell <mark@codesourcery.com>
241 * parser.c (cp_parser_postfix_expression): Allow "." to appear in
242 an offsetof expression.
244 * parser.c (cp_parser_parameter_declaration): Fix comment.
247 * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
248 (reference_binding): Set it when appropriate.
249 (build_temp): New function, split out from ...
250 (convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P.
251 (initialize_reference): Likewise.
254 * parser.c (cp_parser): Add in_type_id_in_expr_p.
255 (cp_parser_new): Initialize it.
256 (cp_parser_postfix_expression): Set it.
257 (cp_parser_sizeof_operand): Likewise.
258 (cp_parser_parameteR_declaration): Do not commit early to tenative
259 parsers when in_type_id_in_expr_p is set.
261 2004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
264 * parser.c (cp_parser_template_argument): Don't call
265 make_unbound_class_template directly.
266 (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
267 UNBOUND_CLASS_TEMPLATE tree node.
269 2004-01-02 Richard Sandiford <rsandifo@redhat.com>
272 * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
274 2004-01-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
277 * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
278 (DECL_FUNCTION_TEMPLATE_P): Use it.
279 (DECL_CLASS_TEMPLATE_P): Likewise.
280 * parser.c (cp_parser_lookup_name): Add is_template parameter.
281 (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
282 (cp_parser_template_name): Likewise.
283 (cp_parser_elaborated_type_specifier): Likewise.
284 (cp_parser_namespace_name): Likewise.
285 (cp_parser_class_name): Likewise.
286 (cp_parser_lookup_name_simple): Likewise.
288 See ChangeLog.3 for earlier changes.