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