re PR c++/13659 (error: no matching function for call to)
[gcc.git] / gcc / cp / ChangeLog
1 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
2
3 PR c++/13659
4 * name-lookup.c (validate_nonmember_using_decl): Take scope and
5 name by value, instead of computing them.
6 (do_local_using_decl, do_toplevel_using_decl): Add scope and name
7 arguments. Pass them to validate_nonmember_using_decl.
8 * name-lookup.h (do_local_using_decl): Adjust.
9 (do_toplevel_using_decl): Likewise.
10 * parser.c (cp_parser_using_declaration): Likewise.
11 * pt.c (tsubst_expr): Likewise.
12
13 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
14
15 PR c++/13594
16 PR c++/13658
17 * name-lookup.c (qualified_lookup_using_namespace): Search
18 strongly-associated namespaces first, and only then try other
19 namespaces.
20
21 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
22
23 * Make-lang.in (c++.srcextra): Dummy entry.
24
25 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
26
27 PR c++/8856
28 * parser.c (cp_parser_template_name): Don't try to parse a
29 conversion-function-id, as it cannot be a template-name.
30 (cp_parser_simple_type_specifier): Check for invalid template-ids
31 even after a built-in type.
32
33 2004-01-14 Jan Hubicka <jh@suse.cz>
34
35 PR c++/12850
36 * pt.c (instantiate_decl): Do not increase function_depth.
37
38 2004-01-14 Danny Smith <dannysmith@users,sourceforge.net>
39
40 PR c++/9021
41 PR c++/11005
42 * parser.c (cp_parser_elaborated_type_specifier): Warn about
43 attributes and discard.
44 * decl.c (xref_tag): Don't overwite existing attributes with
45 NULL_TREE.
46
47 2004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
48
49 PR c++/12335
50 * parser.c (cp_parser_lookup_name): Return error_mark_node if there
51 is no destructor while looking up a BIT_NOT_EXPR.
52
53 2004-01-13 Ian Lance Taylor <ian@wasabisystems.com>
54
55 * cxxfilt.c: Remove unused file.
56
57 2004-01-14 Jan Hubicka <jh@suse.cz>
58
59 Partial fix to PR c++/12850
60 * decl2.c (mark_used): Do not proactively instantiate templates
61 when compiling in unit-at-a-time or not optimizing.
62 * optimize.c (maybe_clone_body): Do not increase function depth.
63
64 2004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
65
66 PR c++/13474
67 * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
68
69 2003-01-12 Steven Bosscher <stevenb@suse.de>
70
71 PR c++/13558
72 * parser.c (cp_parser_member_declaration): Any non-type is also
73 not a class or a function.
74
75 2004-01-12 Jason Merrill <jason@redhat.com>
76
77 PR c++/12815
78 * class.c (build_base_path): Do not mark vtable references as
79 TREE_CONSTANT.
80 (build_vtbl_ref_1): Likewise.
81
82 2004-01-12 Richard Henderson <rth@redhat.com>
83
84 PR opt/10776
85 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
86 (store_init_value): Use it.
87 * decl.c (check_initializer): Expect full initialization code
88 from store_init_value.
89 * init.c (expand_aggr_init_1): Likewise.
90 * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
91
92 2004-01-12 Mark Mitchell <mark@codesourcery.com>
93
94 * class.c (layout_class_type): For non-POD class types, also copy
95 the DECL_SIZE and DECL_MODE of fields to the base class type.
96
97 2004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
98
99 PR c++/13289
100 * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
101 calling regenerate_decl_from_template.
102
103 2004-01-12 Scott Brumbaugh <scottb.lists@verizon.net>
104
105 PR c++/4100
106 * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
107 decl-specifier occurring along with a class definition.
108
109 2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
110
111 * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
112 clauses to comments describing declares_class_or_enum.
113 (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
114 false.
115
116 2004-01-12 Jan Hubicka <jh@suse.cz>
117
118 * pt.c (for_each_template_parm): Do not check for duplicates.
119 (for_each_template_parm): Use walk_tree duplicate checking code.
120
121 2004-01-11 Ian Lance Taylor <ian@wasabisystems.com>
122
123 PR c++/3478
124 * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
125 is error_mark_node, don't add any more decl_specs.
126 (cp_parser_init_declarator): After committing to a declaration, if
127 the decl_specifiers start with error_mark_node, issue an error and
128 change the type to "int".
129
130 2004-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
131
132 PR bootstrap/7817
133 * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
134
135 2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
136
137 DR 337
138 PR c++/9256
139 * pt.c (tsubst): Substitution must fail if we are attempting to
140 create an array with element type that is an abstract class type.
141 * decl.c (cp_finish_decl): Strip pointers and array types recursively
142 before calling abstract_virtuals_error.
143
144 2004-01-09 Alexandre Oliva <aoliva@redhat.com>
145
146 * name-lookup.c (qualified_lookup_using_namespace): Consider
147 strong using directives even if we've already found a binding.
148
149 2004-01-09 Mark Mitchell <mark@codesourcery.com>
150
151 * cp-tree.h (cxx_expand_expr): Change prototype.
152 * expr.c (cxx_expand_expr): Add alt_rtl parameter.
153
154 2004-01-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
155
156 PR c++/12573
157 * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
158 looking into them recursively. They can be there because of the
159 new __offsetof__ extension.
160
161 2004-01-07 Zack Weinberg <zack@codesourcery.com>
162
163 * parser.c (cp_parser_save_member_function_body): Mark the
164 definition static.
165
166 2004-01-05 Mark Mitchell <mark@codesourcery.com>
167
168 PR c++/13057
169 * class.c (build_clone): Copy type attributes from the original
170 function to the clone.
171
172 PR c++/12815
173 * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
174 references as constant.
175
176 PR c++/12132
177 * parser.c (cp_parser_explicit_instantiation): Improve error
178 recovery.
179 (cp_parser_require): Improve indication of the error location.
180
181 PR c++/13451
182 * parser.c (cp_parser_class_head): Reorder logic to check for
183 invalid qualification.
184
185 2004-01-04 Mark Mitchell <mark@codesourcery.com>
186
187 PR c++/13157
188 * name-lookup.c (lookup_using_namespace): Remove spacesp
189 parameter.
190 (unqualified_namespace_lookup): Likewise.
191 (lookup_qualified_name): Adjust accordingly.
192 (lookup_name_real): Likewise.
193 (lookup_arg_dependent): Do not eliminate the namespace of the
194 functions found by unqualified name lookup unless that is the
195 current namespace.
196
197 2004-01-04 Andrew Pinski <pinskia@physics.uc.edu>
198
199 * semantics.c (push_deferring_access_checks): Fix format.
200 (resume_deferring_access_checks): Likewise.
201 (stop_deferring_access_checks): Likewise.
202 (pop_deferring_access_checks): Likewise.
203 (get_deferred_access_checks): Likewise.
204 (pop_to_parent_deferring_access_checks): Likewise.
205 (perform_deferred_access_checks): Likewise.
206 (perform_or_defer_access_check): Likewise.
207
208 2004-01-04 Richard Henderson <rth@redhat.com>
209
210 * call.c (build_over_call): Don't create a save_expr of an
211 aggregate, but rather its address.
212
213 2004-01-04 Mark Mitchell <mark@codesourcery.com>
214
215 PR c++/13529
216 * parser.c (cp_parser_postfix_expression): Allow "." to appear in
217 an offsetof expression.
218
219 * parser.c (cp_parser_parameter_declaration): Fix comment.
220
221 PR c++/12226
222 * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
223 (reference_binding): Set it when appropriate.
224 (build_temp): New function, split out from ...
225 (convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P.
226 (initialize_reference): Likewise.
227
228 PR c++/13536
229 * parser.c (cp_parser): Add in_type_id_in_expr_p.
230 (cp_parser_new): Initialize it.
231 (cp_parser_postfix_expression): Set it.
232 (cp_parser_sizeof_operand): Likewise.
233 (cp_parser_parameteR_declaration): Do not commit early to tenative
234 parsers when in_type_id_in_expr_p is set.
235
236 2004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
237
238 PR c++/13094
239 * parser.c (cp_parser_template_argument): Don't call
240 make_unbound_class_template directly.
241 (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
242 UNBOUND_CLASS_TEMPLATE tree node.
243
244 2004-01-02 Richard Sandiford <rsandifo@redhat.com>
245
246 PR target/12729
247 * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
248
249 2004-01-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
250
251 PR c++/13520
252 * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
253 (DECL_FUNCTION_TEMPLATE_P): Use it.
254 (DECL_CLASS_TEMPLATE_P): Likewise.
255 * parser.c (cp_parser_lookup_name): Add is_template parameter.
256 (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
257 (cp_parser_template_name): Likewise.
258 (cp_parser_elaborated_type_specifier): Likewise.
259 (cp_parser_namespace_name): Likewise.
260 (cp_parser_class_name): Likewise.
261 (cp_parser_lookup_name_simple): Likewise.
262
263 See ChangeLog.3 for earlier changes.