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