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