]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
haifa-sched.c (find_pre_sched_live): Remove #if 0 code.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
4c9e597b
JL
1Sat Aug 23 17:47:22 1997 Jeffrey A Law (law@cygnus.com)
2
3 * call.c (strictly_better): Make arguments unsigned ints.
4
8eeda2ec
JM
5Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com>
6
7 * lex.c (real_yylex): Refer to __complex instead of complex.
8
8975416c
R
9Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
10
11 * lex.c (real_yylex): Don't use getc directly.
12
49c249e1
JM
13Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com>
14
15 * call.c (is_subseq): Don't try to be clever.
16
17Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
18
19 * parse.y, pt.c: Include "except.h".
20 * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
21 error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
22 lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
23 sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
24 prototyping.
25
26Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com>
27
28 * decl2.c (mark_vtable_entries): Instead of replacing pure
29 virtuals with a reference to __pure_virtual, copy the decl and
30 change the RTL.
31
f62dbf03
JM
32Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com>
33
f017f649
JM
34 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
35
36 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
37
fe4e8851
JM
38 * pt.c (instantiate_class_template): Call repo_template_used
39 before finish_prevtable_vardecl.
40
f62dbf03
JM
41 * call.c (is_subseq): New fn.
42 (compare_ics): Use it.
43
44 * repo.c (finish_repo): Don't crash on no args.
45
46 * parse.y (named_complex_class_head_sans_basetype): Handle
47 explicit global scope.
48 * decl2.c (handle_class_head): New fn.
49
50 * pt.c (unify): Add CONST_DECL case.
51
da20811c
JM
52Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
53
54 * rtti.c (permanent_obstack): Fix decl to not be a pointer.
55
56 * cp-tree.h (report_type_mismatch): Add prototype.
57 * call.c (build_overload_call_real): Remove erroneous fourth
58 argument to report_type_mismatch.
59 (build_user_type_conversion_1): Remove erroneous second arg to
60 tourney.
61 (build_new_function_call): Likewise.
62 (build_object_call): Likewise.
63 (build_new_op): Likewise.
64 (build_new_method_call): Likewise.
65
66Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com>
67
68 * error.c (dump_decl): Don't bother processing a function with no
69 DECL_LANG_SPECIFIC.
70
71 * method.c (emit_thunk): Call init_function_start in the macro case.
72
73Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
74
75 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
76 defined and used to set flag_vtable_thunks.
77
78Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com>
79
80 * parse.y: Don't clear the inlines from their obstack until they've
81 all been processed.
82
83 * decl.c (duplicate_decls): Don't complain about exception
84 specification mismatch if flag_exceptions is off.
85
86Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com>
87
88 * Make-lang.in (c++.distclean): Remove g++.c on make distclean.
89
90Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com>
91
92 * cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
93 * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
94 Include <stdio.h> before include files that formerly used STDIO_PROTO.
95
96 * decl.c, g++spec.c, lex.c, method.c, repo.c:
97 Include "config.h" first, as per autoconf manual.
98
99Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com>
100
101 * decl.c (duplicate_decls): Tweak wording.
102 * lex.c (do_pending_defargs): Don't die if we see a default arg
103 that isn't a DEFAULT_ARG.
104 * error.c (dump_expr): Handle DEFAULT_ARG.
105
106 * decl2.c (lang_decode_option): Handle -fhandle-exceptions.
107 * lang-options.h: Add -fhandle-exceptions.
108
109 * class.c (build_vtable): vtables are artificial.
110 (prepare_fresh_vtable): Likewise.
111
112Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
113
114 * cvt.c (ocp_convert): After converting to the target type, set
115 LOOKUP_NO_CONVERSION.
116
117 * call.c (joust): Warn about potentially confusing promotion rules
118 with -Wsign-promo.
119 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
120
121Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com>
122
123 * exception.cc: Declare __terminate_func with noreturn attribute.
124
8dff1027
MS
125Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
126
127 * parse.y: Break out eat_saved_input, handle errors.
da20811c 128 (function_try_block): Use compstmt instead of compstmt_or_error.
8dff1027
MS
129
130Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
131
132 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
133
134Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
135
136 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
137 existence of cc1plus check whether $(LANGUAGES) contains C++.
138
139Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
140
141 * method.c (do_build_copy_constructor): When copying an anonymous
142 union member loop around to handle nested anonymous unions. Use
143 the offset of the member relative to the outer structure, not the
144 union.
145
86e6f22f
JM
146Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
147
148 * call.c (resolve_args): New fn.
149 (build_new_function_call): Use it.
150 (build_object_call): Likewise.
151 (build_new_method_call): Likewise.
152
153Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
154
155 * call.c (build_over_call): tsubst all default parms from templates.
156
42976354
BK
157Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
158
159 * decl.c (struct cp_function): Add static_labelno.
160 (push_cp_function_context): Save it.
161 (pop_cp_function_context): Restore it.
162
163Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com>
164
165 * typeck.c (build_component_ref_1): Convert from reference.
166
167Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
168
169 * parse.y (current_declspecs, prefix_attributes): Initialize to
170 NULL_TREE.
171
172 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
173 before we try to force it to be a TREE_LIST.
174 (decl): Make sure $1.t is non-nil.
175
176Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com>
177
178 * pt.c (uses_template_parms): Handle template first-parse codes.
179
180 * decl.c (cp_finish_decl): Only warn about user-defined statics.
181
182Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com>
183
184 * pt.c (unify): Handle BOOLEAN_TYPE.
185
186 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
187 * pt.c (tsubst): Don't set it.
188 * call.c (build_over_call): Use uses_template_parms.
189
190Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com>
191
192 * method.c (build_overload_nested_name): Use static_labelno
193 instead of var_labelno.
194 (build_qualified_name): New fn.
195 (build_overload_name): Split out from here.
196 (build_static_name): Use build_qualified_name.
197 * decl.c (cp_finish_decl): Statics in extern inline functions
198 have comdat linkage.
199 (start_function): Initialize static_labelno.
200
201Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
202
203 * class.c (finish_struct_methods): add check of warn_ctor_dtor_privacy
204 before "all member functions in class [] are private"
205
206Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
207
208 * lex.c (do_scoped_id): convert_from_reference.
209 * init.c (build_offset_ref): Likewise.
210
42976354
BK
211Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
212
213 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
214
215Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com>
216
217 * typeck.c (get_member_function_from_ptrfunc): Promote index
218 before saving it.
219
220Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com>
221
222 * tree.c (layout_basetypes): Move non-virtual destructor warning.
223 * decl.c (xref_basetypes): Remove non-virtual destructor warning.
224
225Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com>
226
227 * decl.c (grokdeclarator): Call add_defarg_fn for the function
228 type, too.
229 * lex.c (add_defarg_fn): Adjust.
230 (do_pending_defargs): Adjust. Don't skip the first parm.
231
232Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com>
233
234 * decl.c (build_enumerator): Global enumerators are also readonly.
235
236 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
237 (build_dynamic_cast): Call it and convert_from_reference.
238
239 * lex.c (add_defarg_fn): New fn.
240 (snarf_defarg): Don't add to defarg_types.
241 (do_pending_defargs): Lose defarg_types. All fns we process now
242 have defargs.
243 * decl.c (grokfndecl): Call add_defarg_fn.
244
245 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
246 * cp-tree.def: Add DEFAULT_ARG.
247 * spew.c (yylex): Call snarf_defarg as appropriate.
248 * parse.y: New tokens DEFARG and DEFARG_MARKER.
249 (defarg_again, pending_defargs, defarg, defarg1): New rules.
250 (structsp): Use pending_defargs.
251 (parms, full_parm): Use defarg.
252 * lex.c (init_lex): Initialize inline_text_firstobj.
253 (do_pending_inlines): Never pass the obstack to feed_input.
254 (process_next_inline): Call end_input instead of restore_pending_input.
255 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
256 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
257 * input.c (end_input): New fn.
258 (sub_getch): At the end of some fed input, just keep returning EOF
259 until someone calls end_input.
260 Remove 'obstack' field from struct input_source.
261 * decl.c (grokparms): Handle DEFAULT_ARG.
262 (replace_defarg): New fn.
263 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
264
265Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com>
266
267 * call.c (implicit_conversion): If nothing else works, try binding
268 an rvalue to a reference.
269
270Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com>
271
272 * decl.c (init_decl_processing): fix Jun 30 patch -- move
273 ifndef for Cygwin32 to include SIGSEGV.
274
7834ab39
MS
275Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com>
276
277 * class.c (finish_struct_1): Only complain about pointers without
278 copy stuff if there are any constructors.
279
280 * rtti.c (build_dynamic_cast): Call complete_type on the types.
281
282 * decl.c (grokfndecl): If the function we chose doesn't actually
283 match, die.
284
285 * decl2.c (grokclassfn): Don't specify 'const int' for the
286 artificial destructor parm.
287
288 * pt.c (type_unification): If we are called recursively, nothing
289 decays.
290
291Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com>
292
42976354
BK
293 * decl.c (init_decl_processing): Stop trying to catch signals
294 other than SIGABRT since the Cygwin32 library doesn't support
295 them correctly yet. This fixes a situation in which g++ causes
296 a hang on SIGSEGVs and other such signals in our Win32-hosted
297 tools.
7834ab39
MS
298
299Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com>
300
301 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
302
303Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com>
304
305 * typeck2.c (store_init_value): Always return the value if our
306 type needs constructing.
307
308 * method.c (hack_identifier): Convert class statics from
309 reference, too.
310
311Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com>
312
313 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
314
b88c08b6
MS
315Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com>
316
317 * typeck.c (c_expand_return): Make sure we clean up temporaries at
318 the end of return x;
319
320Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
321
322 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
323
6633d636
MS
324Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com>
325
326 * except.c (expand_builtin_throw): Add support
327 -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
328
329Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com>
330
331 * repo.c (extract_string): Null-terminate.
332
333 * cp-tree.h (TI_SPEC_INFO): New macro.
334 (CLASSTYPE_TI_SPEC_INFO): New macro.
335 * pt.c (push_template_decl): Correctly determine # of template parms
336 for partial specs.
337
338 * call.c (compare_ics): Really fix 'this' conversions.
339
340 * pt.c (do_decl_instantiation): Don't crash on explicit inst of
341 non-template fn.
342
343 * pt.c (push_template_decl): Complain about mismatch in # of
344 template parms between a class template and a member template.
345
346Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com>
347
348 * method.c (synthesize_method): You can't call
349 function_cannot_inline_p after finish_function.
350 * decl.c (finish_function): Turn on flag_inline_functions and turn
351 off DECL_INLINE before handing a synthesized method to the
352 backend.
353
354Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com>
355
356 * method.c (synthesize_method): Remove July 30 change to never set
357 DECL_INLINE if at_eof.
358
359Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com>
360
361 * xref.c (GNU_xref_member): Ensure that the node has a
362 decl_lang_specific part before checking DECL_FRIEND_P.
363
364Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com>
365
366 * pt.c (instantiate_class_template): Diagnose non-class types used
367 as bases.
368
369Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com>
370
371 * typeck.c (build_conditional_expr): Use convert_for_initialization
372 instead of convert_and_check.
373
374Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
375
376 * parse.y (typespec): Don't pedwarn for typeof.
377
378Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com>
379
380 * repo.c (finish_repo): Only check changes if we would write a
381 repo file.
382
383 * call.c (compare_ics): Fix handling of 'this' conversions.
384
385 * pt.c (do_decl_instantiation): Support static data too. Rename
386 from do_function_instantiation.
387 * cp-tree.h: Adjust.
388 * parse.y: Adjust.
389
390 * repo.c (extract_string): New fn.
391 (get_base_filename): Use it.
392 (init_repo): Compare old args with current args.
393
394Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com>
395
396 * Makefile.in, Make-lang.in: Protect C-ls with a comment
397 character, idea from Paul Eggert <eggert@twinsun.com>.
398
399Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com>
400
401 * typeck.c (c_expand_return): Be more persistent in looking for
402 returned temps.
403
404 * cvt.c (build_up_reference): Use NOP_EXPR for switching from
405 pointer to reference.
406
407 * class.c (build_vbase_path): Don't do anything if PATH has no steps.
408
409Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com>
410
411 * init.c (build_member_call, build_offset_ref):
412 Use do_scoped_id instead of do_identifier.
413
414 * cvt.c (convert): Remove bogosity.
415
416Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
417
418 * cvt.c (build_up_reference): Do checks of ARGTYPE and
419 TARGET_TYPE before trying to use get_binfo.
420
421Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com>
422
423 * cvt.c (build_up_reference): Call get_binfo to get access control.
424
425 * decl2.c (import_export_decl): If we don't support weaks, leave
426 statics undefined.
427
428Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com>
429
430 * except.c (expand_builtin_throw): Add support for machines that
431 cannot access globals after throw's epilogue when
432 -fno-sjlj-exceptions is used.
433
434Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com>
435
436 * parse.y: 'std::' becomes '::'.
437 * lex.c (real_yylex): Remove 'namespace' warning.
438 * init.c (build_member_call): Ignore 'std::'.
439 (build_offset_ref): Likewise.
440 * decl2.c (do_using_directive): Ignore 'using namespace std;'.
441 (do_toplevel_using_decl): Ignore 'using std::whatever'.
442 * decl.c (push_namespace): Just sorry.
443 (pop_namespace): Nop.
444 (init_decl_processing): Declare std namespace.
445
013bc8af
MS
446Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com>
447
448 * search.c (push_class_decls): A name which ambiguously refers to
449 several instantiations of the same template just refers to the
450 template.
451
452Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com>
453
454 * decl.c (build_enumerator): fix problem with unsigned long
455 enumerated values being smashed to ints, causing overflow
456 when computing next enumerated value. (for enum values around
457 MAX_VAL).
458
459Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com>
460
461 * typeck.c (build_component_ref): Only call mark_used on a decl.
462
463Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
464
465 * typeck.c (build_c_cast): Make the check for a ptr to function
466 more specific before possible default_conversion call.
467
e00737d2
MS
468Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
469
470 * except.c (expand_exception_blocks): Simplify and fix and make
471 sure we don't end a region in a sequence, as expand_end_bindings
472 doesn't like it.
473
474Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
475
476 * except.c (init_exception_processing): Mark terminate as not
477 returning so that the optimizer can optimize better.
478
37c46b43
MS
479Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
480
481 * cvt.c (convert): Don't do any extra work, if we can avoid it
482 easily.
483
484Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com>
485
486 * *.[chy]: Change cp_convert to ocp_convert, change convert to
487 cp_convert. convert is now reserved for the backend, and doesn't
488 have the semantics a frontend person should ever want.
489
490Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com>
491
492 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
493 Lose -traditional support.
494
495Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com>
496
497 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
498
499 * parse.y (self_reference): Do it for templates, too.
500 * class.c (pushclass): Don't overload_template_name; the alias
501 generated by build_self_reference serves the same purpose.
502
503 * tree.c (list_hash): Make static, take more args.
504 (list_hash_lookup): Likewise.
505 (list_hash_add): Make static.
506 (list_hash_canon): Lose.
507 (hash_tree_cons): Only build a new node if one isn't already in the
508 hashtable.
509 (hash_tree_chain): Use hash_tree_cons.
510 * cp-tree.h: Adjust.
511 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
512 of calling lookup_name.
513
514Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com>
515
516 * pt.c (instantiate_class_template): TYPE_VALUES for an enum
517 doesn't refer to the CONST_DECLs.
518
519Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com>
520
521 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
522 is bigger.
523 (expand_class_desc): Convert the last argument to a sizetype.
524
525Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
526
527 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
528 __real__): Add reswords.
529 * hash.h: Regenerate.
530 * lex.h (rid): Add RID_COMPLEX.
531 (RID_LAST_MODIFIER): Set to RID_COMPLEX.
8eeda2ec 532 * lex.c (init_lex): Add building of RID_COMPLEX.
37c46b43
MS
533 (real_yylex): General cleanup in line with what c-lex.c also has,
534 sans the cruft for traditional; add handling of SPEC_IMAG, complex
535 types, and imaginary numeric constants.
536 * parse.y (REALPART, IMAGPART): Add tokens.
537 (unary_expr): Add REALPART and IMAGPART rules.
538 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
539 * decl.c (complex_{integer,float,double,long}_type_node): Define
540 types.
541 (init_decl_processing): Set up the types.
542 (grokdeclarator): Add handling of RID_COMPLEX. Set and use
543 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
544 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
545 * cvt.c (cp_convert): Handle COMPLEX_TYPE.
546 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
547 COMPLEX_TYPE case.
548 * method.c (build_overload_name): Add handling of the different
549 COMPLEX_TYPEs, prefixing them with `J'.
550 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
551 as a template parm.
552 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
553 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
554 (mapcar): Handle COMPLEX_CST.
555 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
556 (common_type): Add code for complex types.
557 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
558 (convert_for_assignment): Likewise.
559 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
560
561Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com>
562
563 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
564 tsubst_expr, as it might try to do overload resolution.
565
b87692e5
MS
566Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com>
567
568 * pt.c (instantiate_class_template): Oops.
569
570Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com>
571
572 * cp-tree.def: Add TAG_DEFN.
573 * pt.c (tsubst_enum): New fn.
574 (instantiate_class_template): Use it.
575 (tsubst_expr): Support TAG_DEFN.
576 (tsubst): Support local enums.
577 (tsubst_copy): Likewise.
578 * decl.c (finish_enum): Likewise.
579 (start_enum): If this is a local enum, switch to permanent_obstack.
580
581Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com>
582
583 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
584 (finish_function): Put the base init code for constructors just
585 after the parm cleanup insns.
586 (struct cp_function): Add last_parm_cleanup_insn.
587 (push_cp_function_context): Likewise.
588 (pop_cp_function_context): Likewise.
589
590Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com>
591
592 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
593
594Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
595
596 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
597 for THUNK_FNDECL before we switch to temporary allocation.
598
beb53fb8
JM
599Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
600
601 * call.c (build_new_op): Handle null arg2 for ?:.
602
eb448459
MS
603Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
604
605 * except.c (expand_exception_blocks): Ensure that we flow through
37c46b43
MS
606 the end of the exception region for the exception specification.
607 Move exception region for the exception specification in, so that
608 it doesn't protect the parm cleanup. Remove some obsolete code.
609 * decl.c (store_parm_decls): Likewise.
eb448459
MS
610 (finish_function): Likewise.
611
612Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com>
613
614 * init.c (build_new): Fix nothrow handling.
615
616Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
617
618 * init.c (emit_base_init): Don't warn about the initialization
619 list for an artificial member.
620
621Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
622
623 * expr.c (do_case): Handle !START case for the error msg.
624
625Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com>
626
627 * decl2.c, lang-options.h: New option -Weffc++.
628 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
629 to -Weffc++.
630
631 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
37c46b43 632 to MULTIPLE_SYMBOL_SPACES.
eb448459
MS
633
634Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com>
635
636 * method.c (emit_thunk, generic case): Set current_function_is_thunk.
637
638 * method.c (emit_thunk, macro case): Set up DECL_RESULT.
639
640 * typeck.c (c_expand_return): Don't complain about returning void
641 to void in an artificial function.
642 * method.c (make_thunk): Change settings of READONLY/VOLATILE,
643 don't set DECL_RESULT, set DECL_ARTIFICIAL.
644 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
645
eb66be0e
MS
646Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com>
647
648 * init.c (init_decl_processing): Add supoprt for setjmp/longjmp based
649 exception handling.
650 * except.c (init_exception_processing): Likewise.
651 (expand_end_catch_block): Likewise.
652 (expand_exception_blocks): Likewise.
653 (expand_throw): Likewise.
654 * exception.cc (__default_terminate): Likewise.
655
656 * init.c (perform_member_init): Use new method of expr level
37c46b43 657 cleanups, instead of cleanups_this_call and friends.
eb66be0e
MS
658 (emit_base_init): Likewise.
659 (expand_aggr_vbase_init_1): Likewise.
660 (expand_vec_init): Likewise.
661 * decl.c (cp_finish_decl): Likewise.
662 (expand_static_init): Likewise.
663 (store_parm_decls): Likewise.
664 (cplus_expand_expr_stmt): Likewise.
665 * decl2.c (finish_file): Likewise.
666
667 * Make-lang.in (exception.o): Ok to compile with -O now.
668
669 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
670 we know it will be done later by the backend.
671
672 * decl2.c (lang_f_options): Remove support for short temps.
673 * lang-options.h: Likewise.
674
675Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com>
676
677 * tree.c (varargs_function_p): New fn.
678 * method.c (emit_thunk): Replace broken generic code with code to
37c46b43 679 generate a heavyweight thunk function.
eb66be0e
MS
680
681Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com>
682
683 * pt.c (process_template_parm): pedwarn about floating-point parms.
684
685 * decl.c (grokdeclarator): inline no longer implies static.
686
687 * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
688
689Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
690
691 * class.c (check_for_override): The signature of an overriding
37c46b43 692 function is not changed.
eb66be0e
MS
693
694 * call.c (build_over_call): Move setting of conv into the loop.
da20811c
JM
695 Note: this change, along with the related changes of the 18th thru
696 the 20th of April, fix an infinite loop problem in conversions.
eb66be0e
MS
697
698Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
699
700 * call.c (build_user_type_conversion_1): Really ignore rvalue
37c46b43 701 conversions when looking for a REFERENCE_TYPE.
eb66be0e
MS
702
703 * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
704 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
705 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
706 (build_unary_op): Likewise.
707 * call.c (build_over_call): See through a CONVERT_EXPR around the
37c46b43 708 ADDR_EXPR for on a temporary.
eb66be0e 709 * typeck.c (c_expand_return): See through a CONVERT_EXPR around
37c46b43 710 the ADDR_EXPR for a local variable.
eb66be0e
MS
711
712Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com>
713
714 * call.c (build_user_type_conversion_1): If we're trying to
37c46b43 715 convert to a REFERENCE_TYPE, only consider lvalue conversions.
eb66be0e
MS
716 (build_new_function_call): Print candidates.
717 (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
718 (reference_binding): Binding a temporary of a reference-related type
719 is BAD.
720
721Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
722
723 * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
724 * tinfo2.cc (type_info::before): Likewise.
725
726Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com>
727
728 * call.c (implicit_conversion): Oops.
729
730Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com>
731
732 * call.c (implicit_conversion): Try to find a reference conversion
37c46b43 733 before binding a const reference to a temporary.
eb66be0e
MS
734
735Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com>
736
737 * exception.cc (__default_unexpected): Call terminate by default,
738 so that if the user overrides terminate, the correct function will
739 be called.
740
bd6dd845
MS
741Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com>
742
743 * parse.y (left_curly): Avoid trying to use any fields of
eb66be0e 744 error_mark_node, as there aren't any.
bd6dd845
MS
745
746Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com>
747
748 * lex.c (do_identifier): Avoid breaking on overloaded methods
749 as default arguments.
750
751Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se>
752
eb66be0e 753 * call.c (add_template_candidate): Initialize the variable "dummy".
bd6dd845
MS
754
755Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
756
757 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
758 before we try to use TYPE_SIZE and TREE_CONSTANT on it.
759
760Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
761
762 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
763 (debug_binfo): Delete decl, not needed.
764
765 * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
766 promotes_to_aggr_type): Delete fns.
767 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
768 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
769 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
770
771 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
772
773 * friend.c (is_friend_type): Delete fn.
774 * cp-tree.h (is_friend_type): Delete decl.
775
776 * decl.c (original_result_rtx, double_ftype_double,
777 double_ftype_double_double, int_ftype_int, long_ftype_long,
778 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
779 * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
780
781 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
782 fwd decls.
783 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
784
785 * decl.c (pushdecl_nonclass_level): #if 0, unused.
786 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
787
788 * lex.c (reinit_lang_specific): #if 0, unused.
789 * cp-tree.h (reinit_lang_specific): #if 0 decl.
790
791 * decl.c (revert_static_member_fn): Make static, adding fwd decl.
792 * cp-tree.h (revert_static_member_fn): Delete decl.
793
794 * class.c (root_lang_context_p): Delete fn.
795 * cp-tree.h (root_lang_context_p): Delete decl.
796
797 * decl.c (set_current_level_tags_transparency): #if 0, unused.
798 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
799
800 * lex.c (set_vardecl_interface_info): Make static.
801 * cp-tree.h (set_vardecl_interface_info): Delete decl.
802
803 * call.c (find_scoped_type): Make static.
804 * cp-tree.h (find_scoped_type): Delete decl.
805
806 * search.c (convert_pointer_to_vbase): Make static.
807 * cp-tree.h (convert_pointer_to_vbase): Delete decl.
808
809 * decl.c (const_ptr_type_node): Likewise.
810 * cp-tree.h (const_ptr_type_node): Delete decl.
811
812 * typeck.c (common_base_type): Make static.
813 * cp-tree.h (common_base_types): Delete erroneous decl.
814
815 * pt.c (classtype_mangled_name): Make static.
816 * cp-tree.h (classtype_mangled_name): Delete decl.
817
818 * lex.c (check_newline): Make static.
819 * cp-tree.h (check_newline): Delete decl.
820
821 * typeck.c (build_x_array_ref): Delete fn, same idea as
822 grok_array_decl.
823 * cp-tree.h (build_x_array_ref): Delete decl.
824
825 * lex.c (copy_decl_lang_specific): Delete fn, same idea as
826 copy_lang_decl.
827 * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
828
829 * class.c (build_vtable_entry): Make static.
830 * cp-tree.h (build_vtable_entry): Delete decl.
831
832 * class.c (build_vbase_pointer): Make static.
833 * cp-tree.h (build_vbase_pointer): Delete decl.
834
835 * sig.c (build_sptr_ref): Add forward decl and make static.
836 * cp-tree.h (build_sptr_ref): Delete decl.
837
838 * call.c (build_new_method_call): Add forward decl and make static.
839 * cp-tree.h (build_new_method_call): Delete decl.
840
841 * call.c (build_object_call): Make static.
842 * class.c (check_for_override, complete_type_p, mark_overriders):
843 Likewise.
844 * decl.c (cp_function_chain): Likewise.
845 * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
846 Likewise.
847 * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
848 Likewise.
849 * tree.c (build_cplus_array_type_1): Likewise.
850 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
851 (comp_target_parms): Likewise.
852
853 * init.c (build_builtin_call): Make static.
854 * cp-tree.h (build_builtin_call): Delete decl.
855
856 * typeck.c (binary_op_error): Delete decl.
857 * cp-tree.h (binary_op_error): Likewise.
858
859Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
860
861 * call.c (build_method_call): Compare against error_mark_node
862 directly, rather than the ERROR_MARK tree code.
863 * cvt.c (cp_convert): Likewise.
864 * decl.c (print_binding_level): Likewise.
865 (duplicate_decls): Likewise.
866 (grokdeclarator): Likewise.
867 (grokdeclarator): Likewise.
868 * init.c (expand_aggr_init_1): Likewise.
869 (decl_constant_value): Likewise.
870 * method.c (build_opfncall): Likewise.
871 (hack_identifier): Likewise.
872 * typeck.c (build_modify_expr): Likewise.
873
874 * typeck.c (build_c_cast): Don't decl TYPE as register tree.
875
876Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
877
878 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
879
880 * pt.c (coerce_template_parms): Add new error message.
881
882 * method.c (build_overload_value): Implement name mangling for
883 floating-point template arguments.
884
885 * method.c (build_overload_int, icat, dicat): Fix mangling of template
886 arguments whose absolute value doesn't fit in a signed word.
887
888Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
889
890 * friend.c: New file; put all of the friend stuff in here.
891 * init.c: Instead of here.
892 * Makefile.in (CXX_OBJS): Add friend.o.
893 (friend.o): Add dependencies.
894 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
895
896Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com>
897
898 * call.c (build_scoped_method_call): Complain if the scope isn't a
eb66be0e 899 base.
bd6dd845
MS
900
901Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com>
902
903 * parse.y (left_curly): Don't crash on erroneous type.
904
905 * init.c (build_delete): Fix type of ref.
906
907Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com>
908
909 * search.c (get_vbase_1): Renamed from get_vbase.
910 (get_vbase): Wrapper, now non-static.
911 (convert_pointer_to_vbase): Now static.
912
913 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
914 * init.c (build_delete): Pass one.
915 (build_partial_cleanup_for): Use build_scoped_method_call.
916 * decl.c (finish_function): Pass a binfo.
917
918Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com>
919
920 * call.c (build_over_call): Only synthesize non-trivial copy ctors.
921
922 * typeck.c (build_c_cast): Lose other reference to flag.
923
924 * call.c (build_field_call): Don't look for [cd]tor_identifier.
925 * decl2.c (delete_sanity): Remove meaningless use of
eb66be0e 926 LOOKUP_HAS_IN_CHARGE.
bd6dd845 927 * decl.c (finish_function): Use build_scoped_method_call instead
eb66be0e 928 of build_delete for running vbase dtors.
bd6dd845 929 * init.c (build_delete): Call overload resolution code instead of
eb66be0e 930 duplicating it badly.
bd6dd845 931
2ba25f50
MS
932Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com>
933
934 * call.c (build_over_call): Call mark_used before trying to elide
935 the call.
936
937 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
938
939Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
940
941 * typeck.c (build_modify_expr): Always pedwarn for a cast to
942 non-reference used as an lvalue.
943
944Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com>
945
946 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
947
948Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com>
949
950 * parse.y (handler): Fix template typo.
951
952Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com>
953
954 * error.c (lang_decl_name): New fn.
955 * tree.c (lang_printable_name): Use it.
956
957Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com>
958
959 * g++spec.c: Include config.h so that we can catch bzero #defines
960 from the config file.
961
e9f32eb5
MS
962Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com>
963
964 * new1.cc: Include a declaration for malloc, to avoid warning, and
eb66be0e
MS
965 avoid lossing on systems that require one (ones that define malloc
966 in xm.h).
e9f32eb5
MS
967
968Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
969
970 * decl2.c (max_tinst_depth): New variable.
971 (lang_decode_option): Parse "-ftemplate-depth-NN" command line
972 option.
973 * pt.c (max_tinst_depth): Variable moved.
974 * lang-options.h: Declare "-ftemplate-depth-NN" command line option
975 as legal.
976
977Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com>
978
979 * decl.c (xref_basetypes): Allow a base class that depends on
eb66be0e 980 template parms to be incomplete.
e9f32eb5
MS
981
982 * decl2.c (build_expr_from_tree): Support typeid(type).
983 * rtti.c (get_typeid): Support templates.
984 (expand_si_desc, expand_class_desc): Fix string length.
985 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
986
312e7d50
JM
987Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
988
989 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
990
991 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
992
993Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
994
995 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
eb66be0e
MS
996 smashes together template and non-template decls of the same
997 signature.
312e7d50 998
824b9a4c
MS
999Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
1000
824b9a4c
MS
1001 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
1002
1003Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1004
1005 * decl.c (duplicate_decls): Next route, pedwarn about different
1006 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
1007
1008Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1009
1010 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
1011 (struct lang_type): Delete has_default_implementation member.
1012 Increase dummy to 21.
1013 * decl.c (start_method): Delete usage.
1014
1015 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
1016 store_after_parms, start_decl_1, auto_function): Add decls.
1017 (get_arglist_len_in_bytes, declare_implicit_exception,
1018 have_exceptions_p, make_type_decl, typedecl_for_tag,
1019 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
1020 build_component_type_expr, cplus_exception_name,
1021 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
1022 * call.c (build_this): Make static.
1023 (is_complete): Likewise.
1024 (implicit_conversion): Likewise.
1025 (reference_binding): Likewise.
1026 (standard_conversion): Likewise.
1027 (strip_top_quals): Likewise.
1028 (non_reference): Likewise.
1029 (build_conv): Likewise.
1030 (user_harshness): Likewise.
1031 (rank_for_ideal): Likewise.
1032 * decl.c (start_decl_1): Delete forward decl.
1033 (push_decl_level): Make static.
1034 (resume_binding_level): Make static.
1035 (namespace_bindings_p): Make static.
1036 (declare_namespace_level): Make static.
1037 (lookup_name_real): Make static.
1038 (duplicate_decls): Make static. Take register off NEWDECL and
1039 OLDDECL parm decls.
1040 * decl2.c (get_sentry): Make static.
1041 (temp_name_p): Delete fn.
1042 * except.c (auto_function): Delete decl.
1043 * lex.c (handle_{cp,sysv}_pragma): Make static.
1044 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
1045 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
1046 * pt.c (tsubst_expr_values): Make static.
1047 * rtti.c (combine_strings): Delete decl.
1048
1049Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1050
1051 * pt.c (push_template_decl): Handle getting a typedef.
1052
1053 * call.c (build_new_function_call): Complain about void arg.
1054
1055Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1056
1057 * decl.c (duplicate_decls): Give pedwarn of different exceptions
1058 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
1059
1060Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
1061
1062 * except.c (expand_throw): Don't expand the cleanup tree here,
eb66be0e
MS
1063 since we are not going to write the rtl out. Fixes problem with
1064 -g -O on SPARC.
824b9a4c
MS
1065
1066Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
1067
1068 * Make-lang.in: Add $(exeext) as necessary.
1069
1070Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
1071
1072 * parse.y (handler_seq): Must have at least one catch clause.
1073
1074Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1075
1076 * call.c (add_builtin_candidate): Restore ?: hack.
1077
1078 * decl.c (grok_op_properties): More warnings.
1079
1080Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1081
1082 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
1083 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
1084
1085 * decl.c (duplicate_decls): Scale back to a warning, and only do
1086 'em if -pedantic.
1087
1088Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
1089
1090 * decl.c (duplicate_decls): pedwarn mismatched exception
eb66be0e 1091 specifications.
824b9a4c
MS
1092
1093Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
1094
1095 * call.c (build_new_method_call): Don't display the invisible
eb66be0e 1096 argument for controlling virtual bases.
824b9a4c
MS
1097
1098Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
1099
1100 * new: Add nothrow new and delete, bad_alloc and throw specifications
1101 for delete.
1102 * decl.c (init_decl_processing): Add throw specification for delete.
1103 * new.cc (nothrow): Define.
1104 * lex.c (real_yylex): Removing warning that throw and friends are
1105 keywords.
1106 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
1107 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
1108 * Make-lang.in: Add new{1,2}.{cc,o}.
1109
1110Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
1111
1112 * lex.c (cons_up_default_function): Fix return type of synth op=.
1113
1114 * init.c (emit_base_init): Add warnings for uninitialized members
eb66be0e 1115 and bases.
824b9a4c
MS
1116
1117 * decl.c (xref_basetypes): Add warning for non-polymorphic type
eb66be0e 1118 with destructor used as base type.
824b9a4c
MS
1119
1120 * decl.c (grok_op_properties): Add warning for op= returning void.
1121 * typeck.c (c_expand_return): Add warning for op= returning anything
1122 other than *this.
1123
1124 * class.c (finish_struct_1): Add warning for class with pointers
eb66be0e 1125 but not copy ctor or copy op=.
824b9a4c
MS
1126
1127 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
1128 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
1129 (instantiate_template): If -fexternal-templates, add this
eb66be0e 1130 instantiation to pending_templates.
824b9a4c
MS
1131
1132 * decl2.c (copy_assignment_arg_p): Disable old hack to support
eb66be0e 1133 Booch components.
824b9a4c
MS
1134
1135Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
1136
1137 * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
1138
de22184b
MS
1139Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
1140
1141 * call.c (standard_conversion): Handle getting references. Tack
eb66be0e 1142 on RVALUE_CONV here. Do it for non-class types, too.
de22184b
MS
1143 (reference_binding): Pass references to standard_conversion.
1144 (implicit_conversion): Likewise.
1145 (add_builtin_candidate): Disable one ?: kludge.
1146 (convert_like): Handle RVALUE_CONVs for non-class types.
1147 (joust): Disable the other ?: kludge.
1148
1149Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1150
1151 * decl.c (init_decl_processing): Add code to build up common
1152 function types beforehand, to avoid creation then removal of
1153 things already in the hash table.
1154
1155Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
1156
1157 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
eb66be0e 1158 the arguments.
de22184b
MS
1159
1160 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
eb66be0e 1161 current_template_parms.
de22184b
MS
1162
1163Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
1164
1165 * search.c (lookup_field): Don't return a function, check want_type.
1166
1167Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1168
1169 * init.c (build_new): Make sure PLACEMENT has a type.
1170
1171Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1172
1173 * init.c (build_new): Support new (nothrow).
1174
1175Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1176
1177 * pt.c (instantiate_decl): Also do push_to_top_level before setting
1178 up DECL_INITIAL.
1179
1180 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
1181 * pt.c (tsubst): Defer instantiation of default args.
1182 * call.c (build_over_call): Until here.
1183
1184Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1185
1186 * search.c (lookup_field): Make sure we have an
1187 IDENTIFIER_CLASS_VALUE before we try to return it.
1188
1189Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1190
1191 * call.c (build_method_call): Delete unused var PARM.
1192 (build_overload_call_real): Likewise.
1193 (build_object_call): Delete unused var P.
1194 (build_new_op): Likewise.
1195 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
1196 var definitions, which are never used.
1197 (shadow_tag): Delete unused var FN.
1198 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
1199 * init.c (build_new): Delete unused var ALLOC_TEMP.
1200 * method.c (hack_identifier): Delete unused var CONTEXT.
1201 (do_build_copy_constructor): Delete unused var NAME.
1202 (synthesize_method): Delete unused var BASE.
1203 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
1204 * rtti.c (build_headof): Delete unused var VPTR.
1205 (get_typeid): Delete unused var T.
1206 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
1207 and ORIG_OP2.
1208 (build_ptrmemfunc): Delete unused vars U and NINDEX.
1209 * typeck2.c (build_functional_cast): Delete unused var BINFO.
1210
1211Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
1212
1213 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
1214 things in a type being defined.
1215 * decl.c (finish_enum): Reverse the values so that they are in
1216 the correct order.
1217
1218 * pt.c (instantiate_class_template): Don't initialize
eb66be0e 1219 BINFO_BASETYPES until the vector is filled out.
de22184b
MS
1220 (unify): Don't abort on conflicting bindings, just fail.
1221 (instantiate_decl): Do push_tinst_level before any tsubsting.
1222
1223 * method.c (build_overload_value): Handle getting a
eb66be0e 1224 TEMPLATE_CONST_PARM for a pointer.
de22184b
MS
1225
1226Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
1227
1228 * init.c (expand_member_init): Don't give 'not a base' error for
eb66be0e 1229 templates.
de22184b
MS
1230
1231 * pt.c (instantiate_decl): Call import_export_decl later.
1232
1233 * pt.c (instantiate_class_template): Return a value.
1234
1235 * parse.y (extension): New rule for __extension__.
1236 (extdef, unary_expr, decl, component_decl): Use it.
1237
1238Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
1239
1240 * class.c (base_binfo): Remove unused base_has_virtual member.
1241 (finish_base_struct): Likewise.
1242 (finish_struct_1): Likewise.
1243
1244Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com>
1245
1246 * search.c (expand_upcast_fixups): Fix bogus code generation
1247 problem where the generated code uses the wrong index into the
1248 runtime built vtable on the stack. Old code could clobber random
1249 stack values.
1250
1251Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com>
1252
1253 * init.c (perform_member_init): Make sure the partial EH cleanups
eb66be0e 1254 live on the function_obstack.
de22184b 1255
f7da6097
MS
1256Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com>
1257
1258 * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
1259 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
1260
1261Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com)
1262
1263 * decl.c (grokvardecl): Avoid ANSI style initialization.
1264
1265Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com>
1266
1267 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
1268
1269Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com>
1270
1271 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
1272
1bf2b2d2
BK
1273Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1274
1275 * g++spec.c (lang_specific_driver): Put missing hyphen in front of
1276 arguments we compare against. Start the count of I at 1, not 0,
1277 since argv[0] is still the command.
1278
f7da6097
MS
1279Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com>
1280
1281 * lang-specs.h: Accept .cp as an C++ extension.
1282
d2e5ee5c
MS
1283Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1284
1285 * cp-tree.h (ptr_reasonably_similar): Add decl.
1286
1287Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1288
1289 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
1290 pointer. New local SPECBITS with the parm's value.
1291 (grokdeclarator): Pass &specbits down.
1292
1293 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
1294 before we try to do C_SET_EXP_ORIGINAL_CODE on it.
1295
1296 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
1297 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
1298
1299 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
1300 not an error_mark_node.
1301
1302Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com>
1303
1304 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
1305 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
1306
1307Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1308
1309 * decl.c (grokdeclarator): When giving an anonymous struct a name,
1310 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
1311 not affected).
1312
1313 * typeck2.c (build_m_component_ref): If component is a pointer
1314 to data member, resolve the OFFSET_REF now.
1315
1316 * call.c (convert_like): Don't go into infinite recursion.
1317
1318 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
1319
1320 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
1321 * tree.c (layout_basetypes): And on the vbase ptr.
1322
1323Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1324
1325 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
1326 CHAR_TYPE_SIZE so bool is always the same size as another type.
1327
1328 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
1329
1330Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com>
1331
1332 * decl2.c (grok_x_components): Remove synthesized methods from
eb66be0e
MS
1333 TYPE_METHODS of an anonymous union, complain about member
1334 functions.
d2e5ee5c
MS
1335 * decl.c (shadow_tag): Wipe out memory of synthesized methods in
1336 anonymous unions.
1337 (finish_function): Just clear the DECL_RTL of our arguments.
1338
1339Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1340
1341 * decl2.c (finish_file): Emit DWARF debugging info for static data
1342 members.
1343
1344 * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
1345
1346Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com>
1347
1348 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
eb66be0e 1349 IDENTIFIER_NODE.
d2e5ee5c
MS
1350
1351Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1352
1353 * Make-lang.in (g++-cross$(exeext)): Fix typo.
1354
1355Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1356
1357 Make the g++ driver now be a standalone program, rather than one
1358 that tries to run the gcc driver after munging up the options.
1359 * Make-lang.in (g++.c, g++spec.o): New rules.
1360 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
1361 added.
1362 (g++$(exeext)): New rule, based on xgcc rule.
1363 (g++-cross$(exeext)): Now just copies g++$(exeext) over.
1364 * g++spec.c: New file.
1365 * g++.c: Removed file.
1366
1367Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com>
1368
1369 * cvt.c (build_up_reference): Arrange for any temporary values
1370 that have been keep in registers until now to be put into memory.
1371
faf5394a 1372Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9a3b49ac 1373
faf5394a
MS
1374 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
1375 that make -j3 bootstrap works better.
9a3b49ac 1376
faf5394a
MS
1377Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com>
1378
1379 * decl.c (pushtag): Do pushdecl for anon tags.
1380
1381Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com>
1382
1383 * typeck.c (c_expand_return): Fix logic.
1384 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
1385
faf5394a
MS
1386Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com>
1387
1388 * g++.c (main): Make sure arglist has a final NULL entry. Add
eb66be0e
MS
1389 PEXECUTE_LAST to the flags passed to pexecute, as otherwise
1390 stdin/stdout of the invoked program are redirected to
1391 nowheresville.
faf5394a
MS
1392
1393Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1394
1395 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
1396
1397Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com>
1398
1399 * init.c (resolve_offset_ref): Handle obj.vfn better.
1400 * typeck.c (build_component_ref): Set TREE_TYPE on result from
1401 build_vfn_ref.
1402
1403Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com>
1404
1405 * typeck.c (convert_for_assignment): Also handle anachronistic
1406 implicit conversions from (::*)() to cv void*.
1407 * cvt.c (cp_convert_to_pointer): Likewise.
1408
1409Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com>
1410
1411 * lex.c (handle_cp_pragma): Fix bogus warning.
1412
1413Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com>
1414
1415 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
eb66be0e 1416 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
faf5394a
MS
1417
1418Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1419
1420 * class.c (finish_struct_1): Support DWARF2_DEBUG.
1421 * search.c (dfs_debug_mark): Likewise.
1422 * decl2.c (finish_vtable_vardecl): Likewise.
1423 * decl.c (pushtag, finish_enum): Likewise.
1424 * lex.c (check_newline): Use debug_* instead of calling *out
eb66be0e 1425 functions directly.
faf5394a
MS
1426
1427Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1428
1429 * Make-lang.in (cplib2.ready): Add else clause to avoid problems
1430 on some picky hosts.
1431
1432Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1433
1434 * class.c (finish_struct_1): A class has a non-trivial copy
eb66be0e 1435 constructor if it has virtual functions.
faf5394a
MS
1436
1437 * cvt.c (cp_convert): Always call a constructor.
1438
1439 * call.c (reference_binding): Still tack on a REF_BIND
eb66be0e 1440 for bad conversions.
faf5394a
MS
1441 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
1442
1443 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
1444 (c_expand_return): Likewise.
1445 * typeck2.c (digest_init): Likewise for { }.
1446 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
1447 * cvt.c (cp_convert): Handle failure better.
1448
1449Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1450
1451 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
1452 of GCC be path-relative.
1453
1454Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1455
1456 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
1457 it does need choose-temp.o and pexecute.o.
1458
1459Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1460
1461 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
1462 that we still use it.
1463 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
1464
1465Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com>
1466
1467 * init.c (expand_default_init): Avoid calling constructors to
1468 initialize reference temps.
1469
1470 * cvt.c (convert_to_reference): Fix.
1471
1472Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1473
1474 * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
1475 (convert_to_reference): Likewise.
1476 * typeck.c (convert_for_initialization): Likewise.
1477 * init.c (expand_default_init): Likewise.
1478 (expand_aggr_init_1): Likewise.
1479 * cp-tree.h (CONV_NONCONVERTING): Lose.
1480 * typeck.c (build_c_cast): Lose allow_nonconverting parm.
1481 * *.c: Adjust.
1482 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
1483
1484Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com>
1485
1486 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
1487
1488Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1489
1490 * init.c (expand_aggr_init_1): Don't crash on non-constructor
1491 TARGET_EXPR.
1492
1493Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1494
1495 * g++.c: Include gansidecl.h.
1496 (VPROTO, PVPROTO, VA_START): Delete.
1497 (choose_temp_base_try, choose_temp_base, perror_exec,
1498 run_dos) [__MSDOS__]: Delete fns.
1499 (pfatal_with_name): Delete fn.
1500 (temp_filename): Declare like in gcc.c.
1501 (pexecute, pwait, choose_temp_base): Declare from gcc.c.
1502 (error_count, signal_count): Define.
1503 (error): Delete both definitions.
1504 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
1505 (pfatal_pexecute): Add fn from gcc.c.
1506 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the
1507 code to use the pexecute stuff also used by gcc.c.
1508 (MIN_FATAL_STATUS): Define.
1509 * Make-lang.in (g++): Add dependency on and linking with
1510 choose-temp.o and pexecute.o.
1511
1512 * cp-tree.h: Include gansidecl.h.
1513 (STDIO_PROTO): Delete #undef/#define.
1514 * cvt.c (NULL): Delete #undef/#define.
1515 * expr.c (NULL): Likewise.
1516 * init.c (NULL): Likewise.
1517 * rtti.c (NULL): Likewise.
1518 * xref.c (NULL): Likewise.
1519
1520 * cp-tree.h (build_user_type_conversion): Add prototype.
1521 * call.c (build_user_type_conversion): Delete prototype. Correct
1522 decl of FLAGS arg to be an int.
1523 * cvt.c (build_user_type_conversion): Likewise.
1524
1525Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com>
1526
1527 * cp-tree.def: Add TRY_BLOCK and HANDLER.
1528 * except.c (expand_start_catch_block): Support templates.
1529 * parse.y (try_block, handler_seq): Likewise.
1530 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
9a3b49ac
MS
1531
1532Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com>
1533
1534 * pt.c (current_template_args): New fn.
1535 (push_template_decl): Use it.
1536 * decl.c (grokdeclarator): Use it.
1537
1538 * decl2.c (build_expr_from_tree): Dereference ref vars.
1539
1540 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
1541 the decl-specifier-seq.
1542
1543 * decl.c (grok_op_properties): Don't force the type of a conversion
1544 op to be complete. Don't warn about converting to the same type
1545 for template instantiations.
1546
1547 * decl2.c (finish_file): Don't call instantiate_decl on synthesized
1548 methods.
1549
1550Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com>
1551
1552 * typeck.c (get_delta_difference): Remove previous bogusness.
1553 Don't give errors if force is set.
1554
1555Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1556
1557 * decl2.c (finish_file): Don't emit debug info.
d2e5ee5c 1558 * decl.c (pushdecl): Lose obsolete code.
9a3b49ac 1559 (grokdeclarator): Still do the long long thing after complaining.
d2e5ee5c
MS
1560 * search.c (note_debug_info_needed): Don't do anything if we're in a
1561 template.
9a3b49ac 1562 * method.c (synthesize_method): For non-local classes,
eb66be0e 1563 push_to_top_level first.
9a3b49ac
MS
1564
1565Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com>
1566
1567 * typeck.c (get_delta_difference): Add no_error parameter.
1568 (build_ptrmemfunc): Call get_delta_difference with no_error set;
eb66be0e
MS
1569 we don't want error messages when converting unrelated
1570 pointer-to-member functions.
9a3b49ac
MS
1571
1572Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com>
1573
1574 * error.c (dump_expr): Improve the wording on error messages that
1575 involve pointer to member functions.
1576
1577Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com>
1578
1579 * cvt.c (cp_convert_to_pointer): Move code for conversions from
eb66be0e 1580 (::*)() to void* or (*)() up a bit, so that we can convert from
9a3b49ac
MS
1581 METHOD_TYPEs as well.
1582
1583Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1584
1585 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
1586 There are no 'member' types.
1587 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
1588 (build_x_typeid): Handle errors.
1589
1590Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com>
1591
1592 * typeck.c (convert_for_assignment): Handle anachronistic implicit
1593 conversions from (::*)() to void* or (*)().
1594 * cvt.c (cp_convert_to_pointer): Likewise.
1595 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
1596 conversions from here.
1597 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
1598 * lang-options.h: Likewise.
1599 * decl2.c (warn_pmf2ptr): Define.
1600 * cp-tree.h: Declare it.
1601 * typeck2.c (digest_init): Allow pmfs down into
1602 convert_for_initialization.
1603
1604Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com>
1605
1606 * typeck.c (c_expand_return): Fix for returning overloaded fn.
1607
1608Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1609
1610 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
1611 * decl.c (grok_reference_init): Pass DIRECT_BIND.
1612 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use
eb66be0e 1613 DIRECT_BIND.
9a3b49ac
MS
1614 * call.c (convert_like): Don't pass INDIRECT_BIND.
1615 * typeck.c (convert_arguments): Likewise.
1616 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
1617
1618Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com>
1619
1620 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
eb66be0e 1621 similar code in build_up_ref.
9a3b49ac
MS
1622 * cvt.c (build_up_reference): Drastically simplify.
1623
691c003d
MS
1624Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com)
1625
1626 * typeck.c (signed_or_unsigned_type): If the given type already
1627 as the correct signedness, then just return it.
1628
eb66be0e
MS
1629 * typeck.c ({un,}signed_type): If can't do anything, call
1630 signed_or_unsigned_type.
691c003d
MS
1631
1632Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com>
1633
1634 * decl2.c (copy_assignment_arg_p): Don't buy the farm if
1635 current_class_type is NULL.
1636
1637Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com>
1638
1639 * class.c (finish_struct_1): Avoid empty structs by adding a field
eb66be0e 1640 so layout_type gets the mode right.
691c003d
MS
1641
1642 * typeck.c (c_expand_return): Drastically simplify.
1643
1644Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com>
1645
1646 * typeck.c (decay_conversion): Handle overloaded methods.
1647
1648Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com>
1649
1650 * call.c (build_over_call): A TARGET_EXPR has side-effects.
1651
f49422da
MS
1652Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com>
1653
1654 * cvt.c (convert_to_pointer_force): Add code to support pointer to
eb66be0e 1655 member function to pointer to function conversions.
f49422da 1656 * init.c (resolve_offset_ref): Add code to allow faked up objects,
eb66be0e
MS
1657 ignoring them if they are not used, and giving an error, if they
1658 are needed.
f49422da 1659 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
eb66be0e
MS
1660 code, and so that we can give an error, if we needed an object,
1661 and one was not provided.
f49422da 1662 (build_c_cast): Don't call default_conversion when we want to
eb66be0e 1663 convert to pointer to function from a METHOD_TYPE.
f49422da
MS
1664
1665Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com>
1666
1667 * Make-lang.in (cplib2.ready): Fix logic.
1668
1669 * decl.c (shadow_tag): Only complain about non-artificial function
eb66be0e 1670 members.
f49422da
MS
1671
1672 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
1673
1674Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com>
1675
1676 * expr.c (cplus_expand_expr): Pre-tweak call_target like
eb66be0e 1677 expand_inline_function would.
f49422da
MS
1678
1679 * pt.c (mark_decl_instantiated): If extern_p, call
eb66be0e 1680 mark_inline_for_output.
f49422da 1681
3d4683cb
MS
1682Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com>
1683
1684 * typeck.c (unary_complex_lvalue): Add code to handle intermediate
1685 pmd conversions.
1686
1687 * typeck.c (get_delta_difference): Fix wording, as we can be used
1688 for pointer to data members.
1689
1690Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com>
1691
1692 * pt.c (tsubst): If the function decl isn't a member of this
eb66be0e
MS
1693 template, return a copy of the decl (including copying the
1694 lang-specific part) so we don't hose ourselves later.
3d4683cb
MS
1695
1696Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1697
1698 * class.c (finish_struct): Remove DWARF-specific tag handling.
1699 * decl.c (pushtag): Likewise.
1700 (finish_function): Always clear DECL_ARGUMENTS on function decls with
1701 no saved RTX.
1702 * decl2.c (finish_file): Emit DWARF debugging info for static data
1703 members.
1704
1705Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com>
1706
1707 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
1708 isn't the same as the new one before we whack it.
1709
1710Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com>
1711
1712 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
eb66be0e
MS
1713 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
1714 warn_traditional and warn_strict_prototypes; remove ancient
1715 'overload' code; remove references to flag_traditional.
3d4683cb 1716
5156628f
MS
1717Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com>
1718
1719 * input.c (sub_getch): Handle 8-bit characters in string literals.
1720
1721Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com>
1722
1723 * tree.c (mapcar): Handle CONSTRUCTORs.
1724 (copy_to_permanent): Handle expression_obstack properly.
1725
1726 * Make-lang.in (cplib2.txt): Also depend on the headers.
1727
1728 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
eb66be0e 1729 INT_TYPE_SIZE.
5156628f
MS
1730 (expand_class_desc): Use USItype for offset field.
1731 * tinfo.h (struct __class_type_info): Likewise.
1732
1733 * method.c (build_overload_int): TYPE_PRECISION should be applied
eb66be0e 1734 to types.
5156628f
MS
1735
1736Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com>
1737
1738 * call.c (build_new_op): A COND_EXPR involving void must be a
1739 builtin.
1740
1741Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
1742
1743 * typeck.c (build_x_component_ref): New fn.
1744 (build_object_ref): Use it.
1745 * parse.y (primary): Use it.
1746 * decl2.c (build_expr_from_tree): Use it.
1747 * cp-tree.h: Declare it.
1748
1749 * decl.c (start_decl): variable-sized arrays cannot be initialized.
1750 * error.c (dump_type_suffix): Handle variable arrays.
1751
1752Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1753
1754 * Make-lang.in (exception.o): Put back compiling it with -fPIC.
1755
1756Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1757
1758 * decl.c (lookup_name_real): Don't try to look up anything in a
eb66be0e 1759 TYPENAME_TYPE.
5156628f
MS
1760
1761 * tinfo2.cc (__throw_type_match_rtti): Oops.
1762
1763Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1764
1765 * Make-lang.in (exception.o): Use -fno-PIC for now.
1766
1767Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com>
1768
1769 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
eb66be0e 1770 calling them.
5156628f
MS
1771 (get_tinfo_fn_dynamic): Extracted from build_typeid.
1772 * tinfo2.cc (__dynamic_cast): Adjust.
1773
1774 * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
1775 (build_x_typeid): Likewise.
1776
1777 * parse.y: Call build_x_typeid instead of build_typeid.
1778 * cp-tree.def: Add TYPEID_EXPR.
1779 * pt.c (tsubst_copy): Handle typeid.
1780 * decl2.c (build_expr_from_tree): Likewise.
1781 * rtti.c (build_x_typeid): Throw bad_typeid from here.
1782 (build_typeid): Not here.
1783 * cp-tree.h: Declare build_x_typeid.
1784
1785Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com>
1786
1787 * call.c (convert_like): Pull out constant values.
1788
1789 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
1790
1791Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1792
1793 * decl.c (init_decl_processing): Create short int types before
1794 creating size_t in case a machine description needs to use
1795 unsigned short for size_t.
1796
1797Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1798
1799 * Make-lang.in (exception.o): Turn off pic.
1800
1801 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
1802 type, multi-level ptr conversions.
1803
1804 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
1805 (throw_bad_cast): Use it.
1806 (throw_bad_typeid): New fn.
1807 (build_typeid): Throw bad_typeid as needed.
1808 Use build_call.
1809 (synthesize_tinfo_fn): Handle functions and arrays before checking
1810 for cv-quals.
1811
1812 * Remove .h from standard C++ headers, add new.h, move into inc
eb66be0e 1813 subdirectory.
5156628f
MS
1814
1815 * exception*: Remove pointer from object, constructors. Add
eb66be0e
MS
1816 default exception::what that uses type_info::name. Add
1817 __throw_bad_typeid.
5156628f
MS
1818
1819 * init.c (build_new): Don't add a cookie to new (void *) T[2].
1820
1821Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com>
1822
1823 * Make-lang.in: Building C++ code depends on cc1plus.
1824
1825Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1826
1827 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
1828 a HOST_WIDE_INT, not a tree.
1829
1830Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
1831
1832 * exception.cc: Don't include <stdlib.h>.
1833
1834 * Make-lang.in (c++.clean): Remove cplib2.*.
1835
1836Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com>
1837
1838 * parse.y (component_decl_1, component_costructor_declarator case):
1839 Pass attributes/prefix_attributes in tree list.
1840
1841Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com>
1842
1843 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
1844
1845Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com>
1846
1847 * lex.c (do_identifier): Don't do deferred lookup in a template
eb66be0e 1848 header.
5156628f
MS
1849
1850 * typeck2.c (store_init_value): Oops.
1851
1852 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
1853 New files for C++ lang-support library.
1854 * Make-lang.in (CXX_EXTRA_HEADERS): Define.
1855 (CXX_LIB2FUNCS): Define.
1856 And rules for building the C++ lang-support code.
1857 * config-lang.in (headers): Define.
1858 (lib2funcs): Define.
1859
1860Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1861
1862 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
1863 digest_init.
1864 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
1865 * typeck2.c (store_init_value): Check for initializing pmf with { }
1866 here.
1867 (process_init_constructor): Not here.
1868
1869Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1870
1871 * pt.c (begin_template_parm_list): Increment
eb66be0e 1872 processing_template_decl here.
5156628f
MS
1873 (end_template_parm_list): Not here.
1874 (process_template_parm): No need to add 1 to it now.
1875 * *.c: Use processing_template_decl instead of current_template_parms
1876 to check for being in a template.
1877
1878 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR.
1879 (tsubst_copy): Handle CONSTRUCTOR.
1880 (instantiate_decl): Set up context properly for variables.
1881 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
1882 * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
1883
1884Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1885
1886 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
1887
7fcdf4c2
MS
1888Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1889
1890 * method.c (make_thunk): Call comdat_linkage before setting the
eb66be0e 1891 TREE_CODE.
7fcdf4c2
MS
1892
1893 * decl2.c (comdat_linkage): Use make_decl_one_only.
1894 (import_export_decl): Likewise.
1895 * decl.c (init_decl_processing): Check supports_one_only instead of
1896 SUPPORTS_WEAK.
1897
1898Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com>
1899
1900 * decl2.c (grokfield): Tighten checking for access decls.
1901
1902 * decl.c (make_typename_type): Resolve references to
eb66be0e 1903 current_class_type. Set CLASSTYPE_GOT_SEMICOLON.
7fcdf4c2 1904 (lookup_name_real): Types that depend on a template parameter get
eb66be0e 1905 an implicit 'typename' unless they're in the current scope.
7fcdf4c2 1906 (start_decl_1): We don't care about incomplete types that depend
eb66be0e 1907 on a template parm.
7fcdf4c2 1908 (grokdeclarator): Resolve 'typename's in the type specifier that
eb66be0e 1909 refer to members of the current scope.
7fcdf4c2
MS
1910
1911 * call.c (build_over_call): Remove 'inline called before
eb66be0e 1912 definition' diagnostic.
7fcdf4c2
MS
1913 (build_method_call): Likewise.
1914 * decl.c (duplicate_decls): Downgrade 'used before declared
eb66be0e 1915 inline' to a warning, only with -Winline.
7fcdf4c2
MS
1916
1917Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com>
1918
1919 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
1920
c11b6f21
MS
1921Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu>
1922
1923 * call.c (build_method_call): When calling a signature
1924 default implementation, as in other cases, let instance_ptr simply
1925 be instance.
1926
1927Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com>
1928
1929 * parse.y (simple_stmt): Cleanup and use do_poplevel ().
1930
1931Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com>
1932
1933 * except.c (expand_start_catch_block): Add a pushlevel so that -g
eb66be0e 1934 works on hppa and SPARC.
c11b6f21
MS
1935
1936Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1937
1938 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
1939
1940Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu>
1941
1942 * call.c (build_over_call): Check first whether DECL_CONTEXT exists
1943 before testing whether it's a signature.
1944
1945Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu>
1946
1947 * call.c (build_new_method_call): Don't complain about signature
1948 pointers and references not being an aggr type.
1949 (build_this): If a signature pointer or reference was passed in,
1950 just return it.
1951 (build_new_method_call): If instance is a signature pointer, set
1952 basetype to the signature type of instance.
1953 * sig.c (build_signature_method_call): Deleted basetype and
1954 instance parameters, they can be found as the DECL_CONTEXT of
1955 function and as the first argument passed in.
1956 * cp-tree.h: Changed declaration of build_signature_method_call.
1957 * call.c (build_method_call): Deleted first two arguments in call
1958 of build_signature_method_call.
1959 (build_over_call): Added call to build_signature_method_call.
1960
1961Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1962
1963 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
eb66be0e 1964 target_expr.
c11b6f21
MS
1965
1966Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1967
1968 * cvt.c (convert_to_reference): Use %#T, not %#D, for error.
1969
9ffa2541
BM
1970Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com>
1971
1972 * except.c (expand_start_try_stmts): Move to except.c in the backend.
1973 (expand_end_try_stmts): Remove.
1974
1975 * init.c (perform_member_init): Use add_partial_entry () instead
1976 of directly manipulating lists.
1977 (emit_base_init): Ditto.
1978
c11b6f21
MS
1979Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com>
1980
1981 * except.c (expand_exception_blocks): Always make sure USE and
eb66be0e
MS
1982 CLOBBER insns that came at the end still do, the backend relies
1983 upon this.
c11b6f21
MS
1984
1985Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com>
1986
1987 * call.c (build_over_call): We can only use a TARGET_EXPR of the
eb66be0e 1988 right type.
c11b6f21
MS
1989
1990Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com>
1991
1992 * cvt.c (convert_to_reference): Revert last change, don't complain
eb66be0e 1993 about temp without target decl.
c11b6f21
MS
1994
1995Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com>
1996
1997 * decl.c (grokdeclarator): Don't core dump when void() is given.
1998
1999Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com>
2000
2001 * decl.c (copy_args_p): Don't crash.
2002
2003Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com>
2004
2005 * pt.c (tsubst): And support template args inside the exception
eb66be0e 2006 specification.
c11b6f21
MS
2007
2008 * pt.c (tsubst): Add support for exception specifications in
eb66be0e 2009 template functions.
c11b6f21
MS
2010
2011Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com>
2012
2013 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
eb66be0e 2014 fields now.
c11b6f21
MS
2015 * cp-tree.h (start_decl): Eliminate the throw spec parameter.
2016 (start_function): Likewise.
2017 (start_method): Likewise.
2018 (grokfield): Likewise.
2019 (make_call_declarator): Add throw spec parameter.
2020 (set_quals_and_spec): Add routine.
2021 * lex.c (set_quals_and_spec): Likewise.
2022 * decl.h (grokdeclarator): Eliminate the throw spec parameter.
2023 * decl.c (shadow_tag): Eliminate the throw spec parameter to
eb66be0e 2024 grokdeclarator.
c11b6f21
MS
2025 (groktypename): Likewise.
2026 (start_decl): Eliminate the throw spec parameter. Eliminate the
eb66be0e
MS
2027 throw spec parameter to grokdeclarator. Eliminate the throw spec
2028 field in DECL_STMT.
c11b6f21
MS
2029 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
2030 (grokfndecl): Remove useless set of raises.
2031 (grokdeclarator): Eliminate the throw spec parameter. Eliminate
eb66be0e
MS
2032 the throw spec parameter to start_decl. Pull the throw spec out
2033 of the call declarator.
c11b6f21
MS
2034 (grokparms): Eliminate the throw spec parameter to grokdeclarator.
2035 (start_function): Eliminate the throw spec parameter. Eliminate
eb66be0e 2036 the throw spec parameter to grokdeclarator.
c11b6f21
MS
2037 (start_method): Likewise.
2038 * decl2.c (grokfield): Likewise.
2039 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
2040 (grokoptypename): Likewise.
2041 (finish_file): Eliminate the throw spec parameter to
eb66be0e 2042 start_function. Add throw spec to make_call_declarator.
c11b6f21 2043 * except.c (init_exception_processing): Add throw spec to
eb66be0e
MS
2044 make_call_declarator. Eliminate the throw spec parameter to
2045 start_decl.
c11b6f21 2046 (expand_start_catch_block): Eliminate the throw spec parameter to
eb66be0e 2047 grokdeclarator.
c11b6f21
MS
2048 (expand_builtin_throw): Add throw spec to make_call_declarator.
2049 Eliminate the throw spec parameter to start_function.
2050 (start_anon_func): Likewise.
2051 * lex.c (make_call_declarator): Add throw spec parameter.
2052 (set_quals_and_spec): New routine.
2053 (cons_up_default_function): Add throw spec to make_call_declarator.
2054 Eliminate the throw spec parameter to grokfield.
2055 * method.c (synthesize_method): Eliminate the throw spec parameter
eb66be0e 2056 to start_function.
c11b6f21 2057 * pt.c (process_template_parm): Eliminate the throw spec parameter
eb66be0e 2058 to grokdeclarator.
c11b6f21
MS
2059 (tsubst): Add throw spec to make_call_declarator.
2060 (tsubst_expr): Eliminate the throw spec parameter to start_decl.
2061 (do_function_instantiation): Eliminate the throw spec parameter to
eb66be0e
MS
2062 grokdeclarator. Eliminate the throw spec parameter to
2063 start_function.
c11b6f21 2064 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
eb66be0e 2065 to start_function.
c11b6f21
MS
2066 * parse.y (datadef): Remove non-winning optimization.
2067 (decl): Likewise.
2068 (fndef): Remove ambiguous error productions uncovered by grammer
eb66be0e 2069 fixing.
c11b6f21
MS
2070 (constructor_declarator): Add exception_specification_opt here.
2071 (component_constructor_declarator): Likewise.
2072 (direct_after_type_declarator): Likewise.
2073 (complex_direct_notype_declarator): Likewise.
2074 (direct_abstract_declarator): Likewise.
2075 (fn.def1): Remove exception_specification_opt.
2076 (fn.def2): Likewise.
2077 (condition): Likewise.
2078 (initdcl0): Likewise.
2079 (initdcl): Likewise.
2080 (notype_initdcl0): Likewise.
2081 (nomods_initdcl0): Likewise.
2082 (component_decl_1): Likewise.
2083 (component_declarator): Likewise.
2084 (after_type_component_declarator0): Likewise.
2085 (after_type_component_declarator): Likewise.
2086 (notype_component_declarator): Likewise.
2087
2088Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2089
2090 * call.c (build_over_call): Also use an INIT_EXPR when
eb66be0e 2091 initializing anything from an rvalue.
c11b6f21
MS
2092
2093 * call.c (build_over_call): Call stabilize_reference when building
eb66be0e 2094 an INIT_EXPR instead of calling the copy ctor.
c11b6f21
MS
2095
2096 * call.c (joust): Extend the previous change to all comparisons.
2097
2098 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
2099 NO_LINKAGE_HEURISTICS.
2100
2101 * decl2.c (finish_file): Emit any statics that weren't already.
2102
2103 * typeck.c (build_static_cast): Implement.
2104 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
2105 * decl.c (grokparms): Use can_convert_arg instead of
eb66be0e 2106 implicit_conversion directly.
c11b6f21
MS
2107 (copy_args_p): New fn.
2108 * cvt.c (convert_to_reference): Don't complain about temp with
eb66be0e 2109 static_cast.
c11b6f21
MS
2110 (build_up_reference): Handle TARGET_EXPRs.
2111 * call.c (build_over_call): Elide unnecessary temps.
2112 (can_convert*): Use new overloading code.
2113
2114Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com>
2115
2116 * call.c: Move TYPE_PTR*_MACROS ...
2117 * cp-tree.h: To here.
2118 * typeck.c (build_reinterpret_cast): Implement.
2119
2120 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
eb66be0e 2121 ptr_complete_ob.
c11b6f21
MS
2122 (joust): If we're comparing a function to a builtin and the worst
2123 conversion for the builtin is worse than the worst conversion for the
2124 function, take the function.
2125
2126 * typeck.c (build_const_cast): Implement.
2127 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
2128 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
2129
2130Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com>
2131
2132 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype
eb66be0e
MS
2133 too early. Make sure we explode if exprtype turns out to be a
2134 NULL_TREE when it shouldn't be.
c11b6f21
MS
2135
2136Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com>
2137
2138 * cp-tree.h: New routine make_call_declarator.
2139 * lex.c (make_call_declarator): Define it.
2140 * except.c (init_exception_processing): Use it.
2141 (expand_builtin_throw): Likewise.
2142 (start_anon_func): Likewise.
2143 * decl2.c (finish_file): Likewise.
2144 * lex.c (cons_up_default_function): Likewise.
2145 * parse.y: Likewise.
2146 * pt.c (tsubst): Likewise.
2147
2148Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com>
2149
2150 * decl2.c (groktypefield): Remove unused code.
2151
2152Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com>
2153
2154 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
2155 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier.
2156 Change type_quals into cv_qualifiers. Change nonempty_type_quals into
2157 nonempty_cv_qualifiers.
2158 * hash.h: Rebuild.
2159
2160 * lex.c (make_pointer_declarator): Change type_quals into
eb66be0e 2161 cv_qualifiers.
c11b6f21
MS
2162 (make_reference_declarator): Likewise.
2163
d11ad92e
MS
2164Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2165
2166 * decl.c (start_function): Only check interface_* for templates
eb66be0e 2167 with flag_alt_external_templates.
d11ad92e
MS
2168
2169 * call.c (build_new_op): Check for comparison of different enum types.
2170 (build_over_call): Fix arg # output.
2171
2172 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
2173
2174Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com>
2175
2176 * call.c (build_new_op): Check for erroneous args.
2177
2178 * call.c (build_new_method_call): Add missing args to cp_error.
2179
2180 * tree.c (error_type): Dont print reference-to-array.
2181
2182 * typeck.c (convert_for_assignment): Don't say contravariance for
eb66be0e 2183 removing const.
d11ad92e
MS
2184
2185Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com>
2186
2187 * call.c (build_over_call): Diagnose bad convs for `this'.
2188
2189 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
2190 on _ctor_arg.
2191
2192 * call.c (convert_like): Handle bad convs.
2193 (build_over_call): Handle bad convs better.
2194
2195 * decl2.c: -fansi-overloading is now the default.
2196
2197 * call.c (build_new_method_call): Check for erroneous args.
2198
2199 * pt.c (instantiate_class_template): Propagate
eb66be0e 2200 TYPE_USES_MULTIPLE_INHERITANCE.
d11ad92e
MS
2201
2202Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com>
2203
2204 * call.c (enforce_access): Add static to routine.
2205
2206Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com>
2207
2208 * call.c (build_user_type_conversion_1): Fix bad handling.
2209 (compare_ics): Likewise.
2210
2211Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2212
2213 * call.c (standard_conversion): Oops.
2214
2215Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com>
2216
2217 * g++.c: Update test for win32 (&& ! cygwin32).
2218
2219Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2220
2221 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
2222 (ptr_reasonably_similar): New fn.
2223 * call.c (BAD_RANK): New rank.
2224 (ICS_BAD_FLAG): New macro.
2225 (standard_conversion): Handle almost-right pointer conversions.
2226 (reference_binding): Handle bad rvalue bindings.
2227 (add_*_candidate): Stuff.
2228 (build_over_call): Pass bad conversions to convert_for_initialization.
2229 (compare_ics): Handle bad convs.
2230 (joust): Likewise.
2231
2232Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com>
2233
2234 * init.c (expand_vec_init): Use ptrdiff_type_node instead of
2235 integer_type_node when computing pointer offsets.
2236
2237Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com>
2238
2239 * tree.c (lvalue_type): New fn.
2240 (error_type): New fn.
2241 * call.c (op_error): Use error_type.
2242 (add_conv_candidate): Use lvalue_type.
2243 (add_builtin_candidates): Likewise.
2244 * error.c (args_as_string): Use error_type.
2245
2246Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com>
2247
2248 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
2249 (tsubst): Not here.
2250
2251 * decl.c (init_decl_processing): With -ansi, __null's type is the
2252 signed integral type with the same number of bits as a pointer.
2253 Introduce a new variable null_node for it.
2254 * cp-tree.h: Adjust.
2255 * call.c (null_ptr_cst_p): Adjust.
2256
2257Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com>
2258
2259 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can
eb66be0e 2260 optimize.
d11ad92e
MS
2261
2262Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com>
2263
2264 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo
eb66be0e 2265 fns of classes without virtual functions.
d11ad92e
MS
2266
2267 * call.c (add_function_candidate): Handle `this' specially.
2268 (compare_ics): Likewise.
2269
2270Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com>
2271
2272 * typeck.c (build_conditional_expr): Fix handling of __null.
2273
2274 * decl2.c (comdat_linkage): New fn.
2275 (import_export_vtable): Use it.
2276 (import_export_decl): Use it.
2277 * method.c (make_thunk): Use it.
2278
73aad9b9
JM
2279Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
2280
2281 * pt.c (end_template_decl): If we don't actually have parms, return.
2282 * parse.y (template_header): Accept 'template <>'.
2283
2284 * errfn.c: Allow 5 args.
2285
2286Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
2287
2288 * tree.c (make_temp_vec): New fn.
2289 * pt.c (push_template_decl): Handle partial specs.
d11ad92e 2290 (instantiate_class_template): Likewise.
73aad9b9
JM
2291 (more_specialized): Use get_bindings.
2292 (more_specialized_class): New fn.
2293 (get_class_bindings): New fn.
2294 (most_specialized_class): New fn.
2295 (do_function_instantiation): List candidates for ambiguous case.
2296 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
2297 (shadow_tag): Call push_template_decl for partial specializations.
d11ad92e 2298 * parse.y: Likewise.
73aad9b9 2299 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
eb66be0e 2300 DECL_TEMPLATE_MEMBERS.
73aad9b9
JM
2301 * call.c (print_z_candidates): Reduce duplication.
2302
2303Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2304
2305 * decl2.c (lang_decode_option): Allow -fansi-overloading.
2306
2307Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
2308
2309 * pt.c (get_bindings): New fn.
d11ad92e 2310 (most_specialized): Likewise.
73aad9b9
JM
2311 (do_function_instantiation): Use them.
2312 (add_maybe_template): New fn.
2313 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
2314 * call.c (build_new_op): Handle guiding decls.
d11ad92e
MS
2315 (build_new_function_call): Likewise.
2316 * decl2.c (finish_file): Likewise.
73aad9b9
JM
2317
2318 * decl2.c (mark_used): Do synthesis here.
2319 * call.c (build_method_call): Not here.
2320 (build_over_call): Or here.
2321 * typeck.c (build_function_call_real): Or here.
2322 * tree.c (bot_manip): Call mark_used on functions used in default
eb66be0e 2323 args.
73aad9b9 2324
2eee5e3a
MM
2325Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2326
2327 * decl2.c (import_export_vtable): Delete code that disabled vtable
eb66be0e 2328 heuristic on systems with ASM_OUTPUT_EXTERNAL.
2eee5e3a 2329
c73964b2
MS
2330Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2331
2332 * typeck.c (build_x_function_call): Handle static call context
2333 better.
2334
2335 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
eb66be0e 2336 the function, not its outer block.
c73964b2
MS
2337
2338 * call.c (build_field_call): Pass fields on to build_opfncall
eb66be0e 2339 regardless of TYPE_OVERLOADS_CALL_EXPR.
c73964b2
MS
2340 (build_method_call): Pass on to build_new_method_call sooner.
2341
2342 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
2343 gives us.
2344 * class.c (instantiate_type): Don't put a POINTER_TYPE to
eb66be0e 2345 METHOD_TYPE on an expression. Also make a copy of rhs instead of
c73964b2
MS
2346 modifying it.
2347
2348Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
2349
2350 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
2351 (add_builtin_candidate): Don't take enums for ++.
2352 (build_new_method_call): Handle non-aggregates and field calls.
2353 Move new overloading code from...
2354 * cvt.c: Here.
2355
2356 * decl.c (grokparms): Don't check default args in templates.
2357
2358Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
2359
2360 * cvt.c (build_new_op): Fix args to build_unary_op.
2361 (add_builtin_candidates): Don't call type_promotes_to on float.
2362
2363 * decl.c (grokparms): Check the type of the default arg.
2364
2365 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
2366 returning NULL_TREE.
2367
2368 * typeck.c (build_x_binary_op): Avoid doing extra work.
d11ad92e
MS
2369 (build_x_unary_op): Likewise.
2370 (build_x_conditional_expr): Likewise.
c73964b2
MS
2371 * cvt.c (build_over_call): Return.
2372 (add_builtin_candidate): Fix MEMBER_REF.
d11ad92e 2373 (build_new_op): Likewise.
c73964b2
MS
2374
2375Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
2376
2377 * method.c (build_overload_name): Put bug fix into code but leave
eb66be0e
MS
2378 disabled for now so we can be bug compatible with older releases
2379 that do repeats incorrectly. In the future, we can enable it.
c73964b2
MS
2380
2381Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2382
2383 * cvt.c (convert_like): Don't call build_cplus_new twice.
2384
2385 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
2386 Control new overloading code with -fansi-overloading.
2387
2388Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2389
2390 * cvt.c (build_over_call): Call build_cplus_new.
d11ad92e
MS
2391 * call.c (build_method_call): Likewise.
2392 * typeck.c (build_function_call_real): Likewise.
c73964b2
MS
2393 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
2394 the COND_EXPR in a TARGET_EXPR so they use the same slot.
2395
2396 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
2397 recursive calls.
2398 * typeck.c (complete_type): Propagate
eb66be0e 2399 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
c73964b2
MS
2400
2401Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2402
2403 * cvt.c (joust): More ?: kludging. Sigh.
2404 (build_over_call): Don't try to synthesize global fns.
2405
2406 * search.c (lookup_conversions): Use binfo marking.
2407
2408Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
2409
2410 * search.c (build_mi_matrix): Use the correct value of cid
2411 when determining the new mi_size.
2412
2413Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
2414
2415 * cvt.c (add_builtin_candidates): Do consider type conversion ops
2416 for the first parms of += et al.
2417 (strip_top_quals): New fn.
2418 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
d11ad92e 2419 (implicit_conversion): Likewise.
c73964b2
MS
2420 (add_builtin_candidates): Be careful about arrays.
2421 (build_new_method_call): Handle vtable optimization.
2422
2423Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
2424
2425 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
2426 * cvt.c (reference_binding): Use it.
2427 (implicit_conversion): Use it.
2428 (add_builtin_candidate, COND_EXPR): Use it.
2429
2430 * cvt.c (build_new_function_call): Check for error args.
2431
2432 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
2433
2434 * gxx.gperf: Add __null.
2435 * hash.h: Regenerate.
2436 * lex.h: Add RID_NULL.
2437 * lex.c (init_lex): Create null_pointer_node here, stick it in
eb66be0e 2438 RID_NULL.
c73964b2
MS
2439 * decl.c (init_decl_processing): Still set its type here.
2440 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
d11ad92e 2441 (convert_to_pointer_force): Likewise.
c73964b2
MS
2442 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
2443 if (! pedantic).
2444 * call.c (convert_harshness): Use null_ptr_cst_p.
d11ad92e 2445 * typeck.c (convert_for_assignment): Likewise. Don't produce
c73964b2
MS
2446 null_pointer_node.
2447
2448 * error.c (args_as_string): Handle lists of actual args, too.
2449 * cvt.c (null_ptr_cst): Support (void*)0 for now.
2450 (build_user_type_conversion_1): Improve diagnostics.
2451 (build_new_function_call): Likewise.
2452 (build_object_call): Likewise.
2453 (build_new_method_call): Likewise. Move call before def diagnostic...
2454 (build_over_call): Here.
2455
2456 * cvt.c (build_new_method_call): Don't complain about no match if
eb66be0e 2457 LOOKUP_SPECULATIVELY.
c73964b2
MS
2458 (build_over_call): Fix 'this' for virtual fn.
2459 (build_new_method_call): Add diagnostic.
2460
2461Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2462
2463 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
eb66be0e 2464 constructors to be passed in.
c73964b2
MS
2465 (build_over_call): Likewise.
2466 (build_user_type_conversion_1): Pass them in.
2467 (convert_like): Likewise.
2468 (build_object_call): Handle overloaded conversions.
2469 (build_over_call): Pass the right args to build_vfn_ref.
2470 (standard_conversion): Fix pmf convs.
2471 (joust): Handle comparing statics and non-statics.
2472 (build_new_method_call): New fn.
2473 * call.c (build_method_call): Call it if NEW_OVER.
2474
2475Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
2476
2477 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
eb66be0e 2478 %D instead.
c73964b2
MS
2479
2480Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
2481
2482 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
eb66be0e
MS
2483 instead of just maybe_build_cleanup so that we deallocate the
2484 thrown object.
c73964b2
MS
2485
2486Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2487
2488 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
2489 * cp-tree.h (finish_prevtable_vardecl): Add decl.
2490
14548a19
MS
2491Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
2492
c73964b2 2493 * pt.c (instantiate_class_template): Call complete_type. Also, if
eb66be0e
MS
2494 we're at the end of the file and we just instantiated a template
2495 class with a vtable, call finish_prevtable_vardecl.
c73964b2 2496
14548a19 2497 * error.c (dump_decl): Don't explode (or explode more gracefully
eb66be0e 2498 as appropriate) if the object being dumped has a null type.
d11ad92e 2499 (dump_expr): Likewise.
14548a19
MS
2500
2501 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
eb66be0e
MS
2502 by counting the number of nodes that we'll need before allocating
2503 the array.
14548a19
MS
2504 (lookup_fnfields): Fix comment.
2505 (breadth_first_search): Fix comment.
2506
2507Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
2508
2509 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
eb66be0e 2510 TYPE_ALIGN.
14548a19
MS
2511 * class.c (finish_struct): Call cplus_decl_attributes here.
2512 (finish_struct_1): Not here.
2513 * cp-tree.h: Adjust.
2514
2515 * pt.c (type_unification): New parameter STRICT.
2516 (unify): If STRICT, don't allow cv addition or base deduction.
2517 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
2518
2519Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
2520
2521 * search.c (get_template_base{_recursive}): New fns.
2522 * pt.c (more_specialized): New fn.
2523 (do_function_instantiation): Use it.
2524 (unify): Handle base deduction.
2525 * cvt.c (joust): Use more_specialized.
2526 Don't arbitrarily choose between non-builtin candidates.
2527 (build_over_call): Call require_complete_type.
2528
2529 * decl.c (start_function): Statics are static even in a #pragma
eb66be0e 2530 interface file.
14548a19
MS
2531
2532 * decl2.c (import_export_vtable): Disable vtable heuristic on
eb66be0e 2533 systems with ASM_OUTPUT_EXTERNAL.
14548a19
MS
2534
2535 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
2536 (standard_conversion): No std conv to enum type.
2537
2538 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
2539 for ptm's.
2540
2541 * cvt.c (reference_binding): Bind directly to a base subobject of
eb66be0e 2542 a class rvalue.
14548a19
MS
2543
2544 * cvt.c (build_new_op): Enforce access control.
2545
2546Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
2547
2548 * typeck2.c (process_init_constructor): When scanning the
2549 union for a named field, skip things that aren't FIELD_DECLs.
2550
2551 * method.c (synthesize_method): Don't scan fndecl's rtl if
2552 we're at the end of the file; just assume the function can't
2553 be inlined.
2554
2555Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2556
2557 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
eb66be0e 2558 it failed.
14548a19
MS
2559
2560 * cvt.c (build_user_type_conversion_1): Handle overloaded
eb66be0e 2561 conversion ops.
14548a19
MS
2562
2563 * cvt.c (add_builtin_candidates): Don't consider type conversion
eb66be0e 2564 operators for the first parameter of operator=.
14548a19
MS
2565
2566Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
2567
2568 * typeck.c (complete_type): Only call layout_type if we're not
eb66be0e 2569 expanding a template.
14548a19
MS
2570
2571Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
2572
2573 * cvt.c (compare_ics): Oops.
2574
2575 * cvt.c (op_error): Oops.
2576
2577 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
2578 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
2579 (build_conv): Use them.
2580 (implicit_conversion): Use them.
2581 (convert_like): Handle them.
2582 (build_new_op): Handle builtin COND_EXPR again.
2583 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
2584 in lists of types for COND_EXPR.
2585 (add_builtin_candidate): Add enum candidates for COND_EXPR.
2586
2587Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
2588
2589 * typeck.c (build_modify_expr): Always attempt to build a call to
eb66be0e 2590 the assignment operator, even if we're using a default one.
14548a19
MS
2591 (convert_for_initialization): Call complete_type.
2592
2593Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2594
2595 * cvt.c (reference_binding): A REF_BIND gets the reference type.
2596 (implicit_conversion): Likewise.
2597 (convert_like): Likewise.
2598 (compare_ics): Likewise.
2599 (compare_qual): Likewise.
2600 (print_z_candidates): Handle no candidates.
2601 (build_new_op): Don't handle builtin COND_EXPR for now.
2602
2603Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
2604
2605 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
2606
2607Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2608
2609 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
2610
2611 * cvt.c (build_builtin_candidate): Oops.
2612 (build_new_op): Oops.
2613
2614 * method.c (build_opfncall): Pass COND_EXPR on.
2615 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
2616 (add_builtin_candidate{,s}): Likewise.
2617 (add_builtin_candidates): Likewise.
2618 (print_z_candidates, op_error, build_new_op): Likewise.
2619 (type_decays_to): New fn.
2620 * lex.c (init_lex): Just say ?: for COND_EXPR.
2621
2622Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
2623
2624 * typeck.c (complete_type): Call layout_type rather than building
eb66be0e 2625 a new array type.
14548a19
MS
2626
2627 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
eb66be0e 2628 only use ptrdiff_t.
14548a19
MS
2629
2630Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2631
2632 * cvt.c: Always compile the new overloading code (but don't use it).
2633 (implicit_conversion): Add a BASE_CONV when converting to
eb66be0e 2634 the same class type.
14548a19
MS
2635 (convert_like): Handle BASE_CONV.
2636
2637Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2638
2639 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
2640 (add_builtin_candidate): Likewise.
2641
2642 NEW_OVER changes:
2643 * typeck.c (build_x_function_call): Try an operator function
eb66be0e 2644 whenever we call an object of class type.
14548a19
MS
2645 * method.c (build_opfncall): Pass CALL_EXPRs through.
2646 * cvt.c (implicit_conversion): Do const-ref case first.
2647 (add_conv_candidate, build_object_call, op_error): New fns.
2648 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
2649 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
2650 builtin candidates.
2651 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
2652 Fall back on preincrement handling. Use op_error.
2653 Handle warn_synth.
2654 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
2655 an error_mark_node.
2656 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
2657 properly.
2658
2659Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
2660
2661 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
2662
2663Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
2664
2665 * typeck.c (build_component_ref_1): Use build_component_ref
2666 instead of open coding it here.
2667
2668Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
2669
2670 * g++.c (main): Don't link with -lg++.
2671
2672 NEW_OVER changes:
2673 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
eb66be0e 2674 result of build_type_conversion.
14548a19
MS
2675 (cp_convert): Only call build_method_call for ctors if
2676 build_type_conversion failed.
2677 (ptr_complete_ob): New function.
2678 (TYPE_PTR{,OB,MEM}_P): New macros.
2679 ({add,build}_builtin_candidate{,s}): New functions.
2680 (print_z_candidates): Handle builtins.
2681 (build_user_type_conversion_1): Don't use conversion fns for
2682 converting to a base type.
2683 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
2684 (build_user_type_conversion): Use convert_from_reference.
2685 (build_new_op): New function.
2686 (build_over_call): Fix handling of methods.
2687 (compare_ics): Handle AMBIG_CONV properly.
2688 * typeck2.c: Increment abort count.
2689 * method.c (build_opfncall): Forward most requests to build_new_op.
2690 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
2691
2692Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2693
2694 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
2695 invalid second argument to dump_expr_list.
2696
594740f3
MS
2697Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
2698
2699 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
2700
2701Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
2702
2703 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
2704 ASSEMBLE_EXTERNAL.
2705
2706Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
2707
2708 * typeck2.c (process_init_constructor): New pedwarn for using { }
2709 to initialize a pointer to member function.
2710 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
2711 we can avoid the new error.
2712
2713Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
2714
2715 * typeck.c (build_ptrmemfunc1): New function to hide details of
2716 pointer to member functions better.
2717
2718Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
2719
2720 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
2721 methods into the actual method, as we know the implied object is
2722 not used.
2723
2724Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2725
2726 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
2727 inside a system header.
2728
2729Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
2730
2731 * call.c (build_method_call): Call complete_type on the
2732 instance type.
2733
2734Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
2735
2736 * typeck.c (build_component_ref): Always build up an OFFSET_REF
2737 for obj_ptr->func so that we can know which object to use in a
2738 method call.
2739
2740Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
2741
2742 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
2743 around things. Also improve maintainability.
2744
2745Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
2746
2747 * decl.c (grokdeclarator): Check for overflow when evaluating an
eb66be0e 2748 array dimension.
594740f3
MS
2749
2750Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
2751
2752 * cvt.c (cp_convert): Don't check for ambiguity with constructor
eb66be0e 2753 if NEW_OVER.
594740f3
MS
2754
2755 * typeck.c (build_x_function_call): Pass function overload
eb66be0e 2756 questions to new overloading code if NEW_OVER.
594740f3 2757 * init.c (expand_aggr_init_1): Only check for type conversion ops
eb66be0e
MS
2758 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
2759 Don't check for ambiguity with constructor if NEW_OVER.
594740f3 2760 * cvt.c (convert_to_reference): Dereference the result of a type
eb66be0e 2761 conversion operator.
594740f3
MS
2762 (build_conv): Propagate ICS_USER_FLAG.
2763 (implicit_conversion): Call instantiate_type.
2764 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
2765 (add_function_candidate): Fix cv-quals on argtype.
2766 (print_z_candidates): New function.
2767 (build_new_function_call): Call it.
2768 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
2769 consider non-converting constructors.
2770 Call print_z_candidates.
2771 Return an AMBIG_CONV for an ambiguous conversion.
2772 (build_user_type_conversion): Handle AMBIG_CONV.
2773 (convert_like): Fix test for building TARGET_EXPR.
2774 Call instantiate_type.
2775 Handle AMBIG_CONV and LVALUE_CONV.
2776 (build_over_call): Handle 0 args and ellipsis.
2777 * cp-tree.def: Add AMBIG_CONV.
2778
e92cc029
MS
2779Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
2780
2781 * decl.c (lookup_name_real): If we find mem in obj when parsing
eb66be0e 2782 `obj->mem', make sure we return the right value.
e92cc029
MS
2783
2784Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
2785
2786 * search.c (get_base_distance): Call complete_type.
2787
2788Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
2789
2790 * decl.c (store_bindings): Make static.
2791
2792Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2793
2794 * init.c (expand_aggr_init_1): Don't check type conversions if
eb66be0e 2795 NEW_OVER.
e92cc029
MS
2796
2797 * cvt.c (z_candidate): Put back template field.
2798 (add_function_candidate): Set it.
2799 (add_template_candidate): Likewise.
2800 (joust): Use it.
2801 (compare_qual): Handle references and pointers to members.
2802 (compare_ics): Handle reference bindings.
2803
2804 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
2805
2806Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
2807
2808 * call.c (compute_conversion_costs): Call complete_type.
2809
2810 * tree.c (vec_binfo_member): Use comptypes instead of comparing
eb66be0e 2811 pointers, so we can handle template parameters.
e92cc029
MS
2812
2813Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
2814
2815 * cvt.c (cp_convert_to_pointer): We have to call complete_type
2816 here; let's make it explicit instead of a side effect of an
2817 error check.
2818
2819Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
2820
2821 * cvt.c (z_candidate): Remove template field.
2822 (reference_binding): Handle binding to temporary.
2823 (implicit_conversion): Likewise.
2824 (add_function_candidate): Handle artificial constructor parms.
2825 Handle functions with too few parms.
2826 (add_template_candidate): New function.
2827 (build_user_type_conversion_1): Handle constructors.
2828 (convert_like): Likewise.
2829 (build_over_call): Likewise.
2830 (build_new_function_call): Support templates.
2831 (compare_ics): Fix reference, inheritance handling.
2832
2833Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
2834
2835 * decl.c: Add signed_size_zero_node.
2836 (init_decl_processing): Build it.
2837 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
eb66be0e 2838 when we're trying to make a negative delta.
e92cc029
MS
2839
2840Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2841
2842 Stop doing this damn index==strchr variable name confusion.
2843 * class.c (add_virtual_function): Change local var INDEX to be
2844 named IDX.
2845 (add_method): Likewise.
2846 * lex.c (print_parse_statistics): Likewise.
2847 * search.c (make_memoized_table_entry): Likewise.
2848 (lookup_fnfields_here): Likewise.
2849 (lookup_field): Likewise.
2850 (lookup_fnfields): Likewise.
2851 (get_baselinks): Likewise.
2852 * sig.c (build_signature_table_constructor): Likewise.
2853 (build_signature_method_call): Likewise.
2854 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
2855 (get_member_function_from_ptrfunc): Likewise.
2856 (build_ptrmemfunc): Change local var INDEX to be IDX.
2857 (c_expand_start_case): Likewise.
2858
2859Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
2860
2861 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
eb66be0e 2862 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
e92cc029 2863 (convert_to_reference): Use build_type_conversion to convert to
eb66be0e 2864 the reference type directly.
e92cc029
MS
2865 (standard_conversion): Fix void* case, non-conversions.
2866 (reference_binding): Fix expr == 0 case, non-conversions.
2867 (convert_like): Support REF_BIND.
2868 (compare_qual): Split out from compare_ics.
2869 (compare_ics): Use it, handle icses with only a qual_conv.
2870
2871 * init.c (expand_vec_init): Don't crash if decl is NULL.
2872
2873Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
2874
2875 * mpw-config.in: New file, configury for Mac MPW.
2876 * mpw-make.sed: New file, makefile editing for MPW.
2877
2878Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2879
2880 * pt.c (instantiate_class_template): Call repo_template_used.
2881
2882 * search.c (lookup_conversions): Only lookup conversions in
eb66be0e 2883 complete types.
e92cc029
MS
2884
2885Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2886
2887 * cp-tree.def: Renamed from tree.def, to avoid confusion with
2888 gcc's tree.def.
2889 * cp-tree.h, lex.c: Include cp-tree.def.
2890 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
2891
2892Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
2893
2894 * init.c (build_vec_delete_1): Call complete_type.
2895
2896Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
2897
2898 * except.c (start_anon_func): Make sure anonymous functions are
eb66be0e 2899 never external.
e92cc029
MS
2900
2901Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
2902
2903 * decl.c (finish_function): If function_depth > 1, set nested.
2904
2905 * decl2.c (grokbitfield): Revert Bob's change.
2906 * class.c (finish_struct_1): Fix handling of named bitfield widths.
2907
2908Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
2909
2910 * pt.c (add_pending_template): Handle types.
2911 (lookup_template_class): With -fexternal-templates, just add the class
2912 to pending_templates instead of instantiating it now.
2913 * decl2.c (finish_file): Handle types in pending_templates.
2914
2915Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
2916
2917 * decl2.c (grokbitfield): Handle constant decls appropriately.
eb66be0e
MS
2918 Give an appropriate error message now instead of spewing core
2919 later.
e92cc029
MS
2920
2921Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
2922
2923 * decl2.c: Don't turn on thunks by default for now.
2924
2925Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
2926
2927 * typeck.c (complete_type): Handle error_mark_node.
2928 (common_type, OFFSET_TYPE): Handle template_type_parms.
2929
2930Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
2931
2932 * pt.c (instantiate_decl): If at_eof, call import_export_decl
eb66be0e 2933 regardless of DECL_INLINE.
e92cc029
MS
2934
2935 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
2936
2937 * class.c (finish_struct_bits): Copy TYPE_SIZE.
2938
2939 * rtti.c (build_dynamic_cast): Support templates.
2940 * tree.def: Support DYNAMIC_CAST_EXPR.
2941 * pt.c (tsubst_copy): Likewise.
2942 * decl2.c (build_expr_from_tree): Likewise.
2943
2944Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
2945
2946 * typeck.c (build_static_cast): Support templates.
2947 (build_const_cast): Likewise.
2948 * tree.def: Support CONST/STATIC_CAST_EXPR.
2949 * pt.c (tsubst_copy): Likewise.
2950 * decl2.c (build_expr_from_tree): Likewise.
2951
2952Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
2953
2954 * decl2.c (finish_vtable_vardecl): Don't trust
eb66be0e 2955 TREE_SYMBOL_REFERENCED for vtables of local classes.
e92cc029
MS
2956
2957Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
2958
2959 * pt.c (tsubst_copy): Handle operator T.
2960
2961Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2962
2963 * init.c (build_delete): Move creation of PARMS inside test of
2964 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
2965
2966Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
2967
2968 * typeck.c (build_conditional_expr): Don't assume that
2969 the arguments to ?: are always pointers or records.
2970
2971Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
2972
2973 * decl2.c (import_export_decl): Still emit static/weak/comdat
eb66be0e 2974 copies of inline template functions with -fno-implicit-templates.
e92cc029
MS
2975
2976Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
2977
2978 * init.c (build_delete): Determine the complete basetype
2979 path to the destructor we're calling.
2980
2981Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
2982
2983 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
eb66be0e
MS
2984 initialize the enum, because we really and truly don't know where
2985 it came from.
e92cc029 2986 (start_enum): Don't copy integer_zero_node because
eb66be0e 2987 build_enumerator will do it.
e92cc029
MS
2988
2989Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2990
2991 * decl.c (finish_function): Do access control on base destructors.
2992
2993 * pt.c (tsubst, case FUNCTION_DECL): Set up
eb66be0e
MS
2994 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
2995 hose us.
e92cc029
MS
2996
2997Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
2998
2999 * cvt.c (build_up_reference): If we have already extended the
eb66be0e 3000 lifetime of the temporary, don't try it again.
e92cc029
MS
3001 * typeck.c (c_expand_return): Don't try and convert the return
3002 value twice when we want a reference, once is enough.
3003
a0128b67
MS
3004Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
3005
3006 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
eb66be0e 3007 LOOKUP_ONLYCONVERTING at all for now.
a0128b67
MS
3008
3009 * search.c (add_conversions): Put the conversion function in
eb66be0e 3010 TREE_VALUE, the basetype in TREE_PURPOSE.
a0128b67
MS
3011 * cvt.c (build_type_conversion): Adjust.
3012 * cvt.c (build_expr_type_conversion): Adjust.
3013 * call.c (user_harshness): Adjust.
3014
3015Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
3016
3017 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
eb66be0e 3018 backend's benefit.
a0128b67 3019
14548a19
MS
3020Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
3021
3022 * except.c (expand_start_catch_block): Add a dummy region, if we
3023 get an error, so that we can avoid core dumping later.
3024
a0128b67
MS
3025Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
3026
3027 * cp-tree.h (OFFSET_REF): Remove.
3028 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
3029 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
d11ad92e
MS
3030 * init.c (expand_aggr_init_1): Likewise.
3031 (build_new): Likewise.
3032 * typeck.c (expand_target_expr): Likewise.
a0128b67
MS
3033
3034Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3035
3036 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
eb66be0e 3037 TARGET_EXPR.
a0128b67 3038
e349ee73
MS
3039Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
3040
3041 * cvt.c (build_up_reference): Redo how and when temporaries are
3042 created.
3043 * decl.c (grok_reference_init): Don't try and be smart about
3044 running cleanups.
3045
3046Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
3047
3048 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
3049 (TARGET_EXPR...), now that it has 4 arguments.
d11ad92e 3050 * tree.c (build_cplus_new): Likewise.
e349ee73
MS
3051
3052Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3053
3054 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
3055
3056 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
3057 * decl.c (struct saved_scope): Remove named_labels,
3058 {base,member}_init_list.
3059 (maybe_push_to_top_level): Don't set them. Call
3060 push_cp_function_context if appropriate.
3061 (pop_from_top_level): Likewise.
3062
3063 * method.c (do_build_assign_ref): Remove obsolete check of
3064 TYPE_HAS_ASSIGN_REF (basetype).
3065
3066 * decl.c (grokfndecl): Diagnose user definition of
eb66be0e 3067 implicitly-declared methods.
e349ee73
MS
3068
3069Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
3070
3071 * method.c (do_build_copy_constructor): Add code to give
eb66be0e
MS
3072 meaningful error messages instead of crashing.
3073 (do_build_assign_ref): Don't synthesize assignment operators for
3074 classes containing reference or const members.
e349ee73
MS
3075
3076 * class.c (struct base_info): Remove cant_synth_copy_ctor
3077 and cant_synth_asn_ref.
3078 (finish_base_struct): Remove the code that tries to conditionalize
eb66be0e
MS
3079 synthesis of copy constructors & assignment operators based on
3080 access permissions. Instead, let it fail when it tries to
3081 synthesize the copy constructor. This will give meaningful error
3082 messages instead of silently generating code to perform a bitcopy.
e349ee73
MS
3083
3084Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
3085
3086 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
eb66be0e 3087 determining types for constant values.
e349ee73
MS
3088
3089 * decl.c (struct named_label_list): Use instead of stuffing
3090 random items into a TREE_LIST node.
3091 (named_label_uses): Use the new struct.
d11ad92e
MS
3092 (poplevel): Likewise.
3093 (lookup_label): Likewise.
e349ee73 3094 (define_label): Add an error message to tell the user the line
eb66be0e
MS
3095 where the goto is located in addition to the destination of the
3096 goto.
e349ee73
MS
3097 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
3098 named_label_uses.
d11ad92e 3099 (finish_function): Likewise.
e349ee73
MS
3100
3101 (start_decl): Complain about defining a static data member
3102 in a different type from which it was declared.
3103
3104Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3105
3106 * cvt.c (build_expr_type_conversion): Adjust.
3107
3108Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
3109
3110 * call.c (build_method_call): Always convert 'this' to the
eb66be0e 3111 appropriate type.
e349ee73
MS
3112
3113 * search.c (add_conversions): Put the conversion function in
eb66be0e 3114 TREE_VALUE, the type in TREE_PURPOSE.
e349ee73
MS
3115 * cvt.c (build_type_conversion): Adjust.
3116 * call.c (user_harshness): Adjust.
3117
3118 * method.c (emit_thunk): Call temporary_allocation and
eb66be0e 3119 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
e349ee73
MS
3120
3121 * tree.c (build_cplus_array_type): Handle tweaking of
eb66be0e 3122 TYPE_MAIN_VARIANT here.
e349ee73
MS
3123 * typeck.c (common_type): Not here.
3124
3125 * typeck.c (complete_type): Only try to complete an array type if
eb66be0e 3126 it has a domain.
e349ee73
MS
3127
3128Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
3129
3130 * decl.c (grokvardecl): Call complete_type.
3131 (grokdeclarator): Call complete_type for PARM_DECLs.
3132
3133Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3134
3135 * pt.c (instantiate_class_template): Re-set
eb66be0e 3136 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
e349ee73
MS
3137
3138Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
3139
3140 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
3141 smart enough to do it right.
d11ad92e 3142 * tree.c (cp_expand_decl_cleanup): Likewise.
e349ee73
MS
3143 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
3144 cp_expand_decl_cleanup.
d11ad92e
MS
3145 (store_parm_decls): Likewise.
3146 (hack_incomplete_structures): Likewise.
3147 * except.c (push_eh_cleanup): Likewise.
e349ee73
MS
3148
3149Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
3150
3151 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
3152 frontend to the backend where it belongs.
d11ad92e
MS
3153 * tree.c (unsave_expr): Likewise.
3154 (unsave_expr_now): Likewise.
3155 * tree.def (UNSAVE_EXPR): Likewise.
3156 * cp-tree.h (unsave_expr): Likewise.
3157 (unsave_expr_now): Likewise.
e349ee73
MS
3158
3159Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
3160
3161 * init.c (emit_base_init): Make sure the partial EH cleanups live
3162 on the function_obstack.
3163
ce122a86
MS
3164Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
3165
3166 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
3167 when checking for pointer types.
3168
3169Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3170
3171 * pt.c (instantiate_class_template): Remove obsolete check for
eb66be0e 3172 access declarations.
ce122a86
MS
3173
3174Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
3175
3176 * call.c (build_overload_call): Simplify calls to
3177 build_overload_call by removing last parameter.
d11ad92e
MS
3178 (build_method_call): Likewise.
3179 * cp-tree.h: Likewise.
3180 * method.c (build_opfncall): Likewise.
3181 * typeck.c (build_x_function_call): Likewise.
ce122a86
MS
3182
3183Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
3184
3185 * call.c (default_parm_conversions): Factor out common code.
3186 (build_method_call): Use it.
3187 (build_overload_call_real): Use it.
3188
4ac14744
MS
3189Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
3190
3191 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
3192 but pedwarn as the code is bogus.
d11ad92e 3193 * typeck.c (decay_conversion): Likewise.
4ac14744
MS
3194 (build_function_call_real): Use build_addr_func instead of
3195 default_conversion. Don't allow pointer-to-method functions down
3196 here.
3197 (build_unary_op): Use real pointer-to-member functions instead of
3198 fake ones.
3199 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
3200 (convert_for_assignment): Removed some obsolete code.
3201 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
3202 build_x_function_call instead of current_class_ptr. Only call
3203 digest_init once on an initializer, we do this just checking
3204 TREE_TYPE.
3205 (build_expr_from_tree): Pass current_class_ref to
3206 build_x_function_call instead of current_class_ptr.
d11ad92e
MS
3207 * init.c (build_member_call): Likewise.
3208 * pase.y: Likewise.
4ac14744
MS
3209 * error.c (dump_expr): Handle OFFSET_REFs better.
3210 * pt.c (unify): Handle pointer-to-member functions better.
3211 * decl.c (finish_function): Clear out current_class_ref just like
3212 we do for current_class_ptr.
3213
3214 * typeck.c (get_delta_difference): Handle virtual bases better.
3215
3216Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
3217
3218 * sig.c (build_signature_table_constructor): Use the delta for
3219 the original basetype for this virtual function with thunks.
3220 (build_signature_method_call): We still need to adjust 'this'
3221 with thunks.
3222
3223Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
3224
3225 * call.c (build_addr_func): New routine. Used to get the `real'
3226 address of a function or a method. Needed to avoid getting a
3227 pointer-to-member function.
3228 (build_call): New routine to build CALL_EXPRs.
3229 (build_method_call): Use it.
d11ad92e
MS
3230 * cvt.c (convert_to_aggr): Likewise.
3231 * typeck.c (build_function_call_real): Likewise.
4ac14744
MS
3232 * sig.c (build_signature_table_constructor): Use build_addr_func.
3233 * cp-tree.h (build_call, build_addr_func): Declare them.
3234
3235Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
3236
3237 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
3238 * parse.y: Remove uses of LOOKUP_AGGR.
3239
3240Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
3241
3242 * *.[chy]: Rename current_class_decl to current_class_ptr, and
3243 C_C_D to current_class_ref.
3244
3245Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3246
3247 * call.c (convert_harshness): Tighten up pointer conversions.
3248
3249Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
3250
3251 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
3252 (finish_file): Likewise.
3253
3254Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
3255
3256 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
3257
3258 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
eb66be0e 3259 code.
4ac14744
MS
3260
3261Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3262
3263 * decl2.c: Turn on thunks by default where supported.
3264
4dabb379
MS
3265Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
3266
3267 * cp-tree.h (build_overload_call_maybe): Removed.
3268 * call.c (build_overload_call_real): Invert meaning of last arg to
3269 be require_complete.
d11ad92e 3270 (build_overload_call): Likewise.
4dabb379
MS
3271 * typeck.c (build_x_function_call): Use build_overload_call_real
3272 instead of build_overload_call_maybe.
3273
a50f0918
MS
3274Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
3275
3276 * decl2.c (finish_file): Don't try to emit functions that haven't
eb66be0e 3277 been compiled.
a50f0918
MS
3278
3279Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3280
3281 * decl2.c (finish_vtable_vardecl): Oops.
3282
3283 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
eb66be0e 3284 Also store the bindings from previous_class_values.
a50f0918
MS
3285 (pop_from_top_level): Restore them.
3286
3287Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
3288
3289 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
eb66be0e 3290 symbol has been referenced.
a50f0918
MS
3291 (finish_file): Re-join synthesis/vtable loop with inline emission
3292 loop, disable inlining when an inline is output.
3293
3294Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
3295
3296 * except.c (init_exception_processing): Setup saved_in_catch.
3297 (push_eh_cleanup): Reset __eh_in_catch.
3298 (expand_start_catch_block): Set __eh_in_catch.
3299
3300Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
3301
3302 * except.c (push_eh_cleanup): Add tracking for whether or not we
3303 have an active exception object.
3304 (expand_builtin_throw): Use it to make sure a rethrow without an
3305 exception object is caught.
3306
3307Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
3308
3309 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
eb66be0e 3310 cache.
a50f0918 3311
809c8c30
JM
3312Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
3313
3314 * decl2.c (finish_file): Also use sentries for vars with
eb66be0e
MS
3315 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
3316 created).
809c8c30
JM
3317
3318 * lex.c (handle_cp_pragma): Disable #pragma
eb66be0e 3319 interface/implementation if SUPPORTS_ONE_ONLY > 1.
809c8c30
JM
3320
3321Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
3322
3323 * method.c (emit_thunk): Wrap default case in
eb66be0e 3324 temporary/permanent_allocation.
809c8c30
JM
3325
3326 * method.c (make_thunk): Use DECL_ONE_ONLY.
3327 (emit_thunk): Call assemble_end_function.
3328
46b02c6d
MS
3329Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
3330
3331 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
d11ad92e 3332 (import_export_decl): Likewise.
46b02c6d
MS
3333 (finish_prevtable_vardecl): Disable vtable hack if
3334 SUPPORTS_ONE_ONLY > 1.
3335
3336Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
3337
3338 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
3339 PREDECREMENT_EXPRs take two arguments, not one.
3340
3341Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
3342
3343 * class.c (build_vtable_entry): Don't build thunks for abstract
eb66be0e 3344 virtuals.
46b02c6d
MS
3345
3346 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
eb66be0e 3347 frontend.
46b02c6d
MS
3348
3349Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
3350
3351 * class.c (set_rtti_entry): Use size_zero_node.
d11ad92e 3352 (build_vtable): Likewise.
46b02c6d
MS
3353
3354Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
3355
3356 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
d11ad92e 3357 (prepare_fresh_vtable): Likewise.
46b02c6d
MS
3358
3359Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
3360
3361 * method.c (emit_thunk): Call mark_used on the target function.
3362
3363 * call.c (build_method_call): Don't warn about pending templates.
3364
c7690c68
JM
3365Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3366
3367 * decl2.c (finish_file): Fix list walking logic.
3368
46b02c6d
MS
3369 * typeck2.c (check_for_new_type): Only warn if -pedantic.
3370
3371Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
3372
3373 * class.c (finish_struct_1): Remove old code for
3374 dont_allow_type_definitions.
d11ad92e 3375 * cp-tree.h: Likewise.
46b02c6d
MS
3376 * spew.c: Make sure cp-tree.h is included before parse.h, so the
3377 definition of flagged_type_tree is found before it is used.
d11ad92e 3378 * lex.c: Likewise.
46b02c6d 3379 * parse.y: Added the ftype member to the type union, and changed a
eb66be0e 3380 number of rules to use it instead of ttype. Added calls to
46b02c6d
MS
3381 check_for_new_type() as appropriate.
3382 * typeck2.c (check_for_new_type): New function for checking
3383 if a newly defined type appears in the specified tree.
3384 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
3385 for check_for_new_type().
3386
67d743fe
MS
3387Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
3388
c7690c68
JM
3389 * decl2.c (finish_file): Only use a sentry if the decl is public.
3390
67d743fe
MS
3391 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
3392 don't pass LOOKUP_ONLYCONVERTING.
3393
3394Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
3395
3396 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
3397 properly keeps track of const and volatile type modifiers.
3398
3399Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
3400
3401 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
3402 * pt.c (comp_template_args): Use it.
3403
3404 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
3405 assemble_external for artificial function decls.
3406
3407 * decl.c (cp_finish_decl): Oops.
3408
3409Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
3410
3411 * decl2.c (import_export_decl): Put static data member templates
eb66be0e
MS
3412 into common storage, or make them weak, depending on whether they
3413 are dynamically or statically initialized.
67d743fe
MS
3414 (get_sentry): New function.
3415 (finish_file): Do import_export_decl for static data members before
3416 building the init/fini functions. Don't init/fini a variable that's
3417 EXTERNAL. Use a sentry for variables in common. Fix mismatching
3418 push/pop_temp_slots.
3419 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
eb66be0e 3420 expand_static_init thang.
67d743fe
MS
3421 * method.c (get_id_2): New function.
3422
3423Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
3424
3425 * parse.y (empty_parms): Make sure we use C++-style prototypes
eb66be0e 3426 when we're declaring member functions.
67d743fe
MS
3427
3428Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3429
3430 * Makefile.in (CONFLICTS): 16 s/r conflicts.
3431 * parse.y (self_template_type): New nonterminal.
3432
a80e4195
MS
3433Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
3434
3435 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
eb66be0e 3436 name.
a80e4195
MS
3437 * parse.y (base_class.1): Allow 'typename foo::bar'.
3438
3439 * lex.c (check_newline): Remove #pragma code that plays with the
eb66be0e
MS
3440 input stream, since we now deal with tokens. Clear nextchar when
3441 we're done.
a80e4195
MS
3442 (handle_cp_pragma): Use real_yylex.
3443 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
3444 in one place.
3445
3446 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
3447
3448 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
3449
3450Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3451
3452 * parse.y: New token SELFNAME for potential constructor.
3453 * spew.c (yylex): Handle it.
3454 * lex.c (identifier_type): Produce it.
3455
3456 * parse.y (complete_type_name): In :: case, don't push class binding.
d11ad92e 3457 (complex_type_name): Likewise.
a80e4195
MS
3458
3459Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
3460
3461 * typeck.c (build_reinterpret_cast): Handle pointer to member
eb66be0e 3462 functions.
a80e4195
MS
3463
3464Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
f72bbc37
BK
3465
3466 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
eb66be0e 3467 pragmas.
f72bbc37 3468 (check_newline): Put the vtable/unit/implementation/interface pragma
eb66be0e 3469 code into handle_cp_pragma, replacing it with a call.
f72bbc37 3470 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
eb66be0e 3471 args. Get the next token after handling the pragma token.
a80e4195
MS
3472
3473Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
3474
3475 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
d11ad92e 3476 (convert_to_pointer_force): Likewise.
a80e4195
MS
3477
3478 * init.c (build_new): Fix array new without -fcheck-new.
3479
3480Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3481
3482 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
3483 tree.c: Lose TYPE_NESTED_NAME.
3484
3485 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
3486 as identifiers.
3487
3488 * tree.def: Add VEC_INIT_EXPR.
3489 * expr.c (cplus_expand_expr): Handle it.
3490 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
eb66be0e 3491 the extra file-scope symbol nastiness.
a80e4195
MS
3492
3493Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
3494
3495 * method.c (make_thunk): Thunks are static.
3496 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
3497
3498 * decl2.c (mark_vtable_entries): Emit thunks as needed.
3499 (finish_file): Don't emit them here.
3500
3501Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
3502
3503 * rtti.c (build_dynamic_cast): Handle null pointers.
3504 (ifnonnull): New function.
f72bbc37 3505
6b5fbb55
MS
3506Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
3507
a80e4195 3508 * call.c (build_method_call): Remember the original basetype we
eb66be0e
MS
3509 were called with. Give an error message instead of trying
3510 (incorrectly) to call a non-static member function through a
3511 non-inherited class.
a80e4195 3512
6b5fbb55
MS
3513 * search.c (expand_upcast_fixups): Mark the new fixup as
3514 DECL_ARTIFICIAL.
3515
3516Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3517
3518 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
3519
3520 * class.c (set_rtti_entry): Fix for thunks.
3521
3522 * decl2.c (import_export_decl): Still emit typeinfo fns for
3523 cv-variants of builtin types.
3524
3525 * rtti.c (expand_class_desc): Set up base_info_type_node here.
3526 (init_rtti_processing): Instead of here.
3527
3528Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3529
3530 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
3531 (build_typeid): Only complain about taking dynamic typeid without
3532 -frtti.
3533
3534 * decl2.c: flag_rtti defaults to 1.
3535
3536 * rtti.c (get_tinfo_var): The general class case is now smaller.
3537 (init_rtti_processing): Pack the latter three fields of base_info
3538 into 32 bits.
3539
3540Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
3541
3542 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
3543
3544Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
3545
3546 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
3547 (push_memoized_context): Split out code to undefer pop_type_level to
3548 (clear_memoized_cache): here.
3549 (pop_memoized_context): We can only handle one layer of deferral of
3550 pop_type_level so clear the cache, if there was a previous level.
3551
3552Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3553
3554 * rtti.c (init_rtti_processing): Build up base_info_type_node.
3555 (expand_class_desc): Use one pointer to an array of base_info
3556 structs, passed using a CONSTRUCTOR.
3557
3558Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
3559
3560 * class.c (build_vbase_path): Remove block extern for
3561 flag_assume_nonnull_objects here.
3562 (build_vfn_ref): Split out functionality into build_vtbl_ref.
3563 (build_vtbl_ref): New routine.
3564 (build_vtable): Set up rtti info here.
3565 (add_virtual_function): Note in CLASSTYPE_RTTI the best
3566 place where we can get the rtti pointers from to avoid having to
3567 search around for a place.
d11ad92e
MS
3568 (finish_base_struct): Likewise.
3569 (finish_struct_1): Likewise. Never create totally new vtables
3570 with totally new vtable pointers for rtti. Disable code to layout
3571 vtable pointers better until we want to break binary
3572 compatibility.
6b5fbb55
MS
3573 * rtti.c (build_headof_sub): New routine to convert down to a
3574 sub-object that has an rtti pointer in the vtable.
3575 (build_headof): Use it. Also, use build_vtbl_ref now to be more
3576 maintainable.
3577 (build_dynamic_cast): Make sure we have saved it, if we need to.
3578 * search.c (dfs_init_vbase_pointers): Disable code that deals with
3579 a more efficient vtable layout, enable later.
3580 * call.c (flag_assume_nonnull_objects): Moved declaration to
3581 * cp-tree.h: here. Declare build_vtbl_ref.
3582 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
3583 function calls that want a tree.
3584
3585Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3586
3587 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
eb66be0e 3588 other X subobjects in the most derived type. Ack.
6b5fbb55
MS
3589
3590 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
eb66be0e 3591 get_typeid will do it for us.
6b5fbb55
MS
3592 (get_typeid_1): Break out call-building for expand_*_desc to use.
3593 (get_typeid): Call it.
d11ad92e 3594 (expand_*_desc): Likewise.
6b5fbb55 3595 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
eb66be0e 3596 and void *.
6b5fbb55
MS
3597 (init_decl_processing): Lose builtin_type_tdescs lossage.
3598 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
3599
3600Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
3601
3602 * pt.c (tsubst): When calling set_nested_typename, use
eb66be0e
MS
3603 TYPE_NESTED_NAME (current_class_type) instead of
3604 current_class_name.
6b5fbb55 3605
d11ad92e
MS
3606 * decl.c (pushdecl): Likewise.
3607 (pushdecl_class_level): Likewise.
6b5fbb55
MS
3608 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
3609 set_nested_typename.
3610
3611Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
3612
3613 * rtti.c (synthesize_tinfo_fn): Handle arrays.
3614
3615 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
3616
3617Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
3618
3619 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
3620 (init_rtti_processing): Lose bad_cast_type.
3621 (build_dynamic_cast): Use throw_bad_cast.
3622
3623 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
3624
3625 * decl2.c (finish_file): Don't synthesize artificial functions
eb66be0e 3626 that are external and not inline.
6b5fbb55
MS
3627
3628 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
3629
3630 * decl2.c (finish_file): Handle having new inlines added to
eb66be0e 3631 saved_inlines by synthesis.
6b5fbb55
MS
3632
3633 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
3634
3635Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3636
3637 RTTI rewrite to initialize nodes as needed, not require that
3638 users #include <typeinfo>, complete functionality and reduce wasted
3639 space.
3640 * rtti.c (init_rtti_processing): New fn.
3641 (build_typeid): The vtable entry is now a function.
3642 (get_tinfo_var): New fn.
d11ad92e 3643 (get_tinfo_fn): Likewise.
6b5fbb55
MS
3644 (get_typeid): Use it.
3645 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
3646 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
3647 points __rtti_*.
3648 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
3649 (synthesize_tinfo_fn): New fn.
3650 * method.c (build_t_desc_overload): Lose.
3651 (build_overload_with_type): More generic.
3652 * decl.c (init_decl_processing): Call init_rtti_processing.
3653 * class.c (set_rtti_entry): Use get_tinfo_fn.
3654 * decl2.c (mark_vtable_entries): Mark the rtti function.
3655 (finish_prevtable_vardecl): Don't build_t_desc.
3656 (import_export_decl): Handle tinfo functions.
d11ad92e 3657 (finish_file): Likewise.
6b5fbb55
MS
3658 * typeck.c (inline_conversion): New fn.
3659 (build_function_call_real): Use it.
3660 * cp-tree.h: Add decls.
3661
3662 * method.c (hack_identifier): Also convert component_refs from
eb66be0e 3663 references.
6b5fbb55
MS
3664
3665 * lex.c (cons_up_default_function): Use the type, not the name, in
eb66be0e 3666 declspecs.
6b5fbb55
MS
3667
3668 * decl2.c (import_export_vtable): Fix weak vtables.
3669
3670Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
3671
3672 * search.c (get_base_distance_recursive): Fix access checks for
eb66be0e 3673 protected bases.
6b5fbb55
MS
3674
3675Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3676
3677 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
3678 cp-tree.h.
3679 (convert_harshness): Add prototypes wrapped by PROTO.
3680 * decl2.c (grok_function_init): Likewise.
3681 (do_toplevel_using_decl): Change to void return type.
3682 * class.c (build_vtable_entry): Remove decl of make_thunk.
3683 (merge_overrides): Fix order of arg definitions.
3684 (finish_vtbls): Likewise.
3685 (fixup_vtable_deltas): Likewise.
3686 (modify_all_direct_vtables): Likewise.
3687 (modify_all_indirect_vtables): Likewise.
3688 * search.c (get_base_distance_recursive): Likewise.
3689 (get_abstract_virtuals_1): Likewise.
3690 (fixup_virtual_upcast_offsets): Likewise.
3691 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
3692 * init.c (perform_member_init): Fix order of arg definitions.
3693 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
3694 * cp-tree.h (make_thunk): Add decl.
3695 (overload_template_name, push_template_decl): Add decls.
3696 (do_toplevel_using_decl): Change to void return type.
3697 (vec_binfo_member): Add decl.
3698
cdf5b885
MS
3699Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3700
3701 * typeck.c (mark_addressable, convert_for_assignment,
3702 convert_for_initialization, pointer_int_sum, pointer_diff,
3703 unary_complex_lvalue): Add prototypes wrapped by PROTO.
3704 (convert_sequence): #if 0 fn decl, since definition also is.
3705
3706Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
3707
3708 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
3709 cast to pointer types for type searching.
3710
3711Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3712
3713 * typeck.c (get_delta_difference): Use cp_error, not error, in the
3714 case where BINFO == 0.
3715
3716Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
3717
3718 * call.c (build_method_call): Fix wording of error messages so
3719 constructors come out right.
3720
3721Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
3722
3723 * decl.c (push_overloaded_decl): Don't warn about hidden
3724 constructors when both the type and the function are declared
3725 in a system header file.
3726
c91a56d2
MS
3727Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
3728
3729 * class.c (finish_struct_1): Propagate the TYPE_PACKED
3730 flag for the type to the type's fields.
3731
3732Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3733
3734 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
3735
3736Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
3737
3738 * class.c (base_info, finish_base_struct): Replace
3739 needs_virtual_dtor with base_has_virtual.
3740
3741 (finish_struct_1): Remove the old code that tried to make default
eb66be0e
MS
3742 destructors virtual. Use base_has_virtual when checking if we need
3743 to add a vtable entry for the rtti code.
c91a56d2
MS
3744
3745Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
3746
3747 * pt.c (push_template_decl): Complain about template decl with
eb66be0e 3748 inappropriate declaration.
c91a56d2
MS
3749
3750Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
3751
3752 * typeck.c (build_x_unary_op): Remove bogus check for taking
3753 the address of a member function.
3754
3755Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3756
3757 * parse.y (constructor_declarator): Only push the class if
3758 we are not already in the class.
3759
3760Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
6752b7d4
JL
3761
3762 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
3763 Add additional argument to INIT_CUMULATIVE_ARGS.
3764
c91a56d2
MS
3765Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
3766
3767 * decl.c (shadow_tag): Fix error about anon union with methods.
3768
3769 * parse.y (self_reference): Only generate a self-reference if this
eb66be0e 3770 is a non-template class.
c91a56d2
MS
3771 (opt.component_decl_list): Only use it if it was generated.
3772
3773 * parse.y (component_decl_1): Use constructor_declarator.
d11ad92e
MS
3774 (fn.def2): Likewise.
3775 (notype_component_declarator0): Likewise.
c91a56d2
MS
3776
3777Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
3778
3779 * typeck.c (build_x_unary_op): Add checks for taking the address
3780 of a TARGET_EXPR or of a member function, and give appropriate
3781 warnings.
3782
3783Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3784
3785 * pt.c (process_template_parm): Allow template type parms to be
eb66be0e 3786 used as types for template const parms.
c91a56d2
MS
3787
3788Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
3789
3790 * init.c (expand_vec_init): Ensure the eh cleanups are on the
3791 function_obstack.
3792
3793Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3794
3795 * decl.c (lookup_name_real): Be even more picky about the
eb66be0e 3796 ambiguous lookup warning.
c91a56d2
MS
3797 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
3798 * parse.y (constructor_declarator): Rather than here.
3799
3800 * parse.y (constructor_declarator): New nonterminal.
3801 (fn.def1): Use it.
d11ad92e 3802 (explicit_instantiation): Likewise.
c91a56d2
MS
3803
3804Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3805
3806 Add implicit declaration of class name at class scope.
3807 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
3808 * parse.y (self_reference): New nonterminal.
3809 (opt.component_decl_list): Use it.
3810 (fn.def1): Add nested_name_specifier type_name cases.
3811 * class.c (build_self_reference): New function.
3812 (finish_struct): Handle access_default later, move self-reference
3813 decl to the end.
3814 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
3815 * cp-tree.h: Adjust.
3816
3817 * pt.c (do_function_instantiation): Separate handling of member
eb66be0e 3818 functions and non-member functions properly.
c91a56d2
MS
3819
3820Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3821
3822 * pt.c (process_template_parm): Improve error for 'volatile class K'.
3823
3824 * class.c (finish_struct_1): Check the right slot for destructors.
3825
3826 * decl.c (start_enum): Complain about enum templates.
3827
3828Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
3829
3830 * init.c (resolve_offset_ref): Offset pointers to member data by one.
d11ad92e 3831 * typeck.c (unary_complex_lvalue): Likewise.
c91a56d2
MS
3832
3833Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
3834
3835 * typeck.c (c_expand_return): Check for a returned local
3836 array name, similar to the check for an ADDR_EXPR.
3837
3838Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
3839
3840 * decl.c (cp_finish_decl): Don't build cleanups for static
eb66be0e 3841 variables here.
c91a56d2
MS
3842
3843Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
3844
3845 * typeck.c (build_modify_expr): Fix error messages to be more
3846 accurate.
3847 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
3848 assignment operators.
d11ad92e 3849 * error.c (assop_as_string): Likewise. Add support for `%Q' for
c91a56d2
MS
3850 assignment operators.
3851
909e536a
MS
3852Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
3853
c91a56d2 3854 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
eb66be0e
MS
3855 give an error if initialized. Pedwarn about nested type with the
3856 same name as its enclosing class.
c91a56d2 3857
909e536a
MS
3858 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
3859
3860 * typeck.c (require_complete_type): Be sure to instantiate the
eb66be0e 3861 MAIN_VARIANT of the type.
909e536a
MS
3862
3863 * decl2.c (finish_file): Instantiate pending templates before
eb66be0e 3864 processing static constructors and destructors.
909e536a
MS
3865
3866 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
eb66be0e 3867 unless at_eof.
909e536a
MS
3868
3869Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
3870
3871 * decl2.c (delete_sanity): If error_mark_node is passed
3872 in as an expression, quit while we're ahead.
3873
3874 * decl.c (grokdeclarator): Give an error message if `friend'
3875 is combined with any storage class specifiers.
3876
fc378698
MS
3877Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
3878
3879 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
eb66be0e 3880 definition of nonexistent nested type.
fc378698
MS
3881
3882 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
eb66be0e 3883 not to say 'typedef'.
fc378698
MS
3884
3885Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3886
3887 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
3888 * search.c (dfs_walk, dfs_init_vbase_pointers,
3889 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
3890 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
3891
3892Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
3893
3894 * except.c (build_throw): Support minimal parse.
3895 * pt.c (tsubst_copy): Support THROW_EXPR.
d11ad92e 3896 * decl2.c (build_expr_from_tree): Likewise.
fc378698
MS
3897
3898 * pt.c (mangle_class_name_for_template): Always allocate
eb66be0e 3899 scratch_firstobj.
fc378698
MS
3900
3901Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
3902
3903 * cvt.c (cp_convert_to_pointer): Give an appropriate error
3904 when trying to cast from an incomplete type.
3905
3906Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3907
3908 * pt.c (instantiate_class_template): Don't bother setting up
eb66be0e
MS
3909 CLASSTYPE_TAGS explicitly, as the nested types will add
3910 themselves.
fc378698
MS
3911
3912Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
3913
3914 * decl.c (shadow_tag): Remove old error check for usage of
3915 an enum without a previous declaration.
3916 (xref_tag): Add error message about usage of enums without a
3917 previous declaration.
3918
3919Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
3920
3921 * lex.c (do_identifier): Only do name consistency check if we're
eb66be0e 3922 parsing.
fc378698
MS
3923
3924 * pt.c (push_template_decl): Don't crash if we get a member defn
3925 that doesn't match.
3926
3927 * decl.c (xref_tag_from_type): New function to do an xref without
eb66be0e 3928 always having to figure out code_type_node.
fc378698
MS
3929 * cp-tree.h: Declare it.
3930 * pt.c (instantiate_class_template): Use it for friend classes.
eb66be0e 3931 (lookup_template_class): Use it.
fc378698
MS
3932
3933 * typeck2.c (build_functional_cast): Pull out a single parm before
eb66be0e 3934 passing it to build_c_cast.
fc378698
MS
3935
3936Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
3937
3938 * expr.c (do_case): Give an error message if a pointer is
3939 given as a case value.
3940
3941Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
3942
3943 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
eb66be0e 3944 an overload list.
fc378698
MS
3945
3946 * lex.c (cons_up_default_function): Really, now, interface hackery
eb66be0e 3947 does not apply to synthesized methods.
fc378698
MS
3948
3949Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
3950
3951 * call.c (build_method_call): Ctors and dtors now have special names
3952 with respect to lookups.
d11ad92e
MS
3953 * class.c (add_method): Likewise.
3954 (grow_method): Likewise.
3955 (finish_struct_methods): Likewise.
3956 (warn_hidden): Likewise.
3957 (finish_struct_1): Likewise.
3958 * cvt.c (convert_to_reference): Likewise.
3959 (convert_to_aggr): Likewise.
3960 (cp_convert): Likewise.
3961 * decl2.c (check_classfn): Likewise.
3962 * init.c (expand_member_init): Likewise.
3963 (expand_default_init): Likewise.
3964 (expand_aggr_init_1): Likewise.
3965 (build_offset_ref): Likewise.
3966 (build_new): Likewise.
3967 (build_delete): Likewise.
3968 * lex.c (do_inline_function_hair): Likewise.
3969 * search.c (lookup_field_1): Likewise.
3970 (lookup_fnfields_here): Likewise.
3971 (lookup_field): Likewise.
3972 (lookup_fnfields): Likewise.
3973 (get_virtual_destructor): Likewise.
3974 (dfs_debug_mark): Likewise.
3975 (dfs_pushdecls): Likewise.
3976 (dfs_compress_decls): Likewise.
3977 * tree.c (layout_basetypes): Likewise.
3978 * typeck.c (build_component_ref): Likewise.
3979 (build_x_function_call): Likewise.
3980 (build_modify_expr): Likewise.
3981 (convert_for_initialization): Likewise.
3982 (build_functional_cast): Likewise.
3983 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
fc378698
MS
3984 (CTOR_NAME): New.
3985 (DTOR_NAME): New.
3986 * decl.c (ctor_identifier): New.
3987 (dtor_identifier): New.
3988 (init_decl_processing): Set them.
3989
3990Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
3991
3992 * typeck.c (build_component_ref): Don't get confused by fields whose
3993 context has no type name, like pointer to member functions.
3994
3995Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
3996
3997 * decl.c (grokdeclarator): Handle typedef without declarator.
3998
3999 * pt.c (tsubst): Handle SCOPE_REF in declarator.
4000
4001 * parse.y (bad_parm): Catch another case of missing `typename'.
4002
4003 * lex.c (yyprint): Handle TYPE_DECLs.
4004
4005 * decl.c (start_function): Don't try to be clever.
4006
4007 * lex.c: Lose compiler_error_with_decl.
4008 * typeck2.c: Lose error_with_aggr_type.
4009 (incomplete_type_error): Use cp_* instead of old functions.
d11ad92e
MS
4010 (readonly_error): Likewise.
4011 * typeck.c (convert_arguments): Likewise.
4012 * search.c (lookup_nested_field): Likewise.
4013 * method.c (make_thunk): Likewise.
4014 * decl.c (grokparms): Likewise.
fc378698
MS
4015 * cp-tree.h: Update.
4016
4017 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
eb66be0e 4018 and value.
fc378698
MS
4019
4020Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
4021
4022 * method.c (build_opfncall): When deleting a pointer to an
4023 array, build a new pointer to the tree past any ARRAY_TYPE
4024 nodes.
4025
4026Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4027
4028 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
4029
4030Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
4031
4032 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
eb66be0e 4033 and ! DECL_INLINE.
fc378698
MS
4034
4035 * decl.c (finish_function): Don't set nested based on
eb66be0e 4036 hack_decl_function_context.
fc378698 4037 * parse.y (function_try_block): Check for nested function.
d11ad92e 4038 (pending_inlines): Likewise.
fc378698
MS
4039
4040 * decl2.c (build_expr_from_tree): If a unary op already has a
eb66be0e 4041 type, just return it.
fc378698
MS
4042
4043 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
4044
4045 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
4046 (finish_file): Check the return value of walk_vtables.
4047 (finish_prevtable_vardecl): Return int.
d11ad92e
MS
4048 (finish_vtable_vardecl): Likewise.
4049 (prune_vtable_vardecl): Likewise.
4050 * lex.c (set_vardecl_interface_info): Likewise.
fc378698
MS
4051 * cp-tree.h: Adjust return types.
4052
4053 * class.c (delete_duplicate_fields_1): Don't complain about
eb66be0e 4054 duplicate nested types if they're the same type.
fc378698
MS
4055 (finish_struct): Remove check for duplicate.
4056 * decl2.c (grokfield): Don't check for typedef of anonymous type.
4057
4058Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4059
4060 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
4061
4062 * decl.c (grokdeclarator): Lose special handling of class-level
eb66be0e
MS
4063 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
4064 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
fc378698
MS
4065
4066 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
4067
4068 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
4069
4070 * search.c (compute_access): Fix handling of anonymous union
eb66be0e 4071 members.
fc378698 4072 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
eb66be0e 4073 from anonymous unions to their members.
fc378698
MS
4074
4075 * typeck.c (build_x_function_call): For static member functions,
eb66be0e 4076 hand off to build_member_call.
fc378698
MS
4077
4078Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
4079
4080 * typeck.c (build_component_ref): Handle OFFSET_REFs.
4081
4082 * init.c (expand_vec_init): Fix init == 0 case.
4083
4084Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
4085
4086 * init.c (build_new): Pedwarn about init and array new.
4087 (expand_vec_init): Handle lists, use convert_for_initialization
4088
4089 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
eb66be0e 4090 when converting to an aggregate type.
fc378698
MS
4091 * cvt.c (cp_convert): Pass it through.
4092
4093 * typeck.c (build_conditional_expr): Handle user-defined
eb66be0e 4094 conversions to slightly different types.
fc378698
MS
4095
4096 * decl.c (grokdeclarator): Force an array type in a parm to be
eb66be0e 4097 permanent.
fc378698
MS
4098
4099 * decl2.c (do_using_directive): Sorry.
d11ad92e 4100 (do_namespace_alias): Likewise.
fc378698
MS
4101 * lex.c (real_yylex): Warn about using the `namespace' keyword.
4102
4103Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4104
4105 * parse.y (datadef): Move call to note_list_got_semicolon up.
4106
934c6b13
MS
4107Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
4108
4109 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
4110
4111Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
4112
4113 * decl.c (cp_finish_decl): The exception regions have to be
4114 nested, not overlapping. We start the exception region for a
4115 decl, after it has been fully built, and all temporaries for it
4116 have been cleaned up.
4117
4118Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
4119
4120 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
4121
e76a2646
MS
4122Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
4123
4124 * tree.def: Add RETURN_INIT.
4125 * pt.c (instantiate_decl): Handle RETURN_INIT.
4126 * decl.c (store_return_init): Handle minimal_parse_mode.
4127
4128 * tree.c (cp_build_type_variant): Just return an error_mark_node.
4129 * decl.c (make_typename_type): Don't try to get the file and line
eb66be0e 4130 of an identifier.
e76a2646
MS
4131 * typeck.c (comptypes): Handle TYPENAME_TYPE.
4132
4133Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
4134
4135 * decl.c (poplevel): Make sure we clear out and restore old local
4136 non-VAR_DECL values by default when they go out of scope.
4137
4138Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4139
4140 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
eb66be0e 4141 referring to addresses of variables and functions.
e76a2646
MS
4142
4143 * error.c (dump_expr): Support SIZEOF_EXPR.
4144
4145 * init.c (do_friend): Use the return value of check_classfn.
4146
4147 * typeck.c (convert_arguments): Call complete_type.
4148
4149 * method.c (hack_identifier): After giving an error, set value to
eb66be0e 4150 error_mark_node.
e76a2646
MS
4151
4152Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4153
4154 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
eb66be0e 4155 lossage for local classes.
e76a2646
MS
4156 * cp-tree.h: Declare it.
4157 * decl.c (lookup_name_real): Evil, painful hack for local classes.
4158 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
4159 Use hack_decl_function_context.
4160 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
4161 (start_function): Use hack_decl_function_context.
d11ad92e
MS
4162 (finish_function): Likewise.
4163 * method.c (synthesize_method): Likewise.
4164 * lex.c (process_next_inline): Likewise.
4165 (do_pending_inlines): Likewise.
e76a2646 4166 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
eb66be0e 4167 done with it.
e76a2646
MS
4168
4169Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
4170
4171 * sig.c (build_signature_pointer_or_reference_type): Align
4172 signature pointers/references on 8-byte boundaries so they can be
4173 grabbed 2 words at a time on a Sparc.
4174
4175Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
4176
4177 * method.c (hack_identifier): Requiring a static chain is now a
eb66be0e 4178 hard error.
e76a2646 4179 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
eb66be0e 4180 functions.
e76a2646
MS
4181
4182Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4183
4184 * init.c (build_offset_ref): Call complete_type.
4185
4186 * decl.c (pop_from_top_level): Always pop previous_class_type.
4187
4188 * parse.y: Handle multiple decls in a for-init-statement.
d11ad92e 4189 * pt.c (tsubst_expr): Likewise.
e76a2646
MS
4190
4191 * pt.c (tsubst): Use tsubst_expr for the second operand of an
eb66be0e 4192 ARRAY_REF.
e76a2646
MS
4193
4194 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
4195 (poplevel_class): Set it here.
4196 (pop_from_top_level): Pop it here if we're returning to class scope.
4197 * class.c (pushclass): Don't set it here.
4198
4199 * decl.c (maybe_push_to_top_level): Save current_template_parms,
eb66be0e 4200 and clear it if !pseudo.
e76a2646
MS
4201 (pop_from_top_level): Restore it.
4202
4203 * decl2.c (finish_file): Push the dummy each time we walk the list
eb66be0e 4204 of vtables.
e76a2646
MS
4205
4206 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
eb66be0e 4207 something for CAST_EXPR.
e76a2646
MS
4208
4209Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
4210
4211 * cvt.c (cp_convert): Warn about implicit conversion of the
4212 address of a function to bool, as it is always true.
4213
4214Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
4215
4216 * typeck.c (c_expand_return): Fix warning for local externs returned.
4217
4218Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
4219
4220 * tree.c (mapcar): Propagate const and volatile properly.
4221
4222 * typeck.c (complete_type): Be sure to instantiate the
eb66be0e 4223 MAIN_VARIANT of the type.
e76a2646
MS
4224
4225 * method.c (synthesize_method): Class interface hackery does not
4226 apply to synthesized methods.
4227
4228Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4229
4230 * pt.c (comp_template_args): Use comptypes rather than just
eb66be0e 4231 checking for TEMPLATE_TYPE_PARM equivalence.
e76a2646
MS
4232
4233 * typeck.c (build_x_function_call): Call complete_type before
eb66be0e 4234 checking TYPE_OVERLOADS_CALL_EXPR.
e76a2646 4235
7ea63af7
MH
4236Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
4237
4238 * g++.c (main): Check also for new define ALT_LIBM.
4239
ec255269
MS
4240Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4241
4242 * pt.c (instantiate_class_template): If we don't have a pattern
eb66be0e 4243 yet, that's OK.
ec255269
MS
4244 (coerce_template_parms): If we see a local class, bail.
4245
4246 * decl.c (grok_reference_init): Make sure there's a type before
eb66be0e 4247 checking its code.
ec255269
MS
4248
4249 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
d11ad92e 4250 (push_template_decl): Likewise.
ec255269
MS
4251
4252 * parse.y (named_class_head): Set
eb66be0e 4253 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
ec255269
MS
4254
4255 * decl.c (xref_tag): Diagnose redeclaration of template
eb66be0e 4256 type-parameter name.
ec255269
MS
4257
4258 * error.c (dump_type): Handle anonymous template type parms.
4259
4260 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
eb66be0e 4261 TYPE_STUB_DECL.
d11ad92e 4262 (coerce_template_parms): Likewise.
ec255269
MS
4263
4264Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
4265
4266 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
4267 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
4268
4269Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
4270
4271 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
eb66be0e 4272 before trying to get its STUB_DECL.
d11ad92e 4273 (coerce_template_parms): Likewise.
ec255269
MS
4274
4275 * parse.y (template_type_parm): If they didn't use 'class',
eb66be0e 4276 pretend they did after giving an error.
ec255269
MS
4277
4278 * pt.c (coerce_template_parms): Diagnose use of local class.
4279
4280 * decl.c (grok_reference_init): Use instantiate_type.
4281
4282 * error.c (dump_expr): Handle TEMPLATE_DECLs.
4283
4284 * parse.y (named_class_head): Diagnose mismatching types and tags.
4285
4286 * decl.c (pushdecl): Type decls and class templates clash with
eb66be0e 4287 artificial type decls, not hide them.
ec255269
MS
4288
4289 * decl.c (redeclaration_error_message): Diagnose redefinition of
eb66be0e 4290 templates properly.
ec255269
MS
4291 (duplicate_decls): Diagnose disallowed overloads for template
4292 functions, too.
4293
4294 * decl.c (start_decl): Call complete_type before checking for a
eb66be0e 4295 destructor.
ec255269
MS
4296
4297 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
4298
4299 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
4300
5566b478
MS
4301Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4302
ec255269 4303 * decl.c (grok_op_properties): Don't check for operator++(int) in
eb66be0e 4304 a template.
ec255269
MS
4305
4306 * tree.c (perm_manip): Return a copy of variable and function
eb66be0e 4307 decls with external linkage.
ec255269
MS
4308
4309 * tree.def: Change some of the min tree codes to type "1".
4310 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
4311 * method.c (build_overload_int): Emit something arbitrary for
eb66be0e 4312 anything but an INTEGER_CST if we're in a template.
ec255269
MS
4313
4314 * decl.c (cp_finish_decl): Call complete_type before deciding
eb66be0e 4315 whether or not to lay out the decl.
ec255269 4316
5566b478
MS
4317 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
4318
4319Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
4320
4321 * typeck2.c (build_x_arrow): Call complete_type.
4322
4323 * pt.c (add_pending_template): Broken out.
eb66be0e
MS
4324 (lookup_template_class): If -fexternal-templates, call it for all
4325 the methods of implemented types.
5566b478
MS
4326 (instantiate_class_template): Instead of instantiating them here.
4327 (instantiate_decl): Handle -fexternal-templates earlier.
4328
4329Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4330
4331 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
4332 memoized lookup stuff inside GATHER_STATISTICS.
4333
4334Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4335
4336 * decl.c (start_decl): Complain about array of incomplete type
4337 here.
4338 (grokdeclarator): Not here.
4339
4340 * parse.y (template_parm): Expand full_parm inline so we can set
eb66be0e 4341 the rule's precedence.
5566b478
MS
4342
4343 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
4344 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
4345 * decl2.c (grokbitfield): Don't check for integer constant here.
4346 * class.c (finish_struct_1): Check here.
4347
4348 * decl.c (define_label): Make the min decl go on permanent_obstack.
4349
4350 * pt.c (unify): Don't handle CONST_DECLs.
4351 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
d11ad92e 4352 (tsubst_copy): Likewise.
5566b478
MS
4353
4354 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
eb66be0e 4355 CONST_DECL for a template parm.
5566b478
MS
4356
4357Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
4358
4359 * decl.c (grokdeclarator): Complain about array of incomplete type
4360 here.
4361 (start_decl_1): Not here.
4362
4363 * pt.c (tsubst): Handle pointer-to-function declarators.
4364
4365 * method.c (hack_identifier): If pedantic, diagnose local class
eb66be0e 4366 methods that require a static chain.
5566b478
MS
4367
4368 * decl.c (grok_op_properties): No longer static.
4369 * cp-tree.h: Declare it.
4370 * pt.c (tsubst): Call it for operators.
4371 Use tsubst_copy for TREE_VECs.
4372
4373 * parse.y (template_arg): The expr has precedence like '>'.
4374
4375Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
4376
4377 * pt.c (coerce_template_parms): Don't coerce an expression using
eb66be0e 4378 template parms.
5566b478
MS
4379 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
4380 (tsubst): Don't use build_index_2_type if the max_value uses template
4381 parms.
4382 * method.c (build_overload_int): Emit something arbitrary for an
eb66be0e 4383 expression using template parms.
5566b478
MS
4384
4385 * parse.y (template_close_bracket): New non-terminal to catch use
eb66be0e 4386 of '>>' instead of '> >' in template class names.
5566b478
MS
4387 (template_type): Use it.
4388 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
4389
4390 * tree.def: Add CAST_EXPR.
4391 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
eb66be0e 4392 CONVERT_EXPR for minimal_parse_mode.
d11ad92e
MS
4393 * typeck.c (build_c_cast): Likewise.
4394 * pt.c (tsubst_copy): Likewise.
4395 * decl2.c (build_expr_from_tree): Likewise.
4396 * error.c (dump_expr): Likewise.
5566b478
MS
4397
4398Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4399
4400 * except.c (SetTerminate, SetUnexpected): Put back global vars.
4401 (init_exception_processing): Put back decl/init of
4402 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
4403 fns from libstdc++.
4404
4405 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
4406 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
4407 Delete unused fns.
4408 * cp-tree.h (declare_uninstantiated_type_level,
4409 uninstantiated_type_level_p): Delete prototypes.
4410
4411Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4412
4413 * pt.c (tsubst_expr): Add default return.
4414
4415Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4416
4417 * error.c (fndecl_as_string): Delete unused arg CNAME.
4418 * sig.c (build_signature_table_constructor,
4419 build_signature_method_call): Fix calls.
4420
4421 * class.c (the_null_vtable_entry): Delete var definition.
4422 (init_class_processing): Delete tree the_null_vtable_entry init.
4423 * decl.c (no_print_{functions, builtins}): Declare as static.
4424 (__tp_desc_type_node): #if 0 var definition.
4425 (init_type_desc): #if 0 init of __tp_desc_type_node.
4426 (vb_off_identifier): Move var decl into init_decl_processing.
4427 (current_function_assigns_this): Declare as static.
4428 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
4429 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
4430 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
4431 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
4432 * init.c (BI_header_type, BI_header_size): Declare as static.
4433 * pt.c (template_classes): Delete unused var.
4434 (add_pending_template): Delete decl for non-existent fn.
4435 (lookup_template_class): Delete vars CODE and TAG_CODE.
4436 (instantiate_template): Delete unused var TARGS.
4437 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
4438 Delete decls.
4439 (__tp_desc_type_node): #if 0 var decl.
4440 (fndecl_as_string): Fix prototype.
4441
4442Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4443
4444 * tree.def: Add GOTO_STMT.
4445 * pt.c (tsubst_expr): Support goto and labels.
4446 * decl.c (define_label): Support minimal parsing.
d11ad92e 4447 * parse.y (simple_stmt): Likewise.
5566b478
MS
4448
4449Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4450
4451 * xref.c (GNU_xref_member): Only define/set var I if
4452 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
4453 used.
4454 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
4455 (GNU_xref_end): Fix call.
4456 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
4457 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
4458
4459 * tree.c (build_exception_variant): Delete unused vars I, A, T,
4460 T2, and CNAME.
4461 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
4462 (mapcar): Delete unused var CODE.
4463 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
4464 (break_out_cleanups): Fix call.
4465 (bot_manip): Likewise.
4466 * call.c (build_method_call): Likewise.
4467 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
4468 Likewise.
4469 * typeck.c (unary_complex_lvalue, build_modify_expr,
4470 convert_for_initialization): Likewise.
4471 * typeck2.c (build_functional_cast): Likewise.
4472 * cp-tree.h (build_cplus_new): Fix prototype.
4473
4474 * repo.c (open_repo_file): Delete unused var Q.
4475 (repo_compile_flags, repo_template_declared,
4476 repo_template_defined, repo_class_defined, repo_inline_used,
4477 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
4478 (repo_get_id, repo_vtable_used): Declare as static.
4479 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
4480 prototypes.
4481
4482Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
4483
4484 * parse.y (pending_inlines): Add function_try_block case.
4485
4486 * pt.c (unify): Fix for template const parms.
4487
4488Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4489
4490 * lex.c (extract_interface_info): Delete forward decl.
4491 (default_copy_constructor_body, default_assign_ref_body): Delete
4492 decls for non-existent functions.
4493 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
4494 (init_lex): Delete setting them.
4495 (cons_up_default_function): Delete unused vars FUNC_BUF,
4496 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
4497 #if 0'd synth code.
4498 (toplevel, expression_obstack): Delete unused extern decls.
4499 (tree_node_kind): Delete unused enum.
4500 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
4501 GATHER_STATISTICS.
4502 (tree_node_kind_names): Delete unused extern decl.
4503 (synth_obstack): Delete unused var.
4504 (init_lex): Don't set it.
4505 (init_parse): Add decl before use.
4506 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
4507 (current_unit_{name, language}): Delete unused vars.
4508 (check_newline): Don't bother setting them, just accept the #pragma.
4509 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
4510 (current_unit_{name, language}): Delete decls.
4511
4512 * search.c: Wrap all of the memoized functions, macros, and
4513 variables inside #ifdef GATHER_STATISTICS.
4514 (lookup_field, lookup_fnfields): Likewise.
4515 (init_search_processing): Likewise.
4516 (reinit_search_statistics): Wrap whole function.
4517 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
4518
4519 * decl.c (finish_function): Only call pop_memoized_context if
4520 GATHER_STATISTICS is defined.
4521 (start_function): Likewise for push_memoized_context.
4522 * class.c (pushclass, popclass): Likewise.
4523
4524 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
4525 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
4526
4527 * cvt.c (cp_convert): Delete unused local var FORM.
4528 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
4529 prototypes.
4530
4531Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4532
4533 * pt.c (do_poplevel): Oops; really return what we get from
eb66be0e 4534 poplevel this time.
5566b478
MS
4535
4536Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4537
4538 * cp-tree.h (is_aggr_type): Add prototype.
4539
4540 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
4541 * method.c ({push,pop}_cp_function_context): Delete decls.
4542 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
4543 (SetUnexpected, SetTerminate): Delete unused vars.
4544 (init_exception_processing): Don't set SetUnexpected or
4545 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
4546 (output_exception_table_entry): Delete unused array LABEL.
4547 (expand_internal_throw): Delete unused var PARAMS.
4548 (expand_start_catch_block): Delete unused var CLEANUP.
4549 (emit_exception_table): Delete unused var EH_NODE_DECL.
4550 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
4551 GOTO_UNWIND_AND_THROW. Don't set them.
4552 (end_eh_unwinder): Add top decl.
4553 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
4554 (exception_section, push_rtl_perm, do_function_call,
4555 lang_interim_eh, push_eh_cleanup, eh_outer_context,
4556 expand_end_eh_spec, end_eh_unwinder): Declare as static.
4557 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
4558 throw_used): Likewise.
4559 * cp-tree.h (expand_end_eh_spec): Delete prototype.
4560
4561 * search.c (dfs_mark, dfs_mark_vtable_path,
4562 dfs_unmark_vtable_path, dfs_mark_new_vtable,
4563 dfs_unmark_new_vtable, dfs_clear_search_slot,
4564 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
4565 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
4566 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
4567 functions.
4568 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
4569 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
4570 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
4571 Only define #ifdef GATHER_STATISTICS.
4572 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
4573 is defined.
4574 (vbase_decl): Delete var definition.
4575 (init_search): Delete old decl.
4576 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
4577 never actually used.
4578 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
4579 (get_base_distance_recursive): Delete unused fourth arg
4580 BASETYPE_PATH. Fix call .
4581 (get_base_distance): Fix call.
4582 (push_class_decls): Delete unused var ID.
4583 (make_memoized_table_entry): Declare as static.
4584 (breadth_first_search): Declare as static.
4585 (tree_has_any_destructor_p): Declare as static.
4586 (pop_class_decls): Delete unused arg pop_class_decls.
4587 * class.c (popclass): Fix call to pop_class_decls.
4588 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
4589 tree_has_any_destructor_p): Delete prototypes.
4590
4591 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
4592 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
4593 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
4594 (build_user_desc): Delete unused var T.
4595 (build_class_desc): Delete unused vars T and OFF.
4596 (build_t_desc): Delete unused var NAME_STRING.
4597 (build_headof): Make static.
4598 (get_bad_cast_node): Likewise.
4599 (get_def_to_follow): Likewise.
4600 * cp-tree.h (init_type_desc): Add prototype.
4601 (build_headof): Remove prototype.
4602
4603Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4604
4605 * pt.c (tsubst): Only look for matching decls at file scope for
eb66be0e 4606 non-member functions.
5566b478
MS
4607
4608 * call.c (build_scoped_method_call): Handle scoped destructor
eb66be0e 4609 calls in templates.
5566b478
MS
4610
4611 * decl.c (*_top_level): Also save previous_class_values.
4612
4613 * pt.c (tsubst_expr): Support do {} while loops.
d11ad92e
MS
4614 * parse.y (simple_stmt): Likewise.
4615 * tree.def: Likewise.
5566b478
MS
4616
4617 * method.c (build_overload_identifier): For a class nested in a
eb66be0e
MS
4618 template class, don't mangle in the template parms from our
4619 context.
5566b478
MS
4620
4621 * lex.c, cp-tree.h: Remove support for template instantiations in
eb66be0e 4622 the pending_inlines code.
5566b478
MS
4623 * pt.c: Remove dead functions and unused arguments.
4624 (uses_template_parms): TYPENAME_TYPEs always use template parms.
4625 * parse.y: Stop passing anything to end_template_decl.
4626 * tree.c (print_lang_statistics): Only print tinst info #ifdef
eb66be0e 4627 GATHER_STATISTICS.
5566b478
MS
4628
4629Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4630
4631 * init.c (expand_recursive_init{,_1}): Delete decls.
4632 (sort_member_init): Delete unused var INIT.
4633 (emit_base_init): Delete unused var X.
4634 (build_offset_ref): Delete unused var CNAME.
4635 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
4636 (emit_base_init): Delete unused local var BASE. Delete extern
4637 decl of IN_CHARGE_IDENTIFIER.
4638 (build_delete): Delete unused local var VIRTUAL_SIZE.
4639
4640 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
4641 (build_delete): Fix call.
4642 * decl2.c (delete_sanity): Likewise.
4643 * cp-tree.h (build_vec_delete): Update prototype.
4644
4645 * typeck.c (common_base_type): Delete unused var TMP.
4646 (build_binary_op): Delete local var ARGS_SAVE.
4647 (build_array_ref): Delete unused var ITYPE.
4648 (c_expand_return): Delete unused var USE_TEMP.
4649
4650 * typeck.c (compexcepttypes): Delete unused arg STRICT.
4651 (comptypes): Fix calls.
4652 * decl.c (duplicate_decls): Likewise.
4653 * cp-tree.h (compexcepttypes): Delete extra arg.
4654
4655 * decl2.c (check_classfn): Delete unused second arg CNAME.
4656 * decl.c (start_decl, grokfndecl): Fix calls.
4657 * init.c (do_friend): Likewise.
4658 * cp-tree.h (check_classfn): Update prototype.
4659
4660 * cp-tree.h (signature_error, import_export_vtable,
4661 append_signature_fields, id_in_current_class, mark_used,
4662 copy_assignment_arg_p): Add decls.
4663 * decl2.c (mark_used): Delete decl.
4664
4665 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
4666
4667 * class.c (get_vtable_entry): Diable unused function.
4668 (doing_hard_virtuals): Delete unused static global var.
4669 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
4670 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
4671 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
4672 (modify_one_vtable): Delete unused var OLD_RTTI.
4673 (finish_struct_anon): Delete unused vars OFFSET and X.
4674 (finish_struct_bits): Delete unused var METHOD_VEC.
4675 (get_basefndecls): Delete unused var PURPOSE. Delete unused
4676 for-scope local variable METHODS.
4677
4678 * call.c (user_harshness): Delete unused/unneeded arg PARM.
4679 (ideal_candidate): Delete unused args BASETYPE and PARMS.
4680 (build_method_call): Delete unused args passed into ideal_candidate.
4681 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
4682 * cp-tree.h (synthesize_method): Add decl.
4683
4684 * decl.c (note_level_for_for): Give void return type.
4685 (pushdecl_nonclass_level): Likewise.
4686 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
4687 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
4688 (suspend_binding_level): Delete unused var LEVEL.
4689 (duplicate_decls): Delete unused var CTYPE.
4690 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
4691 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
4692 PTR_ENDLINK.
4693 (grokdeclarator): Delete unused var C.
4694 (grokdeclarator): Delete unused var SIZE_VARIES.
4695 (grokparms): Delete unused var SAW_VOID.
4696 (start_function): Delete unused var OLDDECL.
4697 (cplus_expand_expr_stmt): Delete unused var
4698 REMOVE_IMPLICIT_IMMEDIATELY.
4699
4700 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
4701
4702 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
4703
4704Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4705
4706 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
d11ad92e 4707 (build_min_nt): Likewise.
5566b478
MS
4708 * pt.c (do_pushlevel): Emit line note.
4709 (do_poplevel): Return what we get from poplevel.
4710 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
4711 * parse.y: Use do_pushlevel and do_poplevel.
4712 * cp-tree.h: Declare do_poplevel.
4713
4714 * cp-tree.h: Declare at_eof.
4715 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
4716 * decl2.c (import_export_decl): Renamed from import_export_inline.
4717 (finish_file): Call it to do interface handling for statics.
4718 * pt.c (tsubst_copy): Call mark_used on variables and functions
eb66be0e 4719 used here.
5566b478
MS
4720
4721 * decl2.c (finish_file): Don't emit statics we can't generate.
4722 * pt.c (instantiate_decl): Don't set interface on instantiations
eb66be0e 4723 we can't generate.
5566b478
MS
4724
4725 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
4726 * tree.c (print_lang_statistics): Print max template depth.
4727 * pt.c (push_tinst_level): Dump entire instantiation context.
4728 (instantiate_class_template): Use it and pop_tinst_level.
d11ad92e 4729 (instantiate_decl): Likewise.
5566b478
MS
4730
4731 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
eb66be0e 4732 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
5566b478
MS
4733
4734Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4735
4736 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
eb66be0e
MS
4737 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
4738 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
4739 the new template implementation.
5566b478
MS
4740
4741Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4742
4743 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
4744
cffa8729
MS
4745Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
4746
4747 * decl.c (cp_finish_decl): Delay emitting the debug information for
4748 a typedef that has been installed as the canonical typedef, if the
4749 type has not yet been defined.
4750
4751Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4752
4753 * decl2.c (grokfield): Still call pop_nested_class for access decls.
4754
4755Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4756
4757 * decl.c (lookup_label): Call label_rtx.
4758
4759 * decl.c (make_binding_level): New function.
4760 (pushlevel, pushlevel_class): Call it instead of explicit
4761 duplicate calls to xmalloc.
4762
4763 * decl.c (init_decl_processing): Delete useless build_pointer_type
4764 call.
4765
4766 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
4767 (sizet_ftype_string): Delete variable.
4768 (init_decl_processing): Add built-in functions fabsf, fabsl,
4769 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
4770 variable strlen_ftype, used for strlen.
4771
4772Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
4773
4774 * decl.c (push_to_top_level): Start from current_binding_level
eb66be0e
MS
4775 again for now; the stl hacks depend on g++ being broken in this
4776 way, and it'll be fixed in the template rewrite.
cffa8729
MS
4777
4778 * tree.def: Add USING_DECL.
4779 * decl2.c (do_class_using_decl): Implement.
4780 (grokfield): Pass access decls off to do_class_using_decl instead of
4781 grokdeclarator.
4782 * error.c (dump_decl): Handle USING_DECLs.
4783 * decl.c (grokdeclarator): Remove code for handling access decls.
4784 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
eb66be0e 4785 as access decls for now.
cffa8729
MS
4786 (finish_struct): Don't check USING_DECLs for other uses of the name.
4787
4788 * search.c (get_matching_virtual): Use cp_error_at.
4789
4790Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4791
4792 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
4793 match c-typeck.c.
4794 (self_promoting_args_p): Move the check that TYPE is non-nil
4795 before trying to look at its main variant.
4796 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
4797
4798 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
4799 Delete macros.
4800 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
4801 (do_friend): Delete call to xref_friend.
4802 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
4803
4804 * typeck.c (convert_sequence): #if 0 unused function.
4805
4806 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
4807 be in decl_in_memory_p.
4808 (decl_in_memory_p): Delete decl.
4809 * expr.c (decl_in_memory_p): Delete fn.
4810 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
4811
4812 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
4813
4814Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
4815
4816 * class.c (finish_struct_1): Check for a pure-specifier on a
eb66be0e 4817 non-virtual function here.
cffa8729
MS
4818
4819 * decl2.c (grok_function_init): Don't check whether the function
eb66be0e 4820 is virtual here.
cffa8729
MS
4821 (grokfield): Don't call check_for_override here.
4822
4823 * decl.c (push_to_top_level): Start from inner_binding_level,
eb66be0e 4824 check class_shadowed in class levels.
cffa8729
MS
4825
4826Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
4827
4828 * decl.c (resume_level): Ignore things that don't have names, instead
4829 of core dumping.
4830
4831Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4832
4833 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
4834
4835Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
4836
4837 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
eb66be0e 4838 synthesized dtor.
cffa8729
MS
4839
4840 * parse.y (complete_type_name): Bind global_scope earlier.
d11ad92e 4841 (complex_type_name): Likewise.
cffa8729
MS
4842 (qualified_type_name): Remove.
4843
2ee887f2
MS
4844Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
4845
4846 * decl.c (grokfndecl): Move code that looks for virtuals in base
eb66be0e 4847 classes...
cffa8729 4848 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
4849 (finish_struct_1): Call it.
4850
4851 * cp-tree.h: Declare warn_sign_compare.
4852
4853 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
eb66be0e
MS
4854 rather than extra_warnings to decide whether to warn about
4855 comparison of signed and unsigned.
2ee887f2
MS
4856
4857 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
eb66be0e 4858 implies -Wsign-compare. -Wall doesn't imply -W.
2ee887f2
MS
4859
4860Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
4861
4862 * typeck.c (build_component_ref): Fix to handle anon unions in base
4863 classes as well.
4864
4865Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4866
4867 * class.c (resolves_to_fixed_type_p): Delete code dealing with
4868 a WITH_CLEANUP_EXPR, since we don't generate them any more.
4869 * cvt.c (build_up_reference): Likewise.
4870 * decl.c (grok_reference_init): Likewise.
4871 (cp_finish_decl): Likewise.
4872 * error.c (dump_expr): Likewise.
4873 * tree.c (real_lvalue_p): Likewise.
4874 (lvalue_p): Likewise.
4875 (build_cplus_new): Likewise.
4876 (unsave_expr_now): Likewise.
4877 * typeck.c (unary_complex_lvalue, build_modify_expr,
4878 c_expand_return): Likewise.
4879
4880Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4881
4882 Make the C++ front-end pay attention to attributes for structures.
4883 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
4884 finish_struct_1.
eb66be0e 4885 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
2ee887f2
MS
4886 Take out old round_up_size use and setting the DECL_ALIGN possibly
4887 using it. Take out setting of TYPE_ALIGN to round_up_size, which
4888 can override what the attribute set.
4889 * cp-tree.h (finish_struct): Update prototype.
4890 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
4891 attributes to finish_struct.
4892 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
4893 value down into finish_struct.
4894 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
4895
4896Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
4897
4898 * decl.c (poplevel): Re-word dead for local handling.
4899 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
4900 (cp_finish_decl): If is_for_scope, check for duplicates so
4901 we can disable is_for_scope. Otherwise, preserve_temp_slots.
4902
4903 * lex.c (do_identifier): Use global binding in preference of
4904 dead for local variable.
4905
4906Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
4907
4908 * init.c (initializing_context): Handle anon union changes, the
4909 context where fields of anon unions can be initialized now has to be
4910 found by walking up the TYPE_CONTEXT chain.
4911
4912Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
4913
4914 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
4915 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
4916 (obscure_complex_init): If bss is supported, always set
4917 DECL_INITIAL to error_mark_node.
4918
4919Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4920
4921 * init.c (is_friend): Make sure there's a context before we see if
4922 it's an aggr type.
4923
4924Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
4925
4926 * init.c (is_friend): Classes are not friendly with nested classes.
4927
4928Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
4929
4930 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
4931 and record its result.
4932
9e9ff709
MS
4933Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
4934
4935 * class.c (finish_struct_anon): Switch around code to not move anon
4936 union elements around, nor mess up their contexts, nor offsets,
4937 instead we now build up the right number of COMPONENT_REFs for all
4938 the anon unions that may be present at build_component_ref time.
4939 * typeck.c (lookup_anon_field): New routine to handle field lookup
4940 on fields without names. We find them, based upon their unique type
4941 instead.
4942 * typeck.c (build_component_ref): Allow FIELD_DECL components.
4943 Handle finding components in anonymous unions, and ensure that a
4944 COMPONENT_REF is built for each level as necessary.
4945
4946Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
4947
4948 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
4949 code that ensures that copy ctors are used if appropriate.
4950
4951Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4952
4953 * init.c (build_vec_delete): Only give an error if base isn't an
4954 error_mark_node.
4955
4956Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
4957
4958 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
4959 (yylex): If we see `new', keep slurping.
4960
4961Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
4962
4963 * class.c (finish_struct_1): Move code for handling anon unions...
4964 (finish_struct_anon): to here. Fixup so that we do the offset
4965 calculations right, and so that the fields are physically moved to
4966 the containers's chain.
4967
4968Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4969
4970 * decl.c (grokdeclarator): Avoid trying to get an operand off an
4971 identifier node.
4972
4973Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
4974
4975 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
4976 POINTER_SIZE to agree with expr.c.
4977
4978Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
4979
4980 * search.c (lookup_field): Don't report ambiguities if protect is 0,
4981 instead return NULL_TREE.
4982
4983Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
4984
4985 * class.c (finish_struct_1): Call warn_hidden if we want warnings
4986 about overloaded virtual functions.
4987 (warn_hidden): New routine to warn of virtual functions that are
4988 hidden by other virtual functions, that are not overridden.
4989 (get_basefndecls): New routine, used by warn_hidden.
4990 (mark_overriders): New routine, used by warn_hidden.
4991 * search.c (get_matching_virtual): Remove old warning that just
4992 isn't very useful.
4993
4994Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4995
4996 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
4997
4998 * typeck.c (null_ptr_cst_p): Delete unused fn.
4999 (build_function_call_maybe): Delete unused fn.
5000
5001 * expr.c (extract_init): #if 0 the code after unconditional return 0
5002 for now.
5003
5004 Delete old cadillac code.
5005 * edsel.c: Remove file.
5006 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
5007 * Makefile.in (CXX_OBJS): Delete edsel.o.
5008 (edsel.o): Delete rule.
5009 * cp-tree.h (flag_cadillac): Delete var decl.
5010 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
5011 * decl2.c (flag_cadillac): Delete var definition.
5012 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
5013 (grokfield): Delete code depending on flag_cadillac.
5014 (finish_anon_union): Likewise.
5015 * class.c (finish_struct_1): Likewise.
5016 (pushclass): Likewise.
5017 (popclass): Likewise.
5018 (push_lang_context): Likewise.
5019 (pop_lang_context): Likewise.
5020 * decl.c (init_decl_processing): Likewise.
5021 (start_decl): Likewise.
5022 (cp_finish_decl): Likewise.
5023 (xref_tag): Likewise.
5024 (finish_enum): Likewise.
5025 (start_function): Likewise.
5026 (finish_function): Likewise.
5027 (finish_stmt): Likewise.
5028 * lex.c (lang_init): Likewise.
5029 (check_newline): Likewise.
5030
5031 * lex.c (do_pending_inlines): Delete synthesized method kludge.
5032
5033 Delete defunct, ancient garbage collection implementation.
5034 * rtti.c: New file with the RTTI stuff from gc.c.
5035 * gc.c: Removed file (moved the remaining stuff into rtti.c).
5036 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
5037 (rtti.o): New rule, replacing gc.o.
5038 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
5039 * cp-tree.h: Delete gc-related fn decls.
5040 (DECL_GC_OFFSET): Delete macro.
5041 (flag_gc): Delete extern decl.
5042 * decl.c (current_function_obstack_index): Delete var decl.
5043 (current_function_obstack_usage): Delete var decl.
5044 (start_function): Delete clearing of current_function_obstack_index
5045 and current_function_obstack_usage.
5046 (init_decl_processing): Delete code relying on -fgc.
5047 Delete call to init_gc_processing.
5048 (cp_finish_decl): Delete calls to build_static_gc_entry and
5049 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
5050 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
5051 and to expand_expr of a __gc_main call.
5052 (maybe_gc_cleanup): Delete var decl.
5053 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
5054 * decl2.c (flag_gc): Delete var decl.
5055 (lang_f_options): Delete offering of -fgc.
5056 (lang_decode_option): Delete -fgc and -fno-gc handling.
5057 (get_temp_regvar): Delete gc code.
5058 * init.c (build_new): Delete gc code.
5059 * lex.c (init_lex): Delete checking of flag_gc.
5060
5061 * typeck.c (convert_arguments): Delete gc code.
5062 (build_component_addr): Delete -fgc warning.
5063 (build_modify_expr): Delete gc code.
5064
5065 * decl2.c (build_push_scope): Delete fn.
5066 * cp-tree.h (build_push_scope): Delete decl.
5067
5068 * search.c (clear_search_slots): Delete fn.
5069 * cp-tree.h (clear_search_slots): Delete decl.
5070
5071 * search.c (tree_needs_constructor_p): Delete fn.
5072 * cp-tree.h (tree_needs_constructor_p): Delete decl.
5073
5074 * tree.c (id_cmp): Delete fn.
5075
5076 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
5077 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
5078
5079 * tree.c (decl_value_member): Delete fn.
5080 * cp-tree.h (decl_value_member): Delete decl.
5081
5082 * tree.c (list_hash_lookup_or_cons): Delete fn.
5083 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
5084
5085 * method.c (cplus_exception_name): Delete fn.
5086 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
5087
5088 * spew.c (shift_tokens): Delete fn.
5089
5090Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5091
5092 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
5093 to cp_finish_decl.
d11ad92e 5094 * parse.y: Likewise.
9e9ff709
MS
5095
5096Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5097
5098 * tree.c (build_cplus_staticfn_type): Delete function definition;
5099 never used.
5100 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
5101
5102 * tree.c (virtual_member): Delete function definition; never used.
5103 * cp-tree.h (virtual_member): Delete decl.
5104
45537677
MS
5105Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
5106
5107 * typeck.c (build_component_ref): Handle getting vbase pointers
5108 out of complex multiple inheritance better.
5109
5110Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
5111
5112 * typeck.c (build_object_ref): Make sure we use the real type, not
5113 any reference type.
5114
5115Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
5116
5117 * tree.c (build_exception_variant): Don't create new types if we
5118 don't have to, also build new types on the right obstack.
5119
5120Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5121
5122 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
5123 (push_to_top_level): Call it for b->type_shadowed on class binding
5124 levels.
45537677
MS
5125
5126Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
5127
5128 * search.c (expand_upcast_fixups): Fix so that offsets stored in
5129 vbase_offsets are always right. Fixes a problem where virtual base
5130 upcasting and downcasting could be wrong during conversions on this
5131 during virtual function dispatch at ctor/dtor time when dynamic
5132 vtable fixups for deltas are needed. This only sounds easier than
5133 it is. :-)
5134 (fixup_virtual_upcast_offsets): Change to reflect new calling
5135 convention for expand_upcast_fixups.
5136
5137Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5138
5139 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
5140 check that it's usable as the bitfield width.
5141
5142Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5143
5144 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
5145 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
5146 only ever used for functions in it.
5147
5148Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5149
5150 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
d11ad92e 5151 (nested_type): Likewise.
45537677
MS
5152 (nested_name_specifier): Use lastiddecl.
5153
5154 * decl.c (grokdeclarator): Adjust accordingly.
d11ad92e
MS
5155 * init.c (expand_member_init): Likewise.
5156 * parse.y (base_class): Likewise.
5157 * typeck2.c (build_functional_cast): Likewise.
45537677
MS
5158
5159 * typeck2.c (build_functional_cast): Fill in name after we've
5160 checked for non-aggr type.
5161
be99da77
MS
5162Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
5163
5164 * decl2.c (warn_pointer_arith): Default to on.
5165
5166Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5167
5168 * lex.c (is_rid): New function.
5169 * decl.c (grokdeclarator): Diagnose reserved words used as
5170 declarator-ids.
5171
5172Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
5173
5174 * tree.c (get_decl_list): Don't lose cv-quals.
5175
5176 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
5177 typespecs used as declarator-ids.
5178
5179Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
5180
5181 * decl.c (poplevel): When poping a level, don't give a warning for
5182 any subblocks that already exist.
5183
5184Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5185
5186 * typeck.c (build_object_ref): Finish what I started.
5187
5188 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
5189
5190 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
5191
5192 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 5193 scope.
be99da77
MS
5194
5195Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
5196
5197 * decl.c (xref_tag): Handle passing a type in directly.
5198
5199 * parse.y (qualified_type_name): Pull out the type.
d11ad92e 5200 (nested_type): Likewise.
be99da77
MS
5201 Take types directly instead of as identifiers.
5202 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709 5203 as identifiers.
d11ad92e
MS
5204 * decl.c (xref_basetypes): Likewise.
5205 * init.c (expand_member_init): Likewise.
5206 (build_member_call): Likewise.
5207 (build_offset_ref): Likewise.
5208 * typeck2.c (build_scoped_ref): Likewise, remove bogus code.
5209 * method.c (do_build_assign_ref): Likewise.
be99da77
MS
5210 * decl.c (grokdeclarator): Handle a type appearing as the
5211 declarator-id for constructors.
5212 * method.c (do_build_copy_constructor): current_base_init_list now
5213 uses the types directly, not their names.
d11ad92e
MS
5214 * init.c (sort_base_init): Likewise.
5215 (expand_member_init): Likewise.
be99da77 5216 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77 5217
d11ad92e 5218Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com>
be99da77
MS
5219
5220 * tree.c (layout_basetypes): Call build_lang_field_decl instead
5221 of build_lang_decl if first arg is a FIELD_DECL.
be99da77
MS
5222
5223Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5224
5225 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
5226 non-empty.
5227 * except.c (expand_start_catch_block): Set TREE_USED to avoid
5228 warnings about the catch handler.
5229
5230Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
5231
5232 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 5233 expand_target_expr.
be99da77
MS
5234
5235Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5236
5237 Fix access control to use trees rather than integers.
5238 * class.c (access_{default, public, protected, private,
5239 default_virtual, public_virtual, private_virtual}_node): Add
5240 definitions.
5241 (init_class_processing): Do creation of those nodes.
5242 * cp-tree.h (access_type): Delete enum decl.
5243 (access_{default, public, protected, private, default_virtual,
5244 public_virtual, private_virtual}_node): Add decls.
5245 (compute_access): Change return type.
5246 * search.c (compute_access): Have tree return type, instead of enum.
5247 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
5248 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
5249 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
5250 * parse.y (VISSPEC): Make ttype rather than itype.
5251 (base_class_access_list): Likewise.
5252 * *.[cy]: Change all refs of `access_public' to `access_public_node',
5253 etc.
5254 * call.c (build_method_call): Make ACCESS be a tree.
5255 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
5256 * cvt.c (convert_to_aggr): Likewise.
5257 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
5258 Likewise.
5259 * method.c (hack_identifier): Likewise.
5260 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
5261
5262Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
5263
5264 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
5265 frontend, and make it more consistent with respect to
5266 warn_pointer_arith.
5267
5268Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
5269
5270 * decl.c (pushdecl): Check for duplicate parameter names.
5271
5272Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
5273
5274 * decl.c (expand_static_init): Call assemble_external for atexit.
5275
5276Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
5277
5278 * except.c (do_unwind): Remove some generated dead code.
5279 (eh_outer_context): New routine, factor out some common code from
5280 expand_builtin_throw and end_eh_unwinder. Add code to do return
5281 address masking for the PA.
5282 (expand_builtin_throw): Use eh_outer_context instead of open coding
5283 it here.
d11ad92e 5284 (end_eh_unwinder): Likewise.
be99da77
MS
5285
5286Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
5287
5288 * except.c (expand_throw): Call assemble_external for __empty, if we
5289 use it.
5290
21451173
MS
5291Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
5292
5293 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
5294 NORMAL_RETURN_ADDR_OFFSET.
d11ad92e 5295 (end_eh_unwinder): Likewise.
21451173
MS
5296
5297Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
5298
5299 * gc.c (build_dynamic_cast): Make sure we don't cast away const
5300 when dealing with references, and make sure we handle dynamic
5301 casting to a cv qualified reference.
5302
5303Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
5304
5305 * except.c (struct eh_context): New structure top hold eh context
5306 information.
5307 (push_eh_context): New routine.
d11ad92e 5308 (pop_eh_context): Likewise.
21451173 5309 * decl.c (push_cp_function_context): Use them.
d11ad92e 5310 (pop_cp_function_context): Likewise.
21451173
MS
5311
5312Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
5313
5314 * decl2.c (finish_file): Also prune uninteresting functions in the
5315 inline emission loop.
5316
d11ad92e 5317Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com>
21451173
MS
5318
5319 * sig.c (build_signature_table_constructor): Mark functions
5320 in the signature as referenced.
5321
5322Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
5323
5324 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
5325 the inline emission stuff.
5326
72b7eeff
MS
5327Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
5328
5329 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 5330 weak symbols.
72b7eeff
MS
5331 * lang-options.h: Add -f{no-,}weak.
5332 * decl.c (init_decl_processing): If the target does not support weak
5333 symbols, don't use them.
5334 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
5335
5336Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
5337
5338 * init.c (expand_member_init): warning for base init after members.
5339
72b7eeff
MS
5340Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
5341
5342 * cvt.c (build_expr_type_conversion): Don't convert to a reference
5343 type.
5344
5345Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
5346
5347 * method.c (report_type_mismatch): Improve wording for volatile
5348 mismatches.
5349
5350Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
5351
5352 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 5353 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
5354 copy constructors well. The compiler would do bitwise copying,
5355 instead of ctor calling in some cases.
5356
5357Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
5358
5359 * g++.c (my_strerror): Return "cannot access" if errno is 0.
5360 (pfatal_with_name, perror_exec): Don't assume that
5361 the returned value from my_strerror contains no '%'s.
5362 (concat): Remove.
5363 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
5364
5365Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
5366
5367 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
5368 TYPE_METHODS/TREE_CHAIN mean what they used to.
5369 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
5370 instead of TYPE_METHODS.
5371 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
d11ad92e 5372 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
72b7eeff
MS
5373 * cp-tree.h (CLASSTYPE_METHODS): Lose.
5374 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
5375 TYPE_METHODS.
5376 (struct lang_decl): Lose next_method field.
5377 (DECL_NEXT_METHOD): Lose.
5378 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
5379 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
5380 anymore.
5381 (finish_struct_methods): Don't mess with the TREE_CHAINs in
5382 fn_fields.
5383
5384 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
5385 vector.
5386
5387 * call.c (build_method_call): Synthesize here even when not inlining.
d11ad92e 5388 * typeck.c (build_function_call_real): Likewise.
72b7eeff
MS
5389
5390Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
5391
5392 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
5393 == DBX_DEBUG, call dbxout_start_new_source_file and
5394 dbxout_resume_previous_source_file when appropriate.
5395
5396Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
5397
5398 * except.c (start_anon_func): Push to the top level.
5399 (end_anon_func): Pop from the top level.
5400
5401Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
5402
5403 * cp-tree.h (build_cleanup): New routine to build cleanups.
5404 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
5405 call at ctor time and use atexit to run it later.
5406 * decl2.c (build_cleanup): New routine, taken from finish_file.
5407 (finish_file): Use build_cleanup instead, and don't put function
5408 local statics in global dtor list.
5409
5410Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
5411
5412 * except.c (expand_throw): Ensure that we have cleanups, if we try
5413 and expand cleanups.
5414
5415Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
5416
5417 * except.c (expand_throw): Add logic to manage dynamic cleanups for
5418 the EH object.
5419 (expand_end_catch_block): Use the magic of expand_goto, instead of
5420 emit_jump so that we get the cleanup for any catch clause parameter
5421 and the cleanup for the exception object. Update to reflect label
5422 changes.
5423 (push_eh_cleanup): New routine to register a cleanup for an
5424 exception object.
9e9ff709 5425 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
5426 nothing.
5427 (init_exception_processing): Setup empty_fndecl. Setup
5428 saved_cleanup.
5429 (expand_start_catch_block): Update to reflect label changes. Call
5430 push_eh_object to register the cleanup for the EH object.
5431 (start_anon_func): New routine to start building lambda expressions
5432 from trees.
5433 (end_anon_func): New routine to end them.
5434 (struct labelNode): Change so that we can use tree labels, or rtx
5435 labels.
5436 (saved_cleanup): Object to check for dynamic cleanups for the
5437 exception handling object.
5438 (push_label_entry): Change so that we can use tree labels, or rtx
5439 labels.
d11ad92e
MS
5440 (pop_label_entry): Likewise.
5441 (top_label_entry): Likewise.
72b7eeff
MS
5442 (expand_start_all_catch): Use tree label instead of rtx label, so
5443 that we can get the magic of expand_goto.
5444 (expand_end_all_catch): Update to reflect label changes.
5445
5446 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
5447 use UNSAVE_EXPRs.
5448 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
5449 building_cleanup logic, as we now use UNSAVE_EXPRs.
5450 * cp-tree.h (unsave_expr): Declare it.
5451 * decl.c (building_cleanup): Remove.
5452 (maybe_build_cleanup): Remove building_cleanup logic, and use
5453 UNSAVE_EXPR instead.
5454
5455Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
5456
5457 * gc.c (build_t_desc): Update error message to say <typeinfo>.
5458
5459Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5460
5461 * decl.c (pushdecl): Only warn about shadowing a local variable if
5462 warn_shadow is true.
5463
5464Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
5465
5466 * typeck.c (build_binary_op_nodefault): Added warning about
5467 comparisons between different enum types with -Wall, unless
5468 -fenum-int-equiv set.
5469
5470Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
5471
5472 * class.c (finish_struct_1): Skip down to the inner type in
5473 multidimensional arrays. Ensures ctors will be made for types that
5474 need constructing.
5475
5476Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
5477
5478 * decl.c (last_dtor_insn): New to track the last compiler generated
5479 insn in a dtor.
5480 (store_parm_decls): Set it.
5481 (finish_function): Use it to see if the dtor is empty. Avoid doing
5482 vtable setup all the time, if we can.
5483 (struct cp_function): Add last_dtor_insn.
5484 (push_cp_function_context): Save it.
5485 (pop_cp_function_context): Restore it.
5486
5487Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
5488
5489 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 5490 warnings.
72b7eeff
MS
5491
5492Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
5493
5494 * typeck.c (expand_target_expr): Make sure targets get put into the
5495 current temp_slot_level, so that the free_temp_slots call will reuse
5496 them.
5497
5498Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
5499
5500 * class.c (finish_struct_1): Delay delta fixups for virtual bases
5501 until after we have done the hard virtuals, to avoid a bogus `every
5502 virtual function must have a unique final overrider' for virtual
5503 functions that are only overridden by hard virtuals.
5504
5505Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
5506
5507 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 5508 template for a member function.
72b7eeff
MS
5509
5510Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
5511
5512 * g++.c (main): Add handling of -nodefaultlibs.
5513
5514Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
5515
5516 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
5517 distinguish between direct bindings of reference variables, and
5518 indirect bindings of reference variables.
5519 * cvt.c (build_up_reference): Use it.
5520 * typeck.c (convert_arguments): Use it to indicate this is an
5521 indirect binding.
5522 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
5523 as they are unused.
d11ad92e
MS
5524 (expand_static_init): Likewise.
5525 (cplus_expand_expr_stmt): Likewise.
5526 * decl2.c (finish_file): Likewise.
5527 * init.c (perform_member_init): Likewise.
5528 (emit_base_init): Likewise.
5529 (expand_aggr_vbase_init_1): Likewise.
72b7eeff 5530
72b7eeff
MS
5531Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5532
5533 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
5534 get a DECL_LANG_SPECIFIC node.
5535 * cp-tree.h (lang_decl_flags): Add new member `level'.
5536 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
5537 decl_flags level member.
5538
5539Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5540
5541 * call.c (build_method_call): Make sure instance has a
5542 TYPE_LANG_SPECIFIC node before we dive into it.
5543
d11ad92e 5544Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com>
72b7eeff
MS
5545
5546 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
5547
5548Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
5549
5550 * decl.c (duplicate_decls): When smashing decls, smash staticness in
5551 the usual way.
5552
5553Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
5554
5555 * decl.c (poplevel): Handle the merging of subblocks of cleanups
5556 when finishing blocks that have already been created (usually due to
5557 the fixup goto code). Fixes bad debugging information.
5558
5559Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
5560
5561 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
5562 that's not a list of overloaded functions.
5563
5564Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5565
5566 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
5567 before trying to use DECL_ABSTRACT_VIRTUAL_P.
5568
5569Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
5570
5571 * decl2.c (mark_used): New function for hooking into setting of
5572 TREE_USED on decls.
5573 * call.c (build_method_call): Use it.
d11ad92e
MS
5574 * class.c (instantiate_type): Likewise.
5575 * init.c (build_offset_ref): Likewise. Don't call assemble_external
72b7eeff 5576 for all like-named functions.
d11ad92e 5577 * method.c (hack_identifier): Likewise.
72b7eeff
MS
5578 (emit_thunk): Don't call assemble_external.
5579 (make_thunk): Create thunk as a FUNCTION_DECL so that it
5580 gets the right mode and ENCODE_SECTION_INFO works.
5581
5582 * parse.y: Use mark_used. Pass operator names to do_identifier.
5583 * lex.c (do_identifier): Handle operator names.
5584
5585 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
5586
72b7eeff
MS
5587Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5588
5589 * errfn.c: Include stdio.h.
5590 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
5591
5592Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
5593
5594 * typeck2.c (digest_init): Always convert initializers to the
5595 right type.
5596
5597Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
5598
5599 * init.c (member_init_ok_or_else): Don't allow member initializers
5600 for indirect members, as it is invalid.
5601
5602Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5603
5604 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
5605
5606Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
5607
5608 * parse.y (for.init.statement): Catch compound statements inside for
5609 initializations, if we're being pedantic.
5610
5611Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
5612
5613 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
5614 looking for.
5615
5616Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
5617
5618 * error.c (dump_expr): Don't core dump when a boolean expression is
5619 used as a default argument.
5620
5621Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
5622
5623 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 5624 RETURN_IN_MEMORY.
72b7eeff
MS
5625
5626Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
5627
5628 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
5629 BLKmode type that would otherwise be returned in registers.
5630
5631Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5632
5633 * g++.c (WITHLIBC): New macro.
5634 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
5635 saw_libc and pass it at the end if it was set.
5636
5637Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5638
5639 * parse.y (fn.def1): Call split_specs_attrs in
5640 declmods notype_declarator case.
This page took 0.815524 seconds and 5 git commands to generate.