]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
* decl.c (push_binding): Fix typo in comment.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
c45df9c1
MM
11999-04-11 Mark Mitchell <mark@codesourcery.com>
2
3 * decl.c (push_binding): Fix typo in comment.
4
7ac7b28f
MM
51999-04-10 Mark Mitchell <mark@codesourcery.com>
6
7 * error.c (dump_type_real): If a typename is a template-id, put
8 out the template arguments.
9 (dump_expr): Handle TEMPLATE_ID_EXPR.
10 * pt.c (lookup_template_class): Now that full arguments are
11 available everywhere, remove code that tried to guess them.
12
11249cf0
MM
131999-04-09 Mark Mitchell <mark@codesourcery.com>
14
15 * decl.c (make_typename_type): Complain if we don't find a type
16 when trying to make a typename type for a non-template type.
17
b17e2870
JM
181999-04-09 Jason Merrill <jason@yorick.cygnus.com>
19
20 * decl.c (start_decl): Pass attributes to grokdeclarator.
21 (grokdeclarator): Handle attributes on constructor-syntax
22 initializers.
23
3fc5037b
MM
241999-04-08 Mark Mitchell <mark@codesourcery.com>
25
5082a355
MM
26 * error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands
27 don't have types.
28
3fc5037b
MM
29 * search.c (template_self_reference_p): Tweak.
30
311999-04-07 Mark Mitchell <mark@codesourcery.com>
32
33 * init.c (build_offset_ref): Don't build yet another weird data
34 structure to describe overloaded functions.
35
4bb0968f
MM
361999-04-06 Mark Mitchell <mark@codesourcery.com>
37
38 * cp-tree.h (BASELINK_P): New macro.
39 (SET_BASELINK_P): Likewise.
40 * init.c (build_member_call): Remove needless assignment in if
41 statement.
42 * search.c (lookup_field_r): Fix handling when we are looking
43 specifically for a type; these are not hidden by functions and
44 variables.
45 (lookup_member): Use SET_BASELINK_P.
46 * tree.c (is_overloaded_fn): Use BASELINK_P.
47 (really_overloaed_fn): Likewise.
48 (get_first_fn): Likewise.
49
908c4e83
MM
501999-04-05 Mark Mitchell <mark@codesourcery.com>
51
a7d2d407
MM
52 * decl.c (lookup_name_current_level): Tweak, and improve
53 documentation.
54
908c4e83
MM
55 * class.c (maybe_fixup_vptrs): Remove declaration.
56 (build_class_init_list): Likewise.
57 * decl.c (pushdecl_class_level): Call check_template_shadow here
58 ...
59 (push_class_level_binding): ... not here.
60 * search.c (dfs_push_type_decls): Only avoid
61 template-self-reference TYPE_DECLs if they are from base classes.
62
b5d9b9ab
MM
631999-04-04 Mark Mitchell <mark@codesourcery.com>
64
65 * pt.c (check_template_shadow): Don't treat OVERLOADs as _DECL
66 nodes. Tidy.
67
e01a4a17
JM
681999-04-03 Jason Merrill <jason@yorick.cygnus.com>
69
70 * class.c (maybe_fixup_vptrs, build_class_init_list): Lose.
71 (finish_struct_1): Don't call build_class_init_list.
72
8f032717
MM
731999-04-02 Mark Mitchell <mark@codesourcery.com>
74
75 * tinfo.h (__class_type_info): Fix illegal declaration.
76
77 * cp-tree.def (TEMPLATE_ID_EXPR): Update comment.
78 * cp-tree.h (INHERITED_VALUE_BINDING_P): New macro.
79 (IDENTIFIER_CLASS_VALUE): Improve documentation.
80 (is_properly_derived_from): Declare.
81 (invalidate_class_lookup_cache): Likewise.
82 (maybe_maybe_note_name_used_in_class): Likewise.
83 (note_name_declared_in_class): Likewise.
84 (push_using_decl): Remove duplicate declaration.
85 (id_in_current_class): Remove declaration.
86 (push_class_binding): Change prototype.
87 (clear_identitifer_class_values): Declare.
88 * call.c (is_properly_derived_from): Make it global.
89 (build_new_function_call): Be careful about updating candidates.
90 (build_new_method_call): Handle COMPONENT_REFs. Don't crash when
91 asked to make illegal calls.
92 * class.c: Include splay-tree.h.
93 (class_stack_node): Add names_used slot.
94 (check_member_decl_is_same_in_complete_scope): Remove.
95 (add_method): Fix comment. Push the declaration into class
96 scope.
97 (finish_struct_1): When popping the class, pop the bindings too.
98 Remove check for data member/function member conflict.
99 (finish_struct): Remove calls to
100 check_member_decl_is_same_in_complete_scope. Change calls to
101 popclass.
102 (pushclass): Clear names_used in the class stack entry.
103 Use invalidate_class_lookup_cache to remove cached entries, rather
104 than magic values with popclass. Clear IDENTIFIER_CLASS_VALUE
105 before entering a new class. Remove dead code. Don't mess with
106 current_function_decl when pushing declarations.
107 (invalidate_class_lookup_cache): New function, split out from ...
108 (popclass): Here. Clean up names_used on our way out.
109 (instantiate_type): Adjust.
110 (build_self_reference): Don't push the declaration here.
111 (maybe_note_name_used_in_class): New function.
112 (note_name_declared_in_class): Likewise.
113 * decl.c (add_binding): Change prototype.
114 (find_class_binding_level): New function.
115 (innermost_nonclass_level): Likewise.
116 (current_binding_level): Update documentation.
117 (inner_binding_level): Remove. Replace with current_binding_level
118 throughout.
119 (push_binding_level): Remove special handling of
120 class_binding_level.
121 (pop_binding_level): Likewise. Use find_class_binding_level.
122 (suspend_binding_level): Likewise.
123 (global_bindings_p): Use innermost_nonclass_level.
124 (toplevel_bindings_p): Likewise.
125 (namespace_bindings_p): Likewise.
126 (pseudo_global_level_p): Likewise.
127 (push_binding): Clear INHERITED_VALUE_BINDING_P.
128 (add_binding): Check for illegal multiple declarations. Return a
129 value indicating whether or not the new binding was legal.
130 (push_local_binding): Skip over class binding levels. Check
131 return value from add_binding.
132 (push_class_binding): Set INHERITED_VALUE_BINDING_P. Call
133 note_name_declared_in_class.
134 (pushlevel_class): Remove "fake out the rest of the compiler"
135 code.
136 (poplevel_class): Reset IDENTIFIER_CLASS_VALUEs.
137 (clear_identifier_class_values): New function.
138 (pop_from_top_level): Use it.
139 (pop_everything): Tweak.
140 (maybe_process_template_type_declaration): Don't push the
141 declaration for the template here.
142 (pushtag): Don't push tag declarations into class scope here.
143 (pushdecl): Apply DeMorgan's law for readability.
144 (pushdecl_class_level): Remove special-case code for
145 TYPE_BEING_DEFINED. Handle OVERLOADs and anonymous unions.
146 (push_class_level_bindng): Deal with inherited bindings.
147 (lookup_name_real): Remove special-case code for
148 TYPE_BEING_DEFINED, and some implicit typename magic.
149 (grokdeclarator): Handle COMPONENT_REF for a template function.
150 (build_enumerator): Don't call pushdecl_class_level here.
151 (id_in_current_class): Remove.
152 * decl2.c (grokfield): Don't call pushdecl_class_level or
153 check_template_shadow.
154 * errfn.c (cp_file_of): Don't declare.
155 (cp_line_of): Likewise.
156 * error.c (dump_decl): Handle an OVERLOAD.
157 (cp_file_of): Likewise.
158 (cp_line_of): Likewise.
159 * init.c (build_member_call): Handle a COMPONENT_REF.
160 * lex.c (do_identifier): Call maybe_note_name_used_in_class, not
161 pushdecl_class_level.
162 * method.c (hack_identifier): Build COMPONENT_REFs for references
163 to member templates as well as member functions. Remove dead
164 code.
165 * parse.y (left_curly): Remove.
166 (nonnested_type): Call maybe_note_name_used_in_class, not
167 pushdecl_class_level.
168 * parse.c: Regenerated.
169 (nested_name_specifier_1): Likewise.
170 * pt.c (check_explicit_specialization): Adjust, for robustness.
171 (check_template_shadow): Handle OVERLOADs.
172 (build_template_decl): Set DECL_CONSTRUCTOR_P on the
173 TEMPLATE_DECL, if appropriate.
174 * search.c (envelope_add_decl): Remove.
175 (dfs_pushdecls): Likewise.
176 (dfs_compress_decls): Likewise.
177 (dfs_push_decls): New function.
178 (dfs_push_type_decls): Likewise.
179 (setup_class_bindings): Likewise.
180 (template_self_reference_p): Likewise.
181 (lookup_field_r): Use it.
182 (looup_member): Remove old comment. Deal with ambiguity.
183 (push_class_decls): Use dfs_push_decls and dfs_push_type_decls,
184 and remove envelope processing.
185 * semantics.c (begin_class_definition): Let pushclass push
186 declarations for base classes.
187 (finish_member_declaration): Push declarations into class scope.
188 * typeck.c (build_component_ref): Just put an OVERLOAD into the
189 COMPONENT_REF, not a TREE_LIST of an OVERLOAD.
190 (build_x_function_call): Deal with OVERLOAD. Handle template-ids.
191 * Makefile.in (class.o): Depend on splay-tree.h.
192
ae9e7e16
NS
193Wed Mar 31 11:30:43 BST 1999 Nathan Sidwell <nathan@acm.org>
194
195 * cvt.c (convert_pointer_to_real): Use same_type_p.
196 * typeck.c (comp_target_types): Use same_type_p.
197
51632249
JM
1981999-03-31 Jason Merrill <jason@yorick.cygnus.com>
199
200 * semantics.c (begin_inline_definitions,
201 finish_inline_definitions): Rename from finish_default_args and
202 begin_inline_definitions, respectively, to something that isn't a
203 total lie. :)
204 * parse.y (structsp): Adjust.
205
206 * tree.c (hash_tree_cons): Remove obsolete via_* parms.
207 (list_hash_lookup): Likewise.
208 (hash_tree_chain): Adjust.
209 * pt.c (tsubst): Adjust.
210 (tsubst_arg_types): Use plain hash_tree_cons.
211 * cp-tree.h (hash_tree_cons_simple): Lose.
212 * parse.y (declmods, nonempty_cv_qualifiers): Use hash_tree_cons.
213
8e6befc1
KG
214Wed Mar 31 10:48:29 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
215
216 * Makefile.in (hash.h): Generate using gperf language 'C', not
217 'KR-C', so gperf uses the `const' keyword on strings.
218
219 * gxx.gperf (resword): Const-ify a char*.
220
9e0781b5
JM
2211999-03-30 Jason Merrill <jason@yorick.cygnus.com>
222
223 * cp-tree.h (IDENTIFIER_AS_DESC, IDENTIFIER_AS_LIST,
224 CLASSTYPE_BASELINK_VEC, CLASSTYPE_N_SUPERCLASSES,
225 CLASSTYPE_N_BASECLASSES, CLASSTYPE_MAX_DEPTH,
226 CLASSTYPE_BASE_INIT_LIST, CLASSTYPE_AS_LIST, CLASSTYPE_ID_AS_LIST,
227 CLASSTYPE_BINFO_AS_LIST): Remove cruft.
228 * class.c, lex.c, parse.y, ptree.c, search.c, semantics.c,
229 tree.c: Adjust.
230
9af3a23b
JM
2311999-03-29 Jason Merrill <jason@yorick.cygnus.com>
232
233 * decl2.c (lang_decode_option): Remove -Wsign-promo from -Wall.
234
edef8288
JM
2351999-03-28 Jason Merrill <jason@yorick.cygnus.com>
236
237 * pt.c (fn_type_unification): Ignore 'this' parm from conversion ops.
238
0c0aac2f
MM
2391999-03-27 Mark Mitchell <mark@codesourcery.com>
240
241 * cp-tree.h (add_friend): Declare.
242 (add_friends): Likewise.
243 * friend.c (add_friend): Make it global. Don't add to
244 DECL_BEFRIENDING_CLASSES if the befriending class is a template.
245 (add_friends): Make it global.
246 (make_friend_class): Don't add to DECL_BEFRIENDING_CLASSES if the
247 befriending class is a template.
248 * parse.y (component_decl_1): Fix typo in comment.
249 * parse.c: Regenerated.
250 * pt.c (instantiate_class_template): Use add_friend and
251 add_friends rather that duplicating some of their functionality
252 here.
253
90e734a8
JM
2541999-03-27 Jason Merrill <jason@yorick.cygnus.com>
255
256 * call.c (build_field_call): Unify 'this' and non-'this' cases.
257
258 * typeck.c (build_indirect_ref): Check for 'this' sooner.
259
d8e178a0
KG
260Fri Mar 26 10:20:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
261
262 * call.c (op_error): Const-ify a char*.
263 (add_candidate, source_type, add_warning): Add static prototype.
264 (print_z_candidates): Const-ify a char*.
265
266 * class.c (resolve_address_of_overloaded_function,
267 fixed_type_or_null, build_vtable_entry_ref): Add static prototype.
268 (get_vtable_name, finish_struct_1): Const-ify a char*.
269
270 * cvt.c (convert_to_reference): Likewise.
271
272 * decl.c (redeclaration_error_message, record_builtin_type,
273 record_unknown_type, member_function_or_else, bad_specifiers):
274 Likewise.
275 (find_binding, select_decl, unqualified_namespace_lookup,
276 lookup_flags, qualify_lookup, record_builtin_java_type, tag_name):
277 Add static prototype.
278 (warn_extern_redeclared_static, duplicate_decls, pushdecl,
279 implicitly_declare, record_builtin_java_type, define_function,
280 grok_op_properties, tag_name): Const-ify a char*.
281
282 * cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const.
283 (define_function, finish_builtin_type): Const-ify a char*.
284 (cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn,
285 cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args.
286 (file_name_nondirectory): Const-ify a char*.
287 (init_filename_times): Don't prototype.
288 (compiler_error): Prototype.
289 (yyerror, init_repo): Const-ify a char*.
290 (build_srcloc): Don't prototype.
291 (build_x_indirect_ref, build_indirect_ref, build_component_addr):
292 Const-ify a char*.
293 (warn_for_assignment): Don't prototype.
294 (convert_for_initialization, readonly_error, check_for_new_type,
295 GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call):
296 Const-ify a char*.
297
298 * decl2.c (acceptable_java_type, output_vtable_inherit,
299 setup_initp, start_objects, finish_objects, do_dtors, do_ctors,
300 merge_functions, decl_namespace, validate_nonmember_using_decl,
301 do_nonmember_using_decl): Add static prototype.
302 (lang_f_options): Const-ify a char*.
303 (finish_builtin_type): Likewise.
304 (add_function, arg_assoc_namespace, arg_assoc_class): Add static
305 prototype.
306
307 * errfn.c: Include cp-tree.h.
308 (cp_thing): Add static prototype.
309 (compiler_error): Don't protoptype.
310 (cp_compiler_error): Cast `compiler_error' to `errorfn' before
311 passing it to `cp_thing'.
312
313 * error.c (interesting_scope_p): Add static prototype.
314
315 * except.c (build_eh_type_type, build_eh_type_type_ref): Const-ify
316 a char*.
317
318 * init.c (compiler_error): Don't prototype.
319 (member_init_ok_or_else): Const-ify a char*.
320 (build_java_class_ref): Add static prototype.
321
322 * lex.c (compiler_error): Don't prototype.
323 (get_time_identifier, interface_strcmp, extend_token_buffer,
324 handle_cp_pragma): Const-ify a char*.
325 (is_global, init_filename_times): Add static prototype.
326 (file_name_nondirectory, cplus_tree_code_name): Const-ify a char*.
327 (compiler_error): Change from fixed args to variable args.
328 (yyerror): Const-ify a char*.
329
330 * parse.y (cond_stmt_keyword): Const-ify a char*.
331 (parse_decl): Add static prototype.
332
333 * pt.c (template_args_equal, print_template_context): Likewise.
334 (print_candidates, check_default_tmpl_args): Const-ify a char*.
335 (instantiate_class_template): Likewise.
336
337 * repo.c (get_base_filename, open_repo_file, init_repo): Likewise.
338
339 * rtti.c (call_void_fn, expand_generic_desc, expand_si_desc,
340 expand_class_desc, expand_ptr_desc, expand_attr_desc): Likewise.
341
342 * search.c (lookup_field_info, lookup_member): Likewise.
343 (lookup_member): Cast the first argument of `bzero' to a PTR.
344
345 * sig.c (compiler_error): Don't prototype.
346 (build_signature_pointer_or_reference_nam): Const-ify a char*.
347 (get_sigtable_name, build_member_function_pointer): Likewise.
348
349 * tree.c (compiler_error): Don't prototype.
350 (no_linkage_helper, build_srcloc): Add static prototype.
351 (build_vbase_pointer_fields): Const-ify a char*.
352 (__eprintf): Don't unnecessarily handle `const' when !__STDC__.
353
354 * typeck.c (compiler_error): Don't prototype.
355 (convert_for_assignment): Const-ify a char*.
356 (comp_cv_target_types): Add static prototype.
357 (build_x_indirect_ref, build_indirect_ref, convert_arguments,
358 build_component_addr, build_unary_op, convert_for_initialization):
359 Const-ify a char*.
360
361 * typeck2.c (ack): Add static prototype and change from fixed args
362 to variable args.
363 (readonly_error, check_for_new_type): Const-ify a char*.
364
365 * xref.c (_XREF_FILE, find_file, filename, fctname, declname,
366 fixname, open_xref_file, classname, GNU_xref_begin): Likewise.
367 (GNU_xref_file): Likewise. Also use `xmalloc' instead of `malloc'.
368 (GNU_xref_end_scope, GNU_xref_ref, GNU_xref_decl, GNU_xref_call,
369 gen_assign, GNU_xref_member): Const-ify a char*.
370
5197829d
ML
371