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