]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
com.c (ffecom_tree_canonize_ptr_): Place bitsizetype typed expr as first agument...
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
7bf2682f
MM
1Thu Jan 29 10:39:30 1998 Mark Mitchell <mmitchell@usa.net>
2
3 * pt.c (convert_nontype_argument): Move check for is_overloaded_fn
4 early to avoid bogus error. Handle overloaded function
5 names provided as template arguments correctly.
6 (coerce_template_parms): Don't mishandle overloaded functions when
7 dealing with template template parameters.
8 (lookup_template_class): Issue an error message, rather than
9 crashing, when the TYPE_DECL provided is not a template type.
10
abff8e06
JM
11Wed Jan 28 23:14:44 1998 Jason Merrill <jason@yorick.cygnus.com>
12
13 * class.c (instantiate_type): Don't just return a known type if
14 it's wrong.
15
86052cc3
JM
16Wed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net>
17
abff8e06
JM
18 * class.c (instantiate_type): Remove handling of FUNCTION_DECL
19 since that code could never be reached.
20
21 * error.c (dump_decl): Avoid aborting in the midst of printing an
22 error message about an illegal template declaration.
23
24 * parse.y (structsp): Print an error message, rather than crashing,
25 when a class-head does not name a class.
26
27 * pt.c (convert_nontype_argument): Allow REAL_TYPE and COMPLEX_TYPE
28 template arguments as a g++ extension.
29
30 * cp-tree.def (ALIGNOF_EXPR): New tree code.
31 * decl2.c (grok_alignof): If processing_template_decl, just store
32 the expression.
33 * typeck.c (c_alignof): Likewise.
34 * decl2.c (build_expr_from_tree): Handle ALIGNOF_EXPR.
35 * error.c (dump_expr): Likewise.
36 * pt.c (tsubst_copy): Likewise.
37 * tree.c (cp_tree_equal): Likewise.
38 * pt.c (uses_template_parms): Correctly determine whether or not a
39 SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant
40 folding can be done.
41
86052cc3
JM
42 * cp-tree.h (grok_enum_decls): Remove type parameter.
43 * decl.c (grok_enum_decls): Likewise.
44 * decl2.c (grok_x_components): Call grok_enum_decls
45 unconditionally, since it will do nothing if there is no
46 current_local_enum. Use the new calling sequence.
47 * pt.c (tsubst_enum): Use the new calling sequence for
48 grok_enum_decls.
49
50 * decl.c (start_function): Make member functions of local classes
51 in extern inline functions have comdat linkage here...
52 (grokdeclarator): Rather than here.
53
54Wed Jan 28 10:55:47 1998 Jason Merrill <jason@yorick.cygnus.com>
55
56 * pt.c (convert_nontype_argument): Use decl_constant_value.
57
e1467ff2
MM
58Tue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net>
59
60 * call.c (add_template_candidate_real): New function.
61 (add_template_candidate): Use it.
62 (add_template_conv_candidate): Likewise.
63 (joust): Pass extra argument to more_specialized.
64 * class.c (instantiate_type): Handle a single FUNCTION_DECL.
65 (is_local_class): Remove.
66 (finish_struct): Check TI_PENDING_SPECIALIZATION_FLAG.
67 * cp-tree.h (is_local_class): Remove.
68 (perform_array_to_pointer_conversion): Likewise.
69 (finish_member_template_decl): Add.
70 (check_explicit_specialization): Return a tree, not an int.
71 (more_specialized): Take additional argument.
72 (get_bindings): Likewise.
86052cc3 73 (TI_PENDING_SPECIALIZATION_FLAG): New macro.
e1467ff2
MM
74 * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes.
75 (perform_array_to_pointer_conversion): Remove.
76 * decl.c (saved_scope): Add processing_specialization,
77 processing_explicit_instantiation fields.
78 (maybe_push_to_top_level): Save them.
79 (pop_from_top_level): Restore them.
80 (grokfndecl): Use new return value from
81 check_explicit_specialization.
82 (start_decl): Don't check flag_guiding_decls before pushing
83 decls.
84 (cp_finish_decl): Remove previous (bogus) change.
85 (grok_declarator): Use decl_function_context rather than
86 is_local_class.
87 * decl2.c (finish_file): Pass extra argument to get_bindings.
88 (build_expr_from_tree): Let build_x_component_ref check
89 validity of arguments rather than doing it here.
90 * lex.c (cons_up_default_function): Remove code fooling with
91 processing_specialization, processing_explicit_instantiation
92 flags, as that is now done in {maybe_push_top,pop_from}_top_level.
93 * method.c (build_overload_identifier): Mangle local classes in
94 template functions correctly.
95 * parse.y (finish_member_template_decl): Move to pt.c.
96 * pt.c (finish_member_template_decl): Moved here from parse.y.
97 (print_candidates): New function.
98 (determine_specialization): Change interface. Properly look for
99 most specialized versions of template candidates.
100 (check_explicit_specialization): Fully process explicit
101 instantiations.
102 (push_template_decl): Avoid looking at CLASSTYPE fields in
103 FUNCTION_DECLS.
104 (determine_overloaded_function): Remove.
105 (convert_nontype_argument): Change name from
106 convert_nontype_parameter. Use determine_overloaded_function
107 instead of instantiate_type.
108 (mangle_class_name_for_template): Handle type contexts as well as
109 function contexts.
110 (classtype_mangled_name): Likewise.
111 (lookup_template_class): Likewise.
112 (tsubst): Likewise.
113 (more_specialized): Take explict template arguments as a
114 parameter.
115 (most_specialized): Likewise.
116 (get_bindings): Likewise. Check that return types match before
117 proclaiming a function a match.
118 (do_decl_instantiation): Remove code searching for function to
119 instantiate; that is now done in check_explicit_specialization.
120 (add_maybe_template): Pass extra argument to get_bindings.
121 * tree.c (really_overloaded_fn): Use is_overloaded_fn to simplify
122 implementation.
123 * typeck.c (build_component_ref): Check for invalid arguments.
124
343c89cd
JM
125Tue Jan 27 01:44:02 1998 Jason Merrill <jason@yorick.cygnus.com>
126
56841f01
JM
127 * expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that
128 return_target and call_target are equivalent.
129
343c89cd 130 * pt.c (type_unification_real): Just accept function parms that
56841f01 131 don't use any template parms.
343c89cd 132
d3959d60
JM
133Sun Jan 25 03:30:00 1998 Jason Merrill <jason@yorick.cygnus.com>
134
be343556
JM
135 * decl.c (cp_finish_decl): When bailing on a comdat variable, also
136 unset DECL_NOT_REALLY_EXTERN.
137
d3959d60
JM
138 * parse.y (typename_sub*): Fix std::.
139
67c2a928
JM
140Sat Jan 24 12:13:54 1998 Jason Merrill <jason@yorick.cygnus.com>
141
142 * error.c (dump_decl): Fix type default template args.
143 (dump_type): Hand TEMPLATE_DECL off to dump_decl.
144
ab535dac
MK
145Fri Jan 23 18:34:37 1998 Mumit Khan <khan@xraylith.wisc.edu>
146
147 * lex.c (DIR_SEPARATOR): Define to be '/' if not already defined.
148 (file_name_nondirectory): Use.
149
73b0fce8
KL
150Wed Jan 21 10:29:57 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
151
152 * pt.c (coerce_template_parms): Don't access elements of ARGLIST
d1fefbce 153 that are not really present. Substitute default arguments in
73b0fce8
KL
154 template template arguments. Correctly convert TEMPLATE_DECL to
155 TEMPLATE_TEMPLATE_PARM.
156 (comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM
157 are no longer treated specially here.
158 * parse.y (template_template_parm): Fix copy error.
159 * decl.c (grokdeclarator): Warn about missing `typename' for nested
160 type created from template template parameters.
161 * parse.y (bad_parm): Likewise
162
163 * class.c (finish_struct): Handle TEMPLATE_TEMPLATE_PARM.
164 (push_nested_class): Likewise.
165 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): New tree code.
166 * cp-tree.h (DECL_TEMPLATE_TEMPLATE_PARM_P): New macro.
167 (copy_template_template_parm): Declare.
168 * decl.c (arg_looking_for_template): New variable.
169 (lookup_name_real): Handle TEMPLATE_TEMPLATE_PARM.
170 Try to return TEMPLATE_DECL or TEMPLATE_TEMPLATE_PARM
171 node if arg_looking_for_template is nonzero.
172 (pushdecl): Handle TEMPLATE_TEMPLATE_PARM.
173 (grok_op_properties, xref_tag, xref_basetypes): Likewise.
174 (grokdeclarator): Handle TEMPLATE_DECL.
175 * decl2.c (constructor_name_full): Handle TEMPLATE_TEMPLATE_PARM.
176 * error.c (dump_type): Add TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM.
177 (dump_type_prefix, dump_type_suffix) Handle TEMPLATE_TEMPLATE_PARM.
178 (dump_decl): Handle unnamed template type parameters.
179 Handle template template parameters.
180 (dump_function_name): Handle template template parameters.
181 * init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef):
182 Handle TEMPLATE_TEMPLATE_PARM.
183 * method.c (build_template_template_parm_names): New function.
184 (build_template_parm_names): Handle TEMPLATE_DECL.
185 (build_overload_nested_name, build_overload_name):
186 Handle TEMPLATE_TEMPLATE_PARM.
187 * parse.y (maybe_identifier): New nonterminal.
188 (template_type_parm): Use it.
189 (template_template_parm, template_arg1): New nonterminal.
190 (template_parm): Add template_template_parm rules.
191 (template_arg): Set processing_template_arg.
192 (template_arg1): Rules moved from template_arg.
193 (primary, nonnested_type): Set arg_looking_for_template if we are
194 processing template arguments.
195 * pt.c (begin_member_template_processing): Handle TEMPLATE_DECL.
196 (process_template_parm): Handle template template parameters.
197 (coerce_template_parms, comp_template_args): Likewise.
198 (mangle_class_name_for_template, lookup_template_class): Likewise.
199 (uses_template_parms): Handle TEMPLATE_DECL and
200 TEMPLATE_TEMPLATE_PARM.
201 (current_template_args): Handle TEMPLATE_DECL.
202 (tsubst, tsubst_copy, unify): Handle TEMPLATE_TEMPLATE_PARM.
203 * search.c (dfs_walk, dfs_record_inheritance):
204 Handle TEMPLATE_TEMPLATE_PARM.
205 * tree.c (copy_template_template_parm): New function.
206 (mapcar): Handle TEMPLATE_TEMPLATE_PARM.
207 * typeck.c (comptypes): Handle TEMPLATE_TEMPLATE_PARM.
208
75650646
MM
209Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net>
210
211 * decl.c (start_decl): Don't allow duplicate definitions of static
212 data members.
213
214 * call.c (build_user_type_conversion_1): Handle user-defined
215 template conversion operators correctly.
216
217 * decl2.c (build_expr_from_tree): Issue an error message if the
218 object in a COMPONENT_REF is a TEMPLATE_DECL.
219
220 * typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs.
221
222 * class.c (is_local_class): New function.
223 * cp-tree.h (is_local_class): Declare it.
224 (last_tree): Likewise.
225 (begin_tree): Likewise.
226 (end_tree): Likewise.
227 (lookup_template_class): Change prototype.
228 * decl.c (cp_finish_decl): Check for NULL where necesary.
229 Consider FUNCTION_DECLS to declare objects with top-level binding,
230 when calling make_decl_rtl.
231 (grokdeclarator): Give members of local classes internal linkage.
232 (start_function): Remove declaration of last_tree.
233 (finish_function): Set flag_keep_inline_functions around call to
234 rest_of_compilation if we are processing a member function in a
235 local class.
236 (start_method): Call push_template_decl for member functions of
237 local classes in template functions.
238 * decl2.c (import_export_decl): Don't give external linkage to
239 instantiations of templates with internal linkage.
240 * parse.y (last_tree): Remove declaration.
241 (template_type): Pass extra parameter to lookup_template_class.
242 (self_template_type): Likewise.
243 (structsp): Move call to reset_specialization into left_curly.
244 (left_curly): Call reset_specialization, and begin_tree.
245 * pt.c (saved_trees): New variable.
246 (mangle_class_name_for_template): Change prototype. Use
247 additional function context to name local classes in templates
248 correctly.
249 (classtype_mangled_name): Pass the context.
250 (push_template_decl): Handle local classes and templates, and
251 member functions for such classes.
252 (convert_nontype_parameter): Fix handling of pointer-to-member
253 constants.
254 (lookup_template_class): Handle local classes in templates.
255 (tsubst): Likewise. Don't assume that template instantiations
256 have external linkage; pay attention to the template declaration.
257 (mark_decl_instantiated): Likewise.
258 (begin_tree): New function.
259 (end_tree): Likewise.
260
261 * decl.c (xref_basetypes): Don't call complete_type for basetypes
262 that involve template parameters; that can lead to infinite
263 recursion unnecessarily.
264
265 * pt.c (register_specialization): Do not register specializations
266 that aren't ready to be registered yet.
267 (check_explicit_specialization): Handle explicit specialization of
268 constructors and destructors.
269 (build_template_decl): New function.
270 (push_template_delc): Handle out-of-class specializations of
271 member templates.
272
273 * pt.c (check_explicit_specialization): Set up the template
274 information before registering the specialization.
275 (coerce_template_parms): Fix thinko.
276 (tsubst): Handle specializations of member templates correctly.
277
278 * class.c (finish_struct_methods): Remove calls to
279 check_explicit_specialization from here.
280 (finish_struct): And insert them here.
281 * cp-tree.h (perform_qualification_conversions): New function.
282 (perform_array_to_pointer_conversion): Likewise.
283 (begin_explicit_instantiation): Likewise.
284 (end_explicit_instantiation): Likewise.
285 (determine_specialization): Renamed from
286 determine_explicit_specialization.
287 (comp_template_parms): New function.
288 (processing_explicit_instantiation): New variable.
289 * cvt.c (perform_qualification_conversions): New function.
290 (perform_array_to_pointer_conversion): Likewise.
291 * decl.c (duplicate_decls): Don't consider template functions
292 alike unless they have the same parameters. Refine handling of
293 instantiation/specialization mismatches.
294 (start_decl): Don't call pushdecl for template specializations,
295 since they don't affect overloading.
296 (start_function): Likewise
297 (grokfndecl): Call check_explicit_specialization a little later.
298 Don't call duplicate_decls for memberm template specializations.
299 (grokdeclarator): Don't update template_count for classes that are
300 themselves specializations. Remove use of `2' as parameter to
301 grokfndecl since that value isn't used.
302 * lex.c (cons_up_default_function): Save and restore
303 processing_explicit_instantiation around calls to grokfield.
304 * parse.y (finish_member_template_decl): New function.
305 (component_decl_1): Use it.
306 (fn.def2): Likewise.
307 (template_arg_list_opt): New nonterminal.
308 (template_type): Use it.
309 (self_template_type): Likewise.
310 (template_id): Likewise.
311 (object_template_id): Likewise.
312 (notype_template_declarator): Likwise.
313 (begin_explicit_instantiation): Likewise.
314 (end_explicit_instantiation): Likewise.
315 (explicit_instantiation): Use them.
316 * pt.c (coerce_template_parms): Add parameters.
317 (processing_explicit_instantiation): New variable.
318 (convert_nontype_parameter): New function.
319 (determine_overloaded_function): Likewise.
320 (begin_explicit_instantiation): Likewise.
321 (end_explicit_instantiation): Likewise.
322 (retrieve_specialization): Likewise.
323 (register_specialization): Likewise.
324 (processing_explicit_specialization): Removed.
325 (determine_specialization): Handle specializations of member
326 functions of template class instantiations.
327 (check_explicit_specialization): Refine to conform to standard.
328 (comp_template_parms): New function.
329 (coerce_template_parms): Call convert_nontype_parameter.
330 (tsubst): Refine handling of member templates. Use
331 register_specialization.
332 (instantiate_template): Use retrieve_specialization.
333 (do_decl_instantiation): Likewise.
334 (instantiate_decl): Likewise.
335 (type_unification): Improve handling of explict template
336 arguments.
337 * tree.c (mapcar): Return error_mark_node, rather than aborting,
338 on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS.
339 * typeck.c (build_unary_op): Call determine_specialization, rather
340 than determine_explicit_specialization.
341
f62aa8f3
JM
342Mon Jan 19 13:18:51 1998 Jason Merrill <jason@yorick.cygnus.com>
343
344 * cvt.c (build_up_reference): A TARGET_EXPR has side effects.
345
224c649b
BH
346Fri Jan 16 11:40:50 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
347
348 * error.c (dump_decl): For enum tags, output the tag, not its value.
349
1737fe20
BK
3501998-01-13 Brendan Kehoe <brendan@cygnus.com>
351
352 * decl.c (init_decl_processing): Only call init_rtti_processing
353 FLAG_RTTI is set.
354
a0d5fba7
JM
355Mon Jan 12 01:35:18 1998 Jason Merrill <jason@yorick.cygnus.com>
356
357 * init.c (build_new_1): Split out from build_new.
358 (build_new): Just return a NEW_EXPR.
359 * expr.c (cplus_expand_expr): Handle NEW_EXPR.
360
361 * decl2.c (get_temp_regvar): Tweak.
362
363 * cp-tree.h (TREE_CALLS_NEW): Comment out.
364 * class.c (resolves_to_fixed_type_p): Remove use.
365 * method.c (build_opfncall): Likewise.
366 * call.c (build_new_op): Likewise.
367
f4a23343
JM
368Wed Jan 7 23:47:13 1998 Jason Merrill <jason@yorick.cygnus.com>
369
370 * exception.cc (__eh_alloc, __eh_free): New fns.
371 (__cp_push_exception, __cp_pop_exception): Use them.
372 (__uncatch_exception): Call terminate here if no exception.
373 * except.c (build_terminate_handler): New fn.
374 (expand_start_catch_block): Use it.
375 (expand_exception_blocks): Likewise.
376 (alloc_eh_object): New fn.
377 (expand_throw): Use it. Protect exception init with terminate.
378 * typeck.c (build_modify_expr): Remove code that ignores trivial
379 methods.
380
c85f7c16
JL
381Mon Dec 22 17:46:17 1997 Mark Mitchell <mmitchell@usa.net>
382
383 * method.c (build_overload_name): Fix mangling for __null.
384
7f85441b
KG
385Mon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
386
387 * call.c (add_builtin_candidate): Add default case in enumeration
388 switch.
389 (build_new_op): Likewise.
390 (convert_like): Likewise.
391 * cvt.c (build_expr_type_conversion): Likewise.
392 * tree.c (real_lvalue_p): Likewise.
393 (lvalue_p): Likewise.
394 (cp_tree_equal): Likewise.
395 * typeck.c (comptypes): Likewise.
396 (build_component_ref): Likewise.
397 (build_function_call_real): Likewise.
398 (build_binary_op_nodefault): Likewise.
399 (build_unary_op): Likewise.
400 (build_modify_expr): Likewise.
401 * typeck2.c (initializer_constant_valid_p): Likewise.
402
f9fc59e8
NC
403Sun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com>
404
405 * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas.
406
864b83b9
MM
407Thu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net>
408
6ba4439c
MM
409 * pt.c (coerce_template_parms): Make sure to digest_init if
410 possible.
411
864b83b9
MM
412 * decl.c (duplicate_decls): Make the newdecl virtual if the
413 olddecl was, just as is done with other attributes of olddecl.
414
02531345
JM
415Thu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com>
416
4cac9464
JM
417 * typeck.c (unary_complex_lvalue): Ignore op0 when taking the
418 address of an OFFSET_REF.
419
02531345
JM
420 * cp-tree.def: Add AGGR_INIT_EXPR.
421 * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with
422 AGGR_INIT_EXPR where appropriate.
423 * expr.c (cplus_expand_expr): Likewise. Simplify.
424
425 * decl2.c (finish_file): Remove call to register_exception_table.
426
4f4da4e9
BK
427Wed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
428
429 * pt.c (instantiate_class_template): Don't do injection when
430 processing_template_decl is true, as pollutes current_binding_level
431 for base classes.
432
840b09b4
PS
433Wed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de>
434
435 * pt.c (maybe_fold_nontype_arg): Add prototype.
436
6748b643
JM
437Tue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com>
438
439 * tree.c (mapcar): Handle TRY_CATCH_EXPR et al.
440 * error.c (dump_expr): Likewise.
441
4bfc4dda
JM
442Mon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com>
443
444 * typeck.c (build_function_call_real): Remove "inline called before
445 definition" pedwarn.
446
447 * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg.
448
5c0ad672
JM
449Sun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com>
450
451 * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
452
453 * pt.c (type_unification_real): Change __null to type void* with
454 a warning.
455
3042d5be
MM
456Sun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net>
457
458 * call.c (implicit_conversion): Don't call
459 build_user_type_conversion_1 with a NULL expr, since it will
460 crash.
461
462 * pt.c (unify): Don't try to unify array bounds if either array is
463 unbounded.
464
9664b89e
JM
465Fri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com>
466
467 * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at):
468 Replace extern decls with casts.
469
470 * decl.c (expand_start_early_try_stmts): Don't mess with a sequence.
471 Update last_parm_cleanup_insn.
472 (store_after_parms): Remove.
473 * cp-tree.h: Adjust.
474
ab23f787
JM
475Thu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com>
476
477 * decl2.c (comdat_linkage): Also set DECL_COMDAT.
478 (finish_file): Check DECL_COMDAT instead of weak|one_only.
479 (import_export_vtable): Use make_decl_one_only instead of
480 comdat_linkage for win32 tweak.
481 (import_export_decl): Likewise.
482 * pt.c (mark_decl_instantiated): Likewise.
483
484 * decl2.c (finish_file): Lose handling of templates in pending_statics.
485
0776059e
JM
486Thu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com>
487
488 * decl2.c (finish_file): Lose call to expand_builtin_throw.
489 * except.c (expand_builtin_throw): Remove.
490 * cp-tree.h: Remove ptr_ptr_type_node.
491 * decl.c: Likewise.
492
154bba13
TT
493Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com>
494
495 * decl.c (ptr_ptr_type_node): Define.
496 (init_decl_processing): Initialize it.
497 * cp-tree.h: Declare it.
498 * exception.cc (__cp_exception_info): Use __get_eh_info.
499 (__cp_push_exception): Ditto.
500 (__cp_pop_exception): Ditto.
501
502 From Scott Snyder <snyder@d0sgif.fnal.gov>:
503 * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of
504 saved_pc.
505 (init_exception_processing): Removed saved_pc initialization.
506
c4ae3f91
JM
507Wed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com>
508
509 * pt.c (instantiate_decl): Defer all templates but inline functions.
510
67437d5b
JM
511Mon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com>
512
eb291d05
JM
513 * init.c (expand_vec_init): Don't fold a list of parameters.
514
67437d5b
JM
515 * decl.c (copy_args_p): Handle copy elision for types with virtual
516 bases.
517 * call.c (build_over_call): Likewise.
518
4de02abd
MM
519Sun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net>
520
521 * pt.c (lookup_template_function): Copy the template arguments,
522 not just the list containing them, to the permanent obstack.
523
0fb9f1c3
JM
524Sun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com>
525
2b8b44d8
JM
526 * except.c (expand_start_catch_block): suspend_momentary for the
527 terminate handler.
528
0fb9f1c3
JM
529 * error.c (dump_decl): Handle LOOKUP_EXPR.
530
531Sun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net>
532
533 * rtti.c (build_dynamic_cast): Copy the cast-to type to the
534 permanent obstack if we are processing a template decl.
535 * typeck.c (build_static_cast): Likewise.
536 (build_const_cast): Likewise.
537 (build_reinterpret_cast): Likewise.
538
539 * pt.c (coerce_template_parms): Coerce some expressions, even
540 when processing_template_decl.
541
79a7c7fa
JM
542Sun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
543
544 * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric
545 handling of pointer difference expressions.
546
547 * typeck.c (comp_target_types): Comparison of function/method types
548 is independent of nptrs.
549
550Sun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net>
551
552 * pt.c (tsubst): Avoid creating pointer to reference and
553 reference to reference types.
554
46422d6c
JM
555Sat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com>
556
557 * parse.y (do_id): New nonterminal.
558 (template_id): Use it.
559
7211716d
JM
560Fri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com>
561
562 * parse.y (template_id): do_identifier for PFUNCNAMEs, too.
563 * spew.c (yylex): Don't do_identifier here.
564 * decl2.c (build_expr_from_tree): Revert last change.
565
566 * decl2.c (build_expr_from_tree): Expand the name for a method call.
567 * parse.y (object_template_id): Don't try to take the DECL_NAME.
568
e701eb4d
JM
569Wed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com>
570
2face519
JM
571 * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for
572 alloc_expr.
573 * call.c (build_op_delete_call): Adjust.
574
e701eb4d
JM
575 * except.c (expand_end_catch_block): Lose rethrow region.
576 (expand_start_catch_block): Likewise.
577 (expand_end_catch_block): Don't expand_leftover_cleanups.
578
53d4d75f
BK
579Wed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
580
581 * pt.c (tsubst): Remove tree_cons call (places redundant info into
582 DECL_TEMPLATE_INSTANTIATION).
583
aa36c081
JM
584Wed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com>
585
586 * tree.c (is_overloaded_fn): Handle getting a fn template.
587 (really_overloaded_fn): Likewise.
588 * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better.
589 * pt.c (check_explicit_specialization): Tweak.
590 (determine_explicit_specialization): Tweak.
591
592 * tree.c, cp-tree.h (get_target_expr): New fn.
593
956d6950
JL
594Wed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com>
595
596 * pt.c (check_explicit_specialization): Fix misspelling in
597 diagnostic: `preceeded'.
598 * typeck.c (get_delta_difference): Fix misspelling in diagnostic:
599 `conversiona'.
600
aa36c081
JM
6011997-12-02 Mark Mitchell <mmitchell@usa.net>
602
603 * pt.c (determine_explicit_specialization): Avoid an internal
604 error for bad specializations.
605
606 * method.c (build_overload_value): Handle SCOPE_REF.
607
de35891e
JM
608Tue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com>
609
610 * class.c (prepare_fresh_vtable): Enable even more complex MI
611 vtable names.
612
613Tue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com>
614
615 * exception.cc (__check_eh_spec): Optimize a bit.
616
617 * exception.cc (__cp_pop_exception): Lose handler arg.
618 * except.c (do_pop_exception): Likewise.
619 (push_eh_cleanup): Let the cleanup mechanism supply the handler.
620 (expand_end_catch_block): Likewise.
621
74cd8397
JM
622Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com>
623
624 * pt.c (check_explicit_specialization): Complain about using a
625 template-id for a non-specialization.
626
956d6950
JL
627Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com>
628
629 * repo.c: Prototype rindex only if needed.
630 * xref.c: Likewise.
631
74cd8397
JM
632Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
633
634 * error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
635
aa598818
JM
636Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com>
637
c2840dfb
JM
638 * typeck.c (build_const_cast): Handle references here instead of
639 handing off to convert_to_reference.
640
fb98cff6
JM
641 * except.c: Lose Unexpected, SetTerminate, SetUnexpected,
642 TerminateFunctionCall.
643 (init_exception_processing): Likewise. Terminate et al are now
644 the fns, not ADDR_EXPRs.
645 (various): Lose redundant assemble_external calls.
646 (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/.
647
77be6f82
JM
648 * cp-tree.h (struct lang_decl_flags): Add comdat.
649 (DECL_COMDAT): New macro.
650 * decl.c (duplicate_decls): Propagate it.
651 (cp_finish_decl): Handle it.
652 * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.
653
aa598818
JM
654 * class.c: Remove static pending_hard_virtuals.
655 (add_virtual_function): Take pointers to pending_virtuals
656 and pending_hard_virtuals.
657 (finish_struct_1): Pass them. Declare pending_hard_virtuals.
658
e872bb7a
JM
659Wed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com>
660
eb773359
JM
661 * decl2.c (import_export_vtable): If we support one_only but not
662 weak symbols, mark instantiated template vtables one_only.
663 (import_export_decl): Likewise for tinfo functions.
664 (finish_vtable_vardecl): Also write out vtables from explicitly
665 instantiated template classes.
666 * pt.c (mark_class_instantiated): Revert last change.
667
e872bb7a
JM
668 * except.c (expand_throw): Call mark_used on the destructor.
669
956d6950
JL
670Wed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com)
671
672 * lex.c (lang_init): Enable flag_exceptions by default if no
673 command line switch was specified.
674
5ad5a526
MM
6751997-11-26 Mark Mitchell <mmitchell@usa.net>
676
677 * pt.c (unify): Handle `void' template parameters in
678 specializations.
679
92f5c135
JM
680Wed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com>
681
328d03d7
JM
682 * rtti.c (build_dynamic_cast): Handle template case here.
683 (build_dynamic_cast_1): Not here.
684
19754d4c
JM
685 * typeck2.c (digest_init): Make copies where appropriate.
686
687 * decl2.c (delete_sanity): resolve_offset_ref.
688
92f5c135
JM
689 * except.c (expand_start_catch_block): Fix catching a reference
690 to pointer.
691
692Tue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com>
693
694 * init.c (build_new): Copy size to the saveable obstack.
695
696 * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the
697 TRY_CATCH_EXPR for now.
698
20b90169
JM
699Mon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com>
700
9b493293
JM
701 * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL
702 has DECL_LANG_SPECIFIC.
703
20b90169
JM
704 * exception.cc (struct cp_eh_info): Add handlers field.
705 (__cp_push_exception): Initialize it.
706 (__cp_pop_exception): Decrement it. Don't pop unless it's 0.
707 (__throw_bad_exception): Remove.
708 * except.c (call_eh_info): Add handlers field.
709 (get_eh_handlers): New fn.
710 (push_eh_cleanup): Increment handlers.
711
25d5eb3f
JM
712Fri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com>
713
6c20b7e9
JM
714 * except.c (expand_start_eh_spec): Use the try/catch code.
715 (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of
716 doing everything inline.
717 (init_exception_processing): throw_type_match now takes
718 const void pointers.
719 * exception.cc (__check_eh_spec): New fn.
720 * inc/exception: Neither terminate nor unexpected return.
721 * decl.c: Make const_ptr_type_node public.
722 * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly.
723
25d5eb3f
JM
724 * except.c (expand_start_catch_block): We only need the rethrow
725 region for non-sjlj exceptions.
726 (expand_end_catch_block): Likewise. Use outer_context_label_stack.
727
047f64a3
JM
728Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com>
729
ced78d8b
JM
730 * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
731 (various.o): Likewise.
732 * inc/new: Add placement deletes. Add throw specs for default new.
733 * new.cc (set_new_handler): Move here from libgcc2.
734 * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
735 (new): Move from libgcc2. Throw bad_alloc.
736 * new2.cc: Move the rest of the op news and op deletes from libgcc2.
737 * decl.c (init_decl_processing): Update exception specs on new and
738 delete.
739
047f64a3
JM
740 * method.c (build_decl_overload_real): Don't mess with global
741 placement delete.
742
743 * init.c (build_new): Check for null throw spec, not nothrow_t.
744
745 * decl.c (duplicate_decls): Don't complain about different exceptions
746 from an internal declaration.
747
748 * call.c (build_op_delete_call): Fix check for member fns again.
749
750 * decl2.c (import_export_decl): Interface hackery affects
751 virtual synthesized methods.
752
5951f637
JM
753Wed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com>
754
f2d773a2
JM
755 * decl.c (start_decl): Don't just complain about a mismatched
756 scope, fix it.
757
5951f637
JM
758 * decl.c (make_implicit_typename): Handle case where t is not
759 actually from context.
760 * tree.c (get_type_decl): Lose identifier case.
761 * spew.c (yylex): Lose useless call to identifer_typedecl_value.
762 * parse.y (nonnested_type): Just use lookup_name.
763 (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.
764
765Wed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com>
766
767 * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case
768 T was built in C language context (for example, by
769 output_func_start_profiler).
770
bd2a82a6
JM
771Wed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com>
772
773 * decl.c (make_implicit_typename): New fn.
774 (lookup_name_real): Use it. Use current_class_type as the context.
775
8baa713c
BH
776Mon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr>
777
778 * pt.c (do_poplevel): Don't prohibit jumps into this contour.
779
37130ac3
JM
780Mon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com>
781
782 * friend.c (do_friend): Warn about non-template friends in templates.
783
784 * call.c (build_op_delete_call): Fix handling of inherited delete.
785
786 * search.c (dfs_record_inheritance): Ignore template type parms.
787
da4768fe
JM
788Sat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com>
789
790 * call.c (build_new_op): Fix copy error.
791 (build_op_new_call): New fn.
792 (build_op_delete_call): New fn.
793 * cp-tree.h: Declare them.
794 * init.c (build_new): Use them. Support placement delete.
795 (build_x_delete): Use build_op_delete_call.
796 (build_delete): Likewise.
797 * decl2.c (delete_sanity): Likewise.
798 (coerce_delete_type): Don't complain about placement delete.
799
2bb14213
JM
800Thu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com>
801
9babbf20
JM
802 * call.c (build_new_function_call): Remove unused 'obj' parm.
803 * cp-tree.h, typeck.c: Adjust.
804
2bb14213
JM
805 * init.c (build_new): Make the cleanup last longer.
806 (expand_vec_init): Call do_pending_stack_adjust.
807
a7d87521
JM
808Wed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com>
809
810 * pt.c (do_type_instantiation): Fix typo.
811 (mark_class_instantiated): If we support one_only but not weak
812 symbols, don't mark this as known.
813
2bd3bc6f 814 * init.c (build_new): Handle vec delete in EH cleanup.
a7d87521 815
6d2b1bee
BK
816Wed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
817
818 * call.c (build_method_call): Call complete_type before checking
819 for destructor.
820
69f9c1f6
JW
821Sun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com)
822
823 * decl.c (add_block_current_level): Delete.
824 * init.c (build_vec_delete_1): Delete build_block and
825 add_block_current_level calls.
826
1f109f0f
JM
827Wed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com>
828
829 * init.c (build_new): Handle freeing allocated memory when the
830 constructor throws.
831
832 * call.c (build_new_method_call): Fix flags arg.
833
834 * pt.c (do_type_instantiation): Don't try to instantiate
835 member templates.
836 (mark_decl_instantiated): If we support one_only but not
837 weak symbols, mark this one_only.
838 * decl2.c (import_export_vtable): Don't defer handling of vtables
839 if MULTIPLE_SYMBOL_SPACES.
840
0b3ca5ee
JM
841Tue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com>
842
843 * except.c (expand_end_catch_block): Lose call to __sjpopnthrow.
844
c0700ea5
JM
845Tue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com>
846
847 * except.c (do_pop_exception): Return a value.
848
00d3396f
JM
849Mon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com>
850
851 * call.c (build_new_method_call): Handle getting a
852 TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field
853 if we got template parms.
854 * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
855 not just the args.
856 * decl2.c (build_expr_from_tree): Tweak last change.
857 * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
858 (maybe_fold_nontype_arg): Split out from tsubst_copy.
859 * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.
860
861Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
862
863 * pt.c (tsubst_copy): Handle explicit template arguments in
864 function calls.
865 * typeck.c (build_x_function_call): Likewise.
866 * decl2.c (build_expr_from_tree): Lookup function name if it
867 hasn't been done.
868
869 * pt.c (tsubst): Instantiate template functions properly when
870 template parameter does not appear in function arguments and return
871 type.
872 (comp_template_args): Handle member templates required by tsubst.
873
343fdf03
JM
874Mon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com>
875
876 * decl.c (grokdeclarator): Tweak conditions for pedwarn in
877 previous change.
878
879Mon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
880
881 * pt.c (coerce_template_parms): Tweak error message.
882
883 * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
884 return type defaults to `int', even if there are storage-class
885 specifiers.
886
c7ae64f2
JM
887Mon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com>
888
889 Complete nested exception support.
890 * except.c (do_pop_exception): Split out...
891 (push_eh_cleanup): From here. Handle the EH region by hand.
892 (expand_start_catch_block): Add a new level for the catch parm.
893 Move the rethrow region outside the two cleanup regions.
894 Protect the initializer for the catch parm with terminate.
895 (expand_end_catch_block): Likewise. End the region for the eh_cleanup.
896 * exception.cc (__cp_pop_exception): Now takes two parms. Handle
897 popping off the middle of the stack.
898 * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
899 WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
900 (build_cplus_new): Only wrap CALL_EXPRs.
901 * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
902 the constructor call.
903
904Sun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
905
906 * Make-lang.in (c++.distdir): Make inc subdirectory.
907
bd871063
JM
908Fri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com>
909
910 * decl2.c (finish_file): Put back some code.
911
4d6efa25
JM
912Thu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com>
913
914 * decl2.c (finish_file): Remove redundant code.
915 * method.c (emit_thunk): Don't let the backend defer generic thunks.
916
95e8dcba
JM
917Wed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com>
918
919 * except.c (call_eh_info): Split out...
920 (push_eh_info): From here.
921 (expand_builtin_throw): Use it.
922 (expand_start_catch_block): Move region start back.
923
30c317f5
DE
924Tue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com>
925
926 * lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
927 (real_yylex): Record wide strings using target endianness, not host.
928
a8a63732
BK
9291997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com>
930
931 * repo.c (rindex): Add decl unconditionally.
932 (get_base_filename, open_repo_file): Don't cast rindex.
933 * xref.c (rindex): Add decl unconditionally.
934 (index): Remove unused decl.
935 (open_xref_file): Don't cast rindex.
936
b9ddcfac
JM
937Sun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com>
938
939 * class.c (build_vbase_path): Propagate the result type properly.
940
5a0fa1de
BK
9411997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com>
942
55e0182b
BK
943 * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace
944 remaining use of saved_throw_type with a call to get_eh_type.
945
9461997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com>
947
b2bb2710
BK
948 * lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
949 (file_name_nondirectory): New function, doing the same as the macro.
950 (set_typedecl_interface_info): Use it instead of the macro.
951 (check_newline): Likewise.
952 (handle_cp_pragma): Likewise.
953
954 * repo.c (get_base_filename): Cast result of rindex to char*.
955 (open_repo_file): Likewise.
956 * xref.c (open_xref_file): Likewise.
957 * error.c (dump_char): Make its arg int, not char.
958
cf9d67e3
BK
959 * except.c (push_eh_info): Pass the number of fields - 1 down, not
960 the exact number of fields.
961
6874c264
JM
962Fri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com>
963
964 Support for nested exceptions.
965 * tinfo2.cc (__is_pointer): New fn.
966 * exception.cc (struct cp_eh_info): Define.
967 (__cp_exception_info, __uncatch_exception): New fns.
968 (__cp_push_exception, __cp_pop_exception): New fns.
969 * except.c: Lose saved_throw_{type,value,cleanup,in_catch}.
970 Lose empty_fndecl.
971 (init_exception_processing): Likewise. __eh_pc is now external.
972 (push_eh_info): New fn.
973 (get_eh_{info,value,type,caught}): New fns.
974 (push_eh_cleanup): Just call __cp_pop_exception.
975 (expand_start_catch_block): Use push_eh_info. Start the eh region
976 sooner.
977 (expand_end_eh_spec): Use push_eh_info.
978 (expand_throw): Call __cp_push_exception to set up the exception info.
979 Just pass the destructor or 0 as the cleanup. Call __uncatch_exception
980 when we rethrow.
981 (expand_builtin_throw): Don't refer to empty_fndecl.
982
7b4f18a3
JM
983Thu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com>
984
985 * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
986
4966381a
BK
9871997-10-22 Brendan Kehoe <brendan@cygnus.com>
988
989 * method.c (build_template_parm_names, build_decl_overload_real):
990 Add static to definitions.
991 * pt.c (add_to_template_args, note_template_header,
992 processing_explicit_specialization, type_unification_real): Likewise.
993 ({determine,check}_explicit_specialization): Use a single string for
994 error messages.
995
92b96838
JM
996Mon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com>
997
998 * except.c (expand_exception_blocks): Call do_pending_stack_adust.
999 (expand_end_catch_block): Likewise.
1000 (expand_end_eh_spec): Likewise.
1001
92eca640
MM
1002Mon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net>
1003
1004 * decl.c (duplicate_decls): Handle template specializations
1005 correctly.
1006 * error.c (dump_function_name): Fix printing of specializations of
1007 member functions that are not member templates.
1008 * cp-tree.h (processing_specialization): Make global.
1009 * pt.c (processing_specialization): Likewise.
1010 * lex.c (cons_up_default_function): Save and restore
1011 processing_specialization to avoid confusion.
1012
a6967cc0
JM
1013Mon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com>
1014
1015 * decl.c (init_decl_processing): Give null_node unknown* type.
1016 * typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
1017 (common_type): Likewise.
1018 * error.c (args_as_string): Recognize null_node.
e9a25f70
JL
1019
1020Sun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1021
1022 * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR.
1023 (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR.
1024
1025 * decl.c (init_decl_processing): Call using_eh_for_cleanups.
1026
1027 * Make-lang.in (g++): Include prefix.o.
a6967cc0 1028
bdd7e652
JG
1029Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com>
1030
1031 * pt.c (determine_explicit_specialization): Initialize "dummy"
1032 to keep Purify quiet.
1033
2636fde4
JM
1034Thu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com>
1035
1036 * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
1037 (build_overload_int): Not here.
1038
1039Wed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com>
1040
1041 * class.c (build_type_pathname): Remove.
1042 (prepare_fresh_vtable): Fix problem with complex MI vtable names.
1043
32066e1a
BK
10441997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com>
1045
1046 * parse.y (unary_expr): Give a pedwarn if someone tries to use the
1047 &&label GNU extension.
1048
1f06b267
MM
1049Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net>
1050
1051 * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
1052 so as to avoid incorrect manglings.
1053 * method.c (build_decl_overload_real): Don't mangle return types
1054 for constructors.
1055
e66d884e
JM
1056Tue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1057
1058 * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
1059 scratch_tree_cons): Define as macros for now.
1060 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
1061 lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
1062 typeck2.c: Use them and the expression_obstack variants.
dae1d6f6 1063
e66d884e 1064Mon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
dae1d6f6 1065
e66d884e
JM
1066 * decl.c (store_return_init): Allow classes with explicit ctors to
1067 be used with the named return values extension.
dae1d6f6 1068
7ac63bca
JM
1069Fri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com>
1070
1071 * pt.c (instantiate_decl): Fix previous change.
1072
fee23f54
JM
1073Thu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com>
1074
1075 * pt.c (tsubst): Fix thinko.
1076 (instantiate_decl): Really use the original template.
1077
1078 * call.c (build_new_method_call): Use simple constructor_name for
1079 error messages.
1080
c8907853
JL
1081Wed Oct 8 22:44:42 1997 Jeffrey A Law (law@cygnus.com)
1082
1083 * method.c (build_underscore_int): Don't use ANSI specific
1084 features.
1085
3bd1e206
JM
1086Wed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com>
1087
1088 * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
1089 for our key method; it might have been inlined by -O3.
1090
ffb690bd
JM
1091Tue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net>
1092
1093 * decl.c (make_typename_type): Do not try to call lookup_field for
1094 non-aggregate types.
1095
1096Tue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com>
1097
1098 * typeck.c (build_reinterpret_cast): Tweak.
1099
1100Tue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
1101
1102 * typeck.c (build_reinterpret_cast): converting a void pointer
1103 to function pointer with a reinterpret_cast produces a warning
1104 if -pedantic is issued
1105
1106Tue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1107
1108 * typeck.c (c_expand_return): Don't warn about returning a
1109 reference-type variable as a reference.
1110
a6f02587
JM
1111Tue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com>
1112
1113 * method.c (build_static_name): Fix typo.
1114
11151997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com>
1116
1117 * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
1118 OLDDECL before we try to do DECL_USE_TEMPLATE.
1119
c32381b1
JM
1120Tue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1121
1122 * decl.c (duplicate_decls): Don't warn about template instances.
1123
1124 * typeck.c (mark_addressable): Lose ancient code that unsets
1125 DECL_EXTERNAL.
1126
1127 * pt.c (do_decl_instantiation): Lose support for instantiating
1128 non-templates.
1129
1130 * call.c (build_new_function_call): Fix handling of null explicit
1131 template args.
1132 (build_new_method_call): Likewise.
1133
1134Mon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net>
1135
1136 * method.c (build_underscore_int): Fix typo.
1137
3f2270ec
BK
11381997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com>
1139
1140 * tree.c (print_lang_statistics): #if 0 call to
1141 print_inline_obstack_statistics until its definition is checked in.
1142
27bb8339
JM
1143Mon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com>
1144
c32381b1
JM
1145 * decl2.c (finish_file): Move dump_tree_statistics to end.
1146
27bb8339
JM
1147 * pt.c (instantiate_decl): Look for the original template.
1148 (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
1149 of member templates.
1150
5408ce78
JM
1151Wed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1152
1153 * Makefile.in (g++FAQ.*): New rules.
1154 (CONFLICTS): Update.
1155 * g++FAQ.texi: Moved from libg++.
1156
1157 * parse.y (PFUNCNAME): Only specify the type once.
1158
a3f44a13
BK
11591997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com>
1160
1161 * lex.c (real_yylex): Clean up the code to fully behave the way
1162 the c-lex.c parser does for complex and real numbers.
1163
5a45bc3e
JM
1164Tue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1165
1166 * method.c (build_decl_overload_real): Reformat.
1167
b7067a12
JM
1168Tue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com>
1169
1170 * method.c (synthesize_method): If at_eof, determine our linkage.
1171
4f6140be
PE
11721997-09-29 Paul Eggert <eggert@twinsun.com>
1173
1174 * lex.c (real_yylex): Treat `$' just like `_', except issue a
1175 diagnostic if !dollars_in_ident or if pedantic.
1176
1177 * lang-specs.h (@c++): -ansi no longer implies -$.
1178
1179 * decl2.c (lang_decode_option):
1180 -traditional and -ansi now do not mess with
1181 dollars_in_ident.
1182
9f617717
L
1183Mon Sep 29 19:57:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1184
1185 * Makefile.in (parse.o, decl.o): Also depend on
1186 $(srcdir)/../except.h $(srcdir)/../output.h.
1187 (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
1188 $(srcdir)/../except.h $(srcdir)/../output.h.
1189 (typeck.o, init.o): Also depend on $(srcdir)/../expr.h
1190 ../insn-codes.h.
1191
1192 * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.
1193
1194 * expr.c (cplus_expand_expr): Make it static.
1195
1196 * decl2.c, init.c, typeck.c: Include "expr.h".
1197 (expand_expr): Use proper values when calling the function.
1198
0c4b14c4
JM
1199Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
1200
1201 * lang-options.h: new -Wold-style-cast flag.
1202 * cp-tree.h (warn_old_style_cast): new variable.
1203 * decl2.c (warn_old_style_cast): ditto.
1204 (lang_decode_option): support -Wold-style-cast.
1205 (reparse_absdcl_as_casts): produce old-style-cast warning.
1206
1207Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1208
1209 * decl.c (cp_finish_decl): Allow expand_aggr_init to set
1210 TREE_USED, reset value based on already_used.
1211
1212 * init.c (expand_member_init): Revert change.
1213
893de33c
JM
1214Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com>
1215
1216 * cp-tree.h, decl.c, decl2.c, pt.c:
1217 Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public.
1218
1219 * decl2.c (lang_decode_option): Add missing ;.
1220
386b8a85
JM
1221Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com>
1222
1223 * friend.c (do_friend): Disable injection for all template-derived
1224 decls.
1225 * decl2.c (lang_decode_option): Handle -fguiding-decls.
1226 * parse.y (notype_template_declarator): New nonterminal.
1227 (direct_notype_declarator): Use it.
1228 (complex_direct_notype_declarator): Likewise.
1229 (object_template_id): Accept any kind of identifier after TEMPLATE.
1230 (notype_qualified_id): Don't add template declarators here.
1231
1232Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net>
1233
1234 * call.c (add_template_candidate): Add explicit_targs parameter.
1235 (build_scoped_method_call): Use it.
1236 (build_overload_call_real): Likewise.
1237 (build_user_type_conversion_1): Likewise.
1238 (build_new_function_call): Likewise.
1239 (build_object_call): Likewise.
1240 (build_new_op): Likewise.
1241 (build_new_method_call): Likewise.
1242 (build_new_function_call): Handle TEMPLATE_ID_EXPR.
1243 (build_new_method_call): Likewise.
1244
1245 * class.c (finish_struct_methods): Add specialization pass to
1246 determine which methods were specializing which other methods.
1247 (instantiate_type): Handle TEMPLATE_ID_EXPR.
1248
1249 * cp-tree.def (TEMPLATE_ID_EXPR): New tree code.
1250
1251 * cp-tree.h (name_mangling_version): New variable.
1252 (flag_guiding_decls): Likewise.
1253 (build_template_decl_overload): New function.
1254 (begin_specialization): Likewise.
1255 (reset_specialization): Likewise.
1256 (end_specialization): Likewise.
1257 (determine_explicit_specialization): Likewise.
1258 (check_explicit_specialization): Likewise.
1259 (lookup_template_function): Likewise.
1260 (fn_type_unification): Add explicit_targs parameter.
1261 (type_unification): Likewise.
1262
1263 * decl.c (duplicate_decls): Add smarts for explicit
1264 specializations.
1265 (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
1266 specializations.
1267 (grokfndecl): Call check_explicit_specialization.
1268
1269 * decl2.c (lang_decode_option): Handle -fname-mangling-version.
1270 (build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
1271 (check_classfn): Handle specializations.
1272
1273 * error.c (dump_function_name): Print specialization arguments.
1274
1275 * friend.c (do_friend): Don't call pushdecl for template
1276 instantiations.
1277
1278 * init.c (build_member_call): Handle TEMPLATE_ID_EXPR.
1279
1280 * lang-options.h: Add -fname-mangling-version, -fguiding-decls,
1281 and -fno-guiding-decls.
1282
1283 * lex.c (identifier_type): Return PFUNCNAME for template function
1284 names.
1285
1286 * method.c (build_decl_overload_real): New function.
1287 (build_template_parm_names): New function.
1288 (build_overload_identifier): Use it.
1289 (build_underscore_int): New function.
1290 (build_overload_int): Use it. Add levels for template
1291 parameters.
1292 (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs.
1293 (build_overload_nested_names): Handle template type parameters.
1294 (build_template_decl_overload): New function.
1295
1296 * parse.y (YYSTYPE): New ntype member.
1297 (nested_name_specifier): Use it.
1298 (nested_name_specifier_1): Likewise.
1299 (PFUNCNAME): New token.
1300 (template_id, object_template_id): New non-terminals.
1301 (template_parm_list): Note specializations.
1302 (template_def): Likewise.
1303 (structsp): Likewise.
1304 (fn.def2): Handle member template specializations.
1305 (component_decl_1): Likewise.
1306 (direct_notype_declarator): Handle template-ids.
1307 (component_decl_1): Likewise.
1308 (direct_notype_declarator): Handle template-ids.
1309 (primary): Handle TEMPLATE_ID_EXPR, and template-ids.
1310
1311 * pt.c (processing_specializations): New variable.
1312 (template_header_count): Likewise.
1313 (type_unification_real): New function.
1314 (processing_explicit_specialization): Likewise.
1315 (note_template_header): Likewise.
1316 (is_member_template): Handle specializations.
1317 (end_template_decl): Call reset_specialization.
1318 (push_template_decl): Handle member template specializations.
1319 (tsubst): Likewise.
1320 (tsubst_copy): Handle TEMPLATE_ID_EXPR.
1321 (instantiate_template): Handle specializations.
1322 (instantiate_decl): Likewise.
1323 (fn_type_unification): Handle explicit_targs.
1324 (type_unification): Likewise. Allow incomplete unification
1325 without an error message, if allow_incomplete.
1326 (get_bindings): Use new calling sequence for fn_type_unification.
1327
1328 * spew.c (yylex): Handle PFUNCNAME.
1329
1330 * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
1331 (really_overloaded_fn): Likewise.
1332 (get_first_fn): Handle function templates.
1333
1334 * typeck.c (build_x_function_call): Use really_overloaded_fn.
1335 Handle TEMPLATE_ID_EXPR.
1336 (build_x_unary_op): Likewise.
1337 (build_unary_op): Likewise.
1338 (mark_addressable): Templates whose address is taken are marked
1339 as used.
1340
b9620d0e
AS
13411997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1342
1343 * decl.c (init_decl_processing): Declare __builtin_constant_p as
1344 accepting any kind of type, not only int.
1345
405a745b
JM
1346Fri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com>
1347
1052cd65
JM
1348 * search.c (get_matching_virtual): Notice virtual bases when sorrying
1349 about covariant returns.
1350
405a745b
JM
1351 * parse.y (member_init): Also imply typename here. Remove ancient
1352 extension for initializing base members.
1353
653cc74a
JM
1354Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1355
1356 Handle multi-level typenames and implicit typename in base list.
1357 * parse.y (typename_sub{,[0-2]}): New rules.
1358 (structsp, rule TYPENAME_KEYWORD): Use typename_sub.
1359 (nonnested_type): New rule.
1360 (complete_type_name): Use it.
1361 (base_class.1): Use typename_sub and nonnested_type.
1362 (nested_name_specifier): Don't elide std:: here.
1363 * decl.c (make_typename_type): Handle getting a type for NAME.
1364 (lookup_name_real): Turn std:: into :: here.
1365
1366 Rvalue conversions were removed in London.
1367 * call.c (is_subseq): Don't consider lvalue transformations.
1368 (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
1369 (joust): Reenable ?: kludge.
1370
59f1f2c4
BK
13711997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com>
1372
1373 * decl.c (start_function): Up warning of no return type to be a
1374 pedwarn.
1375
249555b0
BK
1376Mon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1377
1378 * init.c (expand_member_init): Don't set TREE_USED.
1379 * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED
1380 set,don't clear TREE_USED wholesale.
1381
b82b76c6
JM
1382Sat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com>
1383
1384 * call.c (build_over_call): Do require_complete_type before
1385 build_cplus_new.
1386
238109cd
JM
1387Thu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com>
1388
1389 * search.c (lookup_field): Call complete_type in all cases.
1390
1391 * decl.c (finish_function): Just warn about flowing off the end.
1392
66f2e88d
JM
1393Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1394
1395 * decl.c (grokparms): Don't bash a permanent list node if we're
1396 in a function.
1397
8552680f
BK
13981997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com>
1399
1400 * Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
1401
5c825fc2
JM
1402Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com>
1403
d5467e20
JM
1404 * call.c (build_new_op): Give better error for syntactically
1405 correct, but semantically invalid, use of undeclared template.
1406
549121cd
JM
1407 * call.c (compare_qual): Handle pmfs.
1408
5c825fc2
JM
1409 * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
1410 after the exception spec.
1411
18a7cd24
JM
1412Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1413
5168dcfc
JM
1414 * call.c (null_ptr_cst_p): Integer type, not integral type.
1415
18a7cd24
JM
1416 * call.c (joust): Disable warnings until they can be moved to the
1417 right place.
1418
0520f6c0
PB
1419Fri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com>
1420
1421 * Makefile.in, config-lang.in: Convert to autoconf.
1422
85b71cf2
JM
1423Thu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com>
1424
1425 * decl.c (lookup_name_real): Add implicit 'typename' to types from
1426 base classes.
1427
1428 * pt.c (most_specialized_class): Fix typo.
1429 (tsubst): Move constant folding to TREE_VEC case.
1430
1431Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net>
1432
1433 * pt.c (do_poplevel): Don't warn about unused local variables
1434 while processing_template_decl since we don't always know whether
1435 or not they will need constructing/destructing.
1436
1437 * pt.c (uses_template_parms): Check the values of an enumeration
1438 type to make sure they don't depend on template parms.
1439
1440 * decl.c (make_typename_type): Don't lookup the field if the
1441 context uses template parms, even if we're not
1442 processing_template_decl at the moment.
1443
1444 * pt.c (coerce_template_parms): Avoid looking at the
1445 TYPE_LANG_DECL portion of a typename type, since there won't be
1446 one.
1447 (tsubst): Do constant folding as necessary to make sure that
1448 arguments passed to lookup_template_class really are constants.
1449
ca55abae
JM
1450Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com>
1451
1452 * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
1453 * decl2.c (finish_file): Only register exception tables if we
1454 need to.
1455
1456 * decl.c (init_decl_processing): Add __builtin_[fs]p.
1457
2ca340ae
JM
1458Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1459
1460 * pt.c (unify): Just return 0 for a TYPENAME_TYPE.
1461
03555413
MM
1462Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net>
1463
1464 * error.c (dump_decl): Avoid crashing when presented with a
81e98a98
JM
1465 uninitialized constant, as can occur with a template parameter.
1466 (dump_expr): Make sure that there are enough levels of
1467 current_template_parms before we start diving through them.
03555413 1468
b0d75c1e
BK
14691997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
1470
1471 * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
1472 c-typeck.c.
1473
a2676865
JM
1474Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1475
1476 * except.c (expand_throw): Call build_delete for all
1477 exception types, not just objects with destructors.
1478
b3d5a58b
JG
1479Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net>
1480
1481 * decl.c (current_local_enum): Remove static.
1482 * pt.c (tsubst_enum): Save and restore value of current_local_enum
1483 in case template is expanded in enum decl.
1484 (instantiate_class_template) : Use new tsubst_enum signature.
1485 (tsubst_expr): Likewise.
1486
786b5245
MM
1487Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net>
1488
1489 * pt.c (begin_member_template_processing): Take a function as
1490 argument, not a set of template arguments. Use the template
1491 parameters, rather than the arguments. Handle non-type parameters
1492 correctly. Push a binding level for the parameters so that multiple
1493 member templates using the same parameter names can be declared.
1494 (end_member_template_processing): Pop the binding level.
1495 (push_template_decl): Mark member templates as static when
1496 appropriate.
1497
1498 * lex.c (do_pending_inlines): Pass the function, not its template
1499 arguments, to begin_member_template_processing.
1500 (process_next_inline): Likewise.
1501 (do_pending_defargs): Likewise.
1502
1503 * error.c (dump_expr): Obtain the correct declaration for a
1504 TEMPLATE_CONST_PARM.
1505
1506 * call.c (add_template_conv_candidate): New function.
1507 (build_object_call): Handle member templates, as done in the other
1508 build_ functions.
1509
aa5f3bad
MM
1510Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net>
1511
1512 * decl.c (replace_defag): Undo previous change.
1513 * lex.c (do_pending_defargs): Deal with member templates.
1514
1515 * pt.c (is_member_template): Avoid crashing when passed a
1516 non-function argument.
1517
98c1c668
JM
1518Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1519
1520 * class.c (grow_method): Remove check for redeclaration.
1521
a2676865
JM
1522Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net>
1523
1524 * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
1525 (DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
1526 (PRIMARY_TEMPLATE_P): Use it.
1527 * call.c (build_overload_call_real): Use it.
1528 * class.c (instantiate_type): Likewise.
1529 * decl.c (decls_match): Likewise.
1530 * method.c (build_overload_identifier): Likewise.
1531 * pt.c (push_template_decl): Likewise.
1532 (classtype_mangled_name): Likewise.
1533 (lookup_template_class): Likewise.
1534
1535 * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
1536 DECL_NTPARMS to conform to usage elsewhere.
1537 * call.c (add_template_candidate): Likewise.
1538 * class.c (instantiate_type): Likewise.
1539 * pt.c (instantiate_template): Likewise.
1540 (get_bindings): Likewise.
1541
1542 * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
1543 is_member_template.
1544
1545 * pt.c (unify): Undo changes to allow multiple levels of template
1546 parameters.
1547 (type_unification): Likewise.
1548 (fn_type_unification): Likewise.
1549 (get_class_bindings): Likewise.
1550 * cp-tree.h (Likewise).
1551
1552 * decl.c (replace_defarg): Check that the type of the default
1553 parameter does not invlove a template type before complaining
1554 about the initialization.
1555
1556 * error.c (dump_expr): Deal with template constant parameters in
1557 member templates correctly.
1558
1559 * pt.c (is_member_template): Deal with class specializations
1560 correctly.
1561 (tsubst): Handle "partial instantiation" of member templates
1562 correctly.
1563
98c1c668
JM
1564Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net>
1565
1566 * pt.c (type_unification): Change calling squence to allow for
1567 multiple levels of template parameters.
1568 (tsubst_expr): Likewise.
1569 (tsubst): Likewise.
1570 (tsubst_copy): Likewise.
1571 (instantiate_template): Likewise.
1572 (unify): Likewise.
1573 * call.c (build_overload_call_real): Use it.
1574 (add_builtin_candidate): Use it.
1575 (build_new_method_call): Use it.
1576 * class.c (instantiate_type): Use it.
1577 * decl.c (grokdeclarator): Use it.
1578 * decl2.c (finish_file): Use it.
1579 * method.c (build_overload_identifier): Use it.
1580
1581 * call.c (add_template_candidate): Add additional parameter for
1582 the function return type. Call fn_type_unification istead of
1583 type_unification.
1584 (build_user_type_conversion_1): Handle member templates.
1585 (build_new_function_call): Likewise.
1586 (build_new_op): Likewise.
1587 (build_new_method_call): Likewise.
1588
1589 * class.c (grow_method): Don't give an error message indicating
1590 that two member templates with the same name are ambiguous.
1591 (finish_struct): Treat member template functions just like member
1592 functions.
1593
1594 * cp-tree.h (check_member_template): Add declaration.
1595 (begin_member_template_processing): Likewise.
1596 (end_member_template_processing): Likewise.
1597 (fn_type_unification): Likewise.
1598 (is_member_template): Likewise.
1599 (tsubst): Change prototype.
1600 (tsubst_expr): Likewise.
1601 (tsubst_copy): Likewise.
1602 (instantiate_template): Likewise.
1603 (get_bindings): Likewise.
1604
1605 * decl.c (decls_match): Handle multiple levels of template
1606 parameters.
1607 (pushdecl): Handle template type params just like other type
1608 declarations.
1609 (push_class_level_binding): Return immediately if the
1610 class_binding_level is NULL.
1611 (grokfndecl): If check_classfn() returns a member_template, use
1612 the result of the template, not the template itself.
1613
1614 * decl2.c (check_member_template): New function. Check to see
1615 that the entity declared to be a member template can be one.
1616 (check_classfn): Allow redeclaration of member template functions
1617 with different types; the new functions can be specializations or
1618 explicit instantiations.
1619
1620 * error.c (dump_decl): Handle multiple levels of template
1621 parameters.
1622 (dump_function_decl): Update to handle function templates.
1623
1624 * lex.c (do_pending_inlines): Set up template parameter context
1625 for member templates.
1626 (process_next_inline): Likewise.
1627
1628 * method. (build_overload_identifier): Adjust for multiple levels
1629 of template parameters.
1630
1631 * parse.y (fn.def2): Add member templates.
1632 (component_decl_1): Likewise.
1633
1634 * pt.c (begin_member_template_processing): New function.
1635 (end_member_template_processing): Likewise.
1636 (is_member_template): Likewise.
1637 (fn_type_unification): Likewise.
1638 (current_template_parms): Return a vector of all the template
1639 parms, not just the innermost level of parms.
1640 (push_template_decl): Deal with the possibility of member
1641 templates.
1642 (lookup_template_class): Likewise.
1643 (uses_template_parms): Likewise.
1644 (tsubst): Modify processing to TEMPLATE_TYPE_PARM and
1645 TEMPLATE_CONST_PARM to deal with multiple levels of template
1646 arguments. Add processing of TEMPLATE_DECL to produce new
1647 TEMPLATE_DECLs from old ones.
1648 (do_decl_instantiation): Handle member templates.
1649
1650 * search.c (lookup_fnfields_1): Handle member template conversion
1651 operators.
1652
1653 * tree.c (cp_tree_equal): Check the levels, as well as the
1654 indices, of TEMPLATE_CONST_PARMs.
1655
1656 * typeck.c (comptypes): Check the levels, as well as the indices,
1657 fo TEMPLATE_TYPE_PARMs.
1658 (build_x_function_call): Treat member templates like member
1659 functions.
1660
03e70705
JM
1661Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1662
c1bc6829
JM
1663 * typeck.c (c_expand_return): Always convert_for_initialization
1664 before checking for returning a pointer to local.
1665
03e70705
JM
1666 * pt.c (type_unification): If strict and the function parm doesn't
1667 use template parms, just compare types.
1668
1669Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
3d015f46
KE
1670
1671 * method.c (build_overloaded_value): Replace direct call
1672 to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
1673
056c014d
JM
1674Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com>
1675
1676 * typeck.c (convert_arguments): Don't arbitrarily choose the first
1677 of a set of overloaded functions.
1678
ca79f85d
JM
1679Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1680
056c014d
JM
1681 * lex.c (real_yylex): Don't elide __FUNCTION__.
1682
37dac039
JM
1683 * method.c (build_overload_value): Add in_template parm.
1684 (build_overload_int): Likewise.
1685 (build_overload_identifier): Pass it.
1686
1687 * decl.c (duplicate_decls): Don't bash a previous template
1688 definition with a redeclaration.
1689
ca79f85d
JM
1690 * pt.c (unify): float doesn't match double.
1691
1692 * pt.c (do_type_instantiation): Handle getting a _TYPE or a
1693 TYPE_DECL. Handle getting non-template types.
1694 * parse.y (explicit_instantiation): Use typespec instead of
1695 aggr template_type.
1696
1697Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com>
1698
1699 * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
1700
238109cd 1701Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru>
7e3af374 1702
03e70705
JM
1703 * call.c (add_builtin_candidate): Add missing TREE_TYPE.
1704 (compare_ics): Likewise.
238109cd
JM
1705
1706Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com>
03e70705
JM
1707
1708 * call.c (joust): Warn about choosing one conversion op over
1709 another because of 'this' argument when the other return type is
1710 better.
1711 (source_type): New fn.
1712
7e3af374
JM
1713 * call.c (build_new_op): Strip leading REF_BIND from first operand
1714 to builtin operator.
1715
1716 * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
1717 use its RTL.
1718
8e69329a
JM
1719Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1720
1721 * call.c (null_ptr_cst_p): Remove support for (void*)0.
1722
5ddc28a5
JL
1723Wed Aug 27 02:03:34 1997 Jeffrey A Law (law@cygnus.com)
1724
bdcaf773
JL
1725 * typeck.c (expand_target_expr): Make definition match declaration.
1726
5ddc28a5
JL
1727 * class.c (get_basefndecls): Make definition match declaration.
1728
922ddba4
JM
1729Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com>
1730
818045b6
JM
1731 * input.c (sub_getch): Eventually give up and release the input file.
1732
1733 * decl.c (cp_finish_decl): If #p i/i, put inline statics in the
1734 right place.
1735
922ddba4
JM
1736 * call.c (joust): Tweak message.
1737
1738Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net>
1739
1740 * error.c (type_as_string): Put const/volatile on template type
1741 parameters where appropriate.
1742
4c9e597b
JL
1743Sat Aug 23 17:47:22 1997 Jeffrey A Law (law@cygnus.com)
1744
1745 * call.c (strictly_better): Make arguments unsigned ints.
1746
8eeda2ec
JM
1747Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com>
1748
1749 * lex.c (real_yylex): Refer to __complex instead of complex.
1750
8975416c
R
1751Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
1752
1753 * lex.c (real_yylex): Don't use getc directly.
1754
49c249e1
JM
1755Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1756
1757 * call.c (is_subseq): Don't try to be clever.
1758
1759Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1760
1761 * parse.y, pt.c: Include "except.h".
1762 * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
1763 error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
1764 lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
1765 sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
1766 prototyping.
1767
1768Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1769
1770 * decl2.c (mark_vtable_entries): Instead of replacing pure
1771 virtuals with a reference to __pure_virtual, copy the decl and
1772 change the RTL.
1773
f62dbf03
JM
1774Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com>
1775
f017f649
JM
1776 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
1777
1778 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
1779
fe4e8851
JM
1780 * pt.c (instantiate_class_template): Call repo_template_used
1781 before finish_prevtable_vardecl.
1782
f62dbf03
JM
1783 * call.c (is_subseq): New fn.
1784 (compare_ics): Use it.
1785
1786 * repo.c (finish_repo): Don't crash on no args.
1787
1788 * parse.y (named_complex_class_head_sans_basetype): Handle
1789 explicit global scope.
1790 * decl2.c (handle_class_head): New fn.
1791
1792 * pt.c (unify): Add CONST_DECL case.
1793
da20811c
JM
1794Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1795
1796 * rtti.c (permanent_obstack): Fix decl to not be a pointer.
1797
1798 * cp-tree.h (report_type_mismatch): Add prototype.
1799 * call.c (build_overload_call_real): Remove erroneous fourth
1800 argument to report_type_mismatch.
1801 (build_user_type_conversion_1): Remove erroneous second arg to
1802 tourney.
1803 (build_new_function_call): Likewise.
1804 (build_object_call): Likewise.
1805 (build_new_op): Likewise.
1806 (build_new_method_call): Likewise.
1807
1808Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1809
1810 * error.c (dump_decl): Don't bother processing a function with no
1811 DECL_LANG_SPECIFIC.
1812
1813 * method.c (emit_thunk): Call init_function_start in the macro case.
1814
1815Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1816
1817 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
1818 defined and used to set flag_vtable_thunks.
1819
1820Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com>
1821
1822 * parse.y: Don't clear the inlines from their obstack until they've
1823 all been processed.
1824
1825 * decl.c (duplicate_decls): Don't complain about exception
1826 specification mismatch if flag_exceptions is off.
1827
1828Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com>
1829
1830 * Make-lang.in (c++.distclean): Remove g++.c on make distclean.
1831
1832Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com>
1833
1834 * cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
1835 * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
1836 Include <stdio.h> before include files that formerly used STDIO_PROTO.
1837
1838 * decl.c, g++spec.c, lex.c, method.c, repo.c:
1839 Include "config.h" first, as per autoconf manual.
1840
1841Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com>
1842
1843 * decl.c (duplicate_decls): Tweak wording.
1844 * lex.c (do_pending_defargs): Don't die if we see a default arg
1845 that isn't a DEFAULT_ARG.
1846 * error.c (dump_expr): Handle DEFAULT_ARG.
1847
1848 * decl2.c (lang_decode_option): Handle -fhandle-exceptions.
1849 * lang-options.h: Add -fhandle-exceptions.
1850
1851 * class.c (build_vtable): vtables are artificial.
1852 (prepare_fresh_vtable): Likewise.
1853
1854Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1855
1856 * cvt.c (ocp_convert): After converting to the target type, set
1857 LOOKUP_NO_CONVERSION.
1858
1859 * call.c (joust): Warn about potentially confusing promotion rules
1860 with -Wsign-promo.
1861 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
1862
1863Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com>
1864
1865 * exception.cc: Declare __terminate_func with noreturn attribute.
1866
8dff1027
MS
1867Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
1868
1869 * parse.y: Break out eat_saved_input, handle errors.
da20811c 1870 (function_try_block): Use compstmt instead of compstmt_or_error.
8dff1027
MS
1871
1872Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
1873
1874 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
1875
1876Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1877
1878 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
1879 existence of cc1plus check whether $(LANGUAGES) contains C++.
1880
1881Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1882
1883 * method.c (do_build_copy_constructor): When copying an anonymous
1884 union member loop around to handle nested anonymous unions. Use
1885 the offset of the member relative to the outer structure, not the
1886 union.
1887
86e6f22f
JM
1888Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
1889
1890 * call.c (resolve_args): New fn.
1891 (build_new_function_call): Use it.
1892 (build_object_call): Likewise.
1893 (build_new_method_call): Likewise.
1894
1895Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1896
1897 * call.c (build_over_call): tsubst all default parms from templates.
1898
42976354
BK
1899Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1900
1901 * decl.c (struct cp_function): Add static_labelno.
1902 (push_cp_function_context): Save it.
1903 (pop_cp_function_context): Restore it.
1904
1905Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com>
1906
1907 * typeck.c (build_component_ref_1): Convert from reference.
1908
1909Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1910
1911 * parse.y (current_declspecs, prefix_attributes): Initialize to
1912 NULL_TREE.
1913
1914 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
1915 before we try to force it to be a TREE_LIST.
1916 (decl): Make sure $1.t is non-nil.
1917
1918Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com>
1919
1920 * pt.c (uses_template_parms): Handle template first-parse codes.
1921
1922 * decl.c (cp_finish_decl): Only warn about user-defined statics.
1923
1924Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1925
1926 * pt.c (unify): Handle BOOLEAN_TYPE.
1927
1928 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
1929 * pt.c (tsubst): Don't set it.
1930 * call.c (build_over_call): Use uses_template_parms.
1931
1932Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com>
1933
1934 * method.c (build_overload_nested_name): Use static_labelno
1935 instead of var_labelno.
1936 (build_qualified_name): New fn.
1937 (build_overload_name): Split out from here.
1938 (build_static_name): Use build_qualified_name.
1939 * decl.c (cp_finish_decl): Statics in extern inline functions
1940 have comdat linkage.
1941 (start_function): Initialize static_labelno.
1942
1943Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1944
1945 * class.c (finish_struct_methods): add check of warn_ctor_dtor_privacy
1946 before "all member functions in class [] are private"
1947
1948Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1949
1950 * lex.c (do_scoped_id): convert_from_reference.
1951 * init.c (build_offset_ref): Likewise.
1952
42976354
BK
1953Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
1954
1955 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
1956
1957Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com>
1958
1959 * typeck.c (get_member_function_from_ptrfunc): Promote index
1960 before saving it.
1961
1962Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com>
1963
1964 * tree.c (layout_basetypes): Move non-virtual destructor warning.
1965 * decl.c (xref_basetypes): Remove non-virtual destructor warning.
1966
1967Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1968
1969 * decl.c (grokdeclarator): Call add_defarg_fn for the function
1970 type, too.
1971 * lex.c (add_defarg_fn): Adjust.
1972 (do_pending_defargs): Adjust. Don't skip the first parm.
1973
1974Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com>
1975
1976 * decl.c (build_enumerator): Global enumerators are also readonly.
1977
1978 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
1979 (build_dynamic_cast): Call it and convert_from_reference.
1980
1981 * lex.c (add_defarg_fn): New fn.
1982 (snarf_defarg): Don't add to defarg_types.
1983 (do_pending_defargs): Lose defarg_types. All fns we process now
1984 have defargs.
1985 * decl.c (grokfndecl): Call add_defarg_fn.
1986
1987 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
1988 * cp-tree.def: Add DEFAULT_ARG.
1989 * spew.c (yylex): Call snarf_defarg as appropriate.
1990 * parse.y: New tokens DEFARG and DEFARG_MARKER.
1991 (defarg_again, pending_defargs, defarg, defarg1): New rules.
1992 (structsp): Use pending_defargs.
1993 (parms, full_parm): Use defarg.
1994 * lex.c (init_lex): Initialize inline_text_firstobj.
1995 (do_pending_inlines): Never pass the obstack to feed_input.
1996 (process_next_inline): Call end_input instead of restore_pending_input.
1997 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
1998 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
1999 * input.c (end_input): New fn.
2000 (sub_getch): At the end of some fed input, just keep returning EOF
2001 until someone calls end_input.
2002 Remove 'obstack' field from struct input_source.
2003 * decl.c (grokparms): Handle DEFAULT_ARG.
2004 (replace_defarg): New fn.
2005 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
2006
2007Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2008
2009 * call.c (implicit_conversion): If nothing else works, try binding
2010 an rvalue to a reference.
2011
2012Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com>
2013
2014 * decl.c (init_decl_processing): fix Jun 30 patch -- move
2015 ifndef for Cygwin32 to include SIGSEGV.
2016
7834ab39
MS
2017Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com>
2018
2019 * class.c (finish_struct_1): Only complain about pointers without
2020 copy stuff if there are any constructors.
2021
2022 * rtti.c (build_dynamic_cast): Call complete_type on the types.
2023
2024 * decl.c (grokfndecl): If the function we chose doesn't actually
2025 match, die.
2026
2027 * decl2.c (grokclassfn): Don't specify 'const int' for the
2028 artificial destructor parm.
2029
2030 * pt.c (type_unification): If we are called recursively, nothing
2031 decays.
2032
2033Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com>
2034
42976354
BK
2035 * decl.c (init_decl_processing): Stop trying to catch signals
2036 other than SIGABRT since the Cygwin32 library doesn't support
2037 them correctly yet. This fixes a situation in which g++ causes
2038 a hang on SIGSEGVs and other such signals in our Win32-hosted
2039 tools.
7834ab39
MS
2040
2041Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com>
2042
2043 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
2044
2045Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com>
2046
2047 * typeck2.c (store_init_value): Always return the value if our
2048 type needs constructing.
2049
2050 * method.c (hack_identifier): Convert class statics from
2051 reference, too.
2052
2053Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com>
2054
2055 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
2056
b88c08b6
MS
2057Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com>
2058
2059 * typeck.c (c_expand_return): Make sure we clean up temporaries at
2060 the end of return x;
2061
2062Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2063
2064 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
2065
6633d636
MS
2066Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com>
2067
2068 * except.c (expand_builtin_throw): Add support
2069 -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
2070
2071Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com>
2072
2073 * repo.c (extract_string): Null-terminate.
2074
2075 * cp-tree.h (TI_SPEC_INFO): New macro.
2076 (CLASSTYPE_TI_SPEC_INFO): New macro.
2077 * pt.c (push_template_decl): Correctly determine # of template parms
2078 for partial specs.
2079
2080 * call.c (compare_ics): Really fix 'this' conversions.
2081
2082 * pt.c (do_decl_instantiation): Don't crash on explicit inst of
2083 non-template fn.
2084
2085 * pt.c (push_template_decl): Complain about mismatch in # of
2086 template parms between a class template and a member template.
2087
2088Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com>
2089
2090 * method.c (synthesize_method): You can't call
2091 function_cannot_inline_p after finish_function.
2092 * decl.c (finish_function): Turn on flag_inline_functions and turn
2093 off DECL_INLINE before handing a synthesized method to the
2094 backend.
2095
2096Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2097
2098 * method.c (synthesize_method): Remove July 30 change to never set
2099 DECL_INLINE if at_eof.
2100
2101Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com>
2102
2103 * xref.c (GNU_xref_member): Ensure that the node has a
2104 decl_lang_specific part before checking DECL_FRIEND_P.
2105
2106Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com>
2107
2108 * pt.c (instantiate_class_template): Diagnose non-class types used
2109 as bases.
2110
2111Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com>
2112
2113 * typeck.c (build_conditional_expr): Use convert_for_initialization
2114 instead of convert_and_check.
2115
2116Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2117
2118 * parse.y (typespec): Don't pedwarn for typeof.
2119
2120Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com>
2121
2122 * repo.c (finish_repo): Only check changes if we would write a
2123 repo file.
2124
2125 * call.c (compare_ics): Fix handling of 'this' conversions.
2126
2127 * pt.c (do_decl_instantiation): Support static data too. Rename
2128 from do_function_instantiation.
2129 * cp-tree.h: Adjust.
2130 * parse.y: Adjust.
2131
2132 * repo.c (extract_string): New fn.
2133 (get_base_filename): Use it.
2134 (init_repo): Compare old args with current args.
2135
2136Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com>
2137
2138 * Makefile.in, Make-lang.in: Protect C-ls with a comment
2139 character, idea from Paul Eggert <eggert@twinsun.com>.
2140
2141Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com>
2142
2143 * typeck.c (c_expand_return): Be more persistent in looking for
2144 returned temps.
2145
2146 * cvt.c (build_up_reference): Use NOP_EXPR for switching from
2147 pointer to reference.
2148
2149 * class.c (build_vbase_path): Don't do anything if PATH has no steps.
2150
2151Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com>
2152
2153 * init.c (build_member_call, build_offset_ref):
2154 Use do_scoped_id instead of do_identifier.
2155
2156 * cvt.c (convert): Remove bogosity.
2157
2158Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2159
2160 * cvt.c (build_up_reference): Do checks of ARGTYPE and
2161 TARGET_TYPE before trying to use get_binfo.
2162
2163Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com>
2164
2165 * cvt.c (build_up_reference): Call get_binfo to get access control.
2166
2167 * decl2.c (import_export_decl): If we don't support weaks, leave
2168 statics undefined.
2169
2170Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com>
2171
2172 * except.c (expand_builtin_throw): Add support for machines that
2173 cannot access globals after throw's epilogue when
2174 -fno-sjlj-exceptions is used.
2175
2176Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com>
2177
2178 * parse.y: 'std::' becomes '::'.
2179 * lex.c (real_yylex): Remove 'namespace' warning.
2180 * init.c (build_member_call): Ignore 'std::'.
2181 (build_offset_ref): Likewise.
2182 * decl2.c (do_using_directive): Ignore 'using namespace std;'.
2183 (do_toplevel_using_decl): Ignore 'using std::whatever'.
2184 * decl.c (push_namespace): Just sorry.
2185 (pop_namespace): Nop.
2186 (init_decl_processing): Declare std namespace.
2187
013bc8af
MS
2188Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com>
2189
2190 * search.c (push_class_decls): A name which ambiguously refers to
2191 several instantiations of the same template just refers to the
2192 template.
2193
2194Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com>
2195
2196 * decl.c (build_enumerator): fix problem with unsigned long
2197 enumerated values being smashed to ints, causing overflow
2198 when computing next enumerated value. (for enum values around
2199 MAX_VAL).
2200
2201Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com>
2202
2203 * typeck.c (build_component_ref): Only call mark_used on a decl.
2204
2205Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2206
2207 * typeck.c (build_c_cast): Make the check for a ptr to function
2208 more specific before possible default_conversion call.
2209
e00737d2
MS
2210Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
2211
2212 * except.c (expand_exception_blocks): Simplify and fix and make
2213 sure we don't end a region in a sequence, as expand_end_bindings
2214 doesn't like it.
2215
2216Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
2217
2218 * except.c (init_exception_processing): Mark terminate as not
2219 returning so that the optimizer can optimize better.
2220
37c46b43
MS
2221Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
2222
2223 * cvt.c (convert): Don't do any extra work, if we can avoid it
2224 easily.
2225
2226Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com>
2227
2228 * *.[chy]: Change cp_convert to ocp_convert, change convert to
2229 cp_convert. convert is now reserved for the backend, and doesn't
2230 have the semantics a frontend person should ever want.
2231
2232Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com>
2233
2234 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
2235 Lose -traditional support.
2236
2237Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2238
2239 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
2240
2241 * parse.y (self_reference): Do it for templates, too.
2242 * class.c (pushclass): Don't overload_template_name; the alias
2243 generated by build_self_reference serves the same purpose.
2244
2245 * tree.c (list_hash): Make static, take more args.
2246 (list_hash_lookup): Likewise.
2247 (list_hash_add): Make static.
2248 (list_hash_canon): Lose.
2249 (hash_tree_cons): Only build a new node if one isn't already in the
2250 hashtable.
2251 (hash_tree_chain): Use hash_tree_cons.
2252 * cp-tree.h: Adjust.
2253 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
2254 of calling lookup_name.
2255
2256Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com>
2257
2258 * pt.c (instantiate_class_template): TYPE_VALUES for an enum
2259 doesn't refer to the CONST_DECLs.
2260
2261Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com>
2262
2263 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
2264 is bigger.
2265 (expand_class_desc): Convert the last argument to a sizetype.
2266
2267Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2268
2269 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
2270 __real__): Add reswords.
2271 * hash.h: Regenerate.
2272 * lex.h (rid): Add RID_COMPLEX.
2273 (RID_LAST_MODIFIER): Set to RID_COMPLEX.
8eeda2ec 2274 * lex.c (init_lex): Add building of RID_COMPLEX.
37c46b43
MS
2275 (real_yylex): General cleanup in line with what c-lex.c also has,
2276 sans the cruft for traditional; add handling of SPEC_IMAG, complex
2277 types, and imaginary numeric constants.
2278 * parse.y (REALPART, IMAGPART): Add tokens.
2279 (unary_expr): Add REALPART and IMAGPART rules.
2280 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
2281 * decl.c (complex_{integer,float,double,long}_type_node): Define
2282 types.
2283 (init_decl_processing): Set up the types.
2284 (grokdeclarator): Add handling of RID_COMPLEX. Set and use
2285 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
2286 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
2287 * cvt.c (cp_convert): Handle COMPLEX_TYPE.
2288 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
2289 COMPLEX_TYPE case.
2290 * method.c (build_overload_name): Add handling of the different
2291 COMPLEX_TYPEs, prefixing them with `J'.
2292 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
2293 as a template parm.
2294 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
2295 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
2296 (mapcar): Handle COMPLEX_CST.
2297 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
2298 (common_type): Add code for complex types.
2299 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
2300 (convert_for_assignment): Likewise.
2301 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
2302
2303Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com>
2304
2305 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
2306 tsubst_expr, as it might try to do overload resolution.
2307
b87692e5
MS
2308Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com>
2309
2310 * pt.c (instantiate_class_template): Oops.
2311
2312Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com>
2313
2314 * cp-tree.def: Add TAG_DEFN.
2315 * pt.c (tsubst_enum): New fn.
2316 (instantiate_class_template): Use it.
2317 (tsubst_expr): Support TAG_DEFN.
2318 (tsubst): Support local enums.
2319 (tsubst_copy): Likewise.
2320 * decl.c (finish_enum): Likewise.
2321 (start_enum): If this is a local enum, switch to permanent_obstack.
2322
2323Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com>
2324
2325 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
2326 (finish_function): Put the base init code for constructors just
2327 after the parm cleanup insns.
2328 (struct cp_function): Add last_parm_cleanup_insn.
2329 (push_cp_function_context): Likewise.
2330 (pop_cp_function_context): Likewise.
2331
2332Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com>
2333
2334 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
2335
2336Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2337
2338 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
2339 for THUNK_FNDECL before we switch to temporary allocation.
2340
beb53fb8
JM
2341Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
2342
2343 * call.c (build_new_op): Handle null arg2 for ?:.
2344
eb448459
MS
2345Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
2346
2347 * except.c (expand_exception_blocks): Ensure that we flow through
37c46b43
MS
2348 the end of the exception region for the exception specification.
2349 Move exception region for the exception specification in, so that
2350 it doesn't protect the parm cleanup. Remove some obsolete code.
2351 * decl.c (store_parm_decls): Likewise.
eb448459
MS
2352 (finish_function): Likewise.
2353
2354Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com>
2355
2356 * init.c (build_new): Fix nothrow handling.
2357
2358Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2359
2360 * init.c (emit_base_init): Don't warn about the initialization
2361 list for an artificial member.
2362
2363Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2364
2365 * expr.c (do_case): Handle !START case for the error msg.
2366
2367Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com>
2368
2369 * decl2.c, lang-options.h: New option -Weffc++.
2370 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
2371 to -Weffc++.
2372
2373 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
37c46b43 2374 to MULTIPLE_SYMBOL_SPACES.
eb448459
MS
2375
2376Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com>
2377
2378 * method.c (emit_thunk, generic case): Set current_function_is_thunk.
2379
2380 * method.c (emit_thunk, macro case): Set up DECL_RESULT.
2381
2382 * typeck.c (c_expand_return): Don't complain about returning void
2383 to void in an artificial function.
2384 * method.c (make_thunk): Change settings of READONLY/VOLATILE,
2385 don't set DECL_RESULT, set DECL_ARTIFICIAL.
2386 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
2387
eb66be0e
MS
2388Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com>
2389
2390 * init.c (init_decl_processing): Add supoprt for setjmp/longjmp based
2391 exception handling.
2392 * except.c (init_exception_processing): Likewise.
2393 (expand_end_catch_block): Likewise.
2394 (expand_exception_blocks): Likewise.
2395 (expand_throw): Likewise.
2396 * exception.cc (__default_terminate): Likewise.
2397
2398 * init.c (perform_member_init): Use new method of expr level
37c46b43 2399 cleanups, instead of cleanups_this_call and friends.
eb66be0e
MS
2400 (emit_base_init): Likewise.
2401 (expand_aggr_vbase_init_1): Likewise.
2402 (expand_vec_init): Likewise.
2403 * decl.c (cp_finish_decl): Likewise.
2404 (expand_static_init): Likewise.
2405 (store_parm_decls): Likewise.
2406 (cplus_expand_expr_stmt): Likewise.
2407 * decl2.c (finish_file): Likewise.
2408
2409 * Make-lang.in (exception.o): Ok to compile with -O now.
2410
2411 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
2412 we know it will be done later by the backend.
2413
2414 * decl2.c (lang_f_options): Remove support for short temps.
2415 * lang-options.h: Likewise.
2416
2417Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2418
2419 * tree.c (varargs_function_p): New fn.
2420 * method.c (emit_thunk): Replace broken generic code with code to
37c46b43 2421 generate a heavyweight thunk function.
eb66be0e
MS
2422
2423Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com>
2424
2425 * pt.c (process_template_parm): pedwarn about floating-point parms.
2426
2427 * decl.c (grokdeclarator): inline no longer implies static.
2428
2429 * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
2430
2431Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
2432
2433 * class.c (check_for_override): The signature of an overriding
37c46b43 2434 function is not changed.
eb66be0e
MS
2435
2436 * call.c (build_over_call): Move setting of conv into the loop.
da20811c
JM
2437 Note: this change, along with the related changes of the 18th thru
2438 the 20th of April, fix an infinite loop problem in conversions.
eb66be0e
MS
2439
2440Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
2441
2442 * call.c (build_user_type_conversion_1): Really ignore rvalue
37c46b43 2443 conversions when looking for a REFERENCE_TYPE.
eb66be0e
MS
2444
2445 * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
2446 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
2447 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
2448 (build_unary_op): Likewise.
2449 * call.c (build_over_call): See through a CONVERT_EXPR around the
37c46b43 2450 ADDR_EXPR for on a temporary.
eb66be0e 2451 * typeck.c (c_expand_return): See through a CONVERT_EXPR around
37c46b43 2452 the ADDR_EXPR for a local variable.
eb66be0e
MS
2453
2454Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com>
2455
2456 * call.c (build_user_type_conversion_1): If we're trying to
37c46b43 2457 convert to a REFERENCE_TYPE, only consider lvalue conversions.
eb66be0e
MS
2458 (build_new_function_call): Print candidates.
2459 (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
2460 (reference_binding): Binding a temporary of a reference-related type
2461 is BAD.
2462
2463Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2464
2465 * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
2466 * tinfo2.cc (type_info::before): Likewise.
2467
2468Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com>
2469
2470 * call.c (implicit_conversion): Oops.
2471
2472Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com>
2473
2474 * call.c (implicit_conversion): Try to find a reference conversion
37c46b43 2475 before binding a const reference to a temporary.
eb66be0e
MS
2476
2477Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com>
2478
2479 * exception.cc (__default_unexpected): Call terminate by default,
2480 so that if the user overrides terminate, the correct function will
2481 be called.
2482
bd6dd845
MS
2483Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com>
2484
2485 * parse.y (left_curly): Avoid trying to use any fields of
eb66be0e 2486 error_mark_node, as there aren't any.
bd6dd845
MS
2487
2488Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com>
2489
2490 * lex.c (do_identifier): Avoid breaking on overloaded methods
2491 as default arguments.
2492
2493Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se>
2494
eb66be0e 2495 * call.c (add_template_candidate): Initialize the variable "dummy".
bd6dd845
MS
2496
2497Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
2498
2499 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
2500 before we try to use TYPE_SIZE and TREE_CONSTANT on it.
2501
2502Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2503
2504 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
2505 (debug_binfo): Delete decl, not needed.
2506
2507 * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
2508 promotes_to_aggr_type): Delete fns.
2509 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
2510 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
2511 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
2512
2513 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
2514
2515 * friend.c (is_friend_type): Delete fn.
2516 * cp-tree.h (is_friend_type): Delete decl.
2517
2518 * decl.c (original_result_rtx, double_ftype_double,
2519 double_ftype_double_double, int_ftype_int, long_ftype_long,
2520 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
2521 * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
2522
2523 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
2524 fwd decls.
2525 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
2526
2527 * decl.c (pushdecl_nonclass_level): #if 0, unused.
2528 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
2529
2530 * lex.c (reinit_lang_specific): #if 0, unused.
2531 * cp-tree.h (reinit_lang_specific): #if 0 decl.
2532
2533 * decl.c (revert_static_member_fn): Make static, adding fwd decl.
2534 * cp-tree.h (revert_static_member_fn): Delete decl.
2535
2536 * class.c (root_lang_context_p): Delete fn.
2537 * cp-tree.h (root_lang_context_p): Delete decl.
2538
2539 * decl.c (set_current_level_tags_transparency): #if 0, unused.
2540 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
2541
2542 * lex.c (set_vardecl_interface_info): Make static.
2543 * cp-tree.h (set_vardecl_interface_info): Delete decl.
2544
2545 * call.c (find_scoped_type): Make static.
2546 * cp-tree.h (find_scoped_type): Delete decl.
2547
2548 * search.c (convert_pointer_to_vbase): Make static.
2549 * cp-tree.h (convert_pointer_to_vbase): Delete decl.
2550
2551 * decl.c (const_ptr_type_node): Likewise.
2552 * cp-tree.h (const_ptr_type_node): Delete decl.
2553
2554 * typeck.c (common_base_type): Make static.
2555 * cp-tree.h (common_base_types): Delete erroneous decl.
2556
2557 * pt.c (classtype_mangled_name): Make static.
2558 * cp-tree.h (classtype_mangled_name): Delete decl.
2559
2560 * lex.c (check_newline): Make static.
2561 * cp-tree.h (check_newline): Delete decl.
2562
2563 * typeck.c (build_x_array_ref): Delete fn, same idea as
2564 grok_array_decl.
2565 * cp-tree.h (build_x_array_ref): Delete decl.
2566
2567 * lex.c (copy_decl_lang_specific): Delete fn, same idea as
2568 copy_lang_decl.
2569 * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
2570
2571 * class.c (build_vtable_entry): Make static.
2572 * cp-tree.h (build_vtable_entry): Delete decl.
2573
2574 * class.c (build_vbase_pointer): Make static.
2575 * cp-tree.h (build_vbase_pointer): Delete decl.
2576
2577 * sig.c (build_sptr_ref): Add forward decl and make static.
2578 * cp-tree.h (build_sptr_ref): Delete decl.
2579
2580 * call.c (build_new_method_call): Add forward decl and make static.
2581 * cp-tree.h (build_new_method_call): Delete decl.
2582
2583 * call.c (build_object_call): Make static.
2584 * class.c (check_for_override, complete_type_p, mark_overriders):
2585 Likewise.
2586 * decl.c (cp_function_chain): Likewise.
2587 * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
2588 Likewise.
2589 * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
2590 Likewise.
2591 * tree.c (build_cplus_array_type_1): Likewise.
2592 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
2593 (comp_target_parms): Likewise.
2594
2595 * init.c (build_builtin_call): Make static.
2596 * cp-tree.h (build_builtin_call): Delete decl.
2597
2598 * typeck.c (binary_op_error): Delete decl.
2599 * cp-tree.h (binary_op_error): Likewise.
2600
2601Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2602
2603 * call.c (build_method_call): Compare against error_mark_node
2604 directly, rather than the ERROR_MARK tree code.
2605 * cvt.c (cp_convert): Likewise.
2606 * decl.c (print_binding_level): Likewise.
2607 (duplicate_decls): Likewise.
2608 (grokdeclarator): Likewise.
2609 (grokdeclarator): Likewise.
2610 * init.c (expand_aggr_init_1): Likewise.
2611 (decl_constant_value): Likewise.
2612 * method.c (build_opfncall): Likewise.
2613 (hack_identifier): Likewise.
2614 * typeck.c (build_modify_expr): Likewise.
2615
2616 * typeck.c (build_c_cast): Don't decl TYPE as register tree.
2617
2618Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2619
2620 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
2621
2622 * pt.c (coerce_template_parms): Add new error message.
2623
2624 * method.c (build_overload_value): Implement name mangling for
2625 floating-point template arguments.
2626
2627 * method.c (build_overload_int, icat, dicat): Fix mangling of template
2628 arguments whose absolute value doesn't fit in a signed word.
2629
2630Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2631
2632 * friend.c: New file; put all of the friend stuff in here.
2633 * init.c: Instead of here.
2634 * Makefile.in (CXX_OBJS): Add friend.o.
2635 (friend.o): Add dependencies.
2636 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
2637
2638Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com>
2639
2640 * call.c (build_scoped_method_call): Complain if the scope isn't a
eb66be0e 2641 base.
bd6dd845
MS
2642
2643Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2644
2645 * parse.y (left_curly): Don't crash on erroneous type.
2646
2647 * init.c (build_delete): Fix type of ref.
2648
2649Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com>
2650
2651 * search.c (get_vbase_1): Renamed from get_vbase.
2652 (get_vbase): Wrapper, now non-static.
2653 (convert_pointer_to_vbase): Now static.
2654
2655 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
2656 * init.c (build_delete): Pass one.
2657 (build_partial_cleanup_for): Use build_scoped_method_call.
2658 * decl.c (finish_function): Pass a binfo.
2659
2660Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2661
2662 * call.c (build_over_call): Only synthesize non-trivial copy ctors.
2663
2664 * typeck.c (build_c_cast): Lose other reference to flag.
2665
2666 * call.c (build_field_call): Don't look for [cd]tor_identifier.
2667 * decl2.c (delete_sanity): Remove meaningless use of
eb66be0e 2668 LOOKUP_HAS_IN_CHARGE.
bd6dd845 2669 * decl.c (finish_function): Use build_scoped_method_call instead
eb66be0e 2670 of build_delete for running vbase dtors.
bd6dd845 2671 * init.c (build_delete): Call overload resolution code instead of
eb66be0e 2672 duplicating it badly.
bd6dd845 2673
2ba25f50
MS
2674Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com>
2675
2676 * call.c (build_over_call): Call mark_used before trying to elide
2677 the call.
2678
2679 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
2680
2681Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2682
2683 * typeck.c (build_modify_expr): Always pedwarn for a cast to
2684 non-reference used as an lvalue.
2685
2686Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com>
2687
2688 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
2689
2690Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com>
2691
2692 * parse.y (handler): Fix template typo.
2693
2694Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2695
2696 * error.c (lang_decl_name): New fn.
2697 * tree.c (lang_printable_name): Use it.
2698
2699Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com>
2700
2701 * g++spec.c: Include config.h so that we can catch bzero #defines
2702 from the config file.
2703
e9f32eb5
MS
2704Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com>
2705
2706 * new1.cc: Include a declaration for malloc, to avoid warning, and
eb66be0e
MS
2707 avoid lossing on systems that require one (ones that define malloc
2708 in xm.h).
e9f32eb5
MS
2709
2710Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2711
2712 * decl2.c (max_tinst_depth): New variable.
2713 (lang_decode_option): Parse "-ftemplate-depth-NN" command line
2714 option.
2715 * pt.c (max_tinst_depth): Variable moved.
2716 * lang-options.h: Declare "-ftemplate-depth-NN" command line option
2717 as legal.
2718
2719Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com>
2720
2721 * decl.c (xref_basetypes): Allow a base class that depends on
eb66be0e 2722 template parms to be incomplete.
e9f32eb5
MS
2723
2724 * decl2.c (build_expr_from_tree): Support typeid(type).
2725 * rtti.c (get_typeid): Support templates.
2726 (expand_si_desc, expand_class_desc): Fix string length.
2727 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
2728
312e7d50
JM
2729Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
2730
2731 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
2732
2733 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
2734
2735Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2736
2737 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
eb66be0e
MS
2738 smashes together template and non-template decls of the same
2739 signature.
312e7d50 2740
824b9a4c
MS
2741Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
2742
824b9a4c
MS
2743 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
2744
2745Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2746
2747 * decl.c (duplicate_decls): Next route, pedwarn about different
2748 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
2749
2750Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2751
2752 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
2753 (struct lang_type): Delete has_default_implementation member.
2754 Increase dummy to 21.
2755 * decl.c (start_method): Delete usage.
2756
2757 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
2758 store_after_parms, start_decl_1, auto_function): Add decls.
2759 (get_arglist_len_in_bytes, declare_implicit_exception,
2760 have_exceptions_p, make_type_decl, typedecl_for_tag,
2761 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
2762 build_component_type_expr, cplus_exception_name,
2763 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
2764 * call.c (build_this): Make static.
2765 (is_complete): Likewise.
2766 (implicit_conversion): Likewise.
2767 (reference_binding): Likewise.
2768 (standard_conversion): Likewise.
2769 (strip_top_quals): Likewise.
2770 (non_reference): Likewise.
2771 (build_conv): Likewise.
2772 (user_harshness): Likewise.
2773 (rank_for_ideal): Likewise.
2774 * decl.c (start_decl_1): Delete forward decl.
2775 (push_decl_level): Make static.
2776 (resume_binding_level): Make static.
2777 (namespace_bindings_p): Make static.
2778 (declare_namespace_level): Make static.
2779 (lookup_name_real): Make static.
2780 (duplicate_decls): Make static. Take register off NEWDECL and
2781 OLDDECL parm decls.
2782 * decl2.c (get_sentry): Make static.
2783 (temp_name_p): Delete fn.
2784 * except.c (auto_function): Delete decl.
2785 * lex.c (handle_{cp,sysv}_pragma): Make static.
2786 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
2787 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
2788 * pt.c (tsubst_expr_values): Make static.
2789 * rtti.c (combine_strings): Delete decl.
2790
2791Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
2792
2793 * pt.c (push_template_decl): Handle getting a typedef.
2794
2795 * call.c (build_new_function_call): Complain about void arg.
2796
2797Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2798
2799 * decl.c (duplicate_decls): Give pedwarn of different exceptions
2800 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
2801
2802Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
2803
2804 * except.c (expand_throw): Don't expand the cleanup tree here,
eb66be0e
MS
2805 since we are not going to write the rtl out. Fixes problem with
2806 -g -O on SPARC.
824b9a4c
MS
2807
2808Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
2809
2810 * Make-lang.in: Add $(exeext) as necessary.
2811
2812Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
2813
2814 * parse.y (handler_seq): Must have at least one catch clause.
2815
2816Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
2817
2818 * call.c (add_builtin_candidate): Restore ?: hack.
2819
2820 * decl.c (grok_op_properties): More warnings.
2821
2822Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2823
2824 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
2825 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
2826
2827 * decl.c (duplicate_decls): Scale back to a warning, and only do
2828 'em if -pedantic.
2829
2830Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
2831
2832 * decl.c (duplicate_decls): pedwarn mismatched exception
eb66be0e 2833 specifications.
824b9a4c
MS
2834
2835Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
2836
2837 * call.c (build_new_method_call): Don't display the invisible
eb66be0e 2838 argument for controlling virtual bases.
824b9a4c
MS
2839
2840Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
2841
2842 * new: Add nothrow new and delete, bad_alloc and throw specifications
2843 for delete.
2844 * decl.c (init_decl_processing): Add throw specification for delete.
2845 * new.cc (nothrow): Define.
2846 * lex.c (real_yylex): Removing warning that throw and friends are
2847 keywords.
2848 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
2849 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
2850 * Make-lang.in: Add new{1,2}.{cc,o}.
2851
2852Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2853
2854 * lex.c (cons_up_default_function): Fix return type of synth op=.
2855
2856 * init.c (emit_base_init): Add warnings for uninitialized members
eb66be0e 2857 and bases.
824b9a4c
MS
2858
2859 * decl.c (xref_basetypes): Add warning for non-polymorphic type
eb66be0e 2860 with destructor used as base type.
824b9a4c
MS
2861
2862 * decl.c (grok_op_properties): Add warning for op= returning void.
2863 * typeck.c (c_expand_return): Add warning for op= returning anything
2864 other than *this.
2865
2866 * class.c (finish_struct_1): Add warning for class with pointers
eb66be0e 2867 but not copy ctor or copy op=.
824b9a4c
MS
2868
2869 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
2870 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
2871 (instantiate_template): If -fexternal-templates, add this
eb66be0e 2872 instantiation to pending_templates.
824b9a4c
MS
2873
2874 * decl2.c (copy_assignment_arg_p): Disable old hack to support
eb66be0e 2875 Booch components.
824b9a4c
MS
2876
2877Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
2878
2879 * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
2880
de22184b
MS
2881Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
2882
2883 * call.c (standard_conversion): Handle getting references. Tack
eb66be0e 2884 on RVALUE_CONV here. Do it for non-class types, too.
de22184b
MS
2885 (reference_binding): Pass references to standard_conversion.
2886 (implicit_conversion): Likewise.
2887 (add_builtin_candidate): Disable one ?: kludge.
2888 (convert_like): Handle RVALUE_CONVs for non-class types.
2889 (joust): Disable the other ?: kludge.
2890
2891Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2892
2893 * decl.c (init_decl_processing): Add code to build up common
2894 function types beforehand, to avoid creation then removal of
2895 things already in the hash table.
2896
2897Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
2898
2899 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
eb66be0e 2900 the arguments.
de22184b
MS
2901
2902 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
eb66be0e 2903 current_template_parms.
de22184b
MS
2904
2905Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
2906
2907 * search.c (lookup_field): Don't return a function, check want_type.
2908
2909Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2910
2911 * init.c (build_new): Make sure PLACEMENT has a type.
2912
2913Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2914
2915 * init.c (build_new): Support new (nothrow).
2916
2917Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
2918
2919 * pt.c (instantiate_decl): Also do push_to_top_level before setting
2920 up DECL_INITIAL.
2921
2922 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
2923 * pt.c (tsubst): Defer instantiation of default args.
2924 * call.c (build_over_call): Until here.
2925
2926Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2927
2928 * search.c (lookup_field): Make sure we have an
2929 IDENTIFIER_CLASS_VALUE before we try to return it.
2930
2931Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2932
2933 * call.c (build_method_call): Delete unused var PARM.
2934 (build_overload_call_real): Likewise.
2935 (build_object_call): Delete unused var P.
2936 (build_new_op): Likewise.
2937 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
2938 var definitions, which are never used.
2939 (shadow_tag): Delete unused var FN.
2940 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
2941 * init.c (build_new): Delete unused var ALLOC_TEMP.
2942 * method.c (hack_identifier): Delete unused var CONTEXT.
2943 (do_build_copy_constructor): Delete unused var NAME.
2944 (synthesize_method): Delete unused var BASE.
2945 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
2946 * rtti.c (build_headof): Delete unused var VPTR.
2947 (get_typeid): Delete unused var T.
2948 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
2949 and ORIG_OP2.
2950 (build_ptrmemfunc): Delete unused vars U and NINDEX.
2951 * typeck2.c (build_functional_cast): Delete unused var BINFO.
2952
2953Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
2954
2955 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
2956 things in a type being defined.
2957 * decl.c (finish_enum): Reverse the values so that they are in
2958 the correct order.
2959
2960 * pt.c (instantiate_class_template): Don't initialize
eb66be0e 2961 BINFO_BASETYPES until the vector is filled out.
de22184b
MS
2962 (unify): Don't abort on conflicting bindings, just fail.
2963 (instantiate_decl): Do push_tinst_level before any tsubsting.
2964
2965 * method.c (build_overload_value): Handle getting a
eb66be0e 2966 TEMPLATE_CONST_PARM for a pointer.
de22184b
MS
2967
2968Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
2969
2970 * init.c (expand_member_init): Don't give 'not a base' error for
eb66be0e 2971 templates.
de22184b
MS
2972
2973 * pt.c (instantiate_decl): Call import_export_decl later.
2974
2975 * pt.c (instantiate_class_template): Return a value.
2976
2977 * parse.y (extension): New rule for __extension__.
2978 (extdef, unary_expr, decl, component_decl): Use it.
2979
2980Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
2981
2982 * class.c (base_binfo): Remove unused base_has_virtual member.
2983 (finish_base_struct): Likewise.
2984 (finish_struct_1): Likewise.
2985
2986Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com>
2987
2988 * search.c (expand_upcast_fixups): Fix bogus code generation
2989 problem where the generated code uses the wrong index into the
2990 runtime built vtable on the stack. Old code could clobber random
2991 stack values.
2992
2993Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com>
2994
2995 * init.c (perform_member_init): Make sure the partial EH cleanups
eb66be0e 2996 live on the function_obstack.
de22184b 2997
f7da6097
MS
2998Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com>
2999
3000 * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
3001 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
3002
3003Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com)
3004
3005 * decl.c (grokvardecl): Avoid ANSI style initialization.
3006
3007Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com>
3008
3009 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
3010
3011Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com>
3012
3013 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
3014
1bf2b2d2
BK
3015Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3016
3017 * g++spec.c (lang_specific_driver): Put missing hyphen in front of
3018 arguments we compare against. Start the count of I at 1, not 0,
3019 since argv[0] is still the command.
3020
f7da6097
MS
3021Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com>
3022
3023 * lang-specs.h: Accept .cp as an C++ extension.
3024
d2e5ee5c
MS
3025Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3026
3027 * cp-tree.h (ptr_reasonably_similar): Add decl.
3028
3029Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3030
3031 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
3032 pointer. New local SPECBITS with the parm's value.
3033 (grokdeclarator): Pass &specbits down.
3034
3035 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
3036 before we try to do C_SET_EXP_ORIGINAL_CODE on it.
3037
3038 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
3039 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
3040
3041 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
3042 not an error_mark_node.
3043
3044Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3045
3046 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
3047 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
3048
3049Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3050
3051 * decl.c (grokdeclarator): When giving an anonymous struct a name,
3052 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
3053 not affected).
3054
3055 * typeck2.c (build_m_component_ref): If component is a pointer
3056 to data member, resolve the OFFSET_REF now.
3057
3058 * call.c (convert_like): Don't go into infinite recursion.
3059
3060 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
3061
3062 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
3063 * tree.c (layout_basetypes): And on the vbase ptr.
3064
3065Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3066
3067 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
3068 CHAR_TYPE_SIZE so bool is always the same size as another type.
3069
3070 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
3071
3072Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com>
3073
3074 * decl2.c (grok_x_components): Remove synthesized methods from
eb66be0e
MS
3075 TYPE_METHODS of an anonymous union, complain about member
3076 functions.
d2e5ee5c
MS
3077 * decl.c (shadow_tag): Wipe out memory of synthesized methods in
3078 anonymous unions.
3079 (finish_function): Just clear the DECL_RTL of our arguments.
3080
3081Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3082
3083 * decl2.c (finish_file): Emit DWARF debugging info for static data
3084 members.
3085
3086 * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
3087
3088Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com>
3089
3090 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
eb66be0e 3091 IDENTIFIER_NODE.
d2e5ee5c
MS
3092
3093Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
3094
3095 * Make-lang.in (g++-cross$(exeext)): Fix typo.
3096
3097Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3098
3099 Make the g++ driver now be a standalone program, rather than one
3100 that tries to run the gcc driver after munging up the options.
3101 * Make-lang.in (g++.c, g++spec.o): New rules.
3102 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
3103 added.
3104 (g++$(exeext)): New rule, based on xgcc rule.
3105 (g++-cross$(exeext)): Now just copies g++$(exeext) over.
3106 * g++spec.c: New file.
3107 * g++.c: Removed file.
3108
3109Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com>
3110
3111 * cvt.c (build_up_reference): Arrange for any temporary values
3112 that have been keep in registers until now to be put into memory.
3113
faf5394a 3114Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9a3b49ac 3115
faf5394a
MS
3116 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
3117 that make -j3 bootstrap works better.
9a3b49ac 3118
faf5394a
MS
3119Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com>
3120
3121 * decl.c (pushtag): Do pushdecl for anon tags.
3122
3123Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com>
3124
3125 * typeck.c (c_expand_return): Fix logic.
3126 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
3127
faf5394a
MS
3128Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com>
3129
3130 * g++.c (main): Make sure arglist has a final NULL entry. Add
eb66be0e
MS
3131 PEXECUTE_LAST to the flags passed to pexecute, as otherwise
3132 stdin/stdout of the invoked program are redirected to
3133 nowheresville.
faf5394a
MS
3134
3135Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3136
3137 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
3138
3139Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com>
3140
3141 * init.c (resolve_offset_ref): Handle obj.vfn better.
3142 * typeck.c (build_component_ref): Set TREE_TYPE on result from
3143 build_vfn_ref.
3144
3145Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com>
3146
3147 * typeck.c (convert_for_assignment): Also handle anachronistic
3148 implicit conversions from (::*)() to cv void*.
3149 * cvt.c (cp_convert_to_pointer): Likewise.
3150
3151Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3152
3153 * lex.c (handle_cp_pragma): Fix bogus warning.
3154
3155Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com>
3156
3157 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
eb66be0e 3158 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
faf5394a
MS
3159
3160Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3161
3162 * class.c (finish_struct_1): Support DWARF2_DEBUG.
3163 * search.c (dfs_debug_mark): Likewise.
3164 * decl2.c (finish_vtable_vardecl): Likewise.
3165 * decl.c (pushtag, finish_enum): Likewise.
3166 * lex.c (check_newline): Use debug_* instead of calling *out
eb66be0e 3167 functions directly.
faf5394a
MS
3168
3169Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3170
3171 * Make-lang.in (cplib2.ready): Add else clause to avoid problems
3172 on some picky hosts.
3173
3174Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3175
3176 * class.c (finish_struct_1): A class has a non-trivial copy
eb66be0e 3177 constructor if it has virtual functions.
faf5394a
MS
3178
3179 * cvt.c (cp_convert): Always call a constructor.
3180
3181 * call.c (reference_binding): Still tack on a REF_BIND
eb66be0e 3182 for bad conversions.
faf5394a
MS
3183 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
3184
3185 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
3186 (c_expand_return): Likewise.
3187 * typeck2.c (digest_init): Likewise for { }.
3188 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
3189 * cvt.c (cp_convert): Handle failure better.
3190
3191Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3192
3193 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
3194 of GCC be path-relative.
3195
3196Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
3197
3198 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
3199 it does need choose-temp.o and pexecute.o.
3200
3201Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3202
3203 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
3204 that we still use it.
3205 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
3206
3207Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3208
3209 * init.c (expand_default_init): Avoid calling constructors to
3210 initialize reference temps.
3211
3212 * cvt.c (convert_to_reference): Fix.
3213
3214Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3215
3216 * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
3217 (convert_to_reference): Likewise.
3218 * typeck.c (convert_for_initialization): Likewise.
3219 * init.c (expand_default_init): Likewise.
3220 (expand_aggr_init_1): Likewise.
3221 * cp-tree.h (CONV_NONCONVERTING): Lose.
3222 * typeck.c (build_c_cast): Lose allow_nonconverting parm.
3223 * *.c: Adjust.
3224 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
3225
3226Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com>
3227
3228 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
3229
3230Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3231
3232 * init.c (expand_aggr_init_1): Don't crash on non-constructor
3233 TARGET_EXPR.
3234
3235Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3236
3237 * g++.c: Include gansidecl.h.
3238 (VPROTO, PVPROTO, VA_START): Delete.
3239 (choose_temp_base_try, choose_temp_base, perror_exec,
3240 run_dos) [__MSDOS__]: Delete fns.
3241 (pfatal_with_name): Delete fn.
3242 (temp_filename): Declare like in gcc.c.
3243 (pexecute, pwait, choose_temp_base): Declare from gcc.c.
3244 (error_count, signal_count): Define.
3245 (error): Delete both definitions.
3246 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
3247 (pfatal_pexecute): Add fn from gcc.c.
3248 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the
3249 code to use the pexecute stuff also used by gcc.c.
3250 (MIN_FATAL_STATUS): Define.
3251 * Make-lang.in (g++): Add dependency on and linking with
3252 choose-temp.o and pexecute.o.
3253
3254 * cp-tree.h: Include gansidecl.h.
3255 (STDIO_PROTO): Delete #undef/#define.
3256 * cvt.c (NULL): Delete #undef/#define.
3257 * expr.c (NULL): Likewise.
3258 * init.c (NULL): Likewise.
3259 * rtti.c (NULL): Likewise.
3260 * xref.c (NULL): Likewise.
3261
3262 * cp-tree.h (build_user_type_conversion): Add prototype.
3263 * call.c (build_user_type_conversion): Delete prototype. Correct
3264 decl of FLAGS arg to be an int.
3265 * cvt.c (build_user_type_conversion): Likewise.
3266
3267Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com>
3268
3269 * cp-tree.def: Add TRY_BLOCK and HANDLER.
3270 * except.c (expand_start_catch_block): Support templates.
3271 * parse.y (try_block, handler_seq): Likewise.
3272 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
9a3b49ac
MS
3273
3274Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com>
3275
3276 * pt.c (current_template_args): New fn.
3277 (push_template_decl): Use it.
3278 * decl.c (grokdeclarator): Use it.
3279
3280 * decl2.c (build_expr_from_tree): Dereference ref vars.
3281
3282 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
3283 the decl-specifier-seq.
3284
3285 * decl.c (grok_op_properties): Don't force the type of a conversion
3286 op to be complete. Don't warn about converting to the same type
3287 for template instantiations.
3288
3289 * decl2.c (finish_file): Don't call instantiate_decl on synthesized
3290 methods.
3291
3292Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com>
3293
3294 * typeck.c (get_delta_difference): Remove previous bogusness.
3295 Don't give errors if force is set.
3296
3297Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3298
3299 * decl2.c (finish_file): Don't emit debug info.
d2e5ee5c 3300 * decl.c (pushdecl): Lose obsolete code.
9a3b49ac 3301 (grokdeclarator): Still do the long long thing after complaining.
d2e5ee5c
MS
3302 * search.c (note_debug_info_needed): Don't do anything if we're in a
3303 template.
9a3b49ac 3304 * method.c (synthesize_method): For non-local classes,
eb66be0e 3305 push_to_top_level first.
9a3b49ac
MS
3306
3307Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com>
3308
3309 * typeck.c (get_delta_difference): Add no_error parameter.
3310 (build_ptrmemfunc): Call get_delta_difference with no_error set;
eb66be0e
MS
3311 we don't want error messages when converting unrelated
3312 pointer-to-member functions.
9a3b49ac
MS
3313
3314Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com>
3315
3316 * error.c (dump_expr): Improve the wording on error messages that
3317 involve pointer to member functions.
3318
3319Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com>
3320
3321 * cvt.c (cp_convert_to_pointer): Move code for conversions from
eb66be0e 3322 (::*)() to void* or (*)() up a bit, so that we can convert from
9a3b49ac
MS
3323 METHOD_TYPEs as well.
3324
3325Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3326
3327 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
3328 There are no 'member' types.
3329 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
3330 (build_x_typeid): Handle errors.
3331
3332Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com>
3333
3334 * typeck.c (convert_for_assignment): Handle anachronistic implicit
3335 conversions from (::*)() to void* or (*)().
3336 * cvt.c (cp_convert_to_pointer): Likewise.
3337 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
3338 conversions from here.
3339 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
3340 * lang-options.h: Likewise.
3341 * decl2.c (warn_pmf2ptr): Define.
3342 * cp-tree.h: Declare it.
3343 * typeck2.c (digest_init): Allow pmfs down into
3344 convert_for_initialization.
3345
3346Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com>
3347
3348 * typeck.c (c_expand_return): Fix for returning overloaded fn.
3349
3350Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3351
3352 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
3353 * decl.c (grok_reference_init): Pass DIRECT_BIND.
3354 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use
eb66be0e 3355 DIRECT_BIND.
9a3b49ac
MS
3356 * call.c (convert_like): Don't pass INDIRECT_BIND.
3357 * typeck.c (convert_arguments): Likewise.
3358 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
3359
3360Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com>
3361
3362 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
eb66be0e 3363 similar code in build_up_ref.
9a3b49ac
MS
3364 * cvt.c (build_up_reference): Drastically simplify.
3365
691c003d
MS
3366Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com)
3367
3368 * typeck.c (signed_or_unsigned_type): If the given type already
3369 as the correct signedness, then just return it.
3370
eb66be0e
MS
3371 * typeck.c ({un,}signed_type): If can't do anything, call
3372 signed_or_unsigned_type.
691c003d
MS
3373
3374Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com>
3375
3376 * decl2.c (copy_assignment_arg_p): Don't buy the farm if
3377 current_class_type is NULL.
3378
3379Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com>
3380
3381 * class.c (finish_struct_1): Avoid empty structs by adding a field
eb66be0e 3382 so layout_type gets the mode right.
691c003d
MS
3383
3384 * typeck.c (c_expand_return): Drastically simplify.
3385
3386Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3387
3388 * typeck.c (decay_conversion): Handle overloaded methods.
3389
3390Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com>
3391
3392 * call.c (build_over_call): A TARGET_EXPR has side-effects.
3393
f49422da
MS
3394Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com>
3395
3396 * cvt.c (convert_to_pointer_force): Add code to support pointer to
eb66be0e 3397 member function to pointer to function conversions.
f49422da 3398 * init.c (resolve_offset_ref): Add code to allow faked up objects,
eb66be0e
MS
3399 ignoring them if they are not used, and giving an error, if they
3400 are needed.
f49422da 3401 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
eb66be0e
MS
3402 code, and so that we can give an error, if we needed an object,
3403 and one was not provided.
f49422da 3404 (build_c_cast): Don't call default_conversion when we want to
eb66be0e 3405 convert to pointer to function from a METHOD_TYPE.
f49422da
MS
3406
3407Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com>
3408
3409 * Make-lang.in (cplib2.ready): Fix logic.
3410
3411 * decl.c (shadow_tag): Only complain about non-artificial function
eb66be0e 3412 members.
f49422da
MS
3413
3414 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
3415
3416Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com>
3417
3418 * expr.c (cplus_expand_expr): Pre-tweak call_target like
eb66be0e 3419 expand_inline_function would.
f49422da
MS
3420
3421 * pt.c (mark_decl_instantiated): If extern_p, call
eb66be0e 3422 mark_inline_for_output.
f49422da 3423
3d4683cb
MS
3424Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com>
3425
3426 * typeck.c (unary_complex_lvalue): Add code to handle intermediate
3427 pmd conversions.
3428
3429 * typeck.c (get_delta_difference): Fix wording, as we can be used
3430 for pointer to data members.
3431
3432Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com>
3433
3434 * pt.c (tsubst): If the function decl isn't a member of this
eb66be0e
MS
3435 template, return a copy of the decl (including copying the
3436 lang-specific part) so we don't hose ourselves later.
3d4683cb
MS
3437
3438Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3439
3440 * class.c (finish_struct): Remove DWARF-specific tag handling.
3441 * decl.c (pushtag): Likewise.
3442 (finish_function): Always clear DECL_ARGUMENTS on function decls with
3443 no saved RTX.
3444 * decl2.c (finish_file): Emit DWARF debugging info for static data
3445 members.
3446
3447Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com>
3448
3449 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
3450 isn't the same as the new one before we whack it.
3451
3452Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com>
3453
3454 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
eb66be0e
MS
3455 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
3456 warn_traditional and warn_strict_prototypes; remove ancient
3457 'overload' code; remove references to flag_traditional.
3d4683cb 3458
5156628f
MS
3459Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com>
3460
3461 * input.c (sub_getch): Handle 8-bit characters in string literals.
3462
3463Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com>
3464
3465 * tree.c (mapcar): Handle CONSTRUCTORs.
3466 (copy_to_permanent): Handle expression_obstack properly.
3467
3468 * Make-lang.in (cplib2.txt): Also depend on the headers.
3469
3470 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
eb66be0e 3471 INT_TYPE_SIZE.
5156628f
MS
3472 (expand_class_desc): Use USItype for offset field.
3473 * tinfo.h (struct __class_type_info): Likewise.
3474
3475 * method.c (build_overload_int): TYPE_PRECISION should be applied
eb66be0e 3476 to types.
5156628f
MS
3477
3478Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com>
3479
3480 * call.c (build_new_op): A COND_EXPR involving void must be a
3481 builtin.
3482
3483Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3484
3485 * typeck.c (build_x_component_ref): New fn.
3486 (build_object_ref): Use it.
3487 * parse.y (primary): Use it.
3488 * decl2.c (build_expr_from_tree): Use it.
3489 * cp-tree.h: Declare it.
3490
3491 * decl.c (start_decl): variable-sized arrays cannot be initialized.
3492 * error.c (dump_type_suffix): Handle variable arrays.
3493
3494Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3495
3496 * Make-lang.in (exception.o): Put back compiling it with -fPIC.
3497
3498Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3499
3500 * decl.c (lookup_name_real): Don't try to look up anything in a
eb66be0e 3501 TYPENAME_TYPE.
5156628f
MS
3502
3503 * tinfo2.cc (__throw_type_match_rtti): Oops.
3504
3505Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3506
3507 * Make-lang.in (exception.o): Use -fno-PIC for now.
3508
3509Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com>
3510
3511 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
eb66be0e 3512 calling them.
5156628f
MS
3513 (get_tinfo_fn_dynamic): Extracted from build_typeid.
3514 * tinfo2.cc (__dynamic_cast): Adjust.
3515
3516 * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
3517 (build_x_typeid): Likewise.
3518
3519 * parse.y: Call build_x_typeid instead of build_typeid.
3520 * cp-tree.def: Add TYPEID_EXPR.
3521 * pt.c (tsubst_copy): Handle typeid.
3522 * decl2.c (build_expr_from_tree): Likewise.
3523 * rtti.c (build_x_typeid): Throw bad_typeid from here.
3524 (build_typeid): Not here.
3525 * cp-tree.h: Declare build_x_typeid.
3526
3527Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com>
3528
3529 * call.c (convert_like): Pull out constant values.
3530
3531 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
3532
3533Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
3534
3535 * decl.c (init_decl_processing): Create short int types before
3536 creating size_t in case a machine description needs to use
3537 unsigned short for size_t.
3538
3539Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3540
3541 * Make-lang.in (exception.o): Turn off pic.
3542
3543 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
3544 type, multi-level ptr conversions.
3545
3546 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
3547 (throw_bad_cast): Use it.
3548 (throw_bad_typeid): New fn.
3549 (build_typeid): Throw bad_typeid as needed.
3550 Use build_call.
3551 (synthesize_tinfo_fn): Handle functions and arrays before checking
3552 for cv-quals.
3553
3554 * Remove .h from standard C++ headers, add new.h, move into inc
eb66be0e 3555 subdirectory.
5156628f
MS
3556
3557 * exception*: Remove pointer from object, constructors. Add
eb66be0e
MS
3558 default exception::what that uses type_info::name. Add
3559 __throw_bad_typeid.
5156628f
MS
3560
3561 * init.c (build_new): Don't add a cookie to new (void *) T[2].
3562
3563Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com>
3564
3565 * Make-lang.in: Building C++ code depends on cc1plus.
3566
3567Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3568
3569 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
3570 a HOST_WIDE_INT, not a tree.
3571
3572Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3573
3574 * exception.cc: Don't include <stdlib.h>.
3575
3576 * Make-lang.in (c++.clean): Remove cplib2.*.
3577
3578Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com>
3579
3580 * parse.y (component_decl_1, component_costructor_declarator case):
3581 Pass attributes/prefix_attributes in tree list.
3582
3583Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com>
3584
3585 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
3586
3587Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3588
3589 * lex.c (do_identifier): Don't do deferred lookup in a template
eb66be0e 3590 header.
5156628f
MS
3591
3592 * typeck2.c (store_init_value): Oops.
3593
3594 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
3595 New files for C++ lang-support library.
3596 * Make-lang.in (CXX_EXTRA_HEADERS): Define.
3597 (CXX_LIB2FUNCS): Define.
3598 And rules for building the C++ lang-support code.
3599 * config-lang.in (headers): Define.
3600 (lib2funcs): Define.
3601
3602Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3603
3604 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
3605 digest_init.
3606 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
3607 * typeck2.c (store_init_value): Check for initializing pmf with { }
3608 here.
3609 (process_init_constructor): Not here.
3610
3611Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3612
3613 * pt.c (begin_template_parm_list): Increment
eb66be0e 3614 processing_template_decl here.
5156628f
MS
3615 (end_template_parm_list): Not here.
3616 (process_template_parm): No need to add 1 to it now.
3617 * *.c: Use processing_template_decl instead of current_template_parms
3618 to check for being in a template.
3619
3620 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR.
3621 (tsubst_copy): Handle CONSTRUCTOR.
3622 (instantiate_decl): Set up context properly for variables.
3623 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
3624 * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
3625
3626Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3627
3628 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
3629
7fcdf4c2
MS
3630Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3631
3632 * method.c (make_thunk): Call comdat_linkage before setting the
eb66be0e 3633 TREE_CODE.
7fcdf4c2
MS
3634
3635 * decl2.c (comdat_linkage): Use make_decl_one_only.
3636 (import_export_decl): Likewise.
3637 * decl.c (init_decl_processing): Check supports_one_only instead of
3638 SUPPORTS_WEAK.
3639
3640Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com>
3641
3642 * decl2.c (grokfield): Tighten checking for access decls.
3643
3644 * decl.c (make_typename_type): Resolve references to
eb66be0e 3645 current_class_type. Set CLASSTYPE_GOT_SEMICOLON.
7fcdf4c2 3646 (lookup_name_real): Types that depend on a template parameter get
eb66be0e 3647 an implicit 'typename' unless they're in the current scope.
7fcdf4c2 3648 (start_decl_1): We don't care about incomplete types that depend
eb66be0e 3649 on a template parm.
7fcdf4c2 3650 (grokdeclarator): Resolve 'typename's in the type specifier that
eb66be0e 3651 refer to members of the current scope.
7fcdf4c2
MS
3652
3653 * call.c (build_over_call): Remove 'inline called before
eb66be0e 3654 definition' diagnostic.
7fcdf4c2
MS
3655 (build_method_call): Likewise.
3656 * decl.c (duplicate_decls): Downgrade 'used before declared
eb66be0e 3657 inline' to a warning, only with -Winline.
7fcdf4c2
MS
3658
3659Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com>
3660
3661 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
3662
c11b6f21
MS
3663Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu>
3664
3665 * call.c (build_method_call): When calling a signature
3666 default implementation, as in other cases, let instance_ptr simply
3667 be instance.
3668
3669Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com>
3670
3671 * parse.y (simple_stmt): Cleanup and use do_poplevel ().
3672
3673Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com>
3674
3675 * except.c (expand_start_catch_block): Add a pushlevel so that -g
eb66be0e 3676 works on hppa and SPARC.
c11b6f21
MS
3677
3678Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3679
3680 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
3681
3682Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu>
3683
3684 * call.c (build_over_call): Check first whether DECL_CONTEXT exists
3685 before testing whether it's a signature.
3686
3687Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu>
3688
3689 * call.c (build_new_method_call): Don't complain about signature
3690 pointers and references not being an aggr type.
3691 (build_this): If a signature pointer or reference was passed in,
3692 just return it.
3693 (build_new_method_call): If instance is a signature pointer, set
3694 basetype to the signature type of instance.
3695 * sig.c (build_signature_method_call): Deleted basetype and
3696 instance parameters, they can be found as the DECL_CONTEXT of
3697 function and as the first argument passed in.
3698 * cp-tree.h: Changed declaration of build_signature_method_call.
3699 * call.c (build_method_call): Deleted first two arguments in call
3700 of build_signature_method_call.
3701 (build_over_call): Added call to build_signature_method_call.
3702
3703Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3704
3705 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
eb66be0e 3706 target_expr.
c11b6f21
MS
3707
3708Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3709
3710 * cvt.c (convert_to_reference): Use %#T, not %#D, for error.
3711
9ffa2541
BM
3712Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com>
3713
3714 * except.c (expand_start_try_stmts): Move to except.c in the backend.
3715 (expand_end_try_stmts): Remove.
3716
3717 * init.c (perform_member_init): Use add_partial_entry () instead
3718 of directly manipulating lists.
3719 (emit_base_init): Ditto.
3720
c11b6f21
MS
3721Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com>
3722
3723 * except.c (expand_exception_blocks): Always make sure USE and
eb66be0e
MS
3724 CLOBBER insns that came at the end still do, the backend relies
3725 upon this.
c11b6f21
MS
3726
3727Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com>
3728
3729 * call.c (build_over_call): We can only use a TARGET_EXPR of the
eb66be0e 3730 right type.
c11b6f21
MS
3731
3732Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com>
3733
3734 * cvt.c (convert_to_reference): Revert last change, don't complain
eb66be0e 3735 about temp without target decl.
c11b6f21
MS
3736
3737Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com>
3738
3739 * decl.c (grokdeclarator): Don't core dump when void() is given.
3740
3741Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com>
3742
3743 * decl.c (copy_args_p): Don't crash.
3744
3745Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com>
3746
3747 * pt.c (tsubst): And support template args inside the exception
eb66be0e 3748 specification.
c11b6f21
MS
3749
3750 * pt.c (tsubst): Add support for exception specifications in
eb66be0e 3751 template functions.
c11b6f21
MS
3752
3753Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com>
3754
3755 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
eb66be0e 3756 fields now.
c11b6f21
MS
3757 * cp-tree.h (start_decl): Eliminate the throw spec parameter.
3758 (start_function): Likewise.
3759 (start_method): Likewise.
3760 (grokfield): Likewise.
3761 (make_call_declarator): Add throw spec parameter.
3762 (set_quals_and_spec): Add routine.
3763 * lex.c (set_quals_and_spec): Likewise.
3764 * decl.h (grokdeclarator): Eliminate the throw spec parameter.
3765 * decl.c (shadow_tag): Eliminate the throw spec parameter to
eb66be0e 3766 grokdeclarator.
c11b6f21
MS
3767 (groktypename): Likewise.
3768 (start_decl): Eliminate the throw spec parameter. Eliminate the
eb66be0e
MS
3769 throw spec parameter to grokdeclarator. Eliminate the throw spec
3770 field in DECL_STMT.
c11b6f21
MS
3771 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
3772 (grokfndecl): Remove useless set of raises.
3773 (grokdeclarator): Eliminate the throw spec parameter. Eliminate
eb66be0e
MS
3774 the throw spec parameter to start_decl. Pull the throw spec out
3775 of the call declarator.
c11b6f21
MS
3776 (grokparms): Eliminate the throw spec parameter to grokdeclarator.
3777 (start_function): Eliminate the throw spec parameter. Eliminate
eb66be0e 3778 the throw spec parameter to grokdeclarator.
c11b6f21
MS
3779 (start_method): Likewise.
3780 * decl2.c (grokfield): Likewise.
3781 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
3782 (grokoptypename): Likewise.
3783 (finish_file): Eliminate the throw spec parameter to
eb66be0e 3784 start_function. Add throw spec to make_call_declarator.
c11b6f21 3785 * except.c (init_exception_processing): Add throw spec to
eb66be0e
MS
3786 make_call_declarator. Eliminate the throw spec parameter to
3787 start_decl.
c11b6f21 3788 (expand_start_catch_block): Eliminate the throw spec parameter to
eb66be0e 3789 grokdeclarator.
c11b6f21
MS
3790 (expand_builtin_throw): Add throw spec to make_call_declarator.
3791 Eliminate the throw spec parameter to start_function.
3792 (start_anon_func): Likewise.
3793 * lex.c (make_call_declarator): Add throw spec parameter.
3794 (set_quals_and_spec): New routine.
3795 (cons_up_default_function): Add throw spec to make_call_declarator.
3796 Eliminate the throw spec parameter to grokfield.
3797 * method.c (synthesize_method): Eliminate the throw spec parameter
eb66be0e 3798 to start_function.
c11b6f21 3799 * pt.c (process_template_parm): Eliminate the throw spec parameter
eb66be0e 3800 to grokdeclarator.
c11b6f21
MS
3801 (tsubst): Add throw spec to make_call_declarator.
3802 (tsubst_expr): Eliminate the throw spec parameter to start_decl.
3803 (do_function_instantiation): Eliminate the throw spec parameter to
eb66be0e
MS
3804 grokdeclarator. Eliminate the throw spec parameter to
3805 start_function.
c11b6f21 3806 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
eb66be0e 3807 to start_function.
c11b6f21
MS
3808 * parse.y (datadef): Remove non-winning optimization.
3809 (decl): Likewise.
3810 (fndef): Remove ambiguous error productions uncovered by grammer
eb66be0e 3811 fixing.
c11b6f21
MS
3812 (constructor_declarator): Add exception_specification_opt here.
3813 (component_constructor_declarator): Likewise.
3814 (direct_after_type_declarator): Likewise.
3815 (complex_direct_notype_declarator): Likewise.
3816 (direct_abstract_declarator): Likewise.
3817 (fn.def1): Remove exception_specification_opt.
3818 (fn.def2): Likewise.
3819 (condition): Likewise.
3820 (initdcl0): Likewise.
3821 (initdcl): Likewise.
3822 (notype_initdcl0): Likewise.
3823 (nomods_initdcl0): Likewise.
3824 (component_decl_1): Likewise.
3825 (component_declarator): Likewise.
3826 (after_type_component_declarator0): Likewise.
3827 (after_type_component_declarator): Likewise.
3828 (notype_component_declarator): Likewise.
3829
3830Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3831
3832 * call.c (build_over_call): Also use an INIT_EXPR when
eb66be0e 3833 initializing anything from an rvalue.
c11b6f21
MS
3834
3835 * call.c (build_over_call): Call stabilize_reference when building
eb66be0e 3836 an INIT_EXPR instead of calling the copy ctor.
c11b6f21
MS
3837
3838 * call.c (joust): Extend the previous change to all comparisons.
3839
3840 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
3841 NO_LINKAGE_HEURISTICS.
3842
3843 * decl2.c (finish_file): Emit any statics that weren't already.
3844
3845 * typeck.c (build_static_cast): Implement.
3846 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
3847 * decl.c (grokparms): Use can_convert_arg instead of
eb66be0e 3848 implicit_conversion directly.
c11b6f21
MS
3849 (copy_args_p): New fn.
3850 * cvt.c (convert_to_reference): Don't complain about temp with
eb66be0e 3851 static_cast.
c11b6f21
MS
3852 (build_up_reference): Handle TARGET_EXPRs.
3853 * call.c (build_over_call): Elide unnecessary temps.
3854 (can_convert*): Use new overloading code.
3855
3856Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com>
3857
3858 * call.c: Move TYPE_PTR*_MACROS ...
3859 * cp-tree.h: To here.
3860 * typeck.c (build_reinterpret_cast): Implement.
3861
3862 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
eb66be0e 3863 ptr_complete_ob.
c11b6f21
MS
3864 (joust): If we're comparing a function to a builtin and the worst
3865 conversion for the builtin is worse than the worst conversion for the
3866 function, take the function.
3867
3868 * typeck.c (build_const_cast): Implement.
3869 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
3870 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
3871
3872Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com>
3873
3874 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype
eb66be0e
MS
3875 too early. Make sure we explode if exprtype turns out to be a
3876 NULL_TREE when it shouldn't be.
c11b6f21
MS
3877
3878Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com>
3879
3880 * cp-tree.h: New routine make_call_declarator.
3881 * lex.c (make_call_declarator): Define it.
3882 * except.c (init_exception_processing): Use it.
3883 (expand_builtin_throw): Likewise.
3884 (start_anon_func): Likewise.
3885 * decl2.c (finish_file): Likewise.
3886 * lex.c (cons_up_default_function): Likewise.
3887 * parse.y: Likewise.
3888 * pt.c (tsubst): Likewise.
3889
3890Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com>
3891
3892 * decl2.c (groktypefield): Remove unused code.
3893
3894Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com>
3895
3896 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
3897 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier.
3898 Change type_quals into cv_qualifiers. Change nonempty_type_quals into
3899 nonempty_cv_qualifiers.
3900 * hash.h: Rebuild.
3901
3902 * lex.c (make_pointer_declarator): Change type_quals into
eb66be0e 3903 cv_qualifiers.
c11b6f21
MS
3904 (make_reference_declarator): Likewise.
3905
d11ad92e
MS
3906Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3907
3908 * decl.c (start_function): Only check interface_* for templates
eb66be0e 3909 with flag_alt_external_templates.
d11ad92e
MS
3910
3911 * call.c (build_new_op): Check for comparison of different enum types.
3912 (build_over_call): Fix arg # output.
3913
3914 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
3915
3916Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com>
3917
3918 * call.c (build_new_op): Check for erroneous args.
3919
3920 * call.c (build_new_method_call): Add missing args to cp_error.
3921
3922 * tree.c (error_type): Dont print reference-to-array.
3923
3924 * typeck.c (convert_for_assignment): Don't say contravariance for
eb66be0e 3925 removing const.
d11ad92e
MS
3926
3927Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com>
3928
3929 * call.c (build_over_call): Diagnose bad convs for `this'.
3930
3931 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
3932 on _ctor_arg.
3933
3934 * call.c (convert_like): Handle bad convs.
3935 (build_over_call): Handle bad convs better.
3936
3937 * decl2.c: -fansi-overloading is now the default.
3938
3939 * call.c (build_new_method_call): Check for erroneous args.
3940
3941 * pt.c (instantiate_class_template): Propagate
eb66be0e 3942 TYPE_USES_MULTIPLE_INHERITANCE.
d11ad92e
MS
3943
3944Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com>
3945
3946 * call.c (enforce_access): Add static to routine.
3947
3948Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com>
3949
3950 * call.c (build_user_type_conversion_1): Fix bad handling.
3951 (compare_ics): Likewise.
3952
3953Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com>
3954
3955 * call.c (standard_conversion): Oops.
3956
3957Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com>
3958
3959 * g++.c: Update test for win32 (&& ! cygwin32).
3960
3961Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com>
3962
3963 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
3964 (ptr_reasonably_similar): New fn.
3965 * call.c (BAD_RANK): New rank.
3966 (ICS_BAD_FLAG): New macro.
3967 (standard_conversion): Handle almost-right pointer conversions.
3968 (reference_binding): Handle bad rvalue bindings.
3969 (add_*_candidate): Stuff.
3970 (build_over_call): Pass bad conversions to convert_for_initialization.
3971 (compare_ics): Handle bad convs.
3972 (joust): Likewise.
3973
3974Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com>
3975
3976 * init.c (expand_vec_init): Use ptrdiff_type_node instead of
3977 integer_type_node when computing pointer offsets.
3978
3979Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com>
3980
3981 * tree.c (lvalue_type): New fn.
3982 (error_type): New fn.
3983 * call.c (op_error): Use error_type.
3984 (add_conv_candidate): Use lvalue_type.
3985 (add_builtin_candidates): Likewise.
3986 * error.c (args_as_string): Use error_type.
3987
3988Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3989
3990 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
3991 (tsubst): Not here.
3992
3993 * decl.c (init_decl_processing): With -ansi, __null's type is the
3994 signed integral type with the same number of bits as a pointer.
3995 Introduce a new variable null_node for it.
3996 * cp-tree.h: Adjust.
3997 * call.c (null_ptr_cst_p): Adjust.
3998
3999Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com>
4000
4001 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can
eb66be0e 4002 optimize.
d11ad92e
MS
4003
4004Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com>
4005
4006 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo
eb66be0e 4007 fns of classes without virtual functions.
d11ad92e
MS
4008
4009 * call.c (add_function_candidate): Handle `this' specially.
4010 (compare_ics): Likewise.
4011
4012Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com>
4013
4014 * typeck.c (build_conditional_expr): Fix handling of __null.
4015
4016 * decl2.c (comdat_linkage): New fn.
4017 (import_export_vtable): Use it.
4018 (import_export_decl): Use it.
4019 * method.c (make_thunk): Use it.
4020
73aad9b9
JM
4021Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
4022
4023 * pt.c (end_template_decl): If we don't actually have parms, return.
4024 * parse.y (template_header): Accept 'template <>'.
4025
4026 * errfn.c: Allow 5 args.
4027
4028Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
4029
4030 * tree.c (make_temp_vec): New fn.
4031 * pt.c (push_template_decl): Handle partial specs.
d11ad92e 4032 (instantiate_class_template): Likewise.
73aad9b9
JM
4033 (more_specialized): Use get_bindings.
4034 (more_specialized_class): New fn.
4035 (get_class_bindings): New fn.
4036 (most_specialized_class): New fn.
4037 (do_function_instantiation): List candidates for ambiguous case.
4038 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
4039 (shadow_tag): Call push_template_decl for partial specializations.
d11ad92e 4040 * parse.y: Likewise.
73aad9b9 4041 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
eb66be0e 4042 DECL_TEMPLATE_MEMBERS.
73aad9b9
JM
4043 * call.c (print_z_candidates): Reduce duplication.
4044
4045Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4046
4047 * decl2.c (lang_decode_option): Allow -fansi-overloading.
4048
4049Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
4050
4051 * pt.c (get_bindings): New fn.
d11ad92e 4052 (most_specialized): Likewise.
73aad9b9
JM
4053 (do_function_instantiation): Use them.
4054 (add_maybe_template): New fn.
4055 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
4056 * call.c (build_new_op): Handle guiding decls.
d11ad92e
MS
4057 (build_new_function_call): Likewise.
4058 * decl2.c (finish_file): Likewise.
73aad9b9
JM
4059
4060 * decl2.c (mark_used): Do synthesis here.
4061 * call.c (build_method_call): Not here.
4062 (build_over_call): Or here.
4063 * typeck.c (build_function_call_real): Or here.
4064 * tree.c (bot_manip): Call mark_used on functions used in default
eb66be0e 4065 args.
73aad9b9 4066
2eee5e3a
MM
4067Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
4068
4069 * decl2.c (import_export_vtable): Delete code that disabled vtable
eb66be0e 4070 heuristic on systems with ASM_OUTPUT_EXTERNAL.
2eee5e3a 4071
c73964b2
MS
4072Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
4073
4074 * typeck.c (build_x_function_call): Handle static call context
4075 better.
4076
4077 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
eb66be0e 4078 the function, not its outer block.
c73964b2
MS
4079
4080 * call.c (build_field_call): Pass fields on to build_opfncall
eb66be0e 4081 regardless of TYPE_OVERLOADS_CALL_EXPR.
c73964b2
MS
4082 (build_method_call): Pass on to build_new_method_call sooner.
4083
4084 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
4085 gives us.
4086 * class.c (instantiate_type): Don't put a POINTER_TYPE to
eb66be0e 4087 METHOD_TYPE on an expression. Also make a copy of rhs instead of
c73964b2
MS
4088 modifying it.
4089
4090Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
4091
4092 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
4093 (add_builtin_candidate): Don't take enums for ++.
4094 (build_new_method_call): Handle non-aggregates and field calls.
4095 Move new overloading code from...
4096 * cvt.c: Here.
4097
4098 * decl.c (grokparms): Don't check default args in templates.
4099
4100Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
4101
4102 * cvt.c (build_new_op): Fix args to build_unary_op.
4103 (add_builtin_candidates): Don't call type_promotes_to on float.
4104
4105 * decl.c (grokparms): Check the type of the default arg.
4106
4107 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
4108 returning NULL_TREE.
4109
4110 * typeck.c (build_x_binary_op): Avoid doing extra work.
d11ad92e
MS
4111 (build_x_unary_op): Likewise.
4112 (build_x_conditional_expr): Likewise.
c73964b2
MS
4113 * cvt.c (build_over_call): Return.
4114 (add_builtin_candidate): Fix MEMBER_REF.
d11ad92e 4115 (build_new_op): Likewise.
c73964b2
MS
4116
4117Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
4118
4119 * method.c (build_overload_name): Put bug fix into code but leave
eb66be0e
MS
4120 disabled for now so we can be bug compatible with older releases
4121 that do repeats incorrectly. In the future, we can enable it.
c73964b2
MS
4122
4123Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
4124
4125 * cvt.c (convert_like): Don't call build_cplus_new twice.
4126
4127 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
4128 Control new overloading code with -fansi-overloading.
4129
4130Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
4131
4132 * cvt.c (build_over_call): Call build_cplus_new.
d11ad92e
MS
4133 * call.c (build_method_call): Likewise.
4134 * typeck.c (build_function_call_real): Likewise.
c73964b2
MS
4135 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
4136 the COND_EXPR in a TARGET_EXPR so they use the same slot.
4137
4138 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
4139 recursive calls.
4140 * typeck.c (complete_type): Propagate
eb66be0e 4141 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
c73964b2
MS
4142
4143Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
4144
4145 * cvt.c (joust): More ?: kludging. Sigh.
4146 (build_over_call): Don't try to synthesize global fns.
4147
4148 * search.c (lookup_conversions): Use binfo marking.
4149
4150Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
4151
4152 * search.c (build_mi_matrix): Use the correct value of cid
4153 when determining the new mi_size.
4154
4155Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
4156
4157 * cvt.c (add_builtin_candidates): Do consider type conversion ops
4158 for the first parms of += et al.
4159 (strip_top_quals): New fn.
4160 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
d11ad92e 4161 (implicit_conversion): Likewise.
c73964b2
MS
4162 (add_builtin_candidates): Be careful about arrays.
4163 (build_new_method_call): Handle vtable optimization.
4164
4165Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
4166
4167 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
4168 * cvt.c (reference_binding): Use it.
4169 (implicit_conversion): Use it.
4170 (add_builtin_candidate, COND_EXPR): Use it.
4171
4172 * cvt.c (build_new_function_call): Check for error args.
4173
4174 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
4175
4176 * gxx.gperf: Add __null.
4177 * hash.h: Regenerate.
4178 * lex.h: Add RID_NULL.
4179 * lex.c (init_lex): Create null_pointer_node here, stick it in
eb66be0e 4180 RID_NULL.
c73964b2
MS
4181 * decl.c (init_decl_processing): Still set its type here.
4182 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
d11ad92e 4183 (convert_to_pointer_force): Likewise.
c73964b2
MS
4184 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
4185 if (! pedantic).
4186 * call.c (convert_harshness): Use null_ptr_cst_p.
d11ad92e 4187 * typeck.c (convert_for_assignment): Likewise. Don't produce
c73964b2
MS
4188 null_pointer_node.
4189
4190 * error.c (args_as_string): Handle lists of actual args, too.
4191 * cvt.c (null_ptr_cst): Support (void*)0 for now.
4192 (build_user_type_conversion_1): Improve diagnostics.
4193 (build_new_function_call): Likewise.
4194 (build_object_call): Likewise.
4195 (build_new_method_call): Likewise. Move call before def diagnostic...
4196 (build_over_call): Here.
4197
4198 * cvt.c (build_new_method_call): Don't complain about no match if
eb66be0e 4199 LOOKUP_SPECULATIVELY.
c73964b2
MS
4200 (build_over_call): Fix 'this' for virtual fn.
4201 (build_new_method_call): Add diagnostic.
4202
4203Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4204
4205 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
eb66be0e 4206 constructors to be passed in.
c73964b2
MS
4207 (build_over_call): Likewise.
4208 (build_user_type_conversion_1): Pass them in.
4209 (convert_like): Likewise.
4210 (build_object_call): Handle overloaded conversions.
4211 (build_over_call): Pass the right args to build_vfn_ref.
4212 (standard_conversion): Fix pmf convs.
4213 (joust): Handle comparing statics and non-statics.
4214 (build_new_method_call): New fn.
4215 * call.c (build_method_call): Call it if NEW_OVER.
4216
4217Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
4218
4219 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
eb66be0e 4220 %D instead.
c73964b2
MS
4221
4222Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
4223
4224 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
eb66be0e
MS
4225 instead of just maybe_build_cleanup so that we deallocate the
4226 thrown object.
c73964b2
MS
4227
4228Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4229
4230 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
4231 * cp-tree.h (finish_prevtable_vardecl): Add decl.
4232
14548a19
MS
4233Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
4234
c73964b2 4235 * pt.c (instantiate_class_template): Call complete_type. Also, if
eb66be0e
MS
4236 we're at the end of the file and we just instantiated a template
4237 class with a vtable, call finish_prevtable_vardecl.
c73964b2 4238
14548a19 4239 * error.c (dump_decl): Don't explode (or explode more gracefully
eb66be0e 4240 as appropriate) if the object being dumped has a null type.
d11ad92e 4241 (dump_expr): Likewise.
14548a19
MS
4242
4243 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
eb66be0e
MS
4244 by counting the number of nodes that we'll need before allocating
4245 the array.
14548a19
MS
4246 (lookup_fnfields): Fix comment.
4247 (breadth_first_search): Fix comment.
4248
4249Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
4250
4251 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
eb66be0e 4252 TYPE_ALIGN.
14548a19
MS
4253 * class.c (finish_struct): Call cplus_decl_attributes here.
4254 (finish_struct_1): Not here.
4255 * cp-tree.h: Adjust.
4256
4257 * pt.c (type_unification): New parameter STRICT.
4258 (unify): If STRICT, don't allow cv addition or base deduction.
4259 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
4260
4261Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
4262
4263 * search.c (get_template_base{_recursive}): New fns.
4264 * pt.c (more_specialized): New fn.
4265 (do_function_instantiation): Use it.
4266 (unify): Handle base deduction.
4267 * cvt.c (joust): Use more_specialized.
4268 Don't arbitrarily choose between non-builtin candidates.
4269 (build_over_call): Call require_complete_type.
4270
4271 * decl.c (start_function): Statics are static even in a #pragma
eb66be0e 4272 interface file.
14548a19
MS
4273
4274 * decl2.c (import_export_vtable): Disable vtable heuristic on
eb66be0e 4275 systems with ASM_OUTPUT_EXTERNAL.
14548a19
MS
4276
4277 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
4278 (standard_conversion): No std conv to enum type.
4279
4280 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
4281 for ptm's.
4282
4283 * cvt.c (reference_binding): Bind directly to a base subobject of
eb66be0e 4284 a class rvalue.
14548a19
MS
4285
4286 * cvt.c (build_new_op): Enforce access control.
4287
4288Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
4289
4290 * typeck2.c (process_init_constructor): When scanning the
4291 union for a named field, skip things that aren't FIELD_DECLs.
4292
4293 * method.c (synthesize_method): Don't scan fndecl's rtl if
4294 we're at the end of the file; just assume the function can't
4295 be inlined.
4296
4297Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4298
4299 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
eb66be0e 4300 it failed.
14548a19
MS
4301
4302 * cvt.c (build_user_type_conversion_1): Handle overloaded
eb66be0e 4303 conversion ops.
14548a19
MS
4304
4305 * cvt.c (add_builtin_candidates): Don't consider type conversion
eb66be0e 4306 operators for the first parameter of operator=.
14548a19
MS
4307
4308Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
4309
4310 * typeck.c (complete_type): Only call layout_type if we're not
eb66be0e 4311 expanding a template.
14548a19
MS
4312
4313Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
4314
4315 * cvt.c (compare_ics): Oops.
4316
4317 * cvt.c (op_error): Oops.
4318
4319 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
4320 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
4321 (build_conv): Use them.
4322 (implicit_conversion): Use them.
4323 (convert_like): Handle them.
4324 (build_new_op): Handle builtin COND_EXPR again.
4325 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
4326 in lists of types for COND_EXPR.
4327 (add_builtin_candidate): Add enum candidates for COND_EXPR.
4328
4329Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
4330
4331 * typeck.c (build_modify_expr): Always attempt to build a call to
eb66be0e 4332 the assignment operator, even if we're using a default one.
14548a19
MS
4333 (convert_for_initialization): Call complete_type.
4334
4335Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4336
4337 * cvt.c (reference_binding): A REF_BIND gets the reference type.
4338 (implicit_conversion): Likewise.
4339 (convert_like): Likewise.
4340 (compare_ics): Likewise.
4341 (compare_qual): Likewise.
4342 (print_z_candidates): Handle no candidates.
4343 (build_new_op): Don't handle builtin COND_EXPR for now.
4344
4345Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
4346
4347 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
4348
4349Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4350
4351 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
4352
4353 * cvt.c (build_builtin_candidate): Oops.
4354 (build_new_op): Oops.
4355
4356 * method.c (build_opfncall): Pass COND_EXPR on.
4357 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
4358 (add_builtin_candidate{,s}): Likewise.
4359 (add_builtin_candidates): Likewise.
4360 (print_z_candidates, op_error, build_new_op): Likewise.
4361 (type_decays_to): New fn.
4362 * lex.c (init_lex): Just say ?: for COND_EXPR.
4363
4364Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4365
4366 * typeck.c (complete_type): Call layout_type rather than building
eb66be0e 4367 a new array type.
14548a19
MS
4368
4369 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
eb66be0e 4370 only use ptrdiff_t.
14548a19
MS
4371
4372Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4373
4374 * cvt.c: Always compile the new overloading code (but don't use it).
4375 (implicit_conversion): Add a BASE_CONV when converting to
eb66be0e 4376 the same class type.
14548a19
MS
4377 (convert_like): Handle BASE_CONV.
4378
4379Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4380
4381 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
4382 (add_builtin_candidate): Likewise.
4383
4384 NEW_OVER changes:
4385 * typeck.c (build_x_function_call): Try an operator function
eb66be0e 4386 whenever we call an object of class type.
14548a19
MS
4387 * method.c (build_opfncall): Pass CALL_EXPRs through.
4388 * cvt.c (implicit_conversion): Do const-ref case first.
4389 (add_conv_candidate, build_object_call, op_error): New fns.
4390 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
4391 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
4392 builtin candidates.
4393 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
4394 Fall back on preincrement handling. Use op_error.
4395 Handle warn_synth.
4396 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
4397 an error_mark_node.
4398 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
4399 properly.
4400
4401Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
4402
4403 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
4404
4405Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
4406
4407 * typeck.c (build_component_ref_1): Use build_component_ref
4408 instead of open coding it here.
4409
4410Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
4411
4412 * g++.c (main): Don't link with -lg++.
4413
4414 NEW_OVER changes:
4415 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
eb66be0e 4416 result of build_type_conversion.
14548a19
MS
4417 (cp_convert): Only call build_method_call for ctors if
4418 build_type_conversion failed.
4419 (ptr_complete_ob): New function.
4420 (TYPE_PTR{,OB,MEM}_P): New macros.
4421 ({add,build}_builtin_candidate{,s}): New functions.
4422 (print_z_candidates): Handle builtins.
4423 (build_user_type_conversion_1): Don't use conversion fns for
4424 converting to a base type.
4425 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
4426 (build_user_type_conversion): Use convert_from_reference.
4427 (build_new_op): New function.
4428 (build_over_call): Fix handling of methods.
4429 (compare_ics): Handle AMBIG_CONV properly.
4430 * typeck2.c: Increment abort count.
4431 * method.c (build_opfncall): Forward most requests to build_new_op.
4432 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
4433
4434Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4435
4436 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
4437 invalid second argument to dump_expr_list.
4438
594740f3
MS
4439Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
4440
4441 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
4442
4443Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
4444
4445 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
4446 ASSEMBLE_EXTERNAL.
4447
4448Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
4449
4450 * typeck2.c (process_init_constructor): New pedwarn for using { }
4451 to initialize a pointer to member function.
4452 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
4453 we can avoid the new error.
4454
4455Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
4456
4457 * typeck.c (build_ptrmemfunc1): New function to hide details of
4458 pointer to member functions better.
4459
4460Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
4461
4462 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
4463 methods into the actual method, as we know the implied object is
4464 not used.
4465
4466Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4467
4468 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
4469 inside a system header.
4470
4471Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
4472
4473 * call.c (build_method_call): Call complete_type on the
4474 instance type.
4475
4476Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
4477
4478 * typeck.c (build_component_ref): Always build up an OFFSET_REF
4479 for obj_ptr->func so that we can know which object to use in a
4480 method call.
4481
4482Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
4483
4484 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
4485 around things. Also improve maintainability.
4486
4487Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
4488
4489 * decl.c (grokdeclarator): Check for overflow when evaluating an
eb66be0e 4490 array dimension.
594740f3
MS
4491
4492Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4493
4494 * cvt.c (cp_convert): Don't check for ambiguity with constructor
eb66be0e 4495 if NEW_OVER.
594740f3
MS
4496
4497 * typeck.c (build_x_function_call): Pass function overload
eb66be0e 4498 questions to new overloading code if NEW_OVER.
594740f3 4499 * init.c (expand_aggr_init_1): Only check for type conversion ops
eb66be0e
MS
4500 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
4501 Don't check for ambiguity with constructor if NEW_OVER.
594740f3 4502 * cvt.c (convert_to_reference): Dereference the result of a type
eb66be0e 4503 conversion operator.
594740f3
MS
4504 (build_conv): Propagate ICS_USER_FLAG.
4505 (implicit_conversion): Call instantiate_type.
4506 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
4507 (add_function_candidate): Fix cv-quals on argtype.
4508 (print_z_candidates): New function.
4509 (build_new_function_call): Call it.
4510 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
4511 consider non-converting constructors.
4512 Call print_z_candidates.
4513 Return an AMBIG_CONV for an ambiguous conversion.
4514 (build_user_type_conversion): Handle AMBIG_CONV.
4515 (convert_like): Fix test for building TARGET_EXPR.
4516 Call instantiate_type.
4517 Handle AMBIG_CONV and LVALUE_CONV.
4518 (build_over_call): Handle 0 args and ellipsis.
4519 * cp-tree.def: Add AMBIG_CONV.
4520
e92cc029
MS
4521Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
4522
4523 * decl.c (lookup_name_real): If we find mem in obj when parsing
eb66be0e 4524 `obj->mem', make sure we return the right value.
e92cc029
MS
4525
4526Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
4527
4528 * search.c (get_base_distance): Call complete_type.
4529
4530Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
4531
4532 * decl.c (store_bindings): Make static.
4533
4534Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
4535
4536 * init.c (expand_aggr_init_1): Don't check type conversions if
eb66be0e 4537 NEW_OVER.
e92cc029
MS
4538
4539 * cvt.c (z_candidate): Put back template field.
4540 (add_function_candidate): Set it.
4541 (add_template_candidate): Likewise.
4542 (joust): Use it.
4543 (compare_qual): Handle references and pointers to members.
4544 (compare_ics): Handle reference bindings.
4545
4546 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
4547
4548Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
4549
4550 * call.c (compute_conversion_costs): Call complete_type.
4551
4552 * tree.c (vec_binfo_member): Use comptypes instead of comparing
eb66be0e 4553 pointers, so we can handle template parameters.
e92cc029
MS
4554
4555Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
4556
4557 * cvt.c (cp_convert_to_pointer): We have to call complete_type
4558 here; let's make it explicit instead of a side effect of an
4559 error check.
4560
4561Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4562
4563 * cvt.c (z_candidate): Remove template field.
4564 (reference_binding): Handle binding to temporary.
4565 (implicit_conversion): Likewise.
4566 (add_function_candidate): Handle artificial constructor parms.
4567 Handle functions with too few parms.
4568 (add_template_candidate): New function.
4569 (build_user_type_conversion_1): Handle constructors.
4570 (convert_like): Likewise.
4571 (build_over_call): Likewise.
4572 (build_new_function_call): Support templates.
4573 (compare_ics): Fix reference, inheritance handling.
4574
4575Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
4576
4577 * decl.c: Add signed_size_zero_node.
4578 (init_decl_processing): Build it.
4579 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
eb66be0e 4580 when we're trying to make a negative delta.
e92cc029
MS
4581
4582Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4583
4584 Stop doing this damn index==strchr variable name confusion.
4585 * class.c (add_virtual_function): Change local var INDEX to be
4586 named IDX.
4587 (add_method): Likewise.
4588 * lex.c (print_parse_statistics): Likewise.
4589 * search.c (make_memoized_table_entry): Likewise.
4590 (lookup_fnfields_here): Likewise.
4591 (lookup_field): Likewise.
4592 (lookup_fnfields): Likewise.
4593 (get_baselinks): Likewise.
4594 * sig.c (build_signature_table_constructor): Likewise.
4595 (build_signature_method_call): Likewise.
4596 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
4597 (get_member_function_from_ptrfunc): Likewise.
4598 (build_ptrmemfunc): Change local var INDEX to be IDX.
4599 (c_expand_start_case): Likewise.
4600
4601Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
4602
4603 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
eb66be0e 4604 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
e92cc029 4605 (convert_to_reference): Use build_type_conversion to convert to
eb66be0e 4606 the reference type directly.
e92cc029
MS
4607 (standard_conversion): Fix void* case, non-conversions.
4608 (reference_binding): Fix expr == 0 case, non-conversions.
4609 (convert_like): Support REF_BIND.
4610 (compare_qual): Split out from compare_ics.
4611 (compare_ics): Use it, handle icses with only a qual_conv.
4612
4613 * init.c (expand_vec_init): Don't crash if decl is NULL.
4614
4615Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
4616
4617 * mpw-config.in: New file, configury for Mac MPW.
4618 * mpw-make.sed: New file, makefile editing for MPW.
4619
4620Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4621
4622 * pt.c (instantiate_class_template): Call repo_template_used.
4623
4624 * search.c (lookup_conversions): Only lookup conversions in
eb66be0e 4625 complete types.
e92cc029
MS
4626
4627Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4628
4629 * cp-tree.def: Renamed from tree.def, to avoid confusion with
4630 gcc's tree.def.
4631 * cp-tree.h, lex.c: Include cp-tree.def.
4632 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
4633
4634Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
4635
4636 * init.c (build_vec_delete_1): Call complete_type.
4637
4638Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
4639
4640 * except.c (start_anon_func): Make sure anonymous functions are
eb66be0e 4641 never external.
e92cc029
MS
4642
4643Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
4644
4645 * decl.c (finish_function): If function_depth > 1, set nested.
4646
4647 * decl2.c (grokbitfield): Revert Bob's change.
4648 * class.c (finish_struct_1): Fix handling of named bitfield widths.
4649
4650Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
4651
4652 * pt.c (add_pending_template): Handle types.
4653 (lookup_template_class): With -fexternal-templates, just add the class
4654 to pending_templates instead of instantiating it now.
4655 * decl2.c (finish_file): Handle types in pending_templates.
4656
4657Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
4658
4659 * decl2.c (grokbitfield): Handle constant decls appropriately.
eb66be0e
MS
4660 Give an appropriate error message now instead of spewing core
4661 later.
e92cc029
MS
4662
4663Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4664
4665 * decl2.c: Don't turn on thunks by default for now.
4666
4667Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
4668
4669 * typeck.c (complete_type): Handle error_mark_node.
4670 (common_type, OFFSET_TYPE): Handle template_type_parms.
4671
4672Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4673
4674 * pt.c (instantiate_decl): If at_eof, call import_export_decl
eb66be0e 4675 regardless of DECL_INLINE.
e92cc029
MS
4676
4677 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
4678
4679 * class.c (finish_struct_bits): Copy TYPE_SIZE.
4680
4681 * rtti.c (build_dynamic_cast): Support templates.
4682 * tree.def: Support DYNAMIC_CAST_EXPR.
4683 * pt.c (tsubst_copy): Likewise.
4684 * decl2.c (build_expr_from_tree): Likewise.
4685
4686Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4687
4688 * typeck.c (build_static_cast): Support templates.
4689 (build_const_cast): Likewise.
4690 * tree.def: Support CONST/STATIC_CAST_EXPR.
4691 * pt.c (tsubst_copy): Likewise.
4692 * decl2.c (build_expr_from_tree): Likewise.
4693
4694Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
4695
4696 * decl2.c (finish_vtable_vardecl): Don't trust
eb66be0e 4697 TREE_SYMBOL_REFERENCED for vtables of local classes.
e92cc029
MS
4698
4699Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4700
4701 * pt.c (tsubst_copy): Handle operator T.
4702
4703Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4704
4705 * init.c (build_delete): Move creation of PARMS inside test of
4706 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
4707
4708Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
4709
4710 * typeck.c (build_conditional_expr): Don't assume that
4711 the arguments to ?: are always pointers or records.
4712
4713Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4714
4715 * decl2.c (import_export_decl): Still emit static/weak/comdat
eb66be0e 4716 copies of inline template functions with -fno-implicit-templates.
e92cc029
MS
4717
4718Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
4719
4720 * init.c (build_delete): Determine the complete basetype
4721 path to the destructor we're calling.
4722
4723Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
4724
4725 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
eb66be0e
MS
4726 initialize the enum, because we really and truly don't know where
4727 it came from.
e92cc029 4728 (start_enum): Don't copy integer_zero_node because
eb66be0e 4729 build_enumerator will do it.
e92cc029
MS
4730
4731Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4732
4733 * decl.c (finish_function): Do access control on base destructors.
4734
4735 * pt.c (tsubst, case FUNCTION_DECL): Set up
eb66be0e
MS
4736 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
4737 hose us.
e92cc029
MS
4738
4739Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
4740
4741 * cvt.c (build_up_reference): If we have already extended the
eb66be0e 4742 lifetime of the temporary, don't try it again.
e92cc029
MS
4743 * typeck.c (c_expand_return): Don't try and convert the return
4744 value twice when we want a reference, once is enough.
4745
a0128b67
MS
4746Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
4747
4748 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
eb66be0e 4749 LOOKUP_ONLYCONVERTING at all for now.
a0128b67
MS
4750
4751 * search.c (add_conversions): Put the conversion function in
eb66be0e 4752 TREE_VALUE, the basetype in TREE_PURPOSE.
a0128b67
MS
4753 * cvt.c (build_type_conversion): Adjust.
4754 * cvt.c (build_expr_type_conversion): Adjust.
4755 * call.c (user_harshness): Adjust.
4756
4757Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
4758
4759 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
eb66be0e 4760 backend's benefit.
a0128b67 4761
14548a19
MS
4762Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
4763
4764 * except.c (expand_start_catch_block): Add a dummy region, if we
4765 get an error, so that we can avoid core dumping later.
4766
a0128b67
MS
4767Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
4768
4769 * cp-tree.h (OFFSET_REF): Remove.
4770 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
4771 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
d11ad92e
MS
4772 * init.c (expand_aggr_init_1): Likewise.
4773 (build_new): Likewise.
4774 * typeck.c (expand_target_expr): Likewise.
a0128b67
MS
4775
4776Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4777
4778 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
eb66be0e 4779 TARGET_EXPR.
a0128b67 4780
e349ee73
MS
4781Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
4782
4783 * cvt.c (build_up_reference): Redo how and when temporaries are
4784 created.
4785 * decl.c (grok_reference_init): Don't try and be smart about
4786 running cleanups.
4787
4788Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
4789
4790 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
4791 (TARGET_EXPR...), now that it has 4 arguments.
d11ad92e 4792 * tree.c (build_cplus_new): Likewise.
e349ee73
MS
4793
4794Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4795
4796 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
4797
4798 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
4799 * decl.c (struct saved_scope): Remove named_labels,
4800 {base,member}_init_list.
4801 (maybe_push_to_top_level): Don't set them. Call
4802 push_cp_function_context if appropriate.
4803 (pop_from_top_level): Likewise.
4804
4805 * method.c (do_build_assign_ref): Remove obsolete check of
4806 TYPE_HAS_ASSIGN_REF (basetype).
4807
4808 * decl.c (grokfndecl): Diagnose user definition of
eb66be0e 4809 implicitly-declared methods.
e349ee73
MS
4810
4811Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
4812
4813 * method.c (do_build_copy_constructor): Add code to give
eb66be0e
MS
4814 meaningful error messages instead of crashing.
4815 (do_build_assign_ref): Don't synthesize assignment operators for
4816 classes containing reference or const members.
e349ee73
MS
4817
4818 * class.c (struct base_info): Remove cant_synth_copy_ctor
4819 and cant_synth_asn_ref.
4820 (finish_base_struct): Remove the code that tries to conditionalize
eb66be0e
MS
4821 synthesis of copy constructors & assignment operators based on
4822 access permissions. Instead, let it fail when it tries to
4823 synthesize the copy constructor. This will give meaningful error
4824 messages instead of silently generating code to perform a bitcopy.
e349ee73
MS
4825
4826Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
4827
4828 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
eb66be0e 4829 determining types for constant values.
e349ee73
MS
4830
4831 * decl.c (struct named_label_list): Use instead of stuffing
4832 random items into a TREE_LIST node.
4833 (named_label_uses): Use the new struct.
d11ad92e
MS
4834 (poplevel): Likewise.
4835 (lookup_label): Likewise.
e349ee73 4836 (define_label): Add an error message to tell the user the line
eb66be0e
MS
4837 where the goto is located in addition to the destination of the
4838 goto.
e349ee73
MS
4839 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
4840 named_label_uses.
d11ad92e 4841 (finish_function): Likewise.
e349ee73
MS
4842
4843 (start_decl): Complain about defining a static data member
4844 in a different type from which it was declared.
4845
4846Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4847
4848 * cvt.c (build_expr_type_conversion): Adjust.
4849
4850Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
4851
4852 * call.c (build_method_call): Always convert 'this' to the
eb66be0e 4853 appropriate type.
e349ee73
MS
4854
4855 * search.c (add_conversions): Put the conversion function in
eb66be0e 4856 TREE_VALUE, the type in TREE_PURPOSE.
e349ee73
MS
4857 * cvt.c (build_type_conversion): Adjust.
4858 * call.c (user_harshness): Adjust.
4859
4860 * method.c (emit_thunk): Call temporary_allocation and
eb66be0e 4861 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
e349ee73
MS
4862
4863 * tree.c (build_cplus_array_type): Handle tweaking of
eb66be0e 4864 TYPE_MAIN_VARIANT here.
e349ee73
MS
4865 * typeck.c (common_type): Not here.
4866
4867 * typeck.c (complete_type): Only try to complete an array type if
eb66be0e 4868 it has a domain.
e349ee73
MS
4869
4870Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
4871
4872 * decl.c (grokvardecl): Call complete_type.
4873 (grokdeclarator): Call complete_type for PARM_DECLs.
4874
4875Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4876
4877 * pt.c (instantiate_class_template): Re-set
eb66be0e 4878 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
e349ee73
MS
4879
4880Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
4881
4882 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
4883 smart enough to do it right.
d11ad92e 4884 * tree.c (cp_expand_decl_cleanup): Likewise.
e349ee73
MS
4885 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
4886 cp_expand_decl_cleanup.
d11ad92e
MS
4887 (store_parm_decls): Likewise.
4888 (hack_incomplete_structures): Likewise.
4889 * except.c (push_eh_cleanup): Likewise.
e349ee73
MS
4890
4891Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
4892
4893 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
4894 frontend to the backend where it belongs.
d11ad92e
MS
4895 * tree.c (unsave_expr): Likewise.
4896 (unsave_expr_now): Likewise.
4897 * tree.def (UNSAVE_EXPR): Likewise.
4898 * cp-tree.h (unsave_expr): Likewise.
4899 (unsave_expr_now): Likewise.
e349ee73
MS
4900
4901Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
4902
4903 * init.c (emit_base_init): Make sure the partial EH cleanups live
4904 on the function_obstack.
4905
ce122a86
MS
4906Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
4907
4908 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
4909 when checking for pointer types.
4910
4911Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
4912
4913 * pt.c (instantiate_class_template): Remove obsolete check for
eb66be0e 4914 access declarations.
ce122a86
MS
4915
4916Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
4917
4918 * call.c (build_overload_call): Simplify calls to
4919 build_overload_call by removing last parameter.
d11ad92e
MS
4920 (build_method_call): Likewise.
4921 * cp-tree.h: Likewise.
4922 * method.c (build_opfncall): Likewise.
4923 * typeck.c (build_x_function_call): Likewise.
ce122a86
MS
4924
4925Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
4926
4927 * call.c (default_parm_conversions): Factor out common code.
4928 (build_method_call): Use it.
4929 (build_overload_call_real): Use it.
4930
4ac14744
MS
4931Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
4932
4933 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
4934 but pedwarn as the code is bogus.
d11ad92e 4935 * typeck.c (decay_conversion): Likewise.
4ac14744
MS
4936 (build_function_call_real): Use build_addr_func instead of
4937 default_conversion. Don't allow pointer-to-method functions down
4938 here.
4939 (build_unary_op): Use real pointer-to-member functions instead of
4940 fake ones.
4941 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
4942 (convert_for_assignment): Removed some obsolete code.
4943 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
4944 build_x_function_call instead of current_class_ptr. Only call
4945 digest_init once on an initializer, we do this just checking
4946 TREE_TYPE.
4947 (build_expr_from_tree): Pass current_class_ref to
4948 build_x_function_call instead of current_class_ptr.
d11ad92e
MS
4949 * init.c (build_member_call): Likewise.
4950 * pase.y: Likewise.
4ac14744
MS
4951 * error.c (dump_expr): Handle OFFSET_REFs better.
4952 * pt.c (unify): Handle pointer-to-member functions better.
4953 * decl.c (finish_function): Clear out current_class_ref just like
4954 we do for current_class_ptr.
4955
4956 * typeck.c (get_delta_difference): Handle virtual bases better.
4957
4958Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
4959
4960 * sig.c (build_signature_table_constructor): Use the delta for
4961 the original basetype for this virtual function with thunks.
4962 (build_signature_method_call): We still need to adjust 'this'
4963 with thunks.
4964
4965Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
4966
4967 * call.c (build_addr_func): New routine. Used to get the `real'
4968 address of a function or a method. Needed to avoid getting a
4969 pointer-to-member function.
4970 (build_call): New routine to build CALL_EXPRs.
4971 (build_method_call): Use it.
d11ad92e
MS
4972 * cvt.c (convert_to_aggr): Likewise.
4973 * typeck.c (build_function_call_real): Likewise.
4ac14744
MS
4974 * sig.c (build_signature_table_constructor): Use build_addr_func.
4975 * cp-tree.h (build_call, build_addr_func): Declare them.
4976
4977Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
4978
4979 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
4980 * parse.y: Remove uses of LOOKUP_AGGR.
4981
4982Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
4983
4984 * *.[chy]: Rename current_class_decl to current_class_ptr, and
4985 C_C_D to current_class_ref.
4986
4987Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4988
4989 * call.c (convert_harshness): Tighten up pointer conversions.
4990
4991Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
4992
4993 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
4994 (finish_file): Likewise.
4995
4996Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
4997
4998 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
4999
5000 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
eb66be0e 5001 code.
4ac14744
MS
5002
5003Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
5004
5005 * decl2.c: Turn on thunks by default where supported.
5006
4dabb379
MS
5007Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
5008
5009 * cp-tree.h (build_overload_call_maybe): Removed.
5010 * call.c (build_overload_call_real): Invert meaning of last arg to
5011 be require_complete.
d11ad92e 5012 (build_overload_call): Likewise.
4dabb379
MS
5013 * typeck.c (build_x_function_call): Use build_overload_call_real
5014 instead of build_overload_call_maybe.
5015
a50f0918
MS
5016Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
5017
5018 * decl2.c (finish_file): Don't try to emit functions that haven't
eb66be0e 5019 been compiled.
a50f0918
MS
5020
5021Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
5022
5023 * decl2.c (finish_vtable_vardecl): Oops.
5024
5025 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
eb66be0e 5026 Also store the bindings from previous_class_values.
a50f0918
MS
5027 (pop_from_top_level): Restore them.
5028
5029Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
5030
5031 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
eb66be0e 5032 symbol has been referenced.
a50f0918
MS
5033 (finish_file): Re-join synthesis/vtable loop with inline emission
5034 loop, disable inlining when an inline is output.
5035
5036Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
5037
5038 * except.c (init_exception_processing): Setup saved_in_catch.
5039 (push_eh_cleanup): Reset __eh_in_catch.
5040 (expand_start_catch_block): Set __eh_in_catch.
5041
5042Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
5043
5044 * except.c (push_eh_cleanup): Add tracking for whether or not we
5045 have an active exception object.
5046 (expand_builtin_throw): Use it to make sure a rethrow without an
5047 exception object is caught.
5048
5049Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
5050
5051 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
eb66be0e 5052 cache.
a50f0918 5053
809c8c30
JM
5054Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
5055
5056 * decl2.c (finish_file): Also use sentries for vars with
eb66be0e
MS
5057 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
5058 created).
809c8c30
JM
5059
5060 * lex.c (handle_cp_pragma): Disable #pragma
eb66be0e 5061 interface/implementation if SUPPORTS_ONE_ONLY > 1.
809c8c30
JM
5062
5063Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
5064
5065 * method.c (emit_thunk): Wrap default case in
eb66be0e 5066 temporary/permanent_allocation.
809c8c30
JM
5067
5068 * method.c (make_thunk): Use DECL_ONE_ONLY.
5069 (emit_thunk): Call assemble_end_function.
5070
46b02c6d
MS
5071Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
5072
5073 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
d11ad92e 5074 (import_export_decl): Likewise.
46b02c6d
MS
5075 (finish_prevtable_vardecl): Disable vtable hack if
5076 SUPPORTS_ONE_ONLY > 1.
5077
5078Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
5079
5080 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
5081 PREDECREMENT_EXPRs take two arguments, not one.
5082
5083Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
5084
5085 * class.c (build_vtable_entry): Don't build thunks for abstract
eb66be0e 5086 virtuals.
46b02c6d
MS
5087
5088 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
eb66be0e 5089 frontend.
46b02c6d
MS
5090
5091Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
5092
5093 * class.c (set_rtti_entry): Use size_zero_node.
d11ad92e 5094 (build_vtable): Likewise.
46b02c6d
MS
5095
5096Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
5097
5098 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
d11ad92e 5099 (prepare_fresh_vtable): Likewise.
46b02c6d
MS
5100
5101Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
5102
5103 * method.c (emit_thunk): Call mark_used on the target function.
5104
5105 * call.c (build_method_call): Don't warn about pending templates.
5106
c7690c68
JM
5107Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5108
5109 * decl2.c (finish_file): Fix list walking logic.
5110
46b02c6d
MS
5111 * typeck2.c (check_for_new_type): Only warn if -pedantic.
5112
5113Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
5114
5115 * class.c (finish_struct_1): Remove old code for
5116 dont_allow_type_definitions.
d11ad92e 5117 * cp-tree.h: Likewise.
46b02c6d
MS
5118 * spew.c: Make sure cp-tree.h is included before parse.h, so the
5119 definition of flagged_type_tree is found before it is used.
d11ad92e 5120 * lex.c: Likewise.
46b02c6d 5121 * parse.y: Added the ftype member to the type union, and changed a
eb66be0e 5122 number of rules to use it instead of ttype. Added calls to
46b02c6d
MS
5123 check_for_new_type() as appropriate.
5124 * typeck2.c (check_for_new_type): New function for checking
5125 if a newly defined type appears in the specified tree.
5126 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
5127 for check_for_new_type().
5128
67d743fe
MS
5129Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
5130
c7690c68
JM
5131 * decl2.c (finish_file): Only use a sentry if the decl is public.
5132
67d743fe
MS
5133 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
5134 don't pass LOOKUP_ONLYCONVERTING.
5135
5136Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
5137
5138 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
5139 properly keeps track of const and volatile type modifiers.
5140
5141Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
5142
5143 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
5144 * pt.c (comp_template_args): Use it.
5145
5146 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
5147 assemble_external for artificial function decls.
5148
5149 * decl.c (cp_finish_decl): Oops.
5150
5151Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
5152
5153 * decl2.c (import_export_decl): Put static data member templates
eb66be0e
MS
5154 into common storage, or make them weak, depending on whether they
5155 are dynamically or statically initialized.
67d743fe
MS
5156 (get_sentry): New function.
5157 (finish_file): Do import_export_decl for static data members before
5158 building the init/fini functions. Don't init/fini a variable that's
5159 EXTERNAL. Use a sentry for variables in common. Fix mismatching
5160 push/pop_temp_slots.
5161 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
eb66be0e 5162 expand_static_init thang.
67d743fe
MS
5163 * method.c (get_id_2): New function.
5164
5165Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
5166
5167 * parse.y (empty_parms): Make sure we use C++-style prototypes
eb66be0e 5168 when we're declaring member functions.
67d743fe
MS
5169
5170Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
5171
5172 * Makefile.in (CONFLICTS): 16 s/r conflicts.
5173 * parse.y (self_template_type): New nonterminal.
5174
a80e4195
MS
5175Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
5176
5177 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
eb66be0e 5178 name.
a80e4195
MS
5179 * parse.y (base_class.1): Allow 'typename foo::bar'.
5180
5181 * lex.c (check_newline): Remove #pragma code that plays with the
eb66be0e
MS
5182 input stream, since we now deal with tokens. Clear nextchar when
5183 we're done.
a80e4195
MS
5184 (handle_cp_pragma): Use real_yylex.
5185 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
5186 in one place.
5187
5188 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
5189
5190 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
5191
5192Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5193
5194 * parse.y: New token SELFNAME for potential constructor.
5195 * spew.c (yylex): Handle it.
5196 * lex.c (identifier_type): Produce it.
5197
5198 * parse.y (complete_type_name): In :: case, don't push class binding.
d11ad92e 5199 (complex_type_name): Likewise.
a80e4195
MS
5200
5201Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
5202
5203 * typeck.c (build_reinterpret_cast): Handle pointer to member
eb66be0e 5204 functions.
a80e4195
MS
5205
5206Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
f72bbc37
BK
5207
5208 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
eb66be0e 5209 pragmas.
f72bbc37 5210 (check_newline): Put the vtable/unit/implementation/interface pragma
eb66be0e 5211 code into handle_cp_pragma, replacing it with a call.
f72bbc37 5212 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
eb66be0e 5213 args. Get the next token after handling the pragma token.
a80e4195
MS
5214
5215Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
5216
5217 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
d11ad92e 5218 (convert_to_pointer_force): Likewise.
a80e4195
MS
5219
5220 * init.c (build_new): Fix array new without -fcheck-new.
5221
5222Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
5223
5224 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
5225 tree.c: Lose TYPE_NESTED_NAME.
5226
5227 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
5228 as identifiers.
5229
5230 * tree.def: Add VEC_INIT_EXPR.
5231 * expr.c (cplus_expand_expr): Handle it.
5232 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
eb66be0e 5233 the extra file-scope symbol nastiness.
a80e4195
MS
5234
5235Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
5236
5237 * method.c (make_thunk): Thunks are static.
5238 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
5239
5240 * decl2.c (mark_vtable_entries): Emit thunks as needed.
5241 (finish_file): Don't emit them here.
5242
5243Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
5244
5245 * rtti.c (build_dynamic_cast): Handle null pointers.
5246 (ifnonnull): New function.
f72bbc37 5247
6b5fbb55
MS
5248Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
5249
a80e4195 5250 * call.c (build_method_call): Remember the original basetype we
eb66be0e
MS
5251 were called with. Give an error message instead of trying
5252 (incorrectly) to call a non-static member function through a
5253 non-inherited class.
a80e4195 5254
6b5fbb55
MS
5255 * search.c (expand_upcast_fixups): Mark the new fixup as
5256 DECL_ARTIFICIAL.
5257
5258Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5259
5260 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
5261
5262 * class.c (set_rtti_entry): Fix for thunks.
5263
5264 * decl2.c (import_export_decl): Still emit typeinfo fns for
5265 cv-variants of builtin types.
5266
5267 * rtti.c (expand_class_desc): Set up base_info_type_node here.
5268 (init_rtti_processing): Instead of here.
5269
5270Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
5271
5272 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
5273 (build_typeid): Only complain about taking dynamic typeid without
5274 -frtti.
5275
5276 * decl2.c: flag_rtti defaults to 1.
5277
5278 * rtti.c (get_tinfo_var): The general class case is now smaller.
5279 (init_rtti_processing): Pack the latter three fields of base_info
5280 into 32 bits.
5281
5282Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
5283
5284 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
5285
5286Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
5287
5288 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
5289 (push_memoized_context): Split out code to undefer pop_type_level to
5290 (clear_memoized_cache): here.
5291 (pop_memoized_context): We can only handle one layer of deferral of
5292 pop_type_level so clear the cache, if there was a previous level.
5293
5294Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5295
5296 * rtti.c (init_rtti_processing): Build up base_info_type_node.
5297 (expand_class_desc): Use one pointer to an array of base_info
5298 structs, passed using a CONSTRUCTOR.
5299
5300Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
5301
5302 * class.c (build_vbase_path): Remove block extern for
5303 flag_assume_nonnull_objects here.
5304 (build_vfn_ref): Split out functionality into build_vtbl_ref.
5305 (build_vtbl_ref): New routine.
5306 (build_vtable): Set up rtti info here.
5307 (add_virtual_function): Note in CLASSTYPE_RTTI the best
5308 place where we can get the rtti pointers from to avoid having to
5309 search around for a place.
d11ad92e
MS
5310 (finish_base_struct): Likewise.
5311 (finish_struct_1): Likewise. Never create totally new vtables
5312 with totally new vtable pointers for rtti. Disable code to layout
5313 vtable pointers better until we want to break binary
5314 compatibility.
6b5fbb55
MS
5315 * rtti.c (build_headof_sub): New routine to convert down to a
5316 sub-object that has an rtti pointer in the vtable.
5317 (build_headof): Use it. Also, use build_vtbl_ref now to be more
5318 maintainable.
5319 (build_dynamic_cast): Make sure we have saved it, if we need to.
5320 * search.c (dfs_init_vbase_pointers): Disable code that deals with
5321 a more efficient vtable layout, enable later.
5322 * call.c (flag_assume_nonnull_objects): Moved declaration to
5323 * cp-tree.h: here. Declare build_vtbl_ref.
5324 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
5325 function calls that want a tree.
5326
5327Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
5328
5329 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
eb66be0e 5330 other X subobjects in the most derived type. Ack.
6b5fbb55
MS
5331
5332 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
eb66be0e 5333 get_typeid will do it for us.
6b5fbb55
MS
5334 (get_typeid_1): Break out call-building for expand_*_desc to use.
5335 (get_typeid): Call it.
d11ad92e 5336 (expand_*_desc): Likewise.
6b5fbb55 5337 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
eb66be0e 5338 and void *.
6b5fbb55
MS
5339 (init_decl_processing): Lose builtin_type_tdescs lossage.
5340 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
5341
5342Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
5343
5344 * pt.c (tsubst): When calling set_nested_typename, use
eb66be0e
MS
5345 TYPE_NESTED_NAME (current_class_type) instead of
5346 current_class_name.
6b5fbb55 5347
d11ad92e
MS
5348 * decl.c (pushdecl): Likewise.
5349 (pushdecl_class_level): Likewise.
6b5fbb55
MS
5350 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
5351 set_nested_typename.
5352
5353Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
5354
5355 * rtti.c (synthesize_tinfo_fn): Handle arrays.
5356
5357 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
5358
5359Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
5360
5361 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
5362 (init_rtti_processing): Lose bad_cast_type.
5363 (build_dynamic_cast): Use throw_bad_cast.
5364
5365 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
5366
5367 * decl2.c (finish_file): Don't synthesize artificial functions
eb66be0e 5368 that are external and not inline.
6b5fbb55
MS
5369
5370 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
5371
5372 * decl2.c (finish_file): Handle having new inlines added to
eb66be0e 5373 saved_inlines by synthesis.
6b5fbb55
MS
5374
5375 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
5376
5377Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5378
5379 RTTI rewrite to initialize nodes as needed, not require that
5380 users #include <typeinfo>, complete functionality and reduce wasted
5381 space.
5382 * rtti.c (init_rtti_processing): New fn.
5383 (build_typeid): The vtable entry is now a function.
5384 (get_tinfo_var): New fn.
d11ad92e 5385 (get_tinfo_fn): Likewise.
6b5fbb55
MS
5386 (get_typeid): Use it.
5387 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
5388 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
5389 points __rtti_*.
5390 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
5391 (synthesize_tinfo_fn): New fn.
5392 * method.c (build_t_desc_overload): Lose.
5393 (build_overload_with_type): More generic.
5394 * decl.c (init_decl_processing): Call init_rtti_processing.
5395 * class.c (set_rtti_entry): Use get_tinfo_fn.
5396 * decl2.c (mark_vtable_entries): Mark the rtti function.
5397 (finish_prevtable_vardecl): Don't build_t_desc.
5398 (import_export_decl): Handle tinfo functions.
d11ad92e 5399 (finish_file): Likewise.
6b5fbb55
MS
5400 * typeck.c (inline_conversion): New fn.
5401 (build_function_call_real): Use it.
5402 * cp-tree.h: Add decls.
5403
5404 * method.c (hack_identifier): Also convert component_refs from
eb66be0e 5405 references.
6b5fbb55
MS
5406
5407 * lex.c (cons_up_default_function): Use the type, not the name, in
eb66be0e 5408 declspecs.
6b5fbb55
MS
5409
5410 * decl2.c (import_export_vtable): Fix weak vtables.
5411
5412Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
5413
5414 * search.c (get_base_distance_recursive): Fix access checks for
eb66be0e 5415 protected bases.
6b5fbb55
MS
5416
5417Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5418
5419 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
5420 cp-tree.h.
5421 (convert_harshness): Add prototypes wrapped by PROTO.
5422 * decl2.c (grok_function_init): Likewise.
5423 (do_toplevel_using_decl): Change to void return type.
5424 * class.c (build_vtable_entry): Remove decl of make_thunk.
5425 (merge_overrides): Fix order of arg definitions.
5426 (finish_vtbls): Likewise.
5427 (fixup_vtable_deltas): Likewise.
5428 (modify_all_direct_vtables): Likewise.
5429 (modify_all_indirect_vtables): Likewise.
5430 * search.c (get_base_distance_recursive): Likewise.
5431 (get_abstract_virtuals_1): Likewise.
5432 (fixup_virtual_upcast_offsets): Likewise.
5433 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
5434 * init.c (perform_member_init): Fix order of arg definitions.
5435 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
5436 * cp-tree.h (make_thunk): Add decl.
5437 (overload_template_name, push_template_decl): Add decls.
5438 (do_toplevel_using_decl): Change to void return type.
5439 (vec_binfo_member): Add decl.
5440
cdf5b885
MS
5441Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5442
5443 * typeck.c (mark_addressable, convert_for_assignment,
5444 convert_for_initialization, pointer_int_sum, pointer_diff,
5445 unary_complex_lvalue): Add prototypes wrapped by PROTO.
5446 (convert_sequence): #if 0 fn decl, since definition also is.
5447
5448Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
5449
5450 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
5451 cast to pointer types for type searching.
5452
5453Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5454
5455 * typeck.c (get_delta_difference): Use cp_error, not error, in the
5456 case where BINFO == 0.
5457
5458Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
5459
5460 * call.c (build_method_call): Fix wording of error messages so
5461 constructors come out right.
5462
5463Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
5464
5465 * decl.c (push_overloaded_decl): Don't warn about hidden
5466 constructors when both the type and the function are declared
5467 in a system header file.
5468
c91a56d2
MS
5469Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
5470
5471 * class.c (finish_struct_1): Propagate the TYPE_PACKED
5472 flag for the type to the type's fields.
5473
5474Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5475
5476 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
5477
5478Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
5479
5480 * class.c (base_info, finish_base_struct): Replace
5481 needs_virtual_dtor with base_has_virtual.
5482
5483 (finish_struct_1): Remove the old code that tried to make default
eb66be0e
MS
5484 destructors virtual. Use base_has_virtual when checking if we need
5485 to add a vtable entry for the rtti code.
c91a56d2
MS
5486
5487Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
5488
5489 * pt.c (push_template_decl): Complain about template decl with
eb66be0e 5490 inappropriate declaration.
c91a56d2
MS
5491
5492Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
5493
5494 * typeck.c (build_x_unary_op): Remove bogus check for taking
5495 the address of a member function.
5496
5497Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
5498
5499 * parse.y (constructor_declarator): Only push the class if
5500 we are not already in the class.
5501
5502Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
6752b7d4
JL
5503
5504 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
5505 Add additional argument to INIT_CUMULATIVE_ARGS.
5506
c91a56d2
MS
5507Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
5508
5509 * decl.c (shadow_tag): Fix error about anon union with methods.
5510
5511 * parse.y (self_reference): Only generate a self-reference if this
eb66be0e 5512 is a non-template class.
c91a56d2
MS
5513 (opt.component_decl_list): Only use it if it was generated.
5514
5515 * parse.y (component_decl_1): Use constructor_declarator.
d11ad92e
MS
5516 (fn.def2): Likewise.
5517 (notype_component_declarator0): Likewise.
c91a56d2
MS
5518
5519Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
5520
5521 * typeck.c (build_x_unary_op): Add checks for taking the address
5522 of a TARGET_EXPR or of a member function, and give appropriate
5523 warnings.
5524
5525Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
5526
5527 * pt.c (process_template_parm): Allow template type parms to be
eb66be0e 5528 used as types for template const parms.
c91a56d2
MS
5529
5530Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
5531
5532 * init.c (expand_vec_init): Ensure the eh cleanups are on the
5533 function_obstack.
5534
5535Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
5536
5537 * decl.c (lookup_name_real): Be even more picky about the
eb66be0e 5538 ambiguous lookup warning.
c91a56d2
MS
5539 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
5540 * parse.y (constructor_declarator): Rather than here.
5541
5542 * parse.y (constructor_declarator): New nonterminal.
5543 (fn.def1): Use it.
d11ad92e 5544 (explicit_instantiation): Likewise.
c91a56d2
MS
5545
5546Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5547
5548 Add implicit declaration of class name at class scope.
5549 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
5550 * parse.y (self_reference): New nonterminal.
5551 (opt.component_decl_list): Use it.
5552 (fn.def1): Add nested_name_specifier type_name cases.
5553 * class.c (build_self_reference): New function.
5554 (finish_struct): Handle access_default later, move self-reference
5555 decl to the end.
5556 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
5557 * cp-tree.h: Adjust.
5558
5559 * pt.c (do_function_instantiation): Separate handling of member
eb66be0e 5560 functions and non-member functions properly.
c91a56d2
MS
5561
5562Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
5563
5564 * pt.c (process_template_parm): Improve error for 'volatile class K'.
5565
5566 * class.c (finish_struct_1): Check the right slot for destructors.
5567
5568 * decl.c (start_enum): Complain about enum templates.
5569
5570Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
5571
5572 * init.c (resolve_offset_ref): Offset pointers to member data by one.
d11ad92e 5573 * typeck.c (unary_complex_lvalue): Likewise.
c91a56d2
MS
5574
5575Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
5576
5577 * typeck.c (c_expand_return): Check for a returned local
5578 array name, similar to the check for an ADDR_EXPR.
5579
5580Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
5581
5582 * decl.c (cp_finish_decl): Don't build cleanups for static
eb66be0e 5583 variables here.
c91a56d2
MS
5584
5585Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
5586
5587 * typeck.c (build_modify_expr): Fix error messages to be more
5588 accurate.
5589 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
5590 assignment operators.
d11ad92e 5591 * error.c (assop_as_string): Likewise. Add support for `%Q' for
c91a56d2
MS
5592 assignment operators.
5593
909e536a
MS
5594Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
5595
c91a56d2 5596 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
eb66be0e
MS
5597 give an error if initialized. Pedwarn about nested type with the
5598 same name as its enclosing class.
c91a56d2 5599
909e536a
MS
5600 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
5601
5602 * typeck.c (require_complete_type): Be sure to instantiate the
eb66be0e 5603 MAIN_VARIANT of the type.
909e536a
MS
5604
5605 * decl2.c (finish_file): Instantiate pending templates before
eb66be0e 5606 processing static constructors and destructors.
909e536a
MS
5607
5608 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
eb66be0e 5609 unless at_eof.
909e536a
MS
5610
5611Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
5612
5613 * decl2.c (delete_sanity): If error_mark_node is passed
5614 in as an expression, quit while we're ahead.
5615
5616 * decl.c (grokdeclarator): Give an error message if `friend'
5617 is combined with any storage class specifiers.
5618
fc378698
MS
5619Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
5620
5621 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
eb66be0e 5622 definition of nonexistent nested type.
fc378698
MS
5623
5624 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
eb66be0e 5625 not to say 'typedef'.
fc378698
MS
5626
5627Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5628
5629 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
5630 * search.c (dfs_walk, dfs_init_vbase_pointers,
5631 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
5632 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
5633
5634Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
5635
5636 * except.c (build_throw): Support minimal parse.
5637 * pt.c (tsubst_copy): Support THROW_EXPR.
d11ad92e 5638 * decl2.c (build_expr_from_tree): Likewise.
fc378698
MS
5639
5640 * pt.c (mangle_class_name_for_template): Always allocate
eb66be0e 5641 scratch_firstobj.
fc378698
MS
5642
5643Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
5644
5645 * cvt.c (cp_convert_to_pointer): Give an appropriate error
5646 when trying to cast from an incomplete type.
5647
5648Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5649
5650 * pt.c (instantiate_class_template): Don't bother setting up
eb66be0e
MS
5651 CLASSTYPE_TAGS explicitly, as the nested types will add
5652 themselves.
fc378698
MS
5653
5654Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
5655
5656 * decl.c (shadow_tag): Remove old error check for usage of
5657 an enum without a previous declaration.
5658 (xref_tag): Add error message about usage of enums without a
5659 previous declaration.
5660
5661Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
5662
5663 * lex.c (do_identifier): Only do name consistency check if we're
eb66be0e 5664 parsing.
fc378698
MS
5665
5666 * pt.c (push_template_decl): Don't crash if we get a member defn
5667 that doesn't match.
5668
5669 * decl.c (xref_tag_from_type): New function to do an xref without
eb66be0e 5670 always having to figure out code_type_node.
fc378698
MS
5671 * cp-tree.h: Declare it.
5672 * pt.c (instantiate_class_template): Use it for friend classes.
eb66be0e 5673 (lookup_template_class): Use it.
fc378698
MS
5674
5675 * typeck2.c (build_functional_cast): Pull out a single parm before
eb66be0e 5676 passing it to build_c_cast.
fc378698
MS
5677
5678Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
5679
5680 * expr.c (do_case): Give an error message if a pointer is
5681 given as a case value.
5682
5683Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
5684
5685 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
eb66be0e 5686 an overload list.
fc378698
MS
5687
5688 * lex.c (cons_up_default_function): Really, now, interface hackery
eb66be0e 5689 does not apply to synthesized methods.
fc378698
MS
5690
5691Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
5692
5693 * call.c (build_method_call): Ctors and dtors now have special names
5694 with respect to lookups.
d11ad92e
MS
5695 * class.c (add_method): Likewise.
5696 (grow_method): Likewise.
5697 (finish_struct_methods): Likewise.
5698 (warn_hidden): Likewise.
5699 (finish_struct_1): Likewise.
5700 * cvt.c (convert_to_reference): Likewise.
5701 (convert_to_aggr): Likewise.
5702 (cp_convert): Likewise.
5703 * decl2.c (check_classfn): Likewise.
5704 * init.c (expand_member_init): Likewise.
5705 (expand_default_init): Likewise.
5706 (expand_aggr_init_1): Likewise.
5707 (build_offset_ref): Likewise.
5708 (build_new): Likewise.
5709 (build_delete): Likewise.
5710 * lex.c (do_inline_function_hair): Likewise.
5711 * search.c (lookup_field_1): Likewise.
5712 (lookup_fnfields_here): Likewise.
5713 (lookup_field): Likewise.
5714 (lookup_fnfields): Likewise.
5715 (get_virtual_destructor): Likewise.
5716 (dfs_debug_mark): Likewise.
5717 (dfs_pushdecls): Likewise.
5718 (dfs_compress_decls): Likewise.
5719 * tree.c (layout_basetypes): Likewise.
5720 * typeck.c (build_component_ref): Likewise.
5721 (build_x_function_call): Likewise.
5722 (build_modify_expr): Likewise.
5723 (convert_for_initialization): Likewise.
5724 (build_functional_cast): Likewise.
5725 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
fc378698
MS
5726 (CTOR_NAME): New.
5727 (DTOR_NAME): New.
5728 * decl.c (ctor_identifier): New.
5729 (dtor_identifier): New.
5730 (init_decl_processing): Set them.
5731
5732Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
5733
5734 * typeck.c (build_component_ref): Don't get confused by fields whose
5735 context has no type name, like pointer to member functions.
5736
5737Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
5738
5739 * decl.c (grokdeclarator): Handle typedef without declarator.
5740
5741 * pt.c (tsubst): Handle SCOPE_REF in declarator.
5742
5743 * parse.y (bad_parm): Catch another case of missing `typename'.
5744
5745 * lex.c (yyprint): Handle TYPE_DECLs.
5746
5747 * decl.c (start_function): Don't try to be clever.
5748
5749 * lex.c: Lose compiler_error_with_decl.
5750 * typeck2.c: Lose error_with_aggr_type.
5751 (incomplete_type_error): Use cp_* instead of old functions.
d11ad92e
MS
5752 (readonly_error): Likewise.
5753 * typeck.c (convert_arguments): Likewise.
5754 * search.c (lookup_nested_field): Likewise.
5755 * method.c (make_thunk): Likewise.
5756 * decl.c (grokparms): Likewise.
fc378698
MS
5757 * cp-tree.h: Update.
5758
5759 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
eb66be0e 5760 and value.
fc378698
MS
5761
5762Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
5763
5764 * method.c (build_opfncall): When deleting a pointer to an
5765 array, build a new pointer to the tree past any ARRAY_TYPE
5766 nodes.
5767
5768Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5769
5770 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
5771
5772Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
5773
5774 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
eb66be0e 5775 and ! DECL_INLINE.
fc378698
MS
5776
5777 * decl.c (finish_function): Don't set nested based on
eb66be0e 5778 hack_decl_function_context.
fc378698 5779 * parse.y (function_try_block): Check for nested function.
d11ad92e 5780 (pending_inlines): Likewise.
fc378698
MS
5781
5782 * decl2.c (build_expr_from_tree): If a unary op already has a
eb66be0e 5783 type, just return it.
fc378698
MS
5784
5785 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
5786
5787 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
5788 (finish_file): Check the return value of walk_vtables.
5789 (finish_prevtable_vardecl): Return int.
d11ad92e
MS
5790 (finish_vtable_vardecl): Likewise.
5791 (prune_vtable_vardecl): Likewise.
5792 * lex.c (set_vardecl_interface_info): Likewise.
fc378698
MS
5793 * cp-tree.h: Adjust return types.
5794
5795 * class.c (delete_duplicate_fields_1): Don't complain about
eb66be0e 5796 duplicate nested types if they're the same type.
fc378698
MS
5797 (finish_struct): Remove check for duplicate.
5798 * decl2.c (grokfield): Don't check for typedef of anonymous type.
5799
5800Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
5801
5802 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
5803
5804 * decl.c (grokdeclarator): Lose special handling of class-level
eb66be0e
MS
5805 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
5806 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
fc378698
MS
5807
5808 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
5809
5810 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
5811
5812 * search.c (compute_access): Fix handling of anonymous union
eb66be0e 5813 members.
fc378698 5814 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
eb66be0e 5815 from anonymous unions to their members.
fc378698
MS
5816
5817 * typeck.c (build_x_function_call): For static member functions,
eb66be0e 5818 hand off to build_member_call.
fc378698
MS
5819
5820Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
5821
5822 * typeck.c (build_component_ref): Handle OFFSET_REFs.
5823
5824 * init.c (expand_vec_init): Fix init == 0 case.
5825
5826Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
5827
5828 * init.c (build_new): Pedwarn about init and array new.
eb291d05 5829 (expand_vec_init): Handle lists, use convert_for_initialization.
fc378698
MS
5830
5831 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
eb66be0e 5832 when converting to an aggregate type.
fc378698
MS
5833 * cvt.c (cp_convert): Pass it through.
5834
5835 * typeck.c (build_conditional_expr): Handle user-defined
eb66be0e 5836 conversions to slightly different types.
fc378698
MS
5837
5838 * decl.c (grokdeclarator): Force an array type in a parm to be
eb66be0e 5839 permanent.
fc378698
MS
5840
5841 * decl2.c (do_using_directive): Sorry.
d11ad92e 5842 (do_namespace_alias): Likewise.
fc378698
MS
5843 * lex.c (real_yylex): Warn about using the `namespace' keyword.
5844
5845Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5846
5847 * parse.y (datadef): Move call to note_list_got_semicolon up.
5848
934c6b13
MS
5849Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
5850
5851 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
5852
5853Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
5854
5855 * decl.c (cp_finish_decl): The exception regions have to be
5856 nested, not overlapping. We start the exception region for a
5857 decl, after it has been fully built, and all temporaries for it
5858 have been cleaned up.
5859
5860Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
5861
5862 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
5863
e76a2646
MS
5864Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
5865
5866 * tree.def: Add RETURN_INIT.
5867 * pt.c (instantiate_decl): Handle RETURN_INIT.
5868 * decl.c (store_return_init): Handle minimal_parse_mode.
5869
5870 * tree.c (cp_build_type_variant): Just return an error_mark_node.
5871 * decl.c (make_typename_type): Don't try to get the file and line
eb66be0e 5872 of an identifier.
e76a2646
MS
5873 * typeck.c (comptypes): Handle TYPENAME_TYPE.
5874
5875Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
5876
5877 * decl.c (poplevel): Make sure we clear out and restore old local
5878 non-VAR_DECL values by default when they go out of scope.
5879
5880Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
5881
5882 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
eb66be0e 5883 referring to addresses of variables and functions.
e76a2646
MS
5884
5885 * error.c (dump_expr): Support SIZEOF_EXPR.
5886
5887 * init.c (do_friend): Use the return value of check_classfn.
5888
5889 * typeck.c (convert_arguments): Call complete_type.
5890
5891 * method.c (hack_identifier): After giving an error, set value to
eb66be0e 5892 error_mark_node.
e76a2646
MS
5893
5894Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
5895
5896 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
eb66be0e 5897 lossage for local classes.
e76a2646
MS
5898 * cp-tree.h: Declare it.
5899 * decl.c (lookup_name_real): Evil, painful hack for local classes.
5900 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
5901 Use hack_decl_function_context.
5902 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
5903 (start_function): Use hack_decl_function_context.
d11ad92e
MS
5904 (finish_function): Likewise.
5905 * method.c (synthesize_method): Likewise.
5906 * lex.c (process_next_inline): Likewise.
5907 (do_pending_inlines): Likewise.
e76a2646 5908 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
eb66be0e 5909 done with it.
e76a2646
MS
5910
5911Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
5912
5913 * sig.c (build_signature_pointer_or_reference_type): Align
5914 signature pointers/references on 8-byte boundaries so they can be
5915 grabbed 2 words at a time on a Sparc.
5916
5917Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
5918
5919 * method.c (hack_identifier): Requiring a static chain is now a
eb66be0e 5920 hard error.
e76a2646 5921 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
eb66be0e 5922 functions.
e76a2646
MS
5923
5924Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5925
5926 * init.c (build_offset_ref): Call complete_type.
5927
5928 * decl.c (pop_from_top_level): Always pop previous_class_type.
5929
5930 * parse.y: Handle multiple decls in a for-init-statement.
d11ad92e 5931 * pt.c (tsubst_expr): Likewise.
e76a2646
MS
5932
5933 * pt.c (tsubst): Use tsubst_expr for the second operand of an
eb66be0e 5934 ARRAY_REF.
e76a2646
MS
5935
5936 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
5937 (poplevel_class): Set it here.
5938 (pop_from_top_level): Pop it here if we're returning to class scope.
5939 * class.c (pushclass): Don't set it here.
5940
5941 * decl.c (maybe_push_to_top_level): Save current_template_parms,
eb66be0e 5942 and clear it if !pseudo.
e76a2646
MS
5943 (pop_from_top_level): Restore it.
5944
5945 * decl2.c (finish_file): Push the dummy each time we walk the list
eb66be0e 5946 of vtables.
e76a2646
MS
5947
5948 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
eb66be0e 5949 something for CAST_EXPR.
e76a2646
MS
5950
5951Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
5952
5953 * cvt.c (cp_convert): Warn about implicit conversion of the
5954 address of a function to bool, as it is always true.
5955
5956Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
5957
5958 * typeck.c (c_expand_return): Fix warning for local externs returned.
5959
5960Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
5961
5962 * tree.c (mapcar): Propagate const and volatile properly.
5963
5964 * typeck.c (complete_type): Be sure to instantiate the
eb66be0e 5965 MAIN_VARIANT of the type.
e76a2646
MS
5966
5967 * method.c (synthesize_method): Class interface hackery does not
5968 apply to synthesized methods.
5969
5970Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
5971
5972 * pt.c (comp_template_args): Use comptypes rather than just
eb66be0e 5973 checking for TEMPLATE_TYPE_PARM equivalence.
e76a2646
MS
5974
5975 * typeck.c (build_x_function_call): Call complete_type before
eb66be0e 5976 checking TYPE_OVERLOADS_CALL_EXPR.
e76a2646 5977
7ea63af7
MH
5978Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
5979
5980 * g++.c (main): Check also for new define ALT_LIBM.
5981
ec255269
MS
5982Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5983
5984 * pt.c (instantiate_class_template): If we don't have a pattern
eb66be0e 5985 yet, that's OK.
ec255269
MS
5986 (coerce_template_parms): If we see a local class, bail.
5987
5988 * decl.c (grok_reference_init): Make sure there's a type before
eb66be0e 5989 checking its code.
ec255269
MS
5990
5991 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
d11ad92e 5992 (push_template_decl): Likewise.
ec255269
MS
5993
5994 * parse.y (named_class_head): Set
eb66be0e 5995 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
ec255269
MS
5996
5997 * decl.c (xref_tag): Diagnose redeclaration of template
eb66be0e 5998 type-parameter name.
ec255269
MS
5999
6000 * error.c (dump_type): Handle anonymous template type parms.
6001
6002 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
eb66be0e 6003 TYPE_STUB_DECL.
d11ad92e 6004 (coerce_template_parms): Likewise.
ec255269
MS
6005
6006Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
6007
6008 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
6009 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
6010
6011Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
6012
6013 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
eb66be0e 6014 before trying to get its STUB_DECL.
d11ad92e 6015 (coerce_template_parms): Likewise.
ec255269
MS
6016
6017 * parse.y (template_type_parm): If they didn't use 'class',
eb66be0e 6018 pretend they did after giving an error.
ec255269
MS
6019
6020 * pt.c (coerce_template_parms): Diagnose use of local class.
6021
6022 * decl.c (grok_reference_init): Use instantiate_type.
6023
6024 * error.c (dump_expr): Handle TEMPLATE_DECLs.
6025
6026 * parse.y (named_class_head): Diagnose mismatching types and tags.
6027
6028 * decl.c (pushdecl): Type decls and class templates clash with
eb66be0e 6029 artificial type decls, not hide them.
ec255269
MS
6030
6031 * decl.c (redeclaration_error_message): Diagnose redefinition of
eb66be0e 6032 templates properly.
ec255269
MS
6033 (duplicate_decls): Diagnose disallowed overloads for template
6034 functions, too.
6035
6036 * decl.c (start_decl): Call complete_type before checking for a
eb66be0e 6037 destructor.
ec255269
MS
6038
6039 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
6040
6041 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
6042
5566b478
MS
6043Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
6044
ec255269 6045 * decl.c (grok_op_properties): Don't check for operator++(int) in
eb66be0e 6046 a template.
ec255269
MS
6047
6048 * tree.c (perm_manip): Return a copy of variable and function
eb66be0e 6049 decls with external linkage.
ec255269
MS
6050
6051 * tree.def: Change some of the min tree codes to type "1".
6052 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
6053 * method.c (build_overload_int): Emit something arbitrary for
eb66be0e 6054 anything but an INTEGER_CST if we're in a template.
ec255269
MS
6055
6056 * decl.c (cp_finish_decl): Call complete_type before deciding
eb66be0e 6057 whether or not to lay out the decl.
ec255269 6058
5566b478
MS
6059 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
6060
6061Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
6062
6063 * typeck2.c (build_x_arrow): Call complete_type.
6064
6065 * pt.c (add_pending_template): Broken out.
eb66be0e
MS
6066 (lookup_template_class): If -fexternal-templates, call it for all
6067 the methods of implemented types.
5566b478
MS
6068 (instantiate_class_template): Instead of instantiating them here.
6069 (instantiate_decl): Handle -fexternal-templates earlier.
6070
6071Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6072
6073 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
6074 memoized lookup stuff inside GATHER_STATISTICS.
6075
6076Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
6077
6078 * decl.c (start_decl): Complain about array of incomplete type
6079 here.
6080 (grokdeclarator): Not here.
6081
6082 * parse.y (template_parm): Expand full_parm inline so we can set
eb66be0e 6083 the rule's precedence.
5566b478
MS
6084
6085 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
6086 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
6087 * decl2.c (grokbitfield): Don't check for integer constant here.
6088 * class.c (finish_struct_1): Check here.
6089
6090 * decl.c (define_label): Make the min decl go on permanent_obstack.
6091
6092 * pt.c (unify): Don't handle CONST_DECLs.
6093 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
d11ad92e 6094 (tsubst_copy): Likewise.
5566b478
MS
6095
6096 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
eb66be0e 6097 CONST_DECL for a template parm.
5566b478
MS
6098
6099Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
6100
6101 * decl.c (grokdeclarator): Complain about array of incomplete type
6102 here.
6103 (start_decl_1): Not here.
6104
6105 * pt.c (tsubst): Handle pointer-to-function declarators.
6106
6107 * method.c (hack_identifier): If pedantic, diagnose local class
eb66be0e 6108 methods that require a static chain.
5566b478
MS
6109
6110 * decl.c (grok_op_properties): No longer static.
6111 * cp-tree.h: Declare it.
6112 * pt.c (tsubst): Call it for operators.
6113 Use tsubst_copy for TREE_VECs.
6114
6115 * parse.y (template_arg): The expr has precedence like '>'.
6116
6117Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
6118
6119 * pt.c (coerce_template_parms): Don't coerce an expression using
eb66be0e 6120 template parms.
5566b478
MS
6121 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
6122 (tsubst): Don't use build_index_2_type if the max_value uses template
6123 parms.
6124 * method.c (build_overload_int): Emit something arbitrary for an
eb66be0e 6125 expression using template parms.
5566b478
MS
6126
6127 * parse.y (template_close_bracket): New non-terminal to catch use
eb66be0e 6128 of '>>' instead of '> >' in template class names.
5566b478
MS
6129 (template_type): Use it.
6130 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
6131
6132 * tree.def: Add CAST_EXPR.
6133 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
eb66be0e 6134 CONVERT_EXPR for minimal_parse_mode.
d11ad92e
MS
6135 * typeck.c (build_c_cast): Likewise.
6136 * pt.c (tsubst_copy): Likewise.
6137 * decl2.c (build_expr_from_tree): Likewise.
6138 * error.c (dump_expr): Likewise.
5566b478
MS
6139
6140Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6141
6142 * except.c (SetTerminate, SetUnexpected): Put back global vars.
6143 (init_exception_processing): Put back decl/init of
6144 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
6145 fns from libstdc++.
6146
6147 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
6148 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
6149 Delete unused fns.
6150 * cp-tree.h (declare_uninstantiated_type_level,
6151 uninstantiated_type_level_p): Delete prototypes.
6152
6153Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
6154
6155 * pt.c (tsubst_expr): Add default return.
6156
6157Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6158
6159 * error.c (fndecl_as_string): Delete unused arg CNAME.
6160 * sig.c (build_signature_table_constructor,
6161 build_signature_method_call): Fix calls.
6162
6163 * class.c (the_null_vtable_entry): Delete var definition.
6164 (init_class_processing): Delete tree the_null_vtable_entry init.
6165 * decl.c (no_print_{functions, builtins}): Declare as static.
6166 (__tp_desc_type_node): #if 0 var definition.
6167 (init_type_desc): #if 0 init of __tp_desc_type_node.
6168 (vb_off_identifier): Move var decl into init_decl_processing.
6169 (current_function_assigns_this): Declare as static.
6170 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
6171 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
6172 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
6173 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
6174 * init.c (BI_header_type, BI_header_size): Declare as static.
6175 * pt.c (template_classes): Delete unused var.
6176 (add_pending_template): Delete decl for non-existent fn.
6177 (lookup_template_class): Delete vars CODE and TAG_CODE.
6178 (instantiate_template): Delete unused var TARGS.
6179 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
6180 Delete decls.
6181 (__tp_desc_type_node): #if 0 var decl.
6182 (fndecl_as_string): Fix prototype.
6183
6184Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
6185
6186 * tree.def: Add GOTO_STMT.
6187 * pt.c (tsubst_expr): Support goto and labels.
6188 * decl.c (define_label): Support minimal parsing.
d11ad92e 6189 * parse.y (simple_stmt): Likewise.
5566b478
MS
6190
6191Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6192
6193 * xref.c (GNU_xref_member): Only define/set var I if
6194 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
6195 used.
6196 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
6197 (GNU_xref_end): Fix call.
6198 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
6199 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
6200
6201 * tree.c (build_exception_variant): Delete unused vars I, A, T,
6202 T2, and CNAME.
6203 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
6204 (mapcar): Delete unused var CODE.
6205 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
6206 (break_out_cleanups): Fix call.
6207 (bot_manip): Likewise.
6208 * call.c (build_method_call): Likewise.
6209 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
6210 Likewise.
6211 * typeck.c (unary_complex_lvalue, build_modify_expr,
6212 convert_for_initialization): Likewise.
6213 * typeck2.c (build_functional_cast): Likewise.
6214 * cp-tree.h (build_cplus_new): Fix prototype.
6215
6216 * repo.c (open_repo_file): Delete unused var Q.
6217 (repo_compile_flags, repo_template_declared,
6218 repo_template_defined, repo_class_defined, repo_inline_used,
6219 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
6220 (repo_get_id, repo_vtable_used): Declare as static.
6221 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
6222 prototypes.
6223
6224Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
6225
6226 * parse.y (pending_inlines): Add function_try_block case.
6227
6228 * pt.c (unify): Fix for template const parms.
6229
6230Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6231
6232 * lex.c (extract_interface_info): Delete forward decl.
6233 (default_copy_constructor_body, default_assign_ref_body): Delete
6234 decls for non-existent functions.
6235 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
6236 (init_lex): Delete setting them.
6237 (cons_up_default_function): Delete unused vars FUNC_BUF,
6238 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
6239 #if 0'd synth code.
6240 (toplevel, expression_obstack): Delete unused extern decls.
6241 (tree_node_kind): Delete unused enum.
6242 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
6243 GATHER_STATISTICS.
6244 (tree_node_kind_names): Delete unused extern decl.
6245 (synth_obstack): Delete unused var.
6246 (init_lex): Don't set it.
6247 (init_parse): Add decl before use.
6248 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
6249 (current_unit_{name, language}): Delete unused vars.
6250 (check_newline): Don't bother setting them, just accept the #pragma.
6251 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
6252 (current_unit_{name, language}): Delete decls.
6253
6254 * search.c: Wrap all of the memoized functions, macros, and
6255 variables inside #ifdef GATHER_STATISTICS.
6256 (lookup_field, lookup_fnfields): Likewise.
6257 (init_search_processing): Likewise.
6258 (reinit_search_statistics): Wrap whole function.
6259 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
6260
6261 * decl.c (finish_function): Only call pop_memoized_context if
6262 GATHER_STATISTICS is defined.
6263 (start_function): Likewise for push_memoized_context.
6264 * class.c (pushclass, popclass): Likewise.
6265
6266 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
6267 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
6268
6269 * cvt.c (cp_convert): Delete unused local var FORM.
6270 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
6271 prototypes.
6272
6273Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
6274
6275 * pt.c (do_poplevel): Oops; really return what we get from
eb66be0e 6276 poplevel this time.
5566b478
MS
6277
6278Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6279
6280 * cp-tree.h (is_aggr_type): Add prototype.
6281
6282 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
6283 * method.c ({push,pop}_cp_function_context): Delete decls.
6284 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
6285 (SetUnexpected, SetTerminate): Delete unused vars.
6286 (init_exception_processing): Don't set SetUnexpected or
6287 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
6288 (output_exception_table_entry): Delete unused array LABEL.
6289 (expand_internal_throw): Delete unused var PARAMS.
6290 (expand_start_catch_block): Delete unused var CLEANUP.
6291 (emit_exception_table): Delete unused var EH_NODE_DECL.
6292 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
6293 GOTO_UNWIND_AND_THROW. Don't set them.
6294 (end_eh_unwinder): Add top decl.
6295 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
6296 (exception_section, push_rtl_perm, do_function_call,
6297 lang_interim_eh, push_eh_cleanup, eh_outer_context,
6298 expand_end_eh_spec, end_eh_unwinder): Declare as static.
6299 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
6300 throw_used): Likewise.
6301 * cp-tree.h (expand_end_eh_spec): Delete prototype.
6302
6303 * search.c (dfs_mark, dfs_mark_vtable_path,
6304 dfs_unmark_vtable_path, dfs_mark_new_vtable,
6305 dfs_unmark_new_vtable, dfs_clear_search_slot,
6306 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
6307 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
6308 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
6309 functions.
6310 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
6311 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
6312 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
6313 Only define #ifdef GATHER_STATISTICS.
6314 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
6315 is defined.
6316 (vbase_decl): Delete var definition.
6317 (init_search): Delete old decl.
6318 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
6319 never actually used.
6320 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
6321 (get_base_distance_recursive): Delete unused fourth arg
6322 BASETYPE_PATH. Fix call .
6323 (get_base_distance): Fix call.
6324 (push_class_decls): Delete unused var ID.
6325 (make_memoized_table_entry): Declare as static.
6326 (breadth_first_search): Declare as static.
6327 (tree_has_any_destructor_p): Declare as static.
6328 (pop_class_decls): Delete unused arg pop_class_decls.
6329 * class.c (popclass): Fix call to pop_class_decls.
6330 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
6331 tree_has_any_destructor_p): Delete prototypes.
6332
6333 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
6334 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
6335 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
6336 (build_user_desc): Delete unused var T.
6337 (build_class_desc): Delete unused vars T and OFF.
6338 (build_t_desc): Delete unused var NAME_STRING.
6339 (build_headof): Make static.
6340 (get_bad_cast_node): Likewise.
6341 (get_def_to_follow): Likewise.
6342 * cp-tree.h (init_type_desc): Add prototype.
6343 (build_headof): Remove prototype.
6344
6345Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
6346
6347 * pt.c (tsubst): Only look for matching decls at file scope for
eb66be0e 6348 non-member functions.
5566b478
MS
6349
6350 * call.c (build_scoped_method_call): Handle scoped destructor
eb66be0e 6351 calls in templates.
5566b478
MS
6352
6353 * decl.c (*_top_level): Also save previous_class_values.
6354
6355 * pt.c (tsubst_expr): Support do {} while loops.
d11ad92e
MS
6356 * parse.y (simple_stmt): Likewise.
6357 * tree.def: Likewise.
5566b478
MS
6358
6359 * method.c (build_overload_identifier): For a class nested in a
eb66be0e
MS
6360 template class, don't mangle in the template parms from our
6361 context.
5566b478
MS
6362
6363 * lex.c, cp-tree.h: Remove support for template instantiations in
eb66be0e 6364 the pending_inlines code.
5566b478
MS
6365 * pt.c: Remove dead functions and unused arguments.
6366 (uses_template_parms): TYPENAME_TYPEs always use template parms.
6367 * parse.y: Stop passing anything to end_template_decl.
6368 * tree.c (print_lang_statistics): Only print tinst info #ifdef
eb66be0e 6369 GATHER_STATISTICS.
5566b478
MS
6370
6371Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6372
6373 * init.c (expand_recursive_init{,_1}): Delete decls.
6374 (sort_member_init): Delete unused var INIT.
6375 (emit_base_init): Delete unused var X.
6376 (build_offset_ref): Delete unused var CNAME.
6377 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
6378 (emit_base_init): Delete unused local var BASE. Delete extern
6379 decl of IN_CHARGE_IDENTIFIER.
6380 (build_delete): Delete unused local var VIRTUAL_SIZE.
6381
6382 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
6383 (build_delete): Fix call.
6384 * decl2.c (delete_sanity): Likewise.
6385 * cp-tree.h (build_vec_delete): Update prototype.
6386
6387 * typeck.c (common_base_type): Delete unused var TMP.
6388 (build_binary_op): Delete local var ARGS_SAVE.
6389 (build_array_ref): Delete unused var ITYPE.
6390 (c_expand_return): Delete unused var USE_TEMP.
6391
6392 * typeck.c (compexcepttypes): Delete unused arg STRICT.
6393 (comptypes): Fix calls.
6394 * decl.c (duplicate_decls): Likewise.
6395 * cp-tree.h (compexcepttypes): Delete extra arg.
6396
6397 * decl2.c (check_classfn): Delete unused second arg CNAME.
6398 * decl.c (start_decl, grokfndecl): Fix calls.
6399 * init.c (do_friend): Likewise.
6400 * cp-tree.h (check_classfn): Update prototype.
6401
6402 * cp-tree.h (signature_error, import_export_vtable,
6403 append_signature_fields, id_in_current_class, mark_used,
6404 copy_assignment_arg_p): Add decls.
6405 * decl2.c (mark_used): Delete decl.
6406
6407 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
6408
6409 * class.c (get_vtable_entry): Diable unused function.
6410 (doing_hard_virtuals): Delete unused static global var.
6411 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
6412 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
6413 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
6414 (modify_one_vtable): Delete unused var OLD_RTTI.
6415 (finish_struct_anon): Delete unused vars OFFSET and X.
6416 (finish_struct_bits): Delete unused var METHOD_VEC.
6417 (get_basefndecls): Delete unused var PURPOSE. Delete unused
6418 for-scope local variable METHODS.
6419
6420 * call.c (user_harshness): Delete unused/unneeded arg PARM.
6421 (ideal_candidate): Delete unused args BASETYPE and PARMS.
6422 (build_method_call): Delete unused args passed into ideal_candidate.
6423 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
6424 * cp-tree.h (synthesize_method): Add decl.
6425
6426 * decl.c (note_level_for_for): Give void return type.
6427 (pushdecl_nonclass_level): Likewise.
6428 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
6429 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
6430 (suspend_binding_level): Delete unused var LEVEL.
6431 (duplicate_decls): Delete unused var CTYPE.
6432 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
6433 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
6434 PTR_ENDLINK.
6435 (grokdeclarator): Delete unused var C.
6436 (grokdeclarator): Delete unused var SIZE_VARIES.
6437 (grokparms): Delete unused var SAW_VOID.
6438 (start_function): Delete unused var OLDDECL.
6439 (cplus_expand_expr_stmt): Delete unused var
6440 REMOVE_IMPLICIT_IMMEDIATELY.
6441
6442 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
6443
6444 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
6445
6446Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
6447
6448 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
d11ad92e 6449 (build_min_nt): Likewise.
5566b478
MS
6450 * pt.c (do_pushlevel): Emit line note.
6451 (do_poplevel): Return what we get from poplevel.
6452 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
6453 * parse.y: Use do_pushlevel and do_poplevel.
6454 * cp-tree.h: Declare do_poplevel.
6455
6456 * cp-tree.h: Declare at_eof.
6457 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
6458 * decl2.c (import_export_decl): Renamed from import_export_inline.
6459 (finish_file): Call it to do interface handling for statics.
6460 * pt.c (tsubst_copy): Call mark_used on variables and functions
eb66be0e 6461 used here.
5566b478
MS
6462
6463 * decl2.c (finish_file): Don't emit statics we can't generate.
6464 * pt.c (instantiate_decl): Don't set interface on instantiations
eb66be0e 6465 we can't generate.
5566b478
MS
6466
6467 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
6468 * tree.c (print_lang_statistics): Print max template depth.
6469 * pt.c (push_tinst_level): Dump entire instantiation context.
6470 (instantiate_class_template): Use it and pop_tinst_level.
d11ad92e 6471 (instantiate_decl): Likewise.
5566b478
MS
6472
6473 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
eb66be0e 6474 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
5566b478
MS
6475
6476Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
6477
6478 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
eb66be0e
MS
6479 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
6480 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
6481 the new template implementation.
5566b478
MS
6482
6483Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6484
6485 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
6486
cffa8729
MS
6487Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
6488
6489 * decl.c (cp_finish_decl): Delay emitting the debug information for
6490 a typedef that has been installed as the canonical typedef, if the
6491 type has not yet been defined.
6492
6493Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
6494
6495 * decl2.c (grokfield): Still call pop_nested_class for access decls.
6496
6497Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6498
6499 * decl.c (lookup_label): Call label_rtx.
6500
6501 * decl.c (make_binding_level): New function.
6502 (pushlevel, pushlevel_class): Call it instead of explicit
6503 duplicate calls to xmalloc.
6504
6505 * decl.c (init_decl_processing): Delete useless build_pointer_type
6506 call.
6507
6508 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
6509 (sizet_ftype_string): Delete variable.
6510 (init_decl_processing): Add built-in functions fabsf, fabsl,
6511 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
6512 variable strlen_ftype, used for strlen.
6513
6514Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
6515
6516 * decl.c (push_to_top_level): Start from current_binding_level
eb66be0e
MS
6517 again for now; the stl hacks depend on g++ being broken in this
6518 way, and it'll be fixed in the template rewrite.
cffa8729
MS
6519
6520 * tree.def: Add USING_DECL.
6521 * decl2.c (do_class_using_decl): Implement.
6522 (grokfield): Pass access decls off to do_class_using_decl instead of
6523 grokdeclarator.
6524 * error.c (dump_decl): Handle USING_DECLs.
6525 * decl.c (grokdeclarator): Remove code for handling access decls.
6526 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
eb66be0e 6527 as access decls for now.
cffa8729
MS
6528 (finish_struct): Don't check USING_DECLs for other uses of the name.
6529
6530 * search.c (get_matching_virtual): Use cp_error_at.
6531
6532Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6533
6534 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
6535 match c-typeck.c.
6536 (self_promoting_args_p): Move the check that TYPE is non-nil
6537 before trying to look at its main variant.
6538 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
6539
6540 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
6541 Delete macros.
6542 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
6543 (do_friend): Delete call to xref_friend.
6544 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
6545
6546 * typeck.c (convert_sequence): #if 0 unused function.
6547
6548 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
6549 be in decl_in_memory_p.
6550 (decl_in_memory_p): Delete decl.
6551 * expr.c (decl_in_memory_p): Delete fn.
6552 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
6553
6554 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
6555
6556Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
6557
6558 * class.c (finish_struct_1): Check for a pure-specifier on a
eb66be0e 6559 non-virtual function here.
cffa8729
MS
6560
6561 * decl2.c (grok_function_init): Don't check whether the function
eb66be0e 6562 is virtual here.
cffa8729
MS
6563 (grokfield): Don't call check_for_override here.
6564
6565 * decl.c (push_to_top_level): Start from inner_binding_level,
eb66be0e 6566 check class_shadowed in class levels.
cffa8729
MS
6567
6568Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
6569
6570 * decl.c (resume_level): Ignore things that don't have names, instead
6571 of core dumping.
6572
6573Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6574
6575 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
6576
6577Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
6578
6579 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
eb66be0e 6580 synthesized dtor.
cffa8729
MS
6581
6582 * parse.y (complete_type_name): Bind global_scope earlier.
d11ad92e 6583 (complex_type_name): Likewise.
cffa8729
MS
6584 (qualified_type_name): Remove.
6585
2ee887f2
MS
6586Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
6587
6588 * decl.c (grokfndecl): Move code that looks for virtuals in base
eb66be0e 6589 classes...
cffa8729 6590 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
6591 (finish_struct_1): Call it.
6592
6593 * cp-tree.h: Declare warn_sign_compare.
6594
6595 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
eb66be0e
MS
6596 rather than extra_warnings to decide whether to warn about
6597 comparison of signed and unsigned.
2ee887f2
MS
6598
6599 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
eb66be0e 6600 implies -Wsign-compare. -Wall doesn't imply -W.
2ee887f2
MS
6601
6602Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
6603
6604 * typeck.c (build_component_ref): Fix to handle anon unions in base
6605 classes as well.
6606
6607Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6608
6609 * class.c (resolves_to_fixed_type_p): Delete code dealing with
6610 a WITH_CLEANUP_EXPR, since we don't generate them any more.
6611 * cvt.c (build_up_reference): Likewise.
6612 * decl.c (grok_reference_init): Likewise.
6613 (cp_finish_decl): Likewise.
6614 * error.c (dump_expr): Likewise.
6615 * tree.c (real_lvalue_p): Likewise.
6616 (lvalue_p): Likewise.
6617 (build_cplus_new): Likewise.
6618 (unsave_expr_now): Likewise.
6619 * typeck.c (unary_complex_lvalue, build_modify_expr,
6620 c_expand_return): Likewise.
6621
6622Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6623
6624 Make the C++ front-end pay attention to attributes for structures.
6625 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
6626 finish_struct_1.
eb66be0e 6627 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
2ee887f2
MS
6628 Take out old round_up_size use and setting the DECL_ALIGN possibly
6629 using it. Take out setting of TYPE_ALIGN to round_up_size, which
6630 can override what the attribute set.
6631 * cp-tree.h (finish_struct): Update prototype.
6632 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
6633 attributes to finish_struct.
6634 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
6635 value down into finish_struct.
6636 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
6637
6638Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
6639
6640 * decl.c (poplevel): Re-word dead for local handling.
6641 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
6642 (cp_finish_decl): If is_for_scope, check for duplicates so
6643 we can disable is_for_scope. Otherwise, preserve_temp_slots.
6644
6645 * lex.c (do_identifier): Use global binding in preference of
6646 dead for local variable.
6647
6648Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
6649
6650 * init.c (initializing_context): Handle anon union changes, the
6651 context where fields of anon unions can be initialized now has to be
6652 found by walking up the TYPE_CONTEXT chain.
6653
6654Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
6655
6656 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
6657 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
6658 (obscure_complex_init): If bss is supported, always set
6659 DECL_INITIAL to error_mark_node.
6660
6661Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6662
6663 * init.c (is_friend): Make sure there's a context before we see if
6664 it's an aggr type.
6665
6666Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
6667
6668 * init.c (is_friend): Classes are not friendly with nested classes.
6669
6670Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
6671
6672 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
6673 and record its result.
6674
9e9ff709
MS
6675Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
6676
6677 * class.c (finish_struct_anon): Switch around code to not move anon
6678 union elements around, nor mess up their contexts, nor offsets,
6679 instead we now build up the right number of COMPONENT_REFs for all
6680 the anon unions that may be present at build_component_ref time.
6681 * typeck.c (lookup_anon_field): New routine to handle field lookup
6682 on fields without names. We find them, based upon their unique type
6683 instead.
6684 * typeck.c (build_component_ref): Allow FIELD_DECL components.
6685 Handle finding components in anonymous unions, and ensure that a
6686 COMPONENT_REF is built for each level as necessary.
6687
6688Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
6689
6690 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
6691 code that ensures that copy ctors are used if appropriate.
6692
6693Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6694
6695 * init.c (build_vec_delete): Only give an error if base isn't an
6696 error_mark_node.
6697
6698Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
6699
6700 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
6701 (yylex): If we see `new', keep slurping.
6702
6703Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
6704
6705 * class.c (finish_struct_1): Move code for handling anon unions...
6706 (finish_struct_anon): to here. Fixup so that we do the offset
6707 calculations right, and so that the fields are physically moved to
6708 the containers's chain.
6709
6710Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6711
6712 * decl.c (grokdeclarator): Avoid trying to get an operand off an
6713 identifier node.
6714
6715Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
6716
6717 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
6718 POINTER_SIZE to agree with expr.c.
6719
6720Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
6721
6722 * search.c (lookup_field): Don't report ambiguities if protect is 0,
6723 instead return NULL_TREE.
6724
6725Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
6726
6727 * class.c (finish_struct_1): Call warn_hidden if we want warnings
6728 about overloaded virtual functions.
6729 (warn_hidden): New routine to warn of virtual functions that are
6730 hidden by other virtual functions, that are not overridden.
6731 (get_basefndecls): New routine, used by warn_hidden.
6732 (mark_overriders): New routine, used by warn_hidden.
6733 * search.c (get_matching_virtual): Remove old warning that just
6734 isn't very useful.
6735
6736Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6737
6738 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
6739
6740 * typeck.c (null_ptr_cst_p): Delete unused fn.
6741 (build_function_call_maybe): Delete unused fn.
6742
6743 * expr.c (extract_init): #if 0 the code after unconditional return 0
6744 for now.
6745
6746 Delete old cadillac code.
6747 * edsel.c: Remove file.
6748 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
6749 * Makefile.in (CXX_OBJS): Delete edsel.o.
6750 (edsel.o): Delete rule.
6751 * cp-tree.h (flag_cadillac): Delete var decl.
6752 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
6753 * decl2.c (flag_cadillac): Delete var definition.
6754 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
6755 (grokfield): Delete code depending on flag_cadillac.
6756 (finish_anon_union): Likewise.
6757 * class.c (finish_struct_1): Likewise.
6758 (pushclass): Likewise.
6759 (popclass): Likewise.
6760 (push_lang_context): Likewise.
6761 (pop_lang_context): Likewise.
6762 * decl.c (init_decl_processing): Likewise.
6763 (start_decl): Likewise.
6764 (cp_finish_decl): Likewise.
6765 (xref_tag): Likewise.
6766 (finish_enum): Likewise.
6767 (start_function): Likewise.
6768 (finish_function): Likewise.
6769 (finish_stmt): Likewise.
6770 * lex.c (lang_init): Likewise.
6771 (check_newline): Likewise.
6772
6773 * lex.c (do_pending_inlines): Delete synthesized method kludge.
6774
6775 Delete defunct, ancient garbage collection implementation.
6776 * rtti.c: New file with the RTTI stuff from gc.c.
6777 * gc.c: Removed file (moved the remaining stuff into rtti.c).
6778 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
6779 (rtti.o): New rule, replacing gc.o.
6780 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
6781 * cp-tree.h: Delete gc-related fn decls.
6782 (DECL_GC_OFFSET): Delete macro.
6783 (flag_gc): Delete extern decl.
6784 * decl.c (current_function_obstack_index): Delete var decl.
6785 (current_function_obstack_usage): Delete var decl.
6786 (start_function): Delete clearing of current_function_obstack_index
6787 and current_function_obstack_usage.
6788 (init_decl_processing): Delete code relying on -fgc.
6789 Delete call to init_gc_processing.
6790 (cp_finish_decl): Delete calls to build_static_gc_entry and
6791 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
6792 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
6793 and to expand_expr of a __gc_main call.
6794 (maybe_gc_cleanup): Delete var decl.
6795 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
6796 * decl2.c (flag_gc): Delete var decl.
6797 (lang_f_options): Delete offering of -fgc.
6798 (lang_decode_option): Delete -fgc and -fno-gc handling.
6799 (get_temp_regvar): Delete gc code.
6800 * init.c (build_new): Delete gc code.
6801 * lex.c (init_lex): Delete checking of flag_gc.
6802
6803 * typeck.c (convert_arguments): Delete gc code.
6804 (build_component_addr): Delete -fgc warning.
6805 (build_modify_expr): Delete gc code.
6806
6807 * decl2.c (build_push_scope): Delete fn.
6808 * cp-tree.h (build_push_scope): Delete decl.
6809
6810 * search.c (clear_search_slots): Delete fn.
6811 * cp-tree.h (clear_search_slots): Delete decl.
6812
6813 * search.c (tree_needs_constructor_p): Delete fn.
6814 * cp-tree.h (tree_needs_constructor_p): Delete decl.
6815
6816 * tree.c (id_cmp): Delete fn.
6817
6818 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
6819 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
6820
6821 * tree.c (decl_value_member): Delete fn.
6822 * cp-tree.h (decl_value_member): Delete decl.
6823
6824 * tree.c (list_hash_lookup_or_cons): Delete fn.
6825 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
6826
6827 * method.c (cplus_exception_name): Delete fn.
6828 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
6829
6830 * spew.c (shift_tokens): Delete fn.
6831
6832Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
6833
6834 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
6835 to cp_finish_decl.
d11ad92e 6836 * parse.y: Likewise.
9e9ff709
MS
6837
6838Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6839
6840 * tree.c (build_cplus_staticfn_type): Delete function definition;
6841 never used.
6842 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
6843
6844 * tree.c (virtual_member): Delete function definition; never used.
6845 * cp-tree.h (virtual_member): Delete decl.
6846
45537677
MS
6847Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
6848
6849 * typeck.c (build_component_ref): Handle getting vbase pointers
6850 out of complex multiple inheritance better.
6851
6852Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
6853
6854 * typeck.c (build_object_ref): Make sure we use the real type, not
6855 any reference type.
6856
6857Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
6858
6859 * tree.c (build_exception_variant): Don't create new types if we
6860 don't have to, also build new types on the right obstack.
6861
6862Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
6863
6864 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
6865 (push_to_top_level): Call it for b->type_shadowed on class binding
6866 levels.
45537677
MS
6867
6868Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
6869
6870 * search.c (expand_upcast_fixups): Fix so that offsets stored in
6871 vbase_offsets are always right. Fixes a problem where virtual base
6872 upcasting and downcasting could be wrong during conversions on this
6873 during virtual function dispatch at ctor/dtor time when dynamic
6874 vtable fixups for deltas are needed. This only sounds easier than
6875 it is. :-)
6876 (fixup_virtual_upcast_offsets): Change to reflect new calling
6877 convention for expand_upcast_fixups.
6878
6879Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6880
6881 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
6882 check that it's usable as the bitfield width.
6883
6884Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6885
6886 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
6887 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
6888 only ever used for functions in it.
6889
6890Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
6891
6892 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
d11ad92e 6893 (nested_type): Likewise.
45537677
MS
6894 (nested_name_specifier): Use lastiddecl.
6895
6896 * decl.c (grokdeclarator): Adjust accordingly.
d11ad92e
MS
6897 * init.c (expand_member_init): Likewise.
6898 * parse.y (base_class): Likewise.
6899 * typeck2.c (build_functional_cast): Likewise.
45537677
MS
6900
6901 * typeck2.c (build_functional_cast): Fill in name after we've
6902 checked for non-aggr type.
6903
be99da77
MS
6904Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
6905
6906 * decl2.c (warn_pointer_arith): Default to on.
6907
6908Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
6909
6910 * lex.c (is_rid): New function.
6911 * decl.c (grokdeclarator): Diagnose reserved words used as
6912 declarator-ids.
6913
6914Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
6915
6916 * tree.c (get_decl_list): Don't lose cv-quals.
6917
6918 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
6919 typespecs used as declarator-ids.
6920
6921Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
6922
6923 * decl.c (poplevel): When poping a level, don't give a warning for
6924 any subblocks that already exist.
6925
6926Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
6927
6928 * typeck.c (build_object_ref): Finish what I started.
6929
6930 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
6931
6932 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
6933
6934 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 6935 scope.
be99da77
MS
6936
6937Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
6938
6939 * decl.c (xref_tag): Handle passing a type in directly.
6940
6941 * parse.y (qualified_type_name): Pull out the type.
d11ad92e 6942 (nested_type): Likewise.
be99da77
MS
6943 Take types directly instead of as identifiers.
6944 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709 6945 as identifiers.
d11ad92e
MS
6946 * decl.c (xref_basetypes): Likewise.
6947 * init.c (expand_member_init): Likewise.
6948 (build_member_call): Likewise.
6949 (build_offset_ref): Likewise.
6950 * typeck2.c (build_scoped_ref): Likewise, remove bogus code.
6951 * method.c (do_build_assign_ref): Likewise.
be99da77
MS
6952 * decl.c (grokdeclarator): Handle a type appearing as the
6953 declarator-id for constructors.
6954 * method.c (do_build_copy_constructor): current_base_init_list now
6955 uses the types directly, not their names.
d11ad92e
MS
6956 * init.c (sort_base_init): Likewise.
6957 (expand_member_init): Likewise.
be99da77 6958 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77 6959
d11ad92e 6960Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com>
be99da77
MS
6961
6962 * tree.c (layout_basetypes): Call build_lang_field_decl instead
6963 of build_lang_decl if first arg is a FIELD_DECL.
be99da77
MS
6964
6965Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6966
6967 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
6968 non-empty.
6969 * except.c (expand_start_catch_block): Set TREE_USED to avoid
6970 warnings about the catch handler.
6971
6972Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
6973
6974 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 6975 expand_target_expr.
be99da77
MS
6976
6977Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6978
6979 Fix access control to use trees rather than integers.
6980 * class.c (access_{default, public, protected, private,
6981 default_virtual, public_virtual, private_virtual}_node): Add
6982 definitions.
6983 (init_class_processing): Do creation of those nodes.
6984 * cp-tree.h (access_type): Delete enum decl.
6985 (access_{default, public, protected, private, default_virtual,
6986 public_virtual, private_virtual}_node): Add decls.
6987 (compute_access): Change return type.
6988 * search.c (compute_access): Have tree return type, instead of enum.
6989 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
6990 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
6991 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
6992 * parse.y (VISSPEC): Make ttype rather than itype.
6993 (base_class_access_list): Likewise.
6994 * *.[cy]: Change all refs of `access_public' to `access_public_node',
6995 etc.
6996 * call.c (build_method_call): Make ACCESS be a tree.
6997 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
6998 * cvt.c (convert_to_aggr): Likewise.
6999 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
7000 Likewise.
7001 * method.c (hack_identifier): Likewise.
7002 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
7003
7004Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
7005
7006 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
7007 frontend, and make it more consistent with respect to
7008 warn_pointer_arith.
7009
7010Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
7011
7012 * decl.c (pushdecl): Check for duplicate parameter names.
7013
7014Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
7015
7016 * decl.c (expand_static_init): Call assemble_external for atexit.
7017
7018Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
7019
7020 * except.c (do_unwind): Remove some generated dead code.
7021 (eh_outer_context): New routine, factor out some common code from
7022 expand_builtin_throw and end_eh_unwinder. Add code to do return
7023 address masking for the PA.
7024 (expand_builtin_throw): Use eh_outer_context instead of open coding
7025 it here.
d11ad92e 7026 (end_eh_unwinder): Likewise.
be99da77
MS
7027
7028Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
7029
7030 * except.c (expand_throw): Call assemble_external for __empty, if we
7031 use it.
7032
21451173
MS
7033Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
7034
7035 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
7036 NORMAL_RETURN_ADDR_OFFSET.
d11ad92e 7037 (end_eh_unwinder): Likewise.
21451173
MS
7038
7039Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
7040
7041 * gc.c (build_dynamic_cast): Make sure we don't cast away const
7042 when dealing with references, and make sure we handle dynamic
7043 casting to a cv qualified reference.
7044
7045Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
7046
7047 * except.c (struct eh_context): New structure top hold eh context
7048 information.
7049 (push_eh_context): New routine.
d11ad92e 7050 (pop_eh_context): Likewise.
21451173 7051 * decl.c (push_cp_function_context): Use them.
d11ad92e 7052 (pop_cp_function_context): Likewise.
21451173
MS
7053
7054Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
7055
7056 * decl2.c (finish_file): Also prune uninteresting functions in the
7057 inline emission loop.
7058
d11ad92e 7059Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com>
21451173
MS
7060
7061 * sig.c (build_signature_table_constructor): Mark functions
7062 in the signature as referenced.
7063
7064Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
7065
7066 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
7067 the inline emission stuff.
7068
72b7eeff
MS
7069Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
7070
7071 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 7072 weak symbols.
72b7eeff
MS
7073 * lang-options.h: Add -f{no-,}weak.
7074 * decl.c (init_decl_processing): If the target does not support weak
7075 symbols, don't use them.
7076 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
7077
7078Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
7079
7080 * init.c (expand_member_init): warning for base init after members.
7081
72b7eeff
MS
7082Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
7083
7084 * cvt.c (build_expr_type_conversion): Don't convert to a reference
7085 type.
7086
7087Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
7088
7089 * method.c (report_type_mismatch): Improve wording for volatile
7090 mismatches.
7091
7092Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
7093
7094 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 7095 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
7096 copy constructors well. The compiler would do bitwise copying,
7097 instead of ctor calling in some cases.
7098
7099Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
7100
7101 * g++.c (my_strerror): Return "cannot access" if errno is 0.
7102 (pfatal_with_name, perror_exec): Don't assume that
7103 the returned value from my_strerror contains no '%'s.
7104 (concat): Remove.
7105 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
7106
7107Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
7108
7109 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
7110 TYPE_METHODS/TREE_CHAIN mean what they used to.
7111 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
7112 instead of TYPE_METHODS.
7113 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
d11ad92e 7114 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
72b7eeff
MS
7115 * cp-tree.h (CLASSTYPE_METHODS): Lose.
7116 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
7117 TYPE_METHODS.
7118 (struct lang_decl): Lose next_method field.
7119 (DECL_NEXT_METHOD): Lose.
7120 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
7121 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
7122 anymore.
7123 (finish_struct_methods): Don't mess with the TREE_CHAINs in
7124 fn_fields.
7125
7126 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
7127 vector.
7128
7129 * call.c (build_method_call): Synthesize here even when not inlining.
d11ad92e 7130 * typeck.c (build_function_call_real): Likewise.
72b7eeff
MS
7131
7132Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
7133
7134 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
7135 == DBX_DEBUG, call dbxout_start_new_source_file and
7136 dbxout_resume_previous_source_file when appropriate.
7137
7138Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
7139
7140 * except.c (start_anon_func): Push to the top level.
7141 (end_anon_func): Pop from the top level.
7142
7143Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
7144
7145 * cp-tree.h (build_cleanup): New routine to build cleanups.
7146 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
7147 call at ctor time and use atexit to run it later.
7148 * decl2.c (build_cleanup): New routine, taken from finish_file.
7149 (finish_file): Use build_cleanup instead, and don't put function
7150 local statics in global dtor list.
7151
7152Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
7153
7154 * except.c (expand_throw): Ensure that we have cleanups, if we try
7155 and expand cleanups.
7156
7157Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
7158
7159 * except.c (expand_throw): Add logic to manage dynamic cleanups for
7160 the EH object.
7161 (expand_end_catch_block): Use the magic of expand_goto, instead of
7162 emit_jump so that we get the cleanup for any catch clause parameter
7163 and the cleanup for the exception object. Update to reflect label
7164 changes.
7165 (push_eh_cleanup): New routine to register a cleanup for an
7166 exception object.
9e9ff709 7167 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
7168 nothing.
7169 (init_exception_processing): Setup empty_fndecl. Setup
7170 saved_cleanup.
7171 (expand_start_catch_block): Update to reflect label changes. Call
7172 push_eh_object to register the cleanup for the EH object.
7173 (start_anon_func): New routine to start building lambda expressions
7174 from trees.
7175 (end_anon_func): New routine to end them.
7176 (struct labelNode): Change so that we can use tree labels, or rtx
7177 labels.
7178 (saved_cleanup): Object to check for dynamic cleanups for the
7179 exception handling object.
7180 (push_label_entry): Change so that we can use tree labels, or rtx
7181 labels.
d11ad92e
MS
7182 (pop_label_entry): Likewise.
7183 (top_label_entry): Likewise.
72b7eeff
MS
7184 (expand_start_all_catch): Use tree label instead of rtx label, so
7185 that we can get the magic of expand_goto.
7186 (expand_end_all_catch): Update to reflect label changes.
7187
7188 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
7189 use UNSAVE_EXPRs.
7190 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
7191 building_cleanup logic, as we now use UNSAVE_EXPRs.
7192 * cp-tree.h (unsave_expr): Declare it.
7193 * decl.c (building_cleanup): Remove.
7194 (maybe_build_cleanup): Remove building_cleanup logic, and use
7195 UNSAVE_EXPR instead.
7196
7197Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
7198
7199 * gc.c (build_t_desc): Update error message to say <typeinfo>.
7200
7201Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7202
7203 * decl.c (pushdecl): Only warn about shadowing a local variable if
7204 warn_shadow is true.
7205
7206Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
7207
7208 * typeck.c (build_binary_op_nodefault): Added warning about
7209 comparisons between different enum types with -Wall, unless
7210 -fenum-int-equiv set.
7211
7212Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
7213
7214 * class.c (finish_struct_1): Skip down to the inner type in
7215 multidimensional arrays. Ensures ctors will be made for types that
7216 need constructing.
7217
7218Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
7219
7220 * decl.c (last_dtor_insn): New to track the last compiler generated
7221 insn in a dtor.
7222 (store_parm_decls): Set it.
7223 (finish_function): Use it to see if the dtor is empty. Avoid doing
7224 vtable setup all the time, if we can.
7225 (struct cp_function): Add last_dtor_insn.
7226 (push_cp_function_context): Save it.
7227 (pop_cp_function_context): Restore it.
7228
7229Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
7230
7231 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 7232 warnings.
72b7eeff
MS
7233
7234Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
7235
7236 * typeck.c (expand_target_expr): Make sure targets get put into the
7237 current temp_slot_level, so that the free_temp_slots call will reuse
7238 them.
7239
7240Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
7241
7242 * class.c (finish_struct_1): Delay delta fixups for virtual bases
7243 until after we have done the hard virtuals, to avoid a bogus `every
7244 virtual function must have a unique final overrider' for virtual
7245 functions that are only overridden by hard virtuals.
7246
7247Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
7248
7249 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 7250 template for a member function.
72b7eeff
MS
7251
7252Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
7253
7254 * g++.c (main): Add handling of -nodefaultlibs.
7255
7256Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
7257
7258 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
7259 distinguish between direct bindings of reference variables, and
7260 indirect bindings of reference variables.
7261 * cvt.c (build_up_reference): Use it.
7262 * typeck.c (convert_arguments): Use it to indicate this is an
7263 indirect binding.
7264 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
7265 as they are unused.
d11ad92e
MS
7266 (expand_static_init): Likewise.
7267 (cplus_expand_expr_stmt): Likewise.
7268 * decl2.c (finish_file): Likewise.
7269 * init.c (perform_member_init): Likewise.
7270 (emit_base_init): Likewise.
7271 (expand_aggr_vbase_init_1): Likewise.
72b7eeff 7272
72b7eeff
MS
7273Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7274
7275 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
7276 get a DECL_LANG_SPECIFIC node.
7277 * cp-tree.h (lang_decl_flags): Add new member `level'.
7278 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
7279 decl_flags level member.
7280
7281Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7282
7283 * call.c (build_method_call): Make sure instance has a
7284 TYPE_LANG_SPECIFIC node before we dive into it.
7285
d11ad92e 7286Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com>
72b7eeff
MS
7287
7288 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
7289
7290Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
7291
7292 * decl.c (duplicate_decls): When smashing decls, smash staticness in
7293 the usual way.
7294
7295Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
7296
7297 * decl.c (poplevel): Handle the merging of subblocks of cleanups
7298 when finishing blocks that have already been created (usually due to
7299 the fixup goto code). Fixes bad debugging information.
7300
7301Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
7302
7303 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
7304 that's not a list of overloaded functions.
7305
7306Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7307
7308 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
7309 before trying to use DECL_ABSTRACT_VIRTUAL_P.
7310
7311Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
7312
7313 * decl2.c (mark_used): New function for hooking into setting of
7314 TREE_USED on decls.
7315 * call.c (build_method_call): Use it.
d11ad92e
MS
7316 * class.c (instantiate_type): Likewise.
7317 * init.c (build_offset_ref): Likewise. Don't call assemble_external
72b7eeff 7318 for all like-named functions.
d11ad92e 7319 * method.c (hack_identifier): Likewise.
72b7eeff
MS
7320 (emit_thunk): Don't call assemble_external.
7321 (make_thunk): Create thunk as a FUNCTION_DECL so that it
7322 gets the right mode and ENCODE_SECTION_INFO works.
7323
7324 * parse.y: Use mark_used. Pass operator names to do_identifier.
7325 * lex.c (do_identifier): Handle operator names.
7326
7327 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
7328
72b7eeff
MS
7329Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7330
7331 * errfn.c: Include stdio.h.
7332 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
7333
7334Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
7335
7336 * typeck2.c (digest_init): Always convert initializers to the
7337 right type.
7338
7339Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
7340
7341 * init.c (member_init_ok_or_else): Don't allow member initializers
7342 for indirect members, as it is invalid.
7343
7344Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7345
7346 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
7347
7348Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
7349
7350 * parse.y (for.init.statement): Catch compound statements inside for
7351 initializations, if we're being pedantic.
7352
7353Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
7354
7355 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
7356 looking for.
7357
7358Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
7359
7360 * error.c (dump_expr): Don't core dump when a boolean expression is
7361 used as a default argument.
7362
7363Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
7364
7365 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 7366 RETURN_IN_MEMORY.
72b7eeff
MS
7367
7368Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
7369
7370 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
7371 BLKmode type that would otherwise be returned in registers.
7372
7373Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7374
7375 * g++.c (WITHLIBC): New macro.
7376 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
7377 saw_libc and pass it at the end if it was set.
7378
7379Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7380
7381 * parse.y (fn.def1): Call split_specs_attrs in
7382 declmods notype_declarator case.
7b8dd497
JL
7383\f
7384Use a consistent time stamp format in ChangeLog entries.
7385Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now.
7386
7387Local Variables:
7388add-log-time-format: current-time-string
7389End:
This page took 1.694224 seconds and 5 git commands to generate.