]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
(objc-parse.y): Fix typo in name of temp file.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
bb2b97ac
GN
1Sat Aug 17 15:23:39 1996 Geoffrey Noer <noer@cygnus.com>
2
3 * g++.c: Update test for win32 (&& ! cygwin32).
4
73aad9b9
JM
5Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
6
7 * pt.c (end_template_decl): If we don't actually have parms, return.
8 * parse.y (template_header): Accept 'template <>'.
9
10 * errfn.c: Allow 5 args.
11
12Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
13
14 * tree.c (make_temp_vec): New fn.
15 * pt.c (push_template_decl): Handle partial specs.
16 (instantiate_class_template): Ditto.
17 (more_specialized): Use get_bindings.
18 (more_specialized_class): New fn.
19 (get_class_bindings): New fn.
20 (most_specialized_class): New fn.
21 (do_function_instantiation): List candidates for ambiguous case.
22 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
23 (shadow_tag): Call push_template_decl for partial specializations.
24 * parse.y: Ditto.
25 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
26 DECL_TEMPLATE_MEMBERS.
27 * call.c (print_z_candidates): Reduce duplication.
28
29Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
30
31 * decl2.c (lang_decode_option): Allow -fansi-overloading.
32
33Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
34
35 * pt.c (get_bindings): New fn.
36 (most_specialized): Ditto.
37 (do_function_instantiation): Use them.
38 (add_maybe_template): New fn.
39 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
40 * call.c (build_new_op): Handle guiding decls.
41 (build_new_function_call): Ditto.
42 * decl2.c (finish_file): Ditto.
43
44 * decl2.c (mark_used): Do synthesis here.
45 * call.c (build_method_call): Not here.
46 (build_over_call): Or here.
47 * typeck.c (build_function_call_real): Or here.
48 * tree.c (bot_manip): Call mark_used on functions used in default
49 args.
50
2eee5e3a
MM
51Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
52
53 * decl2.c (import_export_vtable): Delete code that disabled vtable
54 heuristic on systems with ASM_OUTPUT_EXTERNAL.
55
c73964b2
MS
56Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
57
58 * typeck.c (build_x_function_call): Handle static call context
59 better.
60
61 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
62 the function, not its outer block.
63
64 * call.c (build_field_call): Pass fields on to build_opfncall
65 regardless of TYPE_OVERLOADS_CALL_EXPR.
66 (build_method_call): Pass on to build_new_method_call sooner.
67
68 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
69 gives us.
70 * class.c (instantiate_type): Don't put a POINTER_TYPE to
71 METHOD_TYPE on an expression. Also make a copy of rhs instead of
72 modifying it.
73
74Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
75
76 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
77 (add_builtin_candidate): Don't take enums for ++.
78 (build_new_method_call): Handle non-aggregates and field calls.
79 Move new overloading code from...
80 * cvt.c: Here.
81
82 * decl.c (grokparms): Don't check default args in templates.
83
84Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
85
86 * cvt.c (build_new_op): Fix args to build_unary_op.
87 (add_builtin_candidates): Don't call type_promotes_to on float.
88
89 * decl.c (grokparms): Check the type of the default arg.
90
91 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
92 returning NULL_TREE.
93
94 * typeck.c (build_x_binary_op): Avoid doing extra work.
95 (build_x_unary_op): Ditto.
96 (build_x_conditional_expr): Ditto.
97 * cvt.c (build_over_call): Return.
98 (add_builtin_candidate): Fix MEMBER_REF.
99 (build_new_op): Ditto.
100
101Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
102
103 * method.c (build_overload_name): Put bug fix into code but leave
104 disabled for now so we can be bug compatible with older releases
105 that do repeats incorrectly. In the future, we can enable it.
106
107Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
108
109 * cvt.c (convert_like): Don't call build_cplus_new twice.
110
111 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
112 Control new overloading code with -fansi-overloading.
113
114Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
115
116 * cvt.c (build_over_call): Call build_cplus_new.
117 * call.c (build_method_call): Ditto.
118 * typeck.c (build_function_call_real): Ditto.
119 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
120 the COND_EXPR in a TARGET_EXPR so they use the same slot.
121
122 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
123 recursive calls.
124 * typeck.c (complete_type): Propagate
125 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
126
127Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
128
129 * cvt.c (joust): More ?: kludging. Sigh.
130 (build_over_call): Don't try to synthesize global fns.
131
132 * search.c (lookup_conversions): Use binfo marking.
133
134Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
135
136 * search.c (build_mi_matrix): Use the correct value of cid
137 when determining the new mi_size.
138
139Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
140
141 * cvt.c (add_builtin_candidates): Do consider type conversion ops
142 for the first parms of += et al.
143 (strip_top_quals): New fn.
144 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
145 (implicit_conversion): Ditto.
146 (add_builtin_candidates): Be careful about arrays.
147 (build_new_method_call): Handle vtable optimization.
148
149Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
150
151 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
152 * cvt.c (reference_binding): Use it.
153 (implicit_conversion): Use it.
154 (add_builtin_candidate, COND_EXPR): Use it.
155
156 * cvt.c (build_new_function_call): Check for error args.
157
158 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
159
160 * gxx.gperf: Add __null.
161 * hash.h: Regenerate.
162 * lex.h: Add RID_NULL.
163 * lex.c (init_lex): Create null_pointer_node here, stick it in
164 RID_NULL.
165 * decl.c (init_decl_processing): Still set its type here.
166 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
167 (convert_to_pointer_force): Ditto.
168 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
169 if (! pedantic).
170 * call.c (convert_harshness): Use null_ptr_cst_p.
171 * typeck.c (convert_for_assignment): Ditto. Don't produce
172 null_pointer_node.
173
174 * error.c (args_as_string): Handle lists of actual args, too.
175 * cvt.c (null_ptr_cst): Support (void*)0 for now.
176 (build_user_type_conversion_1): Improve diagnostics.
177 (build_new_function_call): Likewise.
178 (build_object_call): Likewise.
179 (build_new_method_call): Likewise. Move call before def diagnostic...
180 (build_over_call): Here.
181
182 * cvt.c (build_new_method_call): Don't complain about no match if
183 LOOKUP_SPECULATIVELY.
184 (build_over_call): Fix 'this' for virtual fn.
185 (build_new_method_call): Add diagnostic.
186
187Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
188
189 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
190 constructors to be passed in.
191 (build_over_call): Likewise.
192 (build_user_type_conversion_1): Pass them in.
193 (convert_like): Likewise.
194 (build_object_call): Handle overloaded conversions.
195 (build_over_call): Pass the right args to build_vfn_ref.
196 (standard_conversion): Fix pmf convs.
197 (joust): Handle comparing statics and non-statics.
198 (build_new_method_call): New fn.
199 * call.c (build_method_call): Call it if NEW_OVER.
200
201Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
202
203 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
204 %D instead.
205
206Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
207
208 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
209 instead of just maybe_build_cleanup so that we deallocate the
210 thrown object.
211
212Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
213
214 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
215 * cp-tree.h (finish_prevtable_vardecl): Add decl.
216
14548a19
MS
217Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
218
c73964b2
MS
219 * pt.c (instantiate_class_template): Call complete_type. Also, if
220 we're at the end of the file and we just instantiated a template
221 class with a vtable, call finish_prevtable_vardecl.
222
14548a19
MS
223 * error.c (dump_decl): Don't explode (or explode more gracefully
224 as appropriate) if the object being dumped has a null type.
225 (dump_expr): Ditto.
226
227 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
228 by counting the number of nodes that we'll need before allocating
229 the array.
230 (lookup_fnfields): Fix comment.
231 (breadth_first_search): Fix comment.
232
233Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
234
235 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
236 TYPE_ALIGN.
237 * class.c (finish_struct): Call cplus_decl_attributes here.
238 (finish_struct_1): Not here.
239 * cp-tree.h: Adjust.
240
241 * pt.c (type_unification): New parameter STRICT.
242 (unify): If STRICT, don't allow cv addition or base deduction.
243 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
244
245Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
246
247 * search.c (get_template_base{_recursive}): New fns.
248 * pt.c (more_specialized): New fn.
249 (do_function_instantiation): Use it.
250 (unify): Handle base deduction.
251 * cvt.c (joust): Use more_specialized.
252 Don't arbitrarily choose between non-builtin candidates.
253 (build_over_call): Call require_complete_type.
254
255 * decl.c (start_function): Statics are static even in a #pragma
256 interface file.
257
258 * decl2.c (import_export_vtable): Disable vtable heuristic on
259 systems with ASM_OUTPUT_EXTERNAL.
260
261 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
262 (standard_conversion): No std conv to enum type.
263
264 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
265 for ptm's.
266
267 * cvt.c (reference_binding): Bind directly to a base subobject of
268 a class rvalue.
269
270 * cvt.c (build_new_op): Enforce access control.
271
272Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
273
274 * typeck2.c (process_init_constructor): When scanning the
275 union for a named field, skip things that aren't FIELD_DECLs.
276
277 * method.c (synthesize_method): Don't scan fndecl's rtl if
278 we're at the end of the file; just assume the function can't
279 be inlined.
280
281Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
282
283 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
284 it failed.
285
286 * cvt.c (build_user_type_conversion_1): Handle overloaded
287 conversion ops.
288
289 * cvt.c (add_builtin_candidates): Don't consider type conversion
290 operators for the first parameter of operator=.
291
292Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
293
294 * typeck.c (complete_type): Only call layout_type if we're not
295 expanding a template.
296
297Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
298
299 * cvt.c (compare_ics): Oops.
300
301 * cvt.c (op_error): Oops.
302
303 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
304 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
305 (build_conv): Use them.
306 (implicit_conversion): Use them.
307 (convert_like): Handle them.
308 (build_new_op): Handle builtin COND_EXPR again.
309 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
310 in lists of types for COND_EXPR.
311 (add_builtin_candidate): Add enum candidates for COND_EXPR.
312
313Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
314
315 * typeck.c (build_modify_expr): Always attempt to build a call to
316 the assignment operator, even if we're using a default one.
317 (convert_for_initialization): Call complete_type.
318
319Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
320
321 * cvt.c (reference_binding): A REF_BIND gets the reference type.
322 (implicit_conversion): Likewise.
323 (convert_like): Likewise.
324 (compare_ics): Likewise.
325 (compare_qual): Likewise.
326 (print_z_candidates): Handle no candidates.
327 (build_new_op): Don't handle builtin COND_EXPR for now.
328
329Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
330
331 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
332
333Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
334
335 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
336
337 * cvt.c (build_builtin_candidate): Oops.
338 (build_new_op): Oops.
339
340 * method.c (build_opfncall): Pass COND_EXPR on.
341 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
342 (add_builtin_candidate{,s}): Likewise.
343 (add_builtin_candidates): Likewise.
344 (print_z_candidates, op_error, build_new_op): Likewise.
345 (type_decays_to): New fn.
346 * lex.c (init_lex): Just say ?: for COND_EXPR.
347
348Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
349
350 * typeck.c (complete_type): Call layout_type rather than building
351 a new array type.
352
353 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
354 only use ptrdiff_t.
355
356Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
357
358 * cvt.c: Always compile the new overloading code (but don't use it).
359 (implicit_conversion): Add a BASE_CONV when converting to
360 the same class type.
361 (convert_like): Handle BASE_CONV.
362
363Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
364
365 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
366 (add_builtin_candidate): Likewise.
367
368 NEW_OVER changes:
369 * typeck.c (build_x_function_call): Try an operator function
370 whenever we call an object of class type.
371 * method.c (build_opfncall): Pass CALL_EXPRs through.
372 * cvt.c (implicit_conversion): Do const-ref case first.
373 (add_conv_candidate, build_object_call, op_error): New fns.
374 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
375 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
376 builtin candidates.
377 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
378 Fall back on preincrement handling. Use op_error.
379 Handle warn_synth.
380 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
381 an error_mark_node.
382 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
383 properly.
384
385Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
386
387 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
388
389Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
390
391 * typeck.c (build_component_ref_1): Use build_component_ref
392 instead of open coding it here.
393
394Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
395
396 * g++.c (main): Don't link with -lg++.
397
398 NEW_OVER changes:
399 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
400 result of build_type_conversion.
401 (cp_convert): Only call build_method_call for ctors if
402 build_type_conversion failed.
403 (ptr_complete_ob): New function.
404 (TYPE_PTR{,OB,MEM}_P): New macros.
405 ({add,build}_builtin_candidate{,s}): New functions.
406 (print_z_candidates): Handle builtins.
407 (build_user_type_conversion_1): Don't use conversion fns for
408 converting to a base type.
409 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
410 (build_user_type_conversion): Use convert_from_reference.
411 (build_new_op): New function.
412 (build_over_call): Fix handling of methods.
413 (compare_ics): Handle AMBIG_CONV properly.
414 * typeck2.c: Increment abort count.
415 * method.c (build_opfncall): Forward most requests to build_new_op.
416 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
417
418Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
419
420 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
421 invalid second argument to dump_expr_list.
422
594740f3
MS
423Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
424
425 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
426
427Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
428
429 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
430 ASSEMBLE_EXTERNAL.
431
432Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
433
434 * typeck2.c (process_init_constructor): New pedwarn for using { }
435 to initialize a pointer to member function.
436 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
437 we can avoid the new error.
438
439Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
440
441 * typeck.c (build_ptrmemfunc1): New function to hide details of
442 pointer to member functions better.
443
444Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
445
446 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
447 methods into the actual method, as we know the implied object is
448 not used.
449
450Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
451
452 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
453 inside a system header.
454
455Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
456
457 * call.c (build_method_call): Call complete_type on the
458 instance type.
459
460Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
461
462 * typeck.c (build_component_ref): Always build up an OFFSET_REF
463 for obj_ptr->func so that we can know which object to use in a
464 method call.
465
466Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
467
468 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
469 around things. Also improve maintainability.
470
471Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
472
473 * decl.c (grokdeclarator): Check for overflow when evaluating an
474 array dimension.
475
476Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
477
478 * cvt.c (cp_convert): Don't check for ambiguity with constructor
479 if NEW_OVER.
480
481 * typeck.c (build_x_function_call): Pass function overload
482 questions to new overloading code if NEW_OVER.
483 * init.c (expand_aggr_init_1): Only check for type conversion ops
484 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
485 Don't check for ambiguity with constructor if NEW_OVER.
486 * cvt.c (convert_to_reference): Dereference the result of a type
487 conversion operator.
488 (build_conv): Propagate ICS_USER_FLAG.
489 (implicit_conversion): Call instantiate_type.
490 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
491 (add_function_candidate): Fix cv-quals on argtype.
492 (print_z_candidates): New function.
493 (build_new_function_call): Call it.
494 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
495 consider non-converting constructors.
496 Call print_z_candidates.
497 Return an AMBIG_CONV for an ambiguous conversion.
498 (build_user_type_conversion): Handle AMBIG_CONV.
499 (convert_like): Fix test for building TARGET_EXPR.
500 Call instantiate_type.
501 Handle AMBIG_CONV and LVALUE_CONV.
502 (build_over_call): Handle 0 args and ellipsis.
503 * cp-tree.def: Add AMBIG_CONV.
504
e92cc029
MS
505Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
506
507 * decl.c (lookup_name_real): If we find mem in obj when parsing
508 `obj->mem', make sure we return the right value.
509
510Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
511
512 * search.c (get_base_distance): Call complete_type.
513
514Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
515
516 * decl.c (store_bindings): Make static.
517
518Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
519
520 * init.c (expand_aggr_init_1): Don't check type conversions if
521 NEW_OVER.
522
523 * cvt.c (z_candidate): Put back template field.
524 (add_function_candidate): Set it.
525 (add_template_candidate): Likewise.
526 (joust): Use it.
527 (compare_qual): Handle references and pointers to members.
528 (compare_ics): Handle reference bindings.
529
530 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
531
532Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
533
534 * call.c (compute_conversion_costs): Call complete_type.
535
536 * tree.c (vec_binfo_member): Use comptypes instead of comparing
537 pointers, so we can handle template parameters.
538
539Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
540
541 * cvt.c (cp_convert_to_pointer): We have to call complete_type
542 here; let's make it explicit instead of a side effect of an
543 error check.
544
545Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
546
547 * cvt.c (z_candidate): Remove template field.
548 (reference_binding): Handle binding to temporary.
549 (implicit_conversion): Likewise.
550 (add_function_candidate): Handle artificial constructor parms.
551 Handle functions with too few parms.
552 (add_template_candidate): New function.
553 (build_user_type_conversion_1): Handle constructors.
554 (convert_like): Likewise.
555 (build_over_call): Likewise.
556 (build_new_function_call): Support templates.
557 (compare_ics): Fix reference, inheritance handling.
558
559Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
560
561 * decl.c: Add signed_size_zero_node.
562 (init_decl_processing): Build it.
563 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
564 when we're trying to make a negative delta.
565
566Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
567
568 Stop doing this damn index==strchr variable name confusion.
569 * class.c (add_virtual_function): Change local var INDEX to be
570 named IDX.
571 (add_method): Likewise.
572 * lex.c (print_parse_statistics): Likewise.
573 * search.c (make_memoized_table_entry): Likewise.
574 (lookup_fnfields_here): Likewise.
575 (lookup_field): Likewise.
576 (lookup_fnfields): Likewise.
577 (get_baselinks): Likewise.
578 * sig.c (build_signature_table_constructor): Likewise.
579 (build_signature_method_call): Likewise.
580 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
581 (get_member_function_from_ptrfunc): Likewise.
582 (build_ptrmemfunc): Change local var INDEX to be IDX.
583 (c_expand_start_case): Likewise.
584
585Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
586
587 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
588 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
589 (convert_to_reference): Use build_type_conversion to convert to
590 the reference type directly.
591 (standard_conversion): Fix void* case, non-conversions.
592 (reference_binding): Fix expr == 0 case, non-conversions.
593 (convert_like): Support REF_BIND.
594 (compare_qual): Split out from compare_ics.
595 (compare_ics): Use it, handle icses with only a qual_conv.
596
597 * init.c (expand_vec_init): Don't crash if decl is NULL.
598
599Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
600
601 * mpw-config.in: New file, configury for Mac MPW.
602 * mpw-make.sed: New file, makefile editing for MPW.
603
604Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
605
606 * pt.c (instantiate_class_template): Call repo_template_used.
607
608 * search.c (lookup_conversions): Only lookup conversions in
609 complete types.
610
611Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
612
613 * cp-tree.def: Renamed from tree.def, to avoid confusion with
614 gcc's tree.def.
615 * cp-tree.h, lex.c: Include cp-tree.def.
616 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
617
618Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
619
620 * init.c (build_vec_delete_1): Call complete_type.
621
622Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
623
624 * except.c (start_anon_func): Make sure anonymous functions are
625 never external.
626
627Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
628
629 * decl.c (finish_function): If function_depth > 1, set nested.
630
631 * decl2.c (grokbitfield): Revert Bob's change.
632 * class.c (finish_struct_1): Fix handling of named bitfield widths.
633
634Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
635
636 * pt.c (add_pending_template): Handle types.
637 (lookup_template_class): With -fexternal-templates, just add the class
638 to pending_templates instead of instantiating it now.
639 * decl2.c (finish_file): Handle types in pending_templates.
640
641Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
642
643 * decl2.c (grokbitfield): Handle constant decls appropriately.
644 Give an appropriate error message now instead of spewing core
645 later.
646
647Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
648
649 * decl2.c: Don't turn on thunks by default for now.
650
651Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
652
653 * typeck.c (complete_type): Handle error_mark_node.
654 (common_type, OFFSET_TYPE): Handle template_type_parms.
655
656Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
657
658 * pt.c (instantiate_decl): If at_eof, call import_export_decl
659 regardless of DECL_INLINE.
660
661 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
662
663 * class.c (finish_struct_bits): Copy TYPE_SIZE.
664
665 * rtti.c (build_dynamic_cast): Support templates.
666 * tree.def: Support DYNAMIC_CAST_EXPR.
667 * pt.c (tsubst_copy): Likewise.
668 * decl2.c (build_expr_from_tree): Likewise.
669
670Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
671
672 * typeck.c (build_static_cast): Support templates.
673 (build_const_cast): Likewise.
674 * tree.def: Support CONST/STATIC_CAST_EXPR.
675 * pt.c (tsubst_copy): Likewise.
676 * decl2.c (build_expr_from_tree): Likewise.
677
678Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
679
680 * decl2.c (finish_vtable_vardecl): Don't trust
681 TREE_SYMBOL_REFERENCED for vtables of local classes.
682
683Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
684
685 * pt.c (tsubst_copy): Handle operator T.
686
687Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
688
689 * init.c (build_delete): Move creation of PARMS inside test of
690 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
691
692Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
693
694 * typeck.c (build_conditional_expr): Don't assume that
695 the arguments to ?: are always pointers or records.
696
697Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
698
699 * decl2.c (import_export_decl): Still emit static/weak/comdat
700 copies of inline template functions with -fno-implicit-templates.
701
702Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
703
704 * init.c (build_delete): Determine the complete basetype
705 path to the destructor we're calling.
706
707Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
708
709 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
710 initialize the enum, because we really and truly don't know where
711 it came from.
712 (start_enum): Don't copy integer_zero_node because
713 build_enumerator will do it.
714
715Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
716
717 * decl.c (finish_function): Do access control on base destructors.
718
719 * pt.c (tsubst, case FUNCTION_DECL): Set up
720 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
721 hose us.
722
723Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
724
725 * cvt.c (build_up_reference): If we have already extended the
726 lifetime of the temporary, don't try it again.
727 * typeck.c (c_expand_return): Don't try and convert the return
728 value twice when we want a reference, once is enough.
729
a0128b67
MS
730Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
731
732 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
733 LOOKUP_ONLYCONVERTING at all for now.
734
735 * search.c (add_conversions): Put the conversion function in
736 TREE_VALUE, the basetype in TREE_PURPOSE.
737 * cvt.c (build_type_conversion): Adjust.
738 * cvt.c (build_expr_type_conversion): Adjust.
739 * call.c (user_harshness): Adjust.
740
741Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
742
743 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
744 backend's benefit.
745
14548a19
MS
746Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
747
748 * except.c (expand_start_catch_block): Add a dummy region, if we
749 get an error, so that we can avoid core dumping later.
750
a0128b67
MS
751Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
752
753 * cp-tree.h (OFFSET_REF): Remove.
754 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
755 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
756 * init.c (expand_aggr_init_1): Ditto.
757 (build_new): Ditto.
758 * typeck.c (expand_target_expr): Ditto.
759
760Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
761
762 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
763 TARGET_EXPR.
764
e349ee73
MS
765Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
766
767 * cvt.c (build_up_reference): Redo how and when temporaries are
768 created.
769 * decl.c (grok_reference_init): Don't try and be smart about
770 running cleanups.
771
772Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
773
774 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
775 (TARGET_EXPR...), now that it has 4 arguments.
776 * tree.c (build_cplus_new): Ditto.
777
778Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
779
780 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
781
782 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
783 * decl.c (struct saved_scope): Remove named_labels,
784 {base,member}_init_list.
785 (maybe_push_to_top_level): Don't set them. Call
786 push_cp_function_context if appropriate.
787 (pop_from_top_level): Likewise.
788
789 * method.c (do_build_assign_ref): Remove obsolete check of
790 TYPE_HAS_ASSIGN_REF (basetype).
791
792 * decl.c (grokfndecl): Diagnose user definition of
793 implicitly-declared methods.
794
795Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
796
797 * method.c (do_build_copy_constructor): Add code to give
798 meaningful error messages instead of crashing.
799 (do_build_assign_ref): Don't synthesize assignment operators for
800 classes containing reference or const members.
801
802 * class.c (struct base_info): Remove cant_synth_copy_ctor
803 and cant_synth_asn_ref.
804 (finish_base_struct): Remove the code that tries to conditionalize
805 synthesis of copy constructors & assignment operators based on
806 access permissions. Instead, let it fail when it tries to
807 synthesize the copy constructor. This will give meaningful error
808 messages instead of silently generating code to perform a bitcopy.
809
810Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
811
812 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
813 determining types for constant values.
814
815 * decl.c (struct named_label_list): Use instead of stuffing
816 random items into a TREE_LIST node.
817 (named_label_uses): Use the new struct.
818 (poplevel): Ditto.
819 (lookup_label): Ditto.
820 (define_label): Add an error message to tell the user the line
821 where the goto is located in addition to the destination of the
822 goto.
823 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
824 named_label_uses.
825 (finish_function): Ditto.
826
827 (start_decl): Complain about defining a static data member
828 in a different type from which it was declared.
829
830Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
831
832 * cvt.c (build_expr_type_conversion): Adjust.
833
834Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
835
836 * call.c (build_method_call): Always convert 'this' to the
837 appropriate type.
838
839 * search.c (add_conversions): Put the conversion function in
840 TREE_VALUE, the type in TREE_PURPOSE.
841 * cvt.c (build_type_conversion): Adjust.
842 * call.c (user_harshness): Adjust.
843
844 * method.c (emit_thunk): Call temporary_allocation and
845 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
846
847 * tree.c (build_cplus_array_type): Handle tweaking of
848 TYPE_MAIN_VARIANT here.
849 * typeck.c (common_type): Not here.
850
851 * typeck.c (complete_type): Only try to complete an array type if
852 it has a domain.
853
854Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
855
856 * decl.c (grokvardecl): Call complete_type.
857 (grokdeclarator): Call complete_type for PARM_DECLs.
858
859Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
860
861 * pt.c (instantiate_class_template): Re-set
862 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
863
864Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
865
866 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
867 smart enough to do it right.
868 * tree.c (cp_expand_decl_cleanup): Ditto.
869 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
870 cp_expand_decl_cleanup.
871 (store_parm_decls): Ditto.
872 (hack_incomplete_structures): Ditto.
873 * except.c (push_eh_cleanup): Ditto.
874
875Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
876
877 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
878 frontend to the backend where it belongs.
879 * tree.c (unsave_expr): Ditto.
880 (unsave_expr_now): Ditto.
881 * tree.def (UNSAVE_EXPR): Ditto.
882 * cp-tree.h (unsave_expr): Ditto.
883 (unsave_expr_now): Ditto.
884
885Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
886
887 * init.c (emit_base_init): Make sure the partial EH cleanups live
888 on the function_obstack.
889
ce122a86
MS
890Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
891
892 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
893 when checking for pointer types.
894
895Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
896
897 * pt.c (instantiate_class_template): Remove obsolete check for
898 access declarations.
899
900Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
901
902 * call.c (build_overload_call): Simplify calls to
903 build_overload_call by removing last parameter.
904 (build_method_call): Ditto.
905 * cp-tree.h: Ditto.
906 * method.c (build_opfncall): Ditto.
907 * typeck.c (build_x_function_call): Ditto.
908
909Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
910
911 * call.c (default_parm_conversions): Factor out common code.
912 (build_method_call): Use it.
913 (build_overload_call_real): Use it.
914
4ac14744
MS
915Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
916
917 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
918 but pedwarn as the code is bogus.
919 * typeck.c (decay_conversion): Ditto.
920 (build_function_call_real): Use build_addr_func instead of
921 default_conversion. Don't allow pointer-to-method functions down
922 here.
923 (build_unary_op): Use real pointer-to-member functions instead of
924 fake ones.
925 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
926 (convert_for_assignment): Removed some obsolete code.
927 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
928 build_x_function_call instead of current_class_ptr. Only call
929 digest_init once on an initializer, we do this just checking
930 TREE_TYPE.
931 (build_expr_from_tree): Pass current_class_ref to
932 build_x_function_call instead of current_class_ptr.
933 * init.c (build_member_call): Ditto.
934 * pase.y: Ditto.
935 * error.c (dump_expr): Handle OFFSET_REFs better.
936 * pt.c (unify): Handle pointer-to-member functions better.
937 * decl.c (finish_function): Clear out current_class_ref just like
938 we do for current_class_ptr.
939
940 * typeck.c (get_delta_difference): Handle virtual bases better.
941
942Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
943
944 * sig.c (build_signature_table_constructor): Use the delta for
945 the original basetype for this virtual function with thunks.
946 (build_signature_method_call): We still need to adjust 'this'
947 with thunks.
948
949Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
950
951 * call.c (build_addr_func): New routine. Used to get the `real'
952 address of a function or a method. Needed to avoid getting a
953 pointer-to-member function.
954 (build_call): New routine to build CALL_EXPRs.
955 (build_method_call): Use it.
956 * cvt.c (convert_to_aggr): Ditto.
957 * typeck.c (build_function_call_real): Ditto.
958 * sig.c (build_signature_table_constructor): Use build_addr_func.
959 * cp-tree.h (build_call, build_addr_func): Declare them.
960
961Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
962
963 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
964 * parse.y: Remove uses of LOOKUP_AGGR.
965
966Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
967
968 * *.[chy]: Rename current_class_decl to current_class_ptr, and
969 C_C_D to current_class_ref.
970
971Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
972
973 * call.c (convert_harshness): Tighten up pointer conversions.
974
975Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
976
977 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
978 (finish_file): Likewise.
979
980Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
981
982 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
983
984 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
985 code.
986
987Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
988
989 * decl2.c: Turn on thunks by default where supported.
990
4dabb379
MS
991Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
992
993 * cp-tree.h (build_overload_call_maybe): Removed.
994 * call.c (build_overload_call_real): Invert meaning of last arg to
995 be require_complete.
996 (build_overload_call): Ditto.
997 * typeck.c (build_x_function_call): Use build_overload_call_real
998 instead of build_overload_call_maybe.
999
a50f0918
MS
1000Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
1001
1002 * decl2.c (finish_file): Don't try to emit functions that haven't
1003 been compiled.
1004
1005Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
1006
1007 * decl2.c (finish_vtable_vardecl): Oops.
1008
1009 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
1010 Also store the bindings from previous_class_values.
1011 (pop_from_top_level): Restore them.
1012
1013Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
1014
1015 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
1016 symbol has been referenced.
1017 (finish_file): Re-join synthesis/vtable loop with inline emission
1018 loop, disable inlining when an inline is output.
1019
1020Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
1021
1022 * except.c (init_exception_processing): Setup saved_in_catch.
1023 (push_eh_cleanup): Reset __eh_in_catch.
1024 (expand_start_catch_block): Set __eh_in_catch.
1025
1026Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
1027
1028 * except.c (push_eh_cleanup): Add tracking for whether or not we
1029 have an active exception object.
1030 (expand_builtin_throw): Use it to make sure a rethrow without an
1031 exception object is caught.
1032
1033Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
1034
1035 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
1036 cache.
1037
809c8c30
JM
1038Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
1039
1040 * decl2.c (finish_file): Also use sentries for vars with
1041 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
1042 created).
1043
1044 * lex.c (handle_cp_pragma): Disable #pragma
1045 interface/implementation if SUPPORTS_ONE_ONLY > 1.
1046
1047Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
1048
1049 * method.c (emit_thunk): Wrap default case in
1050 temporary/permanent_allocation.
1051
1052 * method.c (make_thunk): Use DECL_ONE_ONLY.
1053 (emit_thunk): Call assemble_end_function.
1054
46b02c6d
MS
1055Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
1056
1057 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
1058 (import_export_decl): Ditto.
1059 (finish_prevtable_vardecl): Disable vtable hack if
1060 SUPPORTS_ONE_ONLY > 1.
1061
1062Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
1063
1064 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
1065 PREDECREMENT_EXPRs take two arguments, not one.
1066
1067Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
1068
1069 * class.c (build_vtable_entry): Don't build thunks for abstract
1070 virtuals.
1071
1072 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
1073 frontend.
1074
1075Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
1076
1077 * class.c (set_rtti_entry): Use size_zero_node.
1078 (build_vtable): Ditto.
1079
1080Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
1081
1082 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
1083 (prepare_fresh_vtable): Ditto.
1084
1085Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
1086
1087 * method.c (emit_thunk): Call mark_used on the target function.
1088
1089 * call.c (build_method_call): Don't warn about pending templates.
1090
c7690c68
JM
1091Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1092
1093 * decl2.c (finish_file): Fix list walking logic.
1094
46b02c6d
MS
1095 * typeck2.c (check_for_new_type): Only warn if -pedantic.
1096
1097Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
1098
1099 * class.c (finish_struct_1): Remove old code for
1100 dont_allow_type_definitions.
1101 * cp-tree.h: Ditto.
1102 * spew.c: Make sure cp-tree.h is included before parse.h, so the
1103 definition of flagged_type_tree is found before it is used.
1104 * lex.c: Ditto.
1105 * parse.y: Added the ftype member to the type union, and changed a
1106 number of rules to use it instead of ttype. Added calls to
1107 check_for_new_type() as appropriate.
1108 * typeck2.c (check_for_new_type): New function for checking
1109 if a newly defined type appears in the specified tree.
1110 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
1111 for check_for_new_type().
1112
67d743fe
MS
1113Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
1114
c7690c68
JM
1115 * decl2.c (finish_file): Only use a sentry if the decl is public.
1116
67d743fe
MS
1117 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
1118 don't pass LOOKUP_ONLYCONVERTING.
1119
1120Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
1121
1122 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
1123 properly keeps track of const and volatile type modifiers.
1124
1125Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
1126
1127 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
1128 * pt.c (comp_template_args): Use it.
1129
1130 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
1131 assemble_external for artificial function decls.
1132
1133 * decl.c (cp_finish_decl): Oops.
1134
1135Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
1136
1137 * decl2.c (import_export_decl): Put static data member templates
1138 into common storage, or make them weak, depending on whether they
1139 are dynamically or statically initialized.
1140 (get_sentry): New function.
1141 (finish_file): Do import_export_decl for static data members before
1142 building the init/fini functions. Don't init/fini a variable that's
1143 EXTERNAL. Use a sentry for variables in common. Fix mismatching
1144 push/pop_temp_slots.
1145 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
1146 expand_static_init thang.
1147 * method.c (get_id_2): New function.
1148
1149Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
1150
1151 * parse.y (empty_parms): Make sure we use C++-style prototypes
1152 when we're declaring member functions.
1153
1154Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
1155
1156 * Makefile.in (CONFLICTS): 16 s/r conflicts.
1157 * parse.y (self_template_type): New nonterminal.
1158
a80e4195
MS
1159Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
1160
1161 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
1162 name.
1163 * parse.y (base_class.1): Allow 'typename foo::bar'.
1164
1165 * lex.c (check_newline): Remove #pragma code that plays with the
1166 input stream, since we now deal with tokens. Clear nextchar when
1167 we're done.
1168 (handle_cp_pragma): Use real_yylex.
1169 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
1170 in one place.
1171
1172 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
1173
1174 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
1175
1176Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
1177
1178 * parse.y: New token SELFNAME for potential constructor.
1179 * spew.c (yylex): Handle it.
1180 * lex.c (identifier_type): Produce it.
1181
1182 * parse.y (complete_type_name): In :: case, don't push class binding.
1183 (complex_type_name): Ditto.
1184
1185Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
1186
1187 * typeck.c (build_reinterpret_cast): Handle pointer to member
1188 functions.
1189
1190Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
f72bbc37
BK
1191
1192 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
a80e4195 1193 pragmas.
f72bbc37 1194 (check_newline): Put the vtable/unit/implementation/interface pragma
a80e4195 1195 code into handle_cp_pragma, replacing it with a call.
f72bbc37 1196 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
a80e4195
MS
1197 args. Get the next token after handling the pragma token.
1198
1199Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
1200
1201 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
1202 (convert_to_pointer_force): Ditto.
1203
1204 * init.c (build_new): Fix array new without -fcheck-new.
1205
1206Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
1207
1208 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
1209 tree.c: Lose TYPE_NESTED_NAME.
1210
1211 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
1212 as identifiers.
1213
1214 * tree.def: Add VEC_INIT_EXPR.
1215 * expr.c (cplus_expand_expr): Handle it.
1216 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
1217 the extra file-scope symbol nastiness.
1218
1219Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
1220
1221 * method.c (make_thunk): Thunks are static.
1222 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
1223
1224 * decl2.c (mark_vtable_entries): Emit thunks as needed.
1225 (finish_file): Don't emit them here.
1226
1227Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
1228
1229 * rtti.c (build_dynamic_cast): Handle null pointers.
1230 (ifnonnull): New function.
f72bbc37 1231
6b5fbb55
MS
1232Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
1233
a80e4195
MS
1234 * call.c (build_method_call): Remember the original basetype we
1235 were called with. Give an error message instead of trying
1236 (incorrectly) to call a non-static member function through a
1237 non-inherited class.
1238
6b5fbb55
MS
1239 * search.c (expand_upcast_fixups): Mark the new fixup as
1240 DECL_ARTIFICIAL.
1241
1242Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1243
1244 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
1245
1246 * class.c (set_rtti_entry): Fix for thunks.
1247
1248 * decl2.c (import_export_decl): Still emit typeinfo fns for
1249 cv-variants of builtin types.
1250
1251 * rtti.c (expand_class_desc): Set up base_info_type_node here.
1252 (init_rtti_processing): Instead of here.
1253
1254Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
1255
1256 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
1257 (build_typeid): Only complain about taking dynamic typeid without
1258 -frtti.
1259
1260 * decl2.c: flag_rtti defaults to 1.
1261
1262 * rtti.c (get_tinfo_var): The general class case is now smaller.
1263 (init_rtti_processing): Pack the latter three fields of base_info
1264 into 32 bits.
1265
1266Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
1267
1268 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
1269
1270Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
1271
1272 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
1273 (push_memoized_context): Split out code to undefer pop_type_level to
1274 (clear_memoized_cache): here.
1275 (pop_memoized_context): We can only handle one layer of deferral of
1276 pop_type_level so clear the cache, if there was a previous level.
1277
1278Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1279
1280 * rtti.c (init_rtti_processing): Build up base_info_type_node.
1281 (expand_class_desc): Use one pointer to an array of base_info
1282 structs, passed using a CONSTRUCTOR.
1283
1284Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
1285
1286 * class.c (build_vbase_path): Remove block extern for
1287 flag_assume_nonnull_objects here.
1288 (build_vfn_ref): Split out functionality into build_vtbl_ref.
1289 (build_vtbl_ref): New routine.
1290 (build_vtable): Set up rtti info here.
1291 (add_virtual_function): Note in CLASSTYPE_RTTI the best
1292 place where we can get the rtti pointers from to avoid having to
1293 search around for a place.
1294 (finish_base_struct): Ditto.
1295 (finish_struct_1): Ditto. Never create totally new vtables with totally
1296 new vtable pointers for rtti. Disable code to layout vtable pointers
1297 better until we want to break binary compatibility.
1298 * rtti.c (build_headof_sub): New routine to convert down to a
1299 sub-object that has an rtti pointer in the vtable.
1300 (build_headof): Use it. Also, use build_vtbl_ref now to be more
1301 maintainable.
1302 (build_dynamic_cast): Make sure we have saved it, if we need to.
1303 * search.c (dfs_init_vbase_pointers): Disable code that deals with
1304 a more efficient vtable layout, enable later.
1305 * call.c (flag_assume_nonnull_objects): Moved declaration to
1306 * cp-tree.h: here. Declare build_vtbl_ref.
1307 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
1308 function calls that want a tree.
1309
1310Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
1311
1312 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
1313 other X subobjects in the most derived type. Ack.
1314
1315 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
1316 get_typeid will do it for us.
1317 (get_typeid_1): Break out call-building for expand_*_desc to use.
1318 (get_typeid): Call it.
1319 (expand_*_desc): Ditto.
1320 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
1321 and void *.
1322 (init_decl_processing): Lose builtin_type_tdescs lossage.
1323 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
1324
1325Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
1326
1327 * pt.c (tsubst): When calling set_nested_typename, use
1328 TYPE_NESTED_NAME (current_class_type) instead of
1329 current_class_name.
1330
1331 * decl.c (pushdecl): Ditto.
1332 (pushdecl_class_level): Ditto.
1333 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
1334 set_nested_typename.
1335
1336Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
1337
1338 * rtti.c (synthesize_tinfo_fn): Handle arrays.
1339
1340 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
1341
1342Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
1343
1344 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
1345 (init_rtti_processing): Lose bad_cast_type.
1346 (build_dynamic_cast): Use throw_bad_cast.
1347
1348 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
1349
1350 * decl2.c (finish_file): Don't synthesize artificial functions
1351 that are external and not inline.
1352
1353 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
1354
1355 * decl2.c (finish_file): Handle having new inlines added to
1356 saved_inlines by synthesis.
1357
1358 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
1359
1360Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1361
1362 RTTI rewrite to initialize nodes as needed, not require that
1363 users #include <typeinfo>, complete functionality and reduce wasted
1364 space.
1365 * rtti.c (init_rtti_processing): New fn.
1366 (build_typeid): The vtable entry is now a function.
1367 (get_tinfo_var): New fn.
1368 (get_tinfo_fn): Ditto.
1369 (get_typeid): Use it.
1370 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
1371 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
1372 points __rtti_*.
1373 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
1374 (synthesize_tinfo_fn): New fn.
1375 * method.c (build_t_desc_overload): Lose.
1376 (build_overload_with_type): More generic.
1377 * decl.c (init_decl_processing): Call init_rtti_processing.
1378 * class.c (set_rtti_entry): Use get_tinfo_fn.
1379 * decl2.c (mark_vtable_entries): Mark the rtti function.
1380 (finish_prevtable_vardecl): Don't build_t_desc.
1381 (import_export_decl): Handle tinfo functions.
1382 (finish_file): Ditto.
1383 * typeck.c (inline_conversion): New fn.
1384 (build_function_call_real): Use it.
1385 * cp-tree.h: Add decls.
1386
1387 * method.c (hack_identifier): Also convert component_refs from
1388 references.
1389
1390 * lex.c (cons_up_default_function): Use the type, not the name, in
1391 declspecs.
1392
1393 * decl2.c (import_export_vtable): Fix weak vtables.
1394
1395Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
1396
1397 * search.c (get_base_distance_recursive): Fix access checks for
1398 protected bases.
1399
1400Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1401
1402 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
1403 cp-tree.h.
1404 (convert_harshness): Add prototypes wrapped by PROTO.
1405 * decl2.c (grok_function_init): Likewise.
1406 (do_toplevel_using_decl): Change to void return type.
1407 * class.c (build_vtable_entry): Remove decl of make_thunk.
1408 (merge_overrides): Fix order of arg definitions.
1409 (finish_vtbls): Likewise.
1410 (fixup_vtable_deltas): Likewise.
1411 (modify_all_direct_vtables): Likewise.
1412 (modify_all_indirect_vtables): Likewise.
1413 * search.c (get_base_distance_recursive): Likewise.
1414 (get_abstract_virtuals_1): Likewise.
1415 (fixup_virtual_upcast_offsets): Likewise.
1416 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
1417 * init.c (perform_member_init): Fix order of arg definitions.
1418 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
1419 * cp-tree.h (make_thunk): Add decl.
1420 (overload_template_name, push_template_decl): Add decls.
1421 (do_toplevel_using_decl): Change to void return type.
1422 (vec_binfo_member): Add decl.
1423
cdf5b885
MS
1424Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1425
1426 * typeck.c (mark_addressable, convert_for_assignment,
1427 convert_for_initialization, pointer_int_sum, pointer_diff,
1428 unary_complex_lvalue): Add prototypes wrapped by PROTO.
1429 (convert_sequence): #if 0 fn decl, since definition also is.
1430
1431Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
1432
1433 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
1434 cast to pointer types for type searching.
1435
1436Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1437
1438 * typeck.c (get_delta_difference): Use cp_error, not error, in the
1439 case where BINFO == 0.
1440
1441Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
1442
1443 * call.c (build_method_call): Fix wording of error messages so
1444 constructors come out right.
1445
1446Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
1447
1448 * decl.c (push_overloaded_decl): Don't warn about hidden
1449 constructors when both the type and the function are declared
1450 in a system header file.
1451
c91a56d2
MS
1452Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
1453
1454 * class.c (finish_struct_1): Propagate the TYPE_PACKED
1455 flag for the type to the type's fields.
1456
1457Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1458
1459 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
1460
1461Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
1462
1463 * class.c (base_info, finish_base_struct): Replace
1464 needs_virtual_dtor with base_has_virtual.
1465
1466 (finish_struct_1): Remove the old code that tried to make default
1467 destructors virtual. Use base_has_virtual when checking if we need
1468 to add a vtable entry for the rtti code.
1469
1470Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
1471
1472 * pt.c (push_template_decl): Complain about template decl with
1473 inappropriate declaration.
1474
1475Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
1476
1477 * typeck.c (build_x_unary_op): Remove bogus check for taking
1478 the address of a member function.
1479
1480Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
1481
1482 * parse.y (constructor_declarator): Only push the class if
1483 we are not already in the class.
1484
1485Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
6752b7d4
JL
1486
1487 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
1488 Add additional argument to INIT_CUMULATIVE_ARGS.
1489
c91a56d2
MS
1490Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
1491
1492 * decl.c (shadow_tag): Fix error about anon union with methods.
1493
1494 * parse.y (self_reference): Only generate a self-reference if this
1495 is a non-template class.
1496 (opt.component_decl_list): Only use it if it was generated.
1497
1498 * parse.y (component_decl_1): Use constructor_declarator.
1499 (fn.def2): Ditto.
1500 (notype_component_declarator0): Ditto.
1501
1502Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
1503
1504 * typeck.c (build_x_unary_op): Add checks for taking the address
1505 of a TARGET_EXPR or of a member function, and give appropriate
1506 warnings.
1507
1508Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
1509
1510 * pt.c (process_template_parm): Allow template type parms to be
1511 used as types for template const parms.
1512
1513Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
1514
1515 * init.c (expand_vec_init): Ensure the eh cleanups are on the
1516 function_obstack.
1517
1518Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
1519
1520 * decl.c (lookup_name_real): Be even more picky about the
1521 ambiguous lookup warning.
1522 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
1523 * parse.y (constructor_declarator): Rather than here.
1524
1525 * parse.y (constructor_declarator): New nonterminal.
1526 (fn.def1): Use it.
1527 (explicit_instantiation): Ditto.
1528
1529Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
1530
1531 Add implicit declaration of class name at class scope.
1532 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
1533 * parse.y (self_reference): New nonterminal.
1534 (opt.component_decl_list): Use it.
1535 (fn.def1): Add nested_name_specifier type_name cases.
1536 * class.c (build_self_reference): New function.
1537 (finish_struct): Handle access_default later, move self-reference
1538 decl to the end.
1539 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
1540 * cp-tree.h: Adjust.
1541
1542 * pt.c (do_function_instantiation): Separate handling of member
1543 functions and non-member functions properly.
1544
1545Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
1546
1547 * pt.c (process_template_parm): Improve error for 'volatile class K'.
1548
1549 * class.c (finish_struct_1): Check the right slot for destructors.
1550
1551 * decl.c (start_enum): Complain about enum templates.
1552
1553Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
1554
1555 * init.c (resolve_offset_ref): Offset pointers to member data by one.
1556 * typeck.c (unary_complex_lvalue): Ditto.
1557
1558Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
1559
1560 * typeck.c (c_expand_return): Check for a returned local
1561 array name, similar to the check for an ADDR_EXPR.
1562
1563Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
1564
1565 * decl.c (cp_finish_decl): Don't build cleanups for static
1566 variables here.
1567
1568Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
1569
1570 * typeck.c (build_modify_expr): Fix error messages to be more
1571 accurate.
1572 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
1573 assignment operators.
1574 * error.c (assop_as_string): Ditto. Add support for `%Q' for
1575 assignment operators.
1576
909e536a
MS
1577Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
1578
c91a56d2
MS
1579 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
1580 give an error if initialized. Pedwarn about nested type with the
1581 same name as its enclosing class.
1582
909e536a
MS
1583 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
1584
1585 * typeck.c (require_complete_type): Be sure to instantiate the
1586 MAIN_VARIANT of the type.
1587
1588 * decl2.c (finish_file): Instantiate pending templates before
1589 processing static constructors and destructors.
1590
1591 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
1592 unless at_eof.
1593
1594Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
1595
1596 * decl2.c (delete_sanity): If error_mark_node is passed
1597 in as an expression, quit while we're ahead.
1598
1599 * decl.c (grokdeclarator): Give an error message if `friend'
1600 is combined with any storage class specifiers.
1601
fc378698
MS
1602Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
1603
1604 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
1605 definition of nonexistent nested type.
1606
1607 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
1608 not to say 'typedef'.
1609
1610Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1611
1612 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
1613 * search.c (dfs_walk, dfs_init_vbase_pointers,
1614 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
1615 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
1616
1617Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
1618
1619 * except.c (build_throw): Support minimal parse.
1620 * pt.c (tsubst_copy): Support THROW_EXPR.
1621 * decl2.c (build_expr_from_tree): Ditto.
1622
1623 * pt.c (mangle_class_name_for_template): Always allocate
1624 scratch_firstobj.
1625
1626Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
1627
1628 * cvt.c (cp_convert_to_pointer): Give an appropriate error
1629 when trying to cast from an incomplete type.
1630
1631Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
1632
1633 * pt.c (instantiate_class_template): Don't bother setting up
1634 CLASSTYPE_TAGS explicitly, as the nested types will add
1635 themselves.
1636
1637Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
1638
1639 * decl.c (shadow_tag): Remove old error check for usage of
1640 an enum without a previous declaration.
1641 (xref_tag): Add error message about usage of enums without a
1642 previous declaration.
1643
1644Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
1645
1646 * lex.c (do_identifier): Only do name consistency check if we're
1647 parsing.
1648
1649 * pt.c (push_template_decl): Don't crash if we get a member defn
1650 that doesn't match.
1651
1652 * decl.c (xref_tag_from_type): New function to do an xref without
1653 always having to figure out code_type_node.
1654 * cp-tree.h: Declare it.
1655 * pt.c (instantiate_class_template): Use it for friend classes.
1656 (lookup_template_class): Use it.
1657
1658 * typeck2.c (build_functional_cast): Pull out a single parm before
1659 passing it to build_c_cast.
1660
1661Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
1662
1663 * expr.c (do_case): Give an error message if a pointer is
1664 given as a case value.
1665
1666Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
1667
1668 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
1669 an overload list.
1670
1671 * lex.c (cons_up_default_function): Really, now, interface hackery
1672 does not apply to synthesized methods.
1673
1674Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
1675
1676 * call.c (build_method_call): Ctors and dtors now have special names
1677 with respect to lookups.
1678 * class.c (add_method): Ditto.
1679 (grow_method): Ditto.
1680 (finish_struct_methods): Ditto.
1681 (warn_hidden): Ditto.
1682 (finish_struct_1): Ditto.
1683 * cvt.c (convert_to_reference): Ditto.
1684 (convert_to_aggr): Ditto.
1685 (cp_convert): Ditto.
1686 * decl2.c (check_classfn): Ditto.
1687 * init.c (expand_member_init): Ditto.
1688 (expand_default_init): Ditto.
1689 (expand_aggr_init_1): Ditto.
1690 (build_offset_ref): Ditto.
1691 (build_new): Ditto.
1692 (build_delete): Ditto.
1693 * lex.c (do_inline_function_hair): Ditto.
1694 * search.c (lookup_field_1): Ditto.
1695 (lookup_fnfields_here): Ditto.
1696 (lookup_field): Ditto.
1697 (lookup_fnfields): Ditto.
1698 (get_virtual_destructor): Ditto.
1699 (dfs_debug_mark): Ditto.
1700 (dfs_pushdecls): Ditto.
1701 (dfs_compress_decls): Ditto.
1702 * tree.c (layout_basetypes): Ditto.
1703 * typeck.c (build_component_ref): Ditto.
1704 (build_x_function_call): Ditto.
1705 (build_modify_expr): Ditto.
1706 (convert_for_initialization): Ditto.
1707 (build_functional_cast): Ditto.
1708 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Ditto.
1709 (CTOR_NAME): New.
1710 (DTOR_NAME): New.
1711 * decl.c (ctor_identifier): New.
1712 (dtor_identifier): New.
1713 (init_decl_processing): Set them.
1714
1715Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
1716
1717 * typeck.c (build_component_ref): Don't get confused by fields whose
1718 context has no type name, like pointer to member functions.
1719
1720Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
1721
1722 * decl.c (grokdeclarator): Handle typedef without declarator.
1723
1724 * pt.c (tsubst): Handle SCOPE_REF in declarator.
1725
1726 * parse.y (bad_parm): Catch another case of missing `typename'.
1727
1728 * lex.c (yyprint): Handle TYPE_DECLs.
1729
1730 * decl.c (start_function): Don't try to be clever.
1731
1732 * lex.c: Lose compiler_error_with_decl.
1733 * typeck2.c: Lose error_with_aggr_type.
1734 (incomplete_type_error): Use cp_* instead of old functions.
1735 (readonly_error): Ditto.
1736 * typeck.c (convert_arguments): Ditto.
1737 * search.c (lookup_nested_field): Ditto.
1738 * method.c (make_thunk): Ditto.
1739 * decl.c (grokparms): Ditto.
1740 * cp-tree.h: Update.
1741
1742 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
1743 and value.
1744
1745Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
1746
1747 * method.c (build_opfncall): When deleting a pointer to an
1748 array, build a new pointer to the tree past any ARRAY_TYPE
1749 nodes.
1750
1751Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1752
1753 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
1754
1755Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
1756
1757 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
1758 and ! DECL_INLINE.
1759
1760 * decl.c (finish_function): Don't set nested based on
1761 hack_decl_function_context.
1762 * parse.y (function_try_block): Check for nested function.
1763 (pending_inlines): Ditto.
1764
1765 * decl2.c (build_expr_from_tree): If a unary op already has a
1766 type, just return it.
1767
1768 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
1769
1770 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
1771 (finish_file): Check the return value of walk_vtables.
1772 (finish_prevtable_vardecl): Return int.
1773 (finish_vtable_vardecl): Ditto.
1774 (prune_vtable_vardecl): Ditto.
1775 * lex.c (set_vardecl_interface_info): Ditto.
1776 * cp-tree.h: Adjust return types.
1777
1778 * class.c (delete_duplicate_fields_1): Don't complain about
1779 duplicate nested types if they're the same type.
1780 (finish_struct): Remove check for duplicate.
1781 * decl2.c (grokfield): Don't check for typedef of anonymous type.
1782
1783Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
1784
1785 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
1786
1787 * decl.c (grokdeclarator): Lose special handling of class-level
1788 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
1789 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
1790
1791 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
1792
1793 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
1794
1795 * search.c (compute_access): Fix handling of anonymous union
1796 members.
1797 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
1798 from anonymous unions to their members.
1799
1800 * typeck.c (build_x_function_call): For static member functions,
1801 hand off to build_member_call.
1802
1803Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
1804
1805 * typeck.c (build_component_ref): Handle OFFSET_REFs.
1806
1807 * init.c (expand_vec_init): Fix init == 0 case.
1808
1809Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
1810
1811 * init.c (build_new): Pedwarn about init and array new.
1812 (expand_vec_init): Handle lists, use convert_for_initialization
1813
1814 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
1815 when converting to an aggregate type.
1816 * cvt.c (cp_convert): Pass it through.
1817
1818 * typeck.c (build_conditional_expr): Handle user-defined
1819 conversions to slightly different types.
1820
1821 * decl.c (grokdeclarator): Force an array type in a parm to be
1822 permanent.
1823
1824 * decl2.c (do_using_directive): Sorry.
1825 (do_namespace_alias): Ditto.
1826 * lex.c (real_yylex): Warn about using the `namespace' keyword.
1827
1828Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1829
1830 * parse.y (datadef): Move call to note_list_got_semicolon up.
1831
934c6b13
MS
1832Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
1833
1834 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
1835
1836Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
1837
1838 * decl.c (cp_finish_decl): The exception regions have to be
1839 nested, not overlapping. We start the exception region for a
1840 decl, after it has been fully built, and all temporaries for it
1841 have been cleaned up.
1842
1843Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
1844
1845 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
1846
e76a2646
MS
1847Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
1848
1849 * tree.def: Add RETURN_INIT.
1850 * pt.c (instantiate_decl): Handle RETURN_INIT.
1851 * decl.c (store_return_init): Handle minimal_parse_mode.
1852
1853 * tree.c (cp_build_type_variant): Just return an error_mark_node.
1854 * decl.c (make_typename_type): Don't try to get the file and line
1855 of an identifier.
1856 * typeck.c (comptypes): Handle TYPENAME_TYPE.
1857
1858Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
1859
1860 * decl.c (poplevel): Make sure we clear out and restore old local
1861 non-VAR_DECL values by default when they go out of scope.
1862
1863Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
1864
1865 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
1866 referring to addresses of variables and functions.
1867
1868 * error.c (dump_expr): Support SIZEOF_EXPR.
1869
1870 * init.c (do_friend): Use the return value of check_classfn.
1871
1872 * typeck.c (convert_arguments): Call complete_type.
1873
1874 * method.c (hack_identifier): After giving an error, set value to
1875 error_mark_node.
1876
1877Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
1878
1879 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
1880 lossage for local classes.
1881 * cp-tree.h: Declare it.
1882 * decl.c (lookup_name_real): Evil, painful hack for local classes.
1883 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
1884 Use hack_decl_function_context.
1885 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
1886 (start_function): Use hack_decl_function_context.
1887 (finish_function): Ditto.
1888 * method.c (synthesize_method): Ditto.
1889 * lex.c (process_next_inline): Ditto.
1890 (do_pending_inlines): Ditto.
1891 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
1892 done with it.
1893
1894Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
1895
1896 * sig.c (build_signature_pointer_or_reference_type): Align
1897 signature pointers/references on 8-byte boundaries so they can be
1898 grabbed 2 words at a time on a Sparc.
1899
1900Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
1901
1902 * method.c (hack_identifier): Requiring a static chain is now a
1903 hard error.
1904 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
1905 functions.
1906
1907Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
1908
1909 * init.c (build_offset_ref): Call complete_type.
1910
1911 * decl.c (pop_from_top_level): Always pop previous_class_type.
1912
1913 * parse.y: Handle multiple decls in a for-init-statement.
1914 * pt.c (tsubst_expr): Ditto.
1915
1916 * pt.c (tsubst): Use tsubst_expr for the second operand of an
1917 ARRAY_REF.
1918
1919 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
1920 (poplevel_class): Set it here.
1921 (pop_from_top_level): Pop it here if we're returning to class scope.
1922 * class.c (pushclass): Don't set it here.
1923
1924 * decl.c (maybe_push_to_top_level): Save current_template_parms,
1925 and clear it if !pseudo.
1926 (pop_from_top_level): Restore it.
1927
1928 * decl2.c (finish_file): Push the dummy each time we walk the list
1929 of vtables.
1930
1931 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
1932 something for CAST_EXPR.
1933
1934Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
1935
1936 * cvt.c (cp_convert): Warn about implicit conversion of the
1937 address of a function to bool, as it is always true.
1938
1939Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
1940
1941 * typeck.c (c_expand_return): Fix warning for local externs returned.
1942
1943Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
1944
1945 * tree.c (mapcar): Propagate const and volatile properly.
1946
1947 * typeck.c (complete_type): Be sure to instantiate the
1948 MAIN_VARIANT of the type.
1949
1950 * method.c (synthesize_method): Class interface hackery does not
1951 apply to synthesized methods.
1952
1953Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
1954
1955 * pt.c (comp_template_args): Use comptypes rather than just
1956 checking for TEMPLATE_TYPE_PARM equivalence.
1957
1958 * typeck.c (build_x_function_call): Call complete_type before
1959 checking TYPE_OVERLOADS_CALL_EXPR.
1960
7ea63af7
MH
1961Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
1962
1963 * g++.c (main): Check also for new define ALT_LIBM.
1964
ec255269
MS
1965Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
1966
1967 * pt.c (instantiate_class_template): If we don't have a pattern
1968 yet, that's OK.
1969 (coerce_template_parms): If we see a local class, bail.
1970
1971 * decl.c (grok_reference_init): Make sure there's a type before
1972 checking its code.
1973
1974 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
1975 (push_template_decl): Ditto.
1976
1977 * parse.y (named_class_head): Set
1978 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
1979
1980 * decl.c (xref_tag): Diagnose redeclaration of template
1981 type-parameter name.
1982
1983 * error.c (dump_type): Handle anonymous template type parms.
1984
1985 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
1986 TYPE_STUB_DECL.
1987 (coerce_template_parms): Ditto.
1988
1989Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
1990
1991 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
1992 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
1993
1994Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
1995
1996 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
1997 before trying to get its STUB_DECL.
1998 (coerce_template_parms): Ditto.
1999
2000 * parse.y (template_type_parm): If they didn't use 'class',
2001 pretend they did after giving an error.
2002
2003 * pt.c (coerce_template_parms): Diagnose use of local class.
2004
2005 * decl.c (grok_reference_init): Use instantiate_type.
2006
2007 * error.c (dump_expr): Handle TEMPLATE_DECLs.
2008
2009 * parse.y (named_class_head): Diagnose mismatching types and tags.
2010
2011 * decl.c (pushdecl): Type decls and class templates clash with
2012 artificial type decls, not hide them.
2013
2014 * decl.c (redeclaration_error_message): Diagnose redefinition of
2015 templates properly.
2016 (duplicate_decls): Diagnose disallowed overloads for template
2017 functions, too.
2018
2019 * decl.c (start_decl): Call complete_type before checking for a
2020 destructor.
2021
2022 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
2023
2024 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
2025
5566b478
MS
2026Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2027
ec255269
MS
2028 * decl.c (grok_op_properties): Don't check for operator++(int) in
2029 a template.
2030
2031 * tree.c (perm_manip): Return a copy of variable and function
2032 decls with external linkage.
2033
2034 * tree.def: Change some of the min tree codes to type "1".
2035 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
2036 * method.c (build_overload_int): Emit something arbitrary for
2037 anything but an INTEGER_CST if we're in a template.
2038
2039 * decl.c (cp_finish_decl): Call complete_type before deciding
2040 whether or not to lay out the decl.
2041
5566b478
MS
2042 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
2043
2044Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
2045
2046 * typeck2.c (build_x_arrow): Call complete_type.
2047
2048 * pt.c (add_pending_template): Broken out.
2049 (lookup_template_class): If -fexternal-templates, call it for all
2050 the methods of implemented types.
2051 (instantiate_class_template): Instead of instantiating them here.
2052 (instantiate_decl): Handle -fexternal-templates earlier.
2053
2054Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2055
2056 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
2057 memoized lookup stuff inside GATHER_STATISTICS.
2058
2059Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2060
2061 * decl.c (start_decl): Complain about array of incomplete type
2062 here.
2063 (grokdeclarator): Not here.
2064
2065 * parse.y (template_parm): Expand full_parm inline so we can set
2066 the rule's precedence.
2067
2068 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
2069 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
2070 * decl2.c (grokbitfield): Don't check for integer constant here.
2071 * class.c (finish_struct_1): Check here.
2072
2073 * decl.c (define_label): Make the min decl go on permanent_obstack.
2074
2075 * pt.c (unify): Don't handle CONST_DECLs.
2076 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
2077 (tsubst_copy): Ditto.
2078
2079 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
2080 CONST_DECL for a template parm.
2081
2082Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
2083
2084 * decl.c (grokdeclarator): Complain about array of incomplete type
2085 here.
2086 (start_decl_1): Not here.
2087
2088 * pt.c (tsubst): Handle pointer-to-function declarators.
2089
2090 * method.c (hack_identifier): If pedantic, diagnose local class
2091 methods that require a static chain.
2092
2093 * decl.c (grok_op_properties): No longer static.
2094 * cp-tree.h: Declare it.
2095 * pt.c (tsubst): Call it for operators.
2096 Use tsubst_copy for TREE_VECs.
2097
2098 * parse.y (template_arg): The expr has precedence like '>'.
2099
2100Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
2101
2102 * pt.c (coerce_template_parms): Don't coerce an expression using
2103 template parms.
2104 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
2105 (tsubst): Don't use build_index_2_type if the max_value uses template
2106 parms.
2107 * method.c (build_overload_int): Emit something arbitrary for an
2108 expression using template parms.
2109
2110 * parse.y (template_close_bracket): New non-terminal to catch use
2111 of '>>' instead of '> >' in template class names.
2112 (template_type): Use it.
2113 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
2114
2115 * tree.def: Add CAST_EXPR.
2116 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
2117 CONVERT_EXPR for minimal_parse_mode.
2118 * typeck.c (build_c_cast): Ditto.
2119 * pt.c (tsubst_copy): Ditto.
2120 * decl2.c (build_expr_from_tree): Ditto.
2121 * error.c (dump_expr): Ditto.
2122
2123Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2124
2125 * except.c (SetTerminate, SetUnexpected): Put back global vars.
2126 (init_exception_processing): Put back decl/init of
2127 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
2128 fns from libstdc++.
2129
2130 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
2131 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
2132 Delete unused fns.
2133 * cp-tree.h (declare_uninstantiated_type_level,
2134 uninstantiated_type_level_p): Delete prototypes.
2135
2136Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
2137
2138 * pt.c (tsubst_expr): Add default return.
2139
2140Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2141
2142 * error.c (fndecl_as_string): Delete unused arg CNAME.
2143 * sig.c (build_signature_table_constructor,
2144 build_signature_method_call): Fix calls.
2145
2146 * class.c (the_null_vtable_entry): Delete var definition.
2147 (init_class_processing): Delete tree the_null_vtable_entry init.
2148 * decl.c (no_print_{functions, builtins}): Declare as static.
2149 (__tp_desc_type_node): #if 0 var definition.
2150 (init_type_desc): #if 0 init of __tp_desc_type_node.
2151 (vb_off_identifier): Move var decl into init_decl_processing.
2152 (current_function_assigns_this): Declare as static.
2153 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
2154 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
2155 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
2156 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
2157 * init.c (BI_header_type, BI_header_size): Declare as static.
2158 * pt.c (template_classes): Delete unused var.
2159 (add_pending_template): Delete decl for non-existent fn.
2160 (lookup_template_class): Delete vars CODE and TAG_CODE.
2161 (instantiate_template): Delete unused var TARGS.
2162 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
2163 Delete decls.
2164 (__tp_desc_type_node): #if 0 var decl.
2165 (fndecl_as_string): Fix prototype.
2166
2167Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
2168
2169 * tree.def: Add GOTO_STMT.
2170 * pt.c (tsubst_expr): Support goto and labels.
2171 * decl.c (define_label): Support minimal parsing.
2172 * parse.y (simple_stmt): Ditto.
2173
2174Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2175
2176 * xref.c (GNU_xref_member): Only define/set var I if
2177 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
2178 used.
2179 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
2180 (GNU_xref_end): Fix call.
2181 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
2182 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
2183
2184 * tree.c (build_exception_variant): Delete unused vars I, A, T,
2185 T2, and CNAME.
2186 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
2187 (mapcar): Delete unused var CODE.
2188 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
2189 (break_out_cleanups): Fix call.
2190 (bot_manip): Likewise.
2191 * call.c (build_method_call): Likewise.
2192 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
2193 Likewise.
2194 * typeck.c (unary_complex_lvalue, build_modify_expr,
2195 convert_for_initialization): Likewise.
2196 * typeck2.c (build_functional_cast): Likewise.
2197 * cp-tree.h (build_cplus_new): Fix prototype.
2198
2199 * repo.c (open_repo_file): Delete unused var Q.
2200 (repo_compile_flags, repo_template_declared,
2201 repo_template_defined, repo_class_defined, repo_inline_used,
2202 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
2203 (repo_get_id, repo_vtable_used): Declare as static.
2204 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
2205 prototypes.
2206
2207Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
2208
2209 * parse.y (pending_inlines): Add function_try_block case.
2210
2211 * pt.c (unify): Fix for template const parms.
2212
2213Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2214
2215 * lex.c (extract_interface_info): Delete forward decl.
2216 (default_copy_constructor_body, default_assign_ref_body): Delete
2217 decls for non-existent functions.
2218 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
2219 (init_lex): Delete setting them.
2220 (cons_up_default_function): Delete unused vars FUNC_BUF,
2221 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
2222 #if 0'd synth code.
2223 (toplevel, expression_obstack): Delete unused extern decls.
2224 (tree_node_kind): Delete unused enum.
2225 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
2226 GATHER_STATISTICS.
2227 (tree_node_kind_names): Delete unused extern decl.
2228 (synth_obstack): Delete unused var.
2229 (init_lex): Don't set it.
2230 (init_parse): Add decl before use.
2231 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
2232 (current_unit_{name, language}): Delete unused vars.
2233 (check_newline): Don't bother setting them, just accept the #pragma.
2234 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
2235 (current_unit_{name, language}): Delete decls.
2236
2237 * search.c: Wrap all of the memoized functions, macros, and
2238 variables inside #ifdef GATHER_STATISTICS.
2239 (lookup_field, lookup_fnfields): Likewise.
2240 (init_search_processing): Likewise.
2241 (reinit_search_statistics): Wrap whole function.
2242 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
2243
2244 * decl.c (finish_function): Only call pop_memoized_context if
2245 GATHER_STATISTICS is defined.
2246 (start_function): Likewise for push_memoized_context.
2247 * class.c (pushclass, popclass): Likewise.
2248
2249 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
2250 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
2251
2252 * cvt.c (cp_convert): Delete unused local var FORM.
2253 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
2254 prototypes.
2255
2256Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2257
2258 * pt.c (do_poplevel): Oops; really return what we get from
2259 poplevel this time.
2260
2261Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2262
2263 * cp-tree.h (is_aggr_type): Add prototype.
2264
2265 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
2266 * method.c ({push,pop}_cp_function_context): Delete decls.
2267 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
2268 (SetUnexpected, SetTerminate): Delete unused vars.
2269 (init_exception_processing): Don't set SetUnexpected or
2270 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
2271 (output_exception_table_entry): Delete unused array LABEL.
2272 (expand_internal_throw): Delete unused var PARAMS.
2273 (expand_start_catch_block): Delete unused var CLEANUP.
2274 (emit_exception_table): Delete unused var EH_NODE_DECL.
2275 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
2276 GOTO_UNWIND_AND_THROW. Don't set them.
2277 (end_eh_unwinder): Add top decl.
2278 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
2279 (exception_section, push_rtl_perm, do_function_call,
2280 lang_interim_eh, push_eh_cleanup, eh_outer_context,
2281 expand_end_eh_spec, end_eh_unwinder): Declare as static.
2282 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
2283 throw_used): Likewise.
2284 * cp-tree.h (expand_end_eh_spec): Delete prototype.
2285
2286 * search.c (dfs_mark, dfs_mark_vtable_path,
2287 dfs_unmark_vtable_path, dfs_mark_new_vtable,
2288 dfs_unmark_new_vtable, dfs_clear_search_slot,
2289 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
2290 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
2291 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
2292 functions.
2293 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
2294 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
2295 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
2296 Only define #ifdef GATHER_STATISTICS.
2297 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
2298 is defined.
2299 (vbase_decl): Delete var definition.
2300 (init_search): Delete old decl.
2301 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
2302 never actually used.
2303 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
2304 (get_base_distance_recursive): Delete unused fourth arg
2305 BASETYPE_PATH. Fix call .
2306 (get_base_distance): Fix call.
2307 (push_class_decls): Delete unused var ID.
2308 (make_memoized_table_entry): Declare as static.
2309 (breadth_first_search): Declare as static.
2310 (tree_has_any_destructor_p): Declare as static.
2311 (pop_class_decls): Delete unused arg pop_class_decls.
2312 * class.c (popclass): Fix call to pop_class_decls.
2313 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
2314 tree_has_any_destructor_p): Delete prototypes.
2315
2316 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
2317 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
2318 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
2319 (build_user_desc): Delete unused var T.
2320 (build_class_desc): Delete unused vars T and OFF.
2321 (build_t_desc): Delete unused var NAME_STRING.
2322 (build_headof): Make static.
2323 (get_bad_cast_node): Likewise.
2324 (get_def_to_follow): Likewise.
2325 * cp-tree.h (init_type_desc): Add prototype.
2326 (build_headof): Remove prototype.
2327
2328Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2329
2330 * pt.c (tsubst): Only look for matching decls at file scope for
2331 non-member functions.
2332
2333 * call.c (build_scoped_method_call): Handle scoped destructor
2334 calls in templates.
2335
2336 * decl.c (*_top_level): Also save previous_class_values.
2337
2338 * pt.c (tsubst_expr): Support do {} while loops.
2339 * parse.y (simple_stmt): Ditto.
2340 * tree.def: Ditto.
2341
2342 * method.c (build_overload_identifier): For a class nested in a
2343 template class, don't mangle in the template parms from our
2344 context.
2345
2346 * lex.c, cp-tree.h: Remove support for template instantiations in
2347 the pending_inlines code.
2348 * pt.c: Remove dead functions and unused arguments.
2349 (uses_template_parms): TYPENAME_TYPEs always use template parms.
2350 * parse.y: Stop passing anything to end_template_decl.
2351 * tree.c (print_lang_statistics): Only print tinst info #ifdef
2352 GATHER_STATISTICS.
2353
2354Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2355
2356 * init.c (expand_recursive_init{,_1}): Delete decls.
2357 (sort_member_init): Delete unused var INIT.
2358 (emit_base_init): Delete unused var X.
2359 (build_offset_ref): Delete unused var CNAME.
2360 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
2361 (emit_base_init): Delete unused local var BASE. Delete extern
2362 decl of IN_CHARGE_IDENTIFIER.
2363 (build_delete): Delete unused local var VIRTUAL_SIZE.
2364
2365 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
2366 (build_delete): Fix call.
2367 * decl2.c (delete_sanity): Likewise.
2368 * cp-tree.h (build_vec_delete): Update prototype.
2369
2370 * typeck.c (common_base_type): Delete unused var TMP.
2371 (build_binary_op): Delete local var ARGS_SAVE.
2372 (build_array_ref): Delete unused var ITYPE.
2373 (c_expand_return): Delete unused var USE_TEMP.
2374
2375 * typeck.c (compexcepttypes): Delete unused arg STRICT.
2376 (comptypes): Fix calls.
2377 * decl.c (duplicate_decls): Likewise.
2378 * cp-tree.h (compexcepttypes): Delete extra arg.
2379
2380 * decl2.c (check_classfn): Delete unused second arg CNAME.
2381 * decl.c (start_decl, grokfndecl): Fix calls.
2382 * init.c (do_friend): Likewise.
2383 * cp-tree.h (check_classfn): Update prototype.
2384
2385 * cp-tree.h (signature_error, import_export_vtable,
2386 append_signature_fields, id_in_current_class, mark_used,
2387 copy_assignment_arg_p): Add decls.
2388 * decl2.c (mark_used): Delete decl.
2389
2390 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
2391
2392 * class.c (get_vtable_entry): Diable unused function.
2393 (doing_hard_virtuals): Delete unused static global var.
2394 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
2395 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
2396 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
2397 (modify_one_vtable): Delete unused var OLD_RTTI.
2398 (finish_struct_anon): Delete unused vars OFFSET and X.
2399 (finish_struct_bits): Delete unused var METHOD_VEC.
2400 (get_basefndecls): Delete unused var PURPOSE. Delete unused
2401 for-scope local variable METHODS.
2402
2403 * call.c (user_harshness): Delete unused/unneeded arg PARM.
2404 (ideal_candidate): Delete unused args BASETYPE and PARMS.
2405 (build_method_call): Delete unused args passed into ideal_candidate.
2406 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
2407 * cp-tree.h (synthesize_method): Add decl.
2408
2409 * decl.c (note_level_for_for): Give void return type.
2410 (pushdecl_nonclass_level): Likewise.
2411 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
2412 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
2413 (suspend_binding_level): Delete unused var LEVEL.
2414 (duplicate_decls): Delete unused var CTYPE.
2415 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
2416 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
2417 PTR_ENDLINK.
2418 (grokdeclarator): Delete unused var C.
2419 (grokdeclarator): Delete unused var SIZE_VARIES.
2420 (grokparms): Delete unused var SAW_VOID.
2421 (start_function): Delete unused var OLDDECL.
2422 (cplus_expand_expr_stmt): Delete unused var
2423 REMOVE_IMPLICIT_IMMEDIATELY.
2424
2425 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
2426
2427 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
2428
2429Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2430
2431 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
2432 (build_min_nt): Ditto.
2433 * pt.c (do_pushlevel): Emit line note.
2434 (do_poplevel): Return what we get from poplevel.
2435 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
2436 * parse.y: Use do_pushlevel and do_poplevel.
2437 * cp-tree.h: Declare do_poplevel.
2438
2439 * cp-tree.h: Declare at_eof.
2440 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
2441 * decl2.c (import_export_decl): Renamed from import_export_inline.
2442 (finish_file): Call it to do interface handling for statics.
2443 * pt.c (tsubst_copy): Call mark_used on variables and functions
2444 used here.
2445
2446 * decl2.c (finish_file): Don't emit statics we can't generate.
2447 * pt.c (instantiate_decl): Don't set interface on instantiations
2448 we can't generate.
2449
2450 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
2451 * tree.c (print_lang_statistics): Print max template depth.
2452 * pt.c (push_tinst_level): Dump entire instantiation context.
2453 (instantiate_class_template): Use it and pop_tinst_level.
2454 (instantiate_decl): Ditto.
2455
2456 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
2457 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
2458
2459Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
2460
2461 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
2462 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
2463 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
2464 the new template implementation.
2465
2466Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2467
2468 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
2469
cffa8729
MS
2470Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
2471
2472 * decl.c (cp_finish_decl): Delay emitting the debug information for
2473 a typedef that has been installed as the canonical typedef, if the
2474 type has not yet been defined.
2475
2476Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2477
2478 * decl2.c (grokfield): Still call pop_nested_class for access decls.
2479
2480Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2481
2482 * decl.c (lookup_label): Call label_rtx.
2483
2484 * decl.c (make_binding_level): New function.
2485 (pushlevel, pushlevel_class): Call it instead of explicit
2486 duplicate calls to xmalloc.
2487
2488 * decl.c (init_decl_processing): Delete useless build_pointer_type
2489 call.
2490
2491 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
2492 (sizet_ftype_string): Delete variable.
2493 (init_decl_processing): Add built-in functions fabsf, fabsl,
2494 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
2495 variable strlen_ftype, used for strlen.
2496
2497Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
2498
2499 * decl.c (push_to_top_level): Start from current_binding_level
2500 again for now; the stl hacks depend on g++ being broken in this
2501 way, and it'll be fixed in the template rewrite.
2502
2503 * tree.def: Add USING_DECL.
2504 * decl2.c (do_class_using_decl): Implement.
2505 (grokfield): Pass access decls off to do_class_using_decl instead of
2506 grokdeclarator.
2507 * error.c (dump_decl): Handle USING_DECLs.
2508 * decl.c (grokdeclarator): Remove code for handling access decls.
2509 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
2510 as access decls for now.
2511 (finish_struct): Don't check USING_DECLs for other uses of the name.
2512
2513 * search.c (get_matching_virtual): Use cp_error_at.
2514
2515Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2516
2517 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
2518 match c-typeck.c.
2519 (self_promoting_args_p): Move the check that TYPE is non-nil
2520 before trying to look at its main variant.
2521 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
2522
2523 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
2524 Delete macros.
2525 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
2526 (do_friend): Delete call to xref_friend.
2527 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
2528
2529 * typeck.c (convert_sequence): #if 0 unused function.
2530
2531 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
2532 be in decl_in_memory_p.
2533 (decl_in_memory_p): Delete decl.
2534 * expr.c (decl_in_memory_p): Delete fn.
2535 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
2536
2537 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
2538
2539Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
2540
2541 * class.c (finish_struct_1): Check for a pure-specifier on a
2542 non-virtual function here.
2543
2544 * decl2.c (grok_function_init): Don't check whether the function
2545 is virtual here.
2546 (grokfield): Don't call check_for_override here.
2547
2548 * decl.c (push_to_top_level): Start from inner_binding_level,
2549 check class_shadowed in class levels.
2550
2551Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
2552
2553 * decl.c (resume_level): Ignore things that don't have names, instead
2554 of core dumping.
2555
2556Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2557
2558 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
2559
2560Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
2561
2562 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
2563 synthesized dtor.
2564
2565 * parse.y (complete_type_name): Bind global_scope earlier.
2566 (complex_type_name): Ditto.
2567 (qualified_type_name): Remove.
2568
2ee887f2
MS
2569Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
2570
2571 * decl.c (grokfndecl): Move code that looks for virtuals in base
2572 classes...
cffa8729 2573 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
2574 (finish_struct_1): Call it.
2575
2576 * cp-tree.h: Declare warn_sign_compare.
2577
2578 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
2579 rather than extra_warnings to decide whether to warn about
2580 comparison of signed and unsigned.
2581
2582 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
2583 implies -Wsign-compare. -Wall doesn't imply -W.
2584
2585Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
2586
2587 * typeck.c (build_component_ref): Fix to handle anon unions in base
2588 classes as well.
2589
2590Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2591
2592 * class.c (resolves_to_fixed_type_p): Delete code dealing with
2593 a WITH_CLEANUP_EXPR, since we don't generate them any more.
2594 * cvt.c (build_up_reference): Likewise.
2595 * decl.c (grok_reference_init): Likewise.
2596 (cp_finish_decl): Likewise.
2597 * error.c (dump_expr): Likewise.
2598 * tree.c (real_lvalue_p): Likewise.
2599 (lvalue_p): Likewise.
2600 (build_cplus_new): Likewise.
2601 (unsave_expr_now): Likewise.
2602 * typeck.c (unary_complex_lvalue, build_modify_expr,
2603 c_expand_return): Likewise.
2604
2605Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2606
2607 Make the C++ front-end pay attention to attributes for structures.
2608 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
2609 finish_struct_1.
2610 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
2611 Take out old round_up_size use and setting the DECL_ALIGN possibly
2612 using it. Take out setting of TYPE_ALIGN to round_up_size, which
2613 can override what the attribute set.
2614 * cp-tree.h (finish_struct): Update prototype.
2615 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
2616 attributes to finish_struct.
2617 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
2618 value down into finish_struct.
2619 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
2620
2621Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
2622
2623 * decl.c (poplevel): Re-word dead for local handling.
2624 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
2625 (cp_finish_decl): If is_for_scope, check for duplicates so
2626 we can disable is_for_scope. Otherwise, preserve_temp_slots.
2627
2628 * lex.c (do_identifier): Use global binding in preference of
2629 dead for local variable.
2630
2631Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
2632
2633 * init.c (initializing_context): Handle anon union changes, the
2634 context where fields of anon unions can be initialized now has to be
2635 found by walking up the TYPE_CONTEXT chain.
2636
2637Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
2638
2639 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
2640 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
2641 (obscure_complex_init): If bss is supported, always set
2642 DECL_INITIAL to error_mark_node.
2643
2644Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2645
2646 * init.c (is_friend): Make sure there's a context before we see if
2647 it's an aggr type.
2648
2649Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
2650
2651 * init.c (is_friend): Classes are not friendly with nested classes.
2652
2653Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
2654
2655 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
2656 and record its result.
2657
9e9ff709
MS
2658Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
2659
2660 * class.c (finish_struct_anon): Switch around code to not move anon
2661 union elements around, nor mess up their contexts, nor offsets,
2662 instead we now build up the right number of COMPONENT_REFs for all
2663 the anon unions that may be present at build_component_ref time.
2664 * typeck.c (lookup_anon_field): New routine to handle field lookup
2665 on fields without names. We find them, based upon their unique type
2666 instead.
2667 * typeck.c (build_component_ref): Allow FIELD_DECL components.
2668 Handle finding components in anonymous unions, and ensure that a
2669 COMPONENT_REF is built for each level as necessary.
2670
2671Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
2672
2673 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
2674 code that ensures that copy ctors are used if appropriate.
2675
2676Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2677
2678 * init.c (build_vec_delete): Only give an error if base isn't an
2679 error_mark_node.
2680
2681Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
2682
2683 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
2684 (yylex): If we see `new', keep slurping.
2685
2686Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
2687
2688 * class.c (finish_struct_1): Move code for handling anon unions...
2689 (finish_struct_anon): to here. Fixup so that we do the offset
2690 calculations right, and so that the fields are physically moved to
2691 the containers's chain.
2692
2693Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2694
2695 * decl.c (grokdeclarator): Avoid trying to get an operand off an
2696 identifier node.
2697
2698Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
2699
2700 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
2701 POINTER_SIZE to agree with expr.c.
2702
2703Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
2704
2705 * search.c (lookup_field): Don't report ambiguities if protect is 0,
2706 instead return NULL_TREE.
2707
2708Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
2709
2710 * class.c (finish_struct_1): Call warn_hidden if we want warnings
2711 about overloaded virtual functions.
2712 (warn_hidden): New routine to warn of virtual functions that are
2713 hidden by other virtual functions, that are not overridden.
2714 (get_basefndecls): New routine, used by warn_hidden.
2715 (mark_overriders): New routine, used by warn_hidden.
2716 * search.c (get_matching_virtual): Remove old warning that just
2717 isn't very useful.
2718
2719Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2720
2721 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
2722
2723 * typeck.c (null_ptr_cst_p): Delete unused fn.
2724 (build_function_call_maybe): Delete unused fn.
2725
2726 * expr.c (extract_init): #if 0 the code after unconditional return 0
2727 for now.
2728
2729 Delete old cadillac code.
2730 * edsel.c: Remove file.
2731 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
2732 * Makefile.in (CXX_OBJS): Delete edsel.o.
2733 (edsel.o): Delete rule.
2734 * cp-tree.h (flag_cadillac): Delete var decl.
2735 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
2736 * decl2.c (flag_cadillac): Delete var definition.
2737 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
2738 (grokfield): Delete code depending on flag_cadillac.
2739 (finish_anon_union): Likewise.
2740 * class.c (finish_struct_1): Likewise.
2741 (pushclass): Likewise.
2742 (popclass): Likewise.
2743 (push_lang_context): Likewise.
2744 (pop_lang_context): Likewise.
2745 * decl.c (init_decl_processing): Likewise.
2746 (start_decl): Likewise.
2747 (cp_finish_decl): Likewise.
2748 (xref_tag): Likewise.
2749 (finish_enum): Likewise.
2750 (start_function): Likewise.
2751 (finish_function): Likewise.
2752 (finish_stmt): Likewise.
2753 * lex.c (lang_init): Likewise.
2754 (check_newline): Likewise.
2755
2756 * lex.c (do_pending_inlines): Delete synthesized method kludge.
2757
2758 Delete defunct, ancient garbage collection implementation.
2759 * rtti.c: New file with the RTTI stuff from gc.c.
2760 * gc.c: Removed file (moved the remaining stuff into rtti.c).
2761 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
2762 (rtti.o): New rule, replacing gc.o.
2763 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
2764 * cp-tree.h: Delete gc-related fn decls.
2765 (DECL_GC_OFFSET): Delete macro.
2766 (flag_gc): Delete extern decl.
2767 * decl.c (current_function_obstack_index): Delete var decl.
2768 (current_function_obstack_usage): Delete var decl.
2769 (start_function): Delete clearing of current_function_obstack_index
2770 and current_function_obstack_usage.
2771 (init_decl_processing): Delete code relying on -fgc.
2772 Delete call to init_gc_processing.
2773 (cp_finish_decl): Delete calls to build_static_gc_entry and
2774 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
2775 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
2776 and to expand_expr of a __gc_main call.
2777 (maybe_gc_cleanup): Delete var decl.
2778 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
2779 * decl2.c (flag_gc): Delete var decl.
2780 (lang_f_options): Delete offering of -fgc.
2781 (lang_decode_option): Delete -fgc and -fno-gc handling.
2782 (get_temp_regvar): Delete gc code.
2783 * init.c (build_new): Delete gc code.
2784 * lex.c (init_lex): Delete checking of flag_gc.
2785
2786 * typeck.c (convert_arguments): Delete gc code.
2787 (build_component_addr): Delete -fgc warning.
2788 (build_modify_expr): Delete gc code.
2789
2790 * decl2.c (build_push_scope): Delete fn.
2791 * cp-tree.h (build_push_scope): Delete decl.
2792
2793 * search.c (clear_search_slots): Delete fn.
2794 * cp-tree.h (clear_search_slots): Delete decl.
2795
2796 * search.c (tree_needs_constructor_p): Delete fn.
2797 * cp-tree.h (tree_needs_constructor_p): Delete decl.
2798
2799 * tree.c (id_cmp): Delete fn.
2800
2801 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
2802 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
2803
2804 * tree.c (decl_value_member): Delete fn.
2805 * cp-tree.h (decl_value_member): Delete decl.
2806
2807 * tree.c (list_hash_lookup_or_cons): Delete fn.
2808 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
2809
2810 * method.c (cplus_exception_name): Delete fn.
2811 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
2812
2813 * spew.c (shift_tokens): Delete fn.
2814
2815Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
2816
2817 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
2818 to cp_finish_decl.
2819 * parse.y: Ditto.
2820
2821Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2822
2823 * tree.c (build_cplus_staticfn_type): Delete function definition;
2824 never used.
2825 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
2826
2827 * tree.c (virtual_member): Delete function definition; never used.
2828 * cp-tree.h (virtual_member): Delete decl.
2829
45537677
MS
2830Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
2831
2832 * typeck.c (build_component_ref): Handle getting vbase pointers
2833 out of complex multiple inheritance better.
2834
2835Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
2836
2837 * typeck.c (build_object_ref): Make sure we use the real type, not
2838 any reference type.
2839
2840Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
2841
2842 * tree.c (build_exception_variant): Don't create new types if we
2843 don't have to, also build new types on the right obstack.
2844
2845Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2846
2847 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
2848 (push_to_top_level): Call it for b->type_shadowed on class binding
2849 levels.
45537677
MS
2850
2851Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
2852
2853 * search.c (expand_upcast_fixups): Fix so that offsets stored in
2854 vbase_offsets are always right. Fixes a problem where virtual base
2855 upcasting and downcasting could be wrong during conversions on this
2856 during virtual function dispatch at ctor/dtor time when dynamic
2857 vtable fixups for deltas are needed. This only sounds easier than
2858 it is. :-)
2859 (fixup_virtual_upcast_offsets): Change to reflect new calling
2860 convention for expand_upcast_fixups.
2861
2862Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2863
2864 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
2865 check that it's usable as the bitfield width.
2866
2867Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2868
2869 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
2870 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
2871 only ever used for functions in it.
2872
2873Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
2874
2875 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
2876 (nested_type): Ditto.
2877 (nested_name_specifier): Use lastiddecl.
2878
2879 * decl.c (grokdeclarator): Adjust accordingly.
2880 * init.c (expand_member_init): Ditto.
2881 * parse.y (base_class): Ditto.
2882 * typeck2.c (build_functional_cast): Ditto.
2883
2884 * typeck2.c (build_functional_cast): Fill in name after we've
2885 checked for non-aggr type.
2886
be99da77
MS
2887Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
2888
2889 * decl2.c (warn_pointer_arith): Default to on.
2890
2891Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
2892
2893 * lex.c (is_rid): New function.
2894 * decl.c (grokdeclarator): Diagnose reserved words used as
2895 declarator-ids.
2896
2897Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
2898
2899 * tree.c (get_decl_list): Don't lose cv-quals.
2900
2901 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
2902 typespecs used as declarator-ids.
2903
2904Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
2905
2906 * decl.c (poplevel): When poping a level, don't give a warning for
2907 any subblocks that already exist.
2908
2909Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
2910
2911 * typeck.c (build_object_ref): Finish what I started.
2912
2913 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
2914
2915 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
2916
2917 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 2918 scope.
be99da77
MS
2919
2920Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
2921
2922 * decl.c (xref_tag): Handle passing a type in directly.
2923
2924 * parse.y (qualified_type_name): Pull out the type.
2925 (nested_type): Ditto.
2926 Take types directly instead of as identifiers.
2927 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709
MS
2928 as identifiers.
2929 * decl.c (xref_basetypes): Ditto.
be99da77
MS
2930 * init.c (expand_member_init): Ditto.
2931 (build_member_call): Ditto.
2932 (build_offset_ref): Ditto.
2933 * typeck2.c (build_scoped_ref): Ditto, remove bogus code.
2934 * method.c (do_build_assign_ref): Ditto.
2935 * decl.c (grokdeclarator): Handle a type appearing as the
2936 declarator-id for constructors.
2937 * method.c (do_build_copy_constructor): current_base_init_list now
2938 uses the types directly, not their names.
2939 * init.c (sort_base_init): Ditto.
2940 (expand_member_init): Ditto.
2941 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77
MS
2942
2943Mon Jan 15 08:45:01 1996 Jeffrey A Law (law@cygnus.com)
2944
2945 * tree.c (layout_basetypes): Call build_lang_field_decl instead
2946 of build_lang_decl if first arg is a FIELD_DECL.
be99da77
MS
2947
2948Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2949
2950 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
2951 non-empty.
2952 * except.c (expand_start_catch_block): Set TREE_USED to avoid
2953 warnings about the catch handler.
2954
2955Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
2956
2957 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 2958 expand_target_expr.
be99da77
MS
2959
2960Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2961
2962 Fix access control to use trees rather than integers.
2963 * class.c (access_{default, public, protected, private,
2964 default_virtual, public_virtual, private_virtual}_node): Add
2965 definitions.
2966 (init_class_processing): Do creation of those nodes.
2967 * cp-tree.h (access_type): Delete enum decl.
2968 (access_{default, public, protected, private, default_virtual,
2969 public_virtual, private_virtual}_node): Add decls.
2970 (compute_access): Change return type.
2971 * search.c (compute_access): Have tree return type, instead of enum.
2972 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
2973 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
2974 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
2975 * parse.y (VISSPEC): Make ttype rather than itype.
2976 (base_class_access_list): Likewise.
2977 * *.[cy]: Change all refs of `access_public' to `access_public_node',
2978 etc.
2979 * call.c (build_method_call): Make ACCESS be a tree.
2980 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
2981 * cvt.c (convert_to_aggr): Likewise.
2982 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
2983 Likewise.
2984 * method.c (hack_identifier): Likewise.
2985 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
2986
2987Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
2988
2989 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
2990 frontend, and make it more consistent with respect to
2991 warn_pointer_arith.
2992
2993Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
2994
2995 * decl.c (pushdecl): Check for duplicate parameter names.
2996
2997Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
2998
2999 * decl.c (expand_static_init): Call assemble_external for atexit.
3000
3001Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
3002
3003 * except.c (do_unwind): Remove some generated dead code.
3004 (eh_outer_context): New routine, factor out some common code from
3005 expand_builtin_throw and end_eh_unwinder. Add code to do return
3006 address masking for the PA.
3007 (expand_builtin_throw): Use eh_outer_context instead of open coding
3008 it here.
3009 (end_eh_unwinder): Ditto.
3010
3011Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
3012
3013 * except.c (expand_throw): Call assemble_external for __empty, if we
3014 use it.
3015
21451173
MS
3016Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
3017
3018 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
3019 NORMAL_RETURN_ADDR_OFFSET.
3020 (end_eh_unwinder): Ditto.
3021
3022Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
3023
3024 * gc.c (build_dynamic_cast): Make sure we don't cast away const
3025 when dealing with references, and make sure we handle dynamic
3026 casting to a cv qualified reference.
3027
3028Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
3029
3030 * except.c (struct eh_context): New structure top hold eh context
3031 information.
3032 (push_eh_context): New routine.
3033 (pop_eh_context): Ditto.
3034 * decl.c (push_cp_function_context): Use them.
3035 (pop_cp_function_context): Ditto.
3036
3037Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
3038
3039 * decl2.c (finish_file): Also prune uninteresting functions in the
3040 inline emission loop.
3041
3042Wed Dec 20 02:32:07 1995 Jeffrey A Law (law@cygnus.com)
3043
3044 * sig.c (build_signature_table_constructor): Mark functions
3045 in the signature as referenced.
3046
3047Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
3048
3049 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
3050 the inline emission stuff.
3051
72b7eeff
MS
3052Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
3053
3054 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 3055 weak symbols.
72b7eeff
MS
3056 * lang-options.h: Add -f{no-,}weak.
3057 * decl.c (init_decl_processing): If the target does not support weak
3058 symbols, don't use them.
3059 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
3060
3061Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
3062
3063 * init.c (expand_member_init): warning for base init after members.
3064
72b7eeff
MS
3065Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
3066
3067 * cvt.c (build_expr_type_conversion): Don't convert to a reference
3068 type.
3069
3070Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
3071
3072 * method.c (report_type_mismatch): Improve wording for volatile
3073 mismatches.
3074
3075Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
3076
3077 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 3078 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
3079 copy constructors well. The compiler would do bitwise copying,
3080 instead of ctor calling in some cases.
3081
3082Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
3083
3084 * g++.c (my_strerror): Return "cannot access" if errno is 0.
3085 (pfatal_with_name, perror_exec): Don't assume that
3086 the returned value from my_strerror contains no '%'s.
3087 (concat): Remove.
3088 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
3089
3090Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
3091
3092 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
3093 TYPE_METHODS/TREE_CHAIN mean what they used to.
3094 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
3095 instead of TYPE_METHODS.
3096 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
3097 * tree.c (tree_copy_lang_decl_for_deferred_output): Ditto.
3098 * cp-tree.h (CLASSTYPE_METHODS): Lose.
3099 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
3100 TYPE_METHODS.
3101 (struct lang_decl): Lose next_method field.
3102 (DECL_NEXT_METHOD): Lose.
3103 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
3104 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
3105 anymore.
3106 (finish_struct_methods): Don't mess with the TREE_CHAINs in
3107 fn_fields.
3108
3109 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
3110 vector.
3111
3112 * call.c (build_method_call): Synthesize here even when not inlining.
3113 * typeck.c (build_function_call_real): Ditto.
3114
3115Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
3116
3117 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
3118 == DBX_DEBUG, call dbxout_start_new_source_file and
3119 dbxout_resume_previous_source_file when appropriate.
3120
3121Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
3122
3123 * except.c (start_anon_func): Push to the top level.
3124 (end_anon_func): Pop from the top level.
3125
3126Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
3127
3128 * cp-tree.h (build_cleanup): New routine to build cleanups.
3129 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
3130 call at ctor time and use atexit to run it later.
3131 * decl2.c (build_cleanup): New routine, taken from finish_file.
3132 (finish_file): Use build_cleanup instead, and don't put function
3133 local statics in global dtor list.
3134
3135Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
3136
3137 * except.c (expand_throw): Ensure that we have cleanups, if we try
3138 and expand cleanups.
3139
3140Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
3141
3142 * except.c (expand_throw): Add logic to manage dynamic cleanups for
3143 the EH object.
3144 (expand_end_catch_block): Use the magic of expand_goto, instead of
3145 emit_jump so that we get the cleanup for any catch clause parameter
3146 and the cleanup for the exception object. Update to reflect label
3147 changes.
3148 (push_eh_cleanup): New routine to register a cleanup for an
3149 exception object.
9e9ff709 3150 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
3151 nothing.
3152 (init_exception_processing): Setup empty_fndecl. Setup
3153 saved_cleanup.
3154 (expand_start_catch_block): Update to reflect label changes. Call
3155 push_eh_object to register the cleanup for the EH object.
3156 (start_anon_func): New routine to start building lambda expressions
3157 from trees.
3158 (end_anon_func): New routine to end them.
3159 (struct labelNode): Change so that we can use tree labels, or rtx
3160 labels.
3161 (saved_cleanup): Object to check for dynamic cleanups for the
3162 exception handling object.
3163 (push_label_entry): Change so that we can use tree labels, or rtx
3164 labels.
3165 (pop_label_entry): Ditto.
3166 (top_label_entry): Ditto.
3167 (expand_start_all_catch): Use tree label instead of rtx label, so
3168 that we can get the magic of expand_goto.
3169 (expand_end_all_catch): Update to reflect label changes.
3170
3171 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
3172 use UNSAVE_EXPRs.
3173 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
3174 building_cleanup logic, as we now use UNSAVE_EXPRs.
3175 * cp-tree.h (unsave_expr): Declare it.
3176 * decl.c (building_cleanup): Remove.
3177 (maybe_build_cleanup): Remove building_cleanup logic, and use
3178 UNSAVE_EXPR instead.
3179
3180Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
3181
3182 * gc.c (build_t_desc): Update error message to say <typeinfo>.
3183
3184Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3185
3186 * decl.c (pushdecl): Only warn about shadowing a local variable if
3187 warn_shadow is true.
3188
3189Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
3190
3191 * typeck.c (build_binary_op_nodefault): Added warning about
3192 comparisons between different enum types with -Wall, unless
3193 -fenum-int-equiv set.
3194
3195Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
3196
3197 * class.c (finish_struct_1): Skip down to the inner type in
3198 multidimensional arrays. Ensures ctors will be made for types that
3199 need constructing.
3200
3201Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
3202
3203 * decl.c (last_dtor_insn): New to track the last compiler generated
3204 insn in a dtor.
3205 (store_parm_decls): Set it.
3206 (finish_function): Use it to see if the dtor is empty. Avoid doing
3207 vtable setup all the time, if we can.
3208 (struct cp_function): Add last_dtor_insn.
3209 (push_cp_function_context): Save it.
3210 (pop_cp_function_context): Restore it.
3211
3212Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
3213
3214 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 3215 warnings.
72b7eeff
MS
3216
3217Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
3218
3219 * typeck.c (expand_target_expr): Make sure targets get put into the
3220 current temp_slot_level, so that the free_temp_slots call will reuse
3221 them.
3222
3223Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
3224
3225 * class.c (finish_struct_1): Delay delta fixups for virtual bases
3226 until after we have done the hard virtuals, to avoid a bogus `every
3227 virtual function must have a unique final overrider' for virtual
3228 functions that are only overridden by hard virtuals.
3229
3230Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
3231
3232 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 3233 template for a member function.
72b7eeff
MS
3234
3235Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
3236
3237 * g++.c (main): Add handling of -nodefaultlibs.
3238
3239Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
3240
3241 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
3242 distinguish between direct bindings of reference variables, and
3243 indirect bindings of reference variables.
3244 * cvt.c (build_up_reference): Use it.
3245 * typeck.c (convert_arguments): Use it to indicate this is an
3246 indirect binding.
3247 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
3248 as they are unused.
e349ee73 3249 (expand_static_init): Ditto.
72b7eeff
MS
3250 (cplus_expand_expr_stmt): Ditto.
3251 * decl2.c (finish_file): Ditto.
3252 * init.c (perform_member_init): Ditto.
3253 (emit_base_init): Ditto.
3254 (expand_aggr_vbase_init_1): Ditto.
3255
72b7eeff
MS
3256Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3257
3258 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
3259 get a DECL_LANG_SPECIFIC node.
3260 * cp-tree.h (lang_decl_flags): Add new member `level'.
3261 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
3262 decl_flags level member.
3263
3264Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3265
3266 * call.c (build_method_call): Make sure instance has a
3267 TYPE_LANG_SPECIFIC node before we dive into it.
3268
3269Sat Nov 4 20:01:52 1995 Jason Molenda (crash@phydeaux.cygnus.com)
3270
3271 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
3272
3273Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
3274
3275 * decl.c (duplicate_decls): When smashing decls, smash staticness in
3276 the usual way.
3277
3278Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
3279
3280 * decl.c (poplevel): Handle the merging of subblocks of cleanups
3281 when finishing blocks that have already been created (usually due to
3282 the fixup goto code). Fixes bad debugging information.
3283
3284Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
3285
3286 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
3287 that's not a list of overloaded functions.
3288
3289Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3290
3291 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
3292 before trying to use DECL_ABSTRACT_VIRTUAL_P.
3293
3294Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
3295
3296 * decl2.c (mark_used): New function for hooking into setting of
3297 TREE_USED on decls.
3298 * call.c (build_method_call): Use it.
3299 * class.c (instantiate_type): Ditto.
3300 * init.c (build_offset_ref): Ditto. Don't call assemble_external
3301 for all like-named functions.
3302 * method.c (hack_identifier): Ditto.
3303 (emit_thunk): Don't call assemble_external.
3304 (make_thunk): Create thunk as a FUNCTION_DECL so that it
3305 gets the right mode and ENCODE_SECTION_INFO works.
3306
3307 * parse.y: Use mark_used. Pass operator names to do_identifier.
3308 * lex.c (do_identifier): Handle operator names.
3309
3310 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
3311
72b7eeff
MS
3312Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3313
3314 * errfn.c: Include stdio.h.
3315 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
3316
3317Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
3318
3319 * typeck2.c (digest_init): Always convert initializers to the
3320 right type.
3321
3322Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
3323
3324 * init.c (member_init_ok_or_else): Don't allow member initializers
3325 for indirect members, as it is invalid.
3326
3327Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3328
3329 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
3330
3331Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
3332
3333 * parse.y (for.init.statement): Catch compound statements inside for
3334 initializations, if we're being pedantic.
3335
3336Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
3337
3338 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
3339 looking for.
3340
3341Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
3342
3343 * error.c (dump_expr): Don't core dump when a boolean expression is
3344 used as a default argument.
3345
3346Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
3347
3348 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 3349 RETURN_IN_MEMORY.
72b7eeff
MS
3350
3351Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
3352
3353 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
3354 BLKmode type that would otherwise be returned in registers.
3355
3356Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3357
3358 * g++.c (WITHLIBC): New macro.
3359 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
3360 saw_libc and pass it at the end if it was set.
3361
3362Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3363
3364 * parse.y (fn.def1): Call split_specs_attrs in
3365 declmods notype_declarator case.
3366
21451173 3367Sun Nov 26 14:47:42 1995 Richard Kenner <kenner@mole.gnu.ai.mit.edu>
1b898c06
MS
3368
3369 * Version 2.7.2 released.
3370
3371Mon Nov 20 14:05:00 1995 Mike Stump <mrs@cygnus.com>
3372
3373 * g++.c (pfatal_with_name): Add missing third argument to concat.
3374
e7843f33
MS
3375Thu Oct 26 13:59:54 1995 Mike Stump <mrs@cygnus.com>
3376
3377 * init.c (expand_aggr_init): Handle cv qualifiers on the object's
3378 type.
3379
21451173 3380Sat Nov 11 08:25:55 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
07674418
MS
3381
3382 * Version 2.7.1 released.
3383
3384Thu Nov 2 17:02:47 1995 Jason Merrill <jason@yorick.cygnus.com>
3385
3386 * call.c (convert_harshness): Handle references to arrays.
3387
3388Fri Oct 27 14:20:21 1995 Jason Merrill <jason@yorick.cygnus.com>
3389
3390 * typeck.c (comp_target_types): Check multi-level pointer
3391 conversions in both directions.
3392
3393Tue Oct 17 21:39:05 1995 Jason Merrill <jason@yorick.cygnus.com>
3394
3395 * parse.y (explicit_instantiation): Fix 'extern template' with no
3396 return type.
3397
3398Mon Oct 16 14:35:20 1995 Jason Merrill <jason@yorick.cygnus.com>
3399
3400 * parse.y (explicit_instantiation): Support automatic instantiation
3401 of constructors.
3402 (named_class_head_*): Support out-of-class definition of nested
3403 types.
3404
f30432d7
MS
3405Wed Oct 11 12:20:56 1995 Mike Stump <mrs@cygnus.com>
3406
3407 * search.c (envelope_add_decl): New routine. Fix so that
3408 methods are hidden in the same way that other members are.
3409 (dfs_pushdecls): Cleanup and move functionality out of line,
3410 into envelope_add_decl.
3411
3412Tue Oct 10 15:46:01 1995 Mike Stump <mrs@cygnus.com>
3413
3414 * typeck.c (mark_addressable): Only call assemble_external if we
3415 have started the output file.
3416
3417Tue Oct 10 11:27:18 1995 Jason Merrill <jason@yorick.cygnus.com>
3418
3419 * decl.c (start_function): Fix earlier cv-quals change.
3420
3421Mon Oct 9 23:53:05 1995 Mike Stump <mrs@cygnus.com>
3422
3423 * parse.y (complex_direct_notype_declarator): Only push the class if
3424 we are not already in the class.
3425
3426Mon Oct 9 11:22:03 1995 Doug Evans <dje@canuck.cygnus.com>
3427
3428 * decl.c (duplicate_decls): Call merge_machine_decl_attributes.
3429 Update olddecl's attributes too.
3430 (grokdeclarator): #if 0 out call to build_decl_attribute_variant.
3431 * typeck.c (common_type): Call merge_machine_type_attributes.
3432
3433Fri Oct 6 14:44:27 1995 Mike Stump <mrs@cygnus.com>
3434
3435 * typeck.c (mark_addressable): Add missing call to
3436 assemble_external.
3437
f30432d7
MS
3438Wed Oct 4 15:06:39 1995 Mike Stump <mrs@cygnus.com>
3439
3440 * decl.c (store_parm_decls): Make sure the unwinder start comes
3441 before the exception specification start.
3442 * except.c (expand_exception_blocks): Make sure the unwinder end
3443 comes after the terminate protected catch clause region and after
3444 the end of the exception specification region.
3445
3446Wed Oct 4 12:47:02 1995 Jason Merrill <jason@yorick.cygnus.com>
3447
3448 * lex.c (real_yylex): Fix identifier case for linemode.
3449 (handle_sysv_pragma): Don't abort when we see a pragma we don't
3450 recognize.
3451
3452Tue Oct 3 14:09:46 1995 Mike Stump <mrs@cygnus.com>
3453
3454 * decl.c (store_parm_decls): Add a call to start_eh_unwinder.
3455 * except.c (init_exception_processing): __throw doesn't take any
3456 arguments.
3457 (expand_builtin_throw): Ditto. Always use Pmode, instead of SImode
3458 for all pointers. Use expand_builtin_return_addr to unwind the
3459 first level off the stack.
3460 (do_unwind): Always use Pmode, instead of SImode for all pointers.
3461 (expand_exception_blocks): Add a call to end_eh_unwinder.
3462 (start_eh_unwinder, end_eh_unwinder): New routines to build machine
3463 independent stack unwinders for function/method calls.
3464
3465Mon Oct 2 17:20:42 1995 Mike Stump <mrs@cygnus.com>
3466
3467 * tree.c (unsave_expr_now): Make sure we process the argument list
3468 of any called functions. Fixes incorrect code generation for
3469 cleanups.
3470
3471Mon Oct 2 13:04:16 1995 Mike Stump <mrs@cygnus.com>
3472
3473 * typeck.c (get_member_function_from_ptrfunc): Save function if it
3474 needs it. Cures core dump on things like (this->*(f()))().
3475
3476Sat Sep 23 22:51:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3477
3478 * decl.c (start_function): Conform to gcc cv-quals convention (no
3479 expression has a cv-qualified type) in RESULT_DECLs.
3480 * method.c (make_thunk): Ditto.
3481
3482Fri Sep 22 10:21:13 1995 Mike Stump <mrs@cygnus.com>
3483
3484 * decl.c (pushtag): Add in the namespace name for the tag.
3485
3486Thu Sep 21 13:11:13 1995 Mike Stump <mrs@cygnus.com>
3487
3488 * parse.y (maybe_base_class_list, base_class_list, base_class,
3489 base_class_access_list): Make sure we see the typenames for base
3490 classes.
3491 * lex.c (see_typename): Instead of failing to see a typename when
3492 there is no next token, perfer a typename, and get the next token.
3493
3494Wed Sep 20 12:35:27 1995 Michael Meissner <meissner@cygnus.com>
3495
3496 * decl.c (init_decl_processing): Add __builtin_expect.
3497
3498Tue Sep 19 16:48:11 1995 Mike Stump <mrs@cygnus.com>
3499
3500 * cvt.c (cp_convert_to_pointer): Don't allow leftover conversions to
3501 or from pointer to member functions, they must all be handled before
3502 this point.
3503
3504Fri Sep 15 17:14:47 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3505
3506 * init.c (resolve_offset_ref): Fix wording of non-static member
3507 being referenced as a static.
3508
3509Fri Sep 15 12:39:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3510
3511 * typeck.c (build_indirect_ref): Only bash pointer if we actually
3512 call build_expr_type_conversion.
3513
3514Thu Sep 14 18:24:56 1995 Jason Merrill <jason@deneb.cygnus.com>
3515
3516 * cvt.c (build_expr_type_conversion): Handle conversion from
3517 reference.
3518 * typeck.c (build_indirect_ref): Avoid infinite recursion.
3519
3520Thu Sep 14 17:23:28 1995 Mike Stump <mrs@cygnus.com>
3521
3522 * decl.c (expand_start_early_try_stmts): New routine to start a try
3523 block at the start of the function, for function-try-blocks.
3524 * cp-tree.h (expand_start_early_try_stmts): Declare it.
3525 * parse.y (function_try_block): Use it, instead of doing it here, as
3526 we don't want to include rtl.h here, as that conflicts with RETURN
3527 in the parser.
3528
3529Wed Sep 13 18:32:24 1995 Mike Stump <mrs@cygnus.com>
3530
3531 * lex.c (reinit_parse_for_block): Support saving inline
3532 function-try-blocks, uses peekyylex.
3533 * parse.y (eat_saved_input): New rule, permit the parser to see that
3534 END_OF_SAVED_INPUT is ok, as it can see this when parsing the
3535 handlers of a function-try-block.
3536 (fndef): Use it.
3537 (component_decl): Make sure TRY and RETURN can come after fn.def2.
3538 * spew.c (peekyylex): New routine to peek at what will come next.
3539
cf54380f
JM
3540Wed Sep 13 16:52:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3541
f30432d7 3542 * typeck.c (comptypes): Tighten up comparisons of template type
9e9ff709 3543 parms.
f30432d7 3544
cf54380f
JM
3545 * decl.c (duplicate_decls): Turn off whining about virtual functions
3546 redeclared inline for now.
3547
f30432d7
MS
3548Wed Sep 13 11:13:40 1995 Mike Stump <mrs@cygnus.com>
3549
3550 * decl.c (store_in_parms): New routine to put things before we
3551 put base inits.
3552 * cp-tree.h (store_in_parms): Declare it.
3553 * decl.c (store_parm_decls): Use it to makr sure the starting of the
3554 eh spec comes before base inits.
3555 (finish_function): Use sequences instead of the obsolete
3556 reorder_insns.
3557 * parse.y (fndef): Enhance readability and maintainability. Update
3558 to include function_try_block syntax.
3559 (function_try_block): Add.
3560
3561Tue Sep 12 17:43:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3562
3563 * call.c (convert_harshness): Use comptypes, not ==, to check if
3564 TYPE and PARMTYPE are equivalent on a function type.
3565
2453e8d1
DR
3566Tue Sep 12 17:31:33 1995 Douglas Rupp (drupp@cs.washington.edu)
3567
3568 * Make-lang.in (cc1plus) : Removed unnecessary $(exeext).
3569
f30432d7
MS
3570Mon Sep 11 23:24:07 1995 Mike Stump <mrs@cygnus.com>
3571
3572 * except.c (expand_throw): Never allocate storage for thrown pointer
3573 to objects.
3574
3575Mon Sep 11 19:36:45 1995 Mike Stump <mrs@cygnus.com>
3576
3577 * except.c (expand_start_catch_block): Pointers to objects come
3578 back from catch matching already dereferenced, don't dereference
3579 again.
3580
3581Mon Sep 11 15:46:28 1995 Mike Stump <mrs@cygnus.com>
3582
3583 * except.c (expand_throw): Only decay the throw expression, don't do
3584 any default conversions. This is so that one can throw and catch
3585 characters, and not have them match integers.
3586
3587Mon Sep 11 13:46:45 1995 Mike Stump <mrs@cygnus.com>
3588
3589 * error.c (dump_aggr_type): Deal with anonymous unions that don't
3590 have a TYPE_NAME.
3591
38267a70
BK
3592Fri Sep 8 20:40:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3593
3594 * lex.c (handle_sysv_pragma): Deal with getting a comma from yylex.
3595
f30432d7
MS
3596Fri Sep 8 15:51:41 1995 Mike Stump <mrs@cygnus.com>
3597
3598 * except.c (expand_end_eh_spec): Handle empty EH specifications.
3599
3600Fri Sep 8 15:27:22 1995 Mike Stump <mrs@cygnus.com>
3601
3602 * cp-tree.h (expand_start_eh_spec): Declare new routine.
3603 (expand_end_eh_spec): Ditto.
3604 * decl.c (store_parm_decls): Call expand_start_eh_spec to process
3605 exception specifications.
3606 * except.c (expand_leftover_cleanups): Remove unused parameter.
3607 (expand_end_catch_block): Ditto.
3608 (expand_exception_blocks): Ditto.
3609 (expand_start_eh_spec): New routine to mark the start of an
3610 exception specification region.
3611 (expand_end_eh_spec): New routine to mark the end of an exception
3612 specification region.
3613 (expand_exception_blocks): Call expand_end_eh_spec to process
3614 exception specifications.
3615
b37d04bc
PB
3616Fri Sep 8 14:40:48 1995 Per Bothner <bothner@kalessin.cygnus.com>
3617
3618 * lex.c (do_identifier): Use global binding in preference of
3619 dead for local variable.
3620
f30432d7
MS
3621Wed Sep 6 19:32:59 1995 Mike Stump <mrs@cygnus.com>
3622
3623 * cp-tree.h (build_exception_variant): Remove used first argument.
3624 * decl.c (duplicate_decls): Ditto.
3625 (grokfndecl): Ditto.
3626 (revert_static_member_fn): Ditto.
3627 * decl2.c (grok_method_quals): Ditto.
3628 * tree.c (build_exception_variant): Ditto.
3629 * typeck.c (common_type): Ditto.
3630 * decl2.c (grokclassfn): After changing the type, call
3631 build_exception_variant, if necessary.
3632
3633Tue Sep 5 15:56:27 1995 Mike Stump <mrs@cygnus.com>
3634
3635 * except.c (expand_throw): Run cleanups for the throw expression.
3636
3637Wed Aug 30 15:24:38 1995 Stephen L. Favor (sfavor@tigger.intecom.com)
3638
3639 * except.c (expand_builtin_throw): Moved gen_label_rtx calls beyond
3640 the store_parm_decls call which does initialization in the emit_*
3641 code concerning label numbering.
3642
3643Thu Aug 31 09:01:07 1995 Mike Stump <mrs@cygnus.com>
3644
3645 * except.c (expand_internal_throw): Let the frontend be responsible
3646 for managing all frontend EH parameters, the backend routine only
3647 needs to deal with backend values. type and value are no longer
3648 passed to __throw.
3649 (init_exception_processing): Ditto.
3650 (expand_start_all_catch): Ditto.
3651 (expand_end_all_catch): Ditto.
3652 (expand_leftover_cleanups): Ditto.
3653 (expand_end_catch_block): Ditto.
3654 (expand_builtin_throw): Ditto.
3655 (expand_throw): Ditto.
3656
3657Tue Aug 29 15:04:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3658
3659 * cp-tree.h (DECL_REAL_CONTEXT): Give the real declaration context
3660 for a decl.
3661 * decl.c (cp_finish_decl): Use it.
3662
3663Tue Aug 29 10:30:27 1995 Mike Stump <mrs@cygnus.com>
3664
3665 * except.c (expand_internal_throw): Oops, almost forgot type and
3666 value are now trees.
3667
3668Mon Aug 28 17:57:45 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3669
3670 Fix the attribute handling to make sure they get noted before we
3671 create the function's RTL, in case they can affect that.
3672 * decl.c (grokfndecl): New arg ATTRLIST. Run
3673 cplus_decl_attributes before creating the decl's rtl.
3674 (grokdeclarator): New arg ATTRLIST, passed down into grokfndecl.
3675 (shadow_tag, groktypename, start_decl, start_method): Pass a
3676 NULL_TREE to grokdeclarator's new last arg.
3677 * decl2.c (grokfield): New arg ATTRLIST, passed into grokdeclarator.
3678 (grokbitfield, grokoptypename): Pass a NULL_TREE to
3679 grokdeclarator's new last arg.
3680 * except.c (expand_start_catch_block): Likewise.
3681 * pt.c (process_template_parm, end_template_decl,
3682 do_function_instantiation): Likewise.
3683 * cp-tree.h (grokfield): Add arg.
3684 (grokdeclarator): Move the prototype from here...
3685 * decl.h: ...to here.
3686 * lex.c (cons_up_default_function): Pass NULL_TREE to grokfield
3687 ATTRLIST argument.
3688 * parse.y: Create a list for the grokfield arg where appropriate,
3689 and pass it down instead of calling cplus_decl_attributes.
3690
3691Mon Aug 28 15:07:24 1995 Mike Stump <mrs@cygnus.com>
3692
3693 * except.c: Always allow turning on exception handling. Allow cross
3694 compilations to use EH.
3695
3696Thu Aug 24 17:39:24 1995 Mike Stump <mrs@cygnus.com>
3697
3698 * except.c (saved_pc, saved_throw_type, saved_throw_value): Use
3699 trees, instead of rtxs, and don't depend on using special machine
3700 dependent registers.
3701 (expand_internal_throw): Ditto.
3702 (init_exception_processing): Ditto.
3703 (expand_start_all_catch): Ditto.
3704 (expand_end_all_catch): Ditto.
3705 (expand_start_catch_block): Ditto.
3706 (expand_leftover_cleanups): Ditto.
3707 (expand_end_catch_block): Ditto.
3708 (expand_builtin_throw): Ditto.
3709 (expand_throw): Ditto.
3710
3711Wed Aug 23 17:25:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3712
3713 * cvt.c (build_expr_type_conversion): Handle conversions to
3714 reference types.
3715
3716Wed Aug 23 15:33:59 1995 Mike Stump <mrs@cygnus.com>
3717
3718 * except.c (do_unwind): Work around backend bug with -fpic.
3719
fb409a19
PB
3720Tue Aug 22 17:20:07 1995 Per Bothner <bothner@kalessin.cygnus.com>
3721
3722 * decl2.c (flag_new_for_scope): Add a new mode that follows ANSI
3723 for-scoping, but supports (and warns about) old programs.
3724 Make the new mode (with value 1) the default.
3725 (lang_f_options): The on-value for flag_new_for_scope is now 2.
3726 * cp-tree.h (DECL_DEAD_FOR_LOCAL, DECL_ERROR_REPORTED): New macros
3727 (DECL_SHADOWED_FOR_VAR): Likewise.
3728 * decl.c (struct binding_level): New fields dead_vars_from_for
3729 and is_for_scope.
3730 (note_level_for_for): New function.
3731 (poplevel): Special processing if is_for_scope.
3732 (pushdecl): Warn if for-scope variable shadows local.
3733 * lex.c (do_identifier): Handle old (non-ANSI) for scoping,
3734 and warn if conflicts.
3735 * parse.y (FOR): Call note_level_for_for.
3736
f30432d7
MS
3737Mon Aug 21 10:28:31 1995 Jason Merrill <jason@deneb.cygnus.com>
3738
3739 * decl2.c (import_export_inline): Class interface hackery does not
3740 apply to synthesized methods.
3741
3742Sun Aug 20 16:29:00 1995 Mike Stump <mrs@cygnus.com>
3743
3744 * search.c (virtual_context): Find the right context more often.
3745 Solves a `recoverable compiler error, fixups for virtual function'
3746 problem.
3747
3748Sun Aug 20 13:53:24 1995 Mike Stump <mrs@cygnus.com>
3749
3750 * except.c (expand_start_all_catch): Ensure that we always transfer
3751 control to the right EH handler, by rethrowing the end label on the
3752 region, instead of hoping we are nested and falling through.
3753 (expand_leftover_cleanups): Ditto.
3754 (end_protect): Since we now rethrow the end label, put a
3755 nop after it, so that outer regions are recognized.
3756 * init.c (build_vec_delete_1): New routine to handle most of vector
3757 deleting, all code moved here from build_vec_delete.
3758 (build_array_eh_cleanup): Use build_vec_delete_1 to do all the real
3759 work.
3760 (expand_vec_init): If the array needs partial destructing, setup an
3761 EH region to handle it.
3762 (build_vec_delete): Move lots of code to build_vec_delete_1, use
3763 build_vec_delete_1 to do the grunt work.
3764
3765Sat Aug 19 14:25:33 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3766
3767 Handle decl attributes properly for function definitions without
3768 previous attribute-loaded declarations.
3769 * decl.c (start_function): New arg ATTRS. Add a call to
3770 cplus_decl_attributes with it before we create the RTL.
3771 * cp-tree.h (start_function): Update prototype.
3772 * parse.y (fn.def1): Pass ATTRS into start_function instead of
3773 trying to call cplus_decl_attributes too late. Pass a NULL_TREE
3774 for other use.
3775 * decl2.c (finish_file): Pass NULL_TREE as fourth arg to
3776 start_function.
3777 * method.c (synthesize_method): Likewise.
3778 * except.c (expand_builtin_throw): Likewise for start on __throw.
3779
3780Sat Aug 19 13:36:08 1995 Mike Stump <mrs@cygnus.com>
3781
3782 * class.c (set_rtti_entry): Turn on -fvtable-thunk -frtti support.
3783 This changes -fvtable-thunks vtable layout, so a recompile will be
3784 necessary, if you use -fvtable-thunks.
3785 (get_vtable_entry): Use n, instead of i to be consistent with the
3786 rest of the compiler.
3787 (get_vtable_entry_n): Ditto.
3788 (add_virtual_function): Add a slot for the tdesc, if -fvtable-thunks
3789 are being used.
3790 (finish_struct_1): Ditto.
3791 (skip_rtti_stuff): New routine to collapse similar code from many
3792 different parts of the compiler. I think I got them all.
3793 (modify_one_vtable): Use it.
3794 (fixup_vtable_deltas1): Ditto.
3795 (override_one_vtable): Ditto.
3796 * decl2.c (mark_vtable_entries): Ditto.
3797 * tree.c (debug_binfo): Ditto.
3798 * search.c (expand_upcast_fixups): Ditto.
3799 (get_abstract_virtuals_1): Ditto. Use virtuals, instead of tmp to
3800 consistent with the rest of the compiler.
3801 (get_abstract_virtuals): Ditto.
3802 * cp-tree.h (skip_rtti_stuff): New routine, declare it.
3803 * gc.c (build_headof): Support -fvtable-thunk and -frtti together.
3804 (build_typeid): Ditto.
3805 (build_classof): Remove old style way of doing rtti. Remove support
3806 for `classof' and `headof'.
3807 * gxx.gperf: Ditto.
3808 * hash.h: Ditto.
3809 * parse.y: Ditto.
3810
3811Fri Aug 18 17:31:58 1995 Jason Merrill <jason@deneb.cygnus.com>
3812
3813 * decl.c (start_function): Clear ctor_label and dtor_label.
3814
3815 * class.c (finish_struct_1): Fix handling of access decls.
3816
3817Tue Aug 15 19:21:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3818
3819 * class.c (finish_struct): Only do minimal processing here, so it
3820 can be used for class template definitions, as well.
3821 (finish_struct_1): New function with the rest of the code.
3822
3823Tue Aug 15 09:46:16 1995 Mike Stump <mrs@cygnus.com>
3824
3825 * class.c (prepare_fresh_vtable): On second though, always build the
3826 offset (see Aug 10 change), unless -fvtable-thunks is given. It
3827 does this by calling the new routine set_rtti_entry.
3828 (finish_struct): Ditto.
3829 (set_rtti_entry): New routine to update the rtti information at the
3830 start of the vtable.
3831
3832Mon Aug 14 12:21:22 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
3833
3834 * error.c (dump_decl, case IDENTIFIER_NODE): Only work on a dtor
3835 if it's declared in the C++ language spec.
3836 (dump_function_decl): Likewise.
3837 (dump_function_name): Likewise.
3838 (ident_fndecl): Make sure we got something back from lookup_name.
3839 * decl.c (start_function): Likewise.
3840
3841Fri Aug 11 16:52:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3842
3843 * call.c (build_method_call): Don't call build_new when calling a
3844 constructor without an instance.
3845
3846Thu Aug 10 20:00:17 1995 Mike Stump <mrs@cygnus.com>
3847
3848 * class.c (prepare_fresh_vtable): Always build the offset to the
3849 complete object, as it doesn't cost much. This allows dynamic_cast
3850 to void * to work when -frtti isn't given.
3851 (finish_struct): Ditto.
3852
3853Thu Aug 10 16:31:28 1995 Mike Stump <mrs@cygnus.com>
3854
3855 * except.c (build_eh_type): Split out some functionality to new
3856 routine named build_eh_type_type.
3857 (build_eh_type_type): New routine.
3858 (expand_start_catch_block): Use build_eh_type_type, as we never want
3859 the dynamic type of the catch parameter, just the static type.
3860 Fixes core dumps when -frtti is used and one catchs pointers to
3861 classes.
3862
3863Thu Aug 10 14:55:29 1995 Mike Stump <mrs@cygnus.com>
3864
3865 * except.c (expand_builtin_throw): Since we now use normal calling
3866 conventions for __throw, we have to remove the first layer off the
3867 stack, so that the next context we search for handlers is the outer
3868 context instead of the context that had the call to __throw, if we
3869 don't immediately find the desired context.
3870
3871Tue Aug 8 17:44:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3872
3873 * tree.c (cp_expand_decl_cleanup): Returns int, not tree.
3874 * cp-tree.h: Update.
3875
3876 * parse.y (template_type_parm): Add support for `typename'.
3877
3878Tue Aug 8 12:06:31 1995 Mike Stump <mrs@cygnus.com>
3879
3880 * except.c (expand_internal_throw): New internal routine to throw a
3881 value.
3882 (expand_end_all_catch, expand_leftover_cleanups): All throwers
3883 changed to use `expand_internal_throw' instead of jumping to throw
3884 label.
3885 (expand_end_catch_block, expand_throw): Ditto.
3886 (throw_label): Removed.
3887 (expand_builtin_throw): Changed so that EH parameters are passed by
3888 normal function call conventions. Completes Aug 4th work.
3889
3890Fri Aug 4 17:17:08 1995 Mike Stump <mrs@cygnus.com>
3891
3892 * cp-tree.h (expand_builtin_throw): Declare it.
3893 * decl2.c (finish_file): Call expand_builtin_throw.
3894 * except.c (make_first_label): Remove.
3895 (init_exception_processing): Don't use a LABEL_REF for throw_label,
3896 instead use a SYMBOL_REF, this is so that we don't use LABEL_REFs in
3897 other functions that don't really appear in those functions. This
3898 solves a problem where cc1plus consumed exponential amounts of
3899 memory when -Wall was used.
3900 (expand_end_all_catch, expand_leftover_cleanups,
3901 expand_end_catch_block, expand_throw): Change all uses of
3902 throw_label to match new style.
3903 (do_unwind): Rename parameter to inner_throw_label, as it is now
3904 different from throw_label. Also, assume that our caller will wrap
3905 the passed label with a LABEL_REF, if needed.
3906 (expand_builtin_throw): Make external, change so that the generated
3907 throw is now a real function.
3908 (expand_exception_blocks): Never generate throw code inside another
3909 function.
3910
3911Fri Aug 4 12:20:02 1995 Mike Stump <mrs@cygnus.com>
3912
3913 * decl.c (grokdeclarator): Move checking of mutable const objects
3914 and mutable static objects down, as we might decide during parsing
3915 to unset staticp or constp (for example, when const is part of the
3916 object being pointed to).
3917
3918Thu Aug 3 17:13:43 1995 Mike Stump <mrs@cygnus.com>
3919
3920 * except.c (output_exception_table_entry): Enhance portability to
3921 weird machines.
3922 (emit_exception_table): Ditto.
3923
3924Thu Aug 3 16:41:38 1995 Mike Stump <mrs@cygnus.com>
3925
3926 * typeck.c (build_ptrmemfunc): Handle casting of pointer to
3927 non-virtual member functions.
3928
3929Wed Aug 2 11:58:25 1995 Mike Stump <mrs@cygnus.com>
3930
3931 * gc.c (build_typeid): Strip cv qualifiers so that const T&, T&, T
3932 and const T all match.
3933
3934Wed Aug 2 11:25:33 1995 Mike Stump <mrs@cygnus.com>
3935
3936 * except.c (build_eh_type): Strip cv qualifiers so that const T&,
3937 T&, T and const T all match.
3938
3939Tue Aug 1 14:20:16 1995 Mike Stump <mrs@cygnus.com>
3940
3941 * except.c: Fix up comments, cleanup code and eliminate exceptNode,
3942 exceptStack, exceptstack, push_except_stmts, pop_except_stmts,
3943 new_except_stack, push_last_insn, pop_last_insn, insn_save_node and
3944 InsnSave. Also, numerous speed improvements, and correctness
3945 improvements. Double faulting in all situations should now be
3946 handled correctly.
3947 (expand_start_all_catch): Instead of having many terminate protected
3948 regions, just have one.
3949 (expand_start_catch_block): No longer have to protect
3950 false_label_rtx, as it isn't used for EH region marking.
3951 (expand_end_catch_block): Expand out EH cleanups here by using
3952 expand_leftover_cleanups.
3953 (expand_end_all_catch): Use sequences instead of playing with insn
3954 links directly.
3955 (expand_exception_blocks): Ditto. Also protect all catch clauses
3956 with one terminate region.
3957
3958Mon Jul 31 13:24:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3959
3960 * method.c (report_type_mismatch): Don't talk about an object
3961 parameter for non-methods.
3962
3963Sun Jul 30 13:13:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3964
3965 * class.c (finish_struct): Catch private and protected members of
3966 anonymous unions here.
3967 * decl2.c (finish_anon_union): And here.
3968 * parse.y: Instead of here.
3969
3970 * errfn.c (ARGSLIST): Support passing four args.
3971 * error.c (cv_as_string): New function.
3972 (cp_printers): Add it.
3973 * call.c (build_method_call): Report 'const' at end of pseudo-decl.
3974
3975 * method.c (report_type_mismatch): Deal with a bad_arg of 0.
3976
3977 * init.c (expand_aggr_init): Handle volatile objects, too.
3978
3979Sat Jul 29 13:42:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3980
3981 * decl.c (struct binding_level): Keep list of incomplete decls.
3982 (print_binding_level): Use list_length to count them.
3983 (pushdecl): Build up the list.
3984 (hack_incomplete_structures): Walk it and prune completed decls.
3985
3986Fri Jul 28 15:26:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3987
3988 * typeck.c (comp_target_types): Don't check const and volatile for
3989 function types.
3990 (comp_ptr_ttypes_real): Ditto.
3991
3992Thu Jul 27 15:40:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
3993
3994 * typeck.c (comp_target_types): Fix.
3995
3996Thu Jul 27 15:10:48 1995 Mike Stump <mrs@cygnus.com>
3997
3998 * cp-tree.h (unsave_expr_now, build_unsave_expr,
3999 cp_expand_decl_cleanup): Declare new routines.
4000 * decl.c (cp_finish_decl, store_parm_decls,
4001 hack_incomplete_structures): Change all cals from
4002 expand_decl_cleanup to cp_expand_decl_cleanup.
4003 * gc.c (protect_value_from_gc): Ditto.
4004 * expr.c (cplus_expand_expr): Handle UNSAVE_EXPRs.
4005 * tree.c (unsave_expr): New routine to build an UNSAVE_EXPR.
4006 (unsave_expr_now): Backend routine used by tree expander.
4007 (cp_expand_decl_cleanup): Wrap second argument in an UNSAVE_EXPR to
4008 work around a limitation in the backend. The backend uses the
4009 cleanups multiple times, on disjoint control flows, so we cannot
4010 pass unsaved SAVE_EXPRs to the backend.
4011 * tree.def (UNSAVE_EXPR): New tree code.
4012 * typeck.c (c_expand_return): Move goto/return code up inside
4013 conditional, as we don't always want to do this, we only want to do
4014 this when we don't otherwise finish with this control flow.
4015
4016Thu Jul 27 10:38:43 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4017
4018 * parse.y (typespec): Only complain about typeof if we're not
4019 getting it from a system header.
4020
4021Thu Jul 27 10:26:23 1995 Doug Evans <dje@canuck.cygnus.com>
4022
4023 Clean up prefix attribute handling.
4024 * parse.y (reserved_declspecs): Link prefix attributes with declspecs.
4025 (declmods): Likewise.
4026 (all rules that reference typed_declspecs and declmods): Call
4027 split_specs_attrs or strip_attrs to separate declspecs and attrs.
4028 (lang_extdef): Delete resetting of prefix_attributes.
4029 (template_def, notype_declarator rule): Use NULL_TREE for
4030 prefix_attributes.
4031 (condition): Use NULL_TREE for prefix_attributes.
4032 (setattrs): Deleted.
4033 (nomods_initdcl0): Set prefix_attributes to NULL_TREE.
4034 (component_decl): Delete resetting of prefix_attributes.
4035 (component_decl_1, notype_components rule): Use NULL_TREE for
4036 prefix_attributes.
4037 (simple_stmt): Delete resetting of prefix_attributes.
4038
4039Mon Jul 24 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4040
4041 * call.c (convert_harshness): Deal with reference conversions before
4042 others. Actually do array->pointer decay. Call comp_target_types
4043 with pointer types rather than their targets.
4044
4045 * typeck.c (comp_target_types): Avoid assigning D const * to B *.
4046
4047Mon Jul 24 08:54:46 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4048
4049 * pt.c (to_be_restored): Move decl to global scope.
4050
4051Sat Jul 22 12:22:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4052
4053 * decl.c (start_decl): Put back clearing of DECL_IN_AGGR_P.
4054
4055Fri Jul 21 17:09:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4056
4057 * decl.c (grokdeclarator): Downgrade error about 'extern int A::i'
4058 to pedwarn.
4059
4060 * pt.c (instantiate_template): Also avoid instantiation if the
4061 function has already been declared to be a specialization.
4062
4063 * decl2.c (check_classfn): Ignore cname argument, and return the
4064 matching function.
4065
4066 * decl.c (start_decl): Handle declarations of member functions
4067 outside of the class (i.e. specialization declarations).
4068
4069Thu Jul 20 10:34:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4070
4071 * class.c (finish_struct): Don't mess with the type of bitfields.
4072
4073 * various.c: s/TYPE_POINTER_TO/build_pointer_type/.
4074
4075Thu Jul 20 01:43:10 1995 Mike Stump <mrs@cygnus.com>
4076
4077 * init.c (expand_aggr_init): Assume LOOKUP_ONLYCONVERTING if init
4078 is not a parameter list (TREE_LIST).
4079 (expand_default_init): If LOOKUP_ONLYCONVERTING is set, then set
4080 LOOKUP_NO_CONVERSION so that we don't allow two-level conversions,
4081 but don't set it otherwise.
4082
4083Wed Jul 19 20:32:01 1995 Mike Stump <mrs@cygnus.com>
4084
4085 * init.c (expand_default_init): Don't allow two-level conversions
4086 during construction.
4087
4088Wed Jul 19 18:06:37 1995 Mike Stump <mrs@cygnus.com>
4089
4090 * gc.c (build_headof): The type of dyncasting to a pointer to cv
4091 void, should be pointer to cv void.
4092
4093Wed Jul 19 17:25:43 1995 Mike Stump <mrs@cygnus.com>
4094
4095 * gc.c (build_dynamic_cast): Allow casting in const.
4096
4097Wed Jul 19 16:34:27 1995 Mike Stump <mrs@cygnus.com>
4098
4099 * typeck.c (build_const_cast): If we are passed error_mark_node,
4100 return it.
4101
4102Wed Jul 19 15:24:48 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4103
4104 * class.c (push_nested_class): Make sure TYPE is non-nil.
4105
4106 * cvt.c (type_promotes_to): Watch for error_mark_node on the
4107 incoming TYPE.
4108
4109Wed Jul 19 13:23:12 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
f65f5f62
GB
4110
4111 * cp-tree.h (SIGTABLE_VT_OFF_NAME): Renamed from SIGTABLE_OFFSET_NAME.
4112 (SIGTABLE_VB_OFF_NAME): New macro.
4113 (vt_off_identifier): Renamed from offset_identifier.
4114 (vb_off_identifier): Added extern declaration.
4115
4116 * decl.c (vt_off_identifier): Renamed from offset identifier.
4117 (vb_off_identifier): New variable to hold the identifier for the
4118 sigtable field vb_off.
4119 (init_decl_processing): Initialize vb_off_identifier.
4120 Renamed vt_off_identifier from offset_identifier.
4121 * sig.c (build_signature_method_call): Renamed offset_identifier and
4122 local variable offset to vt_off_identifer and vt_off, respecitively.
4123 * sig.c (build_signature_table_constructor): Renamed offset to vt_off.
4124
4125 * decl.c (init_decl_processing): Add vb_off field to
4126 sigtable_entry_type. Reorder fields so that pfn gets properly
4127 aligned at a 64 bit boundary on the Alpha.
4128 * sig.c (build_signature_table_constructor): Build the constructor
4129 according to the new layout. Set the vb_off field to -1 for now.
4130
4131 * decl.c (init_decl_processing): Align sigtable_entry_type on word
4132 boundaries instead of double word boundaries to save space.
4133
f30432d7
MS
4134Tue Jul 18 16:58:37 1995 Mike Stump <mrs@cygnus.com>
4135
4136 * cvt.c (cp_convert): Always call build_cplus_new for a ctor.
4137
4138Tue Jul 18 14:24:53 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4139
4140 * parse.y (opt.component_decl_list): Only forbid private/protected
4141 in anonymous unions. We need to make this know when the type is
4142 defined for an object, to not give the error.
4143
4144Mon Jul 17 14:22:44 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4145
4146 * parse.y (opt.component_decl_list): Don't allow access control
4147 as private or protected for union members.
4148
4149Sun Jul 16 14:01:00 1995 Jim Wilson <wilson@chestnut.cygnus.com>
4150
4151 * lex.c (check_newline): For 'p' case, move goto skipline line to
4152 before end brace for 'pragma'.
4153
4154Fri Jul 7 13:55:58 1995 Mike Stump <mrs@cygnus.com>
4155
4156 * g++.1: Tiny updates.
4157
4158Fri Jul 7 13:05:20 1995 Mike Stump <mrs@cygnus.com>
4159
4160 * decl.c (cp_finish_decl): Only destruct local static variables if
4161 they are constructed, and only construct the first time control
4162 passes completely through its declaration (if not initialized with a
4163 constant-expression).
4164 (expand_static_init): Ditto.
4165
4166Wed Jul 5 14:05:04 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4167
4168 * typeck.c (comptypes, case OFFSET_REF): If either offset basetype
4169 is a TEMPLATE_TYPE_PARM, give a match.
4170
f30432d7
MS
4171Fri Jun 30 15:42:57 1995 Mike Stump <mrs@cygnus.com>
4172
4173 * method.c (build_overload_value): Handle encoding of null pointer
4174 constants (or any pointer with a constant numeric value) for
4175 templates.
4176
42783eab
BK
4177Fri Jun 30 13:45:51 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4178
4179 * call.c (convert_harshness): Add QUAL_CODE when we're faced with
4180 const vs non-const for void conversions.
4181
f30432d7
MS
4182Fri Jun 30 10:19:52 1995 Mike Stump <mrs@cygnus.com>
4183
4184 * except.c (expand_start_all_catch): Fix problem with finding an
4185 outer nested try block when there is no code to separate it from an
4186 inner try block.
4187
4188Fri Jun 30 02:22:26 1995 Mike Stump <mrs@cygnus.com>
4189
4190 * search.c (dfs_pushdecls): Consume 2 or 3 orders of magnitude less
4191 memory please when virtual bases are used.
4192
4193Thu Jun 29 19:03:47 1995 Mike Stump <mrs@cygnus.com>
4194
4195 * class.c (build_vbase_path): Avoid testing things that cannot be
4196 null to see if they are null.
4197 * cvt.c (convert_pointer_to_vbase): Remove code that doesn't work.
4198 * decl.c (finish_function): Pass a type into the new
4199 convert_pointer_to_vbase instead of a binfo.
4200 * search.c (convert_pointer_to_vbase): Rewritten to use get_vbase
4201 and convert_pointer_to_real.
4202 (expand_indirect_vtbls_init): Use convert_pointer_to_vbase instead
4203 of the more cryptic call to get_vbase.
4204
e18923b4 4205Thu Jun 29 09:35:05 1995 Mike Stump <mrs@cygnus.com>
535c9c21
MS
4206
4207 * decl.c (BOOL_TYPE_SIZE): Fix broken SLOW_BYTE_ACCESS check.
4208
f30432d7
MS
4209Thu Jun 29 03:43:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4210
4211 * pt.c (instantiate_template): Don't strip 'this' twice.
4212
4213 * pt.c (coerce_template_parms): Allow null pointer constants.
4214
4215 * decl.c (revert_static_member_fn): But only if DECL_ARGUMENTS is
4216 set.
4217
f30432d7
MS
4218Wed Jun 28 18:39:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4219
4220 * decl.c (revert_static_member_fn): Also remove 'this' from
4221 DECL_ARGUMENTS.
4222 * decl2.c (check_classfn): Don't revert this function until we get a
4223 match.
4224
4225Wed Jun 28 14:07:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4226
4227 * parse.y (component_decl): Clear PREFIX_ATTRIBUTES here.
4228
4229Wed Jun 28 11:05:13 1995 Mike Stump <mrs@cygnus.com>
4230
4231 * decl2.c (finish_file): Handle global vector news.
4232 * init.c (build_new): Encode vector news so that later we will know
4233 how many elements there are.
4234
e18923b4 4235Mon Jun 26 13:38:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
415bfbd0
JM
4236
4237 * expr.c (cplus_expand_expr): Don't mess with temp slots.
4238
f30432d7
MS
4239 * decl2.c (warn_if_unknown_interface): Don't crash if tinst_for_decl
4240 returns null.
4241
4242 * decl2.c (check_classfn): Use revert_static_member_fn.
4243 * decl.c (revert_static_member_fn): Diagnose static member functions
4244 declared const or volatile.
4245
4246 * decl2.c (grokfield): Check for missing default args here, too.
4247 (check_default_args): Function to do the checking.
4248 * decl.c (pushdecl): Use it.
4249
4250 * decl.c (pushdecl): Don't warn about shadowing a member of `this'
4251 if there is no `this'.
4252
4253Sun Jun 25 11:34:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4254
4255 * call.c (build_method_call): Downgrade 'called before definition'
4256 to a warning, as it ought to go away after Monterey.
4257
4258Sat Jun 24 14:18:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4259
4260 * pt.c (coerce_template_parms): Don't do extra checking on pointer
4261 to member arguments.
4262
4263 * class.c (finish_struct): const and reference members don't prevent
4264 a class from being an aggregate.
4265
4266 * class.c (finish_struct): Signatures are always aggregates.
4267
f7d9d4a8
JM
4268Fri Jun 23 17:20:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4269
f30432d7
MS
4270 * decl2.c (check_classfn): Improve error message.
4271
4272 * pt.c (tsubst): Handle PROMOTE_PROTOTYPES.
f7d9d4a8 4273
f7522313
JM
4274Thu Jun 22 01:50:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4275
f30432d7 4276 * typeck.c (comptypes): Don't ignore method quals.
f7522313 4277
f30432d7
MS
4278 * class.c (finish_struct): Non-abstract virtuals are always USED.
4279
4280 * decl.c (build_ptrmemfunc_type): The underlying union type isn't
4281 IS_AGGR_TYPE, either.
4282 * class.c (finish_struct): Use CLASSTYPE_NON_AGGREGATE instead.
4283 * cp-tree.h: Ditto.
4284
4285 * cp-tree.h (lang_type): Add aggregate.
4286 (CLASSTYPE_AGGREGATE): New macro.
4287 (TYPE_NON_AGGREGATE_CLASS): Ditto.
4288 * class.c (finish_struct): Determine whether a class is an
4289 aggregate.
4290 * decl.c (cp_finish_decl): Check TYPE_NON_AGGREGATE_CLASS instead of
4291 TYPE_NEEDS_CONSTRUCTING.
4292 * typeck2.c (digest_init): Check TYPE_NON_AGGREGATE_CLASS for
4293 subobjects, too.
4294
4295 * pt.c (tsubst, PARM_TYPE): Propagate DECL_ARTIFICIAL.
d8f1d487
RK
4296
4297 * decl.c (start_function): For pre-parsed functions, layout all of
4298 the parm decls again.
4299 (grokvardecl): TREE_PUBLIC depends on DECL_THIS_EXTERN, not
4300 DECL_EXTERNAL.
4301
f30432d7
MS
4302 * pt.c (coerce_template_parms): Improve checking for invalid
4303 template parms.
4304
4305Wed Jun 21 12:01:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4306
4307 * decl.c (grokdeclarator): Forbid declaration of a static member
4308 with the same name as its enclosing class.
4309
d8f1d487
RK
4310Mon Jun 19 10:28:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4311
4312 * decl.c (finish_function): Clear current_class_decl.
4313
4314 * typeck.c (build_conditional_expr): Use convert (boolean_type_node
4315 instead of truthvalue_conversion.
4316
4317 * class.c (finish_struct): A data member with the same name as the
4318 class doesn't suppress constructors.
4319
4320Fri Jun 16 18:11:39 1995 Gerald Baumgartner (gb@alexander.cs.purdue.edu)
4321
4322 * decl.c (start_function): If current_class_decl is a signature
4323 pointer, don't dereference it but set C_C_D to current_class_decl.
4324
4325Fri Jun 16 17:06:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4326
4327 * decl.c (duplicate_decls): Complain about virtual functions
4328 redeclared to be inline.
4329
4330Fri Jun 16 13:20:38 1995 Mike Stump <mrs@cygnus.com>
4331
4332 * decl.c (get_unique_name): New routine to name unnamed namespaces.
4333 (push_namespace): Use get_unique_name for naming unnamed namespaces.
4334
d3c89e1f
JM
4335Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4336
d8f1d487 4337 * parse.y: Call cplus_decl_attributes with prefix_attributes where
f30432d7 4338 appropriate.
d8f1d487
RK
4339
4340Wed Jun 14 19:24:49 1995 Mike Stump <mrs@cygnus.com>
4341
4342 * search.c (get_vbase): New routine to switch hierarchies from the
4343 CLASSTYPE_VBASECLASSES to the normal one.
4344 (expand_indirect_vtbls_init): Use get_vbase to figure out how we
4345 want to convert to a vbase pointer.
4346
4347Mon Jun 12 17:50:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4348
4349 * pt.c (instantiate_class_template): Add the new instantiation to
f30432d7 4350 template_classes.
d8f1d487
RK
4351 (do_pending_expansions): Call instantiate_member_templates on all of
4352 the classes in template_classes.
4353
4354Mon Jun 12 12:36:59 1995 Mike Stump <mrs@cygnus.com>
4355
4356 * decl.c (complete_array_type): Fill in the TYPE_DOMAIN of our
4357 TYPE_MAIN_VARIANT if it is not filled in.
4358 * init.c (build_delete): If the TYPE_DOMAIN is not set, give an
4359 error instead of core dumping.
4360
4361Mon Jun 12 10:41:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4362
4363 * call.c (can_convert): Also check for distance > 0.
4364 (can_convert_arg): Ditto.
4365 (user_harshness): Ditto.
4366
4367Fri Jun 9 19:17:21 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4368
4369 * g++.c (MATH_LIBRARY): Provide default.
4370 (main): Always link with the math library if we link with libstdc++.
4371
4372 * decl.c (start_function): Complain about redefinition of a function
4373 even when the pending_inline version is compiled after the other
4374 version.
4375
4376Thu Jun 8 15:44:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4377
4378 * gc.c (build_dynamic_cast): Build up a reference to a parameter of
4379 aggregate type.
4380
d8f1d487
RK
4381Wed Jun 7 15:31:57 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
4382
4383 * init.c (build_vec_delete): Resolve an offset ref before we try to
4384 use it.
4385
4386Wed Jun 7 14:19:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4387
4388 * typeck.c (build_modify_expr): If the class lacks a constructor or
4389 assignment operator, return error_mark_node.
4390 (common_type): Use build_cplus_array_type.
4391
4392Tue Jun 6 09:41:27 1995 Mike Stump <mrs@cygnus.com>
4393
4394 * class.c (dont_allow_type_definitions): New variable set when types
4395 cannot be defined.
4396 (finish_struct): Use it.
4397 * cp-tree.h (dont_allow_type_definitions): Define it.
4398 * parse.y (primary, handler_seq): Set it.
4399
4400Mon Jun 5 18:49:38 1995 Mike Stump <mrs@cygnus.com>
4401
4402 * method.c (build_opfncall): Use DECL_CHAIN, not TREE_CHAIN for
4403 results from lookup_fnfields. Always give warning/error on bad
4404 code.
4405
4406Mon Jun 5 11:39:37 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
4407
4408 * init.c (member_init_ok_or_else): Don't allow initialization of
4409 an ancestor's member from within a constructor.
4410
4411Mon Jun 5 11:20:34 1995 Gerald Baumgartner (gb@alexander.cs.purdue.edu)
4412
4413 * sig.c (build_signature_table_constructor): Use DECL_CONTEXT
4414 instead of DECL_CLASS_CONTEXT for calculating the vfield offset so
4415 abstract virtual functions are handled correctly.
4416
4417 * sig.c (build_signature_table_constructor): Store the correct
4418 delta in signature table entries. It does not yet work for
4419 classes with virtual base classes as implementations of signatures.
4420 (build_signature_method_call): Add the delta to the object_ptr
4421 before generating the function call.
4422
4423 * call.c (build_method_call): Make instance_ptr the signature
4424 pointer itself instead of dereferencing the optr.
4425 * sig.c (build_signature_method_call): Dereference the optr for the
4426 direct and virtual calls.
4427
4428 * sig.c (build_signature_table_constructor): Make the tag for
4429 default implementations -1 instead of 2.
4430 (build_signature_method_call): Change the generated conditional
4431 expression correspondingly.
4432
4433 * sig.c (build_signature_pointer_constructor): Deleted the sorry
4434 message that said we can't handle multiple inheritance for
4435 implementations of signatures
4436 (build_signature_method_call): Use the offset from the sigtable
4437 entry instead of the vptr field from the signature pointer for
4438 building a virtual function call.
4439
4440 * class.c (build_vfn_ref): Deleted signature specific code, we don't
4441 call this function anymore from build_signature_method_call.
4442
4443 * cp-tree.h (SIGNATURE_VPTR_NAME): Deleted. We use the right vptr
4444 field in the object now instead of in the signature pointer/ref.
4445 (build_vptr_ref): Deleted extern declaration.
4446 * sig.c (build_vptr_ref): Deleted.
4447 (build_signature_pointer_or_reference_type): Deleted construction of
4448 the vptr field.
4449 (build_signature_pointer_constructor): Deleted initialization of/
4450 assignment to the vptr field.
4451
4452 * sig.c (build_signature_table_constructor): Convert the signature
4453 table entry fields to their correct types.
4454
4455 * sig.c (build_signature_table_constructor): Don't call digest_init
4456 for the fields of a sigtable entry, it's wasted time.
4457
4458 * sig.c (build_signature_table_constructor): Correctly set the
4459 offset and index fields of a sigtable entry. Build the constructor
4460 the way digest_init does, digest_init can't handle initializing an
4461 anonymous union inside a struct.
4462 (build_signature_method_call): Use the index field instead of the
4463 delta field to get the vtable index.
4464
4465 * decl.c (init_decl_processing): Fix number of fields for building
4466 sigtable_entry_type.
4467
4468 * cp-tree.h (tag_identifier, offset_identifier): Added extern decls.
4469 (SIGTABLE_CODE_NAME): Renamed to SIGTABLE_TAG_NAME.
4470 (SIGTABLE_PFN_NAME): Deleted, we'll use VTABLE_PFN_NAME instead.
4471 * decl.c (tag_identifier, offset_identifier): New variables to
4472 hold the identifiers for the sigtable fields tag and offset.
4473 (init_decl_processing): Initialize these variables.
4474 (init_decl_processing): Use these variables to build the
4475 sigtable_entry_type structure. Rename the code and offset fields
4476 to tag and delta, respectively; add offset and index fields. Changed
4477 types of fields from short_integer_type_node to delta_type_node.
4478 * sig.c (build_signature_table_constructor): Rename code and offset
4479 to tag and delta, respectively.
4480 (build_signature_method_call): Ditto. Use above variables.
4481
d8f1d487
RK
4482Thu Jun 1 17:03:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4483
4484 * decl.c (lookup_name_real): Don't try to look anything up in an
4485 erroneous object.
4486
4487Fri Jun 2 10:30:14 1995 Mike Stump <mrs@cygnus.com>
4488
4489 * method.c (build_overload_int): New routine. Break out
4490 functionality from build_overload_value so we can reuse it.
4491 (build_overload_value): Handle pointer to member functions as value
4492 parameters for templates.
4493 (build_overload_identifier): Since template parameters are shared
4494 among all instantiations, we have to substitute in the real types
4495 in TREE_TYPE (parm).
4496 pt.c (coerce_template_parms): Ditto.
4497 (push_template_decls): Ditto.
4498 (grok_template_type): Deleted as template parameters are shared
4499 among all instantiations.
4500
4501Wed May 31 19:10:32 1995 Mike Stump <mrs@cygnus.com>
4502
4503 * decl.c (grokdeclarator): Always give errors on constant overflow
4504 for array indices.
4505
4506Wed May 31 11:39:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4507
4508 * typeck.c (commonparms): Don't abort if simple_cst_equal returns < 0.
4509 (build_c_cast): Don't tack on a NON_LVALUE_EXPR when casting to
4510 reference type.
4511 (build_indirect_ref): Fix check for *&.
4512
72b7eeff
MS
4513Fri Jun 16 06:54:03 1995 Mike Stump <mrs@cygnus.com>
4514
4515 * Version 2.7.0 released.
4516
4517Fri Jun 16 15:07:29 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
4518
4519 * Make-lang.in (DEMANGLER_PROG): Add LIBS.
4520
4521Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4522
4523 * decl.c (define_function): Don't set DECL_INTERFACE_KNOWN.
4524
4525Wed Jun 7 20:00:31 1995 Mike Stump <mrs@cygnus.com>
4526
4527 * *.[chy]: Change all callers of finish_decl to cp_finish_decl.
4528 * decl.c (finish_decl): New routine to handle call backs from the
4529 mid end (declare_hidden_char_array).
4530
4531Wed Jun 7 19:02:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4532
4533 * decl.c (start_function): Handle setting C_C_D here.
4534 (set_C_C_D): Removed.
4535 (struct saved_scope): Remove class_decl.
4536 (push_to_top_level): Don't save current_class_decl.
4537 (pop_from_top_level): Don't restore current_class_decl or C_C_D.
4538 (struct cp_function): Add C_C_D.
4539 (push_cp_function_context): Save C_C_D.
4540 (pop_cp_function_context): Restore C_C_D.
4541
4542Fri Jun 2 11:05:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4543
4544 * decl.c (set_C_C_D): New function. suspend_momentary before
4545 building C_C_D.
4546 (pop_from_top_level): Call it.
4547 (start_function): Ditto.
4548 (pop_cp_function_context): Ditto.
4549
4550 * class.c, cp-tree.h, decl.c, decl2.c, parse.y: Lose all references
4551 to current_vtable_decl, CLASSTYPE_INST_VAR and CLASSTYPE_VTBL_PTR.
4552
4553 * decl.c (push_cp_function_context): Save current_class_decl.
4554 (pop_cp_function_context): Restore current_class_decl and set C_C_D.
4555 (pop_from_top_level): Don't use CLASSTYPE_INST_VAR to set C_C_D.
4556 (start_function): Ditto.
4557
4558 * class.c (popclass): Don't mess with current_class_decl,
4559 current_vtable_decl, or C_C_D.
4560
4561Mon May 29 12:45:10 1995 Paul Eggert <eggert@twinsun.com>
4562
4563 * Make-lang.in (c++.mostlyclean): Remove $(DEMANGLER_PROG).
4564
b796119f
RK
4565Wed May 24 15:55:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
4566
4567 * decl.c (duplicate_decls): Check simple_cst_equal result against 0.
4568 * decl2.c (finish_anon_union): Likewise.
4569 * method.c (largest_union_member): Likewise.
4570
103894f1
L
4571Wed May 24 14:41:11 1995 H.J. Lu (hjl@nynexst.com)
4572
4573 * Make-lang.in (cxxmain.o): Replace single quotes with backslashes.
4574
fbb47000
RK
4575Mon May 22 17:38:48 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
4576
4577 * Make-lang.in (g++, g++-cross, cc1plus, DEMANGLER_PROG):
4578 Use $@ instead of output name so works even if have .exe.
4579 (cxxmain.o): Use cp if ln -s fails.
4580 (c++.install-man): Use $(exeext) in executable names.
4581 (c++.mostlyclean, stage[1-4]): Use $(objext) in object file names.
4582 * Makefile.in (../cc1plus): Use $(exeext) in name of executable.
4583
878cd289
MS
4584Wed May 24 01:39:03 1995 Jason Merrill <jason@deneb.cygnus.com>
4585
4586 * call.c (build_method_call): parms can be null, duh.
4587
4588Tue May 23 01:32:09 1995 Jason Merrill <jason@deneb.cygnus.com>
4589
4590 * call.c (build_method_call): If convert_arguments failed, just bail.
4591
4592Fri May 19 10:31:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4593
4594 * cvt.c (convert_force): Pass LOOKUP_NORMAL to cp_convert.
4595
4596 * tree.c (copy_to_permanent): Oops.
4597
4598Fri May 19 10:01:07 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
4599
4600 * cp-tree.h (break_out_target_exprs): Add decl.
4601
4602Thu May 18 13:02:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4603
4604 * decl.c (start_function): Move *all* interface handling stuff after
4605 the pushdecl.
4606
4607 * tree.c (mapcar): Renamed from make_deep_copy and generalized.
4608 (perm_manip): Return t if permanent, otherwise 0.
4609 (copy_to_permanent): Use them.
4610 (bot_manip): Helper for break_out_target_exprs.
4611 (break_out_target_exprs): New function. Uses mapcar.
4612
4613 * typeck.c (convert_arguments): Use it.
4614
4615 * method.c (hack_identifier): Use convert_from_reference to
4616 dereference a reference.
4617
4618Wed May 17 17:54:54 1995 Mike Stump <mrs@cygnus.com>
4619
4620 * call.c (convert_harshness): Move reference bashing before pointer
4621 to member bashing.
4622
4623Wed May 17 16:57:53 1995 Mike Stump <mrs@cygnus.com>
4624
4625 * cvt.c (convert_to_reference): Only complain, if complaints are
4626 wanted.
d8f1d487 4627 * typeck.c (build_function_call_real): Ditto. If LOOKUP_SPECULATIVELY
878cd289 4628 is set and something won't work, return NULL_TREE.
d8f1d487 4629 * cvt.c (cp_convert): Ditto. Pass flags down to build_method_call.
878cd289 4630 (convert): Pass LOOKUP_NORMAL to cp_convert.
d8f1d487 4631 * typeck.c (convert_for_assignment): Ditto.
878cd289 4632 (convert_force): Pass LOOKUP_COMPLAIN to cp_convert.
d8f1d487 4633 (convert_arguments): Get out early if we get an error_mark_node.
878cd289
MS
4634 (convert_for_initialization): Use cp_convert instead of convert so
4635 that we can pass flags down.
4636 * cp-tree.h (LOOKUP_SPECULATIVELY): Added documentation.
4637
c19a8067
JM
4638Wed May 17 01:43:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4639
878cd289
MS
4640 * typeck2.c (store_init_value): Don't take the MAIN_VARIANT of the
4641 decl type.
4642
c19a8067
JM
4643 * class.c (finish_struct): Don't complain about a class with no
4644 user-defined constructors but with a member that has no default
4645 constructor, as this is OK for aggregates.
4646
4647 * expr.c (cplus_expand_expr, NEW_EXPR): If this is an explicit
4648 constructor call, mark slot addressable.
4649
eacd15bc
DR
4650Tue May 16 18:37:51 1995 Douglas Rupp (drupp@cs.washington.edu)
4651
4652 * g++.c: Changed WINNT to _WIN32.
4653
a9aedbc2
MS
4654Tue May 16 12:40:16 1995 Jason Merrill <jason@lisa.cygnus.com>
4655
4656 * lex.c (handle_sysv_pragma): Don't use token_buffer.
4657
4658Tue May 16 12:05:26 1995 Mike Stump <mrs@cygnus.com>
4659
4660 * call.c (resolve_scope_to_name): Add initial semantic support for
4661 namespaces.
4662 * class.c (finish_struct): Ditto.
4663 * cp-tree.h (NAMESPACE_LEVEL): Ditto.
4664 * cvt.c (build_up_reference, convert_to_reference): Ditto.
4665 * decl.c (binding_level::namespace_p, suspend_binding_level): Ditto.
4666 (resume_binding_level, toplevel_bindings_p): Ditto
4667 (namespace_bindings_p, declare_namespace_level): Ditto.
4668 (resume_level, push_namespace, pop_namespace): Ditto.
4669 (pop_everything, pushtag, duplicate_decls, pushdecl): Ditto.
4670 (implicitly_declare, lookup_namespace_name, lookup_name_real): Ditto.
4671 (start_decl, make_temporary_for_reference), Ditto.
4672 (obscure_complex_init, finish_decl, expand_static_init): Ditto.
4673 (grokvardecl, grokdeclarator, parmlist_is_exprlist): Ditto.
4674 (store_parm_decls, hack_incomplete_structures): Ditto.
4675 * decl2.c (get_temp_name, finish_anon_union, current_namespace): Ditto.
4676 (push_namespace, pop_namespace, do_namespace_alias): Ditto.
4677 (do_toplevel_using_decl, do_class_using_decl): Ditto.
4678 * error.c (dump_decl): Ditto.
4679 * init.c (build_member_call, build_offset_ref): Ditto.
4680 * lex.c (identifier_type): Ditto.
4681 * parse.y (lang_extdef, using_decl, extdef, component_decl_1): Ditto.
4682 (nested_name_specifier_1): Ditto.
4683 * spew.c (yylex): Ditto.
4684 * tree.def (NAMESPACE_DECL): Ditto.
4685
4686Tue May 16 11:55:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4687
4688 * decl.c (push_overloaded_decl): Return the new decl even if it
4689 can't be pushed.
4690
4691Tue May 16 11:00:37 1995 Jason Merrill <jason@lisa.cygnus.com>
4692
4693 * typeck.c (decay_conversion): Split out from default_conversion.
4694 (default_conversion): Call it.
4695 (build_binary_op): Ditto.
4696 (build_binary_op_nodefault): Use decay_conversion for truth ops.
4697
4698Mon May 15 12:47:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4699
4700 * decl.c (warn_extern_redeclared_static): This is a pedwarn.
4701 (duplicate_decls): Always use the old decl's linkage info. Don't
4702 play with linkage of consts.
4703 (pushdecl): Don't play with linkage of consts.
4704 (redeclaration_error_message): Don't complain about an old public
4705 decl and a new non-public decl here.
4706 (grokvardecl): Handle linkage of consts here.
4707 (grokdeclarator): An 'extern inline' is public. Pass constp to
4708 grokvardecl.
4709 (start_function): Wait until after the pushdecl to do some linkage
4710 stuff.
4711
4712 * decl2.c (import_export_vtable): Make duplicates weak rather than
4713 static if supported.
4714 (import_export_inline): Ditto.
4715 * pt.c (do_pending_expansions): Ditto.
4716
4717 * class.c (build_vbase_path): flag_assume_nonnull_objects only
4718 affects reference conversion.
4719
4720 * init.c (emit_base_init): Build up an RTL_EXPR and add it to
f30432d7 4721 rtl_expr_chain.
a9aedbc2
MS
4722 * decl.c, decl2.c: s/base_init_insns/base_init_expr/.
4723
7154457b
PE
4724Tue May 16 07:06:28 1995 Paul Eggert <eggert@twinsun.com>
4725
4726 * method.c (numeric_output_need_bar): Renamed from misspelling.
4727
45ca9d09
RK
4728 * typeck.c (build_ptrmemfunc): Fix misspellings in messages.
4729
7ab7b006
RK
4730Sun May 14 10:26:22 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4731
4732 * lang-options.h, lang-specs.h: New files.
4733
fd378c9d
JM
4734Thu May 11 00:31:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4735
4736 * typeck.c (default_conversion): Don't check for BLKmode before
4737 pulling out the decl_constant_value.
4738
4739 * decl.c (start_function): Clear named_labels and shadowed_labels.
4740
4741 * typeck.c (build_function_call_real): Also synthesize methods here.
4742
4743Wed May 10 00:55:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4744
4745 * decl2.c (finish_file): Synthesize exported methods before the
4746 reconsider loop.
4747
4748 * parse.y: Move declaration of flag_new_for_scope to file scope.
4749
863adfc0
MS
4750Tue May 9 19:10:33 1995 Mike Stump <mrs@cygnus.com>
4751
4752 * decl2.c: Add flag_new_for_scope for new -ffor-scope flag.
4753 * parse.y (FOR): Conditionalize the pushing and poping of scope for
4754 the for-init-statement upon the new flag_new_for_scope.
4755 * parse.y (try_block): Simplify and use compstmt.
4756
4757Mon May 8 12:41:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4758
4759 * decl.c (define_function): Mark function decl artificial.
4760
4761Sun May 7 00:51:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4762
4763 * parse.y (simple_stmt, FOR): Put back push/pop for condition scope.
4764
4765 * decl2.c (grokclassfn): DECLs don't have cv-qualified types.
4766 * tree.c (build_cplus_method_type): Ditto.
4767
4768 * cp-tree.h (SET_DECL_ARTIFICIAL): Just set DECL_ARTIFICIAL to 1.
4769
4770 * typeck.c (build_function_call_real): If convert_arguments failed,
4771 just bail.
4772 (convert_arguments): If one of the arguments is error_mark_node,
4773 just bail.
4774
4775Sat May 6 02:39:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4776
4777 * decl.c (duplicate_decls): Don't check DECL_NOT_REALLY_EXTERN for
4778 decls that don't include it.
4779
4780Fri May 5 14:23:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4781
4782 * decl.c (duplicate_decls): Decls that have DECL_INTERFACE_KNOWN or
4783 DECL_NOT_REALLY_EXTERN set aren't extern decls.
4784
4785 * typeck.c (build_indirect_ref): Don't call default_conversion for a
4786 parameter of reference_type.
4787 * cvt.c (convert_from_reference): Just use build_indirect_ref.
4788
4789 * pt.c (do_type_instantiation): Only instantiate member functions
4790 that actually come from templates.
4791
4792Fri May 5 09:46:05 1995 Mike Stump <mrs@cygnus.com>
4793
4794 * parse.y: Generalized cleanup of poplevels, and compound statements
4795 and compound statements in try blocks. Rewritten `for' rule so that
4796 the scope of variables declared in the for clause is shortened to
4797 span just to the end of the statement, instead of the whole
4798 containing block.
4799
4800Fri May 5 00:37:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4801
4802 * call.c (convert_harshness): Handle pointers to members better.
4803
4804Thu May 4 16:00:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4805
4806 * decl2.c (delete_sanity): Do access control here.
4807 * init.c (build_delete): Instead of here.
4808
4809 * Make-lang.in: Build c++filt.
4810
4811Wed May 3 02:59:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4812
4813 * decl2.c (cplus_decl_attributes): If we just modified a TYPE_DECL,
4814 update our IDENTIFIER_TYPE_VALUE.
4815
a5894242
MS
4816Fri Apr 28 07:58:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4817
4818 * lex.c (cons_up_default_function): Fix linkage of #pragma
4819 implemented functions.
4820
4821Thu Apr 27 16:56:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4822
4823 * method.c (build_overload_name): Simplify and fix repeated type
4824 folding.
4825
4826 * decl.c (grokdeclarator): Prohibit pointers to void or reference
f30432d7 4827 members.
a5894242
MS
4828
4829Thu Apr 27 09:49:07 1995 Mike Stump <mrs@cygnus.com>
4830
4831 * typeck2.c (process_init_constructor): Make sure initializers are
4832 fully digested.
4833
4834Thu Apr 27 01:11:55 1995 Jason Merrill <jason@python.cygnus.com>
4835
4836 * lex.c (cons_up_default_function): Always defer synthesis.
4837
4838Thu Apr 27 00:20:37 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4839
4840 * decl2.c (mark_inline_for_output): Don't play with pending_inline
4841 stuff.
4842
4843Wed Apr 26 17:48:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4844
4845 * call.c (user_harshness): New function; like build_type_conversion,
4846 but doesn't actually build anything.
4847 (compute_conversion_costs): Use it instead of build_type_conversion.
4848
4849Wed Apr 26 17:11:25 1995 Jason Merrill <jason@deneb.cygnus.com>
4850
4851 * typeck.c (build_function_call_real): Improve error message for
4852 calling a non-function.
4853
4854 * method.c (hack_identifier): Lose check for calling a data member.
4855
4856Wed Apr 26 16:59:13 1995 Mike Stump <mrs@cygnus.com>
4857
4858 * typeck2.c (build_functional_cast): Remove very old cruft.
4859 Seems like good code is generated without it.
4860
4861Wed Apr 26 00:47:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4862
4863 * method.c (do_build_assign_ref): Fix handling of anonymous unions.
4864 (do_build_copy_constructor): Ditto.
4865
4866 * parse.y (simple_stmt, SWITCH): Call {push,pop}_switch.
4867
4868 * decl.c (push_switch): New function.
4869 (pop_switch): Ditto.
4870 (define_case_label): Check for jumping over initialization.
4871
4872 * call.c (build_method_call): Check for an inline function being
4873 called before its definition has been seen.
4874 * typeck.c (build_function_call_real): Ditto.
4875
4876 * decl.c (duplicate_decls): Check for a function being redeclared
4877 inline after its address has been taken.
4878
4879 * typeck.c (build_conditional_expr): Handle related class lvalues.
4880
4881Tue Apr 25 13:20:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4882
4883 * pt.c (do_pending_expansions): Don't expand unused templates.
4884
4885 * parse.y (component_decl): Accept a lone semicolon.
4886
4887Tue Apr 25 00:25:56 1995 Jason Merrill <jason@rtl.cygnus.com>
4888
4889 * call.c (build_method_call): Don't allow an RTL_EXPR to serve as the
4890 object parameter anymore.
4891
4892 * expr.c (cplus_expand_expr): Don't create RTL_EXPRs with no insns.
4893
4894Mon Apr 24 12:35:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4895
4896 * parse.y (simple_stmt, decl case): Clear prefix_attributes.
4897 (lang_extdef): Ditto.
4898
4899 * parse.y (maybe_parmlist): New rule for use in declarators where
4900 this could either be a list of expressions or parameters. Calls
4901 suspend_momentary before deciding which.
4902 (direct_after_type_declarator): Use it.
4903 (complex_direct_notype_declarator): Use it.
4904
4905 * pt.c (tsubst): Propagate attributes const and noreturn.
4906
4907 * typeck.c (build_modify_expr): If warn_synth, call build_opfncall
4908 before doing the default thing.
4909
2db70b29
DE
4910Thu Apr 27 21:49:36 1995 Doug Evans <dje@cygnus.com>
4911
4912 * typeck.c (common_type): Call lookup_attribute instead of
4913 value_member.
4914
91887f0b
RK
4915Tue Apr 25 18:07:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
4916
4917 * Make-lang.in: Change "realclean" to "maintainer-clean".
4918
e8abc66f
MS
4919Sun Apr 23 12:32:38 1995 Mike Stump <mrs@cygnus.com>
4920
4921 * decl2.c (finish_file): Fix broken linked list handling.
4922
4923Fri Apr 21 18:08:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4924
4925 * class.c (finish_base_struct): Don't set TYPE_HAS_COMPLEX_*_REF
4926 as often.
4927 (finish_struct): Ditto.
4928
4929 * various: Use TYPE_HAS_TRIVIAL_* instead of TYPE_HAS_COMPLEX_*.
4930
4931 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): New macro.
4932 (TYPE_HAS_TRIVIAL_ASSIGN_REF): New macro.
4933
4934Fri Apr 21 15:52:22 1995 Jason Merrill <jason@python.cygnus.com>
4935
4936 * typeck.c (c_expand_return): Only expand a returned TARGET_EXPR if
4937 it is of the same type as the return value.
4938
4939Fri Apr 21 03:01:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4940
4941 * decl2.c (finish_file): Reconsider if synthesizing a method wrote
4942 out its assembly.
4943
4944 * typeck.c (convert_for_initialization): Don't call a trivial copy
4945 constructor.
4946
4947 * typeck2.c (store_init_value): Only abort if the type has a
4948 non-trivial copy constructor.
4949
4950 * typeck.c (c_expand_return): If we're returning in a register and
4951 the return value is a TARGET_EXPR, expand it. Only do
4952 expand_aggr_init if we're returning in memory.
4953 (expand_target_expr): Function to expand a TARGET_EXPR.
4954 (build_modify_expr): Use it.
4955
4956 * tree.c (build_cplus_new): Layout the slot.
4957
4958 * expr.c (cplus_expand_expr): Use expand_call to expand the call
4959 under a NEW_EXPR, so the target is not discarded.
4960
4961Thu Apr 20 14:59:31 1995 Mike Stump <mrs@cygnus.com>
4962
4963 * gc.c (build_dynamic_cast): Tighten error checking.
4964
4965Thu Apr 20 11:23:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4966
4967 * expr.c (cplus_expand_expr): Only abort if the returned target is
4968 different from what we expected if the type has a non-trivial copy
4969 constructor.
4970
4971 * decl2.c (cplus_decl_attributes): Attributes applied to a template
4972 really apply to the template's result.
4973
4974 * tree.c (lvalue_p): Check IS_AGGR_TYPE instead of TREE_ADDRESSABLE
4975 to decide whether to consider a CALL_EXPR an lvalue.
4976
4977 * class.c (finish_struct_bits): Only set TREE_ADDRESSABLE if the
4978 type has a non-trivial copy constructor.
4979
4980 * decl.c (start_function): If interface_known, unset
4981 DECL_NOT_REALLY_EXTERN on the function.
4982
4983Wed Apr 19 16:53:13 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4984
4985 * pt.c (do_function_instantiation): Handle explicit instantiation of
4986 member functions.
4987 (do_type_instantiation): Handle 'inline template class foo<int>',
4988 meaning just spit out the vtable.
4989
4990 * lex.c (cons_up_default_function): Set DECL_NOT_REALLY_EXTERN on
4991 the consed functions.
4992
4993 * decl2.c (import_export_inline): Set DECL_INTERFACE_KNOWN.
4994
4995Wed Apr 19 16:28:17 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
4996
4997 * call.c, class.c, decl2.c, gc.c, init.c, parse.y, pt.c, search.c,
4998 typeck.c: Include output.h.
4999
5000Wed Apr 19 14:57:21 1995 Gerald Baumgartner (gb@alexander.cs.purdue.edu)
5001
5002 * call.c (build_method_call): Allow a signature member functions to
5003 be called from a default implementation.
5004
5005Wed Apr 19 10:21:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5006
5007 * repo.c (finish_repo): Remember what directory we are in.
5008
5009 * search.c (expand_upcast_fixups): Don't mess with abort_fndecl.
5010
5011 * repo.c: Use obstacks instead of fixed-size buffers. Don't spit
5012 out the second copy of the symbol name. Don't remember COLLECT_GCC.
5013
43f2999d
MS
5014Wed Apr 19 02:32:40 1995 Mike Stump <mrs@cygnus.com>
5015
5016 * search.c (virtual_context): New function to get the virtual
5017 context of a function.
5018 (expand_upcast_fixups): New function to generate runtime vtables.
5019 (fixup_virtual_upcast_offsets): Ditto.
5020 (expand_indirect_vtbls_init): Use fixup_virtual_upcast_offsets to
5021 ensure that the this offsets for upcasts from virtual bases into
5022 other virtual bases or non-virtual bases are correct at construction
5023 time and destruction time.
5024 * class.c (fixup_vtable_deltas): Modify to fixup all offsets in all
5025 vtables in all virtual bases, instead of just one vtable in each
5026 virtual base.
5027 (fixup_vtable_deltas1): Ditto.
5028
44a8d0b3
MS
5029Tue Apr 18 03:57:35 1995 Michael Meissner (meissner@cygnus.com)
5030
5031 * Makefile.in (lex.o): Add dependency on c-pragma.h.
5032
5033 * lex.c (handle_sysv_pragma): Use NULL_PTR and NULL_TREE as
5034 appropriate, instead of 0.
5035
5036Mon Apr 17 12:28:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5037
5038 * decl.c (pushdecl): Use decls_match, not duplicate_decls, for
5039 comparing local and global decls.
5040
5041Fri Apr 14 01:46:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5042
5043 * typeck.c (convert_arguments): Only prohibit passing to ... of
5044 types with non-trivial copy constructors.
5045
5046 * repo.c (repo_template_used): Don't try to mess with no id.
5047
5048Fri Apr 14 23:32:50 1995 Per Bothner <bothner@rtl.cygnus.com>
5049
5050 * decl.c (duplicate_decls): Use cp_warning_at for redundant-decls.
5051
5052Thu Apr 13 15:37:42 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5053
5054 * cp-tree.h (current_tinst_level): Delete declaration, since it's
5055 static inside pt.c.
5056
5057 * typeck.c (build_modify_expr): Catch incompatible array assignment.
5058
5059 * parse.y (attribute_list, attrib): Rewrite actions to feed the
5060 right stuff to decl_attributes.
5061
5062Thu Apr 13 11:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5063
5064 * search.c (dfs_debug_mark): Check for magic virtual like
5065 import_export_vtable.
5066
5067 * typeck.c (build_binary_op_nodefault): Don't call cp_pedwarn with
5068 four args.
5069
5070Wed Apr 12 12:02:57 1995 Jason Merrill <jason@deneb.cygnus.com>
5071
5072 * decl2.c (finish_file): Move prevtable pass before needs_messing_up
5073 decision.
5074
5075Tue Apr 11 11:20:27 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5076
5077 * decl.c (finish_decl): If we're writing out a static data member of
5078 a class, we want the debug info for that class.
5079
5080 * gc.c (build_t_desc): Check linkage of a class properly.
5081
5082 * class.c (finish_struct): Set the 'headof' offset for the main
5083 vtable properly.
5084 (prepare_fresh_vtable): Fix typeinfo pointer here.
5085 (modify_one_vtable): Instead of here.
5086
5087Mon Apr 10 12:15:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5088
5089 * repo.c (repo_get_id): New function to return the interesting
5090 identifier for a repo entity.
5091 (repo_template_used): Use it.
5092 (repo_template_instantiated): Mark the id as chosen.
5093 (init_repo): Record whether or not the id was chosen.
5094 (finish_repo): Note if an id was newly chosen.
5095
5096 * pt.c (do_function_instantiation): Call repo_template_instantiated.
5097 (do_type_instantiation): Ditto. Don't diagnose multiple
5098 instantiation.
5099
5100 * decl2.c (finish_file): Use DECL_NOT_REALLY_EXTERN when deciding
5101 whether or not to synthesize a method.
5102
5103 Undo these changes:
5104 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
5105 * class.c (modify_all_direct_vtables): ditto.
5106 * init.c (expand_direct_vtbls_init): expand more vtables if
5107 flag_rtti is on.
5108
79ff2c6c
MS
5109Sat Apr 8 17:45:41 1995 Mike Stump <mrs@cygnus.com>
5110
5111 * gc.c (build_headof): Use ptrdiff_type_node instead of
5112 integer_type_node on pointer arithmetic.
5113
5114Sat Apr 8 11:57:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5115
5116 * typeck.c (build_modify_expr): Undo previous change.
5117
5118Thu Apr 6 01:23:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5119
5120 * Makefile.in (compiler): Remove ../cc1plus before rebuilding it.
5121
5122 * repo.c (get_base_filename): Put the .rpo file in the directory
5123 with the object file, not the source.
5124
5125 * typeck.c (build_conditional_expr): Handle pmf's better.
5126
5127 * repo.c (finish_repo): Also use ASM_OUTPUT_LABELREF to print out
5128 the name of the symbol.
5129
5130Wed Apr 5 15:24:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5131
5132 * repo.c (open_repo_file): Make repo filename DOS-compliant.
5133 (*): Also write a new repo file if some previously-used
5134 templates are no longer used. Only remember the identifier.
5135
5136 * lex.c (cons_up_default_function): If this function belongs to a
5137 template class, call repo_template_used for it.
5138
5139 * repo.c (repo_template_used): Using a class means using its vtable,
5140 if any.
5141 (finish_repo): Ditto.
5142
5143 * typeck.c (build_modify_expr): Only wrap TARGET_EXPRs in RTL_EXPRs
5144 if the type has a complex copy constructor.
5145
5146 * decl2.c (lang_decode_option): -frepo implies
5147 -fno-implicit-templates.
5148
5149 * decl.c (start_function): Clear current_{base,member}_init_list.
5150
5151 * lex.c (init_lex): Also unset *_eq if ! flag_operator_names.
5152
5153Tue Apr 4 16:11:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5154
5155 * decl.c (struct cp_function): Add {base,member}_init_list.
5156 (push_cp_function_context): Save current_{base,member}_init_list.
5157 (pop_cp_function_context): Restore them.
5158
b19b4a78
MS
5159Mon Apr 3 16:55:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5160
5161 * repo.c (get_base_filename): Take filename parm, fix logic bug.
5162
5163 * typeck.c (build_compound_expr): Do not warn about a compound expr
5164 in which the first expression has no side effects.
5165 (build_x_compound_expr): Warn here instead.
5166 (build_conditional_expr): Don't warn about a conditional expression
5167 between an enum and the type it promotes to.
5168
5169 * init.c (build_new): Handle initialization of arrays of builtins
5170 properly.
5171
5172Mon Apr 3 15:08:04 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5173
5174 * repo.c: Include config.h to get definitions of bcopy and rindex
5175 on systems that don't have them (e.g., SVR4).
5176
5177Mon Apr 3 14:41:55 1995 Mike Stump <mrs@cygnus.com>
5178
5179 * decl2.c (finish_table): Pass NULL_TREE instead of init to
5180 finish_decl so that it won't try and do error checking on the
5181 initializer.
5182
5183Mon Apr 3 10:45:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5184
5185 * repo.c (get_base_filename): Analyze COLLECT_GCC_OPTIONS to
5186 determine whether this compile used -c -o.
5187 (open_repo_file): Use get_base_filename. Remove the extension.
5188 (finish_repo): Spit out the values of main_input_filename,
5189 COLLECT_GCC and COLLECT_GCC_OPTIONS.
5190
5191 * parse.y (structsp): Add TYPENAME_KEYWORD complex_type_name.
5192
faae18ab
MS
5193Sun Apr 2 23:43:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5194
5195 * search.c (compute_access): Don't try to do access control on
5196 nested types.
5197
5198Fri Mar 31 10:14:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5199
5200 * repo.c: New file to handle things repo.
5201
5202 * pt.c (instantiate_template): Call repo_template_used if the
5203 definition is accessible.
5204 (mark_function_instantiated): Split out from
5205 do_function_instantiation.
5206 (mark_class_instantiated): Split out from do_type_instantiation.
5207
5208 * parse.y (template_instantiate_once): Call repo_template_used.
5209
5210 * lex.c (lang_init): Call init_repo.
5211
5212 * decl2.c: Handle flag_use_repository.
5213 (finish_file): Call finish_repo.
5214
5215 * decl.c (start_method): Call repo_template_used if this is a
5216 template method.
5217
5218 * Makefile.in (CXX_OBJS): Add repo.o.
5219 (repo.o): Add dependencies.
5220
5221 * Make-lang.in (CXX_SRCS): Add repo.c.
5222
5223 * decl.c (start_function): If DECL_INTERFACE_KNOWN and
5224 DECL_NOT_REALLY_EXTERN are both set, unset DECL_EXTERNAL.
5225
5226 * typeck.c (build_binary_op_nodefault): Identify the invalid operand
5227 types used.
5228
5229 * decl.c (duplicate_decls): Propagate DECL_NOT_REALLY_EXTERN.
5230
5231Thu Mar 30 17:54:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5232
5233 * typeck.c (build_binary_op_nodefault): Tidy up use of build_type
5234 and result_type. When checking for comparison between signed
5235 and unsigned, use result_type rather than the (possibly shortened)
5236 type of op0. Also, don't warn about equality comparison of a
5237 signed operand to an unsigned constant that fits in the signed
5238 type.
5239
5240 * method.c (do_build_copy_constructor): Reverse
5241 current_base_init_list after we've built it up.
5242
5243Thu Mar 30 14:35:18 1995 Mike Stump <mrs@cygnus.com>
5244
5245 * except.c (build_throw): Never warn about the value of throw not
5246 being used.
5247
5248Thu Mar 30 13:16:54 1995 Mike Stump <mrs@cygnus.com>
5249
5250 * except.c (expand_start_catch_block): Check for bad catch parameter
5251 declarations.
5252
5253Thu Mar 30 13:06:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5254
5255 * decl.c (finish_function): Only set DECL_NOT_REALLY_EXTERN if
5256 DECL_EXTERNAL is not already set.
5257
5258Thu Mar 30 11:26:24 1995 Mike Stump <mrs@cygnus.com>
5259
5260 * method.c (emit_thunk): Let poplevel know that the last level is
5261 for a function so it can create a BLOCK_NODE and set DECL_INITIAL.
5262
5263Thu Mar 30 11:15:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5264
5265 * decl2.c (import_export_inline): Don't set DECL_NOT_REALLY_EXTERN
5266 here.
5267
5268 * decl.c (grokdeclarator): OK, don't abort if we see a decl with
5269 METHOD_TYPE.
5270 (finish_function): Set DECL_EXTERNAL and DECL_NOT_REALLY_EXTERN on
5271 all deferred inlines.
5272
5273Wed Mar 29 19:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5274
5275 * cp-tree.h (DECL_THIS_INLINE): New macro.
5276 (DECL_NOT_REALLY_EXTERN): New macro.
5277 (DECL_THIS_STATIC): New macro.
5278
5279 * decl.c: Lose all references to current_extern_inline. Break
5280 inline semantics into DECL_INLINE for actual inlining and
5281 DECL_THIS_INLINE for the linkage wierdness. Use DECL_THIS_STATIC.
5282 * decl2.c: Use DECL_NOT_REALLY_EXTERN to indicate that we want to
5283 emit an inline here. Associated changes.
5284 * lex.c: Ditto.
5285 * pt.c: Ditto.
5286 * typeck.c: Ditto.
5287
5288 * call.c (build_method_call): Don't bother trying to handle inlines
5289 specially.
5290 * cvt.c (convert_to_aggr): Ditto.
5291
5292 * pt.c (do_function_instantiation): Handle instantiation of
5293 public inlines, too.
5294
5295Wed Mar 29 16:04:25 1995 Mike Stump <mrs@cygnus.com>
5296
5297 * except.c (init_exception_processing): Change the interface for
5298 __throw_type_match and add decl for new rtti matching routine
5299 __throw_type_match_rtti.
5300 (build_eh_type): New routine to build a run time descriptor for the
5301 expression given.
5302 (expand_start_catch_block): Update to use new calling convention for
5303 the matcher.
5304 (expand_throw): Update to use build_eh_type.
5305
08fb8ad0
WL
5306Mon Mar 27 07:14:33 1995 Warner Losh <imp@village.org>
5307
5308 * g++.c: Removed __NetBSD__ from conditional.
5309 Declare strerror if HAVE_STRERROR is defined; otherwise
5310 declare sys_errlist and sys_nerr.
5311 (my_strerror): New function.
5312
71851aaa
MS
5313Tue Mar 28 14:16:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5314
5315 * search.c (get_binfo): Don't try to be so clever.
5316
5317 * tree.c (copy_to_permanent): Also suspend_momentary().
5318
5319 * cvt.c (cp_convert_to_pointer): Hand off to convert_fn_pointer even
5320 if the types are the same.
5321
5322 * decl.c (start_function): Handle extern inlines more like C++ says
f30432d7 5323 we should.
71851aaa
MS
5324
5325 * init.c (build_member_call): Hand constructor calls off to
5326 build_functional_cast.
5327
5328 * typeck2.c (build_functional_cast): Use DECL_NESTED_TYPENAME to get
5329 the name of the type.
5330
5331Tue Mar 28 13:13:56 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5332
5333 * decl.c (grokdeclarator): Check for the decl returned by
5334 grokfndecl to be null before using build_decl_attribute_variant.
5335
5336Mon Mar 27 18:04:41 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5337
5338 * init.c (build_new): Use build_pointer_type instead of
5339 TYPE_POINTER_TO.
5340
7215f9a0
MS
5341Fri Mar 24 12:11:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5342
71851aaa
MS
5343 * typeck.c (build_conditional_expr): Handle pmfs.
5344 (convert_for_assignment): Fix pmf support.
5345
5346 * cvt.c (convert_fn_ptr): Support !flag_vtable_thunks.
5347 (cp_convert_to_pointer): Handle pmfs.
5348 (cp_convert): Pass pmfs to cp_convert_to_pointer.
5349
5350 * typeck.c (common_type): Handle inheritance for pmfs.
5351
5352 * typeck2.c (build_m_component_ref): Do access control.
5353
5354 * typeck.c (comp_target_types): Check for conversion to void *
5355 before checking trickier conversions.
5356
7215f9a0
MS
5357 * decl.c (duplicate_decls): Propagate DECL_ABSTRACT_VIRTUAL_P.
5358
5359 * pt.c (push_tinst_level): Complain if template instantiation depth
5360 is greater than max_tinst_depth.
5361
5362 * typeck.c (common_type): Assume that we can call common_type to
5363 unify the target type of a pointer.
5364
5365Thu Mar 23 00:48:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5366
5367 * decl2.c (finish_file): Don't synthesize methods at
5368 finish_vtable_prevardecl time. Do synthesize methods that are not
5369 used, but are public and not external.
5370
5371 * cvt.c (build_type_conversion): Only give an error if for_sure.
5372
5373 * typeck.c (comp_target_types): Only support pointer conversions if
5374 nptrs > 0.
5375
5376Wed Mar 22 19:30:15 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5377
5378 * init.c (build_new): Catch use of an initializer list where it
5379 shouldn't be.
5380
5381Wed Mar 22 16:21:07 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5382
5383 * init.c (build_new): Wrap alloc_expr in an RTL_EXPR if nelts is
5384 non-constant.
5385
5386 * decl2.c: temp_name_counter is now public.
5387
5388 * decl.c (struct cp_function): Add temp_name_counter field.
5389 (push_cp_function_context): Save it.
5390 (pop_cp_function_context): Restore it.
5391
5392 * typeck.c (common_type): Handle unifying function types, and unify
5393 unmatched things to void* with a compiler_error, rather than
5394 silently like before.
5395
28cbf42c
MS
5396Wed Mar 22 15:10:34 1995 Mike Stump <mrs@cygnus.com>
5397
5398 * decl2.c (finish_prevtable_vardecl, finish_vtable_vardecl): Revert
5399 Brendan's last change and fix latent problem that causes TD entries
5400 to not come out when the things that need them has yet to be
5401 expanded.
5402
5403Wed Mar 22 15:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5404
5405 * typeck.c (build_binary_op_nodefault, comparison ops): Update type0
5406 and type1, since we might have changed op0 or op1.
5407
5408Wed Mar 22 13:33:45 1995 Jason Merrill <jason@python.cygnus.com>
5409
5410 * typeck.c (common_type): Don't mess up templates.
5411
5412Wed Mar 22 04:56:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5413
5414 * typeck.c (common_type): Handle ptms properly. Also handle
5415 T* -> void*.
5416 (build_binary_op_nodefault): New variable build_type controls what
5417 type is given to the expression when it is created. Set this to
5418 boolean_type_node for comparison ops instead of using result_type.
5419 (comp_target_types): Allow T * -> void *.
5420
5421 * cvt.c (cp_convert_to_pointer): Do access control when converting
5422 ptms, too.
5423
5424Tue Mar 21 17:25:06 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5425
5426 * parse.y (extern_lang_string): Catch use of linkage specs that
5427 aren't all naming the same language.
5428
5429 * class.c (finish_struct): Delete accidental duplicate code.
5430
5431Tue Mar 21 14:00:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5432
5433 * typeck.c (build_binary_op_nodefault): Disable pedwarns about
5434 comparing functions and incomplete types.
5435
5436 * decl.c (finish_function): Only unset current_function_decl if
5437 !nested.
5438 (duplicate_decls): Last change went too far; we only want to stop
5439 checking for value/reference ambiguity.
5440
5441Tue Mar 21 01:26:39 1995 Mike Stump <mrs@cygnus.com>
5442
5443 * gc.c (build_generic_desc): Zap the DECL_SIZE so that we can lay it
5444 out fresh, as the new type may be larger.
5445
5446Mon Mar 20 19:01:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5447
5448 * expr.c (extract_init): Try to expand the RTL for the
5449 initialization and figure out what it will look like so we can avoid
5450 run-time initialization. Disabled for now.
5451 (extract_scalar_init): Helper for scalar initialization.
5452 (extract_aggr_init): Helper for aggregate initialization.
5453
5454 * decl.c (duplicate_decls): Don't complain about ambiguous
5455 declarations.
5456 (obscure_complex_init): Now returns a tree. Call extract_init if
5457 we're optimizing and this is a toplevel decl.
5458 (finish_decl): Update accordingly.
5459
5460 * lex.c (check_newline): If we're just changing files (not pushing
5461 or popping), update input_file_stack->name.
5462
5463Mon Mar 20 17:55:04 1995 Mike Stump <mrs@cygnus.com>
5464
5465 * pt.c (type_unification): Only TEMPLATE_DECLs are handled right now
5466 in the transitive unification code.
5467
5468Mon Mar 20 16:07:50 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5469
5470 * decl.c (shadow_tag): Don't allow inline, virtual, or explicit on
5471 non-functions.
5472 (grokdeclarator): Don't allow friends to be defined in local classes.
5473
5474Sat Mar 18 04:03:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5475
5476 * decl2.c (finish_prevtable_vardecl): Use DECL_DECLARED_STATIC
5477 rather than DECL_SAVED_INSNS to decide whether or not this method
5478 was declared inline.
5479
5480 * method.c (synthesize_method): Turn off DECL_INLINE if
5481 function_cannot_inline_p thinks we're too large.
5482
5483 * typeck.c (build_indirect_ref): Use build_expr_type_conversion.
5484
5485Fri Mar 17 17:47:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5486
5487 * class.c (instantiate_type): Handle pmfs.
5488
5489 * typeck.c (convert_for_assignment): Check types when assigning one
5490 pmf to another.
5491
5492 * decl.c (define_label): Fix logic for printing out the name of the
5493 label in an error message.
5494
5495 * error.c (dump_expr): Support ARRAY_REF.
5496
5497Fri Mar 17 17:43:02 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5498
5499 * decl2.c (finish_vtable_vardecl): Call build_t_desc here.
5500 (finish_prevtable_vardecl): Instead of here.
5501
5502Fri Mar 17 14:40:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5503
5504 * decl.c (expand_static_init): Also use expand_aggr_init if the
5505 initializer is a TREE_LIST.
5506 (grokdeclarator): Only pedwarn about extra qualification if -pedantic.
5507
5508 * pt.c (unify): Fix unification of return type.
5509
5510 * expr.c (fixup_result_decl): Use store_expr, rather than
5511 emit_move_insn, to move the return value into the place where
5512 callers will expect it.
5513
5514Thu Mar 16 22:05:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5515
5516 * init.c (build_offset_ref): Call assmble_external on functions.
5517 * typeck.c (build_component_ref): Ditto.
5518
5519Thu Mar 16 20:28:16 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5520
5521 * decl.c (struct saved_scope): Add members base_init_list and
5522 member_init_list.
5523 (push_to_top_level): Save current_base_init_list and
5524 current_member_init_list to them.
5525 (pop_from_top_level): Put it back.
5526
5527Thu Mar 16 19:21:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5528
5529 * pt.c (instantiate_template): Call assemble_external.
5530
5531Thu Mar 16 18:07:54 1995 Brendan Kehoe (brendan@phydeaux.cygnus.com)
5532
5533 * class.c: Include rtl.h, to get NULL_RTX.
5534 (finish_struct): Also zero out DECL_SAVED_INSNS, to avoid problems
5535 on hosts with different sizes for each part of the union.
5536 * tree.c: Also include rtl.h.
5537 (layout_basetypes): Same change for DECL_SAVED_INSNS.
5538
5539Thu Mar 16 13:57:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5540
5541 * pt.c (unify): Fix array domain unification for 64-bit targets.
5542
5543 * decl2.c (finish_file): Push bizarre type decl before walking the
5544 vtables the first time.
5545 (walk_vtables): OK, don't set prev to vars if the vardecl_fn messed
5546 with TREE_CHAIN (prev).
5547
5548 * init.c (emit_base_init): Use convert_pointer_to_real instead of
5549 convert_pointer_to when converting to a direct base.
5550
5551Wed Mar 15 20:26:29 1995 Mike Stump <mrs@cygnus.com>
5552
5553 * pt.c (type_unification): Handle transitive unification better.
5554
5555Wed Mar 15 13:56:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5556
5557 * decl2.c (walk_vtables): Always set prev to vars.
5558 (mark_vtable_entries): Call assemble_external on the vtable entries.
5559
5560 * class.c (finish_struct): Set the vtable's size to NULL_TREE before
f30432d7 5561 calling layout_decl, so that it gets updated properly.
28cbf42c
MS
5562
5563 Finally re-enable dynamic synthesis. This time it works.
5564 * method.c (synthesize_method): Pass decl_function_context (fndecl)
5565 to {push,pop}_cp_function_context.
5566 * decl.c (push_cp_function_context): Now takes a tree argument.
5567 (pop_cp_function_context): Ditto.
5568 * call.c (build_method_call): Enable synthesis.
5569 * lex.c (cons_up_default_function): Ditto.
5570
5571Tue Mar 14 19:14:19 1995 Doug Evans <dje@chestnut.cygnus.com>
5572
5573 * parse.y (setattrs): Chain onto prefix_attributes rather than
5574 setting it.
5575
5576Wed Mar 15 13:00:00 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5577
5578 * decl.c (pushdecl): Check if the type of the VAR_DECL is an
5579 error_mark_node before trying to read TYPE_LANG_SPECIFIC.
5580
b7484fbe
MS
5581Mon Mar 13 21:00:28 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5582
5583 * decl.c (grokdeclarator, case ARRAY_REF): Wrap the exp with fold,
5584 and convert the size and integer_one_node to the index type.
5585
5586Mon Mar 13 08:01:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5587
5588 * typeck.c (get_member_function_from_ptrfunc): Save the instance
5589 argument, and tack it onto the front of the COND_EXPR to make the
5590 semantics come out right. Grab the instance argument from
5591 '*instance_ptrptr', rather than having it passed in separately.
5592
5593 * various: Change various consed-up comparison operations to have
5594 boolean type. Remove the instance argument in calls to
5595 get_member_function_from_ptrfunc.
5596
5597 * error.c (dump_expr): Dump true and false as "true" and "false".
5598
5599 * decl2.c (finish_file): Also set DECL_STATIC_FUNCTION_P on the
5600 global init function.
5601
5602 * decl.c (finish_function): Only set DECL_EXTERNAL here if the
5603 inline function is public.
5604
5605Sat Mar 11 00:58:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5606
5607 * init.c (is_friend): Be more careful about checking
5608 DECL_CLASS_CONTEXT on non-member functions.
5609
5610 * decl2.c (finish_vtable_vardecl): Don't bother calling
5611 assemble_external here.
5612 (prune_vtable_vardecl): New function that just splices out the
5613 vtable decl from the top-level decls.
5614 (import_export_inline): Unset DECL_EXTERNAL at first.
5615 (finish_file): Don't bother calling assemble_external here. Do
5616 splice out all of the vtables.
5617
5618Fri Mar 10 14:42:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5619
5620 * decl.c (finish_function): If we're not emitting the function yet,
5621 call assemble_external for it.
5622
5623 * decl2.c (finish_prevtable_vardecl): Don't call mark_vtable_entries
5624 here.
5625 (finish_vtable_vardecl): Don't do the linkage deduction thing here.
5626 Also don't splice out the current vtable if it is unused.
5627 (finish_file): Move the second walk_vtables and the synthesis check
5628 inside the 'reconsider' loop. Move thunk emission after the
5629 'reconsider' loop.
5630
5631Thu Mar 9 16:28:16 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5632
5633 * pt.c (tsubst): Don't bother calling cp_build_type_variant, since it
5634 was passing bogus values for readonly and volatile from the original
5635 template decl, not the resultant type of the tsubst call.
5636
5637 * class.c (duplicate_tag_error): Use cp_error_at to point out the
5638 previous definition of the tag.
5639
5640Thu Mar 9 10:46:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5641
5642 * decl.c (start_function): Clear base_init_insns and protect_list.
5643 (struct cp_function): Add base_init_insns field.
5644 (push_cp_function_context): Also save base_init_insns.
5645 (pop_cp_function_context): Also restore base_init_insns.
5646
5647Wed Mar 8 13:31:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5648
5649 * init.c (member_init_ok_or_else): Check for initializing a static
5650 member here.
5651 (emit_base_init): Instead of here.
5652
5653Tue Mar 7 16:03:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5654
5655 * call.c (build_method_call): Disable synthesis as needed.
5656 * lex.c (cons_up_default_function): Ditto.
5657
f6abb50a
BK
5658Tue Mar 7 10:14:29 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5659
5660 * parse.y: New rules to allow attributes in a prefix position.
5661 (prefix_attributes): New variable. Pass it into cplus_decl_attributes.
5662 (setattr): New rule.
5663 (reserved_declspecs, declmods): Catch attributes here.
5664 * decl2.c (cplus_decl_attributes): Add PREFIX_ATTRIBUTES argument.
5665 * decl.c (duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to
5666 descendent typedef.
5667 (grokdeclarator): Added code to support machine attributes.
5668 * Makefile.in (stamp-parse): Expect 5 shift/reduce failures.
5669
b7484fbe
MS
5670Mon Mar 6 15:07:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5671
5672 * call.c (build_method_call): Don't synthesize methods outside of a
5673 function.
5674
5675 Make base initialization more re-entrant so that synthesis on the
5676 fly will work (and, eventually, template instantation on the fly).
5677 * init.c (sort_member_init): Don't bother with members that can't be
5678 initialized. Reorganize a bit. Don't initialize base members here.
5679 (sort_base_init): New function, like sort_member_init, but for base
5680 classes. Steals some code from emit_base_init.
5681 (emit_base_init): Simplify. Call sort_{member,base}_init before
5682 doing any initialization, so we don't have to save
5683 current_{member,base}_init_list in push_cp_function_context.
5684 (expand_aggr_vbase_init_1): Adjust for sort_base_init.
5685 (expand_aggr_vbase_init): Simplify.
5686 * decl.c (struct cp_function): Add protect_list field.
5687 (push_cp_function_context): Also save protect_list.
5688 (pop_cp_function_context): Also restore protect_list.
5689 * call.c (build_method_call): Enable synthesis at point of call.
5690 * lex.c (cons_up_default_function): Ditto.
5691
5692 * parse.y: Turn -ansi checks back into -pedantic checks.
5693
5694 * init.c (build_new): Fix -fcheck-new for array new.
5695
5696Sat Mar 4 15:55:42 1995 Fergus Henderson <fjh@cs.mu.oz.au>
5697
5698 * typeck.c (build_compound_expr): warn if left-hand operand of
5699 comma expression has no side-effects.
5700
5701Fri Mar 3 15:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5702
5703 * parse.y (primary): Change 'object qualified_id *' rules to 'object
5704 overqualified_id *'.
5705
5706Fri Mar 3 12:48:17 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5707
5708 * parse.y (unary_expr): Catch doing sizeof an overloaded function.
5709 Make the error look the same as the one we issue in c_sizeof.
5710
5711 * typeck.c (build_binary_op_nodefault): Give an error for trying
5712 to compare a pointer-to-member to `void *'.
5713
5714Fri Mar 3 11:28:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5715
5716 * typeck.c (build_unary_op): Handle bool increment with smoke and
5717 mirrors here, rather than in expand_increment where it belongs,
5718 because Kenner doesn't agree with me.
5719
5720Fri Mar 3 00:08:10 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5721
5722 * decl.c (grokparms): Catch a PARM_DECL being used for a default
5723 argument as well.
5724
5725Thu Mar 2 20:05:54 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5726
5727 * init.c (build_new): Don't allow new on a function type.
5728
5729 * parse.y (primary): Avoid a crash when seeing if the arg is of
5730 the same type as that given for the typespec in an explicit dtor call.
5731
5732Thu Mar 2 00:49:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5733
5734 * decl.c (finish_function): Change test for calling
5735 mark_inline_for_output.
5736
5737Wed Mar 1 11:23:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5738
5739 * typeck.c (build_modify_expr): Complain if
5740 build_default_binary_type_conversion fails.
5741
5742 * init.c (expand_default_init): Handle arguments of unknown type
5743 properly.
5744
5745 * cvt.c (build_expr_type_conversion): Only complain about ambiguity
5746 if 'complain'.
5747 * various: Pass 'complain'.
5748
5749 * typeck.c (comptypes): Be more picky about comparing UPTs.
5750
5751Wed Mar 1 11:03:41 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5752
5753 * decl.c (grokdeclarator): If declarator is null, say that the
5754 type used has an incomplete type.
5755
5756Wed Mar 1 10:06:20 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5757
5758 * pt.c (instantiate_template): Copy the template arguments to the
5759 permanent_obstack. Also use simple_cst_equal to compare them when
5760 looking for a previous instantiation.
5761
5762 * tree.c (make_deep_copy): Support copying INTEGER_TYPEs (assuming
5763 they are array domain types).
5764
5765Tue Feb 28 23:24:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5766
5767 * cp-tree.h: Define WANT_* constants for passing to
5768 build_expr_type_conversion.
5769 * cvt.c (build_expr_type_conversion): New function to build
5770 conversion to one of a group of suitable types.
5771 (build_default_binary_type_conversion): Use it.
5772 * decl2.c (grok_array_decl): Ditto.
5773 * typeck.c (build_unary_op): Ditto.
5774 (build_array_ref): Tidy up a bit.
5775 (build_binary_op): Ditto.
5776
5777Tue Feb 28 19:57:31 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5778
5779 * decl.c (grokdeclarator): Don't allow decl of an argument as `void'.
5780
5781Tue Feb 28 17:23:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5782
5783 * parse.y (typed_declspecs1): Add 'typespec reserved_typespecquals
5784 reserved_declspecs' rule.
5785
5786 * parse.y (expr_or_declarator): Remove notype_qualified_id rule.
5787 (direct_notype_declarator): Ditto.
5788 (complex_direct_notype_declarator): Add notype_qualified_id rule.
5789
5790 * lex.c (real_yylex): Handle :> digraph properly.
5791
5792Tue Feb 28 12:26:29 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5793
5794 * decl.c (grokdeclarator): Check if it's a friend, not if it's
5795 non-virtual, that's being initialized. Move the check up to
5796 before FRIENDP would get cleared. Catch an unnamed var/field
5797 being declared void. Say just `field' instead of `structure field'
5798 in the error message. Only go for the operator name if DECLARATOR
5799 is non-null.
5800
5801Tue Feb 28 00:08:01 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5802
5803 * decl.c (start_function): Complain about abstract return type.
5804 (grokdeclarator): Complain about declaring constructors and
5805 destructors to be const or volatile. Complain about declaring
5806 destructors to be static.
5807
5808 * pt.c (uses_template_parms): Handle pmfs.
5809
5810 * decl.c (grokdeclarator): Don't call variable_size for array bounds
5811 that only depend on template constant parameters.
5812
5813Mon Feb 27 15:38:16 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5814
5815 * error.c (dump_decl): Only look to see if it's a vtable if we
5816 actually have a name to check out.
5817
5818Mon Feb 27 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5819
5820 * cvt.c (convert_to_aggr): Lose misleading shortcut.
5821
5822Sun Feb 26 17:27:32 1995 Doug Evans <dje@canuck.cygnus.com>
5823
5824 * decl.c (set_nested_typename): Always set DECL_IGNORED_P,
5825 not just for dwarf.
5826
5827Sun Feb 26 00:10:18 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5828
5829 * decl.c (grokdeclarator): Don't allow a static member to be
5830 declared `register'.
5831
5832 * init.c (make_friend_class): Move up to a pedwarn for the warning
5833 about a class declaring friends with itself.
5834
5835 * decl.c (grokdeclarator): You can't do `volatile friend class foo'
5836 or `inline friend class foo'. Only try to make a friend out of
5837 TYPE if we didn't already reset it to integer_type_node.
5838
5839Sat Feb 25 22:32:03 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5840
5841 * decl.c (grokdeclarator): Don't allow initialization of a
5842 non-virtual function.
5843
5844 * decl.c (start_function): Do a pedwarn if we're changing `main'
5845 to have an int return type.
5846
5847Sat Feb 25 00:02:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5848
5849 * typeck.c (build_modify_expr): Handle simple assignment from
5850 TARGET_EXPRs by building up an RTL_EXPR to force expansion. Whew.
5851
5852Fri Feb 24 18:27:14 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5853
5854 * decl.c (grokdeclarator): Also don't allow virtual outside of a
5855 class decl for a scope method definition performed at global binding.
5856
5857 * init.c (build_offset_ref): Don't allow creation of an OFFSET_REF
5858 of a bitfield.
5859
5860 * decl.c (grokdeclarator): Don't allow a const to be declared mutable.
5861
5862 * typeck.c (build_binary_op): Return an error_mark_node if either
5863 one of the args turned into an error_mark_node when we tried to
5864 use default_conversion.
5865
5866 * typeck.c (build_unary_op): Forbid using postfix -- on a bool.
5867
5868 * decl.c (grokdeclarator): Allow `signed' and `unsigned' to be
5869 used on `__wchar_t'.
5870
5871Fri Feb 24 13:59:53 1995 Mike Stump <mrs@cygnus.com>
5872
5873 * except.c (end_protect_partials): Do it the right way.
5874
5875Wed Feb 22 15:42:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5876
5877 * typeck.c (build_binary_op_nodefault): Upgrade warning about
5878 comparing distinct pointer types to pedwarn.
5879
5880 * typeck2.c (digest_init): Cope with extra braces.
5881
5882 * typeck.c (build_binary_op_nodefault): Use tree_int_cst_sgn instead
5883 of INT_CST_LT (..., interger_zero_node).
5884
5885Wed Feb 22 14:45:52 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5886
5887 * except.c [!TRY_NEW_EH] (end_protect_partials): Define dummy
5888 function for systems that don't have EH.
5889
5890Tue Feb 21 19:18:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5891
5892 * call.c (can_convert_arg): Like can_convert, but takes an arg as
5893 well.
5894
5895 * pt.c (type_unification): Allow implicit conversions for parameters
5896 that do not depend on template parameters.
5897
1b65f56d
DR
5898Tue Feb 21 18:43:48 1995 Douglas Rupp (drupp@cs.washington.edu)
5899
5900 * Make-lang.in, config-lang.in: ($exeext): New macro.
5901 * Make-lang.in: Try a "cp" if "ln" fails.
5902 * cp-tree.h (decl_attributes): Added argument.
5903 * decl2.c (cplus_decl_attribute): Add arg to decl_attributes.
5904 * cp/g++.c: Added #ifdefs for sys/file.h and process.h for NT.
5905 Modified spawnvp to have to correct number of arguments for OS/2, NT.
5906
b7484fbe
MS
5907Tue Feb 21 18:36:55 1995 Mike Stump <mrs@cygnus.com>
5908
5909 * decl.c (finish_function): Add calls to end_protect_partials to end
5910 the exception region that protects constructors so that partially
5911 constructed objects can be partially destructed when the constructor
5912 throws an exception.
5913 * init.c (perform_member_init, sort_member_init, emit_base_init):
5914 Added support for partially constructed objects.
5915 * init.c (build_partial_cleanup_for): New routine to do partial
5916 cleanups of a base class.
5917 * decl2.c (finish_file): Move the emitting of the exception table
5918 down, after we emit all code that might have exception regions in
5919 them.
5920 * except.c (end_protect_partials, might_have_exceptions_p): New
5921 routines.
5922 (emit_exception_table): Always output table if called.
5923 * cp-tree.h (protect_list, end_protect_partials,
5924 might_have_exceptions_p, emit_exception_table): Added.
5925
5926Tue Feb 21 16:05:59 1995 Brendan Kehoe (brendan@lisa.cygnus.com)
5927
5928 * gc.c (build_typeid): Pass a NULL_TREE, not the bogus, unused
5929 address of a local variable.
5930 * class.c (build_vfn_ref): Only try to build the PLUS_EXPR if we
5931 were given a non-null PTR_TO_INSTPTR.
5932
5933Tue Feb 21 01:53:18 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5934
5935 * decl.c (duplicate_decls): Always lay out the merged decl.
5936
5937 * decl2.c (finish_vtable_vardecl): Don't do vtable hack on templates.
5938 (finish_prevtable_vardecl): Ditto.
59be85d7 5939
b7484fbe
MS
5940 * method.c (synthesize_method): Set interface_{unknown,only}
5941 according to the settings for our class, not the file where it comes
5942 from.
59be85d7 5943
b7484fbe 5944Sat Feb 18 12:26:48 1995 Mike Stump <mrs@cygnus.com>
3a887df4 5945
b7484fbe 5946 * except.c: Handle systems that define __i386__ but not __i386.
3a887df4 5947
e3417fcd
MS
5948Fri Feb 17 15:31:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5949
5950 * decl2.c (reparse_decl_as_expr): Support being called without a
5951 type argument.
5952
5953 * parse.y (primary): Add '(' expr_or_declarator ')'. Adds 4 r/r
5954 conflicts. Sigh.
5955
5956Fri Feb 17 12:02:06 1995 Mike Stump <mrs@cygnus.com>
5957
5958 * parse.y (template_def, fndef, fn.def1, return_init, condition,
5959 initdcl0, initdcl, notype_initdcl0, nomods_initdcl0,
5960 component_decl_1, after_type_component_declarator0,
5961 notype_component_declarator0, after_type_component_declarator,
5962 notype_component_declarator, after_type_component_declarator,
5963 full_parm, maybe_raises, exception_specification_opt): Fix up,
5964 include exception_specification_opt maybeasm maybe_attribute and
5965 maybe_init if missing. Rename maybe_raises to
5966 exception_specification_opt to match draft wording. Use maybe_init
5967 to simplify rules.
5968
5969Fri Feb 17 01:54:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5970
5971 * init.c (build_new): Set TREE_NO_UNUSED_WARNING on COMPOUND_EXPRs
5972 built for news of scalar types.
5973
5974Thu Feb 16 17:48:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5975
5976 * typeck.c (build_binary_op_nodefault): Update code for warning
5977 about signed/unsigned comparisons from C frontend. Realize that the
5978 code in the C frontend is, if anything, even more bogus. Fix it.
5979 (build_binary_op): Undo default_conversion if it wasn't useful.
5980
5981 * typeck.c (build_unary_op, ADDR_EXPR): Lose bogus special case for
5982 PRE*CREMENT_EXPR.
5983
5984 * decl2.c (import_export_vtable): Don't try the vtable hack
5985 if the class doesn't have any real non-inline virtual functions.
5986 (finish_vtable_vardecl): Don't bother trying to find a non-inline
5987 virtual function in a non-polymorphic class.
5988 (finish_prevtable_vardecl): Ditto.
5989
5990 * decl2.c (import_export_vtable): Use and set DECL_INTERFACE_KNOWN.
5991
5992 * cp-tree.h (DECL_INTERFACE_KNOWN): Use DECL_LANG_FLAG_5.
5993
5994 * init.c (expand_virtual_init): Always call assemble_external.
5995
5996 * class.c (build_vfn_ref): Always call assemble_external.
5997 (build_vtable): Always call import_export_vtable.
5998 (prepare_fresh_vtable): Ditto.
5999 (add_virtual_function): Don't bother setting TREE_ADDRESSABLE.
6000
8ccc31eb
MS
6001Thu Feb 16 03:28:49 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6002
6003 * class.c (finish_struct): Use TYPE_{MIN,MAX}_VALUE to determine
6004 whether an enumerated type fits in a bitfield.
6005
6006Wed Feb 15 15:38:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6007
6008 * class.c (grow_method): Update method_vec after growing the class
f30432d7 6009 obstack.
8ccc31eb
MS
6010
6011Wed Feb 15 13:42:59 1995 Mike Stump <mrs@cygnus.com>
6012
6013 * parse.y (handler_seq): Push a level for the catch parameters.
6014
6015Wed Feb 15 12:42:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6016
6017 * init.c (emit_base_init): Update BINFO_INHERITANCE_CHAIN on my
6018 bases, in case they've been clobbered.
6019
6020Wed Feb 15 12:07:29 1995 Mike Stump <mrs@cygnus.com>
6021
6022 * class.c (finish_base_struct): Set up BINFO_INHERITANCE_CHAIN here,
6023 so that one day it will always be valid.
6024 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Ditto.
6025
6026 * cp-tree.h (copy_binfo): Removed, unused.
6027 * tree.c (copy_binfo): Ditto.
6028
6029Wed Feb 15 00:05:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6030
6031 * init.c (build_new): Save the allocation before calling
6032 expand_vec_init on it.
6033
6034 * decl.c (finish_enum): The TYPE_PRECISION of the enum type mush
6035 match the TYPE_PRECISION of the underlying type for constant folding
6036 to work.
6037
6038Tue Feb 14 15:31:25 1995 Mike Stump <mrs@cygnus.com>
6039
6040 * except.c (push_eh_entry, expand_start_all_catch,
6041 expand_leftover_cleanups, expand_end_catch_block): Keep track of
6042 the context in which the exception region occurs.
6043 (build_exception_table): If the region was not output, don't output
6044 the entry in the eh table for it.
6045
6046Tue Feb 14 02:15:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6047
6048 * init.c (expand_default_init): Only use a previous constructor call
6049 if it's a call to our constructor. Does the word "Duh" mean
6050 anything to you?
6051
6052 * decl.c (grokparms): Fine, just don't call
6053 convert_for_initialization at all. OK? Happy now?
6054
6055Mon Feb 13 02:23:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6056
6057 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Make sure that the class
6058 method vector has a second element before returning it.
6059
6060 * decl.c (grokparms): Don't strip REFERENCE_TYPE before calling
6061 convert_for_initialization.
6062
6063Sun Feb 12 03:57:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6064
6065 * typeck.c (build_modify_expr): Compare function name to
6066 constructor_name (current_class_type) instead of current_class_name.
6067
6068 * decl.c (grokparms): Don't do anything with the return value of
6069 convert_for_initialization.
6070
6071 * error.c (dump_decl): Also dump_readonly_or_volatile on the decl.
6072
6073 * decl.c (duplicate_decls): Tweak error message.
6074
6075 * typeck.c (build_const_cast): Implement checking.
6076 (build_reinterpret_cast): Implement some checking.
6077
6078 * cp-tree.h (CONV_FORCE_TEMP): Require a new temporary when
6079 converting to the same aggregate type.
6080 (CONV_STATIC_CAST): Include it.
6081 (CONV_C_CAST): Ditto.
6082 * cvt.c (convert_force): Use CONV_C_CAST instead of CONV_OLD_CONVERT.
6083 (cp_convert): Only force a new temporary if CONV_FORCE_TEMP.
6084
6085Fri Feb 10 16:18:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6086
6087 * typeck.c (build_c_cast): Use non_lvalue to tack something on
f30432d7 6088 where necessary.
8ccc31eb
MS
6089
6090 * decl.c (auto_function): Now a function.
6091 * except.c (init_exception_processing): terminate, unexpected,
6092 set_terminate, and set_unexpected have C++ linkage.
6093
6094 * typeck.c (build_unary_op, TRUTH_NOT_EXPR): Use convert instead of
6095 truthvalue_conversion for converting to bool, as it handles
6096 user-defined conversions properly.
6097 (condition_conversion): Ditto.
6098
6099 * except.c (expand_throw): Don't call convert_to_reference.
6100 Pass the correct parameters to build_new.
6101
6102 * method.c (do_build_assign_ref): Don't use access control when
6103 converting to a base reference here.
6104 (do_build_copy_constructor): Or here.
6105
6106 * init.c (build_new): Unset TREE_READONLY on the dereferenced
6107 pointer before assigning to it.
6108
6109 * decl.c (maybe_build_cleanup): Don't bother stripping const here.
6110
6111 * decl2.c (delete_sanity): You can now delete pointer to const.
6112
6113Fri Feb 10 13:28:38 1995 Jason Merrill <jason@python.cygnus.com>
6114
6115 * decl.c (finish_function): Don't rely on actual parameters being
6116 evaluated left-to-right.
6117 * except.c (expand_end_catch_block): Ditto.
6118
6119Fri Feb 10 00:52:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6120
6121 * tree.c (real_lvalue_p): Like lvalue_p, but class temps aren't
6122 considered lvalues.
6123 * cvt.c (convert_to_reference): Use real_lvalue_p instead of
f30432d7 6124 lvalue_p.
8ccc31eb
MS
6125
6126 * cvt.c (build_type_conversion_1): Don't call convert on aggregate
6127 types.
6128 (convert_to_reference): Fix erroneous text substitution.
6129
6130 * typeck2.c (initializer_constant_valid_p): Update from C frontend.
6131 Add new argument to all callers.
6132
6133 * typeck.c (convert_arguments): Check for error_mark_node before
6134 trying to do anything with the actual parameter.
6135
6136 * typeck.c (condition_conversion): Build up a CLEANUP_POINT_EXPR and
6137 fold it.
6138 (bool_truthvalue_conversion): Remove. Fix all callers to call
6139 truthvalue_conversion instead.
6140 (various): Fold CLEANUP_POINT_EXPRs.
6141
6142 * parse.y (conditions): Call condition_conversion rather than
6143 building up a CLEANUP_POINT_EXPR.
6144
6145 * pt.c (end_template_decl): Don't warn_if_unknown_interface here
6146 under -falt-external-templates.
6147
6148Thu Feb 9 05:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6149
6150 * init.c (build_new): Complain about new of const type without
6151 initializer. Other cleanup.
6152
6153 * call.c (compute_conversion_costs): Don't call
6154 build_type_conversion with a reference type; convert to the target
6155 type and check its lvaluetude.
6156 * cvt.c (convert_to_reference): Ditto.
6157
6158 * cvt.c (build_type_conversion_1): There will never be any need to
6159 dereference references here now.
6160
6161Thu Feb 9 00:37:47 1995 Mike Stump <mrs@cygnus.com>
6162
6163 * except.c (expand_builtin_throw): Make sure we only `use' the
6164 value of return_val_rtx.
6165
6166Wed Feb 8 15:45:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6167
6168 * parse.y (structsp): Don't complain about declaring a type being
6169 defined to be a friend.
6170
6171 * decl2.c (warn_if_unknown_interface): Note the template in question
6172 and the point of instantiation, for -falt-external-templates.
6173 * lex.c (reinit_parse_for_method): Pass the decl to
6174 warn_if_unknown_interface.
6175 * pt.c (instantiate_template): Ditto.
6176 (end_template_decl): Ditto.
6177
6178 * decl.c (set_nested_typename): Set IDENTIFIER_TYPE_VALUE on the
6179 nested name again, to make local classes work a bit better.
6180
6181 * typeck.c (build_function_call_real): Dereference reference after
6182 checking for incomplete type.
6183
6184 * init.c (build_new): Accept new of const and volatile types.
6185
6186Wed Feb 8 14:04:16 1995 Jason Merrill <jason@deneb.cygnus.com>
6187
6188 * decl.c (grokdeclarator): Fix error message.
6189
6190Wed Feb 8 03:16:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6191
6192 * typeck.c (convert_for_initialization): Do bash arrays when
6193 converting to a reference to non-array.
6194
6195Tue Feb 7 15:50:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6196
6197 * cvt.c (cp_convert): Don't call convert_to_reference, or
6198 automatically dereference references. Do pass reference conversions
6199 to cp_convert_to_pointer.
6200 (cp_convert_to_pointer): Support references.
6201
6202 * call.c (build_method_call): Don't build up a reference to the
6203 parameter here; let build_overload_call handle that.
6204
6205 * typeck.c (build_c_cast): Call convert_to_reference directly if
6206 converting to a reference type.
6207 * method.c (do_build_copy_constructor): Ditto.
6208 * method.c (do_build_copy_constructor): Ditto.
6209 (do_build_assign_ref): Ditto.
6210
6211 * call.c (build_method_call): Dereference a returned reference.
6212 * typeck.c (build_function_call_real): Ditto.
6213
6214 * decl.c (xref_basetypes): Check for unions with basetypes here.
6215 (xref_tag): Instead of here.
6216
6217 * pt.c (process_template_parm): Template type parm decls are
6218 artificial.
6219
6220Mon Feb 6 04:32:09 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6221
6222 * parse.y (typed_declspecs): Add missing semicolon.
6223 (do_xref_defn): Resurrect.
6224 (named_class_head_sans_basetype): Move template specialization
6225 definition cases to named_class_head_sans_basetype_defn.
6226
6227 * decl2.c (grokfield): Call pushdecl_class_level after setting the
6228 TYPE_NAME, not before.
6229
6230Sun Feb 5 02:50:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6231
6232 * call.c (convert_harshness): Don't call sorry here. Don't allow
6233 conversions between function pointer types if pedantic.
6234
6235 * pt.c (overload_template_name): Pass globalize=1 to xref_tag.
6236
6237 * lex.c (cons_up_default_function): Use the full name for the return
6238 type of op=.
6239
6240 * decl.c (set_nested_typename): Don't worry about anonymous types,
6241 as they already have a unique name.
6242 (pushdecl): Remove redundant set_nested_typename
6243 (xref_tag): Split out base handling into xref_basetypes.
6244
6245 * cp-tree.h (TYPE_INCOMPLETE): New macro; TEMPLATE_TYPE_PARMs are
6246 not considered incomplete even though their definition is unknown.
6247
6248 * decl.c (xref_defn_tag): Lose.
6249 (xref_tag): xref_next_defn = ! globalize.
6250 (pushdecl): Don't set DECL_NESTED_TYPENAME on artificial decls. The
6251 ones that should have it set will have it set by pushtag.
6252 (pushdecl_class_level): Ditto.
6253 (pushtag): Tidy up a bit.
6254 (set_nested_typename): Push a decl for the nested typename from
6255 here, rather than from xref_defn_tag.
6256
6257 * parse.y (do_xref): Lose.
6258 (named_class_head): If we see 'class foo:' we know it's a
6259 definition, so don't worry about base lists for non-definitions.
6260
6261 * pt.c (push_template_decls): Template parm decls are artificial.
6262
6263 * decl.c (duplicate_decls): Restore check for qualifier
6264 disagreement for non-functions.
6265 (decls_match): Remove check for qualifier disagreement.
6266
6267Fri Feb 3 14:58:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6268
6269 * decl.c (grok_reference_init): Convert initializer from
f30432d7 6270 reference.
8ccc31eb
MS
6271 * typeck.c (convert_for_initialization): Ditto.
6272
6273 * decl.c (duplicate_decls): Propagate DECL_NESTED_TYPENAME.
6274
6275 * cvt.c (cp_convert): Don't convert to the same class type by just
6276 tacking on a NOP_EXPR.
6277 (convert_to_reference): Use comp_target_types instead of comptypes
6278 so that we don't allow conversions two levels down.
6279
6280Thu Feb 2 15:07:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6281
6282 * class.c (build_vbase_path): Bash types to make the backend happy.
6283 * cvt.c (build_up_reference): Bash the types bashed by
6284 build_vbase_path to be reference types instead of pointer types.
6285 (convert_to_reference): Ditto.
6286
6287 * typeck.c (build_c_cast): Don't strip NOPs if we're converting to a
6288 reference type.
6289
6290 * parse.y (structsp): Put back error for 'struct B: public A;'.
6291
6292Wed Feb 1 23:02:06 1995 Mike Stump <mrs@cygnus.com>
6293
6294 * except.c: Add support for mips systems that don't define __mips
6295 but do define mips, like Ultrix.
6296
6297Wed Feb 1 22:39:07 1995 Mike Stump <mrs@cygnus.com>
6298
6299 * except.c: Add support for exception handling on the Alpha.
6300
1038f4f9
MS
6301Wed Feb 1 10:12:14 1995 Mike Stump <mrs@cygnus.com>
6302
6303 * decl2.c (finish_file): Fix bug in Jan 31st change.
6304
6305Tue Jan 31 16:59:15 1995 Gerald Baumgartner (gb@lorenzo.cs.purdue.edu)
6306
6307 * sig.c (build_signature_pointer_or_reference_type): Don't set
6308 IS_AGGR_TYPE for signature pointers/reference so expand_default_init
6309 doesn't expect to find a copy constructor.
6310 * call.c (build_method_call): Treat signature pointers/reference
6311 as if IS_AGGR_TYPE were set.
6312
d18c083e
MS
6313Tue Jan 31 13:28:56 1995 Mike Stump <mrs@cygnus.com>
6314
6315 * gc.c (get_typeid): Pawn off error messages to build_t_desc.
6316 (build_t_desc): Inform the user here if they try and build
6317 with -frtti and don't include <typeinfo.h>.
6318
6319 * decl2.c (finish_prevtable_vardecl): Support rescanning.
6320 (finish_file): Move finish_prevtable_vardecl up to before the global
6321 initializers are done as tdecls are initialized in the global
6322 initializer. Also Pick up any new tdecls or vtables needed by
6323 synthesized methods.
6324
6325 * class.c (finish_struct): Simplify. We have to do rtti scanning at
6326 end, so we might as well do all of it there.
6327
6328Tue Jan 31 05:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6329
6330 * call.c (build_method_call): Fix -fthis-is-variable for 32-bit
6331 targets, too.
6332
6333Tue Jan 31 00:11:04 1995 Mike Stump <mrs@cygnus.com>
6334
6335 * decl2.c (finish_prevtable_vardecl): New routine, mostly split from
6336 finish_vtable_vardecl. It has the first half functionality from
6337 that routine.
6338 * decl2.c (finish_vtable_vardecl): Update to not include stuff not
6339 in finish_prevtable_vardecl.
6340 * decl2.c (finish_file): Call finish_prevtable_vardecl.
6341 * gc.c (build_generic_desc): Allow it to be called when not at the
6342 global binding layer, but behave as if we were.
6343 (build_t_desc): Rearrange a bit so that it really works and is
6344 easier to follow.
6345 * class.c (finish_struct): Don't decide on tdecls here, as we have
6346 to wait until the end of the file in general to decide whether or
6347 not they come out.
6348
6349Mon Jan 30 01:00:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6350
6351 * init.c (build_delete): Check access to operator delete before
6352 calling the destructor.
6353 * method.c (build_opfncall, DELETE_EXPR): build_method is allowed to
6354 return error_mark_node.
6355 * call.c (build_method_call): Use the one-argument op delete even if
6356 it's an error.
6357
6358 * init.c (build_new): Fix -fthis-is-variable support.
6359 * call.c (build_method_call): Ditto.
6360
6361 * call.c (convert_harshness): Make conversion from a pointer to bool
6362 worse than conversion to another pointer.
6363
6364Sat Jan 28 16:46:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6365
6366 * init.c (build_new): Check new return value if -fcheck-new.
6367
6368 * lex.c (check_newline): Clear end_of_file when we're done, too.
6369
6370Sat Jan 28 10:38:39 1995 Mike Stump <mrs@cygnus.com>
6371
6372 * decl2.c (finish_vtable_vardecl): Make rtti TD tables follow
6373 vtables whereever they go.
6374
6375 * gc.c (build_t_desc): Remove old way of setting it up, as it wasn't
6376 right.
6377
6378Sat Jan 28 09:10:44 1995 Mike Stump <mrs@cygnus.com>
6379
6380 * decl2.c (finish_vtable_vardecl): Now set the
6381 interface/implementation of vtables on the first virtual function,
6382 if one exists, otherwise we use the old method. This is a major win
6383 in terms of cutting down the size of objects and executables in
6384 terms of text space and data space. Now most of the savings that
6385 #pragma interface/implementation gives is automatic in a fair number
6386 of cases.
6387
6388Sat Jan 28 04:57:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6389
6390 * decl.c (grokdeclarator): Discard the template parameters in a
6391 template constructor declaration so that the function is always
6392 named constructor_name (ctype).
6393
6394 * lex.c (check_newline): Use ungetc to put back the character before
6395 calling HANDLE_PRAGMA.
6396
6397Fri Jan 27 17:23:47 1995 Mike Stump <mrs@cygnus.com>
6398
6399 * decl2.c (check_classfn): If the cname is T<int> and fn_name is T,
6400 make sure we still match them.
6401
6402Fri Jan 27 16:32:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6403
6404 * parse.y: Add END_OF_LINE token.
6405
6406 * lex.c (check_newline): Set linemode when we see a # directive, and
6407 unset it when we're done. Turn all 'return's into 'goto skipline'.
6408 Fix all uses of '\n', since we won't see it anymore. Put back the
6409 character we read before checking for a sysv or target pragma.
6410 (real_yylex): If we see an EOF in linemode, return END_OF_LINE.
6411 (handle_sysv_pragma): Don't look at the input stream; quit when we
6412 see an END_OF_LINE token.
6413
6414 * input.c (getch): Return EOF if we're in line mode and at the end
6415 of a line.
6416 (put_back): Don't put back an EOF.
6417
6418Thu Jan 26 19:26:34 1995 Mike Stump <mrs@cygnus.com>
6419
6420 * except.c (expand_throw): Do the newing of the exception object
6421 before we load the type descriptor or the address so that we don't
6422 wipe any of the values out.
6423
6424Thu Jan 26 19:20:00 1995 Mike Stump <mrs@cygnus.com>
6425
6426 * except.c (init_exception_processing): Don't use r12 on the rs6000.
6427
6428Tue Jan 24 16:36:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6429
6430 * decl.c (grokparms): Don't try to build up a reference at this point.
6431
6432 * typeck2.c (build_functional_cast): Don't assume that a NOP_EXPR
6433 will suffice to convert from integer_zero_node.
6434
b7484fbe
MS
6435Wed Jan 25 15:02:09 1995 David S. Miller (davem@nadzieja.rutgers.edu)
6436
6437 * class.c (instantiate_type): Change error message text.
6438 * typeck2.c (store_init_value): Likewise.
6439
e1cd6e56
MS
6440Mon Jan 23 21:57:14 1995 Mike Stump <mrs@cygnus.com>
6441
6442 * pt.c (tsubst): When we copy a node, don't forget to copy
6443 TREE_CHAIN, we use it later.
6444
6445Mon Jan 23 03:33:47 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6446
6447 * typeck.c (convert_for_assignment): Initialize variable before use.
6448
6449Fri Jan 20 01:17:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6450
6451 * g++.c (main): Link with both libstdc++ and libg++ if called as
6452 something ending with "g++", otherwise only libstdc++. Move -lm to
6453 the end of the line.
6454
6455Thu Jan 19 15:43:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6456
6457 * call.c (build_method_call): Don't mess with 'this' before calling
f30432d7 6458 compute_conversion_costs.
e1cd6e56
MS
6459
6460Wed Jan 18 15:40:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6461
6462 * search.c (get_matching_virtual): Give line number for previous
f30432d7 6463 declaration.
e1cd6e56
MS
6464
6465 * call.c (convert_harshness): Handle conversions to references
6466 better.
6467
6468 * cvt.c (build_up_reference): OK, handle {MIN,MAX}_EXPR *properly*.
6469
6470Wed Jan 18 15:21:38 1995 Mike Stump <mrs@cygnus.com>
6471
6472 * class.c (instantiate_type): Use DECL_CHAIN to walk lists instead,
6473 as the TREE_CHAIN for methods will take us to the next differently
6474 named function, DECL_CHAIN won't.
6475
6476Wed Jan 18 14:26:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6477
6478 * tree.c (lvalue_p): Handle {MIN,MAX}_EXPR.
6479
6480 * decl2.c (lang_decode_option): -Wall implies -Wparentheses.
6481 warn_parentheses defaults to 0.
6482
6483 * decl.c (grokparms): Put back call to require_instantiated_type.
6484
6485Tue Jan 17 19:56:15 1995 Mike Stump <mrs@cygnus.com>
6486
6487 * except.c (exception_section): Use the data section on the rs6000.
6488 Change calling convention for named_section.
6489
6490Wed Jan 17 18:20:57 1994 Fergus Henderson <fjh@munta.cs.mu.oz.au>
6491
f30432d7
MS
6492 * cp-tree.h : Make if (x=0) warn with wall
6493 * parse.y : Make if (x=0) warn with wall
e1cd6e56 6494
255512c1
JM
6495Tue Jan 17 14:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6496
e1cd6e56
MS
6497 * decl.c (BOOL_TYPE_SIZE): BITS_PER_WORD if SLOW_BYTE_ACCESS,
6498 BITS_PER_UNIT otherwise.
6499
6500 * search.c (get_matching_virtual): Don't check the binfo if the
6501 types are the same.
6502
6503 * cvt.c (cp_convert): Just call truthvalue_conversion to convert to
f30432d7 6504 bool.
255512c1
JM
6505
6506Mon Jan 16 13:28:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6507
e1cd6e56
MS
6508 * various: Use boolean_type_node, boolean_true_node,
6509 boolean_false_node.
6510
6511 * search.c (get_matching_virtual): Allow covariant returns that
6512 don't require pointer adjustment.
6513
6514 * typeck.c (build_conditional_expr): Don't call default_conversion
6515 on ifexp.
6516
6517 * cvt.c (build_up_reference): Handle MIN_EXPR and MAX_EXPR.
6518
6519 * decl.c (grokdeclarator): Upgrade warning about &const to pedwarn.
6520
6521Sun Jan 15 22:17:32 1995 dcb@lovat.fmrco.COM (David Binderman)
6522
6523 * pt.c (do_function_instantiation): Free targs once we're done.
255512c1
JM
6524
6525Sun Jan 15 22:17:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6526
e1cd6e56
MS
6527 * decl.c (BOOL_TYPE_SIZE): Defaults to BITS_PER_WORD.
6528 (init_decl_processing): Use BOOL_TYPE_SIZE instead of CHAR_TYPE_SIZE
6529 for bool.
6530
6531Sat Jan 14 05:33:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6532
6533 * decl2.c (finish_file): We need to mess up if there are any
6534 variables in the list, not just if there is one with a constructor.
6535
6536Fri Jan 13 14:42:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6537
6538 * decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR.
6539 (finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR.
6540 (finish_function): Trust rest_of_compilation.
6541
6542 * decl2.c (finish_file): Also call functions designated as static
6543 constructors/destructors.
6544
6545 * decl.c (grokdeclarator): Allow access decls of operator functions.
6546 (grokparms): Only do convert_for_initialization if the initializer
6547 has a type.
6548 (duplicate_decls): Put back push_obstacks_nochange call.
6549
6550 * lex.c (real_yylex): Downgrade complaint about the escape sequence
6551 being too large from pedwarn to warning.
6552
6553 * decl.c (grokdeclarator): Don't complain about long long in system
6554 headers.
6555
6556 * lex.c (real_yylex): Handle digraphs.
6557
6558Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6559
6560 * decl.c (init_decl_processing): -f{no-,}strict-prototype only
6561 affects C linkage declarations now.
6562
6563 * typeck.c (comp_target_types): Grok simple contravariant conversions.
6564 (common_type): t1 and t2 are interchangeable.
6565
6566 * various: Test return value of comp_target_types differently in
6567 different places; it now returns -1 for a contravariant conversion
6568 (which is fine in symmetric cases).
6569
6570 (common_type): Prefer long double to double even when
6571 they have the same precision.
6572
6573 * decl.c (grokparms): Call convert_for_initialization to check
6574 default arguments.
6575
6576 * init.c (build_new): void_type_node has a size (of 0).
6577
6578 * decl.c (decls_match): Also check for agreement of TREE_READONLY
6579 and TREE_THIS_VOLATILE.
6580 (push_class_level_binding): Properly handle shadowing of
6581 nested tags by fields.
6582
6583 * search.c (dfs_pushdecls): Ditto.
6584
6585 * decl2.c (finish_file): Don't second-guess self-initialization.
6586
6587 * cvt.c (convert_to_reference): Work with expr directly, rather than
6588 a copy.
6589
6590 * decl.c (push_overloaded_decl): Only shadow artificial TYPE_DECLs.
6591
6592 * init.c (add_friend): Downgrade duplicate friend message from
6593 pedwarn to warning.
6594
6595 * decl.c (duplicate_decls): Push obstacks before calling common_type.
6596
6597Thu Jan 12 17:15:21 1995 Michael Ben-Gershon <mybg@cs.huji.ac.il>
6598
6599 * except.c (push_eh_entry): set LABEL_PRESERVE_P flag for
6600 exception table labels.
6601 (expand_start_all_catch): Ditto.
6602 (expand_leftover_cleanups): Ditto.
6603 (expand_end_catch_block): Ditto.
6604 * except.c (make_first_label): new function.
6605 (expand_start_all_catch): add a call to make_first_label() before
6606 using a label as a jump destination.
6607 (expand_end_all_catch): Ditto.
6608 (expand_leftover_cleanups): Ditto.
6609 (expand_end_catch_block): Ditto.
6610 (expand_builtin_throw): Ditto.
6611 (expand_throw): Ditto.
6612 * except.c: Add ARM processor support for exception handling.
6613
6614Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6615
6616 (complete_array_type): Copy code from C frontend.
6617
6618 * lex.c (real_yylex): Don't multiply the length of a wide string
6619 literal by WCHAR_BYTES.
6620
6621 * decl.c (pushdecl): Check for redeclaration of wchar_t here.
6622 (duplicate_decls): Instead of here.
6623 (define_label): Complain about a label named wchar_t.
6624 (grokdeclarator): Complain about declarations of
6625 operator-function-ids as non-functions.
6626
6627 * typeck.c (unary_complex_lvalue): Also wrap prefix -- and ++ in
6628 COMPOUND_EXPRs.
6629 (build_unary_op): Wrap unary plus in a NON_LVALUE_EXPR.
6630
6631 * lex.c (real_yylex): Don't skip whitespace when reading the next
6632 character after ->.
6633
6634Wed Jan 11 16:32:49 1995 Mike Stump <mrs@cygnus.com>
6635
6636 * except.c: Allow cc1plus to be built with native compiler on rs6000.
6637 (expand_start_all_catch): Add assemble_external calls for various
6638 routines we call.
6639 (expand_leftover_cleanups): Ditto.
6640 (expand_start_catch_block): Ditto.
6641 (do_unwind): Ditto.
6642 (expand_builtin_throw): Ditto.
6643
6644Wed Jan 11 01:05:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6645
6646 * decl.c (pushtag): Only look for a previous decl in the current
6647 binding level. Use explicit global scope in DECL_NESTED_TYPENAME.
6648
6649 * gxx.gperf: Add __signature__ and __sigof__ keywords.
6650
6651 * decl2.c (lang_decode_option): -ansi does not set flag_no_asm. It
6652 does set flag_no_gnu_keywords and flag_operator_names.
6653
6654 * lex.c (init_lex): 'overload' is not a keyword unless -traditional.
6655 Unset extension keywords if -fno-gnu-keywords.
6656 Allow operator names ('bitand') if -foperator-names.
6657 Never unset 'asm'; -fno-asm only affects 'typeof'.
6658
6659 * decl.c (lookup_name_real): The got_object special lookup only
6660 applies to types.
6661
6662Tue Jan 10 18:07:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6663
6664 * spew.c (yylex): Also use DECL_NESTED_TYPENAME if got_object is set.
6665
6666 * parse.y (primary): Unset got_object after all rules that use the
f30432d7 6667 'object' nonterminal.
e1cd6e56
MS
6668 (object): Set got_object.
6669
6670 * lex.h: Declare got_object.
6671
6672 * decl.c (lookup_name_real): Also lookup names in the context of an
6673 object specified.
6674
6675Tue Jan 10 14:30:30 1995 Mike Stump <mrs@cygnus.com>
6676
6677 * typeck.c (get_member_function_from_ptrfunc): Use ptrdiff_type_node
6678 for things that have to be added to pointers, not size_type. Cures
6679 problems with pointer to members on Alphas.
6680 (build_binary_op_nodefault): Ditto.
6681 (get_delta_difference_: Ditto.
6682 (build_ptrmemfunc): Ditto.
6683
6684Tue Jan 10 01:49:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6685
6686 * decl.c (pushtag): Stick the new decl in TYPE_NAME before pushing
6687 it.
6688
6689 * typeck.c (build_component_ref): Don't build up a COMPONENT_REF
6690 when dealing with overloaded member functions; just act like
6691 build_offset_ref.
6692 (commonparms): Remove misleading comment.
6693
6694 * decl.c (duplicate_decls): Complain about repeated default
6695 arguments here.
6696 (redeclaration_error_message): Instead of here.
6697 (pushdecl): Complain about missing default arguments here.
6698 (grokparms): Instead of here.
6699 (lookup_name_current_level): Also match on DECL_ASSEMBLER_NAME.
6700 (grok_reference_init): Do not complain about missing initializer if
6701 declared 'extern'.
6702
6703 * search.c (lookup_field): Don't return a TYPE_DECL if there is a
6704 function alternative and want_type is not set.
6705
6706Mon Jan 9 18:16:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6707
6708 * decl.c (pushtag): Don't set TYPE_NAME to an identifier. Do push
6709 the decl when the type has no TYPE_NAME.
6710 (lookup_nested_type): Don't assume that type has TYPE_NAME set.
6711 (lookup_name_real): Call lookup_field with want_type =
6712 prefer_type.
6713
6714 * search.c (lookup_field): Handle want_type properly in the presence
6715 of fields with the same name.
6716
6717 * decl.c (set_nested_typename): Set nested name for file-scope types
6718 to include leading ::.
6719 (pushdecl): Set the nested typename if the decl doesn't have one,
6720 rather than if the type's canonical decl doesn't have one.
6721
e1cd6e56
MS
6722Mon Jan 9 03:44:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6723
6724 * typeck.c (convert_for_assignment): Complain about contravariance
6725 violation here.
6726 (comp_target_types): Instead of here.
6727 (build_unary_op): resolve_offset_ref before checking for a valid
6728 type.
6729
6730 * spew.c (yylex): Decrement looking_for_typename after we see a
6731 _DEFN.
6732
6733 * decl.c (pushdecl): Don't install an artificial TYPE_DECL in
f30432d7 6734 IDENTIFIER_LOCAL_VALUE if we already have a decl with that name.
e1cd6e56
MS
6735
6736 * typeck.c (convert_for_assignment): Converting pointers to bool
6737 does not need a cast.
6738
6739Sun Jan 8 18:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6740
6741 * class.c (instantiate_type): Initialize nsubsts parm.
6742
6743 * pt.c (do_function_instantiation): Ditto.
6744
6745Sat Jan 7 14:37:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6746
6747 * pt.c (tsubst): Use TREE_STATIC instead of DECL_INLINE &&
6748 DECL_SAVED_INSNS to determine whether or not we've seen a definition
6749 of this function.
6750 (instantiate_template): Ditto.
6751
6752 * call.c (convert_harshness): Allow const reference binding when
6753 called from the overloading code, but not when called from
6754 can_convert (since it isn't a conversion).
6755 (convert_harshness): Put back some disabled code.
6756
6757Fri Jan 6 14:10:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6758
6759 * call.c (convert_harshness): There is no implicit conversion from
6760 void* to other pointer types (unless the parameter is (void*)0).
6761 (convert_harshness): Non-lvalues do not convert to reference types.
6762
6763 * class.c (finish_struct_methods): Still set
f30432d7 6764 TYPE_HAS_{INT,REAL}_CONVERSION.
e1cd6e56
MS
6765
6766 * call.c (can_convert): Don't use aggregate initialization.
6767
6768 * cp-tree.h: Declare lookup_conversions.
6769
6770Thu Jan 5 21:08:00 1995 Mike Stump <mrs@cygnus.com>
6771
6772 * parse.y (simple_stmt): Fix duplicate case value error messages to
6773 be more readable.
6774
6775Wed Jan 4 16:44:19 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6776
6777 * cvt.c (build_type_conversion): Total rewrite to use
6778 convert_harshness instead of reproducing conversion logic here. Now
6779 much shorter.
6780
6781 * call.c (convert_harshness): Support conversions to bool.
6782 (can_convert): Checks whether a conversion is less harsh
6783 than USER_CODE, for build_type_conversion.
6784
6785 * search.c (add_conversions): Function for passing to dfs_walk which
6786 adds all the type conversion operators in the current type to a list.
6787 (lookup_conversions): Calls dfs_walk with add_conversions and return
6788 the list.
6789 (dfs_walk): Don't require a qfn.
6790
6791 * cp-tree.h: Lose CLASSTYPE_CONVERSIONS hackery.
6792 (CLASSTYPE_FIRST_CONVERSION): Points to elt 1 of CLASSTYPE_METHOD_VEC.
6793
6794 * class.c (finish_struct_bits): Lose CLASSTYPE_CONVERSIONS hackery.
6795 (grow_method): A separate function for building onto the growing
6796 method vector.
6797 (finish_struct_methods): Use it. Put all type conversion operators
6798 right after the constructors. Perhaps we should sort the methods
f30432d7 6799 alphabetically?
e1cd6e56
MS
6800
6801Mon Jan 2 14:42:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6802
6803 * call.c (build_method_call): Lose another misleading shortcut.
6804
6805Fri Dec 30 17:57:30 1994 Mike Stump <mrs@cygnus.com>
6806
6807 * gc.c (build_bltn_desc): Handle bool as a built-in type.
6808
6809Fri Dec 30 14:20:21 1994 Mike Stump <mrs@cygnus.com>
6810
6811 * tree.c (layout_vbasetypes): Ensure that we don't loose alignment
6812 on the complete type because of small virtual bases.
255512c1 6813
8145f082
MS
6814Fri Dec 30 12:22:29 1994 Mike Stump <mrs@cygnus.com>
6815
6816 * decl.c (n_incomplete): Bump n_incomplete up to int to match C
6817 front end.
6818 (pushdecl): Also count decls pushed that are of a type being defined
6819 as incomplete things.
6820 * class.c (finish_struct): Move hack_incomplete_structures up to
6821 just after we set it as not being defined, so that the decls we
6822 build for RTTI don't count as incomplete.
6823
6824Thu Dec 29 18:20:57 1994 Mike Stump <mrs@cygnus.com>
6825
6826 * pt.c (tsubst): Fix problem with defining constructors in templated
6827 classes with virtual bases.
6828
6829Wed Dec 28 08:31:00 1994 Mike Stump <mrs@cygnus.com>
6830
6831 * parse.y (TYPEID): Strip top-level cv-qualifiers on typeid
6832 expressions.
6833 * gc.c (build_typeid): Ditto.
6834
6835Thu Dec 22 17:26:33 1994 Mike Stump <mrs@cygnus.com>
6836
6837 * cvt.c (build_up_reference): Fix breakage introduced on Nov 29,
6838 don't assert on complex AGGR inits.
6839
6840Thu Dec 22 14:32:31 1994 Mike Stump <mrs@cygnus.com>
6841
6842 * method.c (build_overload_value): Handle pointer to members as
6843 template arguments.
6844
6845Thu Dec 22 13:09:07 1994 Mike Stump <mrs@cygnus.com>
6846
6847 * typeck.c (unary_complex_lvalue): Don't call sorry if we know how
6848 to do take the address of a data member for a pointer to data
6849 member.
6850
6851Thu Dec 22 10:04:19 1994 Mike Stump <mrs@cygnus.com>
6852
6853 * decl.c (grokdeclarator): Use the typedef name for linkage if the
6854 type doesn't otherwise have a name.
6855
6856 * decl2.c (grokfield): Ditto.
6857
6858 * class.c (finish_struct): Since we reuse the TYPE_DECL for the
6859 DECL_NAME of enums, structs and classes, we have to avoid trying to
6860 put it in the TYPE_FIELDS again.
6861
6862Wed Dec 21 11:07:05 1994 Mike Stump <mrs@cygnus.com>
6863
6864 * decl2.c (check_classfn): Ignore this parameter on static functions
6865 when checking to see if we match.
6866
6867Tue Dec 20 17:47:02 1994 Mike Stump <mrs@cygnus.com>
6868
6869 * typeck.c (unary_complex_lvalue): Handle address of non-left most
6870 pointers to members by calling get_delta_difference.
6871
5edb8b93
MS
6872Mon Dec 19 22:40:53 1994 Mike Stump <mrs@cygnus.com>
6873
6874 * decl2.c (check_classfn): Don't use decls_match yet, as it modifies
6875 static functions to early.
6876
6877Thu Dec 19 22:37:48 1994 Mike Stump <mrs@cygnus.com>
6878
6879 * method.c (make_thunk): Handle encoding of positive thunk offsets.
6880
6881Sat Dec 17 13:29:50 1994 Doug Evans <dje@canuck.cygnus.com>
6882
6883 * Make-lang.in (.PHONY): Tell GNU make C++ and c++ are phony targets.
6884
6060a796
MS
6885Thu Dec 15 16:32:12 1994 Mike Stump <mrs@cygnus.com>
6886
6887 * decl2.c (check_classfn): Use decls_match to check if this has
6888 already been declared, as the DECL_ASSEMBLER_NAME may have been
6889 changed via asm("new_name").
6890 * decl.c (decls_match): Make public.
6891
6892Thu Dec 15 15:17:55 1994 Mike Stump <mrs@cygnus.com>
6893
6894 * *.[chy] (expand_aggr_init) Add fourth argument to handle
6895 distinction between = init and (init) style of initializations.
6896 * *.[chy] (finish_decl): Add fifth argument to to handle
6897 distinction between = init and (init) style of initializations.
6898
6899Tue Dec 13 19:16:05 1994 Mike Stump <mrs@cygnus.com>
6900
6901 Fix some random `explicit' bugs.
6902
6903 * cvt.c (convert_to_reference): Add third parameter to
6904 convert_force.
6905 (convert_force): Ditto.
6906 * call.c (build_method_call): Ditto.
6907 * decl2.c (setup_vtbl_ptr): Ditto.
6908 * init.c (expand_virtual_init): Ditto.
6909 (build_member_call): Ditto.
6910 (build_delete): Ditto.
6911 (build_vbase_delete): Ditto.
6912 * typeck.c (build_component_addr): Ditto.
6913 (build_c_cast): Ditto.
6914 (build_modify_expr): Ditto.
6915 * cp-tree.h (CONV_NONCONVERTING): Ditto. Add so that we can
6916 distinguish the context in which the conversion appears. Add thrid
6917 argument to build_c_cast.
6918 * cvt.c (cp_convert): Pass whether or not we want to consider
6919 non-converting constructors down to build_method_call.
6920 * decl2.c (reparse_absdcl_as_casts): Add third argument to
6921 build_c_cast.
6922 * gc.c (build_m_desc): Ditto.
6923 * init.c (build_new): Ditto.
6924 * parse.y (expr_no_commas): Ditto.
6925 (primary): Ditto.
6926 * typeck.c (build_x_function_call): Ditto.
6927 (build_static_cast): Ditto.
6928 (build_reinterpret_cast): Ditto.
6929 (build_const_cast): Ditto.
6930 (build_c_cast): Ditto.
6931 (build_ptrmemfunc): Ditto.
6932 * typeck2.c (build_functional_cast): Ditto.
6933 * init.c (expand_aggr_init): Added LOOKUP_ONLYCONVERTING to
6934 expand_aggr_init_1 as inits are converted to the destination type.
6935
6936Tue Dec 13 16:18:57 1994 Jason Merrill <jason@phydeaux.cygnus.com>
6937
6938 * Make-lang.in (cc1plus): Depends on c-pragma.o.
6939
6940 * Makefile.in (OBJ{DEP,}S): Add ../c-pragma.o.
6941
6942 * lex.c (check_newline): If the #pragma is not recognized by g++,
6943 try machine-specific ones too.
6944 (handle_sysv_pragma): Copied from c-lex.c.
6945
6946Mon Dec 12 23:53:06 1994 Mike Stump <mrs@cygnus.com>
6947
6948 * except.c (expand_throw): Fix Dec 6th change, build_new likes a
6949 reference better.
6950
6951Mon Dec 12 18:01:00 1994 Jason Merrill <jason@phydeaux.cygnus.com>
6952
6953 * typeck.c (build_binary_op): Lose checks on TYPE_PTRMEMFUNC_P with
6954 IS_AGGR_TYPE, since now they will not both be set on the same type.
6955
6956 * pt.c (do_pending_expansions): Don't clear TREE_PUBLIC on
6957 instantiations controlled by -fexternal-templates.
6958
6959 * decl.c (duplicate_decls): Don't complain about different values of
6960 __attribute__ ((const)) and ((noreturn)).
6961
81cdf787
DE
6962Fri Dec 9 18:17:37 1994 Doug Evans <dje@cygnus.com>
6963
6964 * Makefile.in (BISONFLAGS): Delete --yacc.
6965 (PARSE_H): Depend on $(PARSE_C), for parallel makes.
6966 (PARSE_C): Undo last patch.
6967
be99da77 6968Fri Dec 2 10:44:36 1994 Mike Stump <mrs@cygnus.com>
30ffea6b 6969
3526f730 6970 * Makefile.in (BISONFLAGS): Add --yacc so that output winds up in
30ffea6b
MS
6971 y.tab.c.
6972
6060a796
MS
6973Thu Dec 8 17:39:46 1994 Jason Merrill <jason@phydeaux.cygnus.com>
6974
6975 * decl.c (finish_decl): Don't call obscure_complex_init for decls
6976 of indeterminate size.
6977
6978Wed Dec 7 16:49:22 1994 Jason Merrill <jason@phydeaux.cygnus.com>
6979
6980 * decl.c (obscure_complex_init): Function to tweak the decl to
6981 prevent expand_decl from tring to initialize it.
6982 (finish_decl): Use it rather than writing the same code in three
6983 different places.
6984
6985 * parse.y (bad_parm): Stop trying to support parms without types.
6986
6987Wed Dec 7 12:06:56 1994 Mike Stump <mrs@cygnus.com>
6988
6989 * decl2.c (grokfield): Make asm specs on static member functions
6990 work.
6991
6992Tue Dec 6 15:43:20 1994 Mike Stump <mrs@cygnus.com>
6993
6994 * except.c (expand_throw): Make a copy of the thrown object.
6995
6996Tue Dec 6 14:16:34 1994 Jason Merrill <jason@phydeaux.cygnus.com>
6997
6998 * parse.y: : has lower precedence than =.
6999
7000Tue Dec 6 12:46:17 1994 Mike Stump <mrs@cygnus.com>
7001
7002 * decl.c (pushdecl): Use DECL_NAME of VAR_DECLs to avoid namespace
7003 manglings.
7004 (grokvardecl): Add namespace into variable name.
7005
7006Tue Dec 6 11:26:55 1994 Mike Stump <mrs@cygnus.com>
7007
7008 * decl2.c (current_namespace_id): New routine to transform a simple
7009 name into a name in a namespace.
7010 * decl.c (grokdeclarator): Use it.
7011 * decl2.c (get_namespace_id): Find the name of the current
7012 namespace.
7013 (push_namespace, pop_namespace): Complete out missing
7014 functionality.
7015
7016Mon Dec 5 17:11:51 1994 Jason Merrill <jason@phydeaux.cygnus.com>
7017
7018 * class.c (finish_struct): Don't use LONG_LONG_TYPE_SIZE, as it may
7019 not be defined. Fix warning message for enums and restore warning
7020 for non-enums.
7021
7022 * decl2.c (push_namespace): Dummy function.
7023 (pop_namespace): Ditto.
7024 (do_namespace_alias): Ditto.
7025 (do_using_decl): Ditto.
7026 (do_using_directive): Ditto.
7027
7028 * parse.y: New token NSNAME for namespace names.
7029 (extdef): Add namespace, using definitions.
7030 (using_decl): New rule for using declarations.
7031 (any_id): New rule for identifiers with any degree of scoping.
7032 (identifier): Add NSNAME.
7033 (notype_identifier): Ditto.
7034 (component_decl): Add using_decl.
7035 (nested_name_specifier): Add NSNAME SCOPE.
7036
7037 * typeck.c (convert_for_assignment): Handle conversions between
7038 enums and bool.
7039
7040 * decl.c (duplicate_decls): Only propagate DECL_MAIN_VARIANT on
7041 FUNCTION_DECLs.
7042
7043Mon Dec 5 13:03:16 1994 Mike Stump <mrs@cygnus.com>
7044
7045 * class.c (finish_struct): Give an error if one tries to declare a
7046 bit-field's size greater than a long long, as the backend will dump.
7047 It is not an error to declare an enum bit-field greater than its
7048 precision. Warn if an enum bit-field is too small to hold all
7049 its values.
7050
7051Mon Dec 5 11:41:50 1994 Mike Stump <mrs@cygnus.com>
7052
7053 * typeck.c (convert_for_assignment): Use cp_convert instead of
7054 convert so that we don't get static casts.
7055
7056Sun Dec 4 11:59:01 1994 Mike Stump <mrs@cygnus.com>
7057
7058 * cvt.c (cp_convert): Don't complain about int->enum conversion if
7059 we are doing static casts.
7060
7061Fri Dec 2 18:32:41 1994 Mike Stump <mrs@cygnus.com>
7062
7063 * error.c (dump_expr): Do something more intelligent with SAVE_EXPRs
7064 when dumping expressions in error messages.
7065
7066Fri Dec 2 17:04:27 1994 Mike Stump <mrs@cygnus.com>
7067
7068 * gc.c (build_dynamic_cast): Change interface to libg++, ensure that
f30432d7 7069 the return type is the right type, and make references work.
6060a796
MS
7070
7071Fri Dec 2 16:36:43 1994 Jason Merrill <jason@phydeaux.cygnus.com>
7072
7073 * decl.c (poplevel): Don't be confused by function-scope
7074 declarations of non-nested functions.
7075 (duplicate_decls): Propagate DECL_MAIN_VARIANT.
7076 (pushdecl): Use duplicate_decls to copy info from old decl into new
7077 function-scope one rather than doing it here.
7078
7079 * decl2.c (mark_inline_for_output): Deal with the DECL_MAIN_VARIANT
7080 of this decl, in case this is a function-scope declaration.
7081
7082 * decl.c (finish_enum): Make sure that the type has the right
7083 precision when we call fixup_*_type.
7084
7085Tue Nov 29 19:12:07 1994 Jason Merrill <jason@phydeaux.cygnus.com>
7086
7087 * cvt.c (build_up_reference): Strip superfluous NOP_EXPRs; we do
7088 want to build up references to rvalues if possible.
7089 (cp_convert): Stick on a NOP_EXPR when converting to the same type.
7090
7091Tue Nov 29 11:28:59 1994 Mike Stump <mrs@cygnus.com>
7092
7093 * parse.y (maybe_raises): Handle throw ().
7094 * parse.y (ansi_raise_identifier): grok type-ids in exception
7095 specifications.
7096 * tree.c (build_exception_variant): Use list compare to check if
7097 two exception specifications match.
7098 * decl.c (duplicate_decls, bad_specifiers): Enhance wording on error
7099 messages.
7100 * call.c (build_method_call): Remove TREE_RAISES.
7101 * cvt.c (convert_to_aggr): Ditto.
7102 * typeck.c (build_function_call_real, convert_arguments): Ditto.
7103 * init.c (expand_aggr_init_1): Ditto.
7104
7105Tue Nov 29 09:50:39 1994 Mike Stump <mrs@cygnus.com>
7106
7107 * except.c: Add support for m68k and mips exception handling
7108 support.
7109
7110Tue Nov 29 08:48:33 1994 Mike Stump <mrs@cygnus.com>
7111
7112 * except.c (expand_end_all_catch): Throw into outer context, if we
7113 fall off end of catch handlers.
7114
db5ae43f
MS
7115Mon Nov 28 16:44:41 1994 Mike Stump <mrs@cygnus.com>
7116
7117 * Makefile.in: Make is easier to decide where parse.[ch] will be
7118 built.
7119
af824546
DE
7120Thu Nov 17 20:11:24 1994 Doug Evans <dje@cygnus.com>
7121
7122 * cp/Make-lang.in (CXX_INSTALL_NAME) Use program_transform_name.
7123 (GXX_INSTALL_NAME) Likewise.
7124 (CXX_CROSS_NAME) Use program_transform_cross_name.
7125 (GXX_CROSS_NAME) Likewise.
7126 (c++.install-man): Use program_transform_name on g++.1.
7127 (c++.uninstall): Likewise.
7128
db5ae43f
MS
7129Mon Nov 28 13:53:03 1994 Mike Stump <mrs@cygnus.com>
7130
7131 * parse.y (THROW): Fix precedence of throw expressions.
7132
7133Mon Nov 28 13:15:16 1994 Mike Stump <mrs@cygnus.com>
7134
7135 * typeck.c (build_unary_op): Allow promotions from bool to int on
7136 unary ~.
7137
7138Sun Nov 27 00:16:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
7139
7140 * method.c (build_overload_name): Use DECL_ASSEMBLER_NAME for
7141 classes when appropriate.
7142 (build_overload_nested_name): When dealing with a function context,
7143 use ASM_FORMAT_PRIVATE_NAME to tweak the name of the function to
7144 avoid conflicts between local classes of the same name.
7145
7146Wed Nov 23 17:59:42 1994 Mike Stump <mrs@cygnus.com>
7147
7148 * gxx.gperf, parse.y, lex.h, hash.h, lex.c (init_lex), delc.c
7149 (duplicate_decls, grokdeclarator), cp-tree.h: Add support for
7150 `explicit'.
7151 * cvt.c (convert_to_reference, cp_convert, build_type_conversion_1,
7152 build_type_conversion): Use LOOKUP_ONLYCONVERTING in
7153 build_method_calls so that non-converting constructors are not used.
7154 * call.c (build_method_call): If we shouldn't use a non-converting
7155 constructor, then don't.
7156
7157Wed Nov 23 14:46:56 1994 Jason Merrill <jason@phydeaux.cygnus.com>
7158
7159 * call.c (build_method_call): Don't try to synthesize methods yet.
7160
7161Tue Nov 22 12:45:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
ea943e1d 7162
db5ae43f
MS
7163 * pt.c (push_template_decls): Create CONST_DECLs for template
7164 constant parameters, not VAR_DECLs.
7165
7166Sat Nov 19 15:28:31 1994 Jim Wilson (wilson@chestnut.cygnus.com)
7167
7168 * typeck.c (build_binary_op_nodefault): Can shorten shift only if
7169 shift count is less than size in bits of arg0.
7170
7171Thu Nov 17 15:30:50 1994 Mike Stump <mrs@cygnus.com>
7172
7173 * gxx.gperf, hash.h, lex.c (init_lex, real_yylex), parse.y: Add new
7174 ANSI keywords and, and_eq, bitand, bitor, explicit, namespace, not,
7175 not_eq, or, or_eq, typename, using, xor, xor_eq to g++. Still need
7176 to add support for explicit, namespace, typename, and using, support
7177 for the rest is already in.
7178
db5ae43f
MS
7179Fri Nov 4 19:04:18 1994 Mike Stump <mrs@cygnus.com>
7180
7181 * gc.c (get_bad_cast_node): New routine to support compile time
7182 throws of bad_cast.
7183 * gc.c (build_dynamic_cast): Support throwing of bad_cast at compile
7184 time.
7185
7186Fri Nov 4 11:12:00 1994 Mike Stump <mrs@cygnus.com>
7187
7188 * except.c: Add hppa support.
7189
7190Fri Nov 4 10:50:50 1994 Mike Stump <mrs@cygnus.com>
7191
7192 * except.c: Add rs6000 support.
7193
7194Thu Nov 3 14:24:23 1994 Mike Stump <mrs@cygnus.com>
7195
7196 * except.c (do_unwind): Add i[34]86 support.
7197
7198Thu Nov 3 00:10:46 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7199
7200 * pt.c (do_pending_expansions): Unset TREE_PUBLIC on implicit
7201 instantiations.
7202
7203Wed Nov 2 15:08:24 1994 Kung Hsu (kung@mexican.cygnus.com)
7204
14548a19 7205 * decl.c (finish_function): Emit types used in method parameters
db5ae43f
MS
7206 into symbol table.
7207
7208Wed Nov 2 15:05:47 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7209
7210 * pt.c (process_template_parm): Allow pointer to member function
7211 template parameter types.
7212 (uses_template_parms): Handle pointer to member function
7213 CONSTRUCTORs.
7214
7215 * g++.c (main): Cast first argument of bzero to (char *).
7216 Pass -lstdc++ instead of -lg++ unless we are invoked as 'g++'.
7217
7218Mon Oct 31 14:50:48 1994 Kung Hsu (kung@mexican.cygnus.com)
7219
7220 * gc.c (build_dynamic_cast): rewrite to make it work.
7221 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
7222 * class.c (modify_all_direct_vtables): ditto.
7223 * init.c (expand_direct_vtbls_init): expand more vtables if
7224 flag_rtti is on.
7225 * decl.c (init_type_desc): add default return.
7226
7227Tue Oct 25 17:13:09 1994 Kung Hsu (kung@mexican.cygnus.com)
7228
7229 * tree.c (debug_binfo): get rid of the initial size entry of
7230 vtable.
7231 * cp-tree.h: change flag_dossier to flag rtti, define type
7232 descriptor type nodes.
7233 * decl.c (init_type_desc): new function to initialize type
7234 descriptor type nodes.
7235 * decl.c (record_builtin_type): change flag_dossier to flag_rtti.
7236 * lex.c (init_lex): ditto.
7237 * decl.c : change variable flag_dossier to flag_rtti.
7238 * decl.c (duplicate_decls): get rid initial size entry of vtable.
7239 * decl.c (hack_incomplete_structures): take out assert 164.
7240 * search.c (get_abstract_virtuals_1): ditto.
7241 * search.c (dfs_init_vbase_pointers): change CLASSTYPE_DOSSIER to
7242 CLASSTYPE_RTTI.
7243 * parse.y: ditto.
7244 * class.c (prepare_fresh_vtable): for virtual bases, get right
7245 offset.
7246 * class.c (add_virtual_function): change flag_dossier to
7247 flag_rtti.
7248 * class.c (modify_one_vtable): modify the right rtti entry.
7249 * class.c (override_one_vtable): get rid of size entry.
7250 * class.c (finish_struct): change flag_dossier to flag_rtti, and
7251 build extra vtables, build type descriptors for polymorphic
7252 classes.
7253 * gc.c (build_headof): make headof() works correctly with new
7254 rtti.
7255 * gc.c (build_typeid): make this function work with new rtti.
7256 * gc.c (get_typeid): make this function work with new rtti.
7257 * gc.c (build_bltn_desc): new function for new rtti.
7258 * gc.c (build_user_desc): ditto.
7259 * gc.c (build_class_desc): ditto.
7260 * gc.c (build_ptr_desc): ditto.
7261 * gc.c (build_attr_desc): ditto.
7262 * gc.c (build_func_desc): ditto.
7263 * gc.c (build_ptmf_desc): ditto.
7264 * gc.c (build_ptmd_desc): ditto.
7265 * gc.c (build_t_desc): ditto.
7266 * gc.c : comment out old build_t_desc, build_i_desc, build_m_desc.
7267
7268Tue Oct 25 13:37:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7269
7270 * call.c (convert_harshness): Check for TREE_UNSIGNED differences
7271 after checking for integral conversions.
ea943e1d 7272
72b7eeff
MS
7273Wed Nov 30 19:13:50 1994 Mike Stump <mrs@cygnus.com>
7274
7275 * Version 2.6.3 released.
7276
7277Thu Nov 17 10:56:50 1994 Jason Merrill <jason@phydeaux.cygnus.com>
7278
7279 * typeck2.c (build_m_component_ref): Check the basetype of the
7280 member pointer against the main variant of the object type.
7281
7282Mon Nov 14 14:21:52 1994 Jason Merrill <jason@phydeaux.cygnus.com>
7283
7284 * cvt.c (convert_to_reference): Make sure that the original expr
7285 gets its type back when converting a reference.
7286
7287 * method.c (build_overload_name): Clear numeric_outputed_need_bar here.
7288 (build_decl_overload): Instead of here.
7289
7290Tue Nov 8 17:11:24 1994 Jason Merrill <jason@phydeaux.cygnus.com>
7291
7292 * cvt.c (cp_convert): Don't build a TARGET_EXPR if we're not in a
7293 function.
7294
7295 * typeck.c (convert_for_initialization): Handle initialization from
7296 a TARGET_EXPR.
7297
7298Sun Nov 6 01:34:24 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7299
7300 * pt.c (lookup_nested_type_by_name): Fix list-walking logic.
7301 (tsubst): When replacing a TEMPLATE_TYPE_PARM, propagate
7302 TYPE_READONLY and TYPE_VOLATILE from the argument.
7303 (unify): When unifying with a TEMPLATE_TYPE_PARM, remove cv-quals
7304 present in parm from arg.
7305 (type_unification): Strip REFERENCE_TYPE from the argument type.
7306 (unify): Don't strip REFERENCE_TYPE from the argument type.
7307
7308Sat Nov 5 22:42:15 1994 Greg McGary (gkm@magilla.cichlid.com)
7309
7310 * pt.c (do_type_instantiation): Check to see if there's a
7311 IDENTIFIER_TEMPLATE on a class before calling
7312 instantiate_member_templates().
7313
7314Sat Nov 12 06:35:42 1994 Mike Stump <mrs@cygnus.com>
7315
7316 * Version 2.6.2 released.
7317
7318Thu Nov 3 18:48:19 1994 Paul Eggert <eggert@twinsun.com>
7319
7320 * Makefile.in (spew.o, lex.o, pt.o):
7321 Depend on $(srcdir)/parse.h, not parse.h.
7322
7323Tue Nov 1 19:19:41 1994 Mike Stump <mrs@cygnus.com>
7324
7325 * Version 2.6.1 released.
7326
eae89e04
JM
7327Sun Oct 23 13:19:55 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7328
db5ae43f
MS
7329 * decl2.c: Declare flag_access_control.
7330 (struct lang_f_options): Add access-control.
7331 * expr.c (cplus_expand_expr, NEW_EXPR): Unset flag_access_control
7332 for the call to expand_aggr_init to copy the object out of the
7333 pcc_struct_return slot.
7334 * search.c (compute_access): if (!flag_access_control) return
7335 access_public.
eae89e04
JM
7336
7337Fri Oct 21 00:32:54 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7338
db5ae43f
MS
7339 * lex.c (cons_up_default_function): Don't try to defer method
7340 synthesis now.
7341
7342 * decl.c (init_decl_processing): Use __pure_virtual for abort_fndecl
7343 instead of abort, since the OSF/1 dynamic linker doesn't like to see
7344 relocation entries for abort.
eae89e04 7345
db5ae43f
MS
7346 * tree.c (array_type_nelts_total): Use sizetype, not
7347 integer_type_node.
7348 (array_type_nelts_top): Ditto.
7349
7350Thu Oct 20 15:48:27 1994 Mike Stump <mrs@cygnus.com>
7351
7352 * decl.c (grokdeclarator): Added handling for catch parameters
7353 (CATCHPARM).
7354 * except.c (expand_start_catch_block): Use the new CATCHPARM context
7355 instead of NORMAL.
7356 * except.c (expand_throw): Don't let convert_to_reference complain
7357 about what we are doing.
7358
7359Thu Oct 20 12:55:24 1994 Jim Wilson (wilson@cygnus.com)
7360
7361 * method.c (emit_thunk): Call instantiate_virtual_regs.
7362
7363Wed Oct 19 14:15:33 1994 Mike Stump <mrs@cygnus.com>
7364
7365 * except.c (expand_exception_blocks): Make sure throw code doesn't
7366 get put in function that won't be output.
eae89e04
JM
7367
7368Mon Oct 17 18:03:15 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7369
db5ae43f
MS
7370 * decl.c (init_decl_processing): Make alloca a builtin.
7371
7372Thu Oct 27 21:10:25 1994 Craig Burley (craig@burley)
7373
7374 * g++.c (main): Only decrement "added" and set "library" to
7375 NULL when "library" != NULL (just like 940829 fix).
eae89e04 7376
c199879d
MS
7377Mon Oct 17 15:56:11 1994 Mike Stump <mrs@cygnus.com>
7378
7379 * except.c (expand_start_catch_block): Make sure the false label
7380 gets onto the permanent obstack, as it is used for the exception
7381 table.
7382
13306d4f
MS
7383Fri Oct 14 18:54:48 1994 Mike Stump <mrs@cygnus.com>
7384
7385 * class.c (modify_one_vtable): Since the DECL_CONTEXT of fndecl can
7386 be set just below, use current_fndecl instead.
7387
db5ae43f
MS
7388Fri Oct 14 15:12:22 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7389
7390 * init.c (expand_aggr_vbase_init_1): Don't call expand_aggr_init_1
7391 with LOOKUP_SPECULATIVELY.
7392 (expand_default_init): Abort if build_method_call returns NULL_TREE.
7393
7394 * typeck.c (build_modify_expr): Don't just build a MODIFY_EXPR if
7395 the rhs is a TARGET_EXPR.
7396
7397 * parse.y (left_curly): Anonymous types are not affected by #pragma
7398 interface/implementation.
7399
7400 * method.c (synthesize_method): Don't call setup_vtbl_ptr for the
7401 default constructor if it isn't needed.
7402
7403 * lex.c (cons_up_default_function): Do synthesize methods for
7404 anonymous types if necessary.
7405
2f4f907d
JM
7406Thu Oct 13 17:44:55 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7407
db5ae43f 7408 * method.c (build_decl_overload): Set numeric_outputed_need_bar to 0.
2f4f907d
JM
7409
7410Wed Oct 12 13:27:57 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7411
db5ae43f
MS
7412 * typeck.c (build_modify_expr): Understand how to copy an aggregate.
7413
7414 * init.c (expand_default_init): Ditto. Also remove some of the
7415 crufty code that assumes methods will not be synthesized properly.
7416
7417 * lex.c (cons_up_default_function): If the containing type has no
7418 name, these functions should never need to be called, so just
7419 declare them.
2f4f907d 7420
db5ae43f
MS
7421 * lex.c (real_yylex): Use HOST_BITS_PER_WIDE_INT to determine the
7422 bitmask for lexing character constants.
7423
7424 * call.c (build_method_call): Disable code that tries to do tricky
7425 stuff with a default parameter that is a constructor call, but
7426 actually does other tricky stuff that breaks things.
2f4f907d
JM
7427
7428Wed Oct 12 16:14:01 1994 Benoit Belley <belley@cae.ca>
7429
db5ae43f
MS
7430 * decl.c (finish_enum): Disable code which forces enums to be signed,
7431 since this conflicts with their use as bitfields. type_promotes_to
7432 handles promotion of enums of underlying unsigned types to signed
7433 integer types.
2f4f907d
JM
7434
7435Wed Oct 12 13:24:03 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7436
db5ae43f
MS
7437 * cvt.c (type_promotes_to): Also promote enums to long if
7438 appropriate.
2f4f907d 7439
db5ae43f
MS
7440 * typeck.c (default_conversion): Don't expect type_promotes_to to
7441 return a main variant.
2f4f907d
JM
7442
7443Wed Oct 12 12:19:45 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7444
db5ae43f
MS
7445 * call.c (build_scoped_method_call): Don't lose side effects in the
7446 object expression when calling a non-existent destructor.
2f4f907d
JM
7447
7448Fri Sep 2 19:05:21 1994 Rohan Lenard (rjl@iassf.easams.com.au)
7449
db5ae43f
MS
7450 * call.c (build_scoped_method_call): Remove erroneous error message
7451 when destructor call is written as a scoped call.
2f4f907d 7452
252b87c7 7453Tue Oct 11 23:48:31 1994 Jason Merrill (jason@phydeaux.cygnus.com)
db5ae43f
MS
7454
7455 * various: Cast pointer arguments to bzero and bcopy to char *.
252b87c7 7456
13306d4f
MS
7457Tue Oct 11 19:34:32 1994 Mike Stump <mrs@cygnus.com>
7458
7459 * class.c (get_derived_offset): Added a type parameter to limit how
7460 far up the CLASSTYPE_VFIELD_PARENT chain we search.
7461 * class.c (modify_one_vtable, fixup_vtable_deltas): When forming the
7462 offset to put into the vtable for the this parameter, make sure we
7463 don't offset from a parent of the DECL_CONTEXT of the function.
7464
db5ae43f
MS
7465Tue Oct 11 16:10:52 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7466
7467 * pt.c (do_function_instantiation): Set DECL_EXTERNAL and
7468 TREE_STATIC when setting DECL_INTERFACE_KNOWN.
7469 (do_type_instantiation): Ditto.
7470
7471 * lex.c (cons_up_default_function): Set DECL_INTERFACE_KNOWN,
7472 DECL_EXTERNAL and TREE_STATIC as appropriate.
7473
7474 * decl2.c (finish_file): Also synthesize methods that don't have
7475 DECL_EXTERNAL set. Set interface_unknown before doing so.
7476
7477 * decl.c (start_function): If DECL_INTERFACE_KNOWN is set on the
7478 function decl, don't muck with TREE_PUBLIC and DECL_EXTERNAL.
7479
cba8ba35
JM
7480Mon Oct 10 00:56:53 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7481
db5ae43f
MS
7482 * lex.c (cons_up_default_function): Mark methods in a template class
7483 as template instances. Store the values of interface_unknown and
7484 interface_only for do_pending_inlines.
7485 (do_pending_inlines): Use them.
7486
7487 * decl2.c (finish_file): If we haven't seen a definition of a
7488 function declared static, make the decl non-PUBLIC so compile_file
7489 can give an error.
cba8ba35
JM
7490
7491Sun Oct 9 02:42:29 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7492
db5ae43f
MS
7493 * method.c (do_build_copy_constructor): Handle anonymous unions.
7494 (do_build_assign_ref): Ditto.
7495 (largest_union_member): Move from lex.c.
7496
7497Sat Oct 8 14:59:43 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7498
7499 Re-implement g++'s vague linkage independent of TREE_PUBLIC.
7500 * pt.c (instantiate_member_templates): Lose redundant
7501 -fexternal-templates handling.
7502 (tsubst): Set TREE_PUBLIC and DECL_EXTERNAL on new decls. Don't set
7503 TREE_STATIC or DECL_INTERFACE_KNOWN.
7504 (do_pending_expansions): Predicate on DECL_INTERFACE_KNOWN instead
7505 of DECL_EXTERNAL for explicit instantiations.
7506 (do_function_instantiation): Do the new thing.
7507 (do_type_instantiation): Ditto.
7508 (instantiate_template): Deal with member templates defined in a .cc
7509 file with -fexternal-templates.
7510 * except.c (expand_exception_blocks): Use DECL_LINKAGE_KNOWN to
7511 decide whether to stick builtin_throw here.
7512 * decl2.c (import_export_inline): Predicate on DECL_INTERFACE_KNOWN
7513 rather than TREE_PUBLIC. Generally fix rules.
7514 (finish_file): Use DECL_INITIAL to determine whether or not a method
7515 has been synthesized, rather than TREE_ASM_WRITTEN.
7516 * decl.c (warn_extern_redeclared_static): Use DECL_PUBLIC instead of
7517 TREE_PUBLIC.
7518 (pushdecl): Ditto.
7519 (duplicate_decls): Ditto. Deal with DECL_DECLARED_STATIC and
7520 DECL_INTERFACE_KNOWN.
7521 (redeclaration_error_message): Fix checking for conflicting linkage.
7522 (define_function): Set DECL_INTERFACE_KNOWN.
7523 (grokfndecl): Function decls are PUBLIC until we are sure about
7524 their linkage. Set DECL_DECLARED_STATIC as needed.
7525 (start_function): Deal with linkage. Move pushdecl after linkage
7526 magic.
7527 (finish_function): Don't set TREE_ASM_WRITTEN on discarded inlines.
7528 * cp-tree.h (lang_decl_flags): Add interface_known and
7529 declared_static.
7530 (DECL_INTERFACE_KNOWN): New macro.
7531 (DECL_DECLARED_STATIC): New macro.
7532 (DECL_PUBLIC): New macro.
7533
7534 Clean up bogus use of TREE_PUBLIC.
7535 * class.c (alter_access): Fix mistaken use of TREE_PUBLIC (it
7536 doesn't correspond to TREE_PROTECTED and TREE_PRIVATE).
7537 * init.c (do_friend): Don't arbitrarily set TREE_PUBLIC.
cba8ba35
JM
7538
7539Wed Oct 5 13:44:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7540
db5ae43f
MS
7541 * call.c (build_overload_call_real): Don't immediately do
7542 array->pointer conversion.
cba8ba35 7543
db5ae43f
MS
7544 * pt.c (type_unification): If not passing to a reference, strip
7545 cv-quals. Also handle array->pointer conversion.
cba8ba35
JM
7546
7547Tue Oct 4 17:45:37 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7548
db5ae43f
MS
7549 * decl.c (grokdeclarator): Don't warn about applying const to a
7550 const typedef or template type parameter.
7551
7552 * decl2.c (finish_file): Also synthesize methods after walking the
7553 vtables. Ugly ugly ugly.
cba8ba35
JM
7554
7555Mon Oct 3 15:02:41 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7556
db5ae43f
MS
7557 * various: Remove lingering remnants of old exception handling code.
7558
7559 * decl2.c (finish_file): Synthesize methods before walking the
7560 vtables, so that the vtables get emitted as needed.
7561
7562 * decl.c (shadow_tag): Remove obsolete code for pushing tags and
7563 dealing with exceptions.
7564
7565Mon Oct 3 13:05:27 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
7566
7567 * Make-lang.in (g++-cross): Depend upon version.o and $(LIBDEPS).
7568
7569Mon Oct 3 02:59:28 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7570
7571 * decl2.c (finish_file): Fix inline handling.
cba8ba35
JM
7572
7573Sun Oct 2 00:21:56 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7574
db5ae43f
MS
7575 * decl.c (grokdeclarator): Handle redundant scope even better.
7576 ({push,pop}_cp_function_context): Take toplev parameter.
cba8ba35 7577
db5ae43f
MS
7578 * method.c (synthesize_method): Pass toplev parameter to
7579 {push,pop}_cp_function_context depending on decl_function_context
7580 (fndecl).
cba8ba35 7581
db5ae43f
MS
7582 * typeck.c (build_x_unary_op): Unary & on OFFSET_REFs is always the
7583 built-in version.
cba8ba35 7584
db5ae43f
MS
7585 * method.c (synthesize_method): Don't be confused by __in_chrg
7586 parameter.
b3738072 7587
db5ae43f 7588 * class.c (popclass): Set C_C_D like start_function does.
b3738072 7589
db5ae43f 7590 * decl.c (grokdeclarator): Handle redundant scope better.
81613e43 7591
db5ae43f
MS
7592 * parse.y (expr_or_declarator): Add '(' expr_or_declarator ')' rule.
7593 (direct_notype_declarator): Ditto.
7594 (complex_direct_notype_declarator): Remove it here.
81613e43 7595
db5ae43f 7596Sat Oct 1 21:42:18 1994 Jason Merrill (jason@deneb.cygnus.com)
44c5421f 7597
db5ae43f
MS
7598 * init.c (resolve_offset_ref): Fix types used in resolving .*
7599 expressions.
7600
7601Sat Oct 1 15:18:49 1994 Jason Merrill (jason@phydeaux.cygnus.com)
7602
7603 Beginnings of work to synthesize methods only when needed.
7604 * call.c (build_method_call): Synthesize methods as necessary
7605 (currently never necessary).
7606 * class.c (popclass): Don't try to set C_C_D here, as it'll end up
7607 on the wrong obstack.
7608 * decl.c (push_cp_function_context): Mostly copied from
7609 push_c_function_context.
7610 (pop_cp_function_context): Similarly.
7611 (finish_function): Reverse order of poplevel and pop_nested_class so
7612 that current_class_decl is restored properly.
7613 (start_function): Ditto.
7614 (finish_function): Add parameter 'nested'. Don't call
7615 permanent_allocation if (nested).
7616 * various: Pass extra parameter to finish_function.
7617 * decl2.c (finish_file): Reorganize end-of-file inline handling,
7618 synthesizing methods as necessary.
7619 * lex.c (cons_up_default_function): Call mark_inline_for_output.
7620 Only synthesize methods immediately if #pragma implementation
7621 (currently disabled).
7622 (do_pending_inlines): Call synthesize_method.
7623 * method.c (synthesize_method): New function; all method synthesis
7624 goes through here. Calls do_build_assign_ref and
7625 do_build_copy_constructor.
7626 (build_default_constructor): Remove.
7627 (build_dtor): Ditto.
7628 (build_assign_ref): Rename to do_build_assign_ref and remove stuff
7629 done by synthesize_method.
7630 (build_copy_constructor): Similarly.
44c5421f 7631
eac293a1
MS
7632Thu Sep 29 16:58:52 1994 Mike Stump <mrs@cygnus.com>
7633
7634 * typeck.c (c_expand_return): Use magic so the backend can fixup the
7635 assignment into the return register, so cleanups won't clobber it.
7636
7637Thu Sep 29 13:08:50 1994 Jason Merrill (jason@deneb.cygnus.com)
7638
7639 * method.c (hack_identifier): Don't call assemble_external for
7640 template decls.
7641
7642 * decl.c (finish_decl): Also end temporary allocation if the decl in
7643 question has a type of error_mark_node.
7644
6060a796 7645Wed Sep 28 21:45:00 1994 Mike Stump <mrs@cygnus.com>
eac293a1
MS
7646
7647 * typeck.c (build_modify_expr): When optimizing ?: on lhs, make sure
7648 that if the ?: was a reference type, that the subparts will be also.
7649
7650Wed Sep 28 16:14:04 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7651
7652 * except.c (register_exception_table): Use Pmode, not PTRmode.
7653
7654Fri Sep 23 13:54:27 1994 Jason Merrill (jason@deneb.cygnus.com)
7655
7656 * lex.c (do_pending_inlines): Do method synthesis after the
7657 pending_inlines have been reversed.
7658
f376e137
MS
7659Thu Sep 22 12:53:03 1994 Per Bothner (bothner@kalessin.cygnus.com)
7660
7661 * decl2.c (finish_file): Fix Brendan's fix: Only call
7662 register_exception_table if there is a non-empty exception table.
7663
7664Thu Sep 22 12:03:46 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7665
7666 * decl2.c (finish_file): Only do register_exception_table if
7667 -fhandle-exceptions is being used.
7668
7669Wed Sep 21 19:01:51 1994 Per Bothner (bothner@kalessin.cygnus.com)
7670
7671 * except.c (output_exception_table_entry): Simplify
7672 by using assemble_integer.
7673 (build_exception_table): Change to return a count.
7674 Cleanup to use standard macros, instead of hard-wired
7675 sparc asm format. Don't make __EXCEPTION_TABLE__ global.
7676 (register_exception_table): New function. Generate call to builtin.
7677 * decl2.c (finish_file): Call register_exception_table.
7678 * cp-tree.h (build_exception_table): Fix prototype.
7679
7680Wed Sep 21 13:20:42 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7681
7682 * tree.c (break_out_calls): Don't try to duplicate the DECL_INITIAL.
7683
7684 * decl2.c (delete_sanity): Give an error at trying to delete a
7685 function.
7686
7687Wed Sep 21 11:47:10 1994 Jason Merrill (jason@deneb.cygnus.com)
7688
7689 * lex.c (cons_up_default_function): Mark synthesized destructors
7690 inline.
7691
7692 * decl.c (duplicate_decls): Ignore redeclarations of wchar_t as
7693 something other than __wchar_t, complaining if -pedantic and not in
7694 a system header.
7695
7696Tue Sep 20 09:43:28 1994 Jason Merrill (jason@deneb.cygnus.com)
7697
7698 * decl.c (xref_tag): Set up BINFO_INHERITANCE_CHAIN on base binfos
7699 here.
7700
7701 * typeck.c (build_modify_expr): Require complete type after checking
7702 for error_mark_node.
7703
7704 * call.c (build_method_call): Print parmtypes when complaining of
7705 ambiguous call.
7706
7707 * typeck.c (build_modify_expr): Handle assignment to array from
7708 non-array.
7709
7710 * decl.c (lookup_name_real): Deal with got_scope == error_mark_node.
7711
7712 * call.c (build_method_call): Don't bother with the exact match.
7713
7714Mon Sep 19 00:51:39 1994 Jason Merrill (jason@deneb.cygnus.com)
7715
7716 * init.c (expand_aggr_init): If we munge the type of the variable,
7717 also munge the type of the initializer.
7718
7719 * decl.c (grokdeclarator): Use <= when comparing to RID_LAST_MODIFIER.
7720 (init_decl_processing): Push artificial declaration of wchar_t so
7721 people don't have to declare it before they can use it.
7722
7723 * error.c (cp_line_of): return lineno in lieu of 0.
7724
7725 * typeck.c (convert_for_assignment): Handle conversion of pmfs to
7726 int and bool.
7727 (build_component_ref): Fold the COMPONENT_REF in case it can be
7728 reduced.
7729
7730 * typeck2.c (store_init_value): Don't pedwarn about non-constant
7731 bracketed initializers for automatic variables.
7732
7733Sun Sep 18 10:12:12 1994 Jason Merrill (jason@deneb.cygnus.com)
7734
7735 * error.c (dump_decl): Don't say `typedef enum foo foo'.
7736
7737 * decl.c (start_decl): Don't set TREE_PUBLIC on template decls just
7738 because they're affected by #pragma i/i. We'll deal with that when
7739 they get instantiated.
7740
7741 * typeck.c (build_unary_op): Clean up cruft in ADDR_EXPR case.
7742
7743 * class.c (instantiate_type): Set TREE_CONSTANT on instantiated
7744 ADDR_EXPRs if appropriate.
7745
7746 * decl.c (build_ptrmemfunc_type): Unset IS_AGGR_TYPE on pmf types.
7747
7748 * typeck.c (build_ptrmemfunc): Handle &overloaded_method as an
7749 initializer properly.
7750 * typeck2.c (digest_init): Ditto.
7751
7752 * tree.c (cp_build_type_variant): Like c_build_type_variant, except
7753 it uses build_cplus_array_type.
7754 * *.c: Use cp_build_type_variant instead of c_build_type_variant.
7755
7756 * pt.c (do_type_instantiation): Don't try to instantiate nested
db5ae43f 7757 enums.
f376e137
MS
7758
7759Tue Sep 13 10:56:58 1994 Jason Merrill (jason@deneb.cygnus.com)
7760
7761 * cvt.c (build_up_reference): Handle preincrement and predecrement
db5ae43f 7762 properly.
f376e137
MS
7763
7764Tue Sep 13 09:51:59 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7765
7766 * decl.c (finish_decl): Only lay out the rtl for DECL if it is, in
7767 fact, static.
7768
7769Mon Sep 12 14:40:30 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7770
7771 * decl.c (finish_decl): Lay out the rtl for DECL before doing
7772 grok_reference_init, in case it's static.
7773
7774Mon Sep 12 12:45:38 1994 Jason Merrill (jason@deneb.cygnus.com)
7775
7776 * class.c (finish_struct): Don't synthesize constructors if the
7777 class has a field with the same name as the class. Don't die on
7778 classes with no constructors or destructors. Don't die if the head
7779 and tail of the class are in different files.
7780
7781 * decl.c (grokdeclarator): Don't treat a function pointer field
7782 with the same name as the class as a constructor.
7783
7784Fri Sep 9 13:17:00 1994 Jason Merrill (jason@deneb.cygnus.com)
7785
7786 * typeck.c (build_c_cast): Pull constant values out of their
7787 variables here.
7788
7789 * decl.c (duplicate_decls): Only propagate DECL_CHAIN in
7790 FUNCTION_DECLs and TEMPLATE_DECLs.
7791
7792Thu Sep 8 10:07:48 1994 Jason Merrill (jason@deneb.cygnus.com)
7793
7794 * decl.c (duplicate_decls): Propagate DECL_CHAIN in all DECLs that
7795 have it.
7796
7797 * pt.c (unify): REALs and INTEGERs only unify with their own genus.
7798 (instantiate_member_templates): Don't muck with DECL_EXTERNAL and
7799 TREE_PUBLIC unless -fexternal-templates.
7800
7801Wed Sep 7 13:17:10 1994 Jason Merrill (jason@deneb.cygnus.com)
7802
7803 * pt.c (do_type_instantiation): Call instantiate_member_templates.
7804 Deal with specializations.
7805 (tsubst): Don't stick the mangled name in DECL_NAME for function
7806 instantiations. Don't push them, either.
7807
7808 * decl2.c (grokfield): Move code for generating the
7809 DECL_ASSEMBLER_NAME for static members from here.
7810 * method.c (build_static_name): To here.
7811 * decl.c (grokvardecl): Call build_static_name.
7812 (duplicate_decls): Keep old DECL_ASSEMBLER_NAME.
7813
7814Mon Sep 5 12:49:18 1994 Jason Merrill (jason@deneb.cygnus.com)
7815
7816 * call.c (build_method_call): if -Wsynth, warn when selecting
7817 synthesized op= over user-supplied one cfront would select.
7818 * decl2.c (lang_decode_option): Handle -Wsynth.
7819
7820Fri Sep 2 15:11:59 1994 Jason Merrill (jason@deneb.cygnus.com)
7821
7822 * decl.c (finish_enum): Overhaul to fix several bugs.
7823 (start_enum): Disable useless code.
7824
7825Thu Sep 1 16:04:54 1994 Jason Merrill (jason@deneb.cygnus.com)
7826
7827 * typeck.c (c_expand_return): Warn about returning a reference to a
7828 temporary.
7829 (convert_arguments): Increment argument counter when using default
7830 arguments, too.
7831
7832Wed Aug 31 14:29:22 1994 Jason Merrill (jason@deneb.cygnus.com)
7833
7834 * decl.c (finish_decl): If the type of decl is error_mark_node,
7835 don't bother trying to do anything.
7836
7837 * typeck.c (convert_for_initialization): If the rhs contains a
7838 constructor call, pretend the lhs type needs to be constructed.
7839
7840 * init.c (expand_default_init): If we stick the object inside the
7841 initializer, mark the initializer used.
7842
7843Tue Aug 30 13:50:18 1994 Jason Merrill (jason@deneb.cygnus.com)
7844
7845 * method.c (build_assign_ref): return *this;
7846 (build_assign_ref): Fix base assignment order.
7847 (build_copy_constructor): Fix member init order.
7848
7849Mon Aug 29 13:54:39 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7850
7851 * g++.c (main): Remember to clear out SAW_SPECLANG after we see
7852 its argument.
7853
7854Sat Aug 27 09:36:03 1994 Jason Merrill (jason@deneb.cygnus.com)
7855
7856 * method.c (build_copy_constructor): Also copy virtual bases.
7857
7858Fri Aug 26 17:05:15 1994 Jason Merrill (jason@deneb.cygnus.com)
7859
7860 * lex.c (do_pending_inlines): Clear out pending_inlines before doing
7861 any synthesis. Also first set deja_vu on all pending_inlines.
7862
7863 * method.c (build_assign_ref): Use build_member_call to invoke base
7864 operator=, rather than build_modify_expr. And use
7865 build_reference_type instead of TYPE_REFERENCE_TO.
7866 (build_copy_constructor): Use TYPE_NESTED_NAME to identify the
7867 basetype.
7868
7869 * decl2.c (grokfield): Don't complain about undefined local class
7870 methods.
7871
7872 * class.c (finish_struct): Don't try to synthesize methods here.
7873 * lex.c (do_pending_inlines): Instead, synthesize them here.
7874 (init_lex): Initialize synth_obstack.
7875 (cons_up_default_function): Stick synthesis request on
7876 pending_inlines.
7877
7878Fri Aug 26 12:24:14 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7879
7880 * call.c (build_method_call) [PCC_STATIC_STRUCT_RETURN]: Also
7881 accept an RTL_EXPR in what we're about to use for the instance,
7882 since anything which would end up with pcc_struct_return set
7883 inside cplus_expand_expr.
7884
7885 * cp-tree.h (cons_up_default_function): Note change of prototype.
7886
7887Thu Aug 25 23:05:30 1994 Gerald Baumgartner (gb@cs.purdue.edu)
7888
7889 * class.c (finish_struct): Undid change from Aug 21 testing
7890 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
7891 * parse.y (left_curly): Ditto, undid change from Aug 21.
7892 * decl.c (xref_tag): Undid change from Aug 21, set
7893 CLASSTYPE_INTERFACE correctly, and added comments.
7894
7895Thu Aug 25 00:36:31 1994 Jason Merrill (jason@deneb.cygnus.com)
7896
7897 Rework approach to synthesized methods; don't go through the parser
7898 anymore.
7899 * class.c (finish_struct): Use new synthesis approach.
7900 * lex.c (cons_up_default_function): Now just creates declaration,
7901 not code.
7902 (largest_union_member): #if 0 out.
7903 (default_assign_ref_body): Ditto.
7904 (default_copy_constructor_body): Ditto.
7905 * method.c (build_default_constructor): New function to synthesize X().
7906 (build_copy_constructor): Synthesize X(X&).
7907 (build_assign_ref): Synthesize X::operator=(X&).
7908 (build_dtor): Synthesize ~X().
7909
7910 * error.c (cp_line_of): If we're dealing with an artificial
7911 TYPE_DECL, look at the type instead.
7912
7913Wed Aug 24 11:11:50 1994 Jason Merrill (jason@deneb.cygnus.com)
7914
7915 * init.c (sort_member_init): Check warn_reorder.
7916 * decl2.c (lang_decode_option): Handle -W{no-,}reorder.
7917
7918 * cp-tree.h (CLASSTYPE_SOURCE_LINE): New macro.
7919 * error.c (cp_line_of): Use CLASSTYPE_SOURCE_LINE for aggregates.
7920 * class.c (finish_struct): Set CLASSTYPE_SOURCE_LINE.
7921
6060a796 7922Tue Aug 23 09:28:35 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
7923
7924 * error.c (dump_decl): Improve wording, so that error messages
7925 dont't read template<, class foo>...
7926
7927Mon Aug 22 15:30:51 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
7928
7929 * parse.y (label_colon): Also match a TYPENAME as a label name,
7930 since they may have declared a class by that name but have also
7931 tried to have a local label under the same name.
7932
7933 * pt.c (coerce_template_parms): Call cp_error, not cp_error_at,
7934 for the message so they know at what point it was instantiated.
7935
7936Sun Aug 21 23:07:35 1994 Gerald Baumgartner (gb@cs.purdue.edu)
7937
7938 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
7939 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures up to left_curly time.
7940 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 7941 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures down to left_curly time.
f376e137
MS
7942 * parse.y (left_curly): New final resting place for setting
7943 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING for signatures.
7944
7945 * class.c (finish_struct): Don't test for function/field name
7946 conflicts in signatures, since all the fields are compiler-constructed.
7947
7948Fri Aug 19 14:04:47 1994 Kung Hsu (kung@mexican.cygnus.com)
7949
7950 * method.c (build_overload_nested_name): in qualified name
7951 mangling, the template with value instantiation will have numeric
7952 at end and may mixed with the name length of next nested level.
7953 Add a '_' in between.
7954 * method.c (build_overload_name): ditto.
7955 * method.c (build_overload_identifier): ditto.
7956
6060a796 7957Thu Aug 18 16:24:43 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
7958
7959 * error.c (dump_decl): Handle NULL args.
7960
db5ae43f
MS
7961Thu Sep 29 16:15:36 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
7962
7963 * g++.c: Rework last change so it's done like collect.c (and
7964 gcc.c).
7965
7966Wed Sep 14 10:17:27 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
7967
7968 * g++.c: Include <sys/errno.h> in case `errno' is a macro
7969 as permitted by ANSI C.
7970
6060a796 7971Thu Aug 18 12:48:09 1994 Mike Stump <mrs@cygnus.com>
00595019
MS
7972
7973 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
7974 CLASSTYPE_VTABLE_NEEDS_WRITING up to left_curly time.
7975 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 7976 CLASSTYPE_VTABLE_NEEDS_WRITING down to left_curly time.
00595019
MS
7977 * parse.y (left_curly): New final resting place for setting
7978 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
7979
7980Thu Aug 11 11:32:42 1994 H.J. Lu (hjl@nynexst.com)
7981
7982 * g++.c (main): Only decrement "added" and set "library" to
7983 NULL when "library" != NULL.
7984
7985Sat Aug 13 00:14:52 1994 Jason Merrill (jason@deneb.cygnus.com)
7986
7987 * decl.c (grokdeclarator): Don't set TREE_PUBLIC on a function decl
7988 just because its class has a known interface.
7989 (decls_match): Deal with new format of template parms.
7990
7991 * lex.c (cons_up_default_function): Don't play with TREE_PUBLIC and
7992 DECL_EXTERNAL here.
7993
7994Fri Aug 12 01:55:15 1994 Jason Merrill (jason@deneb.cygnus.com)
7995
7996 * decl.c (pushtag): SET_DECL_ARTIFICIAL on gratuitous typedefs.
7997 (xref_defn_tag): Ditto.
7998 (pushdecl): Only allow artificial typedefs to be shadowed.
7999
8000 * init.c (emit_base_init): Pass the right binfos to
8001 expand_aggr_init_1.
8002
8003 * class.c (delete_duplicate_fields_1): Make it work right.
8004 (finish_struct): Catch function/field name conflict.
8005
8006 * decl2.c (check_classfn): Pass the function to cp_error, not just
8007 the name.
8008
8009 * init.c (sort_member_init): Warn when order of member initializers
8010 does not match order of member declarations.
8011 (emit_base_init): Call expand_aggr_init_1 with LOOKUP_PROTECT.
8012
8013 * error.c (dump_expr): Handle lists of functions.
8014
8015 * decl.c (start_function): #pragma interface only affects functions
8016 that would otherwise be static.
8017 (finish_decl): Don't warn about an unused variable if it has both
8018 constructor and destructor, since the 'resource allocation is
8019 initialization' idiom is relatively common.
8020
8021 * typeck.c (comp_target_types): Don't handle TEMPLATE_TYPE_PARMs.
8022 (comp_target_parms): Ditto.
8023 (compparms): Never consider default parms.
8024 (common_base_type): Don't choose a virtual baseclass if there is a
8025 more derived class in common.
8026 (build_conditional_expr): If pedantic, pedwarn about conversion to
8027 common base in conditional expr.
8028
8029 * class.c (instantiate_type): Handle template instantiation better.
8030
8031 * typeck.c (convert_arguments): Don't try to get tricky and convert
8032 to int directly when PROMOTE_PROTOTYPES is set, as it breaks
8033 user-defined conversions.
8034
8035 * lex.c (check_for_missing_semicolon): Also give error at end of
8036 file.
8037
8038 * call.c (build_method_call): Don't promote arrays to pointers here.
8039
8040 * typeck.c (convert_arguments): Don't require the actual parameter
8041 to be of a complete type if the formal parameter is a reference.
8042
8043Thu Aug 11 15:21:40 1994 Jason Merrill (jason@deneb.cygnus.com)
8044
8045 * decl.c (grokdeclarator): Soften 'static' on member function error
8046 to pedwarn.
8047
8048 * init.c (build_new): Don't automatically save rval.
8049 (build_offset_ref): Do field lookup with proper basetype_path.
8050
8051Thu Aug 11 12:46:54 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
8052
8053 * errfn.c (cp_silent): Declare to mark when we should avoid
8054 emitting warnings and errors.
8055 (cp_error): Check it.
8056 (cp_warning): Likewise.
8057 (cp_pedwarn): Likewise.
8058 (cp_compiler_error): Likewise.
8059 (cp_error_at): Likewise.
8060 (cp_warning_at): Likewise.
8061 (cp_pedwarn_at): Likewise.
8062 * call.c (compute_conversion_costs): Set CP_SILENT when we start
8063 out, and make sure we turn it off before we leave.
8064
8065Thu Aug 11 00:02:54 1994 Jason Merrill (jason@deneb.cygnus.com)
8066
8067 * decl2.c (grok_array_decl): Try computing *(A+B) if neither
8068 argument is obviously an array.
8069
8070Wed Aug 10 15:32:04 1994 Jason Merrill (jason@deneb.cygnus.com)
8071
8072 * typeck.c (c_expand_start_case): Do cleanups here.
8073
8074 * parse.y (xcond): Do bool conversion here, too.
8075 (simple_stmt, SWITCH case): Don't do cleanups here.
8076
8077 * decl.c (duplicate_decls): Don't treat builtins that have been
8078 explicitly declared specially.
8079
8080Tue Aug 9 01:16:09 1994 Jason Merrill (jason@deneb.cygnus.com)
8081
8082 * tree.c (make_deep_copy): Support copying pointer, reference,
8083 function, array, offset and method types.
8084
8085 * decl.c (init_decl_processing): Mark exit and abort as
8086 BUILT_IN_NONANSI so that duplicate_decls is kinder about
8087 redeclaration.
8088 (duplicate_decls): Don't give two errors for redeclaring a C
8089 function with the same parms but a different return type.
8090
8091 * parse.y (paren_cond_or_null): Do cleanup and bool conversion here.
8092 (condition): Instead of here.
8093 (simple_stmt, SWITCH case): Also do cleanup here.
8094
8095 * decl2.c (finish_anon_union): Only break out FIELD_DECLs.
8096
8097 * call.c (build_method_call): Don't throw away the side effects of
8098 the object in a call to a non-existent constructor.
8099 * parse.y (primary): Ditto.
8100
8101 * method.c (build_decl_overload): Oop.
8102
8103 * decl2.c (lang_decode_option): Deal with flag_no_nonansi_builtin,
8104 warn about uselessness of specifying -fansi-overloading.
8105
8106 * method.c (build_decl_overload): Treat any non-member new with one
8107 parameter as __builtin_new.
8108
8109 * decl.c (init_decl_processing): Setup built-in meanings of exit,
8110 _exit and abort.
8111
8112Mon Aug 8 15:03:30 1994 Jason Merrill (jason@deneb.cygnus.com)
8113
8114 * error.c (dump_readonly_or_volatile): Put a space between const and
8115 volatile if both apply.
8116
8117 * init.c (perform_member_init): Clean up after this initialization.
8118 (emit_base_init): Clean up after each base init, not after all have
8119 been done.
8120 (expand_aggr_vbase_init_1): Clean up after this init.
8121
8122Sun Aug 7 14:55:05 1994 Jason Merrill (jason@deneb.cygnus.com)
8123
8124 * call.c (build_method_call): Deal with destroying references.
8125
8126 * parse.y (condition): Do bool_truthvalue_conversion here.
8127 (paren_expr_or_null): And here.
8128 (simple_if): Not here.
8129 (simple_stmt): Or here.
8130
8131Sat Aug 6 22:29:45 1994 Jason Merrill (jason@deneb.cygnus.com)
8132
8133 * parse.y (paren_expr_or_null): Wrap the expression in a
8134 CLEANUP_POINT_EXPR.
8135 (condition): Ditto.
8136
8137Sat Aug 6 19:46:37 1994 Rohan Lenard (rjl@easams.com.au)
8138
8139 * call.c (build_scoped_method_call): Fix error message when
8140 destructor call refers to a nonexistent type.
8141
8142Sat Apr 16 22:43:30 1993 Gerald Baumgartner (gb@cs.purdue.edu)
8143
8144 * lex.h (rid): Deleted RID_RAISES, it's never used.
8145 Moved RID_PUBLIC, RID_PRIVATE, RID_PROTECTED, RID_EXCEPTION,
8146 RID_TEMPLATE and RID_SIGNATURE to the end of the enumeration,
8147 they don't need to be touched in `grokdeclarator.'
8148 (RID_LAST_MODIFIER): Defined macro to be RID_MUTABLE.
8149
8150 * decl.c (grokdeclarator): Use RID_LAST_MODIFIER instead of
8151 RID_MAX as loop limit for finding declaration specifiers.
8152
8153Sat Apr 3 21:59:07 1993 Gerald Baumgartner (gb@cs.purdue.edu)
8154
8155 * lex.c (debug_yytranslate): Moved to parse.y since it needs to
8156 access `yytname,' which is static in parse.c.
8157
8158Fri Apr 2 23:36:57 1993 Gerald Baumgarnter (gb@cs.purdue.edu)
8159
8160 * cp-tree.h (GNU_xref_ref): Fixed typo in extern declaration, it
8161 was `GNU_xref_def' instead of `GNU_xref_ref.'
8162
8163Fri Aug 5 14:20:16 1994 Jason Merrill (jason@deneb.cygnus.com)
8164
8165 * pt.c (do_function_instantiation): Don't set TREE_PUBLIC and
8166 DECL_EXTERNAL on 'extern' instantiations; wait until EOF to do that.
8167 (do_type_instantiation): Ditto.
8168
8169 * decl2.c (import_export_inline): Decides at EOF what an inline's
8170 linkage should be.
8171 (finish_file): Call it.
8172
8173 * decl.c (start_function): Don't rely on the settings of TREE_PUBLIC
8174 and DECL_EXTERNAL from do_*_instantiation. Only set
8175 DECL_DEFER_OUTPUT on inlines whose linkage might actually change.
8176 (finish_function): Use DECL_DEFER_OUTPUT to decide which inlines to
8177 mark for later consideration, rather than DECL_FUNCTION_MEMBER_P.
8178
6060a796 8179Fri Aug 5 01:12:20 1994 Mike Stump <mrs@cygnus.com>
a292b002
MS
8180
8181 * class.c (get_class_offset_1, get_class_offset): New routine to
8182 find the offset of the class where a virtual function is defined,
8183 from the complete type.
8184 * class.c (modify_one_vtable, fixup_vtable_deltas): Use
8185 get_class_offset instead of virtual_offset as get_class_offset will
8186 always provide the right answer.
8187 * tree.c (virtual_offset): Remove. It only ever worked some of the
8188 time.
8189
8190Tue Aug 2 12:44:21 1994 Jason Merrill (jason@deneb.cygnus.com)
8191
8192 * call.c (build_method_call): Put back unary_complex_lvalue call
8193 that I thought was redundant.
8194
8195 * typeck.c (c_expand_return): Fix a case I missed before.
8196
8197Sun Jul 31 17:54:02 1994 Jason Merrill (jason@deneb.cygnus.com)
8198
8199 * pt.c (unify): Strip cv-quals from template type arguments (when
8200 'const T*' is matched to 'const char*', that does not mean that T is
8201 'const char').
8202
8203Fri Jul 29 01:03:06 1994 Jason Merrill (jason@deneb.cygnus.com)
8204
8205 * pt.c (do_type_instantiation): Instantiate nested TAGS, not
8206 typedefs. Third time's the charm?
8207
8208 * parse.y (template_parm): Support default template parms.
8209 * pt.c (process_template_parm): Ditto.
8210 (end_template_parm_list): Ditto.
8211 (coerce_template_parms): Ditto.
8212 (mangle_class_name_for_template): Ditto.
8213 (push_template_decls): Ditto.
8214 (unify): Ditto.
8215 * method.c (build_overload_identifier): Ditto.
8216 * error.c (dump_decl): Ditto.
8217
8218Wed Jul 27 17:47:00 1994 Jason Merrill (jason@deneb.cygnus.com)
8219
8220 * pt.c (do_type_instantiation): Only instantiate nested *classes*.
8221
8222Tue Jul 26 13:22:40 1994 Jason Merrill (jason@deneb.cygnus.com)
8223
8224 * search.c (note_debug_info_needed): Also emit debugging information
8225 for the types of fields.
8226
8227Mon Jul 25 00:34:44 1994 Jason Merrill (jason@deneb.cygnus.com)
8228
8229 * pt.c (lookup_template_class): Pass 'template' to
8230 coerce_template_parms instead of 'in_decl', since it's a more
8231 meaningful context.
8232
8233 * typeck.c (c_expand_return): Make sure any cleanups for the return
8234 expression get run.
8235 (build_c_cast): Use CONVERT_EXPR for conversion to void.
8236
8237 * pt.c (do_type_instantiation): Also instantiate nested types.
8238
8239 * typeck.c (convert_for_assignment): Don't die when comparing
8240 pointers with different levels of indirection.
8241
8242 * decl.c (grokdeclarator): The sub-call to grokdeclarator for
8243 class-local typedefs sets DECL_ARGUMENTS, so we need to clear it
8244 out.
8245
8246 * decl2.c (finish_anon_union): Don't die if the union has no
8247 members.
8248
8249 * decl.c (grokdeclarator): Undo changes to declspecs when we're done
8250 so that 'typedef int foo, bar;' will work.
8251
8252 * decl2.c (finish_file): Don't call expand_aggr_init for
8253 non-aggregates.
8254
8255Mon Jul 25 00:03:10 1994 Teemu Torma (tot@trema.fi)
8256
8257 * decl.c (finish_function): We can't inline constructors and
8258 destructors under some conditions with -fpic, but don't unset
8259 DECL_INLINE.
8260
8261Mon Jul 25 00:03:10 1994 Jason Merrill (jason@deneb.cygnus.com)
8262
8263 * typeck.c (build_object_ref): Make sure 'datum' is a valid object.
8264
8265Sun Jul 24 14:19:31 1994 Jason Merrill (jason@deneb.cygnus.com)
8266
8267 * class.c (finish_struct): Don't set DECL_FIELD_BITPOS on
8268 non-fields.
8269 (finish_struct_methods): Use copy_assignment_arg_p.
8270
8271 * cvt.c (cp_convert): If expr is an OFFSET_REF, resolve it instead
8272 of giving an error.
8273
8274 * typeck.c (build_binary_op_nodefault): Don't set result_type if we
8275 don't know how to compare the operands.
8276
8277 * decl.c (grokdeclarator): Avoid seg fault when someone uses '__op'
8278 as a declarator-id in their program. Like the Linux headers do.
8279 Arrgh.
8280
8281 * tree.c (lvalue_p): Treat calls to functions returning objects by
8282 value as lvalues again.
8283
8284 * typeck.c (build_component_addr): Use convert_force to convert the
8285 pointer in case the component type is also a private base class.
8286
8287 * search.c (get_matching_virtual): Fix bogus warning of overloaded
8288 virtual.
8289
8290 * pt.c (overload_template_name): Set DECL_ARTIFICIAL on the created
8291 TYPE_DECL to fix bogus shadowing warnings.
8292
8293Fri Jul 22 01:15:32 1994 Jason Merrill (jason@deneb.cygnus.com)
8294
8295 * init.c (expand_aggr_init_1): const and volatile mismatches do not
8296 prevent a TARGET_EXPR from initializing an object directly.
8297
8298Tue Jul 19 17:55:37 1994 Jason Merrill (jason@deneb.cygnus.com)
8299
8300 * cvt.c (build_up_reference): Allow building up references to
8301 `this', don't warn about making references to artificial variables
8302 (like `this').
8303
8304 * tree.c (lvalue_p): `this' is not an lvalue.
8305
8306 * call.c (build_method_call): Accept using a typedef name (or
8307 template type parameter) for explicit destructor calls.
8308
72b7eeff
MS
8309Thu Jul 14 09:42:23 1994 Mike Stump <mrs@cygnus.com>
8310
8311 * Version 2.6.0 released.
8312
cf17cae3
JM
8313Wed Jul 13 03:57:54 1994 Jason Merrill (jason@deneb.cygnus.com)
8314
a292b002
MS
8315 * method.c (hack_identifier): Put back old code so lists of
8316 non-functions will be handled properly.
a5ef9010 8317
a292b002
MS
8318 * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): #if 0 out; this macro is now
8319 defined in the language-independent tree.h.
cf17cae3 8320
a292b002
MS
8321 * tree.c (count_functions): Avoid bogus warning when compiling this
8322 function.
cf17cae3
JM
8323
8324Mon Jul 11 18:37:20 1994 Jason Merrill (jason@deneb.cygnus.com)
8325
a292b002
MS
8326 * decl.c (grok_reference_init): Always save the initializer of a
8327 reference.
cf17cae3 8328
6060a796 8329Fri Jul 8 17:41:46 1994 Mike Stump <mrs@cygnus.com>
5b605f68
MS
8330
8331 * decl.c (cplus_expand_expr_stmt): Wrap statement expressions inside
8332 CLEANUP_POINT_EXPRs so that the stack slots can be reused.
63c68bb7 8333 (disabled for now)
5b605f68
MS
8334
8335Fri Jul 8 12:59:38 1994 Jason Merrill (jason@deneb.cygnus.com)
8336
8337 * method.c (hack_identifier): Fix for new overloading.
8338
8339 * typeck.c (build_binary_op_nodefault): Don't mess with division by
db5ae43f 8340 zero.
5b605f68
MS
8341
8342Fri Jul 8 13:20:28 1994 Gerald Baumgartner (gb@cs.purdue.edu)
8343
8344 * decl2.c (finish_file): Only call walk_sigtables, if
8345 flag_handle_signatures is turned on, don't waste time otherwise.
8346
8347Fri Jul 8 02:27:41 1994 Jason Merrill (jason@deneb.cygnus.com)
8348
8349 * decl.c (push_overloaded_decl): Don't create overloads of one when
8350 shadowing a class type.
a292b002 8351 * typeck.c (build_x_function_call): Complain about overloads of one.
5b605f68
MS
8352
8353 * decl.c (grokdeclarator): Don't try to treat a char* as a tree.
8354 (grokdeclarator): Fix setting of TREE_STATIC.
8355 (start_decl): Clear DECL_IN_AGGR_P after calling duplicate_decls.
8356
311862c8
GB
8357Thu Jul 7 22:20:46 1994 Gerald Baumgartner (gb@andros.cygnus.com)
8358
8359 * cp-tree.h (walk_sigtables): Created extern declaration.
8360 * decl2.c (walk_sigtables): Created function, patterned after
8361 walk_vtables, even though we only need it to write out sigtables.
8362 (finish_sigtable_vardecl): Created function.
8363 (finish_vtable_vardecl): Changed 0 to NULL_PTR.
8364 (finish_file): Call walk_sigtables.
8365
8366 * sig.c (build_signature_table_constructor): Mark class member
8367 function pointed to from signature table entry as addressable.
8368
5b605f68
MS
8369Thu Jul 7 13:39:37 1994 Jason Merrill (jason@deneb.cygnus.com)
8370
8371 * decl.c (start_decl): Check new decl of static member variable
8372 against the declaration in the class here.
8373 (grokvardecl): Instead of here.
8374
8375 * class.c (prepare_fresh_vtable): Call import_export_vtable if not
8376 -fvtable-thunks.
8377 (build_vtable): Ditto.
8378
8379 * decl2.c (import_export_vtable): Move logic for deciding the
8380 interface of a template class from here.
8381 (import_export_template): To here.
8382 (finish_vtable_vardecl): Call import_export_template before
8383 import_export_vtable.
8384
6060a796 8385Wed Jul 6 20:25:48 1994 Mike Stump <mrs@cygnus.com>
a3b49ccd
MS
8386
8387 * except.c (init_exception_processing): Setup interim_eh_hook to
8388 call lang_interim_eh.
8389 * except.c (do_unwind): Propagate throw object value across
8390 stack unwinding.
8391 * except.c (saved_throw_value): Used to hold the value of the object
8392 being thrown. It is always a reference to the real value.
8393 * except.c (expand_start_catch_block): Add handling for the
8394 value of the exception object.
8395 * except.c (expand_start_catch_block): Add handler for the handler,
8396 so that throws inside the handler go to the outer block.
8397 * except.c (expand_end_catch_block): Ditto.
8398 * parse.y (handler_args): Use parm instead, as the other doesn't yet
8399 handle references correctly.
8400
8401Wed Jul 6 17:55:32 1994 Per Bothner (bothner@kalessin.cygnus.com)
8402
8403 * decl2.c (mark_vtable_entries): If -ftable-thunks, set the
8404 vtable entry properly to abort.
8405
5b605f68
MS
8406Tue Jul 5 14:07:54 1994 Jason Merrill (jason@deneb.cygnus.com)
8407
8408 * typeck.c (build_binary_op_nodefault): Downgrade division by zero
8409 errors to warnings.
8410
8411 * call.c (build_overload_call_real): Handle fnname being a list of
8412 functions.
8413 * typeck.c (build_x_function_call): Pass list of functions to
8414 build_overload_call, not just the name.
8415 * tree.c (count_functions): Complain when called for invalid
8416 argument.
8417
8418 * decl.c (grokdeclarator): Fix settings of TREE_STATIC, TREE_PUBLIC
8419 and DECL_EXTERNAL on static members and initialized const members.
8420 * decl2.c (grokfield): Reflect this change.
8421
9a0e77ba
JM
8422Fri Jul 1 09:35:51 1994 Jason Merrill (jason@deneb.cygnus.com)
8423
8424 * parse.y (init): ANSI C++ does not forbid { }.
8425
8426Thu Jun 30 00:35:22 1994 Jason Merrill (jason@deneb.cygnus.com)
8427
8428 * decl2.c (lang_decode_option): Set warn_nonvdtor along with -Wall.
8429 warn_nonvdtor defaults to off.
8430
8431 * class.c (instantiate_type): Use comptypes rather than relying on
8432 types to satisfy ==.
8433
8434 * decl.c (start_function): Set DECL_DEFER_OUTPUT on all inlines that
8435 might be static.
8436
8437 * tree.c (build_cplus_new): Never build WITH_CLEANUP_EXPRs.
8438
8439 * decl.c (grok_reference_init): Deal with ADDR_EXPRs of TARGET_EXPRs.
8440
8441 * cvt.c (cp_convert): Pass 0 to with_cleanup_p arg of
8442 build_cplus_new.
8443
8444Wed Jun 29 22:31:09 1994 Jason Merrill (jason@deneb.cygnus.com)
8445
8446 * decl2.c (finish_file): Maybe consider static inlines multiple
8447 times, in case they reference each other.
8448
63718c49
GB
8449Tue Jun 28 11:58:38 1994 Gerald Baumgartner (gb@cs.purdue.edu)
8450
8451 * class.c (finish_struct): Don't `cons_up_default_function's
8452 for signatures.
8453 (finish_struct): Handle an empty method_vec correctly.
8454
8455 * decl.c (grokdeclarator): Don't warn about a signature being
8456 empty in a signature pointer declaration if we only saw a
8457 forward declaration of the signature. Changed `warning's into
8458 `cp_warning's.
8459
8460 * sig.c (build_sigtable): Don't die if a null signature table
8461 constructor is returned.
8462 (build_signature_pointer_constructor): If the signature table
8463 constructor is null, the _sptr field is set to a null pointer
8464 and cast to the appropriate type. Make copies of all null
8465 pointers so that the type null_pointer_node doesn't get changed.
8466 (build_signature_table_constructor): Added comments.
8467
8468 * sig.c (build_signature_pointer_constructor): Complain if we
8469 try to assign to/initialize a signature pointer/reference of
8470 an undefined signature.
8471
8472Mon Jun 27 14:05:16 1994 Gerald Baumgartner (gb@cs.purdue.edu)
8473
8474 * typeck2.c (store_init_value): Don't be pedantic about
8475 non-constant initializers of signature tables/pointers/references.
8476
8477Fri Jun 24 16:49:41 1994 Gerald Baumgartner (gb@cs.purdue.edu)
8478
8479 * decl.c (grokdeclarator): If we are grokking an opaque typedef
8480 in a signature, don't complain about it begin static.
8481
6060a796 8482Wed Jun 29 16:44:45 1994 Mike Stump <mrs@cygnus.com>
21474714
MS
8483
8484 Fixes a problem of the this pointer being wrong in virtual calls to
8485 methods that are not overridden in more derived classes.
8486
8487 * class.c (fixup_vtable_delta): New routine. It will fixup the
8488 delta entries in vtables, wheever they need updating.
8489 * class.c (finish_struct): Call the new routine for all virtual
8490 bases, as they can have different offsets, than those used in base
8491 classes that we derive our vtable from.
8492
8493Tue Jun 28 23:49:28 1994 Jason Merrill (jason@deneb.cygnus.com)
8494
8495 * typeck.c (build_binary_op): Use the types before default
8496 conversions in the error message.
8497
8498 * *.c: Use c_build_type_variant instead of build_type_variant where
8499 the type might be an array.
8500
8501 * call.c (build_method_call): Call build_type_variant and
8502 build_reference_type in the right order.
8503 * decl.c (record_builtin_type): Ditto.
8504
8505Wed Jun 29 16:58:53 1994 Jason Merrill (jason@deneb.cygnus.com)
8506
8507 * call.c (build_method_call): Call build_type_variant and
8508 build_reference_type in the right order.
8509 * decl.c (record_builtin_type): Ditto.
8510
8511Tue Jun 28 23:49:28 1994 Jason Merrill (jason@deneb.cygnus.com)
8512
8513 * typeck.c (build_binary_op): Use the types before default
8514 conversions in the error message.
8515
8516 * *.c: Use c_build_type_variant instead of build_type_variant where
8517 the type might be an array.
8518
8519Sat Jun 25 11:50:54 1994 Jason Merrill (jason@deneb.cygnus.com)
8520
8521 * cvt.c (convert_to_reference): Try UDC's before doing the
8522 reinterpret_cast thang, though.
8523
8524Fri Jun 24 01:24:01 1994 Jason Merrill (jason@deneb.cygnus.com)
8525
8526 * typeck.c (c_expand_return): Don't USE the return value location
8527 after we've expanded the jump.
8528
8529 * decl2.c (finish_file): Make sure DECL_SAVED_INSNS is not 0 before
8530 trying to write out an inline.
8531
8532 * cvt.c (build_up_reference): Also do address adjustment when the
8533 target type uses MI.
8534 (convert_to_reference): Try UDCs only after built-in conversions.
8535 (build_type_conversion_1): Don't play games with the argument to the
8536 method.
8537 (build_type_conversion): #if 0 out code for binding to reference.
8538
a3203465
MS
8539Thu Jun 23 00:22:28 1994 Jason Merrill (jason@deneb.cygnus.com)
8540
21474714
MS
8541 * decl2.c (finish_file): Use TREE_SYMBOL_REFERENCED to decide
8542 whether to emit inlines.
8543
a3203465
MS
8544 * decl.c (grokdeclarator): Set explicit_int for decls that just
8545 specify, say, 'long'.
8546
8547 * init.c (do_friend): Do overload C functions (or call pushdecl,
63718c49 8548 anyaway).
a3203465
MS
8549
8550Wed Jun 22 13:40:49 1994 Jason Merrill (jason@deneb.cygnus.com)
8551
8552 * cvt.c (build_up_reference): Don't call readonly_error.
8553 (convert_to_reference): Propagate const and volatile from expr to
8554 its type.
8555
8556 * tree.c (lvalue_p): Random CALL_EXPRs are not lvalues.
8557
8558 * cvt.c (build_up_reference): Break out WITH_CLEANUP_EXPR when
8559 creating a temporary.
8560 (convert_to_reference): Lose excessive and incorrect trickiness.
8561 (cp_convert): Call build_cplus_new with with_cleanup_p set.
8562
8563 * typeck2.c (build_functional_cast): Ditto.
8564
8565Tue Jun 21 17:38:38 1994 Jason Merrill (jason@deneb.cygnus.com)
8566
8567 * decl.c (grokdeclarator): signed, unsigned, long and short all
8568 imply 'int'.
8569
8570 * decl.c (grokdeclarator): Allow "this is a type" syntax.
8571 (grok_reference_init): Simplify and fix.
8572
8573Sun Jun 19 17:08:48 1994 Jason Merrill (jason@deneb.cygnus.com)
8574
8575 * decl.c (grokdeclarator): pedwarn about a typedef that specifies no
8576 type.
8577
8578Sat Jun 18 04:16:50 1994 Jason Merrill (jason@deneb.cygnus.com)
8579
8580 * decl.c (start_function): Move TREE_PUBLIC and DECL_EXTERNAL
8581 tinkering to after call to pushdecl.
8582
8583Fri Jun 17 14:48:28 1994 Jason Merrill (jason@deneb.cygnus.com)
8584
8585 * call.c (build_method_call): Handle destructors for non-aggregate
8586 types properly.
8587
8588Thu Jun 16 16:48:05 1994 Jason Merrill (jason@deneb.cygnus.com)
8589
8590 * call.c (build_method_call): Make sure that the name given for the
8591 destructor matches the constructor_name of the instance.
8592
8593 * pt.c (do_function_instantiation): A non-extern instantiation
8594 overrides a later extern one.
8595 (do_type_instantiation): Ditto.
8596
8597Wed Jun 15 19:34:54 1994 Jason Merrill (jason@deneb.cygnus.com)
8598
8599 * init.c (expand_aggr_init): Use TYPE_MAIN_VARIANT to get the
8600 unqualified array type.
8601
8602 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Tests whether NODE is a
8603 CONSTRUCTOR with no elements.
8604
8605 * decl.c (various): Lose empty_init_node.
8606 (finish_decl): Use EMPTY_CONSTRUCTOR_P, do the empty CONSTRUCTOR
8607 thing depending on the value of DECL_COMMON instead of
8608 flag_conserve_space, do the empty CONSTRUCTOR thing for types that
8609 don't have constructors, don't treat a real empty CONSTRUCTOR
8610 specially.
8611
8612 * typeck2.c (process_init_constructor): Don't treat empty_init_node
8613 specially.
8614
6060a796 8615Wed Jun 15 19:05:25 1994 Mike Stump <mrs@cygnus.com>
a3203465
MS
8616
8617 * class.c (override_one_vtable): Don't forget to merge in an old
8618 overrider when we wanted to reuse a vtable, but couldn't.
8619
8620Wed Jun 15 15:03:16 1994 Jason Merrill (jason@deneb.cygnus.com)
8621
8622 * decl.c (start_decl): Put statics in common again.
8623
8624 * decl.c (grokdeclarator): Return NULL_TREE for an error rather than
8625 setting the type to error_mark_node.
8626
8627 * typeck.c (build_modify_expr): Build up a COMPOUND_EXPR for enum
8628 bitfield assignments.
8629
f0e01782
MS
8630Tue Jun 14 12:23:38 1994 Jason Merrill (jason@deneb.cygnus.com)
8631
8632 * decl.c (grok_op_properties): Const objects can be passed by value.
8633
8634Mon Jun 13 03:10:59 1994 Jason Merrill (jason@deneb.cygnus.com)
8635
8636 * decl2.c (import_export_vtable): Force implicit instantiations to
8637 be interface_only when -fno-implicit-templates.
8638
8639 * decl.c (duplicate_decls): Redeclaring a class template name is an
8640 error.
8641
8642 * pt.c (end_template_decl): Call GNU_xref_decl for class templates.
8643 * xref.c (GNU_xref_decl): Support templates.
8644
8645Sat Jun 11 17:09:05 1994 Jason Merrill (jason@deneb.cygnus.com)
8646
8647 * decl.c (grok_op_properties): Split out checking for whether this
8648 function should suppress the default assignment operator.
8649 * decl2.c (grok_function_init): Ditto.
8650 (copy_assignment_arg_p): New function do do just that.
8651 Now considers virtual assignment operators that take a base as an
8652 argument to count as copy assignment operators.
8653
8654 * search.c (dfs_debug_mark): Lose checks for DWARF_DEBUG and
8655 TREE_ASM_WRITTEN, as they are redundant.
8656
8657 * pt.c (end_template_decl): Don't try to set DECL_CLASS_CONTEXT on a
8658 decl that has no LANG_SPECIFIC part.
8659 (do_type_instantiation): Force the debugging information for this
8660 type to be emitted.
8661
8662 * decl.c (start_decl): Clear up uses of various types of templates
8663 (say sorry for static data members, rather than "invalid template").
8664 (expand_static_init): Fix initialization of static data members of
8665 template classes.
8666
8667Fri Jun 10 00:41:19 1994 Jason Merrill (jason@deneb.cygnus.com)
8668
8669 * decl.c (grokdeclarator): Set DECL_CONTEXT on static data members.
8670
8671 * g++.c (main): Use -xc++-cpp-output for .i files.
8672
8673 * pt.c (tsubst): Give meaningful error about declaring template for
8674 a copy constructor which was not declared in the class template.
8675 (do_type_instantiation): Explicit instantiation before the class
8676 template is an error.
8677 (instantiate_template): Don't die if tsubst returns error_mark_node.
8678
8679Thu Jun 9 19:04:59 1994 Jason Merrill (jason@deneb.cygnus.com)
8680
8681 Don't synthesize the copy assignment operator if the one in a base
8682 class is pure virtual.
8683 * cp-tree.h (TYPE_HAS_ABSTRACT_ASSIGN_REF): New macro to indicate
8684 whether the type has a pure virtual copy assignment operator.
8685 * class.c (finish_base_struct): Don't generate the copy assignment
8686 operator if a base class has a pure virtual one.
8687 * decl.c (grok_op_properties): Add disabled code to set
8688 TYPE_HAS_ABSTRACT_ASSIGN_REF with comment pointing to where it is
8689 actually set.
8690 * decl2.c (grok_function_init): Set TYPE_HAS_ABSTRACT_ASSIGN_REF.
8691
8692 * decl2.c (import_export_vtable): Always treat template
8693 instantiations as if write_virtuals >= 2, and treat implicit
8694 instantiations as external if -fno-implicit-templates.
8695 (finish_file): Output all pending inlines if
8696 flag_keep_inline_functions.
8697
6060a796 8698Wed Jun 8 20:48:02 1994 Mike Stump <mrs@cygnus.com>
f0e01782
MS
8699
8700 * tree.c (layout_vbasetypes): Align virtual base classes inside
8701 complete objects, so that we don't core dump on machines such as
8702 SPARCs when we access members that require larger than normal
8703 alignments, such as a double. Also, we bump up the total alignment
8704 on the complete type, as necessary.
8705
8706Wed Jun 8 16:18:14 1994 Jason Merrill (jason@deneb.cygnus.com)
8707
8708 * gxxint.texi (Free Store): New section with code for examining
8709 cookie.
8710 (Limitations of g++): Remove operator delete entry, since it is no
8711 longer accurate. Fix access control entry.
8712
8713 * typeck.c (build_unary_op): Pedwarn about taking the address of or
8714 incrementing a cast to non-reference type.
8715 (build_modify_expr): Use convert instead of convert_force again.
8716
8717 * search.c (get_base_distance): Use IS_AGGR_TYPE_CODE to check for
8718 class type, not == RECORD_TYPE.
8719
8720 * decl.c (grokdeclarator): Cope with grokfndecl returning NULL_TREE.
8721
8722 * typeck2.c (report_case_error): #if 0 out.
8723 * lex.c (real_yylex): Lose RANGE.
8724 * parse.y: Ditto.
8725
8726Tue Jun 7 18:17:35 1994 Jason Merrill (jason@deneb.cygnus.com)
8727
8728 * parse.y (simple_stmt, case ranges): Use ELLIPSIS instead of RANGE.
8729
8730Mon Jun 6 19:39:57 1994 Jason Merrill (jason@deneb.cygnus.com)
8731
8732 * typeck.c (build_c_cast): Don't shortcut conversions to the same
8733 type. Don't replace consts with their values here, since that's now
8734 done in cp_convert.
8735
8736 * cvt.c (cp_convert): When converting to bool, take
8737 integer_zero_node to false_node and all other INTEGER_CSTs to
8738 true_node.
8739 (build_type_conversion): Don't complain about multiple conversions
8740 to float if we're not really converting.
8741
a0a33927
MS
8742Fri Jun 3 02:10:56 1994 Jason Merrill (jason@deneb.cygnus.com)
8743
f0e01782
MS
8744 Implement 'extern template class A<int>;' syntax for suppressing
8745 specific implicit instantiations.
8746 * cp-tree.h: Update prototypes for do_*_instantiation.
8747 * pt.c (do_pending_expansions): Don't compile 'extern' explicit
8748 instantiations.
8749 (do_function_instantiation): Set DECL_EXTERNAL on 'extern' explicit
8750 instantiations.
8751 (do_type_instantiation): Ditto.
8752 * parse.y (explicit_instantiation): Support 'extern template class
8753 A<int>;' syntax.
8754 * decl.c (start_function): Don't modify the settings of TREE_PUBLIC
8755 and DECL_EXTERNAL on explicit instantiations.
8756
a0a33927
MS
8757 * cvt.c (cp_convert): Replace constants with their values before
8758 converting.
f0e01782 8759 (cp_convert): Consistently use 'e' instead of 'expr'.
a0a33927
MS
8760
8761Thu Jun 2 03:53:30 1994 Jason Merrill (jason@deneb.cygnus.com)
8762
8763 * typeck2.c (build_x_arrow): Resolve OFFSET_REFs first.
8764
8765Wed Jun 1 18:57:35 1994 Jason Merrill (jason@deneb.cygnus.com)
8766
8767 * typeck2.c (digest_init): Handle initializing a pmf with an
8768 overloaded method.
8769 * typeck.c (build_ptrmemfunc): Handle overloaded methods.
8770
8771 * decl.c (pushtag): Use build_decl to make TYPE_DECLs.
8772 (xref_defn_tag): Ditto.
8773 * pt.c (process_template_parm): Ditto.
8774 (lookup_template_class): Ditto.
8775 (push_template_decls): Ditto.
8776 (instantiate_class_template): Ditto.
8777 (create_nested_upt): Ditto.
8778 * class.c (finish_struct): Don't try to set DECL_CLASS_CONTEXT on
8779 TYPE_DECLs.
8780
8781 * typeck.c (convert_arguments): Make sure type is not NULL before
8782 checking its TREE_CODE.
8783
6060a796 8784Wed Jun 1 17:40:39 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
8785
8786 * class.c (get_derived_offset): New routine.
8787 * class.c (finish_base_struct): Make sure we set BINFO_VTABLE and
8788 BINFO_VIRTUALS when we choose a new base class to inherit from.
8789 * class.c (modify_one_vtable): Use get_derived_offset to get the
8790 offset to the most base class subobject that we derived this binfo
8791 from.
8792 * class.c (finish_struct): Move code to calculate the
8793 DECL_FIELD_BITPOS of the vfield up, as we need might need it for
8794 new calls to get_derived_offset in modify_one_vtable.
8795
8796Wed Jun 1 16:50:59 1994 Jason Merrill (jason@deneb.cygnus.com)
8797
8798 * init.c (build_member_call): Use build_pointer_type instead of
8799 TYPE_POINTER_TO.
8800
8801Wed Jun 1 11:11:15 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
8802
8803 * decl.c (grokdeclarator): Make sure we have a DNAME set before we
8804 try to use it in an error.
8805
6060a796 8806Wed Jun 1 09:48:49 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
8807
8808 * typeck.c (convert_arguments, convert_for_initialization): Don't
8809 strip NOP_EXPRs, when we are converting to a reference.
8810
8811Wed Jun 1 01:11:38 1994 Jason Merrill (jason@deneb.cygnus.com)
8812
8813 * typeck.c (build_modify_expr): Don't dereference references when
8814 initializing them.
8815
8816 * decl2.c (grokfield): Don't check for grokdeclarator returning
8817 error_mark_node any more.
8818
8819 * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node.
8820 (start_method): Return void_type_node instead of error_mark_node.
8821
8822 * typeck.c (build_modify_expr): Resolve offset refs earlier.
8823
8824Tue May 31 16:06:58 1994 Jason Merrill (jason@deneb.cygnus.com)
8825
8826 * call.c (build_method_call): Resolve OFFSET_REFs in the object.
8827
8828 * typeck.c (build_modify_expr): Dereference references before trying
8829 to assign to them.
8830
8831 * call.c (build_method_call): Don't confuse type conversion
8832 operators with constructors.
8833 * typeck2.c (build_functional_cast): Just call build_c_cast if there
8834 was only one parameter.
8835 * method.c (build_typename_overload): Don't set
8836 IDENTIFIER_GLOBAL_VALUE on these identifiers.
8837 * decl.c (grok_op_properties): Warn about defining a type conversion
8838 operator that converts to a base class (or reference to it).
8839 * cvt.c (cp_convert): Don't try to use a type conversion operator
8840 when converting to a base class.
8841 (build_type_conversion_1): Don't call constructor_name_full on an
8842 identifier.
8843 * cp-tree.h (DERIVED_FROM_P): Should be self-explanatory.
8844
8845 * decl.c (start_decl): Don't complain that error_mark_node is an
8846 incomplete type.
8847 (finish_decl): Check for type == error_mark_node.
8848
8849Mon May 30 23:38:55 1994 Jason Merrill (jason@deneb.cygnus.com)
8850
8851 * decl.c (start_function): Set DECL_DEFER_OUTPUT on implicit
8852 instantiations and inline members.
8853
8854 * spew.c (yylex): Set looking_for_template if the next token is a '<'.
8855
8856 * lex.h: Declare looking_for_template.
8857
8858 * decl.c (lookup_name_real): Use looking_for_template to arbitrate
8859 between type and template interpretations of an identifier.
8860
8861Sat May 28 04:07:40 1994 Jason Merrill (jason@deneb.cygnus.com)
8862
8863 * pt.c (instantiate_template): Zero out p if we found a
8864 specialization.
8865
8866 * decl.c (grokdeclarator): Elucidate warning.
8867 (grokdeclarator): If pedantic AND -ansi, complain about long long.
8868
8869 Make explicit instantiation work reasonably. It is now appropriate
8870 to deprecate the use of -fexternal-templates.
8871 * pt.c (instantiate_template): Set DECL_TEMPLATE_SPECIALIZATION or
8872 DECL_IMPLICIT_INSTANTIATION on fndecl as appropriate.
8873 (end_template_instantiation): Reflect changes in USE_TEMPLATE
8874 semantics.
8875 (do_pending_expansions): if (!flag_implicit_templates) DECIDE(0);
8876 (do_function_instantiation): Don't set EXPLICIT_INST if
8877 flag_external_templates is set. Do set TREE_PUBLIC and DECL_EXTERN
8878 appropriately otherwise.
8879 (do_type_instantiation): Set interface info for class. Set
8880 TREE_PUBLIC and DECL_EXTERN for methods. Do none of this if
8881 flag_external_templates is set.
8882 * parse.y: Reflect changes in USE_TEMPLATE semantics.
8883 * decl2.c: New flag flag_implicit_templates determines whether or
8884 not implicit instantiations get emitted. This flag currently
8885 defaults to true, and must be true for -fexternal-templates to work.
8886 (finish_file): Consider flag_implement_inlines when
8887 setting DECL_EXTERNAL. Consider flag_implicit_templates when
8888 deciding whether or not to emit a static copy.
8889 * decl.c (start_function): Set TREE_PUBLIC and DECL_EXTERNAL
8890 properly for template instantiations.
8891 (start_method): Set DECL_IMPLICIT_INSTANTIATION on methods of a
8892 template class.
8893 * cp-tree.h (CLASSTYPE_USE_TEMPLATE): Change semantics.
8894 (DECL_USE_TEMPLATE): Parallel macro for FUNCTION and VAR_DECLs.
8895 (various others): Accessor macros for the above.
8896
8897Fri May 27 13:57:40 1994 Jason Merrill (jason@deneb.cygnus.com)
8898
8899 * typeck.c (build_binary_op_nodefault): Division by constant zero is
8900 an error.
8901
6060a796 8902Fri May 27 13:50:15 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
8903
8904 * class.c (override_one_vtable): Don't modify things we don't own.
8905
8906Fri May 27 01:42:58 1994 Jason Merrill (jason@deneb.cygnus.com)
8907
8908 * decl.c (finish_decl): Don't postpone processing the initializer of
8909 a decl with DECL_EXTERNAL set, and do call rest_of_compilation for a
8910 PUBLIC const at toplevel.
8911 (grokdeclarator): pedwarn about initializing non-const or
8912 non-integral statics in the class body.
8913
8914 * decl.c (pushtag): Don't try to set DECL_CLASS_CONTEXT on a
8915 TYPE_DECL.
8916
8917 * call.c (convert_harshness): Dereference reference on rhs before
8918 proceeding, properly grok passing const things to non-const
8919 references.
8920
8921 * typeck.c (build_unary_op): Soften error about taking the address
8922 of main() to a pedwarn.
8923
8924 * lex.c (default_copy_constructor_body): Unambiguously specify base
8925 classes (i.e. A((const class ::A&)_ctor_arg) ).
8926 (default_assign_ref_body): Ditto.
8927
8928Thu May 26 13:13:55 1994 Gerald Baumgartner (gb@mexican.cygnus.com)
8929
8930 * decl2.c (grokfield): Don't complain about local signature
8931 method declaration without definition.
8932
8933 * call.c (convert_harshness): If `type' is a signature pointer
8934 and `parmtype' is a pointer to a signature, just return 0. We
8935 don't really convert in this case; it's a result of making the
8936 `this' parameter of a signature method a signature pointer.
8937
8938 * call.c (build_method_call): Distinguish calling the default copy
8939 constructor of a signature pointer/reference from a signature
8940 member function call.
8941
8942Thu May 26 12:56:25 1994 Jason Merrill (jason@deneb.cygnus.com)
8943
8944 * decl2.c (grokfield): Don't set TREE_PUBLIC on member function
8945 declarations.
8946
8947 * decl.c (duplicate_decls): A previous function declaration as
8948 static overrides a subsequent non-static definition.
8949 (grokdeclarator): Don't set TREE_PUBLIC on inline method
8950 declarations.
8951
8952Wed May 25 14:36:38 1994 Jason Merrill (jason@deneb.cygnus.com)
8953
8954 * decl.c (grokdeclarator): Handle initialization of static const
8955 members.
8956 (finish_decl): Ditto.
8957
8958 * decl2.c (grokfield): Allow initialization of static const members
8959 even when pedantic.
8960
8961 * decl2.c (grokfield): Deal with grokdeclarator returning
8962 error_mark_node.
8963
8964 * decl.c (grok_ctor_properties): Return 0 for A(A) constructor.
8965 (grokfndecl): Check the return value of grok_ctor_properties.
8966 (start_method): Ditto.
8967
8968 * parse.y (absdcl): Expand type_quals inline.
8969
8970Tue May 24 19:10:32 1994 Jason Merrill (jason@deneb.cygnus.com)
8971
8972 * decl.c (pushtag): Use IS_AGGR_TYPE rather than checking for a
8973 RECORD_TYPE.
8974
8975Tue May 24 18:09:16 1994 Per Bothner (bothner@kalessin.cygnus.com)
8976
8977 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
8978 always use "__vt_%s".
8979 * decl2.c (finish_vtable_vardecl): Don't consider abstract virtuals
8980 when looking for a "sentinal" method (to decide on emitting vtables).
8981 * decl2.c (finish_file): Scan all decls for thunks that need
8982 to be emitted.
8983 * decl2.c (finish_vtable_vardecl): Don't bother calling emit_thunk.
8984 * method.c (make_thunk): Use a more meaningful label. If there
8985 exists a matching top-level THUNK_DECL re-use it; otherwise
8986 create a new THUNK_DECL (and declare it).
8987 * method.c (emit_thunk): Make thunk external/public depending
8988 on the underlying method.
8989
8990Tue May 24 00:22:04 1994 Jason Merrill (jason@deneb.cygnus.com)
8991
8992 * pt.c (tsubst): Use lookup_name_nonclass to find guiding decls, not
8993 lookup_name.
8994
8995 * call.c (build_overload_call_real): Don't immediately pick a
8996 function which matches perfectly.
8997
8998 * decl.c (grokdeclarator): Use c_build_type_variant for arrays.
8999 (grokdeclarator): Warn about, and throw away, cv-quals attached to a
9000 reference (like 'int &const j').
9001
9002 * typeck.c (convert_arguments): Don't mess with i for methods.
9003 * call.c (build_method_call): Pass the function decl to
9004 convert_arguments.
9005
9006 * typeck.c (comp_ptr_ttypes_real): New function. Implements the
9007 checking for which multi-level pointer conversions are allowed.
9008 (comp_target_types): Call it.
9009 (convert_for_assignment): Check const parity on the ultimate target
9010 type, too. And make those warnings pedwarns.
9011
9012Mon May 23 14:11:24 1994 Jason Merrill (jason@deneb.cygnus.com)
9013
9014 * error.c (dump_char): Use TARGET_* for character constants.
9015
9016Mon May 23 13:03:03 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
9017
9018 * tree.c (debug_no_list_hash): Make static.
9019
9020 * decl.c (decls_match): Say the types don't match if newdecl ends up
9021 with a null type, after we've checked if olddecl does.
9022 (pushdecl): Check if the decls themselves match before looking for
9023 an extern redeclared as static, to avoid inappropriate and incorrect
9024 warnings.
9025
9026Fri May 20 14:04:34 1994 Jason Merrill (jason@deneb.cygnus.com)
9027
9028 * decl.c (grokdeclarator): Make warning about duplicate short, etc.
9029 a pedwarn.
9030
9031 * typeck.c (build_c_cast): Casting to function or method type is an
9032 error.
9033
9034 * class.c (finish_struct): Make warning for anonymous class with no
9035 instances a pedwarn.
9036
9037 * Makefile.in (stamp-parse): Expect a s/r conflict.
9038
9039 * typeck.c (build_modify_expr): pedwarn about using a non-lvalue
9040 cast as an lvalue.
9041
2986ae00
MS
9042Thu May 19 12:08:48 1994 Jason Merrill (jason@deneb.cygnus.com)
9043
9044 * cvt.c (type_promotes_to): Make sure bool promotes to int rather
9045 than unsigned on platforms where sizeof(char)==sizeof(int).
9046
9047Wed May 18 14:27:06 1994 Jason Merrill (jason@deneb.cygnus.com)
9048
9049 * typeck.c (build_c_cast): Tack on a NOP_EXPR when casting to
9050 another variant.
9051 (build_modify_expr): Don't strip NOP_EXPRs, and don't get tricky
9052 and treat them as lvalues.
9053
9054 * decl.c (shadow_tag): Do complain about forward declarations of
9055 enums and empty declarations.
9056 * parse.y: Don't complain about forward declarations of enums and
9057 empty declarations.
9058
9059 * typeck.c (convert_for_assignment): Complain about changing
9060 the signedness of a pointer's target type.
9061
9062 * parse.y (stmt): Move duplicated code for checking case values from
9063 here.
9064 * decl2.c (check_cp_case_value): To here. And add a call to
9065 constant_expression_warning.
9066
9067 * typeck.c (convert_for_assignment): Don't complain about assigning
9068 a negative value to bool.
9069
9070 * decl.c (init_decl_processing): Make bool unsigned.
9071
9072 * class.c (finish_struct): Allow bool bitfields.
9073
2986ae00
MS
9074Wed May 18 12:35:27 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
9075
9076 * Make-lang.in (c++.install-man): Get g++.1 from $(srcdir)/cp.
9077
9078Wed May 18 03:28:35 1994 Jason Merrill (jason@deneb.cygnus.com)
9079
9080 * cvt.c (build_type_conversion): Lose special handling of
9081 truthvalues.
9082
9083 * search.c (dfs_pushdecls): Improve shadowing warning.
9084
9085Tue May 17 13:34:46 1994 Jason Merrill (jason@deneb.cygnus.com)
9086
9087 * init.c (build_delete): Throw away const and volatile on `this'.
9088
9089 * decl.c (finish_enum): Put the constants in TYPE_VALUES again,
9090 rather than the enumerators.
9091 (pushtag): s/cdecl/c_decl/g
9092
9093Mon May 16 23:04:01 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
9094
63718c49
GB
9095 * cp/typeck.c (common_type): Attribute merging.
9096 (comp_types): Utilise COMP_TYPE_ATTRIBUTES macro.
2986ae00 9097
63718c49 9098 * cp/parse.y: Revamp attribute parsing.
2986ae00
MS
9099
9100Mon May 16 01:40:34 1994 Jason Merrill (jason@deneb.cygnus.com)
9101
9102 * decl.c (shadow_tag): Also check for inappropriate use of auto and
9103 register.
9104
9105 * method.c (build_overload_name): Clarify that the illegal case is a
9106 pointer or reference to array of unknown bound.
9107
9108 * error.c (dump_type_prefix): Print references to arrays properly.
9109
9110 * typeck.c (various): Be more helpful in pointer
9111 comparison diagnostics.
9112
9113 * tree.c (lvalue_p): MODIFY_EXPRs are lvalues again. Isn't this
9114 fun?
9115
9116 * parse.y: Also catch an error after valid stmts.
9117
9118 * search.c (dfs_init_vbase_pointers): Don't abort because `this' is
9119 const.
9120
9121 * typeck.c (convert_for_initialization): If call to
9122 convert_to_reference generated a diagnostic, print out the parm
9123 number and function decl if any.
9124
9125 * errfn.c (cp_thing): Check atarg1 to determine whether or not we're
9126 specifying a line, not atarg.
9127
9128 * tree.c (build_cplus_method_type): Always make `this' const.
9129
9130 * decl2.c (grokclassfn): If -fthis-is-variable and this function is
9131 a constructor or destructor, make `this' non-const.
9132
9133 * typeck.c (build_modify_expr): Don't warn specially about
9134 assignment to `this' here anymore, since it will be caught by the
9135 usual machinery.
9136
9137 * various: Disallow specific GNU extensions (variable-size arrays,
9138 etc.) when flag_ansi is set, not necessarily when pedantic is set,
9139 so that people can compile with -pedantic-errors for tighter const
9140 checking and such without losing desirable extensions.
9141
9142 * typeck2.c (build_functional_cast): Call build_method_call with
9143 LOOKUP_PROTECT.
9144 (process_init_constructor): Only process FIELD_DECLs.
9145
9146 * decl.c (finish_decl): Also force static consts with no explicit
9147 initializer that need constructing into the data segment.
9148
9149 * init.c (build_delete): Undo last patch, as it interferes with
9150 automatic cleanups.
9151
9152Sat May 14 01:59:31 1994 Jason Merrill (jason@deneb.cygnus.com)
9153
9154 * call.c, class.h, cp-tree.h, cvt.c, decl2.c: Lose old overloading
9155 code.
9156
9157 * init.c (build_delete): pedwarn about using plain delete to delete
9158 an array.
9159
9160Fri May 13 16:45:07 1994 Jason Merrill (jason@deneb.cygnus.com)
9161
9162 * typeck.c (comp_target_types): Be more helpful in contravariance
9163 warnings, and make them pedwarns.
9164
9165 * decl.c (grokdeclarator): Use decl_context to decide whether or not
9166 this is an access declaration.
9167
9168 * class.c (finish_struct_bits): Set TYPE_HAS_INT_CONVERSION if it
9169 has a conversion to enum or bool, too.
9170
6060a796 9171Fri May 13 16:31:27 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
9172
9173 * method.c (emit_thunk): Make declaration for
9174 current_call_is_indirect local (needed for hppa).
9175
9176Fri May 13 16:16:37 1994 Jason Merrill (jason@deneb.cygnus.com)
9177
9178 * pt.c (uses_template_parms): Grok BOOLEAN_TYPE.
9179 (tsubst): Ditto.
9180
6060a796 9181Fri May 13 16:23:32 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
9182
9183 * pt.c (tsubst): If there is already a function for this expansion,
9184 use it.
9185 * pt.c (instantiate_template): Ditto.
9186
9187Fri May 13 10:30:42 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
9188
9189 * parse.y (implicitly_scoped_stmt, simple_stmt case): Use
9190 kept_level_p for MARK_ENDS argument to expand_end_bindings, to avoid
9191 generating debug info for unemitted symbols on some systems.
9192
9193 * cp-tree.h (build_static_cast, build_reinterpret_cast,
9194 build_const_cast): Add declarations.
9195
6060a796 9196Fri May 13 09:50:31 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
9197
9198 * search.c (expand_indirect_vtbls_init): Fix breakage from Apr 27
9199 fix. We now try get_binfo, and if that doesn't find what we want,
9200 we go back to the old method, which still sometimes fails.
9201
9202Fri May 13 01:43:18 1994 Jason Merrill (jason@deneb.cygnus.com)
9203
9204 * parse.y (initdcl): Call cplus_decl_attributes on the right
9205 variable.
9206 * decl2.c (cplus_decl_attributes): Don't call decl_attributes for
9207 void_type_node.
9208
9209 * typeck.c (build_binary_op_nodefault): Change result_type for
9210 comparison ops to bool.
9211 (build_binary_op): Convert args of && and || to bool.
9212 * cvt.c (build_default_binary_type_conversion): Convert args of &&
9213 and || to bool.
9214 (build_default_unary_type_conversion): Convert arg of ! to bool.
9215 (type_promotes_to): bool promotes to int.
9216
6060a796 9217Fri May 13 01:43:18 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
9218
9219 Implement the new builtin `bool' type.
9220 * typeck.c (build_binary_op_nodefault): Convert args of && and || to
9221 bool.
9222 (build_unary_op): Convert arg of ! to bool.
9223 * parse.y: Know true and false. Use bool_truthvalue_conversion.
9224 * method.c (build_overload_value): Know bool.
9225 (build_overload_name): Ditto.
9226 * lex.c (init_lex): Set up RID_BOOL.
9227 * gxx.gperf: Add bool, true, false.
9228 * error.c (*): Know bool.
9229 * decl.c (init_decl_processing): Set up bool, true, false.
9230 * cvt.c (cp_convert): Handle conversion to bool.
9231 (build_type_conversion): Ditto.
9232 * *.c: Accept bool where integers and enums are accepted (use
9233 INTEGRAL_CODE_P macro).
9234
8de7634e
RE
9235Thu May 12 19:13:54 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk)
9236
9237 * g++.c: Use #ifdef for __MSDOS__, not #if.
9238
6060a796 9239Thu May 12 18:05:18 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
9240
9241 * decl2.c (lang_f_options): Handle -fshort-temps. -fshort-temps
9242 gives old behavior , and destroys temporaries earlier. Default
9243 behavior now conforms to the ANSI working paper.
9244
9245Thu May 12 14:45:35 1994 Jason Merrill (jason@deneb.cygnus.com)
9246
9247 * typeck.c (build_modify_expr): Understand MODIFY_EXPR as an lvalue.
9248 Use convert_force to convert the result of a recursive call when we
9249 are dealing with a NOP_EXPR. Don't automatically wrap MODIFY_EXPRs
9250 in COMPOUND_EXPRs any more.
9251 (various): Lose pedantic_lvalue_warning.
9252 (unary_complex_lvalue): Understand MODIFY_EXPR.
9253
9254 * cvt.c (convert_to_reference): Allow DECL to be error_mark_node if
9255 we don't know what we're initializing.
9256
9257Wed May 11 01:59:36 1994 Jason Merrill (jason@deneb.cygnus.com)
9258
9259 * cvt.c (convert_to_reference): Modify to use convtype parameter.
9260 Only create temporaries when initializing a reference, not when
9261 casting.
9262 (cp_convert): New main function.
9263 (convert): Call cp_convert.
9264 * cvt.c, decl.c, typeck.c: Fix calls to convert_to_reference.
9265 * cp-tree.h (CONV_*): New constants used by conversion code for
9266 selecting conversions to perform.
9267
9268 * tree.c (lvalue_p): MODIFY_EXPRs are no longer lvalues.
9269
9270 * typeck.c (build_{static,reinterpret,const_cast): Stubs that just
9271 call build_c_cast.
9272 * parse.y: Add {static,reinterpret,const}_cast.
9273 * gxx.gperf: Ditto.
9274
9275 * typeck.c (common_type): Allow methods with basetypes of different
9276 UPTs.
9277 (comptypes): Deal with UPTs.
9278 (build_modify_expr): Wrap all MODIFY_EXPRs in a COMPOUND_EXPR.
9279
9280 * pt.c (end_template_decl): Check for multiple definitions of member
9281 templates.
9282
9283 * call.c (build_method_call): Complain about calling an abstract
9284 virtual from a constructor.
9285
9286 * typeck.c (pointer_int_sum): Check for the integer operand being 0
9287 after checking the validity of the pointer operand.
9288
9289 * typeck2.c (digest_init): Pedwarn about string initializer being
9290 too long.
9291
9292Tue May 10 12:10:28 1994 Jason Merrill (jason@deneb.cygnus.com)
9293
9294 * decl.c (push_overloaded_decl): Only throw away a builtin if the
9295 decl in question is the artificial one.
9296
9297 * parse.y (simple_stmt, switch): Use implicitly_scoped_stmt because
9298 expand_{start,end}_case cannot happen in the middle of a block.
9299
9300 * cvt.c (build_type_conversion_1): Use convert again.
9301
9302Tue May 10 11:52:04 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
9303
9304 * typeck2.c (digest_init): Make sure we check for signed and
9305 unsigned chars as well when warning about string initializers.
9306
9307 * init.c (emit_base_init): Check if there's a DECL_NAME on the
9308 member before trying to do an initialization for it.
9309
6060a796 9310Tue May 10 11:34:37 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
9311
9312 * except.c: Don't do anything useful when cross compiling.
9313
9314Tue May 10 03:04:13 1994 Jason Merrill (jason@deneb.cygnus.com)
9315
9316 * decl.c (duplicate_decls): Fix up handling of builtins yet again.
9317 (push_overloaded_decl): Ditto.
9318
9319 * cvt.c (convert): Don't look for void type conversion.
9320
9321Mon May 9 18:05:41 1994 Jason Merrill (jason@deneb.cygnus.com)
9322
9323 * init.c (do_friend): Only do a pushdecl for friends, not
9324 pushdecl_top_level.
9325
9326Mon May 9 13:36:34 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
9327
9328 * decl.c (lookup_name_current_level): Put empty statement after
9329 the label OUT to make the code valid C.
9330
9331Mon May 9 12:20:57 1994 Jason Merrill (jason@deneb.cygnus.com)
9332
9333 * typeck.c (build_binary_op_nodefault): Only complain about
9334 comparing void * and a function pointer if void * is smaller.
9335
9336Sun May 8 01:29:13 1994 Jason Merrill (jason@deneb.cygnus.com)
9337
9338 * decl.c (lookup_name_current_level): Move through temporary binding
9339 levels.
9340
9341 * parse.y (already_scoped_stmt): Revive.
9342 (simple_stmt): Use it again.
9343
9344 * decl.c (poplevel): Always call poplevel recursively if we're
9345 dealing with a temporary binding level.
9346
6060a796 9347Sat May 7 10:52:28 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
9348
9349 * decl.c (finish_decl): Make sure we run cleanups for initial values
9350 of decls. Cures memory leak.
9351 * decl.c (expand_static_init): Ditto for static variables.
9352 * decl2.c (finish_file): Ditto for globals.
9353
9354Sat May 7 03:57:44 1994 Jason Merrill (jason@deneb.cygnus.com)
9355
9356 * typeck.c (commonparms): Don't complain about redefining default
9357 args.
9358
9359 * decl.c (duplicate_decls): Don't complain twice about conflicting
9360 function decls.
9361 (decls_match): Don't look at default args.
9362 (redeclaration_error_message): Complain about redefining default
9363 args.
9364
9365 * call.c (build_overload_call_real): Also deal with guiding
9366 declarations coming BEFORE the template decl.
9367
9368 * pt.c (unify): Allow different parms to have different
9369 cv-qualifiers.
9370 (unify): Allow trivial conversions on non-template parms.
9371
9372Fri May 6 03:53:23 1994 Jason Merrill (jason@deneb.cygnus.com)
9373
9374 * pt.c (tsubst): Support OFFSET_TYPEs.
9375 (unify): Ditto.
9376
9377 * decl2.c (finish_decl_parsing): Call push_nested_class with a type.
9378
9379 * init.c (build_offset_ref): Fix error message.
9380 * search.c (lookup_field): Ditto.
9381
9382 * call.c (build_scoped_method_call): Pass binfo to
9383 build_method_call.
9384 * typeck.c (build_object_ref): Ditto.
9385
9386 * typeck2.c (binfo_or_else): Don't return a _TYPE.
9387
9388 * class.c (finish_struct): Don't complain about re-use of inherited
9389 names or shadowing of type decls.
9390 * decl.c (pushdecl_class_level): Ditto.
9391
9392 * decl.c (finish_enum): Set the type of all the enums.
9393
9394 * class.c (finish_struct): Don't get confused by access decls.
9395
9396 * cp-tree.h (TYPE_MAIN_DECL): New macro to get the _DECL for a
9397 _TYPE. You can stop using TYPE_NAME for that now.
9398
9399 * parse.y: Lose doing_explicit (check $0 instead).
9400 * gxx.gperf: 'template' now has a RID.
9401 * lex.h (rid): Ditto.
9402 * lex.c (init_lex): Set up the RID for 'template'.
9403
9404 * parse.y (type_specifier_seq): typed_typespecs or
9405 nonempty_type_quals. Use it.
9406 (handler_args): Fix bogus syntax.
9407 (raise_identifier{,s}, optional_identifier): Lose.
9408 * except.c (expand_start_catch_block): Use grokdeclarator to parse
9409 the catch variable.
9410 (init_exception_processing): The second argument to
9411 __throw_type_match is ptr_type_node.
9412
9413 Fri May 6 07:18:54 1994 Chip Salzenberg (chip@fin)
9414
9415 [ change propagated from c-decl.c of snapshot 940429 ]
9416 * cp/decl.c (finish_decl): Setting asmspec_tree should not
9417 zero out the old RTL.
9418
6060a796 9419Fri May 6 01:25:38 1994 Mike Stump <mrs@cygnus.com>
8d2733ca
MS
9420
9421 Add alpha exception handling support to the compiler.
9422 Quick and dirty backend in except.c.
9423
9424 * cp/*: Remove most remnants of old exception handling support.
9425 * decl.c (finish_function): Call expand_exception_blocks to put
9426 the exception hanlding blocks at the end of the function.
9427 * dec.c (hack_incomplete_structures): Make sure expand_decl_cleanup
9428 comes after expand_decl_init.
9429 * except.c: Reimplementation.
9430 * expr.c (cplus_expand_expr): Handle THROW_EXPRs.
9431 * lex.c (init_lex): Always have catch, try and throw be reserved
9432 words, so that we may always parse exception handling.
9433 * parse.y: Cleanup to support new interface into exception handling.
9434 * tree.def (THROW_EXPR): Add.
9435
9436Thu May 5 17:35:37 1994 Jason Merrill (jason@deneb.cygnus.com)
9437
9438 * parse.y (simple_stmt, for loops): Use implicitly_scoped_stmt.
9439 (various): Lose .kindof_pushlevel and partially_scoped_stmt.
9440
9441Thu May 5 16:17:27 1994 Kung Hsu (kung@mexican.cygnus.com)
9442
9443 * parse.y (already_scoped_stmt): move expand_end_binding() to
9444 fix the unmatched LBB/LBE in stabs.
9445
9446Thu May 5 14:36:17 1994 Jason Merrill (jason@deneb.cygnus.com)
9447
9448 * decl.c (set_nested_typename): Set TREE_MANGLED on the new
9449 identifiers.
9450 (pushdecl): Check TREE_MANGLED.
9451 (xref_tag): Ditto.
9452 * cp-tree.h (TREE_MANGLED): This identifier is a
9453 DECL_NESTED_TYPENAME (named to allow for future use to denote
9454 mangled function names as well).
9455
9456 Implement inconsistency checking specified in [class.scope0].
9457 * decl.c (lookup_name_real): Don't set ICV here after all.
9458 (finish_enum): Also set the type of the enumerators themselves.
9459 (build_enumerator): Put the CONST_DECL in the list instead of its
9460 initial value.
9461 (pushdecl_class_level): Check inconsistent use of a name in the
9462 class body.
9463 * class.c (finish_struct): Check inconsistent use of a name in the
9464 class body. Don't set DECL_CONTEXT on types here anymore.
9465 * parse.y (qualified_type_name): Note that the identifier has now
9466 been used (as a type) in the class body.
9467 * lex.c (do_identifier): Note that the identifier has now been used
9468 (as a constant) in the class body.
9469 * error.c (dump_decl): Print type and enum decls better.
9470
700f8a87
MS
9471Thu May 5 09:35:35 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
9472
9473 * typeck.c (build_modify_expr): Warn about assignment to `this'.
9474
9475Wed May 4 15:55:49 1994 Jason Merrill (jason@deneb.cygnus.com)
9476
9477 * init.c (build_delete): Use the global operator delete when
9478 requested.
9479
9480 * decl.c (lookup_name_real): If we find the type we're looking in a
9481 base class while defining a class, set IDENTIFIER_CLASS_VALUE for
9482 the type.
9483
9484 * class.c (finish_struct): Remove a couple of dependencies on
9485 language linkage.
9486
9487 * decl.c (pushtag): Classes do nest in extern "C" blocks.
9488 (pushdecl): Only set DECL_NESTED_TYPENAME on the canonical one for
9489 the type.
9490 (pushtag): Remove another dependency on the language linkage.
9491
9492 * lex.c (cons_up_default_function): Don't set DECL_CLASS_CONTEXT to
9493 a const-qualified type.
9494
9495 * decl.c (push_overloaded_decl): Throw away built-in decls here.
9496 (duplicate_decls): Instead of here.
9497
9498Wed May 4 15:27:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
9499
9500 * typeck.c (get_member_function_from_ptrfunc): Do The Right
9501 Thing (I hope) if we're using thunks.
9502
9503Wed May 4 13:52:38 1994 Jason Merrill (jason@deneb.cygnus.com)
9504
9505 * parse.y (specialization): aggr template_type_name ';'.
9506 (named_class_head_sans_basetype): Use it.
9507 (explicit_instantiation): Ditto.
9508 (tmpl.2): Revert.
9509
9510 * cvt.c (build_type_conversion_1): Use convert_for_initialization,
9511 rather than convert, to do conversions after the UDC.
9512
9513 * cp-tree.h (SHARED_MEMBER_P): This member is shared between all
9514 instances of the class.
9515
9516 * search.c (lookup_field): If the entity found by two routes is the
9517 same, it's not ambiguous.
9518
9519Wed May 4 12:10:00 1994 Per Bothner (bothner@kalessin.cygnus.com)
9520
9521 * decl.c (lookup_name_real): Check for a NULL TREE_VALUE,
9522 to prevent the compiler from crashing ...
9523
9524Wed May 4 11:19:45 1994 Jason Merrill (jason@deneb.cygnus.com)
9525
9526 * call.c (build_method_call): If we don't have an object, check
9527 basetype_path to figure out where to look up the function.
9528
9529 * typeck.c (convert_for_initialization): Pass TYPE_BINFO (type) to
9530 build_method_call in case exp is NULL_TREE.
9531
9532Tue May 3 16:02:53 1994 Per Bothner (bothner@kalessin.cygnus.com)
9533
9534 Give a vtable entries a unique named type, for the sake of gdb.
9535 * class.c (build_vtable_entry): The addres of a thunk now has
9536 type vtable_entry_type, not ptr_type_node.
9537 * method.c (make_thunk): Fix type of THUNK_DECL.
9538 * class.c (add_virtual_function, override_one_vtable): Use
9539 vfunc_ptr_type_node, instead of ptr_type_node.
9540 * cp-tree.h (vfunc_ptr_type_node): New macro.
9541 * decl.c (init_decl_processing): Make vtable_entry_type
9542 be a unique type of pointer to a unique function type.
9543
9544Tue May 3 09:20:44 1994 Jason Merrill (jason@deneb.cygnus.com)
9545
9546 * parse.y (do_explicit): Sets doing_explicit to 1.
9547 (explicit_instantiation): Use do_explicit rather than TEMPLATE
9548 directly, add "do_explicit error" rule.
9549 (datadef): Set doing_explicit to 0 after an explicit instantiation.
9550 (tmpl.2): Don't instantiate if we see a ';' unless we're doing an
9551 explicit instantiation.
9552 (named_class_head_sans_basetype): Remove aggr template_type_name
9553 ';' again.
9554
9555Mon May 2 23:17:21 1994 Jason Merrill (jason@deneb.cygnus.com)
9556
9557 * search.c (lookup_nested_tag): Lose.
9558
9559 * decl2.c (grokfield): Set DECL_CONTEXT on TYPE_DECLs.
9560 (lookup_name_nonclass): Lose.
9561
9562 * decl.c (poplevel_class): Add force parameter.
9563 (lookup_name_real): Fix handling of explicit scoping which specifies
9564 a class currently being defined. Add 'nonclass' argument.
9565 (lookup_name, lookup_name_nonclass): Shells for lookup_name_real.
9566
9567 * class.c (finish_struct): Don't unset IDENTIFIER_CLASS_VALUEs here.
9568 (popclass): Force clearing of IDENTIFIER_CLASS_VALUEs if we're being
9569 called from finish_struct.
9570
9571Mon May 2 19:06:21 1994 Per Bothner (bothner@kalessin.cygnus.com)
9572
9573 * decl.c (init_decl_processing), cp-tree.h: Removed memptr_type.
9574 (It seeems redundant, given build_ptrmemfunc_type.)
9575 * typeck.c (get_member_function_from_ptrfunc), gc.c (build_headof,
9576 build_classof): Use vtable_entry_type instead of memptr_type.
9577 * method.c (emit_thunk): Call poplevel with functionbody==0
9578 to prevent DECL_INITIAL being set to a BLOCK.
9579
9580Mon May 2 15:02:11 1994 Jason Merrill (jason@deneb.cygnus.com)
9581
9582 * parse.y (named_class_head_sans_basetype): Add "aggr
9583 template_type_name ';'" rule for forward declaration of
9584 specializations.
9585
9586Mon May 2 15:02:11 1994 Jason Merrill (jason@deneb.cygnus.com)
9587
9588 * class.c (instantiate_type): Deal with pmf's.
bfef964b
JM
9589
9590 * Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since
9591 stamp-objlist does.
700f8a87 9592
bfef964b
JM
9593 * Makefile.in (../cc1plus): Depend on OBJDEPS.
9594 (OBJDEPS): Dependency version of OBJS.
9595
700f8a87
MS
9596Mon May 2 12:51:31 1994 Kung Hsu (kung@mexican.cygnus.com)
9597
9598 * search.c (dfs_debug_mark): unmark TYPE_DECL_SUPPRESS_DEBUG, not
9599 DECL_IGNORED_P.
9600
9601Fri Apr 29 12:29:56 1994 Jason Merrill (jason@deneb.cygnus.com)
9602
9603 * class.c (finish_struct): Clear out memory of local tags. And
9604 typedefs.
9605
9606 * decl2.c (grokclassfn): Don't set DECL_CONTEXT to a cv-qualified
9607 type.
9608 * search.c (get_matching_virtual): Be more helpful in error message.
9609
9610 * *: Use DECL_ARTIFICIAL (renamed from DECL_SYNTHESIZED).
9611
9612 * lex.c (default_assign_ref_body): Expect TYPE_NESTED_NAME to work.
9613 (default_copy_constructor_body): Ditto.
9614
9615 * class.c (finish_struct): Don't gratuitously create multiple decls
9616 for nested classes.
9617
9618Thu Apr 28 23:39:38 1994 Jason Merrill (jason@deneb.cygnus.com)
9619
9620 Avoid clobbering the arg types of other functions when reverting
9621 static member functions.
9622 * decl.c (revert_static_member_fn): Rearrange arguments, don't
9623 require values for 'fn' and 'argtypes', add warning to comment
9624 above.
9625 (decls_match): Rearrange arguments in call to rsmf.
9626 (grok_op_properties): Don't pass values for fn and argtypes.
9627 * pt.c (instantiate_template): Don't pass values for fn and argtypes.
9628
15fa00e9
DE
9629Thu Apr 28 16:29:11 1994 Doug Evans (dje@canuck.cygnus.com)
9630
9631 * Make-lang.in (cc1plus): Depend on stamp-objlist.
9632 * Makefile.in (BC_OBJS): Delete.
700f8a87
MS
9633 (OBJS): Cat ../stamp-objlist to get language independent files.
9634 Include ../c-common.o.
15fa00e9
DE
9635 (../cc1plus): Delete reference to BC_OBJS.
9636
700f8a87
MS
9637Thu Apr 28 02:12:08 1994 Jason Merrill (jason@deneb.cygnus.com)
9638
9639 * search.c (compute_access): No really, deal with static members
9640 properly. Would I lie to you?
9641
9642 Implement lexical hiding of function declarations.
9643 * pt.c (tsubst): Use lookup_name to look for function decls to guide
9644 instantiation.
9645 * method.c (build_opfncall): Use lookup_name_nonclass to look for
9646 non-member functions.
9647 * init.c (do_friend): Use lookup_name_nonclass to look for
9648 functions.
9649 * error.c (ident_fndecl): Use lookup_name to look for functions.
9650 * decl2.c (lookup_name_nonclass): New function, skips over
9651 CLASS_VALUE.
9652 * decl.c (struct binding_level): Lose overloads_shadowed field.
9653 (poplevel): Don't deal with overloads_shadowed.
9654 (push_overloaded_decl): Do lexical hiding for functions.
9655 * class.c (instantiate_type): Don't check non-members if we have
9656 members with the same name.
9657 * call.c (build_method_call): Use lookup_name_nonclass instead of
9658 IDENTIFIER_GLOBAL_VALUE to check for non-member functions.
9659 (build_overload_call_real): Ditto.
9660
9661 * decl.c (duplicate_decls): Check for ambiguous overloads here.
9662 (push_overloaded_decl): Instead of here.
9663
9664 * decl.c (pushdecl): Back out Chip's last change.
9665
9666 * decl.c (grok_op_properties): operators cannot be static members.
9667
9668 * cp-tree.h (DECL_SYNTHESIZED): DECL_SOURCE_LINE == 0
9669 (SET_DECL_SYNTHESIZED): DECL_SOURCE_LINE = 0
9670 * lex.c (cons_up_default_function): Use SET_DECL_SYNTHESIZED.
9671
9672 * method.c (do_inline_function_hair): Don't put friends of local
9673 classes into global scope, either.
9674
9675 * typeck2.c (build_functional_cast): Don't look for a function call
9676 interpretation.
9677
6060a796 9678Thu Apr 28 15:19:46 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
9679
9680 * cp-tree.h: disable use of backend EH.
9681
15fa00e9
DE
9682Wed Apr 27 21:01:24 1994 Doug Evans (dje@canuck.cygnus.com)
9683
9684 * Make-lang.in (c++.distdir): mkdir tmp/cp first.
9685 * Makefile.in (INCLUDES): Move definition to same place as
9686 parent makefile.
9687 (ALLOCA): Define.
9688 (OLDAR_FLAGS): Delete.
9689 (OLDCC): Define.
9690 (DIR): Delete.
9691 (CLIB): Define.
9692 (####site): Delete.
9693 (SUBDIR_USE_ALLOCA): Don't use ALLOCA if compiling with gcc.
9694
39211cd5
MS
9695Wed Apr 27 19:10:04 1994 Kung Hsu (kung@mexican.cygnus.com)
9696
9697 * decl.c (xref_tag): not to use strstr(), it's not available on
9698 all platforms.
9699
9700Wed Apr 27 18:10:12 1994 Jason Merrill (jason@deneb.cygnus.com)
9701
9702 * class.c (finish_struct): Resolve yet another class/pmf confusion.
9703
9704 * call.c (build_overload_call_real): Don't take the single-function
9705 shortcut if we're dealing with an overloaded operator.
9706
6060a796 9707Wed Apr 27 17:35:37 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
9708
9709 * search.c (get_base_distance): Search the virtual base class
9710 binfos, incase someone wants to convert to a real virtual base
9711 class.
9712 * search.c (expand_indirect_vtbls_init): Use convert_pointer_to_real
9713 instead of convert_pointer_to, as it now will work.
9714
9715Wed Apr 27 15:36:49 1994 Jason Merrill (jason@deneb.cygnus.com)
9716
9717 * cvt.c (convert_to_reference): Don't complain about casting away
9718 const and volatile.
9719
9720 * typeck.c (build_unary_op): References are too lvalues.
9721
6060a796 9722Wed Apr 27 13:58:05 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
9723
9724 * class.c (override_one_vtable): We have to prepare_fresh_vtable
9725 before we modify it, not after, also, we cannot reuse an old vtable,
9726 once we commit to a new vtable. Implement ambiguous overrides in
9727 virtual bases as abstract. Hack until we make the class
9728 ill-formed.
9729
9730Wed Apr 27 01:17:08 1994 Jason Merrill (jason@deneb.cygnus.com)
9731
9732 * parse.y (unary_expr): Expand new_placement[opt] and
9733 new_initializer[opt] inline.
9734
9735 * search.c (lookup_fnfields): Don't throw away the inheritance
9736 information here, either.
9737 (compute_access): Handle static members properly.
9738
9739 * init.c (build_member_call): Always set basetype_path, and pass it
9740 to lookup_fnfields.
9741
9742 * search.c (lookup_field): Deal properly with the case where
9743 xbasetype is a chain of binfos; don't throw away the inheritance
9744 information.
9745 (compute_access): protected_ok always starts out at 0.
9746
9747 * init.c (resolve_offset_ref): Don't cast `this' to the base type
9748 until we've got our basetype_path.
9749
9750 * cp-tree.h (IS_OVERLOAD_TYPE): aggregate or enum.
9751
9752 * cvt.c (build_up_reference): Use build_pointer_type rather than
9753 TYPE_POINTER_TO.
9754
9755 * call.c (convert_harshness_ansi): Call type_promotes_to for reals
9756 as well.
9757
9758 * cvt.c (type_promotes_to): Retain const and volatile, add
9759 float->double promotion.
9760
9761 * decl.c (grokdeclarator): Don't bash references to arrays into
9762 references to pointers in function parms. Use type_promotes_to.
9763
6060a796 9764Tue Apr 26 23:44:36 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
9765
9766 Finish off Apr 19th work.
9767
9768 * class.c (finish_struct_bits): Rename has_abstract_virtuals to
9769 might_have_abstract_virtuals.
9770 * class.c (strictly_overrides, override_one_vtable,
9771 merge_overrides): New routines to handle virtual base overrides.
9772 * class.c (finish_struct): Call merge_overrides to handle overrides
9773 in virtual bases.
9774
9775Tue Apr 26 12:45:53 1994 Jason Merrill (jason@deneb.cygnus.com)
9776
9777 * typeck.c (build_function_call): Call build_function_call_real with
9778 LOOKUP_NORMAL.
9779
9780 * *: Don't deal with TYPE_EXPRs.
9781
9782 * tree.c (lvalue_p): If the type of the expression is a reference,
9783 it's an lvalue.
9784
9785 * cvt.c (convert_to_reference): Complain about passing const
9786 lvalues to non-const references.
9787 (convert_from_reference): Don't arbitrarily throw away const and
9788 volatile on the target type.
9789
9790 * parse.y: Simplify and fix rules for `new'.
9791
9792 * decl.c (grok_op_properties): operator void is illegal.
9793
9794Mon Apr 25 02:36:28 1994 Jason Merrill (jason@deneb.cygnus.com)
9795
9796 * parse.y (components): Anonymous bitfields can still have declspecs.
9797
9798 * decl.c (pushdecl): Postpone handling of function templates like we
9799 do C functions.
9800
9801 * search.c (expand_indirect_vtbls_init): Fix infinite loop when
9802 convert_pointer_to fails.
9803
9804 * call.c (compute_conversion_costs_ansi): A user-defined conversion
9805 by itself is better than that UDC followed by standard conversions.
9806 Don't treat integers and reals specially.
9807
9808 * cp-tree.h: Declare flag_ansi.
9809
9810 * typeck.c (c_expand_return): pedwarn on return in void function
9811 even if the expression is of type void.
9812 (build_c_cast): Don't do as much checking for casts to void.
9813 (build_modify_expr): pedwarn about array assignment if this code
9814 wasn't generated by the compiler.
9815
9816 * tree.c (lvalue_p): A comma expression is an lvalue if its second
9817 operand is.
9818
9819 * typeck.c (default_conversion): Move code for promoting enums and
9820 ints from here.
9821 * cvt.c (type_promotes_to): To here.
9822 * call.c (convert_harshness_ansi): Use type_promotes_to. Also fix
9823 promotion semantics for reals.
9824
15fa00e9
DE
9825Sun Apr 24 16:52:51 1994 Doug Evans (dje@canuck.cygnus.com)
9826
9827 * Make-lang.in (c++.install-common): Check for g++-cross.
9828 * Makefile.in: Remove Cygnus cruft.
9829 (config.status): Delete.
9830 (RTL_H): Define.
9831 (TREE_H): Use complete pathname, some native makes have minimal
9832 VPATH support.
9833 (*.o): Use complete pathname to headers in parent dir.
9834 (doc, info, dvi): Delete.
9835
700f8a87
MS
9836Sun Apr 24 16:52:51 1994 Doug Evans (dje@canuck.cygnus.com)
9837
9838 * Make-lang.in (c++.install-common): Check for g++-cross.
9839 * Makefile.in: Remove Cygnus cruft.
9840 (config.status): Delete.
9841 (RTL_H): Define.
9842 (TREE_H): Use complete pathname, some native makes have minimal
9843 VPATH support.
9844 (*.o): Use complete pathname to headers in parent dir.
9845 (doc, info, dvi): Delete.
9846
39211cd5
MS
9847Sun Apr 24 00:47:49 1994 Jason Merrill (jason@deneb.cygnus.com)
9848
9849 * decl.c (pushdecl): Avoid redundant warning on redeclaring function
9850 with different return type.
9851 (decls_match): Compare return types strictly.
9852
9853Fri Apr 22 12:55:42 1994 Jason Merrill (jason@deneb.cygnus.com)
9854
9855 * cvt.c (build_type_conversion): Do try to convert through other
9856 pointers. This will fail if the class defines multiple pointer
9857 conversions.
9858
9859 * error.c (dump_type_prefix): Print out pointers to arrays properly.
9860 (dump_type_suffix): Ditto. (was 'int *[]', now 'int (*)[]')
9861
9862 * typeck.c (build_unary_op): Disallow ++/-- on pointers to
9863 incomplete type.
9864
9865 * decl.c (duplicate_decls): Check mismatched TREE_CODES after
9866 checking for shadowing a builtin. If we're redeclaring a builtin
9867 function, bash the old decl to avoid an ambiguous overload.
9868
9869 * cvt.c (convert_to_reference): Don't force arrays to decay here.
9870
9871 * tree.c (lvalue_p): A MODIFY_EXPR is an lvalue.
9872
9873 * decl.c (duplicate_decls): Don't assume that the decls will have
9874 types.
9875
9876 Mon Apr 18 11:35:32 1994 Chip Salzenberg (chip@fin.uucp)
9877
9878 [ cp/* changes propagated from c-* changes in 940318 snapshot ]
9879 * c-decl.c (pushdecl): Warn if type mismatch with another external decl
9880 in a global scope.
9881
9882 Fri Apr 22 06:38:56 1994 Chip Salzenberg (chip@fin.uucp)
9883
9884 * cp/typeck2.c (signature_error): Use cp_error for "%T".
9885
9886 Mon Apr 18 11:59:59 1994 Chip Salzenberg (chip@fin.uucp)
9887
9888 [ cp/* changes propagated from c-* changes in 940415 snapshot ]
9889 * cp/decl.c (duplicate_decls, pushdecl, builtin_function):
9890 Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE.
9891
9892 Mon Apr 18 11:55:18 1994 Chip Salzenberg (chip@fin.uucp)
9893
9894 [ cp/* changes propagated from c-* changes in 940409 snapshot ]
9895 * cp/decl.c (duplicate_decls): Put new type in same obstack as
9896 old ones, or permanent if old ones in different obstacks.
9897
9898 Mon Apr 18 11:48:49 1994 Chip Salzenberg (chip@fin.uucp)
9899
9900 [ cp/* changes propagated from c-* changes in 940401 snapshot ]
9901 * cp/parse.y (attrib): Handle string args as expressions,
9902 merging the two rules. `mode' attribute now takes a string arg.
9903 Delete the rule for an identifier as arg.
9904
9905 Mon Apr 18 11:24:00 1994 Chip Salzenberg (chip@fin.uucp)
9906
9907 [ cp/* changes propagated from c-* changes in 940312 snapshot ]
9908 * cp/typeck.c (pointer_int_sum): Multiplication should be done signed.
9909 (pointer_diff): Likewise the division.
9910
9911 Sun Mar 6 19:43:39 1994 Chip Salzenberg (chip@fin.uucp)
9912
9913 [ cp/* changes propagated from c-* changes in 940304 snapshot ]
9914 * cp/decl.c (finish_decl): Issue warning for large objects,
9915 if requested.
9916
9917 Sat Feb 19 22:20:32 1994 Chip Salzenberg (chip@fin.uucp)
9918
9919 [ cp/* changes propagated from c-* changes in 940218 snapshot ]
9920 * cp/parse.y (attrib): Handle attribute ((section ("string"))).
9921 * cp/decl.c (duplicate_decls): Merge section name into new decl.
9922
9923 Tue Feb 8 09:49:17 1994 Chip Salzenberg (chip@fin.uucp)
9924
9925 [ cp/* changes propagated from c-* changes in 940206 snapshot ]
9926 * cp/typeck.c (signed_or_unsigned_type): Check for any
63718c49 9927 INTEGRAL_TYPE_P not just INTEGER_TYPE.
39211cd5
MS
9928
9929 Mon Dec 6 13:35:31 1993 Norbert Kiesel (norbert@i3.INformatik.rwth-aachen.DE)
9930
9931 * cp/decl.c (finish_enum): Start from 0 when determining precision
9932 for short enums.
9933
9934 Fri Dec 3 17:07:58 1993 Ralph Campbell (ralphc@pyramid.COM)
9935
9936 * cp/parse.y (unary_expr): Look at $1 for tree_code rather than
9937 casting $$.
9938
9939 Wed Nov 17 19:22:09 1993 Chip Salzenberg (chip@fin.uucp)
9940
9941 * cp/typeck.c (build_binary_op_nodefault): Propagate code
9942 from C front-end to optimize unsigned short division.
9943 (build_conditional_expr): Fix bug in "1 ? 42 : (void *) 8".
9944
9945 Wed Nov 17 19:17:18 1993 Chip Salzenberg (chip@fin.uucp)
9946
9947 * cp/call.c (convert_harshness_ansi): Given an (e.g.) char
9948 constant, prefer 'const char &' to 'int'.
9949
9950 Wed Feb 3 13:11:48 1993 Chip Salzenberg (chip@fin.uucp)
9951
9952 * cp/class.c (finish_struct_methods): Handle multiple
9953 constructors in fn_fields list.
9954
9955Fri Apr 22 12:48:10 1994 Kung Hsu (kung@mexican.cygnus.com)
9956
9957 * class.c (finish_struct): use TYPE_DECL_SUPPRESS_DEBUG to flag
9958 types not to be dumped in stabs, like types in #pragma interface.
9959 * decl.c (init_decl_processing): use TYPE_DECL_SUPPRESS_DEBUG to
9960 mark unknown type.
9961
15fa00e9
DE
9962Fri Apr 22 03:27:26 1994 Doug Evans (dje@cygnus.com)
9963
9964 * Language directory reorganization.
9965 See parent makefile.
9966
39211cd5
MS
9967Thu Apr 21 18:27:57 1994 Per Bothner (bothner@kalessin.cygnus.com)
9968
9969 * cp-tree.h (THUNK_DELTA): It is normally negative, so
9970 use signed .i variant of frame_size rather than unsigned .u.
9971 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
9972 use "VT" rather than "vt" due to binary incompatibility.
9973 * class.c (get_vtable_name): Use strlen of VTABLE_NAME_FORMAT,
9974 rather than sizeof, since it is now an expression.
9975 * class.c (modify_one_vtable): Modify to skip initial element
9976 containing a count of the vtable.
9977
7177d104
MS
9978Thu Apr 21 00:09:02 1994 Jason Merrill (jason@deneb.cygnus.com)
9979
9980 * lex.c (check_newline): Force interface_unknown on main input file.
9981
9982 * pt.c (do_pending_expansions): Always emit functions that have been
9983 explicitly instantiated.
9984 (do_function_instantiation): Set DECL_EXPLICITLY_INSTANTIATED.
9985 (do_type_instantiation): Set CLASSTYPE_VTABLE_NEEDS_WRITING and
9986 DECL_EXPLICITLY_INSTANTIATED on all my methods.
9987 * parse.y (explicit_instantiation): Call do_type_instantiation for
9988 types.
9989 * decl2.c (finish_vtable_vardecl): Call import_export_vtable.
9990 * decl.c (start_function): Don't set DECL_EXTERNAL on a function
9991 that has been explicitly instantiated.
9992 * cp-tree.h (DECL_EXPLICITLY_INSTANTIATED): Alias for
9993 DECL_LANG_FLAG_4.
9994 * class.c: Move import_export_vtable to decl2.c, and comment out all
9995 uses.
9996
9997Wed Apr 20 16:51:06 1994 Jason Merrill (jason@deneb.cygnus.com)
9998
9999 * lex.c (process_next_inline): Don't muck with DECL_INLINE.
10000 (do_pending_inlines): Ditto.
10001
6060a796 10002Tue Apr 19 22:25:41 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10003
10004 Reimplement vtable building, and most vtable pointer setting.
10005 Allows for earier maintenance, easier understandability, and most
10006 importantly, correct semantics.
10007
10008 * class.c (build_vtable): Removed unneeded
10009 SET_BINFO_VTABLE_PATH_MARKED.
10010 * class.c (prepare_fresh_vtable): Ditto. Added argument.
10011 * class.c (modify_vtable_entry): General cleanup.
10012 * class.c (related_vslot, is_normal, modify_other_vtable_entries,
10013 modify_vtable_entries): Removed.
10014 * class.c (add_virtual_function): General cleanup.
10015 * class.c (finish_base_struct): Setup BINFO_VTABLE and
10016 BINFO_VIRTUALS as early as we can, so that modify_all_vtables can
10017 work.
10018 * class.c (finish_vtbls): New routine, mostly from
10019 unmark_finished_struct.
10020 * class.c (overrides): New routine.
10021 * class.c (modify_one_vtable): New routine, mostly from
10022 modify_other_vtable_entries and modify_vtable_entries.
10023 * class.c (modify_all_direct_vtables, modify_all_indirect_vtables,
10024 modify_all_vtables): New routines.
10025 * class.c (finish_struct): Added arguemnt to prepare_fresh_vtable
10026 call. General cleanup on how pending_hard_virtuals are handled.
10027 General cleanup on modifying vtables. Use finish_vtbls, instead of
10028 unmark_finished_struct.
10029 * cp-tree.h (init_vtbl_ptrs, expand_direct_vtbls_init,
10030 get_first_matching_virtual, get_matching_virtual,
10031 expand_vbase_vtables_init, expand_indirect_vtbls_init): Update.
10032 * cvt.c (convert_pointer_to_real): cleanup error message.
10033 * decl.c (grokfndecl): General cleanup.
10034 * decl.c (finish_function): Change init_vtbl_ptrs call to
10035 expand_direct_vtbls_init. Change expand_vbase_vtables_init call to
10036 expand_indirect_vtbls_init.
10037 * init.c (expand_virtual_init): Remove unneeded argument.
10038 * init.c (init_vtbl_ptrs): Rename to expand_direct_vtbls_init, added
10039 two arguments to make more general. Made more general. Now can be
10040 used for vtable pointer initialization from virtual bases.
10041 * init.c (emit_base_init): Change expand_vbase_vtables_init call to
10042 expand_indirect_vtbls_init. Change init_vtbl_ptrs call to
10043 expand_direct_vtbls_init.
10044 * init.c (expand_virtual_init): General cleanup.
10045 * init.c (expand_default_init): Change expand_vbase_vtables_init
10046 call to expand_indirect_vtbls_init.
10047 * init.c (expand_recursive_init_1): Change expand_vbase_vtables_init
10048 call to expand_indirect_vtbls_init.
10049 * init.c (expand_recursive_init): Change expand_vbase_vtables_init
10050 call to expand_indirect_vtbls_init.
10051 * search.c (get_first_matching_virtual): Rename to
10052 get_matching_virtual. General cleanup and remove setting of
10053 DECL_CONTEXT. That is now done in a cleaner way in
10054 modify_vtable_entry and add_virtual_function.
10055 * search.c (expand_vbase_vtables_init): Rename to
10056 expand_indirect_vtbls_init. General cleanup. Use
10057 expand_direct_vtbls_init to do hard work. Ensures that _all_ vtable
10058 pointers from virtual bases are set up.
10059 * search.c (bfs_unmark_finished_struct, unmark_finished_struct):
10060 Removed.
10061
10062 * *.[chy]: Remove support for VTABLE_USES_MASK.
10063
10064Tue Apr 19 12:51:59 1994 Jason Merrill (jason@deneb.cygnus.com)
10065
10066 * cvt.c (convert_to_reference): Use NOP_EXPRs to switch between
10067 reference and pointer types instead of bashing the types directly.
10068
10069 * call.c (build_overload_call_real): Use the TREE_CODE to determine
10070 whether the function is overloaded or not, rather than
10071 TREE_OVERLOADED.
10072 * *: Remove all uses of TREE_OVERLOADED.
10073
10074 * decl.c (grokdeclarator): Only complain about initializing const
10075 fields when -ansi or -pedantic.
10076
10077Tue Apr 19 12:42:42 1994 Doug Evans (dje@canuck.cygnus.com)
10078
10079 * cp-tree.h (THUNK_DELTA): frame_size is now a union.
10080
10081Mon Apr 18 00:17:13 1994 Jason Merrill (jason@deneb.cygnus.com)
10082
10083 Do overloading on a block-by-block basis, not function-by-function.
10084 * decl.c: Lose overloads_to_forget.
10085 (struct binding_level): Add overloads_shadowed field.
10086 (poplevel): Restore overloads_shadowed.
10087 (push_overloaded_decl): Use overloads_shadowed instead of
10088 overloads_to_forget.
10089 (finish_function): Don't look at overloads_to_forget.
10090
10091 Copy enum_overflow logic from c-decl.c.
10092 * decl.c (start_enum): Initialize enum_overflow.
10093 (build_enumerator): Use enum_overflow. Also use current_scope().
10094
10095 * search.c (current_scope): Move Brendan's comment from
10096 build_enumerator here.
10097
10098 * typeck.c (convert_for_assignment): Change warnings to pedwarns for
10099 discarding const/volatile.
10100
10101Sat Apr 16 01:18:21 1994 Jason Merrill (jason@deneb.cygnus.com)
10102
10103 * typeck.c (comp_target_parms): Accept TEMPLATE_TYPE_PARMs on the rhs.
10104 (comp_target_types): Ditto.
10105
10106 * decl.c (lookup_name): Don't unset got_scope here.
10107
10108 * spew.c (yylex): Only replace yylval with the TYPE_NESTED_NAME if
10109 got_scope != NULL_TREE.
10110
10111Fri Apr 15 16:36:33 1994 Jason Merrill (jason@deneb.cygnus.com)
10112
10113 Horrible kludge to prevent templates from being instantiated by
10114 their base classes.
10115 * parse.y (template_instantiate_once): Unset TYPE_BEING_DEFINED
10116 before we get to left_curly.
10117 * pt.c (instantiate_class_template): Set TYPE_BEING_DEFINED.
10118
10119 * error.c (dump_decl): If it's a typedef, print out the name of the
10120 decl, not just the underlying type.
10121
10122 * decl.c (pushdecl): If the old duplicate decl was a TYPE_DECL,
10123 update the IDENTIFIER_TYPE_VALUE of its name.
10124
10125 * decl2.c (finish_file): When processing the initializer for a
10126 static member, pretend that the dummy function is a member of the
10127 same class.
10128
10129Fri Apr 15 15:56:35 1994 Kung Hsu (kung@mexican.cygnus.com)
10130
63718c49
GB
10131 * class.c (build_vtable_entry): revert Apr 4 change.
10132 * decl2.c (mark_vtable_entries): replace pure virtual function
10133 decl with abort's.
7177d104
MS
10134
10135Fri Apr 15 13:49:33 1994 Jason Merrill (jason@deneb.cygnus.com)
10136
10137 * typeck.c (build_conditional_expr): Pedwarn on pointer/integer
10138 mismatch, and don't pedwarn on 0/function pointer mismatch.
10139
10140 * typeck2.c (digest_init): Lose code for special handling of unions.
10141 (process_init_constructor): Since they're handled just fine here.
10142 Pedwarn on excess elements.
10143
10144 * decl2.c (grokfield): Complain about local class method declaration
10145 without definition.
10146
10147Fri Apr 15 13:19:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
10148
10149 * method.c (emit_thunk): Add extern declaration for
10150 current_call_is_indirect (needed for hppa).
10151
10152Thu Apr 14 16:12:31 1994 Jason Merrill (jason@deneb.cygnus.com)
10153
10154 Improve local class support; allow classes in different blocks to
10155 have the same name.
10156 * decl.c (pushtag): Support local classes better.
10157 (pushdecl_nonclass_level): New function for pushing mangled decls of
10158 nested types into the appropriate scope.
10159 (xref_defn_tag): Use pushdecl_nonclass_level instead of
10160 pushdecl_top_level.
10161 (grokfndecl): Don't mess with IDENTIFIER_GLOBAL_VALUE for local
10162 class methods.
10163 * method.c (do_inline_function_hair): Ditto.
10164
10165 * class.c (finish_struct): It is legal for a class with no
10166 constructors to have nonstatic const and reference members.
10167
10168Thu Apr 14 07:15:11 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
10169
10170 * decl.c (push_overloaded_decl): Avoid giving errors about
10171 built-ins, since duplicate_decls will have given warnings/errors
10172 for them.
10173
10174Thu Apr 14 03:45:12 1994 Jason Merrill (jason@deneb.cygnus.com)
10175
10176 * cvt.c (convert_to_reference): Warn about casting pointer type to
10177 reference type when this is probably not what they wanted.
10178
10179Wed Apr 13 13:12:35 1994 Per Bothner (bothner@kalessin.cygnus.com)
10180
10181 * decl.c (finish_decl): Don't mindlessly set TREE_USED for
10182 static consts any more (toplev.c has now been modified to
10183 not emit warnings if they are unused).
10184
10185Wed Apr 13 00:22:35 1994 Jason Merrill (jason@deneb.cygnus.com)
10186
10187 * decl.c (grok_op_properties): If op new/delete get here with
10188 METHOD_TYPEs, do a revert_static_member_fn.
10189
10190 * cp-tree.h (IDENTIFIER_CLASS_TYPE_VALUE): Lose.
10191 * init.c (is_aggr_typedef): Don't look at
10192 IDENTIFIER_CLASS_TYPE_VALUE.
10193 (get_aggr_from_typedef): Ditto.
10194 (get_type_value): Ditto.
10195 * call.c (build_scoped_method_call): Don't rely on overloaded
10196 template names having IDENTIFIER_CLASS_VALUE set.
10197
10198 * parse.y (component_decl_1, fn.def2): Revert rules for
10199 constructors.
10200 (component_decl_1, fn.def2): Use $1 instead of $$, since $$ is being
10201 clobbered.
10202
10203 * decl.c (start_function): Only warn about `void main()' if pedantic
10204 || warn_return_type.
10205
10206Tue Apr 12 02:14:17 1994 Jason Merrill (jason@deneb.cygnus.com)
10207
10208 Clean up overloading of the template name.
10209 * class.c (pushclass): overload the template name whenever pushing
10210 into the scope of a template class, not just if it is
10211 uninstantiated.
10212 (popclass): Correspondingly.
10213 * search.c (push_class_decls): Don't overload_template_name.
10214 * pt.c (overload_template_name): Don't set IDENTIFIER_LOCAL_VALUE or
10215 DECL_CONTEXT on things.
10216 * parse.y (left_curly): Don't overload_template_name.
10217 * class.c (finish_struct): Don't undo_template_name_overload.
10218
10219 * method.c (build_opfncall): Only pass one argument to global op
10220 delete.
10221
10222 * call.c (build_method_call): Use TYPE_VEC_DELETE_TAKES_SIZE to
10223 decide how many arguments to use for vec delete.
10224
10225 * decl.c (grok_op_properties): Be consistent in modifying
10226 current_class_type.
10227 (grokdeclarator): Only complain about function decls with no return
10228 type if we're being pedantic.
10229
10230Mon Apr 11 00:10:53 1994 Jason Merrill (jason@deneb.cygnus.com)
10231
10232 Add support for operator new [] and operator delete [].
10233
10234 * tree.def: Add VEC_NEW_EXPR and VEC_DELETE_EXPR.
10235 * ptree.c (print_lang_type): Indicate vec new/delete.
10236 * parse.y: Support vec new/delete.
10237 * method.c (build_decl_overload): Deal with vec new/delete.
10238 (build_opfncall): Ditto.
10239 * lex.c (init_lex): Set up values of ansi_opname and opname_tab for
10240 vec new/delete. vec new uses "__vn", and vec delete uses "__vd".
10241 * init.c (init_init_processing): Set up BIVN and BIVD.
10242 (do_friend): Don't clean up after mistaken setting of TREE_GETS_NEW,
10243 since it doesn't happen any more.
10244 (build_new): Support vec new. Always call something.
10245 (build_x_delete): Support vec delete.
10246 (build_vec_delete): Lose dtor_dummy argument, add use_global_delete,
10247 and pass it to build_x_delete.
10248 * decl2.c (delete_sanity): Don't change behavior by whether or not
10249 the type has a destructor. Pass use_global_delete to
10250 build_vec_delete.
10251 (coerce_delete_type): Make sure that the type returned has a first
10252 argument of ptr_type_node.
10253 * decl.c (init_decl_processing): Also declare the global vec
10254 new/delete.
10255 (grokdeclarator): Also force vec new/delete to be static.
10256 (grok_op_properties): Note presence of vec new/delete, and play with
10257 their args. If vec delete takes the optional size_t argument, set
10258 TYPE_VEC_DELETE_TAKES_SIZE.
10259 * cp-tree.h (TYPE_GETS_{REG,VEC}_DELETE): New macros to simplify
10260 checking for one delete or the other.
10261 (lang_type): gets_new and gets_delete are now two bits long. The
10262 low bit is for the non-array version. Lose gets_placed_new.
10263 (TYPE_VEC_DELETE_TAKES_SIZE): New macro indicating that the vec
10264 delete defined by this class wants to know how much space it is
10265 deleting.
10266 (TYPE_VEC_NEW_USES_COOKIE): New macro to indicate when vec new must
10267 add a header containing the number of elements in the vector; i.e.
10268 when the elements need to be destroyed or vec delete wants to know
10269 the size.
10270 * class.c (finish_struct_methods): Also check for overloading vec
10271 delete.
10272 * call.c (build_method_call): Also delete second argument for vec
10273 delete.
10274
10275 * decl.c (grokdeclarator): Correct complaints again.
10276 (grokdeclarator): Fix segfault on null declarator.
10277 (decls_match): Also accept redeclaration with no arguments if both
10278 declarations were in C context. Bash TREE_TYPE (newdecl) here.
10279 (duplicate_decls): Instead of here.
10280
10281 * parse.y (nested_name_specifier_1): Lose rules for dealing with
10282 syntax errors nicely, since they break parsing of 'const i;'.
10283
10284 * decl.c (lookup_name): if (got_scope == current_class_type)
10285 val = IDENTIFIER_CLASS_VALUE (name).
10286
10287 * search.c (lookup_nested_tag): Look in enclosing classes, too.
10288
10289 * spew.c (yylex): Only look one character ahead when checking for a
10290 SCOPE.
10291
10292 * lex.c (check_newline): Read first nonwhite char before
10293 incrementing lineno.
10294
10295 * decl.c (grokdeclarator): Don't claim that typedefs are variables
10296 in warning.
10297
10298 * parse.y: Divide up uses of unqualified_id into
10299 notype_unqualified_id and unqualified_id, so that TYPENAME can be
10300 used as an identifier after an object.
10301
10302 * class.c (push_nested_class): Don't push into non-class scope.
10303
10304 * decl.c (grokdeclarator): If an identifier could be a type
10305 conversion operator, but has no associated type, it's not a type
10306 conversion operator.
10307
10308 * pt.c (unify): Check for equality of constants better.
10309
10310 * decl.c (grokdeclarator): Don't complain about access decls.
10311
10312Sun Apr 10 02:39:55 1994 Jason Merrill (jason@deneb.cygnus.com)
10313
10314 * decl.c (grokdeclarator): pedwarn about data definitions without
10315 types here.
10316
10317 * parse.y (datadef): Don't pedwarn about decls without types here,
10318 since that is valid for functions.
10319 (fn.def2, component_decl): Support constructors with declmods again.
10320 (nomods_initdecls): For decls without any mods, so that we don't try
10321 to get declspecs from some arbitrary $0.
10322
10323 * search.c (lookup_field): Use cp_error.
10324
10325 * parse.y (nested_name_specifier_1): Don't check aggr/non-aggr type
10326 here; it breaks destructors for non-aggr types.
10327
10328 * decl.c (lookup_name): Only look for TYPE_DECLs in base classes of
10329 a type being defined, like the comment says.
10330 If got_scope is not an aggregate, just return NULL_TREE.
10331
10332 * pt.c (create_nested_upt): Kung's code for creating types nested
10333 within uninstantiated templates now lives here (it used to live in
10334 hack_more_ids). It needs to be expanded.
10335
10336 * parse.y: Stop calling see_typename so much.
10337
10338 * decl.c (lookup_name): Deal with TTPs and UPTs.
10339
10340 * lex.c (real_yylex): Don't set looking_for_typename just because we
10341 saw a 'new'.
10342 (dont_see_typename): #if 0 out.
10343
10344 * spew.c (yylex): Increment looking_for_typename if the next
10345 character is SCOPE, rather than setting it to 1; this way, the value
10346 from seeing an aggr specifier will not be lost. This kinda relies
10347 on looking_for_typename never being < 0, which is now true.
10348
10349 * parse.y (nested_name_specifier_1): Accept TEMPLATE_TYPE_PARMs,
10350 too.
10351 (named_class_head_sans_basetype): Accept template types, too. Oops.
10352
10353Fri Apr 8 16:39:35 1994 Jason Merrill (jason@deneb.cygnus.com)
10354
10355 * decl2.c (reparse_decl_as_expr1): Handle SCOPE_REFs.
10356
10357 * parse.y: Lose START_DECLARATOR.
10358
10359 * search.c (lookup_nested_tag): New function to scan CLASSTYPE_TAGS
10360 for a class.
10361
10362 * parse.y: Simplify fn.def2 and component_decl. Support 'enum
10363 A::foo' syntax. Catch invalid scopes better.
10364
10365 * parse.y, lex.c: lose TYPENAME_COLON.
10366
10367 * decl2.c (groktypefield): #if 0 out.
10368
10369 * decl.c (lookup_name): If the type denoted by got_scope is
10370 currently being defined, look in CLASSTYPE_TAGS rather than FIELDS.
10371
10372 * class.c (push_nested_class): Don't try to push into
10373 error_mark_node.
10374
10375Fri Apr 8 07:26:36 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
10376
10377 * Makefile.in (stamp-parse): Update count of conflicts to 33.
10378
10379Thu Apr 7 17:47:53 1994 Jason Merrill (jason@deneb.cygnus.com)
10380
10381 A saner implementation of nested types that treats template types
10382 no differently from non-template types. There are still some
10383 shortcomings of our system; most notably, it is difficult to look
10384 for a nested type that is hidden by another name, because of the way
10385 we keep track of hidden types. But this shouldn't be a problem for
10386 just about anyone. Perhaps lookup_field should be fixed up a bit.
10387
10388 * spew.c: Moved handling of nested types/scoping from the lexer
10389 into the parser. Removed variable template_type_seen_before_scope.
10390 Removed functions frob_identifier, hack_more_ids, and various cruft
10391 that was #if 0'd out in the past, reducing the size of the file from
10392 1146 lines to 450 lines. We can't quite do away with spew.c yet,
10393 though; we still need it for do_aggr () and checking for SCOPE after
10394 the current identifier. And setting lastiddecl.
10395
10396 * parse.y: Moved handling of nested types/scoping from the lexer
10397 into the parser, using a new global variable `got_scope'. Reduced
10398 the number of states by 53. Implemented all uses of explicit global
10399 scope. Removed terminals SCOPED_TYPENAME and SCOPED_NAME. Removed
10400 nonterminals tmpl.1, scoped_base_class, id_scope, typename_scope,
10401 scoped_typename. Added nonterminals nested_type,
10402 qualified_type_name, complete_type_name, qualified_id, ptr_to_mem,
10403 nested_name_specifier, global_scope, overqualified_id, type_name.
10404 Changed many others. Added 9 new reduce/reduce conflicts, which are
10405 nested type parallels of 9 that were already in the grammar for
10406 non-nested types. Eight of the now 33 conflicts should be removed
10407 in the process of resolving the late binding between variable and
10408 function decls.
10409
10410 * gxxint.texi (Parser): Update.
10411
10412 * cp-tree.h (IS_AGGR_TYPE_CODE): Add UNINSTANTIATED_P_TYPE.
10413
10414 * lex.h: Add decl for got_scope.
10415
10416 * lex.c (see_typename): Claim to be the lexer when calling
10417 lookup_name.
10418
10419 * decl.c (lookup_name): When called from the lexer, look at
10420 got_scope and looking_at_typename; otherwise don't.
10421
6060a796 10422Thu Apr 7 22:05:47 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10423
10424 31th Cygnus<->FSF merge.
10425
10426Thu Apr 7 17:47:53 1994 Jason Merrill (jason@deneb.cygnus.com)
10427
10428 * decl2.c (mark_vtable_entries): Call this to mark all the
10429 entries in the vtable addressable.
10430 (finish_decl_parsing): Handle SCOPE_REFs.
10431
10432 * decl.c (decls_match): Always call compparms with strict == 1.
10433 Handle the special case of C function redecl here.
10434 (duplicate_decls): Only keep the old type if the new decl takes no
10435 arguments.
10436
10437 * typeck.c (compparms): Also allow t1 to be ... if strict == 0.
10438
6060a796 10439Thu Apr 7 16:17:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10440
10441 * class.c (build_vtable_entry): Fix breakage introduced Apr 5
10442 17:48:41.
10443
10444Wed Apr 6 16:05:10 1994 Per Bothner (bothner@kalessin.cygnus.com)
10445
10446 * init.c (build_virtual_init), search.c (build_vbase_vtables_init),
10447 ch-tree.h: Every place these functions were called, the result was
10448 immediately passed to expand_expr_stmt. Reduce redundancy by
10449 calling expand_expr_init *inside* these functions. These
10450 makes for a simpler interface, and we don't have to build
10451 compound expressions. Hence, rename these function to:
10452 expand_virtual_init and expand_vbase_vtables_init respectively.
10453 * init.c, decl.c: Change callers of these functions.
10454 * init.c, cp-tree.h (expand_virtual_init): Make static.
10455
10456 * decl2.c (finish_file): Check TREE_PUBLIC||TREE_ADDRESSABLE
10457 rather than DECL_SAVED_INSNS before emitting inlines.
10458
10459Wed Apr 6 13:06:39 1994 Jason Merrill (jason@deneb.cygnus.com)
10460
10461 * spew.c (init_spew): #if 0 out stuff used by arbitrate_lookup.
10462
10463 * decl.c (duplicate_decls): If this is a new declaration of an
10464 extern "C" function, keep the type (for the argtypes).
10465 (redeclaration_error_message): Don't check DECL_LANGUAGE here.
10466 (decls_match): Call compparms with a value of strict dependent on
10467 the value of strict_prototypes for DECL_LANGUAGE (oldecl).
10468
10469 * typeck.c (compparms): ... is only equivalent to non-promoting
10470 parms if we're not being strict.
10471
10472 * parse.y (empty_parms): Don't check flag_ansi || pedantic here.
10473
10474 * decl.c (init_decl_processing): if (flag_ansi || pedantic)
10475 strict_prototypes_lang_c = strict_prototypes_lang_cplusplus;
10476
10477 * decl2.c (grok_function_init): Don't set DECL_INITIAL on pure
10478 virtuals.
10479
10480Tue Apr 5 17:48:41 1994 Per Bothner (bothner@kalessin.cygnus.com)
10481
10482 Support for implementing vtables with thunks.
10483 * tree.def (THUNK_DECL): New TREE_CODE.
10484 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY), tree.c
10485 (fnaddr_from_vtable_entry): Handle flag_vtable_thunks case.
10486 * cp-tree.h (memptr_type): New variable.
10487 * class.c (build_vtable_entry): Build thunk if necessary.
10488 * class.c (build_vfn_ref): If using thunks, don't need
10489 to add delta field from vtable (there is none!).
10490 * decl.c: Add memptr_type as well as vtable_entry_type.
10491 If using thunks, the latter is just ptr_type_node.
10492 * gc.c, typeck.c: Use memptr_typeChange, not vtable_entry_type.
10493 * decl2.c (finish_vtable_vardecl): Handle thunks.
10494 * expr.c (cplus_expand_expr): Support THUNK_DECL.
10495
10496 * decl.c (grokdeclarator): Set DECL_THIS_EXTERN if "extern".
10497 * decl.c (start_function): Set current_extern_inline based on
10498 DECL_THIS_EXTERN, not TREE_PUBLIC.
10499 * decl.c (finish_function): Call mark_inline_for_output if needed,
10500
10501 Improve intelligence about when to emit inlines.
10502 * cp-tree.h (lang_decl_flags): New field saved_inline.
10503 * cp-tree.h (DECL_SAVED_INLINE): New macro.
10504 * class.c (add_virtual_function): Don't set TREE_ADDRESSABLE.
10505 * decl.h, decl.c (pending_addressable_inlines): Removed.
10506 * decl2.c (pending_addressable_inlines): Renamed to saved_inlines.
10507 * decl2.c (mark_inline_for_output): Do nothing if
10508 DECL_SAVED_INLINE; otherwise set it (and add to saved_inlines list).
10509 * decl2.c (finish_vtable_vardecl): SET_CLASSTYPE_INTERFACE_KNOWN
10510 and set CLASSTYPE_INTERFACE_ONLY if there is a non-inline virtual.
10511 * decl2.c (finish_file): Writing out inlines later, so we can
10512 also handle the ones needed for vtbales.
10513 * decl2.c (write_vtable_entries, finish_vtable_typedecl): Removed.
10514
10515 * cp-tree.h, class.c, decl2.c, search.c: Remove -fvtable-hack
10516 and flag_vtable_hack. Use -fvtable-thunks and flag_vtable_thunks
10517 instead. (The rationale is that these optimizations both break binary
10518 compatibility, but should become the default in a future release.)
10519
6060a796 10520Wed Apr 6 10:53:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10521
10522 * class.c (modify_vtable_entries): Never reset the DECL_CONTEXT
10523 of a fndecl, as we might not be from that vfield.
10524
10525Tue Apr 5 17:43:35 1994 Kung Hsu (kung@mexican.cygnus.com)
10526
10527 * class.c (add_virtual_function): fix bug for pure virtual, so
10528 that DECL_VINDEX of the dummy decl copied won't be error.
10529 (see also Apr 4 change)
10530
10531Tue Apr 5 17:23:45 1994 Per Bothner (bothner@kalessin.cygnus.com)
10532
10533 * typeck.c (c_expand_return): Before checking that we're not
10534 returning the address of a local, make sure it's a VAR_DECL.
10535 (And don't worry about it being a TREE_LIST.)
10536
10537Tue Apr 5 13:26:42 1994 Jason Merrill (jason@deneb.cygnus.com)
10538
10539 * parse.y (YYDEBUG): Always define.
10540 * lex.c (YYDEBUG): Ditto.
10541
10542Mon Apr 4 11:28:17 1994 Kung Hsu (kung@mexican.cygnus.com)
10543
10544 * class.c (finish_struct): backup out the change below, put the
10545 new change for the same purpose. The change below breaks code.
10546
10547 * class.c (finish_struct): if pure virtual, copy node and make
10548 RTL point to abort, then put in virtual table.
10549 * decl2.c (grok_function_iit): reinstate Mar 31 change.
10550
10551Sat Apr 2 03:12:58 1994 Jason Merrill (jason@deneb.cygnus.com)
10552
10553 * init.c (build_new): pedwarn about newing const and volatile
10554 types.
10555
10556 * tree.c (get_identifier_list): Only do the special handling
10557 thing if we're dealing with the main variant of the record type.
10558
10559 * cvt.c (convert_to_reference): When converting between
10560 compatible reference types, use the pointer conversion machinery.
10561 Don't just blindly overwrite the old type.
10562
10563Fri Apr 1 17:14:42 1994 Jason Merrill (jason@deneb.cygnus.com)
10564
10565 * call.c (build_method_call): When looking at global functions,
10566 be sure to use instance_ptr for the first argument, not some version
10567 of it that has been cast to a base class. Also do this before
10568 comparing candidates.
10569
10570Thu Mar 31 19:50:35 1994 Jason Merrill (jason@deneb.cygnus.com)
10571
10572 * call.c (build_method_call): Constructors can be called for
10573 const objects.
10574
10575Thu Mar 31 16:20:16 1994 Kung Hsu (kung@mexican.cygnus.com)
10576
10577 * decl2.c (grok_func_init): do not abort as rtl for pur virtual
10578 fucntions. They can be defined somewhere else.
10579
10580Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
10581
10582 * decl.c (init_decl_processing): Declare __builtin_return_address
10583 and __builtin_frame_address for C++ as well.
10584
6060a796 10585Thu Mar 31 12:35:49 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10586
10587 * typeck2.c (store_init_value): Integral constant variables are
10588 always constant, even when doing -fpic.
10589
10590Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
10591
10592 * decl.c (redeclaration_error_message): Pass the types to
10593 comptypes.
10594
6060a796 10595Wed Mar 30 21:29:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10596
10597 Cures incorrect errors about pure virtuals in a class, when they
10598 have been overridden in a derived class.
10599
10600 * search.c (get_abstract_virtuals): Reimplement.
10601 * search.c (get_abstract_virtuals_1): New routine.
10602
10603Wed Mar 30 14:10:04 1994 Jason Merrill (jason@deneb.cygnus.com)
10604
10605 * pt.c (push_template_decls): Make the pushed level pseudo
10606 global.
10607
10608 * parse.y (extdefs): Don't pop everything if the current binding
10609 level is pseudo_global.
10610
10611 * decl.c (pop_everything): Stop on reaching a pseudo-global
10612 binding level.
10613
10614 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Change to more reliable test.
10615
10616 * decl.c (duplicate_decls): Only copy DECL_SOURCE_{FILE_LINE} if
10617 the old decl actually had an initializer.
10618
10619 * {various}: Clean up gcc -W complaints.
10620
10621 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Currently defined to be
10622 (DECL_CONTEXT (NODE) != NULL_TREE).
10623
10624 * parse.y (lang_extdef): Call pop_everything if necessary.
10625
10626 * decl.c (pop_everything): New function for popping binding
10627 levels left over after a syntax error.
10628 (pushdecl): Use DECL_FUNCTION_MEMBER_P to decide whether or not
10629 a function is a member.
10630
6060a796 10631Wed Mar 30 14:20:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10632
10633 Cures calling a more base base class function, when a more derived
10634 base class member should be called in some MI situations.
10635
10636 * search.c (make_binfo): Use more the more specialized base
63718c49
GB
10637 binfos from the binfo given as the second argument to make_binfo,
10638 instead of the unspecialized ones from the TYPE_BINFO.
7177d104
MS
10639 * class.c (finish_base_struct): Ditto, update callers.
10640 * search.c (dfs_get_vbase_types): Ditto.
10641 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Ditto.
10642 * decl.c (xref_tag): Use NULL_TREE instead of 0.
10643 * lex.c (make_lang_type): Ditto.
10644
10645Wed Mar 30 14:10:04 1994 Jason Merrill (jason@deneb.cygnus.com)
10646
10647 * decl.c (pushdecl): If pushing a C-linkage function, only do a
10648 push_overloaded_decl.
10649 (duplicate_decls): Standard overloading does not shadow built-ins.
10650
10651Tue Mar 29 00:54:18 1994 Jason Merrill (jason@deneb.cygnus.com)
10652
10653 * pt.c (end_template_decl): Don't call push_overloaded_decl.
10654
10655 * init.c (do_friend): Don't call push_overloaded_decl.
10656
10657 * decl.c (pushdecl): Call push_overloaded_decl for functions and
10658 function templates.
10659 (duplicate_decls): functions and function templates are not
10660 duplicates, but don't complain about calling this function to
10661 compare them.
10662 (push_overloaded_decl): Don't deal with linkage. Call
10663 duplicate_decls.
10664 (redeclaration_error_message): Deal with linkage.
10665
10666 * decl.c (start_function): If push_overloaded_decl returns an
10667 older version of the function, deal with it.
10668
10669 * decl.c (start_function): Be sure only to push_overloaded_decl
10670 for non-members.
10671
10672 * decl.c (grokfndecl): Put back clearing of DECL_CHAIN for
10673 methods.
10674 (start_function): Lose broken and redundant code for checking old
10675 decl.
10676
10677 * init.c (add_friend): Give line numbers of both friend decls
10678 when warning about re-friending.
10679
10680 * pt.c (tsubst): Use comptypes rather than == to compare the
10681 types of the method as declared and as defined, since default
10682 parameters may be different.
10683
10684 * call.c (build_method_call): Use brendan's candidate printing
10685 routine.
10686
10687 * decl.c (start_method): Methods defined in the class body are
10688 inline whether or not it's a template class.
10689
10690Mon Mar 28 16:39:26 1994 Jason Merrill (jason@deneb.cygnus.com)
10691
10692 * parse.y (initdcl0): Add "extern" to current_declspecs if
10693 have_extern_spec && ! used_extern_spcec.
10694
10695 * tree.c (really_overloaded_fn): A fn with more than one
10696 overload.
10697
10698 * pt.c (end_template_decl): Use really_overloaded_fn.
10699
10700 * decl.c (duplicate_decls): When smashing a decl into a previous
10701 definition, keep the old file and line.
10702 Don't deal with overloaded functions.
10703 Lose old code for checking arg types of functions.
10704 Check for overloaded C functions.
10705 (pushdecl): Deal with overloaded functions.
10706 (start_decl): Expect pushdecl to return an appropriate function decl.
10707 (start_function): Ditto.
10708 (push_overloaded_decl): Don't check for overloaded C functions.
10709
10710 * *.c: Stop using DECL_OVERLOADED, it being archaic.
10711 TREE_OVERLOADED should probably go, too.
10712
10713Mon Mar 28 14:00:45 1994 Ron Guilmette (rfg@netcom.com)
10714
10715 * typeck.c (comp_target_types): Call comp_target_parms with
10716 strict == 1.
10717
10718Sun Mar 27 00:07:45 1994 Jason Merrill (jason@deneb.cygnus.com)
10719
10720 * parse.y (empty_parms): Don't parse () as (...) in extern "C"
10721 sections if we're compiling with -ansi or -pedantic.
10722
10723 * decl.c (decls_match): Don't treat (int) and (int&) as matching.
10724
10725 * decl2.c (grokfield): Don't pedwarn twice about initializing
10726 field.
10727
10728 * decl.c (push_overloaded_decl): Warn about shadowing
10729 constructor.
10730 (redeclaration_error_message): Don't allow 'int a; int a;'
10731
10732 * cvt.c (build_up_reference): Only check for valid upcast if
10733 LOOKUP_PROTECT is set, not just any flag.
10734
10735Fri Mar 25 01:22:31 1994 Jason Merrill (jason@deneb.cygnus.com)
10736
10737 * lex.c (check_newline): When we see a #pragma implementation,
10738 also set it for the main input file.
10739
10740 * init.c (build_new): Convert array size argument to size_t.
10741
10742 * parse.y (primary): If we're doing a parenthesized type-id, call
10743 groktypename before passing it to build_new.
10744
10745 * call.c (build_method_call): Deal properly with const and
10746 volatile for instances of reference type.
10747
10748 * decl.c (store_return_init): Change 'if (pedantic) error' to 'if
10749 (pedantic) pedwarn'.
10750
10751 * decl.c (grokdeclarator): Don't complain about putting `static'
10752 and `inline' on template function decls.
10753
10754Thu Mar 24 23:18:19 1994 Jason Merrill (jason@deneb.cygnus.com)
10755
10756 * call.c (build_method_call): Preserve const & volatile on
10757 `this'.
10758
6060a796 10759Thu Mar 24 16:21:52 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10760
10761 * init.c (build_new, build_vec_delete): Use global new and delete
10762 for arrays.
10763 * decl2.c (delete_sanity): Ditto.
10764
10765Thu Mar 24 02:10:46 1994 Jason Merrill (jason@deneb.cygnus.com)
10766
10767 * cvt.c (convert_to_reference): If i is an lvalue,
10768 (int &)i -> *(int*)&i, as per 5.2.8p9 of the latest WP.
10769 (convert_force): Call convert_to_reference with LOOKUP_COMPLAIN.
10770
10771Wed Mar 23 17:45:37 1994 Jason Merrill (jason@deneb.cygnus.com)
10772
10773 * decl.c (duplicate_decls): Also propagate DECL_TEMPLATE_MEMBERS
10774 and DECL_TEMPLATE_INSTANTIATIONS.
10775
10776 * init.c (build_new): Handle array typedefs properly.
10777
6060a796 10778Wed Mar 23 18:23:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10779
10780 30th Cygnus<->FSF merge.
10781
6060a796 10782Wed Mar 23 00:46:24 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10783
10784 * class.c (modify_vtable_entries): Avoid running off the end of the
10785 virtuals list when processing a virtual destructor.
10786 * class.c (get_vtable_entry): Ditto.
10787
10788Wed Mar 23 00:23:59 1994 Jason Merrill (jason@deneb.cygnus.com)
10789
10790 * decl.c (duplicate_decls): If two template decls don't match,
10791 just return 0.
10792
10793Tue Mar 22 23:49:41 1994 Jason Merrill (jason@deneb.cygnus.com)
10794
10795 * typeck.c (convert_for_assignment): Don't pedwarn about
10796 converting function pointer to void *.
10797
6060a796 10798Tue Mar 22 22:23:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10799
10800 Major revamp of pointer to member functions. Cures major
10801 nonfunctionality when used in casts, and MI situations.
10802
10803 * cvt.c (convert_force): Update call site of build_ptrmemfunc.
10804 * typeck.c (convert_for_assignment): Ditto.
10805 * typeck2.c (digest_init): Ditto.
10806 * typeck2.c (process_init_constructor): Simplify by moving code into
10807 digest_init.
10808 * typeck2.c (digest_init): Do default_conversions on init value, if
10809 we are processing pointer to member functions.
10810 * class.c (get_vfield_offset): Now non-static. Convert bit offset
10811 into byte offset.
10812 * cp-tree.h (get_vfield_offset): Ditto.
10813 * typeck.c (get_member_function_from_ptrfunc): Convert down to right
10814 instance, before fetching vtable pointer.
10815 * typeck.c (get_delta_difference): New routine.
10816 * typeck.c (build_ptrmemfunc): Revamp to handle casting better, also
10817 get vtable pointer out of right subobject.
10818
6060a796 10819Tue Mar 22 17:56:48 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10820
10821 * search.c (get_binfo): Return NULL instead of aborting, when
10822 passed a UNION_TYPE.
10823
10824Tue Mar 22 12:44:54 1994 Jason Merrill (jason@deneb.cygnus.com)
10825
10826 These patches implement handling of redefinition/redeclaration of
10827 templates.
10828
10829 * typeck.c (comptypes): Simplify. All TEMPLATE_TYPE_PARMs are
10830 considered compatible.
10831
10832 * parse.y (template_def): Pass defn argument to end_template_decl.
10833
10834 * pt.c (end_template_decl): Add defn argument. Check for
10835 redefinition. Simplify.
10836
10837 * error.c (OB_UNPUT): New macro, to remove mistakes.
10838 (aggr_variety): Subroutine of dump_aggr_type.
10839
10840 * decl.c (decls_match): Support templates.
10841 (duplicate_decls): No longer static. Don't try to lay out template
10842 decls.
10843 (pushdecl): Simplify.
10844
10845 * cp-tree.h (DECL_TEMPLATE_MEMBERS): Use DECL_SIZE instead of
10846 DECL_INITIAL.
10847
10848Mon Mar 21 11:46:55 1994 Jason Merrill (jason@deneb.cygnus.com)
10849
10850 * error.c (dump_decl): Support class template decls.
10851 (dump_type): Don't adorn template type parms.
10852
10853 * decl.c (duplicate_decls): Save DECL_TEMPLATE_INFO from old decl
10854 if it was a definition.
10855 (redeclaration_error_message): Do the cp_error thang, and reject
10856 redefinition of templates.
10857
10858Mon Mar 21 19:36:06 1994 Per Bothner (bothner@kalessin.cygnus.com)
10859
10860 * decl.c (grokdeclarator): Set TREE_PUBLIC for METHOD_TYPE
10861 in FIELD context, when appropriate. Also,
10862 CLASSTYPE_INTERFACE_ONLY is irrelevant to setting TREE_PUBLIC.
10863 Also, simplify check for bogus return specifiers.
10864
10865Mon Mar 21 11:46:55 1994 Jason Merrill (jason@deneb.cygnus.com)
10866
10867 * parse.y (after_type_declarator1): Expand type_quals.
10868 (notype_declarator1): Ditto.
10869 (absdcl1): Ditto.
10870
10871Sat Mar 19 01:05:17 1994 Jason Merrill (jason@deneb.cygnus.com)
10872
10873 * decl.c (grokdeclarator): Treat class-local typedefs like static
10874 members; i.e. 'typedef int f();' means that f is a function type,
10875 not a method type.
10876
10877 * parse.y (decl): Change direct_* back to *.
10878 (type_id): Change direct_abstract_declarator to absdcl.
10879 (direct_declarator, direct_initdecls, direct_initdcl0): Remove again.
10880
10881Fri Mar 18 12:47:59 1994 Jason Merrill (jason@deneb.cygnus.com)
10882
10883 These two patches fix crashes on instantiating a template inside a
10884 function with C linkage or containing labels.
10885
10886 * class.c (current_lang_stacksize): No longer static.
10887
10888 * decl.c (struct saved_scope): Add lang_base, lang_stack,
10889 lang_name, lang_stacksize, and named_labels.
10890 (push_to_top_level): Save them.
10891 (pop_from_top_level): Restore them.
10892
10893 * gxxint.texi (Parser): Update.
10894
10895 These two patches finish moving the task of expr/declarator
10896 ambiguity resolution from the lexer to the parser, and add one more
10897 r/r conflict. START_DECLARATOR can now be nuked.
10898
10899 * parse.y (decl): Add "direct_" in typespec X rules.
10900 (direct_declarator): New nonterminal for
10901 direct_after_type_declarator and direct_notype_declarator.
10902 (direct_initdecls): Like initdecls, but uses direct_initdcl0.
10903 (direct_initdcl0): Like initdcl0, but uses direct_declarator.
10904 (named_parm): Add typespec direct_declarator rule.
10905
10906 * spew.c (yylex): #if 0 out START_DECLARATOR insertion.
10907
10908 These two patches disable some excessive cleverness on the part of
10909 g++; a non-class declaration always hides a class declaration in the
10910 same scope, and g++ was trying to unhide it depending on the
10911 enclosing expression.
10912
10913 * spew.c (arbitrate_lookup): #if 0 out.
10914
10915 * decl.c (lookup_name): Never call arbitrate_lookup.
10916
10917 * parse.y (complex_notype_declarator1): Add '*'
10918 complex_notype_declarator1 and '&' complex_notype_declarator1 rules.
10919
10920 * parse.y (complex_direct_notype_declarator): Restore id_scope
10921 see_typename TYPENAME rule, remove all other rules beginning with
10922 those tokens.
10923 (notype_unqualified_id): Add '~' see_typename IDENTIFIER rule.
10924
10925Thu Mar 17 17:30:01 1994 Jason Merrill (jason@deneb.cygnus.com)
10926
10927 These changes fix the compiler's handling of the functional cast/
10928 object declaration ambiguities in section 6.8 of the ARM. They also
10929 add 11 reduce/reduce conflicts. Sigh.
10930
10931 * parse.y: Add precedence decls for OPERATOR and '~'.
10932 (notype_unqualified_id): New nonterminal, encompasses all of the
10933 ANSI unqualified-id nonterminal except TYPENAMEs.
10934 (expr_or_declarator): New nonterminal to delay parsing of code like
10935 `int (*a)'.
10936 (primary): Use notype_unqualified_id.
10937 (decl): Add typespec initdecls ';' and typespec declarator ';'
10938 rules.
10939 (initdcl0): Deal with the above.
10940 (complex_notype_declarator1): A notype_declarator that is not also
10941 an expr_or_declarator.
10942 (complex_direct_notype_declarator): A direct_notype_declarator that
10943 doesn't conflict with expr_or_declarator. Use
10944 notype_unqualified_id. Remove id_scope see_typename TYPENAME rule.
10945 (functional_cast): New nonterminal, for the three functional cast
10946 rules. So that they can be moved after
10947 complex_direct_notype_declarator.
10948 (see_typename): Don't accept type_quals any more.
10949
10950 * decl2.c (reparse_decl_as_expr): New function to deal with parse
10951 nodes for code like `int (*a)++;'.
10952 (reparse_decl_as_expr1): Recursive subroutine of the above.
10953 (finish_decl_parsing): New function to deal with parse nodes for
10954 code like `int (*a);'. See the difference?
10955
6060a796 10956Thu Mar 17 12:16:10 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10957
10958 These changes break binary compatibility in code with classes
10959 that use virtual bases.
10960
10961 * search.c (dfs_get_vbase_types): Simplify and correct to make
10962 sure virtual bases are initialized in dfs ordering.
10963 * search.c (get_vbase_types): Simplify and make readable.
10964
10965Thu Mar 17 12:01:10 1994 Jason Merrill (jason@deneb.cygnus.com)
10966
10967 * parse.y: s/ typename / type_id /g
10968
10969Wed Mar 16 17:42:52 1994 Kung Hsu (kung@mexican.cygnus.com)
10970
10971 * parse.y (typespec): add SCOPE TYPENAME for global scoped
10972 type. e.g. ::B x.
10973
10974 * decl.c (complete_array_type): fix a bug that in -pendantic
10975 mode even there's no initializer, it will continue to build
10976 default index.
10977
10978Wed Mar 16 17:43:07 1994 Jason Merrill (jason@deneb.cygnus.com)
10979
10980 * parse.y (direct_notype_declarator): Add PTYPENAME rule, remove
10981 all of the scoped PTYPENAME rules.
10982
6060a796 10983Wed Mar 16 16:39:02 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
10984
10985 * init.c (build_offset_ref): The value of A::typedef_name is
10986 always the TYPE_DECL, and never an error.
10987
10988Tue Mar 15 20:02:35 1994 Jason Merrill (jason@deneb.cygnus.com)
10989
10990 * search.c (get_base_distance_recursive): Two binfos can only
10991 represent the same object if they are both via_virtual.
10992
10993 * class.c (finish_base_struct): Check vbases for ambiguity, too.
10994
10995 * search.c (get_vbase_types): Accept binfo argument, too.
10996
10997Tue Mar 15 19:22:05 1994 Kung Hsu (kung@mexican.cygnus.com)
10998
10999 * decl.c (complete_array_type): complete TYPE_DOMAIN of the
11000 initializer also, because back-end requires it.
11001
11002Tue Mar 15 15:33:31 1994 Jason Merrill (jason@deneb.cygnus.com)
11003
11004 * error.c (dump_expr): Support member functions (which show up as
11005 OFFSET_REFs).
11006
6060a796 11007Mon Mar 14 16:24:36 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11008
11009 * init.c (build_new): Set the return type of multidimensional
11010 news correctly.
11011
11012Fri Mar 11 15:35:39 1994 Kung Hsu (kung@mexican.cygnus.com)
11013
11014 * call.c (build_method_call): if basetype not equal to type
11015 of the instance, use the type of the instance in building
11016 destructor.
11017
11018Thu Mar 10 17:07:10 1994 Kung Hsu (kung@mexican.cygnus.com)
11019
11020 * parse.y (direct_notype_declarator): add push_nested_type for
11021 'template_type SCOPED_NAME' rule.
11022
11023Tue Mar 8 00:19:58 1994 Jason Merrill (jason@deneb.cygnus.com)
11024
11025 * parse.y (parm): Add typed_declspec1 {absdcl, epsilon} rules.
11026
11027Sat Mar 5 04:47:48 1994 Jason Merrill (jason@deneb.cygnus.com)
11028
11029 * parse.y (regcast_or_absdcl): New nonterminal to implement late
11030 reduction of constructs like `int ((int)(int)(int))'.
11031 (cast_expr): Use it.
11032 (sub_cast_expr): Everything that can come after a cast.
11033 (typed_declspecs1): typed_declspecs that are not typed_typespecs.
11034 (direct_after_type_declarator): Lose PAREN_STAR_PAREN rule.
11035 (direct_abstract_declarator): Replace '(' parmlist ')' rule with
11036 '(' complex_parmlist ')' and regcast_or_absdcl.
11037 (parmlist): Split
11038 (complex_parmlist): Parmlists that are not also typenames.
11039 (parms_comma): Enabler.
11040 (named_parm): A parm that is not also a typename. Use declarator
11041 rather than dont_see_typename abs_or_notype_decl. Expand
11042 typed_declspecs inline.
11043 (abs_or_notype_decl): Lose.
11044 (dont_see_typename): Comment out.
11045 (bad_parm): Break out abs_or_notype_decl into two rules.
11046
11047Fri Mar 4 18:22:39 1994 Jason Merrill (jason@deneb.cygnus.com)
11048
11049 * decl2.c (reparse_decl_as_casts): New function to change parse
11050 nodes for `(int)(int)(int)' from "function taking int and returning
11051 function taking int and returning function taking int" to "... cast
11052 to int, cast to int, cast to int".
11053
11054 * decl2.c (reparse_decl_as_expr): Recursive function to change
11055 parse nodes for `A()()' from "function returning function returning
11056 A" to "A().operator()".
11057
11058 * parse.y (primary): Replace `typespec LEFT_RIGHT' rule with
11059 `typespec fcast_or_absdcl' rule.
11060 (fcast_or_absdcl): New nonterminal to implement late reduction of
11061 constructs like `A()()()()'.
11062 (typename): Replace `typespec absdcl1' rule with
11063 `typespec direct_abstract_declarator' rule.
11064 (direct_abstract_declarator): Replace `LEFT_RIGHT type_quals' rule
11065 with `fcast_or_absdcl type_quals' rule.
11066
6060a796 11067Fri Mar 4 16:18:03 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11068
11069 * tree.c (lvalue_p): Improve OFFSET_REF handling, so that it
11070 matches Section 5.5.
11071
11072Fri Mar 4 14:01:59 1994 Jason Merrill (jason@deneb.cygnus.com)
11073
11074 * error.c (dump_type_prefix): Don't print basetype twice for
11075 pmfs.
11076
6060a796 11077Fri Mar 4 13:24:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11078
11079 * typeck.c (convert_arguments): Handle setHandler(A::handlerFn)
11080 so that it is like setHandler(&A::handlerFn). Cures an `invalid
11081 lvalue in unary `&''.
11082
11083Fri Mar 4 11:15:59 1994 Jason Merrill (jason@deneb.cygnus.com)
11084
11085 * gxxint.texi (Copying Objects): New section discussing default
11086 op= problems with virtual inheritance.
11087
11088 * decl2.c (grokoptypename): Just does grokdeclarator and
11089 build_typename_overload, since the parser can't call grokdeclarator
11090 directly.
11091
11092 * method.c (build_typename_overload): Set IDENTIFIER_GLOBAL_VALUE
11093 and TREE_TYPE on generated identifiers.
11094
11095 * decl.c (grokdeclarator): Don't deal with TYPE_EXPRs anymore.
11096
11097 * parse.y (parm): Convert `const char *' to `__opPCc' here.
11098
11099 * error.c (dump_decl): Say sorry rather than my_friendly_aborting
11100 if we can't figure out what to do.
11101 (dump_type*): Ditto.
11102
11103 * typeck2.c (build_m_component_ref): 'component' is an expr, not
11104 a decl. Also move the IS_AGGR_TYPE check after the stripping of
11105 REFERENCE_TYPE.
11106
6060a796 11107Fri Mar 4 04:46:05 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11108
11109 * call.c (build_method_call): Handle b->setHandler(A::handlerFn)
11110 so that it is like b->setHandler(&A::handlerFn). Cures an `invalid
11111 lvalue in unary `&''.
11112
11113Thu Mar 3 12:38:15 1994 Jason Merrill (jason@deneb.cygnus.com)
11114
11115 * parse.y: Add precedence specification for START_DECLARATOR.
11116 (type_quals): Move before primary.
11117 (typename): Move before typed_declspecs, add 'typespec absdcl1' rule.
11118
11119 * decl2.c (grokoptypename): Lose.
11120
11121 * decl.c (grokdeclarator): Parse TYPE_EXPRs in the initial scan,
11122 rather than waiting until later.
11123
11124Wed Mar 2 14:12:23 1994 Jason Merrill (jason@deneb.cygnus.com)
11125
11126 * parse.y (unary_expr): Use 'typename' in 'new' rules, rather
11127 than expanding it inline.
11128 (typename): Expand empty option of (former) absdcl inline.
11129 (abs_or_notype_decl): Ditto.
11130 (absdcl): Lose empty rule.
11131 (conversion_declarator): New nonterminal for 'typename' of 'operator
11132 typename'.
11133 (operator_name): Use it instead of absdcl.
11134
11135 * parse.y: Add precedence declarations for SCOPED_TYPENAME,
11136 TYPEOF, and SIGOF.
11137 (typed_declspecs): Accept typed_typespecs, rather than typespec
11138 directly. Add rules with reserved_typespecquals.
11139 (reserved_declspecs): Don't accept typespecqual_reserved at the
11140 beginning of the list. The typed_declspecs rule will deal with this
11141 omission.
11142 (declmods): Accept nonempty_type_quals, rather than TYPE_QUAL
11143 directly.
11144
11145 * parse.y (direct_notype_declarator,
11146 direct_after_type_declarator, direct_abstract_declarator): Split up
11147 the declarator1 nonterminals to match the draft standard and avoid
11148 ambiguities.
11149 (new_type_id, new_declarator, direct_new_declarator,
11150 new_member_declarator): New nonterminals to implement the subset of
11151 'typename' allowed in new expressions.
11152 (unary_expr): Use new_type_id instead of typename.
11153 (after_type_declarator1, absdcl1): Fix semantics of member pointers.
11154 (abs_member_declarator, after_type_member_declarator): Lose.
11155
11156 * parse.y (absdcl1): Don't require parens around
11157 abs_member_declarator.
11158 (abs_member_declarator): Lose see_typename from rules.
11159 (after_type_member_declarator): Ditto.
11160
11161 * tree.c (get_identifier_list): New function, containing code
11162 previously duplicated in get_decl_list and list_hash_lookup_or_cons.
11163 (get_decl_list): Use it.
11164 (list_hash_lookup_or_cons): Ditto.
11165
11166 * parse.y (typed_declspecs, declmods): It's not necessary to hash
11167 the declspecs on class_obstack, so don't. This way typed_typespecs
11168 can reduce to typed_declspecs.
11169
11170Wed Mar 2 14:29:18 1994 Jason Merrill (jason@cygnus.com)
11171
11172 * cvt.c (build_up_reference): If we aren't checking visibility,
11173 also allow base->derived conversions.
11174
11175Mon Feb 28 15:14:29 1994 Per Bothner (bothner@kalessin.cygnus.com)
11176
11177 * typeck.c (build_c_cast): Remove bogus hack when converting
11178 to a reference type.
11179
11180 * cp-tree.h (lang_decl::vbase_init_list, DECL_VBASE_INIT_LIST):
11181 Removed, not used.
11182 (lang_stype::methods, lang_decl::next_method): New fields.
11183 (CLASSTYPE_METHODS, DECL_NEXT_METHOD): New macros.
11184 * decl.c (duplicate_decls): Preserve DECL_NEXT_METHOD.
11185
11186 * cp-tree.h, decl2.c (flag_vtable_hack): New flag.
11187 * decl2.c (finish_vtable_vardecl): If flag_vtable_hack,
11188 and !CLASSTYPE_INTERFACE_KNOWN, try to use the presence of
11189 a non-inline virtual function to control emitting of vtables.
11190 * class.c (finish_struct): Build CLASSTYPE_METHODS list.
11191 * search.c (build_vbase_vtables_init): Don't assemble_external
11192 (yet) if flag_vtable_hack.
11193 * class.c (build_vfn_ref): Ditto.
11194
11195Mon Feb 28 14:54:13 1994 Jason Merrill (jason@deneb.cygnus.com)
11196
11197 * parse.y (component_decl): Don't include "typed_declspecs
11198 declarator ';'" speedup, since it breaks enums.
11199
11200Fri Feb 25 15:43:44 1994 Per Bothner (bothner@kalessin.cygnus.com)
11201
11202 * class.c (finish_struct): Minor optimization for building
11203 fn_fields list.
11204
11205Fri Feb 25 15:23:42 1994 Jason Merrill (jason@deneb.cygnus.com)
11206
11207 * decl.c (start_function): Fix detection of function overloading.
11208
6060a796 11209Thu Feb 24 22:26:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11210
11211 * lex.c (check_newline): #pragma interface can take a string
11212 argument, just like #pragma implementation. #pragma implementation
11213 checks for garbage on the line, line #pragma interface does. Main
11214 input files do not auto implement like named files, #pragma
11215 implementation must be used explicitly.
11216
11217Thu Feb 24 17:09:01 1994 Jason Merrill (jason@deneb.cygnus.com)
11218
11219 * parse.y (components): Handle list of one again.
11220 (notype_components): Ditto.
11221 (after_type_declarator1): Take maybe_raises out again.
11222
11223 * gxxint.texi (Parser): Document additional r/r conflict.
11224
11225Wed Feb 23 14:42:55 1994 Jason Merrill (jason@deneb.cygnus.com)
11226
11227 * gxxint.texi (Parser): Add node.
11228
11229 * Makefile.in (stamp-parse): Update expected conflict count.
11230
11231 * parse.y (various): Replace "declmods declarator" with "declmods
11232 notype_declarator". The comment saying that "declmods declarator ';'"
11233 corresponds to "int i;" was wrong; it corresponds to "const i;".
11234 (component_decl): Add "typed_declspecs declarator ';'" rule; this
11235 *does* correspond to "int i;". Change "declmods components" to
11236 "declmods notype_components".
11237 (components): Don't deal with a list of one anymore.
11238 (notype_components): New nonterminal, corresponds to notype_declarator.
11239 ({after_,no}type_component_decl{,0}): More new nonterminals.
11240 ({after_,no}type_declarator): Fold in START_DECLARATOR token.
11241 Eliminates four reduce/reduce conflicts.
11242
11243 (expr): Depend on nontrivial_exprlist instead of nonnull_exprlist.
11244 (nontrivial_exprlist): New nonterminal: A list of at least two
11245 expr_no_commas's.
11246 (nonnull_exprlist): Depend on nontrival_exprlist.
11247 Eliminates four reduce/reduce conflicts.
11248
11249 (named_class_head): Move intermediate code block into separate
11250 nonterminal so that we can stick %prec EMPTY on it.
11251
11252 Add more %prec EMPTY's to eliminate remaining shift/reduce
11253 conflicts.
11254
11255 (after_type_declarator): Add maybe_raises to fndecl rules.
11256 (after_type_declarator_no_typename): Remove.
11257 For correctness.
11258
11259 Document remaining reduce/reduce conflicts.
11260
11261Tue Feb 22 12:10:32 1994 Jason Merrill (jason@deneb.cygnus.com)
11262
11263 * search.c (get_base_distance): Only bash BINFO_INHERITANCE_CHAIN
11264 (TYPE_BINFO (type)) if we care about the path.
11265
11266 * tree.c (lvalue_p): A COND_EXPR is an lvalue if both of the
11267 options are.
11268
6060a796 11269Mon Feb 21 19:59:40 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11270
11271 * Makefile.in (mostlyclean): lex.c is a source file, don't
11272 remove.
11273
11274Sat Feb 19 01:27:14 1994 Jason Merrill (jason@deneb.cygnus.com)
11275
11276 * parse.y: Eliminate 20 shift/reduce conflicts.
11277
11278Fri Feb 18 11:49:42 1994 Jason Merrill (jason@deneb.cygnus.com)
11279
11280 * pt.c (type_unification): Add subr argument; if set, it means
11281 that we are calling ourselves recursively, so a partial match is OK.
11282 (unify): Support pointers to methods and functions.
11283 (tsubst): Support method pointers.
11284 * decl.c (build_ptrmemfunc_type): No longer static, so that
11285 tsubst can get at it.
11286
11287 * init.c (is_aggr_typedef): Pretend template type parms are
11288 aggregates.
11289 * decl2.c (build_push_scope): If cname refers to a template type
11290 parm, just grin and nod.
11291
11292 * call.c (build_overload_call_real): Pass subr argument to
11293 type_unification.
11294 * pt.c (do_function_instantiation): Ditto.
11295 * class.c (instantiate_type): Ditto.
11296
11297 * search.c (get_base_distance): If BINFO is a binfo, use it and
11298 don't mess with its BINFO_INHERITANCE_CHAIN.
11299
11300 * cvt.c (convert_to_reference): Fix temporary generation.
11301 If ambiguous, return error_mark_node.
11302
11303 * init.c (build_new): Put back some necessary code.
11304
11305Thu Feb 17 15:39:47 1994 Jason Merrill (jason@deneb.cygnus.com)
11306
11307 * init.c (build_new): Deal with array types properly.
11308
11309 * search.c (get_binfo): Become a shell for get_base_distance.
11310 (get_binfo_recursive): Lose.
11311 (get_base_distance_recursive): Find the path to the via_virtual base
11312 that provides the most access.
11313 (get_base_distance): Ditto.
11314
11315 * parse.y (explicit_instantiation): Syntax is 'template class
11316 A<int>', not 'template A<int>'.
11317
11318 * typeck.c (convert_for_initialization): Remove bogus warning.
11319
11320 * parse.y (datadef): Revert patch of Oct 27.
11321
11322Thu Feb 17 15:12:29 1994 Per Bothner (bothner@kalessin.cygnus.com)
11323
11324 * class.c (build_vfn_ref): Cast delta field to ptrdiff_type_node,
11325 rather than integer_type_node. Does wonders for the Alpha.
11326
11327Thu Feb 17 13:36:21 1994 Jason Merrill (jason@deneb.cygnus.com)
11328
11329 * decl.c (build_ptrmemfunc_type): Make sure that the pmf type
11330 goes onto the same obstack as its target type.
11331
11332Wed Feb 16 00:34:46 1994 Jason Merrill (jason@deneb.cygnus.com)
11333
11334 * cvt.c (convert_to_reference): If converting via constructor
11335 on local level, go back to build_cplus_new approach.
11336
11337 * tree.c (build_cplus_new): If with_cleanup_p, set cleanup slot
11338 to error_mark_node to prevent expand_expr from building a cleanup
11339 for this variable.
11340
11341 * lex.c (default_assign_ref_body): Return *this from the memcpy
11342 version, too.
11343
11344 * decl.c (grok_reference_init): Just return if called with
11345 error_mark_node, don't worry about initializing non-const reference
11346 with temporary.
11347
11348 * cvt.c (convert_to_reference): Do the right thing for
11349 non-aggregate reference conversions, pedwarn when generating a
11350 non-const reference to a temporary.
11351
11352 * class.c (finish_struct): TYPE_HAS_COMPLEX_{INIT,ASSIGN}_REF and
11353 TYPE_NEEDS_CONSTRUCTING all depend on TYPE_USES_VIRTUAL_BASECLASSES
11354 again.
11355
11356Tue Feb 15 19:47:19 1994 Jason Merrill (jason@deneb.cygnus.com)
11357
11358 * decl.c (grok_reference_init): Pawn off a lot of the work on
11359 convert_to_reference. Generally do the right thing.
11360
11361 * cvt.c (convert_to_reference): Conform to the initial comment;
11362 i.e. don't create temps if decl != error_mark_node. Handle
11363 cleanups better for temps that do get created. Don't pretend
11364 that we can use an 'A' to initialize a 'const double &' just by
11365 tacking on a NOP_EXPR. Support LOOKUP_SPECULATIVELY.
11366
11367 * call.c (build_method_call): Set TREE_HAS_CONSTRUCTOR on
11368 constructor calls.
11369
11370Mon Feb 14 14:50:17 1994 Jason Merrill (jason@deneb.cygnus.com)
11371
11372 * decl.c (grok_reference_init): Make a temporary for initializing
11373 const reference from constant expression.
11374
11375Mon Feb 14 11:31:31 1994 Per Bothner (bothner@kalessin.cygnus.com)
11376
11377 * cp-tree.h, decl.c (set_identifier_local_value): Deleted function.
11378 * decl.c (pushdecl): Define decl in correct binding_level
11379 (which isn't always the inner_binding_level).
11380
11381 * cvt.c (build_up_reference): Don't ever call expand_aggr_init.
11382 It's ugly, and I don't think it's the right thing to do.
11383
11384 * cp-tree.h, class.c, decl.c, decl2.c, sp/search.c:
11385 Remove NEW_CLASS_SCOPING, assuming it is always 1.
11386 * decl.c (pop_decl_level): Removed; manually inlined.
11387
11388Sun Feb 13 19:04:56 1994 Jason Merrill (jason@deneb.cygnus.com)
11389
11390 * class.h (candidate): Add basetypes field.
11391
11392 * call.c (build_method_call): Do access checking after choosing a
11393 function, not before.
11394
11395 * Makefile.in (cvt.o, call.o, method.o): Depend on class.h.
11396 (mostlyclean): Remove ../cc1plus.
11397
11398Fri Feb 11 11:52:26 1994 Jason Merrill (jason@deneb.cygnus.com)
11399
11400 * class.c (finish_struct): Don't allow adjusting access to a field
11401 of a base class if a local field has the same name.
11402
11403 * error.c (dump_type_prefix): Output basetype for METHOD_TYPEs.
11404
11405hu Jan 13 17:55:51 EST 1994 Gnanasekaran Swaminathan (gs4t@virginia.edu)
11406
63718c49 11407 * cp-tree.h (DESTRUCTOR_NAME_P): do not confuse AUTO_TEMP names
7177d104
MS
11408 with destructor names when either NO_DOLLAR_IN_LABEL or
11409 NO_DOT_IN_LABEL are not defined.
11410
11411 Now `template <class T, T f(T&), const T*> class A {...}' works.
11412
11413 * pt.c (grok_template_type): substitute template parm types
11414 with actual types in complex type as well.
11415 (coerce_template_parms): update the grok_template_type ()
11416 function call.
11417
11418 * pt.c (tsubst): Traverse method list using DECL_CHAIN.
11419
11420 * decl.c (grok_op_properties): Allow operator++/-- to have
11421 default arguments.
11422
11423 * typeck2.c (store_init_value): Don't abort when called to
11424 initialize a type that needs constructing with a CONSTRUCTOR.
11425
11426 * init.c (expand_aggr_init_1, CONSTRUCTOR case): If
11427 store_init_value fails, build and expand an INIT_EXPR. If
11428 store_init_value succeeds, call expand_decl_init.
11429
6060a796 11430Fri Feb 11 02:49:23 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11431
11432 * class.c (build_vbase_path): Use complete_type_p instead of
11433 resolves_to_fixed_type_p to determine if the virtual bases are in
11434 their right place for the type of expr. Cures problem of thinking a
11435 virtual base class is one place, when it is in fact someplace else.
11436
6060a796 11437Fri Feb 11 00:26:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11438
11439 * init.c (resolve_offset_ref): Make sure we first convert to
11440 intermediate type, if given, when dealing with members off `this'.
11441 Solves an incorrrect `type `foo' is not a base type for type
11442 `multiple'' when it is infact, a base type.
11443
6060a796 11444Thu Feb 10 21:49:35 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11445
11446 * class.c (modify_other_vtable_entries): Use get_binfo, instead
11447 of binfo_value. Solves problem with compiler giving a `base class
11448 `B' ambiguous in binfo_value (compiler error)' on complex MI
11449 herarchies, when a virtual function is first defied in a virtual
11450 base class.
11451
6060a796 11452Thu Feb 10 17:19:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11453
11454 * class.c (build_vbase_path): Don't complain about ambiguous
11455 intermediate conversion when converting down to a virtual base
11456 class, even if they might seem to be ambiguous.
11457
11458Thu Feb 10 12:18:26 1994 Jason Merrill (jason@deneb.cygnus.com)
11459
11460 * typeck2.c (build_functional_cast): #if 0 out constructor
11461 inheritance code, improve error messages.
11462
11463 * class.c (finish_base_struct): Complain about base with only
11464 non-default constructors in derived class with no constructors.
11465
11466 * decl.c (grokdeclarator): Fix detection of virtual new/delete.
11467
6060a796 11468Wed Feb 9 22:02:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11469
11470 * search.c (build_mi_virtuals, add_mi_virtuals,
11471 report_ambiguous_mi_virtuals): Removed unneeded code.
11472 * class.c (finish_struct_bits): Ditto.
11473
11474Wed Feb 9 11:27:17 1994 Jason Merrill (jason@deneb.cygnus.com)
11475
11476 * pt.c (end_template_instantiation): Push decl before
11477 pop_from_top_level.
11478
11479 * typeck2.c (build_m_component_ref): Make sure datum is of
11480 aggregate type.
11481
11482 * init.c (get_type_value): New function, returns
11483 IDENTIFIER_TYPE_VALUE or IDENTIFIER_CLASS_TYPE_VALUE or NULL_TREE.
11484
11485 * call.c (build_method_call): Don't die on call to destructor for
11486 non-type.
11487
11488 * decl.c (grokdeclarator): Complain about virtual op new and op
11489 delete, make static virtuals unvirtual instead of unstatic.
11490
11491 * typeck.c (build_c_cast): Also call default_conversion on
11492 methods.
11493
11494 * decl.c (grokdeclarator): Don't complain about anonymous
11495 bitfields.
11496
11497 * parse.y (simple_stmt, for loops): Move the continue point after
11498 the cleanups.
11499
11500 * class.c (finish_struct): Fix setting of
11501 TYPE_HAS_COMPLEX_INIT_REF.
11502
11503Tue Feb 8 13:21:40 1994 Jason Merrill (jason@deneb.cygnus.com)
11504
11505 * init.c (build_new): Deal with `new double (1)'.
11506
11507 * class.c (finish_struct): TYPE_HAS_COMPLEX_*_REF are supersets of
11508 TYPE_HAS_REAL_*_REF, but TYPE_HAS_COMPLEX_INIT_REF is independent of
11509 TYPE_NEEDS_CONSTRUCTING.
11510
11511 * decl.c (duplicate_decls): Propagate access decls.
11512
11513 * typeck2.c (process_init_constructor): Accept empty_init_node
11514 for initializing unions.
11515
11516 * class.c, lex.c, cp-tree.h: Use
11517 TYPE_HAS_COMPLEX_ASSIGN_REF where TYPE_HAS_REAL_ASSIGN_REF was used
11518 before, use TYPE_HAS_COMPLEX_INIT_REF for TYPE_NEEDS_CONSTRUCTING in
11519 some places.
11520
11521 * decl.c (finish_decl): Don't complain about uninitialized const
11522 if it was initialized before.
11523
11524Mon Feb 7 18:12:34 1994 Jason Merrill (jason@deneb.cygnus.com)
11525
11526 * lex.c (default_assign_ref_body): Don't deal with vbases for
11527 now.
11528
11529 * decl.c (finish_decl): Fix reversed logic for objects and other
11530 things that need to be constructed but have no initializer.
11531
11532 * class.c (finish_struct): Don't set TYPE_HAS_* flags that are
11533 set by grok_op_properties or finish_decl.
11534
11535 * decl.c: Don't warn about extern redeclared inline unless
11536 -Wextern-inline is given.
11537 * decl2.c (lang_decode_option): Ditto.
11538 * cp-tree.h: Ditto.
11539
11540Mon Feb 7 17:29:24 1994 Per Bothner (bothner@kalessin.cygnus.com)
11541
11542 * decl.c (pushdecl_with_scope): Fix thinko. Add forward
11543 declaration.
11544
11545 * decl.c (pushdecl_with_scope): New function.
11546 * decl.c (pushdecl_top_level): Use new function.
11547 * decl.c (pushtag): Initialize newdecl.
11548 * decl.c (pushtag): Push new type decl into correct scope.
11549
11550Mon Feb 7 14:42:03 1994 Jason Merrill (jason@deneb.cygnus.com)
11551
11552 * call.c, cvt.c, init.c, search.c, cp-tree.h:
11553 Eradicate LOOKUP_PROTECTED_OK.
11554
11555Mon Feb 7 13:57:19 1994 Per Bothner (bothner@kalessin.cygnus.com)
11556
11557 * decl.c (pushtag, xref_tag), cp-tree.h: Add extra parameter
11558 'globalize' to signify implicit declarations.
11559 * decl.c (globalize_nested_type, maybe_globalize_type): Removed.
11560 * decl.c (set_identifier_type_value_with_scope): New function.
11561 * decl.c (set_identifier_local_value): Simplify.
11562 * spew.c (yylex, do_addr): Modify to return a _DEFN if a
11563 forward declaration (followed by ';' and not preceded by 'friend').
11564 * class.c, decl.c, except.c, init.c, parse.y,
11565 pt.c, search.c: Add new argument to calls to xref_tag and
11566 pushtag.
11567
11568Mon Feb 7 00:22:59 1994 Jason Merrill (jason@deneb.cygnus.com)
11569
11570 * cp-tree.h (ACCESSIBLY_UNIQUELY_DERIVED_P): New macro, means what
11571 ACCESSIBLY_DERIVED_FROM_P meant before.
11572 (ACCESSIBLY_DERIVED_FROM_P): Now disregards ambiguity.
11573
11574 * cvt.c (build_up_reference): Call get_binfo with PROTECT == 1.
11575
11576 * search.c (get_base_distance_recursive): Members and friends of
11577 a class X can implicitly convert an X* to a pointer to a private or
11578 protected immediate base class of X.
11579 (get_binfo_recursive): Ditto.
11580 (get_base_distance): Ignore ambiguity if PROTECT < 0.
11581 (get_binfo): Lose multiple values of PROTECT.
11582 (compute_access): Protected is OK if the start of the
11583 search is an accessible base class of current_class_type.
11584
11585 * method.c (build_opfncall): Do check access on operator new here.
11586
11587 * decl.c (finish_function): Don't check access on operator new
11588 here.
11589
11590Sun Feb 6 14:06:58 1994 Jason Merrill (jason@deneb.cygnus.com)
11591
11592 * decl.c (xref_tag): The base of a derived struct is NOT always
11593 public. Duh.
11594
11595 * pt.c (do_explicit_instantiation): New function, called from
11596 parser to do explicit function instantiation.
11597 (type_unification): Allow the args list to be terminated with
11598 void_list_node.
11599 (do_pending_expansions): Look at i->interface for non-member
11600 templates.
11601
11602 * parse.y (datadef): Move explicit_instantiation here.
11603 (structsp): From here.
11604 (datadef): Complain about `int;'.
11605
11606Sun Feb 6 12:33:18 1994 Per Bothner (bothner@kalessin.cygnus.com)
11607
11608 * pt.c (end_template_instantiation), cp-tree.h: Remove unused
11609 second parameter, and simplify first from a TREE_LIST where
11610 we only care about its TREE_VALUE to just the value (an IDENTIFIER).
11611 * pt.c (instantiate_member_templates): Simplify argument list
11612 from a TREE_LIST to just an IDENTIFIER.
11613 * lex.c (yyprint): PRE_PARSED_CLASS_DECL is now just an IDENTIFIER.
11614 * parse.y (template_instantiate_once): Simplify accordingly.
11615 * decl.c (inner_binding_level): New. Use various places to
11616 simplify.
11617
11618Sun Feb 6 02:49:37 1994 Jason Merrill (jason@deneb.cygnus.com)
11619
11620 * typeck2.c (build_functional_cast): int() -> int(0).
11621
11622Sat Feb 5 00:53:21 1994 Jason Merrill (jason@deneb.cygnus.com)
11623
11624 * class.c (finish_struct): Don't do a bitwise copy for op= if the
11625 class has a virtual function table.
11626
11627 * typeck.c (convert_for_initialization): Restore warnings about
11628 not using defined op=. Should really be my_friendly_aborts, I
11629 s'pose.
11630
11631Fri Feb 4 14:21:00 1994 Jason Merrill (jason@deneb.cygnus.com)
11632
11633 * class.c (finish_struct): Tidy up conditions for doing bitwise
11634 copies of objects.
11635
11636 * decl.c (build_default_constructor): #if 0 out.
11637
11638 * *: Eradicate TYPE_GETS_{ASSIGNMENT,ASSIGN_REF,CONST_ASSIGN_REF,
11639 CONST_INIT_REF}, TYPE_HAS_REAL_CONSTRUCTOR.
11640
11641 * decl.c (grokdeclarator): Don't return void_type_node for
11642 friends being defined here.
11643
11644 * init.c (perform_member_init): Only do the init if it's useful.
11645
11646 * lex.c (default_copy_constructor_body): If we don't need to do
11647 memberwise init, just call __builtin_memcpy.
11648 (default_assign_ref_body): Ditto.
11649
11650 * decl.c (grokdeclarator): If friendp && virtualp, friendp = 0.
11651
6060a796 11652Fri Feb 4 13:02:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11653
11654 * lex.c (reinit_parse_for_method, cons_up_default_function):
11655 Don't give warn_if_unknown_interface warning when it came from a
11656 system header file.
11657 * pt.c (end_template_decl, instantiate_template): Ditto.
11658 * decl.c (start_decl): Ditto.
11659
11660Fri Feb 4 00:41:21 1994 Jason Merrill (jason@deneb.cygnus.com)
11661
11662 * decl.c (grokdeclarator): Don't try to set TYPE_WAS_ANONYMOUS on
11663 enums.
11664
11665 * decl2.c (constructor_name_full): Use IS_AGGR_TYPE_CODE instead of
11666 IS_AGGR_TYPE, since we don't know it's a type.
11667
11668Thu Feb 3 11:36:46 1994 Jason Merrill (jason@deneb.cygnus.com)
11669
11670 * decl.c (grokdeclarator): Don't complain about anonymous unions.
11671
11672 * cp-tree.h (TYPE_WAS_ANONYMOUS): This struct was originally
11673 anonymous, but had a name given to it by a typedef.
11674
11675 * decl.c (grokdeclarator): When renaming an anonymous struct, set
11676 TYPE_WAS_ANONYMOUS.
11677
11678 * decl2.c (constructor_name_full): Use TYPE_WAS_ANONYMOUS.
11679
11680 * cp-tree.h (DECL_UNDEFINED_FRIENDS): #if 0 out.
11681
11682 * init.c (xref_friend): Don't set up DECL_UNDEFINED_FRIENDS.
11683 (embrace_waiting_friends): Don't use DECL_UNDEFINED_FRIENDS.
11684
11685 * decl.c (grokdeclarator): Set TYPE_NESTED_NAME properly on nested
11686 anonymous structs that get typedef'd.
11687
11688 * decl.c (grokdeclarator): Always return void_type_node for
11689 friends.
11690
11691 * error.c (dump_function_decl): Don't use DECL_CLASS_CONTEXT for
11692 friends.
11693 (dump_function_decl): Don't print out default args for
11694 a function used in an expression.
11695
11696 * decl.c (grokdeclarator): Give error on abstract declarator used
11697 in an invalid context (i.e. `void (*)();').
11698
11699 * error.c (cp_line_of): Support _TYPE nodes.
11700 (cp_file_of): Ditto.
11701
11702 * cvt.c (build_up_reference): Don't abort if passed a SAVE_EXPR;
11703 it can happen for the RHS of an assignment stmt where the LHS is
11704 a COND_EXPR.
11705
11706 * init.c (expand_aggr_init_1): Deal with bracketed initializer
11707 lists properly.
11708
11709 * class.c (finish_struct): Deal with enumerators and typedefs
11710 again.
11711
11712Wed Feb 2 11:30:22 1994 Jason Merrill (jason@deneb.cygnus.com)
11713
11714 * class.c (finish_struct): Tidy up loop over fields.
11715
11716 * errfn.c (cp_thing): Don't advance twice after a format.
11717
11718 * class.c (finish_struct): Complain about needing a constructor
11719 if a member has only non-default constructors, and don't try to
11720 generate a default constructor.
11721
11722 * decl.c (finish_decl): Also do the constructor thing if
11723 TYPE_NEEDS_CONSTRUCTING is set (for arrays).
11724
11725 * search.c (unuse_fields): New function: mark all fields in this
11726 type unused.
11727 (dfs_unuse_fields): Helper function.
11728
11729 * class.c (pushclass): If the new class is the same as the old
11730 class, still unuse the fields.
11731 (unuse_fields): Move to search.c.
11732
11733 * decl.c (grok_op_properties): Add friendp argument.
11734 (grokfndecl): Pass it.
11735 (start_method): Ditto.
11736
11737 * decl2.c (delete_sanity): Add use_global_delete parameter to catch
11738 ::delete calls.
11739
11740 * parse.y (unary_expr): Pass new parameter to delete_sanity.
11741
11742 * lex.c (default_copy_constructor_body): Don't choke if the union
11743 has no fields.
11744 (default_assign_ref_body): Ditto.
11745
11746 * call.c (compute_conversion_costs_ansi): Do the right thing for
11747 ellipsis matches.
11748
11749 * decl.c (push_to_top_level): Optimize.
11750
11751 * decl.c (start_function): Look for the lexical scope of a friend
11752 in DECL_CLASS_CONTEXT.
11753
11754 * init.c (do_friend): Set DECL_CLASS_CONTEXT on global friends.
11755
11756Tue Feb 1 15:59:24 1994 Jason Merrill (jason@deneb.cygnus.com)
11757
11758 * cp-tree.h (TREE_GETS_PLACED_NEW): New macro.
11759
11760 * init.c (init_init_processing): Don't assign BIN/BID to the
11761 IDENTIFIER_GLOBAL_VALUEs of their respective operators.
11762 (build_new): Check TREE_GETS_PLACED_NEW.
11763
11764 * decl.c (grok_op_properties): Don't set TREE_GETS_NEW for a decl of
11765 op new with placement, set TREE_GETS_PLACED_NEW.
11766
11767 * cp-tree.h (ANON_UNION_P): New macro. Applies to decls.
11768
11769 * class.c (finish_struct): Don't treat anonymous unions like
11770 other aggregate members. Do synthesize methods for unions without
11771 a name, since they may or may not be "anonymous unions".
11772
11773 * decl2.c (grok_x_components): Wipe out memory of synthesized methods
11774 in anonymous unions.
11775
11776 * lex.c (default_copy_constructor_body): Support unions.
11777 (default_assign_ref_body): Ditto.
11778
11779Mon Jan 31 12:07:30 1994 Jason Merrill (jason@deneb.cygnus.com)
11780
11781 * cp-tree.h: Fix documentation of LOOKUP_GLOBAL, add prototypes.
11782
11783 * error.c (args_as_string): New function (%A), like type_as_string
11784 except NULL_TREE -> "..."
11785
11786 * call.c (build_overload_call_real): Fix for new overloading.
11787
11788 * decl.c (grok_op_properties): Set all of the TYPE_OVERLOADS_* flags
11789 here.
11790
11791 * parse.y (operator_name): Instead of here.
11792
11793 * typeck2.c (build_functional_cast): Treat a TREE_LIST as a list
11794 of functions.
11795
11796 * call.c (build_overload_call_real): Support LOOKUP_SPECULATIVELY.
11797
11798 * method.c (build_opfncall): Don't need to massage return value
11799 any more, call build_overload_call with all flags.
11800
11801 * typeck.c (build_x_binary_op): Put back speculative call to
11802 build_opfncall.
11803 (build_x_unary_op): Ditto.
11804 (build_x_conditional_expr): Ditto.
11805
6060a796 11806Mon Jan 31 10:00:30 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11807
11808 * cvt.c (build_type_conversion_1): Change call to pedwarn into
11809 warning, and conditionalize upon warn_cast_qual.
11810
11811Fri Jan 28 11:48:15 1994 Jason Merrill (jason@deneb.cygnus.com)
11812
11813 * search.c (lookup_field): If xbasetype is a binfo, copy it to
11814 avoid clobbering its inheritance info.
11815
11816 * call.c (build_method_call): Don't overwrite basetype_path with
11817 TYPE_BINFO (inst_ptr_basetype) if they have the same type.
11818
11819 * search.c (compute_access): Fix handling of protected inheritance
11820 and friendship with the enclosing class.
11821
11822 * typeck2.c (store_init_value): Allow passing of TREE_CHAIN for
11823 initialization of arbitrary variable.
11824
11825 * typeck2.c (build_functional_cast): Only try calling a method if
11826 one exists.
11827
11828 * decl.c (grokdeclarator): Move handling of constructor syntax
11829 initialization into first loop for generality.
11830 (parmlist_is_random): Lose.
11831
11832 * lex.c (cons_up_default_function): Set TREE_PARMLIST on arguments
11833 to default function.
11834
11835Thu Jan 27 19:26:51 1994 Jason Merrill (jason@deneb.cygnus.com)
11836
11837 * decl.c (grokparms): Abort if we get called with something we don't
11838 expect.
11839
6060a796 11840Thu Jan 27 17:37:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11841
11842 * call.c (build_overload_call_real): Change argument complain to
11843 flags to match style of rest of code. Pass it down to
11844 build_function_call_real as necessary.
11845 * call.c (build_overload_call, build_overload_call_maybe): Change
11846 argument complain to flags to match style of rest of code.
11847 * cp-tree.h (build_function_call_real): Added fourth flags
11848 argument.
11849 * cvt.c (convert_to_reference): Only give warning messages, if
11850 LOOKUP_COMPLAIN is set.
11851 * typeck.c (build_x_function_call): Change simple complain
11852 argument to build_overload_call_maybe and build_overload_call, to
11853 LOOKUP_COMPLAIN to match style of rest of code.
11854 * typeck2.c (build_functional_cast): Ditto.
11855 * typeck.c (build_function_call_real): Add flags, so that we can
11856 not complain, if we don't want to complain. Complain about
11857 arguments, if we are complaining, otherwise don't.
11858 * typeck.c (build_function_call, build_function_call_maybe):
11859 Stick in flags argument.
11860 * typeck.c (build_x_binary_op, build_x_unary_op,
11861 build_x_conditional_expr, build_x_compound_expr): Follow style of
11862 build_x_indirect_ref, as it is more correct and more common.
11863
11864Thu Jan 27 14:36:20 1994 Jason Merrill (jason@deneb.cygnus.com)
11865
11866 * call.c (build_method_call): Don't check for being called with
11867 a pointer.
11868
11869 * decl2.c (finish_file): Don't play with DECL_CLASS_CONTEXT for the
11870 static initializer function.
11871
11872 * init.c (build_member_call): Use convert_force here, too.
11873
11874 * search.c (compute_access): Only treat static members specially
11875 if they are referenced directly.
11876
11877Wed Jan 26 18:28:14 1994 Jason Merrill (jason@deneb.cygnus.com)
11878
11879 * gxxint.texi (Access Control): New node.
11880
11881 * search.c (current_scope): New function; returns whichever of
11882 current_class_type and current_function_decl is the most nested.
11883 (compute_access): Total overhaul to make it clearer and more
11884 correct. Don't use the cache for now; in the only situation where
11885 it was used before, it gained nothing. This frees up three of the
11886 DECL_LANG_FLAGs for possible other use!
11887
11888 * cp-tree.h: #if 0 out DECL_PUBLIC & friends.
11889
11890 * typeck.c (build_component_ref_1): Don't check DECL_PUBLIC.
11891
11892 * call.c (build_method_call): Use convert_force to cast `this' --
11893 rely on the access checking for the method itself.
11894
11895 * init.c (is_friend): Do the nesting thing, handle types. I am
11896 my own friend.
11897 (is_friend_type): Become a shell for is_friend.
11898 (add_friend): Never stick in ctype.
11899 Why are the friendship functions in init.c, anyway?
11900
6060a796 11901Wed Jan 26 17:50:00 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11902
11903 * cvt.c (build_type_conversion_1): Don't conditionalize call to
11904 pedwarn upon pedantic.
11905
6060a796 11906Wed Jan 26 17:20:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11907
11908 * cvt.c (convert_to_reference): Add 8.4.3 checking so that one
11909 gets a warning if one tries to initialize a non-const & from a
11910 non-lvalue.
11911 * cvt.c (convert_to_reference): Use %P format for argument
11912 numbers in warnings.
11913
6060a796 11914Wed Jan 26 14:35:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11915
11916 * init.c (build_delete): Follow style in call.c to construct the
11917 virtual call to the desctructor, as that code is right. Fixes a
11918 problem of the compiler saying a pointer conversion is ambiguous.
11919
11920Wed Jan 26 11:28:14 1994 Jason Merrill (jason@deneb.cygnus.com)
11921
11922 * cp-tree.h (VTABLE_NAME_P): Change other occurrence of
11923 VTABLE_NAME_FORMAT to VTABLE_NAME.
11924
11925 * *: s/visibility/access/g
11926
11927Tue Jan 25 18:39:12 1994 Jason Merrill (jason@deneb.cygnus.com)
11928
11929 * typeck.c (build_modify_expr): Don't smash references if INIT_EXPR.
11930
6060a796 11931Tue Jan 25 13:54:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11932
11933 * init.c (build_delete): Back out Jan 17th & 18th pacthes, as
11934 they break libg++.
11935
11936Tue Jan 25 13:11:45 1994 Jason Merrill (jason@deneb.cygnus.com)
11937
11938 * decl.c (duplicate_decls): Fix pointer arithmetic.
11939
11940Mon Jan 24 15:50:06 1994 Chip Salzenberg (chip@fin.uucp)
11941
11942 [ cp-* changes propagated from c-* changes in 940114 snapshot ]
11943 * cp-parse.y (maybe_attribute): Allow multiple __attribute__
11944 clauses on a declaration.
11945
11946Mon Jan 24 17:06:23 1994 Jason Merrill (jason@deneb.cygnus.com)
11947
11948 * class.c (finish_struct): Do synthesize methods for anon
11949 structs, just not unions.
11950
11951Mon Jan 24 13:50:13 1994 Kung Hsu (kung@mexican.cygnus.com)
11952
11953 * decl.c (xref_tag): handle anonymous nested type.
11954 * decl.c (globalize_nested_type): add no globalize bit check.
11955 * spew.c (hack_more_ids) : templated nested decl not push top
11956 level.
11957
11958 * parse.y : get rid of 'goto do_components'. It is much better
11959 for debugging.
11960
11961 * decl.c (is_anon_name): get rid of the function and use the
11962 macro ANON_AGGRNAME_P.
11963 * pt.c : ditto.
11964
11965Fri Jan 21 14:06:02 1994 Jason Merrill (jason@deneb.cygnus.com)
11966
11967 * class.c (finish_struct): Don't synthesize any methods for
11968 anonymous structs/unions.
11969
11970 * typeck.c (build_modify_expr): Don't treat pmf's as class objects.
11971
11972Thu Jan 20 18:56:46 1994 Jason Merrill (jason@deneb.cygnus.com)
11973
11974 * method.c (build_opfncall): Call build_indirect_ref on
11975 synthesized instance for operator delete.
11976
11977 * pt.c (type_unification): Don't abort if called with a list of
11978 types in ARGS.
11979
11980 * class.c (instantiate_type): Deal with function templates.
11981
11982Thu Jan 20 16:55:35 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
11983
11984 * Makefile.in (CC): Default to cc not gcc.
11985
11986Thu Jan 20 13:47:54 1994 Jason Merrill (jason@deneb.cygnus.com)
11987
11988 * typeck.c (build_modify_expr): Call constructor if appropriate.
11989
11990 * decl.c (push_to_top_level): Clear out class-level bindings cache.
11991
11992Wed Jan 19 13:51:22 1994 Jason Merrill (jason@deneb.cygnus.com)
11993
11994 * call.c (resolve_scope_to_name): Work recursively (previously only
11995 looked down one level).
11996
11997 * lex.c (do_pending_inlines): If we're still dealing with the last
11998 batch of inlines, don't start working on a new one.
11999
12000 * Makefile.in (stamp-parse): Update conflict count.
12001 (TAGS): Fix.
12002
12003 * parse.y (explicit_instantiation): New rule; implements
12004 'template A<int>' syntax (though not 'template foo(int)' yet).
12005 (structsp): Add explicit_instantiation.
12006
12007Tue Jan 18 13:53:05 1994 Jason Merrill (jason@deneb.cygnus.com)
12008
12009 * class.c (finish_struct, etc.): Simplify decision to synthesize
12010 a destructor.
12011
12012 * call.c, class.c, cp-tree.h, decl.c, init.c,
12013 ptree.c, search.c, typeck.c, typeck2.c: Nuke
12014 TYPE_NEEDS_CONSTRUCTOR (change all calls to TYPE_NEEDS_CONSTRUCTING).
12015 * init.c (expand_aggr_init_1): Don't try non-constructor methods
12016 of initializing objects.
12017 (build_new): Don't try other methods if the constructor lookup fails.
12018
12019 * class.c (finish_base_struct): Set cant_have_default_ctor and
12020 cant_synth_copy_ctor properly.
12021 (finish_struct): Ditto.
12022
12023Mon Jan 17 13:58:18 1994 Jason Merrill (jason@deneb.cygnus.com)
12024
12025 * typeck.c (build_modify_expr_1): #if 0 out again.
12026 (build_modify_expr): #if 0 out memberwise init code again.
12027
12028 * lex.c (default_copy_constructor_body): Be const-correct.
12029 (default_assign_ref_body): Ditto.
12030
12031 * init.c (perform_member_init): Use TYPE_HAS_CONSTRUCTOR to decide
12032 whether or not to use it, rather than TYPE_NEEDS_CONSTRUCTING.
12033 (expand_aggr_init): Disable silent conversion from initializer list
12034 to list of args for a constructor.
12035
12036 * class.c (base_info): Lose needs_default_ctor.
12037 (finish_base_struct): Ditto.
12038 (finish_struct): Ditto.
12039
12040 * decl.c (init_decl_processing): Don't turn off flag_default_inline
12041 just because flag_no_inline is on.
12042 (finish_decl): Use TYPE_HAS_CONSTRUCTOR to decide to use
12043 constructor.
12044
12045 * class.c (finish_struct): Synthesize default ctor whenever
12046 allowed.
12047
12048 * Makefile.in (TAGS): Don't try to run etags on cp-parse.y.
12049
6060a796 12050Sat Jan 15 18:34:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12051
12052 * Makefile.in, configure: Handle the C++ front-end in a
12053 subdirectory.
12054 * cp-*: Move C++ front-end to cp/*.
12055
12056Fri Jan 14 14:09:37 1994 Jason Merrill (jason@deneb.cygnus.com)
12057
12058 * cp-typeck.c (build_function_call_real): Modify to match other
12059 instances of taking the address of the function.
12060
12061 * cp-class.c (finish_struct): Set TYPE_HAS_REAL_CONSTRUCTOR to 1 if
12062 there are non-synthesized constructors.
12063 Only set TYPE_NEEDS_CONSTRUCTOR if TYPE_HAS_REAL_CONSTRUCTOR.
12064 Always generate copy constructor if possible.
12065
12066 * cp-tree.h (lang_type): Add has_real_constructor bitfield.
12067 (TYPE_HAS_REAL_CONSTRUCTOR): Define.
12068
12069 * cp-lex.c (default_copy_constructor_body): Use init syntax
12070 for all bases.
12071
12072 * cp-type2.c (store_init_value): Only give error for initializer list
12073 if TYPE_HAS_REAL_CONSTRUCTOR.
12074
12075Thu Jan 13 15:38:29 1994 Jason Merrill (jason@deneb.cygnus.com)
12076
12077 * cp-tree.h (DECL_SYNTHESIZED): Add defn.
12078 (lang_decl): Add synthesized bitfield to decl_flags.
12079
12080 * cp-lex.c (cons_up_default_function): Use DECL_SYNTHESIZED to mark
12081 artificial methods, rather than a line # of 0.
12082
12083Fri Jan 14 18:25:29 1994 Kung Hsu (kung@mexican.cygnus.com)
12084
12085 * cp-decl (xref_tag): fix a bug in conflict type.
12086 * cp-parse.y : add SCOPED_NAME for uninstantiated template nested
12087 type reference.
12088 * cp-spew.c (yylex) : generated SCOPED_NAME token.
12089 * cp-lex.c (yyprint): handle SCOPED_NAME.
12090
6060a796 12091Fri Jan 14 17:00:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12092
12093 * cp-decl.c (pushdecl): Revert patch from Jan 11 19:33:03, as it is
12094 not right.
12095
12096Thu Jan 13 14:00:35 1994 Kung Hsu (kung@mexican.cygnus.com)
12097
12098 * cp-decl2.c (grok_x_components): fix a bug that enum type does not
12099 have type_flags.
12100
6060a796 12101Thu Jan 13 11:39:34 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12102
12103 Ensure that all vtable pointers are initialized with all the right
12104 values.
12105
12106 * cp-class.c (is_normal): Changed to reflect new meaning of
12107 CLASSTYPE_VFIELD_PARENT.
12108 * cp-class.c (maybe_fixup_vptrs): Use of
12109 CLASSTYPE_NEEDS_VIRTUAL_REINIT here is misguided. Use
12110 BINFO_MODIFIED instead.
12111 * cp-class.c (finish_struct): Changed to reflect new meaning of
12112 CLASSTYPE_VFIELD_PARENT.
12113 * cp-decl.c (get_binfo_from_vfield): Removed, unneeded now.
12114 * cp-decl.c (finish_function): Use init_vtbl_ptrs, instead of open
12115 coding it here.
12116 * cp-init.c (init_vfields): Changed name to init_vtbl_ptrs, and
12117 re-implement.
12118 * cp-init.c (emit_base_init): Use new name init_vtbl_ptrs.
12119 * cp-tree.h (vfield_parent): Changed to integer.
12120 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Changed docs to reflect new
12121 meaning.
12122 * cp-tree.h (init_vtbl_ptrs): Added init_vtbl_ptrs.
12123
12124Wed Jan 12 18:24:16 1994 Kung Hsu (kung@mexican.cygnus.com)
12125
12126 * cp-decl.c (xref_tag): re-implement globalize nested type.
12127 * cp-decl2.c (grok_x_components): ditto.
12128 * cp-parse.y: ditto.
12129 * cp-tree.h (lang_type): add no_globalize bit in type_flags.
12130
12131Wed Jan 12 14:08:09 1994 Jason Merrill (jason@deneb.cygnus.com)
12132
12133 * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC on friend
12134 decls with a definition attached.
12135
12136 * cp-typeck.c (build_modify_expr): Undo previous change in the case
12137 of INIT_EXPRs.
12138
12139Tue Jan 11 19:33:03 1994 Jason Merrill (jason@deneb.cygnus.com)
12140
12141 * cp-typeck.c (build_modify_expr): Replace code for generating
12142 assignment semantics for classes with an error.
12143 (build_modify_expr_1): #if 0 out.
12144
12145 * cp-decl.c (pushdecl): Patch bogus design of pushdecl
12146 behavior for overloaded functions (it doesn't push anything).
12147
12148 * cp-class.c (finish_struct): When generating default op=,
12149 set TYPE_HAS_ASSIGNMENT.
12150
6060a796 12151Mon Jan 10 18:48:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12152
12153 * cp-cvt.c (convert): Make {double, clashing enum} -> enum
12154 invalid.
12155 * cp-typeck.c (convert_for_assignment): Simplify.
12156 * cp-decl2.c (warn_enum_clash): Removed.
12157 * invoke.texi (-Wenum-clash): Removed.
12158 * toplev.c (-Wenum-clash): Removed.
12159
12160Mon Jan 10 17:48:37 1994 Kung Hsu (kung@mexican.cygnus.com)
12161
12162 * cp-decl.c (finish_decl): fix incorrect popclass call.
12163
12164 * cp-decl.c (is_anon_name): new function, check whether the name
12165 is anonymous name generated by compiler.
12166 * cp-decl.c (grokdeclarator): allow nested SCOPE_REF
12167 * cp-spew.c (hack_more_ids): handle nested type in template.
12168 * cp-parse.y : handle nested type reference in uninstantiated
12169 template.
12170 * cp-call.c (build_method_call): handle uninstantiated template
12171 case.
12172 * cp-pt.c (search_nested_type_in_tmpl): new function, search nested
12173 type in template.
12174 * cp-pt.c (lookup_nested_type_by_name): new function, lookup nested
12175 type by name.
12176 * cp-pt.c (tsubst): handle nested type search by name.
12177
12178Mon Jan 10 14:32:18 1994 Jason Merrill (jason@deneb.cygnus.com)
12179
12180 * cp-init.c (build_member_call): Propagate qualifiers to new type.
12181
12182 * cp-call.c (build_method_call): Count functions the new way.
12183
12184Fri Jan 7 19:03:26 1994 Jason Merrill (jason@deneb.cygnus.com)
12185
12186 * cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for nested classes,
12187 too.
12188
12189Tue Jan 4 16:45:51 1994 Kung Hsu (kung@cirdan.cygnus.com)
12190
12191 * cp-parse.y: change to handle whether to globalize nested class.
12192 * cp-decl.c(xref_tag, maybe_globalize_type): Ditto.
12193
12194Mon Jan 3 22:22:32 1994 Gerald Baumgartner (gb@cygnus.com)
12195
12196 * Makefile.in cp-call.c cp-class.c cp-cvt.c cp-decl.c cp-decl2.c
12197 cp-error.c cp-init.c cp-lex.c cp-lex.h cp-method.c cp-parse.y
12198 cp-spew.c cp-tree.c cp-tree.h cp-type2.c cp-typeck.c cp-xref.c
12199 gplus.gperf toplev.c: Incorporated C++ signature extension.
12200 * cp-sig.c: New file, contains most of signature processing.
12201 * cp-hash.h: Regenerated from gplus.gperf.
12202
12203 * gcc.1 g++.1: Added explanation for the `-fhandle-signatures'
12204 and `-fno-handle-signatures' command line flags.
12205
12206 * gcc.texi: Changed the last-modification date.
12207 * invoke.texi: Added `-fhandle-signatures' in the list of
12208 C++ language options. Added explanation for this option.
12209
6060a796 12210Tue Dec 28 21:10:03 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
12211
12212 * cp-init.c (expand_vec_init): Remove comptypes test, as it is too
12213 harsh here.
12214
6060a796 12215Tue Dec 28 13:42:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
12216
12217 * cp-pt.c (do_pending_expansions): Decide to expand a template
12218 member function, based upon it's class type, not the class type of
12219 the first place it was declared.
12220
6060a796 12221Tue Dec 28 05:42:31 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
12222
12223 * cp-class.c (is_normal): New routine, use to determine when the
12224 given binfo is the normal one. (The one that should have the simple
12225 vtable name.)
12226 * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
12227 to check if two fndecls are `the same'. Sometimes this routine can
12228 modify the main vtable, and normal should be 1, in that case, so use
12229 is_normal() to determine if this is the main vtable for the class.
12230 Don't recurse down virtual bases, as they are shared, and we take
12231 care of them elsewhere.
12232 * cp-class.c (modify_vtable_entries): If we have already updated the
12233 vtable with the new virtual, don't do it again.
12234 * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
12235 appropriate. Do virtual function overriding in virtual bases, after
12236 normal overriding, so that the base function list in DECL_VINDEX is
12237 not overridden, before we have a chance to run through the list.
12238 Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
12239 Make sure we pass the right address into modify_vtable_entries.
12240 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
12241 binfo is the one that has the vtable that we based our vtable on.
12242
12243Fri Dec 24 09:40:52 1993 Michael Tiemann (tiemann@blues.cygnus.com)
12244
12245 * cp-typeck.c (c_expand_start_case): Use default_conversion to
12246 convert expression from reference type if necessary.
12247
12248Wed Dec 22 17:58:43 1993 Jason Merrill (jason@deneb.cygnus.com)
12249
12250 * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
12251 trying to read its TREE_VALUE.
12252
12253 * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
12254 (finish_struct): Instead of here.
12255
12256Tue Dec 21 14:34:25 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12257
12258 * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
12259 have TYPE_PTRMEMFUNC_P set before we try to build its
12260 CLASSTYPE_ID_AS_LIST.
12261 (get_decl_list): Likewise, when trying to read it.
12262
12263 * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
12264 (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
12265
12266Mon Dec 20 13:35:03 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12267
12268 * cp-typeck.c (rationalize_conditional_expr): New function.
12269 (unary_complex_lvalue): Use it.
12270 (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
12271 with build_unary_op won't cut it. Don't wrap the COND_EXPR with a
12272 SAVE_EXPR either.
12273
12274 * cp-decl2.c (explicit_warn_return_type): Deleted variable.
12275 (lang_decode_option): Set warn_return_type, not explicit_*, for
12276 -Wreturn-type and -Wall. This is what rest_of_compilation uses to
12277 decide if it should go into jump_optimize or not.
12278 * cp-tree.h (explicit_warn_return_type): Deleted.
12279 * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
12280 (finish_function): Also complain about no return in a non-void fn if
12281 we're being pedantic (don't rely on use of -Wreturn-type).
12282
12283Fri Dec 17 15:45:46 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12284
12285 * cp-decl.c (grokdeclarator): Forbid declaration of a function as
12286 static if it's being done inside another function.
12287
12288 * cp-search.c (compute_visibility): Check for friendship both ways.
12289
12290Fri Dec 17 14:28:25 1993 Jason Merrill (jason@deneb.cygnus.com)
12291
12292 * cp-cvt.c (build_default_binary_type_conversion): Make error
12293 messages more helpful.
12294
12295 * cp-error.c (op_as_string): New function, returns "operator =="
12296 given EQ_EXPR or suchlike.
12297
12298Fri Dec 17 13:28:11 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12299
12300 * cp-call.c (print_n_candidates): New function.
12301 (build_overload_call_real): Use it when we complain about a call
12302 being ambiguous.
12303
12304Fri Dec 17 12:41:17 1993 Jason Merrill (jason@deneb.cygnus.com)
12305
12306 * cp-call.c (build_method_call): Fix checking for static call
12307 context.
12308
12309 * cp-method.c (build_opfncall): Call build_indirect_ref on argument
12310 to operator new.
12311
12312 * cp-init.c (build_new): Don't mess with rval when building
12313 indirect ref.
12314
12315Thu Dec 16 16:48:05 1993 Kung Hsu (kung@cirdan.cygnus.com)
12316
12317 * cp-lex.c (default_assign_ref_body): add check when TYPE_NESTED_
12318 NAME(type) may not be exist. It's not a problem for old compiler.
12319
12320Thu Dec 16 14:46:06 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12321
12322 * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
12323 never used for anything.
12324 (struct lang_type, member type_flags): Delete field
12325 `alters_visibility', and up `dummy' by 1.
12326 * cp-class.c (finish_base_struct): Delete code that copies the
12327 setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
12328 (finish_struct): Delete code that sets it.
12329
12330Thu Dec 16 14:44:39 1993 Jason Merrill (jason@deneb.cygnus.com)
12331
12332 * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
12333 build_method_call that I messed up before.
12334
12335 * cp-search.c (get_base_distance): If protect > 1, allow immediate
12336 private base.
12337
12338 * cp-class.c (finish_base_struct): Set cant_synth_* correctly.
12339 (finish_struct): Ditto. Well, nigh-correctly; it won't deal
12340 properly with the case where a class contains an object of an
12341 ambiguous base class which has a protected op=. Should be fixed
12342 when the access control code gets overhauled.
12343 (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.
12344
12345Thu Dec 16 12:17:06 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12346
12347 * cp-lex.c (real_yylex): Turn the code back on that deals with
12348 __FUNCTION__ and __PRETTY_FUNCTION__. Don't use lookup_name, to
12349 avoid the ambiguity problems that led to it being turned off in the
12350 first place.
12351
12352 * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
12353 to see if something is a method.
12354
6060a796 12355Wed Dec 15 18:35:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
12356
12357 * cp-typeck.c (build_modify_expr): Avoid error messages on small
12358 enum bit fields.
12359 * cp-typeck.c (convert_for_assignment): Add missing argument to
12360 cp_warning and cp_pedwarn calls.
12361
12362Wed Dec 15 18:25:32 1993 Jason Merrill (jason@deneb.cygnus.com)
12363
12364 * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
12365 initializers; it's just anachronistic.
12366
12367 * cp-decl.c (finish_decl): Don't require external-linkage arrays
12368 to have a complete type at declaration time when pedantic.
12369
12370Tue Dec 14 11:37:23 1993 Jason Merrill (jason@deneb.cygnus.com)
12371
12372 * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.
12373
12374 * cp-call.c (build_method_call): Don't dereference pointer given
12375 as instance.
12376
12377 * cp-decl.c (finish_function): Don't pass pointer to
12378 build_method_call.
12379 (finish_function): Ditto.
12380
12381 * cp-typeck.c (build_x_function_call): Ditto.
12382
12383 * cp-method.c (build_component_type_expr): Ditto.
12384
12385 * cp-init.c (build_member_call): Ditto.
12386 (build_new): Ditto.
12387
12388Mon Dec 13 18:04:33 1993 Kung Hsu (kung@cirdan.cygnus.com)
12389
12390 * cp-decl.c (xref_tag): fix regression created by changes made
12391 in Dec. 7 1993.
12392 * cp-decl.c (xref_defn_tag): fix parallel nested class problem.
12393
12394Fri Dec 10 12:40:25 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12395
12396 * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
12397 out the final evaluation of the function, so we can see if ELLIPSIS,
12398 USER, and EVIL were set at the end.
12399
12400 * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
12401 only go for setting TRIVIAL_CODE if we are dealing with types that
12402 are compatible.
12403
6060a796 12404Thu Dec 9 18:27:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
12405
12406 * cp-decl.c (flag_huge_objects): New flag to allow large objects.
12407 * toplev.c (lang_options): Ditto.
12408 * cp-decl2.c (flag_huge_objects, lang_f_options): Ditto.
12409 * cp-decl.c (delta_type_node): New type for delta entries.
12410 * cp-tree.h (delta_type_node): Ditto.
12411 * cp-decl.c (init_decl_processing): Setup delta_type_node.
12412 * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
12413 delta_type_node instead of short_integer_type_node.
12414 * cp-class.c (build_vtable_entry): Ditto.
12415
12416Thu Dec 9 16:19:05 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12417
12418 * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
12419 NO_{DOLLAR,DOT} macro checks, so it always gets defined.
12420 (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
12421
6060a796 12422Wed Dec 8 17:38:06 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
12423
12424 * cp-decl.c (finish_decl): Make sure things that can go into
12425 "common", do go into common, if -fcommon is given.
12426
12427Wed Dec 8 13:01:54 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12428
63718c49
GB
12429 * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
12430 (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
12431 argument matching diagnostics to make instantly clear what the
12432 compiler is doing.
7177d104
MS
12433
12434 * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
12435 then check to see if the penalty was increased due to
12436 signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.
12437
12438Tue Dec 7 18:29:14 1993 Kung Hsu (kung@cirdan.cygnus.com)
12439
12440 * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
12441 problem.
12442
12443Tue Dec 7 16:09:34 1993 Jason Merrill (jason@deneb.cygnus.com)
12444
12445 * cp-class.c (finish_struct): Before synthesizing methods, if no
12446 methods have yet been declared then set nonprivate_method. Don't
12447 set non_private method after synthesizing a method.
12448
12449 * cp-lex.c (extract_interface_info): If flag_alt_external_templates
12450 is set, tie emitted code to the location of template instantiation,
12451 rather than definition.
12452
12453 * cp-tree.h: Declare flag_alt_external_templates.
12454
12455 * cp-decl2.c (lang_decode_option): Support -falt-external-templates.
12456
12457 * toplev.c (lang_options): Ditto.
12458
9e9ff709 12459Mon Oct 4 12:50:02 1993 Chip Salzenberg (chip@fin.uucp)
7177d104 12460
63718c49
GB
12461 [changes propagated from 930810 snapshot]
12462 * cp-decl.c (init_decl_processing): Make long long available for use
12463 as SIZE_TYPE and PTRDIFF_TYPE.
12464 (finish_decl): Allow file-scope static incomplete array.
12465 (grokdeclarator): Don't pass on const and volatile fron function
12466 value type to function type.
12467 Warn here for volatile fn returning non-void type.
12468 * cp-parse.y (attrib): Accept attributes `volatile' with alias
12469 `noreturn', and `const'.
12470 * cp-typeck.c (default_conversion): Don't lose const and volatile.
12471 (build_binary_op_nodefault): Generate pedantic warning for comparison
12472 of complete pointer type with incomplete pointer type.
12473 (build_c_cast): Be careful that null pointer constant be INTEGER_CST.
7177d104
MS
12474
12475Tue Dec 7 10:46:48 1993 Jason Merrill (jason@deneb.cygnus.com)
12476
12477 * cp-init.c (expand_vec_init): When creating a temporary for copying
12478 arrays, use the type of the source, not the target.
12479
12480 * cp-cvt.c (convert): Pass an argument for errtype to
12481 convert_to_reference.
12482
12483 * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
12484 methods, -> and `this'.
12485
12486Mon Dec 6 17:12:33 1993 Jason Merrill (jason@deneb.cygnus.com)
12487
12488 * cp-error.c (parm_as_string): New function; returns `this' or arg
12489 number. Corresponds to %P.
12490 (dump_expr): Deal with method calls.
12491
12492 * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
12493 * cp-typeck.c (convert_for_assignment): Ditto.
12494 (warn_for_assignment): Lose.
12495
12496Mon Dec 6 11:33:35 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12497
12498 * cp-call.c (ideal_candidate_ansi): Delete code that was never
12499 doing anything useful. Instead, sort once, and DO NOT wipe
12500 out any codes with EVIL_CODE, since that's what we use as a
12501 marker for the end of the list of candidates.
12502
12503 * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.
12504
12505Mon Dec 6 12:49:17 1993 Jason Merrill (jason@deneb.cygnus.com)
12506
12507 * cp-init.c (get_aggr_from_typedef): New function, like
12508 is_aggr_typedef but returns the _TYPE.
12509
12510 * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.
12511
12512Sun Dec 5 18:12:48 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12513
12514 * cp-lex.c (readescape): Pedwarn when a hex escape is out of range.
12515
12516Thu Nov 25 23:50:19 1993 Chip Salzenberg (chip@fin.uucp)
12517
12518 Delay language context change until beginning of next decl.
12519
12520 * cp-lex.h (c_header_level): Removed.
12521 (pending_lang_change): Declared.
12522 * cp-lex.c (c_header_level): Renamed from in_c_header, made static.
12523 (pending_lang_change): Defined.
12524 (check_newline): Rework code that recognizes line number and
12525 filename changes. Instead of pushing and popping lang context,
12526 increment and decrement pending_lang_change.
12527 (do_pending_lang_change): Push and pop lang context according
12528 to value of pending_lang_change.
12529 * cp-parse.y (extdefs): Use lang_extdef instead of extdef.
12530 (extdef): Same as extdef, but call do_pending_lang_change() first.
12531
12532Mon Nov 15 15:39:15 1993 Chip Salzenberg (chip@fin.uucp)
12533
12534 * cp-typeck.c (build_binary_op_nodefault): Warn for ordered
12535 compare of ptr with 0 only if pedantic in both cases.
12536
12537Thu Nov 25 13:31:37 1993 Chip Salzenberg (chip@fin.uucp)
12538
12539 Reinstate the below patch, which got lost in the Cygnus merge:
12540 Tue Nov 23 13:59:24 1993 Hallvard B Furuseth (hbf@durin.uio.no)
12541 * cp-parse.y (maybe_type_qual): Don't fail to set $$.
12542
12543Wed Nov 17 19:03:30 1993 Chip Salzenberg (chip@fin.uucp)
12544
12545 * cp-parse.y (attrib): Allow "ident(ident)" like the C front end.
12546
12547Fri Oct 22 20:43:37 1993 Paul Eggert (eggert@twinsun.com)
12548
12549 * cp-lex.c (real_yylex): Diagnose floating point constants
12550 that are too large.
12551
12552Wed Nov 17 19:10:37 1993 Chip Salzenberg (chip@fin.uucp)
12553
12554 * cp-type2.c (build_functional_cast): ARM page 16: When a class
12555 and an object, function or enumerator are declared in the same
12556 scope with the same name, the class name is hidden.
12557
12558Wed Nov 17 19:07:18 1993 Chip Salzenberg (chip@fin.uucp)
12559
12560 * cp-call.c (convert_harshness_ansi): Distinguish float, double,
12561 and long double from each other when overloading.
12562 (compute_conversion_costs_{ansi,old}, build_method_call,
12563 build_overlay_call_real, convert_to_aggr): Always set and
12564 always use H_LEN member of candidate structure.
12565
12566Mon Oct 11 23:10:53 1993 Chip Salzenberg (chip@fin.uucp)
12567
12568 * cp-decl.c (duplicate_decls): Note redeclarations of library
12569 functions, and generate distinct warnings for them.
12570
12571Mon Oct 4 12:26:49 1993 Chip Salzenberg (chip@fin.uucp)
12572
12573 Support format warnings in G++.
12574
12575 * cp-tree.h: Protect against multiple inclusion.
12576 Declare all public functions in c-common.c (copy from c-tree.h).
12577 (STDIO_PROTO): Define.
12578 (warn_format): Declare.
12579 (record_format_info): Remove declaration.
12580 * cp-decl.c (init_decl_processing): Call init_function_format_info.
12581 * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
12582 * cp-typeck.c (build_function_call_real): Call check_function_format.
12583 (record_format_info): Remove -- obsolete stub.
12584
12585Sat Jul 24 12:04:29 1993 Chip Salzenberg (chip@fin.uucp)
12586
12587 * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
12588 following an extern one (for -Wredundant-decls).
12589 * cp-parse.y (primary): In statement expression case, if compstmt
12590 returns something other than a BLOCK, return it unchanged.
12591
12592Thu Dec 2 20:44:58 1993 Chip Salzenberg (chip@fin.uucp)
12593
12594 * cp-decl.c (warn_extern_redeclared_static): New function made
12595 from code extracted from pushdecl.
12596 (duplicate_decls, pushdecl): Call new function.
12597 (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
12598 to be a TREE_LIST when function is declared in 'extern "C" {}'.
12599
12600Fri Dec 3 16:01:10 1993 Jason Merrill (jason@deneb.cygnus.com)
12601
12602 * cp-class.c (duplicate_tag_error): Use cp_error.
12603 (finish_base_struct): Check for ambiguity with direct base, and don't
12604 generate op= or copy ctor if it exists.
12605
12606Fri Dec 3 15:32:34 1993 Kung Hsu (kung@cirdan.cygnus.com)
12607
12608 * cp-init.c (expand_member_init): when initializer name is null,
12609 don't try to build it now because emit_base_init will handle it.
12610
12611Fri Dec 3 12:28:59 1993 Jason Merrill (jason@deneb.cygnus.com)
12612
12613 * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
12614 code such as ExceptionHandler::operator=.
12615
12616Fri Dec 3 10:32:08 1993 Jason Merrill (jason@deneb.cygnus.com)
12617
12618 * cp-decl.c (grokdeclarator): Don't try to print out dname when
12619 complaining about arrays of references if decl_context==TYPENAME,
12620 since it will be null.
12621
12622 * cp-decl2.c: Default to flag_ansi_overloading.
12623
12624Thu Dec 2 18:05:56 1993 Kung Hsu (kung@cirdan.cygnus.com)
12625
12626 * cp-call.c (build_method_call): use binfo from instance if it's
12627 different from binfo (basetype_path) passed from above.
12628
12629Thu Dec 2 12:48:36 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12630
12631Wed Nov 17 19:14:29 1993 Chip Salzenberg (chip@fin.uucp)
12632
12633 cp-error.c (dump_expr): Use unsigned chars to output a
12634 TREE_REAL_CST in hex.
12635
12636Thu Dec 2 11:05:48 1993 Jason Merrill (jason@deneb.cygnus.com)
12637
12638 * cp-class.c (finish_struct): Fix typo in setting
12639 cant_synth_asn_ref.
12640
12641 * cp-tree.h (TYPE_NESTED_NAME): New macro, does
12642 DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).
12643
12644 * cp-lex.c (default_copy_constructor_body): Change
12645 DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
12646 (default_assign_ref_body): Ditto.
12647 (default_copy_constructor_body): Call operator= explicitly for
12648 base classes that have no constructor.
12649
12650Thu Dec 2 10:47:15 1993 Michael Tiemann (tiemann@blues.cygnus.com)
12651
12652 * cp-call.c (build_method_call): If the instance variable is
12653 converted to error_mark_node when we're trying to convert it to the
12654 base type of a method we're looking up, return error_mark_node.
12655
12656Thu Dec 2 10:41:16 1993 Torbjorn Granlund (tege@cygnus.com)
12657
12658 * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
12659 cases, tests for unsigned operands by peeking inside a NOP_EXPR.
12660
12661Wed Dec 1 13:33:34 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12662
12663 * cp-call.c (compute_conversion_costs_ansi): Use the size of struct
12664 harshness_code, not the size of short, for clearing out the
12665 ansi_harshness.
12666
12667 * cp-call.c (print_candidates): New function.
12668 (build_method_call): When we had some candidates, but didn't get a
12669 usable match, don't report that we got an error with the first
12670 candidate. Instead, say there were no matches, and list the
12671 candidates with print_candidates. In the second pass, make sure we
12672 clear out ever_seen, so we can accurately count the number of
12673 functions that qualified.
12674
12675Wed Dec 1 09:53:59 1993 Torbjorn Granlund (tege@cygnus.com)
12676
12677 * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
12678 only if op1 is known to be != -1.
12679 (build_binary_op_nodefault): Handle *_DIV_EXPR likewise.
12680
12681Tue Nov 30 14:07:26 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
12682
12683 * cp-method.c (hack_identifier): If the field itself is private, and
12684 not from a private base class, say so.
12685
12686Mon Nov 29 03:00:56 1993 Jason Merrill (jason@deneb.cygnus.com)
12687
12688 * cp-decl.c (grokdeclarator): Always warn on initialization of
12689 const member.
12690
12691Wed Nov 24 00:49:35 1993 Jason Merrill (jason@deneb.cygnus.com)
12692
12693 * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
12694 (finish_base_struct): Set cant_synth_asn_ref properly.
12695
12696 * cp-lex.c (cons_up_default_function): Add section for operator=.
12697 (default_assign_ref_body): New function, mostly cribbed from
12698 default_copy_constructor_body.
12699
12700 * cp-class.c (base_info): Add members cant_synth_copy_ctor,
12701 cant_synth_asn_ref, no_const_asn_ref.
12702 (finish_base_struct): Update no_const_asn_ref, note that you should
12703 update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
12704 (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
12705 initialize them properly. Set no_const_asn_ref properly. Set
12706 cant_synth_* in some of the situations where they should be set.
12707 Propagate TYPE_GETS_ASSIGN_REF. Use cant_synth_copy_ctor. Add call
12708 to cons_up_default_function for operator=.
12709
6060a796 12710Tue Nov 23 20:24:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
12711
12712 * cp-cvt.c (convert_force): Add code to perform casting of pointer
12713 to member function types.
12714 * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
12715 when the conversion should be done, regardless.
12716 * cp-tree.h (build_ptrmemfunc): Ditto.
12717 * cp-type2.c (digest_init): Ditto.
12718 * cp-typeck.c (convert_for_assignment): Ditto.
12719
12720Tue Nov 23 18:06:58 1993 Jason Merrill (jason@deneb.cygnus.com)
12721
12722 * cp-error.c (dump_expr): Do the right thing for variables of
12723 reference type.
12724
12725 * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
12726 and its kin properly.
12727 (xref_tag): Propagate TYPE_GETS_ASSIGN_REF.
12728
6060a796 12729Tue Nov 23 12:26:13 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
12730
12731 * cp-method.c (build_opfncall): Don't count pointer to member
12732 functions as aggregates here, as we don't want to look up methods in
12733 them. The compiler would core dump if we did, as they don't have
12734 normal names.
12735 * cp-typeck.c (build_indirect_ref): Improve wording on error
12736 message.
12737
12738Mon Nov 22 14:22:23 1993 Jason Merrill (jason@deneb.cygnus.com)
12739
12740 * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
12741 (since it's supported in other compiler bits).
12742
12743 * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
12744 argument.
12745
12746 * cp-error.c (dump_function_decl): Don't print return type for
12747 constructors and destructors.
12748
12749 * cp-cvt.c (cp_convert_to_pointer): Import code from
12750 convert_to_pointer so we can return error_mark_node in the case of an
12751 error, and to allow more meaningful error messages.
12752 (build_type_conversion): Don't go through void* when trying
12753 to convert to a pointer type.
12754
12755 * cp-decl.c (grokfndecl): Move call to grok_op_properties back
12756 after grokclassfn so that it's dealing with the right decl.
63718c49 12757 (grok_op_properties): Don't assert !methodp for op new and op delete.
7177d104
MS
12758
12759 * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
12760 no uses of it in the compiler).
12761
12762 * cp-call.c (build_scoped_method_call): Fix for destructors of simple
12763 types.
12764 (build_method_call): Ditto.
12765
12766Fri Nov 19 12:59:38 1993 Jason Merrill (jason@deneb.cygnus.com)
12767
12768 * cp-tree.c (count_functions): Abstraction function.
12769
12770 * cp-call.c (build_overload_call_real): Deal with new overloading
12771 properly, remove dead code.
12772
12773 * gcc.c (default_compilers): Generate and use .ii files in the
12774 intermediate stage of compiling C++ source.
12775
12776Fri Nov 19 11:26:09 1993 Jim Wilson (wilson@sphagnum.cygnus.com)
12777
12778 * cp-expr.c (cplus_expand_expr): Make call_target a valid memory
12779 address before using it, so it can be later safely compared.
12780
12781Fri Nov 12 15:30:27 1993 Jason Merrill (jason@deneb.cygnus.com)
12782
12783 * cp-pt.c (tsubst): Deal with new overloading.
12784
12785 * cp-typeck.c (fntype_p): is the arg function type?
12786 (comp_target_parms): pedwarn on conversion from (anything) to (...).
12787 (build_x_function_call): Deal with new overloading.
12788
12789 * cp-tree.c (decl_list_length): Deal with new overloading.
12790 (decl_value_member): Like value_member, but for DECL_CHAINs.
12791
12792 * cp-decl.c (duplicate_decls): Deal with new overloading.
12793 (start_decl): Ditto.
12794
12795 * cp-class.c (instantiate_type): Deal with new overloading.
12796
12797 * cp-call.c (convert_harshness_ansi): Deal with new overloading.
12798 (convert_harshness_old): Deal with new overloading.
12799 (build_overload_call_real): Ditto.
12800
12801Mon Nov 8 13:50:49 1993 Jason Merrill (jason@deneb.cygnus.com)
12802
12803 * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
12804 if unambiguous, NULL_TREE otherwise.
12805 (get_first_fn): Returns the first appropriate FUNCTION_DECL.
12806 (is_overloaded_fn): Returns whether or not the passed tree is
12807 a function or list of functions.
12808
12809 * cp-init.c (init_init_processing): use `get_first_fn' to find
12810 the FUNCTION_DEFN for new and delete.
12811
12812 * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
12813 code size in half (I spit on special cases).
12814
12815Tue Sep 7 20:03:33 1993 Jason Merrill (jason@deneb.cygnus.com)
12816
12817 * cp-decl.c: Allow references and template type parameters as well
This page took 1.249105 seconds and 5 git commands to generate.