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