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