]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
haifa-sched.c (ISSUE_RATE): Renamed from MACHINE_issue_rate.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
8dff1027
MS
1Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
2
3 * parse.y: Break out eat_saved_input, handle errors.
4
5Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
6
7 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
8
9Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
10
11 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
12 existence of cc1plus check whether $(LANGUAGES) contains C++.
13
14Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
15
16 * method.c (do_build_copy_constructor): When copying an anonymous
17 union member loop around to handle nested anonymous unions. Use
18 the offset of the member relative to the outer structure, not the
19 union.
20
86e6f22f
JM
21Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
22
23 * call.c (resolve_args): New fn.
24 (build_new_function_call): Use it.
25 (build_object_call): Likewise.
26 (build_new_method_call): Likewise.
27
28Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
29
30 * call.c (build_over_call): tsubst all default parms from templates.
31
42976354
BK
32Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
33
34 * decl.c (struct cp_function): Add static_labelno.
35 (push_cp_function_context): Save it.
36 (pop_cp_function_context): Restore it.
37
38Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com>
39
40 * typeck.c (build_component_ref_1): Convert from reference.
41
42Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
43
44 * parse.y (current_declspecs, prefix_attributes): Initialize to
45 NULL_TREE.
46
47 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
48 before we try to force it to be a TREE_LIST.
49 (decl): Make sure $1.t is non-nil.
50
51Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com>
52
53 * pt.c (uses_template_parms): Handle template first-parse codes.
54
55 * decl.c (cp_finish_decl): Only warn about user-defined statics.
56
57Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com>
58
59 * pt.c (unify): Handle BOOLEAN_TYPE.
60
61 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
62 * pt.c (tsubst): Don't set it.
63 * call.c (build_over_call): Use uses_template_parms.
64
65Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com>
66
67 * method.c (build_overload_nested_name): Use static_labelno
68 instead of var_labelno.
69 (build_qualified_name): New fn.
70 (build_overload_name): Split out from here.
71 (build_static_name): Use build_qualified_name.
72 * decl.c (cp_finish_decl): Statics in extern inline functions
73 have comdat linkage.
74 (start_function): Initialize static_labelno.
75
76Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
77
78 * class.c (finish_struct_methods): add check of warn_ctor_dtor_privacy
79 before "all member functions in class [] are private"
80
81Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
82
83 * lex.c (do_scoped_id): convert_from_reference.
84 * init.c (build_offset_ref): Likewise.
85
86Wed Jul 16 15:57:42 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
87
88 * parse.y (empty_parms): Only use VOID_LIST_NODE for the PARMS if
89 we're in a C++ struct/class, not if we're doing `extern "C"'.
90
91Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
92
93 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
94
95Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com>
96
97 * typeck.c (get_member_function_from_ptrfunc): Promote index
98 before saving it.
99
100Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com>
101
102 * tree.c (layout_basetypes): Move non-virtual destructor warning.
103 * decl.c (xref_basetypes): Remove non-virtual destructor warning.
104
105Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com>
106
107 * decl.c (grokdeclarator): Call add_defarg_fn for the function
108 type, too.
109 * lex.c (add_defarg_fn): Adjust.
110 (do_pending_defargs): Adjust. Don't skip the first parm.
111
112Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com>
113
114 * decl.c (build_enumerator): Global enumerators are also readonly.
115
116 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
117 (build_dynamic_cast): Call it and convert_from_reference.
118
119 * lex.c (add_defarg_fn): New fn.
120 (snarf_defarg): Don't add to defarg_types.
121 (do_pending_defargs): Lose defarg_types. All fns we process now
122 have defargs.
123 * decl.c (grokfndecl): Call add_defarg_fn.
124
125 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
126 * cp-tree.def: Add DEFAULT_ARG.
127 * spew.c (yylex): Call snarf_defarg as appropriate.
128 * parse.y: New tokens DEFARG and DEFARG_MARKER.
129 (defarg_again, pending_defargs, defarg, defarg1): New rules.
130 (structsp): Use pending_defargs.
131 (parms, full_parm): Use defarg.
132 * lex.c (init_lex): Initialize inline_text_firstobj.
133 (do_pending_inlines): Never pass the obstack to feed_input.
134 (process_next_inline): Call end_input instead of restore_pending_input.
135 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
136 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
137 * input.c (end_input): New fn.
138 (sub_getch): At the end of some fed input, just keep returning EOF
139 until someone calls end_input.
140 Remove 'obstack' field from struct input_source.
141 * decl.c (grokparms): Handle DEFAULT_ARG.
142 (replace_defarg): New fn.
143 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
144
145Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com>
146
147 * call.c (implicit_conversion): If nothing else works, try binding
148 an rvalue to a reference.
149
150Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com>
151
152 * decl.c (init_decl_processing): fix Jun 30 patch -- move
153 ifndef for Cygwin32 to include SIGSEGV.
154
7834ab39
MS
155Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com>
156
157 * class.c (finish_struct_1): Only complain about pointers without
158 copy stuff if there are any constructors.
159
160 * rtti.c (build_dynamic_cast): Call complete_type on the types.
161
162 * decl.c (grokfndecl): If the function we chose doesn't actually
163 match, die.
164
165 * decl2.c (grokclassfn): Don't specify 'const int' for the
166 artificial destructor parm.
167
168 * pt.c (type_unification): If we are called recursively, nothing
169 decays.
170
171Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com>
172
42976354
BK
173 * decl.c (init_decl_processing): Stop trying to catch signals
174 other than SIGABRT since the Cygwin32 library doesn't support
175 them correctly yet. This fixes a situation in which g++ causes
176 a hang on SIGSEGVs and other such signals in our Win32-hosted
177 tools.
7834ab39
MS
178
179Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com>
180
181 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
182
183Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com>
184
185 * typeck2.c (store_init_value): Always return the value if our
186 type needs constructing.
187
188 * method.c (hack_identifier): Convert class statics from
189 reference, too.
190
191Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com>
192
193 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
194
b88c08b6
MS
195Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com>
196
197 * typeck.c (c_expand_return): Make sure we clean up temporaries at
198 the end of return x;
199
200Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
201
202 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
203
6633d636
MS
204Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com>
205
206 * except.c (expand_builtin_throw): Add support
207 -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
208
209Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com>
210
211 * repo.c (extract_string): Null-terminate.
212
213 * cp-tree.h (TI_SPEC_INFO): New macro.
214 (CLASSTYPE_TI_SPEC_INFO): New macro.
215 * pt.c (push_template_decl): Correctly determine # of template parms
216 for partial specs.
217
218 * call.c (compare_ics): Really fix 'this' conversions.
219
220 * pt.c (do_decl_instantiation): Don't crash on explicit inst of
221 non-template fn.
222
223 * pt.c (push_template_decl): Complain about mismatch in # of
224 template parms between a class template and a member template.
225
226Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com>
227
228 * method.c (synthesize_method): You can't call
229 function_cannot_inline_p after finish_function.
230 * decl.c (finish_function): Turn on flag_inline_functions and turn
231 off DECL_INLINE before handing a synthesized method to the
232 backend.
233
234Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com>
235
236 * method.c (synthesize_method): Remove July 30 change to never set
237 DECL_INLINE if at_eof.
238
239Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com>
240
241 * xref.c (GNU_xref_member): Ensure that the node has a
242 decl_lang_specific part before checking DECL_FRIEND_P.
243
244Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com>
245
246 * pt.c (instantiate_class_template): Diagnose non-class types used
247 as bases.
248
249Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com>
250
251 * typeck.c (build_conditional_expr): Use convert_for_initialization
252 instead of convert_and_check.
253
254Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
255
256 * parse.y (typespec): Don't pedwarn for typeof.
257
258Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com>
259
260 * repo.c (finish_repo): Only check changes if we would write a
261 repo file.
262
263 * call.c (compare_ics): Fix handling of 'this' conversions.
264
265 * pt.c (do_decl_instantiation): Support static data too. Rename
266 from do_function_instantiation.
267 * cp-tree.h: Adjust.
268 * parse.y: Adjust.
269
270 * repo.c (extract_string): New fn.
271 (get_base_filename): Use it.
272 (init_repo): Compare old args with current args.
273
274Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com>
275
276 * Makefile.in, Make-lang.in: Protect C-ls with a comment
277 character, idea from Paul Eggert <eggert@twinsun.com>.
278
279Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com>
280
281 * typeck.c (c_expand_return): Be more persistent in looking for
282 returned temps.
283
284 * cvt.c (build_up_reference): Use NOP_EXPR for switching from
285 pointer to reference.
286
287 * class.c (build_vbase_path): Don't do anything if PATH has no steps.
288
289Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com>
290
291 * init.c (build_member_call, build_offset_ref):
292 Use do_scoped_id instead of do_identifier.
293
294 * cvt.c (convert): Remove bogosity.
295
296Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
297
298 * cvt.c (build_up_reference): Do checks of ARGTYPE and
299 TARGET_TYPE before trying to use get_binfo.
300
301Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com>
302
303 * cvt.c (build_up_reference): Call get_binfo to get access control.
304
305 * decl2.c (import_export_decl): If we don't support weaks, leave
306 statics undefined.
307
308Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com>
309
310 * except.c (expand_builtin_throw): Add support for machines that
311 cannot access globals after throw's epilogue when
312 -fno-sjlj-exceptions is used.
313
314Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com>
315
316 * parse.y: 'std::' becomes '::'.
317 * lex.c (real_yylex): Remove 'namespace' warning.
318 * init.c (build_member_call): Ignore 'std::'.
319 (build_offset_ref): Likewise.
320 * decl2.c (do_using_directive): Ignore 'using namespace std;'.
321 (do_toplevel_using_decl): Ignore 'using std::whatever'.
322 * decl.c (push_namespace): Just sorry.
323 (pop_namespace): Nop.
324 (init_decl_processing): Declare std namespace.
325
013bc8af
MS
326Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com>
327
328 * search.c (push_class_decls): A name which ambiguously refers to
329 several instantiations of the same template just refers to the
330 template.
331
332Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com>
333
334 * decl.c (build_enumerator): fix problem with unsigned long
335 enumerated values being smashed to ints, causing overflow
336 when computing next enumerated value. (for enum values around
337 MAX_VAL).
338
339Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com>
340
341 * typeck.c (build_component_ref): Only call mark_used on a decl.
342
343Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
344
345 * typeck.c (build_c_cast): Make the check for a ptr to function
346 more specific before possible default_conversion call.
347
e00737d2
MS
348Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
349
350 * except.c (expand_exception_blocks): Simplify and fix and make
351 sure we don't end a region in a sequence, as expand_end_bindings
352 doesn't like it.
353
354Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
355
356 * except.c (init_exception_processing): Mark terminate as not
357 returning so that the optimizer can optimize better.
358
37c46b43
MS
359Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
360
361 * cvt.c (convert): Don't do any extra work, if we can avoid it
362 easily.
363
364Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com>
365
366 * *.[chy]: Change cp_convert to ocp_convert, change convert to
367 cp_convert. convert is now reserved for the backend, and doesn't
368 have the semantics a frontend person should ever want.
369
370Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com>
371
372 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
373 Lose -traditional support.
374
375Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com>
376
377 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
378
379 * parse.y (self_reference): Do it for templates, too.
380 * class.c (pushclass): Don't overload_template_name; the alias
381 generated by build_self_reference serves the same purpose.
382
383 * tree.c (list_hash): Make static, take more args.
384 (list_hash_lookup): Likewise.
385 (list_hash_add): Make static.
386 (list_hash_canon): Lose.
387 (hash_tree_cons): Only build a new node if one isn't already in the
388 hashtable.
389 (hash_tree_chain): Use hash_tree_cons.
390 * cp-tree.h: Adjust.
391 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
392 of calling lookup_name.
393
394Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com>
395
396 * pt.c (instantiate_class_template): TYPE_VALUES for an enum
397 doesn't refer to the CONST_DECLs.
398
399Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com>
400
401 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
402 is bigger.
403 (expand_class_desc): Convert the last argument to a sizetype.
404
405Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
406
407 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
408 __real__): Add reswords.
409 * hash.h: Regenerate.
410 * lex.h (rid): Add RID_COMPLEX.
411 (RID_LAST_MODIFIER): Set to RID_COMPLEX.
412 * lex.c (init_lex): Add building of RID_COMPLEX. Unset reserved
413 word "complex" if -fno-gnu-keywords.
414 (real_yylex): General cleanup in line with what c-lex.c also has,
415 sans the cruft for traditional; add handling of SPEC_IMAG, complex
416 types, and imaginary numeric constants.
417 * parse.y (REALPART, IMAGPART): Add tokens.
418 (unary_expr): Add REALPART and IMAGPART rules.
419 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
420 * decl.c (complex_{integer,float,double,long}_type_node): Define
421 types.
422 (init_decl_processing): Set up the types.
423 (grokdeclarator): Add handling of RID_COMPLEX. Set and use
424 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
425 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
426 * cvt.c (cp_convert): Handle COMPLEX_TYPE.
427 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
428 COMPLEX_TYPE case.
429 * method.c (build_overload_name): Add handling of the different
430 COMPLEX_TYPEs, prefixing them with `J'.
431 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
432 as a template parm.
433 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
434 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
435 (mapcar): Handle COMPLEX_CST.
436 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
437 (common_type): Add code for complex types.
438 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
439 (convert_for_assignment): Likewise.
440 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
441
442Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com>
443
444 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
445 tsubst_expr, as it might try to do overload resolution.
446
b87692e5
MS
447Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com>
448
449 * pt.c (instantiate_class_template): Oops.
450
451Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com>
452
453 * cp-tree.def: Add TAG_DEFN.
454 * pt.c (tsubst_enum): New fn.
455 (instantiate_class_template): Use it.
456 (tsubst_expr): Support TAG_DEFN.
457 (tsubst): Support local enums.
458 (tsubst_copy): Likewise.
459 * decl.c (finish_enum): Likewise.
460 (start_enum): If this is a local enum, switch to permanent_obstack.
461
462Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com>
463
464 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
465 (finish_function): Put the base init code for constructors just
466 after the parm cleanup insns.
467 (struct cp_function): Add last_parm_cleanup_insn.
468 (push_cp_function_context): Likewise.
469 (pop_cp_function_context): Likewise.
470
471Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com>
472
473 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
474
475Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
476
477 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
478 for THUNK_FNDECL before we switch to temporary allocation.
479
beb53fb8
JM
480Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
481
482 * call.c (build_new_op): Handle null arg2 for ?:.
483
eb448459
MS
484Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
485
486 * except.c (expand_exception_blocks): Ensure that we flow through
37c46b43
MS
487 the end of the exception region for the exception specification.
488 Move exception region for the exception specification in, so that
489 it doesn't protect the parm cleanup. Remove some obsolete code.
490 * decl.c (store_parm_decls): Likewise.
eb448459
MS
491 (finish_function): Likewise.
492
493Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com>
494
495 * init.c (build_new): Fix nothrow handling.
496
497Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
498
499 * init.c (emit_base_init): Don't warn about the initialization
500 list for an artificial member.
501
502Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
503
504 * expr.c (do_case): Handle !START case for the error msg.
505
506Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com>
507
508 * decl2.c, lang-options.h: New option -Weffc++.
509 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
510 to -Weffc++.
511
512 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
37c46b43 513 to MULTIPLE_SYMBOL_SPACES.
eb448459
MS
514
515Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com>
516
517 * method.c (emit_thunk, generic case): Set current_function_is_thunk.
518
519 * method.c (emit_thunk, macro case): Set up DECL_RESULT.
520
521 * typeck.c (c_expand_return): Don't complain about returning void
522 to void in an artificial function.
523 * method.c (make_thunk): Change settings of READONLY/VOLATILE,
524 don't set DECL_RESULT, set DECL_ARTIFICIAL.
525 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
526
eb66be0e
MS
527Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com>
528
529 * init.c (init_decl_processing): Add supoprt for setjmp/longjmp based
530 exception handling.
531 * except.c (init_exception_processing): Likewise.
532 (expand_end_catch_block): Likewise.
533 (expand_exception_blocks): Likewise.
534 (expand_throw): Likewise.
535 * exception.cc (__default_terminate): Likewise.
536
537 * init.c (perform_member_init): Use new method of expr level
37c46b43 538 cleanups, instead of cleanups_this_call and friends.
eb66be0e
MS
539 (emit_base_init): Likewise.
540 (expand_aggr_vbase_init_1): Likewise.
541 (expand_vec_init): Likewise.
542 * decl.c (cp_finish_decl): Likewise.
543 (expand_static_init): Likewise.
544 (store_parm_decls): Likewise.
545 (cplus_expand_expr_stmt): Likewise.
546 * decl2.c (finish_file): Likewise.
547
548 * Make-lang.in (exception.o): Ok to compile with -O now.
549
550 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
551 we know it will be done later by the backend.
552
553 * decl2.c (lang_f_options): Remove support for short temps.
554 * lang-options.h: Likewise.
555
556Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com>
557
558 * tree.c (varargs_function_p): New fn.
559 * method.c (emit_thunk): Replace broken generic code with code to
37c46b43 560 generate a heavyweight thunk function.
eb66be0e
MS
561
562Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com>
563
564 * pt.c (process_template_parm): pedwarn about floating-point parms.
565
566 * decl.c (grokdeclarator): inline no longer implies static.
567
568 * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
569
570Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
571
572 * class.c (check_for_override): The signature of an overriding
37c46b43 573 function is not changed.
eb66be0e
MS
574
575 * call.c (build_over_call): Move setting of conv into the loop.
576
577Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
578
579 * call.c (build_user_type_conversion_1): Really ignore rvalue
37c46b43 580 conversions when looking for a REFERENCE_TYPE.
eb66be0e
MS
581
582 * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
583 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
584 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
585 (build_unary_op): Likewise.
586 * call.c (build_over_call): See through a CONVERT_EXPR around the
37c46b43 587 ADDR_EXPR for on a temporary.
eb66be0e 588 * typeck.c (c_expand_return): See through a CONVERT_EXPR around
37c46b43 589 the ADDR_EXPR for a local variable.
eb66be0e
MS
590
591Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com>
592
593 * call.c (build_user_type_conversion_1): If we're trying to
37c46b43 594 convert to a REFERENCE_TYPE, only consider lvalue conversions.
eb66be0e
MS
595 (build_new_function_call): Print candidates.
596 (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
597 (reference_binding): Binding a temporary of a reference-related type
598 is BAD.
599
600Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
601
602 * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
603 * tinfo2.cc (type_info::before): Likewise.
604
605Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com>
606
607 * call.c (implicit_conversion): Oops.
608
609Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com>
610
611 * call.c (implicit_conversion): Try to find a reference conversion
37c46b43 612 before binding a const reference to a temporary.
eb66be0e
MS
613
614Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com>
615
616 * exception.cc (__default_unexpected): Call terminate by default,
617 so that if the user overrides terminate, the correct function will
618 be called.
619
bd6dd845
MS
620Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com>
621
622 * parse.y (left_curly): Avoid trying to use any fields of
eb66be0e 623 error_mark_node, as there aren't any.
bd6dd845
MS
624
625Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com>
626
627 * lex.c (do_identifier): Avoid breaking on overloaded methods
628 as default arguments.
629
630Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se>
631
eb66be0e 632 * call.c (add_template_candidate): Initialize the variable "dummy".
bd6dd845
MS
633
634Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
635
636 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
637 before we try to use TYPE_SIZE and TREE_CONSTANT on it.
638
639Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
640
641 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
642 (debug_binfo): Delete decl, not needed.
643
644 * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
645 promotes_to_aggr_type): Delete fns.
646 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
647 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
648 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
649
650 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
651
652 * friend.c (is_friend_type): Delete fn.
653 * cp-tree.h (is_friend_type): Delete decl.
654
655 * decl.c (original_result_rtx, double_ftype_double,
656 double_ftype_double_double, int_ftype_int, long_ftype_long,
657 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
658 * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
659
660 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
661 fwd decls.
662 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
663
664 * decl.c (pushdecl_nonclass_level): #if 0, unused.
665 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
666
667 * lex.c (reinit_lang_specific): #if 0, unused.
668 * cp-tree.h (reinit_lang_specific): #if 0 decl.
669
670 * decl.c (revert_static_member_fn): Make static, adding fwd decl.
671 * cp-tree.h (revert_static_member_fn): Delete decl.
672
673 * class.c (root_lang_context_p): Delete fn.
674 * cp-tree.h (root_lang_context_p): Delete decl.
675
676 * decl.c (set_current_level_tags_transparency): #if 0, unused.
677 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
678
679 * lex.c (set_vardecl_interface_info): Make static.
680 * cp-tree.h (set_vardecl_interface_info): Delete decl.
681
682 * call.c (find_scoped_type): Make static.
683 * cp-tree.h (find_scoped_type): Delete decl.
684
685 * search.c (convert_pointer_to_vbase): Make static.
686 * cp-tree.h (convert_pointer_to_vbase): Delete decl.
687
688 * decl.c (const_ptr_type_node): Likewise.
689 * cp-tree.h (const_ptr_type_node): Delete decl.
690
691 * typeck.c (common_base_type): Make static.
692 * cp-tree.h (common_base_types): Delete erroneous decl.
693
694 * pt.c (classtype_mangled_name): Make static.
695 * cp-tree.h (classtype_mangled_name): Delete decl.
696
697 * lex.c (check_newline): Make static.
698 * cp-tree.h (check_newline): Delete decl.
699
700 * typeck.c (build_x_array_ref): Delete fn, same idea as
701 grok_array_decl.
702 * cp-tree.h (build_x_array_ref): Delete decl.
703
704 * lex.c (copy_decl_lang_specific): Delete fn, same idea as
705 copy_lang_decl.
706 * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
707
708 * class.c (build_vtable_entry): Make static.
709 * cp-tree.h (build_vtable_entry): Delete decl.
710
711 * class.c (build_vbase_pointer): Make static.
712 * cp-tree.h (build_vbase_pointer): Delete decl.
713
714 * sig.c (build_sptr_ref): Add forward decl and make static.
715 * cp-tree.h (build_sptr_ref): Delete decl.
716
717 * call.c (build_new_method_call): Add forward decl and make static.
718 * cp-tree.h (build_new_method_call): Delete decl.
719
720 * call.c (build_object_call): Make static.
721 * class.c (check_for_override, complete_type_p, mark_overriders):
722 Likewise.
723 * decl.c (cp_function_chain): Likewise.
724 * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
725 Likewise.
726 * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
727 Likewise.
728 * tree.c (build_cplus_array_type_1): Likewise.
729 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
730 (comp_target_parms): Likewise.
731
732 * init.c (build_builtin_call): Make static.
733 * cp-tree.h (build_builtin_call): Delete decl.
734
735 * typeck.c (binary_op_error): Delete decl.
736 * cp-tree.h (binary_op_error): Likewise.
737
738Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
739
740 * call.c (build_method_call): Compare against error_mark_node
741 directly, rather than the ERROR_MARK tree code.
742 * cvt.c (cp_convert): Likewise.
743 * decl.c (print_binding_level): Likewise.
744 (duplicate_decls): Likewise.
745 (grokdeclarator): Likewise.
746 (grokdeclarator): Likewise.
747 * init.c (expand_aggr_init_1): Likewise.
748 (decl_constant_value): Likewise.
749 * method.c (build_opfncall): Likewise.
750 (hack_identifier): Likewise.
751 * typeck.c (build_modify_expr): Likewise.
752
753 * typeck.c (build_c_cast): Don't decl TYPE as register tree.
754
755Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
756
757 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
758
759 * pt.c (coerce_template_parms): Add new error message.
760
761 * method.c (build_overload_value): Implement name mangling for
762 floating-point template arguments.
763
764 * method.c (build_overload_int, icat, dicat): Fix mangling of template
765 arguments whose absolute value doesn't fit in a signed word.
766
767Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
768
769 * friend.c: New file; put all of the friend stuff in here.
770 * init.c: Instead of here.
771 * Makefile.in (CXX_OBJS): Add friend.o.
772 (friend.o): Add dependencies.
773 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
774
775Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com>
776
777 * call.c (build_scoped_method_call): Complain if the scope isn't a
eb66be0e 778 base.
bd6dd845
MS
779
780Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com>
781
782 * parse.y (left_curly): Don't crash on erroneous type.
783
784 * init.c (build_delete): Fix type of ref.
785
786Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com>
787
788 * search.c (get_vbase_1): Renamed from get_vbase.
789 (get_vbase): Wrapper, now non-static.
790 (convert_pointer_to_vbase): Now static.
791
792 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
793 * init.c (build_delete): Pass one.
794 (build_partial_cleanup_for): Use build_scoped_method_call.
795 * decl.c (finish_function): Pass a binfo.
796
797Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com>
798
799 * call.c (build_over_call): Only synthesize non-trivial copy ctors.
800
801 * typeck.c (build_c_cast): Lose other reference to flag.
802
803 * call.c (build_field_call): Don't look for [cd]tor_identifier.
804 * decl2.c (delete_sanity): Remove meaningless use of
eb66be0e 805 LOOKUP_HAS_IN_CHARGE.
bd6dd845 806 * decl.c (finish_function): Use build_scoped_method_call instead
eb66be0e 807 of build_delete for running vbase dtors.
bd6dd845 808 * init.c (build_delete): Call overload resolution code instead of
eb66be0e 809 duplicating it badly.
bd6dd845 810
2ba25f50
MS
811Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com>
812
813 * call.c (build_over_call): Call mark_used before trying to elide
814 the call.
815
816 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
817
818Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
819
820 * typeck.c (build_modify_expr): Always pedwarn for a cast to
821 non-reference used as an lvalue.
822
823Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com>
824
825 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
826
827Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com>
828
829 * parse.y (handler): Fix template typo.
830
831Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com>
832
833 * error.c (lang_decl_name): New fn.
834 * tree.c (lang_printable_name): Use it.
835
836Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com>
837
838 * g++spec.c: Include config.h so that we can catch bzero #defines
839 from the config file.
840
e9f32eb5
MS
841Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com>
842
843 * new1.cc: Include a declaration for malloc, to avoid warning, and
eb66be0e
MS
844 avoid lossing on systems that require one (ones that define malloc
845 in xm.h).
e9f32eb5
MS
846
847Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
848
849 * decl2.c (max_tinst_depth): New variable.
850 (lang_decode_option): Parse "-ftemplate-depth-NN" command line
851 option.
852 * pt.c (max_tinst_depth): Variable moved.
853 * lang-options.h: Declare "-ftemplate-depth-NN" command line option
854 as legal.
855
856Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com>
857
858 * decl.c (xref_basetypes): Allow a base class that depends on
eb66be0e 859 template parms to be incomplete.
e9f32eb5
MS
860
861 * decl2.c (build_expr_from_tree): Support typeid(type).
862 * rtti.c (get_typeid): Support templates.
863 (expand_si_desc, expand_class_desc): Fix string length.
864 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
865
312e7d50
JM
866Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
867
868 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
869
870 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
871
872Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
873
874 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
eb66be0e
MS
875 smashes together template and non-template decls of the same
876 signature.
312e7d50 877
824b9a4c
MS
878Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
879
824b9a4c
MS
880 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
881
882Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
883
884 * decl.c (duplicate_decls): Next route, pedwarn about different
885 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
886
887Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
888
889 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
890 (struct lang_type): Delete has_default_implementation member.
891 Increase dummy to 21.
892 * decl.c (start_method): Delete usage.
893
894 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
895 store_after_parms, start_decl_1, auto_function): Add decls.
896 (get_arglist_len_in_bytes, declare_implicit_exception,
897 have_exceptions_p, make_type_decl, typedecl_for_tag,
898 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
899 build_component_type_expr, cplus_exception_name,
900 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
901 * call.c (build_this): Make static.
902 (is_complete): Likewise.
903 (implicit_conversion): Likewise.
904 (reference_binding): Likewise.
905 (standard_conversion): Likewise.
906 (strip_top_quals): Likewise.
907 (non_reference): Likewise.
908 (build_conv): Likewise.
909 (user_harshness): Likewise.
910 (rank_for_ideal): Likewise.
911 * decl.c (start_decl_1): Delete forward decl.
912 (push_decl_level): Make static.
913 (resume_binding_level): Make static.
914 (namespace_bindings_p): Make static.
915 (declare_namespace_level): Make static.
916 (lookup_name_real): Make static.
917 (duplicate_decls): Make static. Take register off NEWDECL and
918 OLDDECL parm decls.
919 * decl2.c (get_sentry): Make static.
920 (temp_name_p): Delete fn.
921 * except.c (auto_function): Delete decl.
922 * lex.c (handle_{cp,sysv}_pragma): Make static.
923 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
924 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
925 * pt.c (tsubst_expr_values): Make static.
926 * rtti.c (combine_strings): Delete decl.
927
928Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
929
930 * pt.c (push_template_decl): Handle getting a typedef.
931
932 * call.c (build_new_function_call): Complain about void arg.
933
934Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
935
936 * decl.c (duplicate_decls): Give pedwarn of different exceptions
937 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
938
939Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
940
941 * except.c (expand_throw): Don't expand the cleanup tree here,
eb66be0e
MS
942 since we are not going to write the rtl out. Fixes problem with
943 -g -O on SPARC.
824b9a4c
MS
944
945Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
946
947 * Make-lang.in: Add $(exeext) as necessary.
948
949Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
950
951 * parse.y (handler_seq): Must have at least one catch clause.
952
953Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
954
955 * call.c (add_builtin_candidate): Restore ?: hack.
956
957 * decl.c (grok_op_properties): More warnings.
958
959Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
960
961 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
962 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
963
964 * decl.c (duplicate_decls): Scale back to a warning, and only do
965 'em if -pedantic.
966
967Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
968
969 * decl.c (duplicate_decls): pedwarn mismatched exception
eb66be0e 970 specifications.
824b9a4c
MS
971
972Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
973
974 * call.c (build_new_method_call): Don't display the invisible
eb66be0e 975 argument for controlling virtual bases.
824b9a4c
MS
976
977Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
978
979 * new: Add nothrow new and delete, bad_alloc and throw specifications
980 for delete.
981 * decl.c (init_decl_processing): Add throw specification for delete.
982 * new.cc (nothrow): Define.
983 * lex.c (real_yylex): Removing warning that throw and friends are
984 keywords.
985 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
986 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
987 * Make-lang.in: Add new{1,2}.{cc,o}.
988
989Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
990
991 * lex.c (cons_up_default_function): Fix return type of synth op=.
992
993 * init.c (emit_base_init): Add warnings for uninitialized members
eb66be0e 994 and bases.
824b9a4c
MS
995
996 * decl.c (xref_basetypes): Add warning for non-polymorphic type
eb66be0e 997 with destructor used as base type.
824b9a4c
MS
998
999 * decl.c (grok_op_properties): Add warning for op= returning void.
1000 * typeck.c (c_expand_return): Add warning for op= returning anything
1001 other than *this.
1002
1003 * class.c (finish_struct_1): Add warning for class with pointers
eb66be0e 1004 but not copy ctor or copy op=.
824b9a4c
MS
1005
1006 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
1007 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
1008 (instantiate_template): If -fexternal-templates, add this
eb66be0e 1009 instantiation to pending_templates.
824b9a4c
MS
1010
1011 * decl2.c (copy_assignment_arg_p): Disable old hack to support
eb66be0e 1012 Booch components.
824b9a4c
MS
1013
1014Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
1015
1016 * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
1017
de22184b
MS
1018Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
1019
1020 * call.c (standard_conversion): Handle getting references. Tack
eb66be0e 1021 on RVALUE_CONV here. Do it for non-class types, too.
de22184b
MS
1022 (reference_binding): Pass references to standard_conversion.
1023 (implicit_conversion): Likewise.
1024 (add_builtin_candidate): Disable one ?: kludge.
1025 (convert_like): Handle RVALUE_CONVs for non-class types.
1026 (joust): Disable the other ?: kludge.
1027
1028Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1029
1030 * decl.c (init_decl_processing): Add code to build up common
1031 function types beforehand, to avoid creation then removal of
1032 things already in the hash table.
1033
1034Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
1035
1036 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
eb66be0e 1037 the arguments.
de22184b
MS
1038
1039 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
eb66be0e 1040 current_template_parms.
de22184b
MS
1041
1042Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
1043
1044 * search.c (lookup_field): Don't return a function, check want_type.
1045
1046Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1047
1048 * init.c (build_new): Make sure PLACEMENT has a type.
1049
1050Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1051
1052 * init.c (build_new): Support new (nothrow).
1053
1054Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1055
1056 * pt.c (instantiate_decl): Also do push_to_top_level before setting
1057 up DECL_INITIAL.
1058
1059 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
1060 * pt.c (tsubst): Defer instantiation of default args.
1061 * call.c (build_over_call): Until here.
1062
1063Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1064
1065 * search.c (lookup_field): Make sure we have an
1066 IDENTIFIER_CLASS_VALUE before we try to return it.
1067
1068Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1069
1070 * call.c (build_method_call): Delete unused var PARM.
1071 (build_overload_call_real): Likewise.
1072 (build_object_call): Delete unused var P.
1073 (build_new_op): Likewise.
1074 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
1075 var definitions, which are never used.
1076 (shadow_tag): Delete unused var FN.
1077 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
1078 * init.c (build_new): Delete unused var ALLOC_TEMP.
1079 * method.c (hack_identifier): Delete unused var CONTEXT.
1080 (do_build_copy_constructor): Delete unused var NAME.
1081 (synthesize_method): Delete unused var BASE.
1082 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
1083 * rtti.c (build_headof): Delete unused var VPTR.
1084 (get_typeid): Delete unused var T.
1085 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
1086 and ORIG_OP2.
1087 (build_ptrmemfunc): Delete unused vars U and NINDEX.
1088 * typeck2.c (build_functional_cast): Delete unused var BINFO.
1089
1090Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
1091
1092 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
1093 things in a type being defined.
1094 * decl.c (finish_enum): Reverse the values so that they are in
1095 the correct order.
1096
1097 * pt.c (instantiate_class_template): Don't initialize
eb66be0e 1098 BINFO_BASETYPES until the vector is filled out.
de22184b
MS
1099 (unify): Don't abort on conflicting bindings, just fail.
1100 (instantiate_decl): Do push_tinst_level before any tsubsting.
1101
1102 * method.c (build_overload_value): Handle getting a
eb66be0e 1103 TEMPLATE_CONST_PARM for a pointer.
de22184b
MS
1104
1105Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
1106
1107 * init.c (expand_member_init): Don't give 'not a base' error for
eb66be0e 1108 templates.
de22184b
MS
1109
1110 * pt.c (instantiate_decl): Call import_export_decl later.
1111
1112 * pt.c (instantiate_class_template): Return a value.
1113
1114 * parse.y (extension): New rule for __extension__.
1115 (extdef, unary_expr, decl, component_decl): Use it.
1116
1117Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
1118
1119 * class.c (base_binfo): Remove unused base_has_virtual member.
1120 (finish_base_struct): Likewise.
1121 (finish_struct_1): Likewise.
1122
1123Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com>
1124
1125 * search.c (expand_upcast_fixups): Fix bogus code generation
1126 problem where the generated code uses the wrong index into the
1127 runtime built vtable on the stack. Old code could clobber random
1128 stack values.
1129
1130Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com>
1131
1132 * init.c (perform_member_init): Make sure the partial EH cleanups
eb66be0e 1133 live on the function_obstack.
de22184b 1134
f7da6097
MS
1135Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com>
1136
1137 * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
1138 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
1139
1140Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com)
1141
1142 * decl.c (grokvardecl): Avoid ANSI style initialization.
1143
1144Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com>
1145
1146 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
1147
1148Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com>
1149
1150 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
1151
1bf2b2d2
BK
1152Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1153
1154 * g++spec.c (lang_specific_driver): Put missing hyphen in front of
1155 arguments we compare against. Start the count of I at 1, not 0,
1156 since argv[0] is still the command.
1157
f7da6097
MS
1158Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com>
1159
1160 * lang-specs.h: Accept .cp as an C++ extension.
1161
d2e5ee5c
MS
1162Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1163
1164 * cp-tree.h (ptr_reasonably_similar): Add decl.
1165
1166Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1167
1168 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
1169 pointer. New local SPECBITS with the parm's value.
1170 (grokdeclarator): Pass &specbits down.
1171
1172 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
1173 before we try to do C_SET_EXP_ORIGINAL_CODE on it.
1174
1175 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
1176 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
1177
1178 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
1179 not an error_mark_node.
1180
1181Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com>
1182
1183 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
1184 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
1185
1186Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1187
1188 * decl.c (grokdeclarator): When giving an anonymous struct a name,
1189 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
1190 not affected).
1191
1192 * typeck2.c (build_m_component_ref): If component is a pointer
1193 to data member, resolve the OFFSET_REF now.
1194
1195 * call.c (convert_like): Don't go into infinite recursion.
1196
1197 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
1198
1199 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
1200 * tree.c (layout_basetypes): And on the vbase ptr.
1201
1202Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1203
1204 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
1205 CHAR_TYPE_SIZE so bool is always the same size as another type.
1206
1207 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
1208
1209Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com>
1210
1211 * decl2.c (grok_x_components): Remove synthesized methods from
eb66be0e
MS
1212 TYPE_METHODS of an anonymous union, complain about member
1213 functions.
d2e5ee5c
MS
1214 * decl.c (shadow_tag): Wipe out memory of synthesized methods in
1215 anonymous unions.
1216 (finish_function): Just clear the DECL_RTL of our arguments.
1217
1218Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1219
1220 * decl2.c (finish_file): Emit DWARF debugging info for static data
1221 members.
1222
1223 * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
1224
1225Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com>
1226
1227 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
eb66be0e 1228 IDENTIFIER_NODE.
d2e5ee5c
MS
1229
1230Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1231
1232 * Make-lang.in (g++-cross$(exeext)): Fix typo.
1233
1234Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1235
1236 Make the g++ driver now be a standalone program, rather than one
1237 that tries to run the gcc driver after munging up the options.
1238 * Make-lang.in (g++.c, g++spec.o): New rules.
1239 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
1240 added.
1241 (g++$(exeext)): New rule, based on xgcc rule.
1242 (g++-cross$(exeext)): Now just copies g++$(exeext) over.
1243 * g++spec.c: New file.
1244 * g++.c: Removed file.
1245
1246Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com>
1247
1248 * cvt.c (build_up_reference): Arrange for any temporary values
1249 that have been keep in registers until now to be put into memory.
1250
faf5394a 1251Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9a3b49ac 1252
faf5394a
MS
1253 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
1254 that make -j3 bootstrap works better.
9a3b49ac 1255
faf5394a
MS
1256Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com>
1257
1258 * decl.c (pushtag): Do pushdecl for anon tags.
1259
1260Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com>
1261
1262 * typeck.c (c_expand_return): Fix logic.
1263 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
1264
faf5394a
MS
1265Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com>
1266
1267 * g++.c (main): Make sure arglist has a final NULL entry. Add
eb66be0e
MS
1268 PEXECUTE_LAST to the flags passed to pexecute, as otherwise
1269 stdin/stdout of the invoked program are redirected to
1270 nowheresville.
faf5394a
MS
1271
1272Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1273
1274 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
1275
1276Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com>
1277
1278 * init.c (resolve_offset_ref): Handle obj.vfn better.
1279 * typeck.c (build_component_ref): Set TREE_TYPE on result from
1280 build_vfn_ref.
1281
1282Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com>
1283
1284 * typeck.c (convert_for_assignment): Also handle anachronistic
1285 implicit conversions from (::*)() to cv void*.
1286 * cvt.c (cp_convert_to_pointer): Likewise.
1287
1288Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com>
1289
1290 * lex.c (handle_cp_pragma): Fix bogus warning.
1291
1292Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com>
1293
1294 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
eb66be0e 1295 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
faf5394a
MS
1296
1297Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1298
1299 * class.c (finish_struct_1): Support DWARF2_DEBUG.
1300 * search.c (dfs_debug_mark): Likewise.
1301 * decl2.c (finish_vtable_vardecl): Likewise.
1302 * decl.c (pushtag, finish_enum): Likewise.
1303 * lex.c (check_newline): Use debug_* instead of calling *out
eb66be0e 1304 functions directly.
faf5394a
MS
1305
1306Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1307
1308 * Make-lang.in (cplib2.ready): Add else clause to avoid problems
1309 on some picky hosts.
1310
1311Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1312
1313 * class.c (finish_struct_1): A class has a non-trivial copy
eb66be0e 1314 constructor if it has virtual functions.
faf5394a
MS
1315
1316 * cvt.c (cp_convert): Always call a constructor.
1317
1318 * call.c (reference_binding): Still tack on a REF_BIND
eb66be0e 1319 for bad conversions.
faf5394a
MS
1320 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
1321
1322 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
1323 (c_expand_return): Likewise.
1324 * typeck2.c (digest_init): Likewise for { }.
1325 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
1326 * cvt.c (cp_convert): Handle failure better.
1327
1328Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1329
1330 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
1331 of GCC be path-relative.
1332
1333Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1334
1335 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
1336 it does need choose-temp.o and pexecute.o.
1337
1338Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1339
1340 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
1341 that we still use it.
1342 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
1343
1344Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com>
1345
1346 * init.c (expand_default_init): Avoid calling constructors to
1347 initialize reference temps.
1348
1349 * cvt.c (convert_to_reference): Fix.
1350
1351Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1352
1353 * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
1354 (convert_to_reference): Likewise.
1355 * typeck.c (convert_for_initialization): Likewise.
1356 * init.c (expand_default_init): Likewise.
1357 (expand_aggr_init_1): Likewise.
1358 * cp-tree.h (CONV_NONCONVERTING): Lose.
1359 * typeck.c (build_c_cast): Lose allow_nonconverting parm.
1360 * *.c: Adjust.
1361 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
1362
1363Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com>
1364
1365 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
1366
1367Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1368
1369 * init.c (expand_aggr_init_1): Don't crash on non-constructor
1370 TARGET_EXPR.
1371
1372Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1373
1374 * g++.c: Include gansidecl.h.
1375 (VPROTO, PVPROTO, VA_START): Delete.
1376 (choose_temp_base_try, choose_temp_base, perror_exec,
1377 run_dos) [__MSDOS__]: Delete fns.
1378 (pfatal_with_name): Delete fn.
1379 (temp_filename): Declare like in gcc.c.
1380 (pexecute, pwait, choose_temp_base): Declare from gcc.c.
1381 (error_count, signal_count): Define.
1382 (error): Delete both definitions.
1383 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
1384 (pfatal_pexecute): Add fn from gcc.c.
1385 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the
1386 code to use the pexecute stuff also used by gcc.c.
1387 (MIN_FATAL_STATUS): Define.
1388 * Make-lang.in (g++): Add dependency on and linking with
1389 choose-temp.o and pexecute.o.
1390
1391 * cp-tree.h: Include gansidecl.h.
1392 (STDIO_PROTO): Delete #undef/#define.
1393 * cvt.c (NULL): Delete #undef/#define.
1394 * expr.c (NULL): Likewise.
1395 * init.c (NULL): Likewise.
1396 * rtti.c (NULL): Likewise.
1397 * xref.c (NULL): Likewise.
1398
1399 * cp-tree.h (build_user_type_conversion): Add prototype.
1400 * call.c (build_user_type_conversion): Delete prototype. Correct
1401 decl of FLAGS arg to be an int.
1402 * cvt.c (build_user_type_conversion): Likewise.
1403
1404Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com>
1405
1406 * cp-tree.def: Add TRY_BLOCK and HANDLER.
1407 * except.c (expand_start_catch_block): Support templates.
1408 * parse.y (try_block, handler_seq): Likewise.
1409 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
9a3b49ac
MS
1410
1411Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com>
1412
1413 * pt.c (current_template_args): New fn.
1414 (push_template_decl): Use it.
1415 * decl.c (grokdeclarator): Use it.
1416
1417 * decl2.c (build_expr_from_tree): Dereference ref vars.
1418
1419 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
1420 the decl-specifier-seq.
1421
1422 * decl.c (grok_op_properties): Don't force the type of a conversion
1423 op to be complete. Don't warn about converting to the same type
1424 for template instantiations.
1425
1426 * decl2.c (finish_file): Don't call instantiate_decl on synthesized
1427 methods.
1428
1429Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com>
1430
1431 * typeck.c (get_delta_difference): Remove previous bogusness.
1432 Don't give errors if force is set.
1433
1434Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1435
1436 * decl2.c (finish_file): Don't emit debug info.
d2e5ee5c 1437 * decl.c (pushdecl): Lose obsolete code.
9a3b49ac 1438 (grokdeclarator): Still do the long long thing after complaining.
d2e5ee5c
MS
1439 * search.c (note_debug_info_needed): Don't do anything if we're in a
1440 template.
9a3b49ac 1441 * method.c (synthesize_method): For non-local classes,
eb66be0e 1442 push_to_top_level first.
9a3b49ac
MS
1443
1444Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com>
1445
1446 * typeck.c (get_delta_difference): Add no_error parameter.
1447 (build_ptrmemfunc): Call get_delta_difference with no_error set;
eb66be0e
MS
1448 we don't want error messages when converting unrelated
1449 pointer-to-member functions.
9a3b49ac
MS
1450
1451Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com>
1452
1453 * error.c (dump_expr): Improve the wording on error messages that
1454 involve pointer to member functions.
1455
1456Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com>
1457
1458 * cvt.c (cp_convert_to_pointer): Move code for conversions from
eb66be0e 1459 (::*)() to void* or (*)() up a bit, so that we can convert from
9a3b49ac
MS
1460 METHOD_TYPEs as well.
1461
1462Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1463
1464 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
1465 There are no 'member' types.
1466 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
1467 (build_x_typeid): Handle errors.
1468
1469Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com>
1470
1471 * typeck.c (convert_for_assignment): Handle anachronistic implicit
1472 conversions from (::*)() to void* or (*)().
1473 * cvt.c (cp_convert_to_pointer): Likewise.
1474 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
1475 conversions from here.
1476 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
1477 * lang-options.h: Likewise.
1478 * decl2.c (warn_pmf2ptr): Define.
1479 * cp-tree.h: Declare it.
1480 * typeck2.c (digest_init): Allow pmfs down into
1481 convert_for_initialization.
1482
1483Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com>
1484
1485 * typeck.c (c_expand_return): Fix for returning overloaded fn.
1486
1487Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com>
1488
1489 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
1490 * decl.c (grok_reference_init): Pass DIRECT_BIND.
1491 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use
eb66be0e 1492 DIRECT_BIND.
9a3b49ac
MS
1493 * call.c (convert_like): Don't pass INDIRECT_BIND.
1494 * typeck.c (convert_arguments): Likewise.
1495 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
1496
1497Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com>
1498
1499 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
eb66be0e 1500 similar code in build_up_ref.
9a3b49ac
MS
1501 * cvt.c (build_up_reference): Drastically simplify.
1502
691c003d
MS
1503Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com)
1504
1505 * typeck.c (signed_or_unsigned_type): If the given type already
1506 as the correct signedness, then just return it.
1507
eb66be0e
MS
1508 * typeck.c ({un,}signed_type): If can't do anything, call
1509 signed_or_unsigned_type.
691c003d
MS
1510
1511Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com>
1512
1513 * decl2.c (copy_assignment_arg_p): Don't buy the farm if
1514 current_class_type is NULL.
1515
1516Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com>
1517
1518 * class.c (finish_struct_1): Avoid empty structs by adding a field
eb66be0e 1519 so layout_type gets the mode right.
691c003d
MS
1520
1521 * typeck.c (c_expand_return): Drastically simplify.
1522
1523Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com>
1524
1525 * typeck.c (decay_conversion): Handle overloaded methods.
1526
1527Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com>
1528
1529 * call.c (build_over_call): A TARGET_EXPR has side-effects.
1530
f49422da
MS
1531Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com>
1532
1533 * cvt.c (convert_to_pointer_force): Add code to support pointer to
eb66be0e 1534 member function to pointer to function conversions.
f49422da 1535 * init.c (resolve_offset_ref): Add code to allow faked up objects,
eb66be0e
MS
1536 ignoring them if they are not used, and giving an error, if they
1537 are needed.
f49422da 1538 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
eb66be0e
MS
1539 code, and so that we can give an error, if we needed an object,
1540 and one was not provided.
f49422da 1541 (build_c_cast): Don't call default_conversion when we want to
eb66be0e 1542 convert to pointer to function from a METHOD_TYPE.
f49422da
MS
1543
1544Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com>
1545
1546 * Make-lang.in (cplib2.ready): Fix logic.
1547
1548 * decl.c (shadow_tag): Only complain about non-artificial function
eb66be0e 1549 members.
f49422da
MS
1550
1551 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
1552
1553Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com>
1554
1555 * expr.c (cplus_expand_expr): Pre-tweak call_target like
eb66be0e 1556 expand_inline_function would.
f49422da
MS
1557
1558 * pt.c (mark_decl_instantiated): If extern_p, call
eb66be0e 1559 mark_inline_for_output.
f49422da 1560
3d4683cb
MS
1561Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com>
1562
1563 * typeck.c (unary_complex_lvalue): Add code to handle intermediate
1564 pmd conversions.
1565
1566 * typeck.c (get_delta_difference): Fix wording, as we can be used
1567 for pointer to data members.
1568
1569Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com>
1570
1571 * pt.c (tsubst): If the function decl isn't a member of this
eb66be0e
MS
1572 template, return a copy of the decl (including copying the
1573 lang-specific part) so we don't hose ourselves later.
3d4683cb
MS
1574
1575Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1576
1577 * class.c (finish_struct): Remove DWARF-specific tag handling.
1578 * decl.c (pushtag): Likewise.
1579 (finish_function): Always clear DECL_ARGUMENTS on function decls with
1580 no saved RTX.
1581 * decl2.c (finish_file): Emit DWARF debugging info for static data
1582 members.
1583
1584Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com>
1585
1586 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
1587 isn't the same as the new one before we whack it.
1588
1589Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com>
1590
1591 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
eb66be0e
MS
1592 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
1593 warn_traditional and warn_strict_prototypes; remove ancient
1594 'overload' code; remove references to flag_traditional.
3d4683cb 1595
5156628f
MS
1596Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com>
1597
1598 * input.c (sub_getch): Handle 8-bit characters in string literals.
1599
1600Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com>
1601
1602 * tree.c (mapcar): Handle CONSTRUCTORs.
1603 (copy_to_permanent): Handle expression_obstack properly.
1604
1605 * Make-lang.in (cplib2.txt): Also depend on the headers.
1606
1607 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
eb66be0e 1608 INT_TYPE_SIZE.
5156628f
MS
1609 (expand_class_desc): Use USItype for offset field.
1610 * tinfo.h (struct __class_type_info): Likewise.
1611
1612 * method.c (build_overload_int): TYPE_PRECISION should be applied
eb66be0e 1613 to types.
5156628f
MS
1614
1615Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com>
1616
1617 * call.c (build_new_op): A COND_EXPR involving void must be a
1618 builtin.
1619
1620Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
1621
1622 * typeck.c (build_x_component_ref): New fn.
1623 (build_object_ref): Use it.
1624 * parse.y (primary): Use it.
1625 * decl2.c (build_expr_from_tree): Use it.
1626 * cp-tree.h: Declare it.
1627
1628 * decl.c (start_decl): variable-sized arrays cannot be initialized.
1629 * error.c (dump_type_suffix): Handle variable arrays.
1630
1631Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1632
1633 * Make-lang.in (exception.o): Put back compiling it with -fPIC.
1634
1635Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1636
1637 * decl.c (lookup_name_real): Don't try to look up anything in a
eb66be0e 1638 TYPENAME_TYPE.
5156628f
MS
1639
1640 * tinfo2.cc (__throw_type_match_rtti): Oops.
1641
1642Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1643
1644 * Make-lang.in (exception.o): Use -fno-PIC for now.
1645
1646Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com>
1647
1648 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
eb66be0e 1649 calling them.
5156628f
MS
1650 (get_tinfo_fn_dynamic): Extracted from build_typeid.
1651 * tinfo2.cc (__dynamic_cast): Adjust.
1652
1653 * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
1654 (build_x_typeid): Likewise.
1655
1656 * parse.y: Call build_x_typeid instead of build_typeid.
1657 * cp-tree.def: Add TYPEID_EXPR.
1658 * pt.c (tsubst_copy): Handle typeid.
1659 * decl2.c (build_expr_from_tree): Likewise.
1660 * rtti.c (build_x_typeid): Throw bad_typeid from here.
1661 (build_typeid): Not here.
1662 * cp-tree.h: Declare build_x_typeid.
1663
1664Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com>
1665
1666 * call.c (convert_like): Pull out constant values.
1667
1668 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
1669
1670Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1671
1672 * decl.c (init_decl_processing): Create short int types before
1673 creating size_t in case a machine description needs to use
1674 unsigned short for size_t.
1675
1676Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com>
1677
1678 * Make-lang.in (exception.o): Turn off pic.
1679
1680 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
1681 type, multi-level ptr conversions.
1682
1683 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
1684 (throw_bad_cast): Use it.
1685 (throw_bad_typeid): New fn.
1686 (build_typeid): Throw bad_typeid as needed.
1687 Use build_call.
1688 (synthesize_tinfo_fn): Handle functions and arrays before checking
1689 for cv-quals.
1690
1691 * Remove .h from standard C++ headers, add new.h, move into inc
eb66be0e 1692 subdirectory.
5156628f
MS
1693
1694 * exception*: Remove pointer from object, constructors. Add
eb66be0e
MS
1695 default exception::what that uses type_info::name. Add
1696 __throw_bad_typeid.
5156628f
MS
1697
1698 * init.c (build_new): Don't add a cookie to new (void *) T[2].
1699
1700Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com>
1701
1702 * Make-lang.in: Building C++ code depends on cc1plus.
1703
1704Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1705
1706 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
1707 a HOST_WIDE_INT, not a tree.
1708
1709Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
1710
1711 * exception.cc: Don't include <stdlib.h>.
1712
1713 * Make-lang.in (c++.clean): Remove cplib2.*.
1714
1715Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com>
1716
1717 * parse.y (component_decl_1, component_costructor_declarator case):
1718 Pass attributes/prefix_attributes in tree list.
1719
1720Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com>
1721
1722 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
1723
1724Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com>
1725
1726 * lex.c (do_identifier): Don't do deferred lookup in a template
eb66be0e 1727 header.
5156628f
MS
1728
1729 * typeck2.c (store_init_value): Oops.
1730
1731 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
1732 New files for C++ lang-support library.
1733 * Make-lang.in (CXX_EXTRA_HEADERS): Define.
1734 (CXX_LIB2FUNCS): Define.
1735 And rules for building the C++ lang-support code.
1736 * config-lang.in (headers): Define.
1737 (lib2funcs): Define.
1738
1739Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1740
1741 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
1742 digest_init.
1743 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
1744 * typeck2.c (store_init_value): Check for initializing pmf with { }
1745 here.
1746 (process_init_constructor): Not here.
1747
1748Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1749
1750 * pt.c (begin_template_parm_list): Increment
eb66be0e 1751 processing_template_decl here.
5156628f
MS
1752 (end_template_parm_list): Not here.
1753 (process_template_parm): No need to add 1 to it now.
1754 * *.c: Use processing_template_decl instead of current_template_parms
1755 to check for being in a template.
1756
1757 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR.
1758 (tsubst_copy): Handle CONSTRUCTOR.
1759 (instantiate_decl): Set up context properly for variables.
1760 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
1761 * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
1762
1763Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1764
1765 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
1766
7fcdf4c2
MS
1767Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1768
1769 * method.c (make_thunk): Call comdat_linkage before setting the
eb66be0e 1770 TREE_CODE.
7fcdf4c2
MS
1771
1772 * decl2.c (comdat_linkage): Use make_decl_one_only.
1773 (import_export_decl): Likewise.
1774 * decl.c (init_decl_processing): Check supports_one_only instead of
1775 SUPPORTS_WEAK.
1776
1777Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com>
1778
1779 * decl2.c (grokfield): Tighten checking for access decls.
1780
1781 * decl.c (make_typename_type): Resolve references to
eb66be0e 1782 current_class_type. Set CLASSTYPE_GOT_SEMICOLON.
7fcdf4c2 1783 (lookup_name_real): Types that depend on a template parameter get
eb66be0e 1784 an implicit 'typename' unless they're in the current scope.
7fcdf4c2 1785 (start_decl_1): We don't care about incomplete types that depend
eb66be0e 1786 on a template parm.
7fcdf4c2 1787 (grokdeclarator): Resolve 'typename's in the type specifier that
eb66be0e 1788 refer to members of the current scope.
7fcdf4c2
MS
1789
1790 * call.c (build_over_call): Remove 'inline called before
eb66be0e 1791 definition' diagnostic.
7fcdf4c2
MS
1792 (build_method_call): Likewise.
1793 * decl.c (duplicate_decls): Downgrade 'used before declared
eb66be0e 1794 inline' to a warning, only with -Winline.
7fcdf4c2
MS
1795
1796Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com>
1797
1798 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
1799
c11b6f21
MS
1800Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu>
1801
1802 * call.c (build_method_call): When calling a signature
1803 default implementation, as in other cases, let instance_ptr simply
1804 be instance.
1805
1806Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com>
1807
1808 * parse.y (simple_stmt): Cleanup and use do_poplevel ().
1809
1810Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com>
1811
1812 * except.c (expand_start_catch_block): Add a pushlevel so that -g
eb66be0e 1813 works on hppa and SPARC.
c11b6f21
MS
1814
1815Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1816
1817 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
1818
1819Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu>
1820
1821 * call.c (build_over_call): Check first whether DECL_CONTEXT exists
1822 before testing whether it's a signature.
1823
1824Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu>
1825
1826 * call.c (build_new_method_call): Don't complain about signature
1827 pointers and references not being an aggr type.
1828 (build_this): If a signature pointer or reference was passed in,
1829 just return it.
1830 (build_new_method_call): If instance is a signature pointer, set
1831 basetype to the signature type of instance.
1832 * sig.c (build_signature_method_call): Deleted basetype and
1833 instance parameters, they can be found as the DECL_CONTEXT of
1834 function and as the first argument passed in.
1835 * cp-tree.h: Changed declaration of build_signature_method_call.
1836 * call.c (build_method_call): Deleted first two arguments in call
1837 of build_signature_method_call.
1838 (build_over_call): Added call to build_signature_method_call.
1839
1840Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1841
1842 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
eb66be0e 1843 target_expr.
c11b6f21
MS
1844
1845Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1846
1847 * cvt.c (convert_to_reference): Use %#T, not %#D, for error.
1848
9ffa2541
BM
1849Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com>
1850
1851 * except.c (expand_start_try_stmts): Move to except.c in the backend.
1852 (expand_end_try_stmts): Remove.
1853
1854 * init.c (perform_member_init): Use add_partial_entry () instead
1855 of directly manipulating lists.
1856 (emit_base_init): Ditto.
1857
c11b6f21
MS
1858Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com>
1859
1860 * except.c (expand_exception_blocks): Always make sure USE and
eb66be0e
MS
1861 CLOBBER insns that came at the end still do, the backend relies
1862 upon this.
c11b6f21
MS
1863
1864Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com>
1865
1866 * call.c (build_over_call): We can only use a TARGET_EXPR of the
eb66be0e 1867 right type.
c11b6f21
MS
1868
1869Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com>
1870
1871 * cvt.c (convert_to_reference): Revert last change, don't complain
eb66be0e 1872 about temp without target decl.
c11b6f21
MS
1873
1874Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com>
1875
1876 * decl.c (grokdeclarator): Don't core dump when void() is given.
1877
1878Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com>
1879
1880 * decl.c (copy_args_p): Don't crash.
1881
1882Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com>
1883
1884 * pt.c (tsubst): And support template args inside the exception
eb66be0e 1885 specification.
c11b6f21
MS
1886
1887 * pt.c (tsubst): Add support for exception specifications in
eb66be0e 1888 template functions.
c11b6f21
MS
1889
1890Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com>
1891
1892 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
eb66be0e 1893 fields now.
c11b6f21
MS
1894 * cp-tree.h (start_decl): Eliminate the throw spec parameter.
1895 (start_function): Likewise.
1896 (start_method): Likewise.
1897 (grokfield): Likewise.
1898 (make_call_declarator): Add throw spec parameter.
1899 (set_quals_and_spec): Add routine.
1900 * lex.c (set_quals_and_spec): Likewise.
1901 * decl.h (grokdeclarator): Eliminate the throw spec parameter.
1902 * decl.c (shadow_tag): Eliminate the throw spec parameter to
eb66be0e 1903 grokdeclarator.
c11b6f21
MS
1904 (groktypename): Likewise.
1905 (start_decl): Eliminate the throw spec parameter. Eliminate the
eb66be0e
MS
1906 throw spec parameter to grokdeclarator. Eliminate the throw spec
1907 field in DECL_STMT.
c11b6f21
MS
1908 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
1909 (grokfndecl): Remove useless set of raises.
1910 (grokdeclarator): Eliminate the throw spec parameter. Eliminate
eb66be0e
MS
1911 the throw spec parameter to start_decl. Pull the throw spec out
1912 of the call declarator.
c11b6f21
MS
1913 (grokparms): Eliminate the throw spec parameter to grokdeclarator.
1914 (start_function): Eliminate the throw spec parameter. Eliminate
eb66be0e 1915 the throw spec parameter to grokdeclarator.
c11b6f21
MS
1916 (start_method): Likewise.
1917 * decl2.c (grokfield): Likewise.
1918 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
1919 (grokoptypename): Likewise.
1920 (finish_file): Eliminate the throw spec parameter to
eb66be0e 1921 start_function. Add throw spec to make_call_declarator.
c11b6f21 1922 * except.c (init_exception_processing): Add throw spec to
eb66be0e
MS
1923 make_call_declarator. Eliminate the throw spec parameter to
1924 start_decl.
c11b6f21 1925 (expand_start_catch_block): Eliminate the throw spec parameter to
eb66be0e 1926 grokdeclarator.
c11b6f21
MS
1927 (expand_builtin_throw): Add throw spec to make_call_declarator.
1928 Eliminate the throw spec parameter to start_function.
1929 (start_anon_func): Likewise.
1930 * lex.c (make_call_declarator): Add throw spec parameter.
1931 (set_quals_and_spec): New routine.
1932 (cons_up_default_function): Add throw spec to make_call_declarator.
1933 Eliminate the throw spec parameter to grokfield.
1934 * method.c (synthesize_method): Eliminate the throw spec parameter
eb66be0e 1935 to start_function.
c11b6f21 1936 * pt.c (process_template_parm): Eliminate the throw spec parameter
eb66be0e 1937 to grokdeclarator.
c11b6f21
MS
1938 (tsubst): Add throw spec to make_call_declarator.
1939 (tsubst_expr): Eliminate the throw spec parameter to start_decl.
1940 (do_function_instantiation): Eliminate the throw spec parameter to
eb66be0e
MS
1941 grokdeclarator. Eliminate the throw spec parameter to
1942 start_function.
c11b6f21 1943 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
eb66be0e 1944 to start_function.
c11b6f21
MS
1945 * parse.y (datadef): Remove non-winning optimization.
1946 (decl): Likewise.
1947 (fndef): Remove ambiguous error productions uncovered by grammer
eb66be0e 1948 fixing.
c11b6f21
MS
1949 (constructor_declarator): Add exception_specification_opt here.
1950 (component_constructor_declarator): Likewise.
1951 (direct_after_type_declarator): Likewise.
1952 (complex_direct_notype_declarator): Likewise.
1953 (direct_abstract_declarator): Likewise.
1954 (fn.def1): Remove exception_specification_opt.
1955 (fn.def2): Likewise.
1956 (condition): Likewise.
1957 (initdcl0): Likewise.
1958 (initdcl): Likewise.
1959 (notype_initdcl0): Likewise.
1960 (nomods_initdcl0): Likewise.
1961 (component_decl_1): Likewise.
1962 (component_declarator): Likewise.
1963 (after_type_component_declarator0): Likewise.
1964 (after_type_component_declarator): Likewise.
1965 (notype_component_declarator): Likewise.
1966
1967Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
1968
1969 * call.c (build_over_call): Also use an INIT_EXPR when
eb66be0e 1970 initializing anything from an rvalue.
c11b6f21
MS
1971
1972 * call.c (build_over_call): Call stabilize_reference when building
eb66be0e 1973 an INIT_EXPR instead of calling the copy ctor.
c11b6f21
MS
1974
1975 * call.c (joust): Extend the previous change to all comparisons.
1976
1977 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
1978 NO_LINKAGE_HEURISTICS.
1979
1980 * decl2.c (finish_file): Emit any statics that weren't already.
1981
1982 * typeck.c (build_static_cast): Implement.
1983 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
1984 * decl.c (grokparms): Use can_convert_arg instead of
eb66be0e 1985 implicit_conversion directly.
c11b6f21
MS
1986 (copy_args_p): New fn.
1987 * cvt.c (convert_to_reference): Don't complain about temp with
eb66be0e 1988 static_cast.
c11b6f21
MS
1989 (build_up_reference): Handle TARGET_EXPRs.
1990 * call.c (build_over_call): Elide unnecessary temps.
1991 (can_convert*): Use new overloading code.
1992
1993Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com>
1994
1995 * call.c: Move TYPE_PTR*_MACROS ...
1996 * cp-tree.h: To here.
1997 * typeck.c (build_reinterpret_cast): Implement.
1998
1999 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
eb66be0e 2000 ptr_complete_ob.
c11b6f21
MS
2001 (joust): If we're comparing a function to a builtin and the worst
2002 conversion for the builtin is worse than the worst conversion for the
2003 function, take the function.
2004
2005 * typeck.c (build_const_cast): Implement.
2006 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
2007 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
2008
2009Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com>
2010
2011 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype
eb66be0e
MS
2012 too early. Make sure we explode if exprtype turns out to be a
2013 NULL_TREE when it shouldn't be.
c11b6f21
MS
2014
2015Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com>
2016
2017 * cp-tree.h: New routine make_call_declarator.
2018 * lex.c (make_call_declarator): Define it.
2019 * except.c (init_exception_processing): Use it.
2020 (expand_builtin_throw): Likewise.
2021 (start_anon_func): Likewise.
2022 * decl2.c (finish_file): Likewise.
2023 * lex.c (cons_up_default_function): Likewise.
2024 * parse.y: Likewise.
2025 * pt.c (tsubst): Likewise.
2026
2027Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com>
2028
2029 * decl2.c (groktypefield): Remove unused code.
2030
2031Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com>
2032
2033 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
2034 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier.
2035 Change type_quals into cv_qualifiers. Change nonempty_type_quals into
2036 nonempty_cv_qualifiers.
2037 * hash.h: Rebuild.
2038
2039 * lex.c (make_pointer_declarator): Change type_quals into
eb66be0e 2040 cv_qualifiers.
c11b6f21
MS
2041 (make_reference_declarator): Likewise.
2042
d11ad92e
MS
2043Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2044
2045 * decl.c (start_function): Only check interface_* for templates
eb66be0e 2046 with flag_alt_external_templates.
d11ad92e
MS
2047
2048 * call.c (build_new_op): Check for comparison of different enum types.
2049 (build_over_call): Fix arg # output.
2050
2051 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
2052
2053Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com>
2054
2055 * call.c (build_new_op): Check for erroneous args.
2056
2057 * call.c (build_new_method_call): Add missing args to cp_error.
2058
2059 * tree.c (error_type): Dont print reference-to-array.
2060
2061 * typeck.c (convert_for_assignment): Don't say contravariance for
eb66be0e 2062 removing const.
d11ad92e
MS
2063
2064Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com>
2065
2066 * call.c (build_over_call): Diagnose bad convs for `this'.
2067
2068 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
2069 on _ctor_arg.
2070
2071 * call.c (convert_like): Handle bad convs.
2072 (build_over_call): Handle bad convs better.
2073
2074 * decl2.c: -fansi-overloading is now the default.
2075
2076 * call.c (build_new_method_call): Check for erroneous args.
2077
2078 * pt.c (instantiate_class_template): Propagate
eb66be0e 2079 TYPE_USES_MULTIPLE_INHERITANCE.
d11ad92e
MS
2080
2081Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com>
2082
2083 * call.c (enforce_access): Add static to routine.
2084
2085Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com>
2086
2087 * call.c (build_user_type_conversion_1): Fix bad handling.
2088 (compare_ics): Likewise.
2089
2090Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2091
2092 * call.c (standard_conversion): Oops.
2093
2094Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com>
2095
2096 * g++.c: Update test for win32 (&& ! cygwin32).
2097
2098Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2099
2100 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
2101 (ptr_reasonably_similar): New fn.
2102 * call.c (BAD_RANK): New rank.
2103 (ICS_BAD_FLAG): New macro.
2104 (standard_conversion): Handle almost-right pointer conversions.
2105 (reference_binding): Handle bad rvalue bindings.
2106 (add_*_candidate): Stuff.
2107 (build_over_call): Pass bad conversions to convert_for_initialization.
2108 (compare_ics): Handle bad convs.
2109 (joust): Likewise.
2110
2111Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com>
2112
2113 * init.c (expand_vec_init): Use ptrdiff_type_node instead of
2114 integer_type_node when computing pointer offsets.
2115
2116Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com>
2117
2118 * tree.c (lvalue_type): New fn.
2119 (error_type): New fn.
2120 * call.c (op_error): Use error_type.
2121 (add_conv_candidate): Use lvalue_type.
2122 (add_builtin_candidates): Likewise.
2123 * error.c (args_as_string): Use error_type.
2124
2125Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com>
2126
2127 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
2128 (tsubst): Not here.
2129
2130 * decl.c (init_decl_processing): With -ansi, __null's type is the
2131 signed integral type with the same number of bits as a pointer.
2132 Introduce a new variable null_node for it.
2133 * cp-tree.h: Adjust.
2134 * call.c (null_ptr_cst_p): Adjust.
2135
2136Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com>
2137
2138 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can
eb66be0e 2139 optimize.
d11ad92e
MS
2140
2141Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com>
2142
2143 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo
eb66be0e 2144 fns of classes without virtual functions.
d11ad92e
MS
2145
2146 * call.c (add_function_candidate): Handle `this' specially.
2147 (compare_ics): Likewise.
2148
2149Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com>
2150
2151 * typeck.c (build_conditional_expr): Fix handling of __null.
2152
2153 * decl2.c (comdat_linkage): New fn.
2154 (import_export_vtable): Use it.
2155 (import_export_decl): Use it.
2156 * method.c (make_thunk): Use it.
2157
73aad9b9
JM
2158Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
2159
2160 * pt.c (end_template_decl): If we don't actually have parms, return.
2161 * parse.y (template_header): Accept 'template <>'.
2162
2163 * errfn.c: Allow 5 args.
2164
2165Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
2166
2167 * tree.c (make_temp_vec): New fn.
2168 * pt.c (push_template_decl): Handle partial specs.
d11ad92e 2169 (instantiate_class_template): Likewise.
73aad9b9
JM
2170 (more_specialized): Use get_bindings.
2171 (more_specialized_class): New fn.
2172 (get_class_bindings): New fn.
2173 (most_specialized_class): New fn.
2174 (do_function_instantiation): List candidates for ambiguous case.
2175 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
2176 (shadow_tag): Call push_template_decl for partial specializations.
d11ad92e 2177 * parse.y: Likewise.
73aad9b9 2178 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
eb66be0e 2179 DECL_TEMPLATE_MEMBERS.
73aad9b9
JM
2180 * call.c (print_z_candidates): Reduce duplication.
2181
2182Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2183
2184 * decl2.c (lang_decode_option): Allow -fansi-overloading.
2185
2186Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
2187
2188 * pt.c (get_bindings): New fn.
d11ad92e 2189 (most_specialized): Likewise.
73aad9b9
JM
2190 (do_function_instantiation): Use them.
2191 (add_maybe_template): New fn.
2192 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
2193 * call.c (build_new_op): Handle guiding decls.
d11ad92e
MS
2194 (build_new_function_call): Likewise.
2195 * decl2.c (finish_file): Likewise.
73aad9b9
JM
2196
2197 * decl2.c (mark_used): Do synthesis here.
2198 * call.c (build_method_call): Not here.
2199 (build_over_call): Or here.
2200 * typeck.c (build_function_call_real): Or here.
2201 * tree.c (bot_manip): Call mark_used on functions used in default
eb66be0e 2202 args.
73aad9b9 2203
2eee5e3a
MM
2204Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2205
2206 * decl2.c (import_export_vtable): Delete code that disabled vtable
eb66be0e 2207 heuristic on systems with ASM_OUTPUT_EXTERNAL.
2eee5e3a 2208
c73964b2
MS
2209Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2210
2211 * typeck.c (build_x_function_call): Handle static call context
2212 better.
2213
2214 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
eb66be0e 2215 the function, not its outer block.
c73964b2
MS
2216
2217 * call.c (build_field_call): Pass fields on to build_opfncall
eb66be0e 2218 regardless of TYPE_OVERLOADS_CALL_EXPR.
c73964b2
MS
2219 (build_method_call): Pass on to build_new_method_call sooner.
2220
2221 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
2222 gives us.
2223 * class.c (instantiate_type): Don't put a POINTER_TYPE to
eb66be0e 2224 METHOD_TYPE on an expression. Also make a copy of rhs instead of
c73964b2
MS
2225 modifying it.
2226
2227Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
2228
2229 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
2230 (add_builtin_candidate): Don't take enums for ++.
2231 (build_new_method_call): Handle non-aggregates and field calls.
2232 Move new overloading code from...
2233 * cvt.c: Here.
2234
2235 * decl.c (grokparms): Don't check default args in templates.
2236
2237Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
2238
2239 * cvt.c (build_new_op): Fix args to build_unary_op.
2240 (add_builtin_candidates): Don't call type_promotes_to on float.
2241
2242 * decl.c (grokparms): Check the type of the default arg.
2243
2244 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
2245 returning NULL_TREE.
2246
2247 * typeck.c (build_x_binary_op): Avoid doing extra work.
d11ad92e
MS
2248 (build_x_unary_op): Likewise.
2249 (build_x_conditional_expr): Likewise.
c73964b2
MS
2250 * cvt.c (build_over_call): Return.
2251 (add_builtin_candidate): Fix MEMBER_REF.
d11ad92e 2252 (build_new_op): Likewise.
c73964b2
MS
2253
2254Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
2255
2256 * method.c (build_overload_name): Put bug fix into code but leave
eb66be0e
MS
2257 disabled for now so we can be bug compatible with older releases
2258 that do repeats incorrectly. In the future, we can enable it.
c73964b2
MS
2259
2260Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2261
2262 * cvt.c (convert_like): Don't call build_cplus_new twice.
2263
2264 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
2265 Control new overloading code with -fansi-overloading.
2266
2267Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2268
2269 * cvt.c (build_over_call): Call build_cplus_new.
d11ad92e
MS
2270 * call.c (build_method_call): Likewise.
2271 * typeck.c (build_function_call_real): Likewise.
c73964b2
MS
2272 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
2273 the COND_EXPR in a TARGET_EXPR so they use the same slot.
2274
2275 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
2276 recursive calls.
2277 * typeck.c (complete_type): Propagate
eb66be0e 2278 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
c73964b2
MS
2279
2280Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2281
2282 * cvt.c (joust): More ?: kludging. Sigh.
2283 (build_over_call): Don't try to synthesize global fns.
2284
2285 * search.c (lookup_conversions): Use binfo marking.
2286
2287Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
2288
2289 * search.c (build_mi_matrix): Use the correct value of cid
2290 when determining the new mi_size.
2291
2292Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
2293
2294 * cvt.c (add_builtin_candidates): Do consider type conversion ops
2295 for the first parms of += et al.
2296 (strip_top_quals): New fn.
2297 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
d11ad92e 2298 (implicit_conversion): Likewise.
c73964b2
MS
2299 (add_builtin_candidates): Be careful about arrays.
2300 (build_new_method_call): Handle vtable optimization.
2301
2302Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
2303
2304 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
2305 * cvt.c (reference_binding): Use it.
2306 (implicit_conversion): Use it.
2307 (add_builtin_candidate, COND_EXPR): Use it.
2308
2309 * cvt.c (build_new_function_call): Check for error args.
2310
2311 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
2312
2313 * gxx.gperf: Add __null.
2314 * hash.h: Regenerate.
2315 * lex.h: Add RID_NULL.
2316 * lex.c (init_lex): Create null_pointer_node here, stick it in
eb66be0e 2317 RID_NULL.
c73964b2
MS
2318 * decl.c (init_decl_processing): Still set its type here.
2319 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
d11ad92e 2320 (convert_to_pointer_force): Likewise.
c73964b2
MS
2321 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
2322 if (! pedantic).
2323 * call.c (convert_harshness): Use null_ptr_cst_p.
d11ad92e 2324 * typeck.c (convert_for_assignment): Likewise. Don't produce
c73964b2
MS
2325 null_pointer_node.
2326
2327 * error.c (args_as_string): Handle lists of actual args, too.
2328 * cvt.c (null_ptr_cst): Support (void*)0 for now.
2329 (build_user_type_conversion_1): Improve diagnostics.
2330 (build_new_function_call): Likewise.
2331 (build_object_call): Likewise.
2332 (build_new_method_call): Likewise. Move call before def diagnostic...
2333 (build_over_call): Here.
2334
2335 * cvt.c (build_new_method_call): Don't complain about no match if
eb66be0e 2336 LOOKUP_SPECULATIVELY.
c73964b2
MS
2337 (build_over_call): Fix 'this' for virtual fn.
2338 (build_new_method_call): Add diagnostic.
2339
2340Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2341
2342 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
eb66be0e 2343 constructors to be passed in.
c73964b2
MS
2344 (build_over_call): Likewise.
2345 (build_user_type_conversion_1): Pass them in.
2346 (convert_like): Likewise.
2347 (build_object_call): Handle overloaded conversions.
2348 (build_over_call): Pass the right args to build_vfn_ref.
2349 (standard_conversion): Fix pmf convs.
2350 (joust): Handle comparing statics and non-statics.
2351 (build_new_method_call): New fn.
2352 * call.c (build_method_call): Call it if NEW_OVER.
2353
2354Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
2355
2356 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
eb66be0e 2357 %D instead.
c73964b2
MS
2358
2359Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
2360
2361 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
eb66be0e
MS
2362 instead of just maybe_build_cleanup so that we deallocate the
2363 thrown object.
c73964b2
MS
2364
2365Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2366
2367 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
2368 * cp-tree.h (finish_prevtable_vardecl): Add decl.
2369
14548a19
MS
2370Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
2371
c73964b2 2372 * pt.c (instantiate_class_template): Call complete_type. Also, if
eb66be0e
MS
2373 we're at the end of the file and we just instantiated a template
2374 class with a vtable, call finish_prevtable_vardecl.
c73964b2 2375
14548a19 2376 * error.c (dump_decl): Don't explode (or explode more gracefully
eb66be0e 2377 as appropriate) if the object being dumped has a null type.
d11ad92e 2378 (dump_expr): Likewise.
14548a19
MS
2379
2380 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
eb66be0e
MS
2381 by counting the number of nodes that we'll need before allocating
2382 the array.
14548a19
MS
2383 (lookup_fnfields): Fix comment.
2384 (breadth_first_search): Fix comment.
2385
2386Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
2387
2388 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
eb66be0e 2389 TYPE_ALIGN.
14548a19
MS
2390 * class.c (finish_struct): Call cplus_decl_attributes here.
2391 (finish_struct_1): Not here.
2392 * cp-tree.h: Adjust.
2393
2394 * pt.c (type_unification): New parameter STRICT.
2395 (unify): If STRICT, don't allow cv addition or base deduction.
2396 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
2397
2398Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
2399
2400 * search.c (get_template_base{_recursive}): New fns.
2401 * pt.c (more_specialized): New fn.
2402 (do_function_instantiation): Use it.
2403 (unify): Handle base deduction.
2404 * cvt.c (joust): Use more_specialized.
2405 Don't arbitrarily choose between non-builtin candidates.
2406 (build_over_call): Call require_complete_type.
2407
2408 * decl.c (start_function): Statics are static even in a #pragma
eb66be0e 2409 interface file.
14548a19
MS
2410
2411 * decl2.c (import_export_vtable): Disable vtable heuristic on
eb66be0e 2412 systems with ASM_OUTPUT_EXTERNAL.
14548a19
MS
2413
2414 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
2415 (standard_conversion): No std conv to enum type.
2416
2417 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
2418 for ptm's.
2419
2420 * cvt.c (reference_binding): Bind directly to a base subobject of
eb66be0e 2421 a class rvalue.
14548a19
MS
2422
2423 * cvt.c (build_new_op): Enforce access control.
2424
2425Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
2426
2427 * typeck2.c (process_init_constructor): When scanning the
2428 union for a named field, skip things that aren't FIELD_DECLs.
2429
2430 * method.c (synthesize_method): Don't scan fndecl's rtl if
2431 we're at the end of the file; just assume the function can't
2432 be inlined.
2433
2434Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2435
2436 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
eb66be0e 2437 it failed.
14548a19
MS
2438
2439 * cvt.c (build_user_type_conversion_1): Handle overloaded
eb66be0e 2440 conversion ops.
14548a19
MS
2441
2442 * cvt.c (add_builtin_candidates): Don't consider type conversion
eb66be0e 2443 operators for the first parameter of operator=.
14548a19
MS
2444
2445Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
2446
2447 * typeck.c (complete_type): Only call layout_type if we're not
eb66be0e 2448 expanding a template.
14548a19
MS
2449
2450Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
2451
2452 * cvt.c (compare_ics): Oops.
2453
2454 * cvt.c (op_error): Oops.
2455
2456 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
2457 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
2458 (build_conv): Use them.
2459 (implicit_conversion): Use them.
2460 (convert_like): Handle them.
2461 (build_new_op): Handle builtin COND_EXPR again.
2462 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
2463 in lists of types for COND_EXPR.
2464 (add_builtin_candidate): Add enum candidates for COND_EXPR.
2465
2466Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
2467
2468 * typeck.c (build_modify_expr): Always attempt to build a call to
eb66be0e 2469 the assignment operator, even if we're using a default one.
14548a19
MS
2470 (convert_for_initialization): Call complete_type.
2471
2472Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2473
2474 * cvt.c (reference_binding): A REF_BIND gets the reference type.
2475 (implicit_conversion): Likewise.
2476 (convert_like): Likewise.
2477 (compare_ics): Likewise.
2478 (compare_qual): Likewise.
2479 (print_z_candidates): Handle no candidates.
2480 (build_new_op): Don't handle builtin COND_EXPR for now.
2481
2482Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
2483
2484 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
2485
2486Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2487
2488 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
2489
2490 * cvt.c (build_builtin_candidate): Oops.
2491 (build_new_op): Oops.
2492
2493 * method.c (build_opfncall): Pass COND_EXPR on.
2494 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
2495 (add_builtin_candidate{,s}): Likewise.
2496 (add_builtin_candidates): Likewise.
2497 (print_z_candidates, op_error, build_new_op): Likewise.
2498 (type_decays_to): New fn.
2499 * lex.c (init_lex): Just say ?: for COND_EXPR.
2500
2501Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
2502
2503 * typeck.c (complete_type): Call layout_type rather than building
eb66be0e 2504 a new array type.
14548a19
MS
2505
2506 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
eb66be0e 2507 only use ptrdiff_t.
14548a19
MS
2508
2509Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2510
2511 * cvt.c: Always compile the new overloading code (but don't use it).
2512 (implicit_conversion): Add a BASE_CONV when converting to
eb66be0e 2513 the same class type.
14548a19
MS
2514 (convert_like): Handle BASE_CONV.
2515
2516Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2517
2518 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
2519 (add_builtin_candidate): Likewise.
2520
2521 NEW_OVER changes:
2522 * typeck.c (build_x_function_call): Try an operator function
eb66be0e 2523 whenever we call an object of class type.
14548a19
MS
2524 * method.c (build_opfncall): Pass CALL_EXPRs through.
2525 * cvt.c (implicit_conversion): Do const-ref case first.
2526 (add_conv_candidate, build_object_call, op_error): New fns.
2527 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
2528 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
2529 builtin candidates.
2530 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
2531 Fall back on preincrement handling. Use op_error.
2532 Handle warn_synth.
2533 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
2534 an error_mark_node.
2535 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
2536 properly.
2537
2538Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
2539
2540 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
2541
2542Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
2543
2544 * typeck.c (build_component_ref_1): Use build_component_ref
2545 instead of open coding it here.
2546
2547Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
2548
2549 * g++.c (main): Don't link with -lg++.
2550
2551 NEW_OVER changes:
2552 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
eb66be0e 2553 result of build_type_conversion.
14548a19
MS
2554 (cp_convert): Only call build_method_call for ctors if
2555 build_type_conversion failed.
2556 (ptr_complete_ob): New function.
2557 (TYPE_PTR{,OB,MEM}_P): New macros.
2558 ({add,build}_builtin_candidate{,s}): New functions.
2559 (print_z_candidates): Handle builtins.
2560 (build_user_type_conversion_1): Don't use conversion fns for
2561 converting to a base type.
2562 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
2563 (build_user_type_conversion): Use convert_from_reference.
2564 (build_new_op): New function.
2565 (build_over_call): Fix handling of methods.
2566 (compare_ics): Handle AMBIG_CONV properly.
2567 * typeck2.c: Increment abort count.
2568 * method.c (build_opfncall): Forward most requests to build_new_op.
2569 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
2570
2571Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2572
2573 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
2574 invalid second argument to dump_expr_list.
2575
594740f3
MS
2576Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
2577
2578 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
2579
2580Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
2581
2582 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
2583 ASSEMBLE_EXTERNAL.
2584
2585Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
2586
2587 * typeck2.c (process_init_constructor): New pedwarn for using { }
2588 to initialize a pointer to member function.
2589 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
2590 we can avoid the new error.
2591
2592Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
2593
2594 * typeck.c (build_ptrmemfunc1): New function to hide details of
2595 pointer to member functions better.
2596
2597Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
2598
2599 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
2600 methods into the actual method, as we know the implied object is
2601 not used.
2602
2603Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2604
2605 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
2606 inside a system header.
2607
2608Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
2609
2610 * call.c (build_method_call): Call complete_type on the
2611 instance type.
2612
2613Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
2614
2615 * typeck.c (build_component_ref): Always build up an OFFSET_REF
2616 for obj_ptr->func so that we can know which object to use in a
2617 method call.
2618
2619Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
2620
2621 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
2622 around things. Also improve maintainability.
2623
2624Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
2625
2626 * decl.c (grokdeclarator): Check for overflow when evaluating an
eb66be0e 2627 array dimension.
594740f3
MS
2628
2629Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
2630
2631 * cvt.c (cp_convert): Don't check for ambiguity with constructor
eb66be0e 2632 if NEW_OVER.
594740f3
MS
2633
2634 * typeck.c (build_x_function_call): Pass function overload
eb66be0e 2635 questions to new overloading code if NEW_OVER.
594740f3 2636 * init.c (expand_aggr_init_1): Only check for type conversion ops
eb66be0e
MS
2637 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
2638 Don't check for ambiguity with constructor if NEW_OVER.
594740f3 2639 * cvt.c (convert_to_reference): Dereference the result of a type
eb66be0e 2640 conversion operator.
594740f3
MS
2641 (build_conv): Propagate ICS_USER_FLAG.
2642 (implicit_conversion): Call instantiate_type.
2643 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
2644 (add_function_candidate): Fix cv-quals on argtype.
2645 (print_z_candidates): New function.
2646 (build_new_function_call): Call it.
2647 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
2648 consider non-converting constructors.
2649 Call print_z_candidates.
2650 Return an AMBIG_CONV for an ambiguous conversion.
2651 (build_user_type_conversion): Handle AMBIG_CONV.
2652 (convert_like): Fix test for building TARGET_EXPR.
2653 Call instantiate_type.
2654 Handle AMBIG_CONV and LVALUE_CONV.
2655 (build_over_call): Handle 0 args and ellipsis.
2656 * cp-tree.def: Add AMBIG_CONV.
2657
e92cc029
MS
2658Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
2659
2660 * decl.c (lookup_name_real): If we find mem in obj when parsing
eb66be0e 2661 `obj->mem', make sure we return the right value.
e92cc029
MS
2662
2663Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
2664
2665 * search.c (get_base_distance): Call complete_type.
2666
2667Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
2668
2669 * decl.c (store_bindings): Make static.
2670
2671Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2672
2673 * init.c (expand_aggr_init_1): Don't check type conversions if
eb66be0e 2674 NEW_OVER.
e92cc029
MS
2675
2676 * cvt.c (z_candidate): Put back template field.
2677 (add_function_candidate): Set it.
2678 (add_template_candidate): Likewise.
2679 (joust): Use it.
2680 (compare_qual): Handle references and pointers to members.
2681 (compare_ics): Handle reference bindings.
2682
2683 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
2684
2685Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
2686
2687 * call.c (compute_conversion_costs): Call complete_type.
2688
2689 * tree.c (vec_binfo_member): Use comptypes instead of comparing
eb66be0e 2690 pointers, so we can handle template parameters.
e92cc029
MS
2691
2692Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
2693
2694 * cvt.c (cp_convert_to_pointer): We have to call complete_type
2695 here; let's make it explicit instead of a side effect of an
2696 error check.
2697
2698Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
2699
2700 * cvt.c (z_candidate): Remove template field.
2701 (reference_binding): Handle binding to temporary.
2702 (implicit_conversion): Likewise.
2703 (add_function_candidate): Handle artificial constructor parms.
2704 Handle functions with too few parms.
2705 (add_template_candidate): New function.
2706 (build_user_type_conversion_1): Handle constructors.
2707 (convert_like): Likewise.
2708 (build_over_call): Likewise.
2709 (build_new_function_call): Support templates.
2710 (compare_ics): Fix reference, inheritance handling.
2711
2712Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
2713
2714 * decl.c: Add signed_size_zero_node.
2715 (init_decl_processing): Build it.
2716 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
eb66be0e 2717 when we're trying to make a negative delta.
e92cc029
MS
2718
2719Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2720
2721 Stop doing this damn index==strchr variable name confusion.
2722 * class.c (add_virtual_function): Change local var INDEX to be
2723 named IDX.
2724 (add_method): Likewise.
2725 * lex.c (print_parse_statistics): Likewise.
2726 * search.c (make_memoized_table_entry): Likewise.
2727 (lookup_fnfields_here): Likewise.
2728 (lookup_field): Likewise.
2729 (lookup_fnfields): Likewise.
2730 (get_baselinks): Likewise.
2731 * sig.c (build_signature_table_constructor): Likewise.
2732 (build_signature_method_call): Likewise.
2733 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
2734 (get_member_function_from_ptrfunc): Likewise.
2735 (build_ptrmemfunc): Change local var INDEX to be IDX.
2736 (c_expand_start_case): Likewise.
2737
2738Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
2739
2740 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
eb66be0e 2741 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
e92cc029 2742 (convert_to_reference): Use build_type_conversion to convert to
eb66be0e 2743 the reference type directly.
e92cc029
MS
2744 (standard_conversion): Fix void* case, non-conversions.
2745 (reference_binding): Fix expr == 0 case, non-conversions.
2746 (convert_like): Support REF_BIND.
2747 (compare_qual): Split out from compare_ics.
2748 (compare_ics): Use it, handle icses with only a qual_conv.
2749
2750 * init.c (expand_vec_init): Don't crash if decl is NULL.
2751
2752Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
2753
2754 * mpw-config.in: New file, configury for Mac MPW.
2755 * mpw-make.sed: New file, makefile editing for MPW.
2756
2757Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2758
2759 * pt.c (instantiate_class_template): Call repo_template_used.
2760
2761 * search.c (lookup_conversions): Only lookup conversions in
eb66be0e 2762 complete types.
e92cc029
MS
2763
2764Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2765
2766 * cp-tree.def: Renamed from tree.def, to avoid confusion with
2767 gcc's tree.def.
2768 * cp-tree.h, lex.c: Include cp-tree.def.
2769 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
2770
2771Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
2772
2773 * init.c (build_vec_delete_1): Call complete_type.
2774
2775Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
2776
2777 * except.c (start_anon_func): Make sure anonymous functions are
eb66be0e 2778 never external.
e92cc029
MS
2779
2780Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
2781
2782 * decl.c (finish_function): If function_depth > 1, set nested.
2783
2784 * decl2.c (grokbitfield): Revert Bob's change.
2785 * class.c (finish_struct_1): Fix handling of named bitfield widths.
2786
2787Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
2788
2789 * pt.c (add_pending_template): Handle types.
2790 (lookup_template_class): With -fexternal-templates, just add the class
2791 to pending_templates instead of instantiating it now.
2792 * decl2.c (finish_file): Handle types in pending_templates.
2793
2794Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
2795
2796 * decl2.c (grokbitfield): Handle constant decls appropriately.
eb66be0e
MS
2797 Give an appropriate error message now instead of spewing core
2798 later.
e92cc029
MS
2799
2800Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
2801
2802 * decl2.c: Don't turn on thunks by default for now.
2803
2804Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
2805
2806 * typeck.c (complete_type): Handle error_mark_node.
2807 (common_type, OFFSET_TYPE): Handle template_type_parms.
2808
2809Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
2810
2811 * pt.c (instantiate_decl): If at_eof, call import_export_decl
eb66be0e 2812 regardless of DECL_INLINE.
e92cc029
MS
2813
2814 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
2815
2816 * class.c (finish_struct_bits): Copy TYPE_SIZE.
2817
2818 * rtti.c (build_dynamic_cast): Support templates.
2819 * tree.def: Support DYNAMIC_CAST_EXPR.
2820 * pt.c (tsubst_copy): Likewise.
2821 * decl2.c (build_expr_from_tree): Likewise.
2822
2823Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
2824
2825 * typeck.c (build_static_cast): Support templates.
2826 (build_const_cast): Likewise.
2827 * tree.def: Support CONST/STATIC_CAST_EXPR.
2828 * pt.c (tsubst_copy): Likewise.
2829 * decl2.c (build_expr_from_tree): Likewise.
2830
2831Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
2832
2833 * decl2.c (finish_vtable_vardecl): Don't trust
eb66be0e 2834 TREE_SYMBOL_REFERENCED for vtables of local classes.
e92cc029
MS
2835
2836Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
2837
2838 * pt.c (tsubst_copy): Handle operator T.
2839
2840Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2841
2842 * init.c (build_delete): Move creation of PARMS inside test of
2843 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
2844
2845Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
2846
2847 * typeck.c (build_conditional_expr): Don't assume that
2848 the arguments to ?: are always pointers or records.
2849
2850Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
2851
2852 * decl2.c (import_export_decl): Still emit static/weak/comdat
eb66be0e 2853 copies of inline template functions with -fno-implicit-templates.
e92cc029
MS
2854
2855Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
2856
2857 * init.c (build_delete): Determine the complete basetype
2858 path to the destructor we're calling.
2859
2860Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
2861
2862 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
eb66be0e
MS
2863 initialize the enum, because we really and truly don't know where
2864 it came from.
e92cc029 2865 (start_enum): Don't copy integer_zero_node because
eb66be0e 2866 build_enumerator will do it.
e92cc029
MS
2867
2868Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2869
2870 * decl.c (finish_function): Do access control on base destructors.
2871
2872 * pt.c (tsubst, case FUNCTION_DECL): Set up
eb66be0e
MS
2873 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
2874 hose us.
e92cc029
MS
2875
2876Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
2877
2878 * cvt.c (build_up_reference): If we have already extended the
eb66be0e 2879 lifetime of the temporary, don't try it again.
e92cc029
MS
2880 * typeck.c (c_expand_return): Don't try and convert the return
2881 value twice when we want a reference, once is enough.
2882
a0128b67
MS
2883Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
2884
2885 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
eb66be0e 2886 LOOKUP_ONLYCONVERTING at all for now.
a0128b67
MS
2887
2888 * search.c (add_conversions): Put the conversion function in
eb66be0e 2889 TREE_VALUE, the basetype in TREE_PURPOSE.
a0128b67
MS
2890 * cvt.c (build_type_conversion): Adjust.
2891 * cvt.c (build_expr_type_conversion): Adjust.
2892 * call.c (user_harshness): Adjust.
2893
2894Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
2895
2896 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
eb66be0e 2897 backend's benefit.
a0128b67 2898
14548a19
MS
2899Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
2900
2901 * except.c (expand_start_catch_block): Add a dummy region, if we
2902 get an error, so that we can avoid core dumping later.
2903
a0128b67
MS
2904Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
2905
2906 * cp-tree.h (OFFSET_REF): Remove.
2907 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
2908 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
d11ad92e
MS
2909 * init.c (expand_aggr_init_1): Likewise.
2910 (build_new): Likewise.
2911 * typeck.c (expand_target_expr): Likewise.
a0128b67
MS
2912
2913Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2914
2915 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
eb66be0e 2916 TARGET_EXPR.
a0128b67 2917
e349ee73
MS
2918Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
2919
2920 * cvt.c (build_up_reference): Redo how and when temporaries are
2921 created.
2922 * decl.c (grok_reference_init): Don't try and be smart about
2923 running cleanups.
2924
2925Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
2926
2927 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
2928 (TARGET_EXPR...), now that it has 4 arguments.
d11ad92e 2929 * tree.c (build_cplus_new): Likewise.
e349ee73
MS
2930
2931Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2932
2933 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
2934
2935 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
2936 * decl.c (struct saved_scope): Remove named_labels,
2937 {base,member}_init_list.
2938 (maybe_push_to_top_level): Don't set them. Call
2939 push_cp_function_context if appropriate.
2940 (pop_from_top_level): Likewise.
2941
2942 * method.c (do_build_assign_ref): Remove obsolete check of
2943 TYPE_HAS_ASSIGN_REF (basetype).
2944
2945 * decl.c (grokfndecl): Diagnose user definition of
eb66be0e 2946 implicitly-declared methods.
e349ee73
MS
2947
2948Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
2949
2950 * method.c (do_build_copy_constructor): Add code to give
eb66be0e
MS
2951 meaningful error messages instead of crashing.
2952 (do_build_assign_ref): Don't synthesize assignment operators for
2953 classes containing reference or const members.
e349ee73
MS
2954
2955 * class.c (struct base_info): Remove cant_synth_copy_ctor
2956 and cant_synth_asn_ref.
2957 (finish_base_struct): Remove the code that tries to conditionalize
eb66be0e
MS
2958 synthesis of copy constructors & assignment operators based on
2959 access permissions. Instead, let it fail when it tries to
2960 synthesize the copy constructor. This will give meaningful error
2961 messages instead of silently generating code to perform a bitcopy.
e349ee73
MS
2962
2963Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
2964
2965 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
eb66be0e 2966 determining types for constant values.
e349ee73
MS
2967
2968 * decl.c (struct named_label_list): Use instead of stuffing
2969 random items into a TREE_LIST node.
2970 (named_label_uses): Use the new struct.
d11ad92e
MS
2971 (poplevel): Likewise.
2972 (lookup_label): Likewise.
e349ee73 2973 (define_label): Add an error message to tell the user the line
eb66be0e
MS
2974 where the goto is located in addition to the destination of the
2975 goto.
e349ee73
MS
2976 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
2977 named_label_uses.
d11ad92e 2978 (finish_function): Likewise.
e349ee73
MS
2979
2980 (start_decl): Complain about defining a static data member
2981 in a different type from which it was declared.
2982
2983Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
2984
2985 * cvt.c (build_expr_type_conversion): Adjust.
2986
2987Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
2988
2989 * call.c (build_method_call): Always convert 'this' to the
eb66be0e 2990 appropriate type.
e349ee73
MS
2991
2992 * search.c (add_conversions): Put the conversion function in
eb66be0e 2993 TREE_VALUE, the type in TREE_PURPOSE.
e349ee73
MS
2994 * cvt.c (build_type_conversion): Adjust.
2995 * call.c (user_harshness): Adjust.
2996
2997 * method.c (emit_thunk): Call temporary_allocation and
eb66be0e 2998 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
e349ee73
MS
2999
3000 * tree.c (build_cplus_array_type): Handle tweaking of
eb66be0e 3001 TYPE_MAIN_VARIANT here.
e349ee73
MS
3002 * typeck.c (common_type): Not here.
3003
3004 * typeck.c (complete_type): Only try to complete an array type if
eb66be0e 3005 it has a domain.
e349ee73
MS
3006
3007Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
3008
3009 * decl.c (grokvardecl): Call complete_type.
3010 (grokdeclarator): Call complete_type for PARM_DECLs.
3011
3012Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3013
3014 * pt.c (instantiate_class_template): Re-set
eb66be0e 3015 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
e349ee73
MS
3016
3017Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
3018
3019 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
3020 smart enough to do it right.
d11ad92e 3021 * tree.c (cp_expand_decl_cleanup): Likewise.
e349ee73
MS
3022 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
3023 cp_expand_decl_cleanup.
d11ad92e
MS
3024 (store_parm_decls): Likewise.
3025 (hack_incomplete_structures): Likewise.
3026 * except.c (push_eh_cleanup): Likewise.
e349ee73
MS
3027
3028Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
3029
3030 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
3031 frontend to the backend where it belongs.
d11ad92e
MS
3032 * tree.c (unsave_expr): Likewise.
3033 (unsave_expr_now): Likewise.
3034 * tree.def (UNSAVE_EXPR): Likewise.
3035 * cp-tree.h (unsave_expr): Likewise.
3036 (unsave_expr_now): Likewise.
e349ee73
MS
3037
3038Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
3039
3040 * init.c (emit_base_init): Make sure the partial EH cleanups live
3041 on the function_obstack.
3042
ce122a86
MS
3043Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
3044
3045 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
3046 when checking for pointer types.
3047
3048Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3049
3050 * pt.c (instantiate_class_template): Remove obsolete check for
eb66be0e 3051 access declarations.
ce122a86
MS
3052
3053Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
3054
3055 * call.c (build_overload_call): Simplify calls to
3056 build_overload_call by removing last parameter.
d11ad92e
MS
3057 (build_method_call): Likewise.
3058 * cp-tree.h: Likewise.
3059 * method.c (build_opfncall): Likewise.
3060 * typeck.c (build_x_function_call): Likewise.
ce122a86
MS
3061
3062Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
3063
3064 * call.c (default_parm_conversions): Factor out common code.
3065 (build_method_call): Use it.
3066 (build_overload_call_real): Use it.
3067
4ac14744
MS
3068Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
3069
3070 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
3071 but pedwarn as the code is bogus.
d11ad92e 3072 * typeck.c (decay_conversion): Likewise.
4ac14744
MS
3073 (build_function_call_real): Use build_addr_func instead of
3074 default_conversion. Don't allow pointer-to-method functions down
3075 here.
3076 (build_unary_op): Use real pointer-to-member functions instead of
3077 fake ones.
3078 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
3079 (convert_for_assignment): Removed some obsolete code.
3080 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
3081 build_x_function_call instead of current_class_ptr. Only call
3082 digest_init once on an initializer, we do this just checking
3083 TREE_TYPE.
3084 (build_expr_from_tree): Pass current_class_ref to
3085 build_x_function_call instead of current_class_ptr.
d11ad92e
MS
3086 * init.c (build_member_call): Likewise.
3087 * pase.y: Likewise.
4ac14744
MS
3088 * error.c (dump_expr): Handle OFFSET_REFs better.
3089 * pt.c (unify): Handle pointer-to-member functions better.
3090 * decl.c (finish_function): Clear out current_class_ref just like
3091 we do for current_class_ptr.
3092
3093 * typeck.c (get_delta_difference): Handle virtual bases better.
3094
3095Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
3096
3097 * sig.c (build_signature_table_constructor): Use the delta for
3098 the original basetype for this virtual function with thunks.
3099 (build_signature_method_call): We still need to adjust 'this'
3100 with thunks.
3101
3102Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
3103
3104 * call.c (build_addr_func): New routine. Used to get the `real'
3105 address of a function or a method. Needed to avoid getting a
3106 pointer-to-member function.
3107 (build_call): New routine to build CALL_EXPRs.
3108 (build_method_call): Use it.
d11ad92e
MS
3109 * cvt.c (convert_to_aggr): Likewise.
3110 * typeck.c (build_function_call_real): Likewise.
4ac14744
MS
3111 * sig.c (build_signature_table_constructor): Use build_addr_func.
3112 * cp-tree.h (build_call, build_addr_func): Declare them.
3113
3114Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
3115
3116 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
3117 * parse.y: Remove uses of LOOKUP_AGGR.
3118
3119Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
3120
3121 * *.[chy]: Rename current_class_decl to current_class_ptr, and
3122 C_C_D to current_class_ref.
3123
3124Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3125
3126 * call.c (convert_harshness): Tighten up pointer conversions.
3127
3128Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
3129
3130 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
3131 (finish_file): Likewise.
3132
3133Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
3134
3135 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
3136
3137 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
eb66be0e 3138 code.
4ac14744
MS
3139
3140Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3141
3142 * decl2.c: Turn on thunks by default where supported.
3143
4dabb379
MS
3144Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
3145
3146 * cp-tree.h (build_overload_call_maybe): Removed.
3147 * call.c (build_overload_call_real): Invert meaning of last arg to
3148 be require_complete.
d11ad92e 3149 (build_overload_call): Likewise.
4dabb379
MS
3150 * typeck.c (build_x_function_call): Use build_overload_call_real
3151 instead of build_overload_call_maybe.
3152
a50f0918
MS
3153Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
3154
3155 * decl2.c (finish_file): Don't try to emit functions that haven't
eb66be0e 3156 been compiled.
a50f0918
MS
3157
3158Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3159
3160 * decl2.c (finish_vtable_vardecl): Oops.
3161
3162 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
eb66be0e 3163 Also store the bindings from previous_class_values.
a50f0918
MS
3164 (pop_from_top_level): Restore them.
3165
3166Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
3167
3168 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
eb66be0e 3169 symbol has been referenced.
a50f0918
MS
3170 (finish_file): Re-join synthesis/vtable loop with inline emission
3171 loop, disable inlining when an inline is output.
3172
3173Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
3174
3175 * except.c (init_exception_processing): Setup saved_in_catch.
3176 (push_eh_cleanup): Reset __eh_in_catch.
3177 (expand_start_catch_block): Set __eh_in_catch.
3178
3179Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
3180
3181 * except.c (push_eh_cleanup): Add tracking for whether or not we
3182 have an active exception object.
3183 (expand_builtin_throw): Use it to make sure a rethrow without an
3184 exception object is caught.
3185
3186Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
3187
3188 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
eb66be0e 3189 cache.
a50f0918 3190
809c8c30
JM
3191Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
3192
3193 * decl2.c (finish_file): Also use sentries for vars with
eb66be0e
MS
3194 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
3195 created).
809c8c30
JM
3196
3197 * lex.c (handle_cp_pragma): Disable #pragma
eb66be0e 3198 interface/implementation if SUPPORTS_ONE_ONLY > 1.
809c8c30
JM
3199
3200Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
3201
3202 * method.c (emit_thunk): Wrap default case in
eb66be0e 3203 temporary/permanent_allocation.
809c8c30
JM
3204
3205 * method.c (make_thunk): Use DECL_ONE_ONLY.
3206 (emit_thunk): Call assemble_end_function.
3207
46b02c6d
MS
3208Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
3209
3210 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
d11ad92e 3211 (import_export_decl): Likewise.
46b02c6d
MS
3212 (finish_prevtable_vardecl): Disable vtable hack if
3213 SUPPORTS_ONE_ONLY > 1.
3214
3215Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
3216
3217 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
3218 PREDECREMENT_EXPRs take two arguments, not one.
3219
3220Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
3221
3222 * class.c (build_vtable_entry): Don't build thunks for abstract
eb66be0e 3223 virtuals.
46b02c6d
MS
3224
3225 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
eb66be0e 3226 frontend.
46b02c6d
MS
3227
3228Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
3229
3230 * class.c (set_rtti_entry): Use size_zero_node.
d11ad92e 3231 (build_vtable): Likewise.
46b02c6d
MS
3232
3233Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
3234
3235 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
d11ad92e 3236 (prepare_fresh_vtable): Likewise.
46b02c6d
MS
3237
3238Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
3239
3240 * method.c (emit_thunk): Call mark_used on the target function.
3241
3242 * call.c (build_method_call): Don't warn about pending templates.
3243
c7690c68
JM
3244Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3245
3246 * decl2.c (finish_file): Fix list walking logic.
3247
46b02c6d
MS
3248 * typeck2.c (check_for_new_type): Only warn if -pedantic.
3249
3250Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
3251
3252 * class.c (finish_struct_1): Remove old code for
3253 dont_allow_type_definitions.
d11ad92e 3254 * cp-tree.h: Likewise.
46b02c6d
MS
3255 * spew.c: Make sure cp-tree.h is included before parse.h, so the
3256 definition of flagged_type_tree is found before it is used.
d11ad92e 3257 * lex.c: Likewise.
46b02c6d 3258 * parse.y: Added the ftype member to the type union, and changed a
eb66be0e 3259 number of rules to use it instead of ttype. Added calls to
46b02c6d
MS
3260 check_for_new_type() as appropriate.
3261 * typeck2.c (check_for_new_type): New function for checking
3262 if a newly defined type appears in the specified tree.
3263 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
3264 for check_for_new_type().
3265
67d743fe
MS
3266Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
3267
c7690c68
JM
3268 * decl2.c (finish_file): Only use a sentry if the decl is public.
3269
67d743fe
MS
3270 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
3271 don't pass LOOKUP_ONLYCONVERTING.
3272
3273Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
3274
3275 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
3276 properly keeps track of const and volatile type modifiers.
3277
3278Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
3279
3280 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
3281 * pt.c (comp_template_args): Use it.
3282
3283 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
3284 assemble_external for artificial function decls.
3285
3286 * decl.c (cp_finish_decl): Oops.
3287
3288Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
3289
3290 * decl2.c (import_export_decl): Put static data member templates
eb66be0e
MS
3291 into common storage, or make them weak, depending on whether they
3292 are dynamically or statically initialized.
67d743fe
MS
3293 (get_sentry): New function.
3294 (finish_file): Do import_export_decl for static data members before
3295 building the init/fini functions. Don't init/fini a variable that's
3296 EXTERNAL. Use a sentry for variables in common. Fix mismatching
3297 push/pop_temp_slots.
3298 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
eb66be0e 3299 expand_static_init thang.
67d743fe
MS
3300 * method.c (get_id_2): New function.
3301
3302Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
3303
3304 * parse.y (empty_parms): Make sure we use C++-style prototypes
eb66be0e 3305 when we're declaring member functions.
67d743fe
MS
3306
3307Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3308
3309 * Makefile.in (CONFLICTS): 16 s/r conflicts.
3310 * parse.y (self_template_type): New nonterminal.
3311
a80e4195
MS
3312Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
3313
3314 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
eb66be0e 3315 name.
a80e4195
MS
3316 * parse.y (base_class.1): Allow 'typename foo::bar'.
3317
3318 * lex.c (check_newline): Remove #pragma code that plays with the
eb66be0e
MS
3319 input stream, since we now deal with tokens. Clear nextchar when
3320 we're done.
a80e4195
MS
3321 (handle_cp_pragma): Use real_yylex.
3322 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
3323 in one place.
3324
3325 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
3326
3327 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
3328
3329Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3330
3331 * parse.y: New token SELFNAME for potential constructor.
3332 * spew.c (yylex): Handle it.
3333 * lex.c (identifier_type): Produce it.
3334
3335 * parse.y (complete_type_name): In :: case, don't push class binding.
d11ad92e 3336 (complex_type_name): Likewise.
a80e4195
MS
3337
3338Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
3339
3340 * typeck.c (build_reinterpret_cast): Handle pointer to member
eb66be0e 3341 functions.
a80e4195
MS
3342
3343Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
f72bbc37
BK
3344
3345 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
eb66be0e 3346 pragmas.
f72bbc37 3347 (check_newline): Put the vtable/unit/implementation/interface pragma
eb66be0e 3348 code into handle_cp_pragma, replacing it with a call.
f72bbc37 3349 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
eb66be0e 3350 args. Get the next token after handling the pragma token.
a80e4195
MS
3351
3352Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
3353
3354 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
d11ad92e 3355 (convert_to_pointer_force): Likewise.
a80e4195
MS
3356
3357 * init.c (build_new): Fix array new without -fcheck-new.
3358
3359Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3360
3361 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
3362 tree.c: Lose TYPE_NESTED_NAME.
3363
3364 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
3365 as identifiers.
3366
3367 * tree.def: Add VEC_INIT_EXPR.
3368 * expr.c (cplus_expand_expr): Handle it.
3369 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
eb66be0e 3370 the extra file-scope symbol nastiness.
a80e4195
MS
3371
3372Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
3373
3374 * method.c (make_thunk): Thunks are static.
3375 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
3376
3377 * decl2.c (mark_vtable_entries): Emit thunks as needed.
3378 (finish_file): Don't emit them here.
3379
3380Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
3381
3382 * rtti.c (build_dynamic_cast): Handle null pointers.
3383 (ifnonnull): New function.
f72bbc37 3384
6b5fbb55
MS
3385Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
3386
a80e4195 3387 * call.c (build_method_call): Remember the original basetype we
eb66be0e
MS
3388 were called with. Give an error message instead of trying
3389 (incorrectly) to call a non-static member function through a
3390 non-inherited class.
a80e4195 3391
6b5fbb55
MS
3392 * search.c (expand_upcast_fixups): Mark the new fixup as
3393 DECL_ARTIFICIAL.
3394
3395Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3396
3397 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
3398
3399 * class.c (set_rtti_entry): Fix for thunks.
3400
3401 * decl2.c (import_export_decl): Still emit typeinfo fns for
3402 cv-variants of builtin types.
3403
3404 * rtti.c (expand_class_desc): Set up base_info_type_node here.
3405 (init_rtti_processing): Instead of here.
3406
3407Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3408
3409 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
3410 (build_typeid): Only complain about taking dynamic typeid without
3411 -frtti.
3412
3413 * decl2.c: flag_rtti defaults to 1.
3414
3415 * rtti.c (get_tinfo_var): The general class case is now smaller.
3416 (init_rtti_processing): Pack the latter three fields of base_info
3417 into 32 bits.
3418
3419Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
3420
3421 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
3422
3423Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
3424
3425 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
3426 (push_memoized_context): Split out code to undefer pop_type_level to
3427 (clear_memoized_cache): here.
3428 (pop_memoized_context): We can only handle one layer of deferral of
3429 pop_type_level so clear the cache, if there was a previous level.
3430
3431Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3432
3433 * rtti.c (init_rtti_processing): Build up base_info_type_node.
3434 (expand_class_desc): Use one pointer to an array of base_info
3435 structs, passed using a CONSTRUCTOR.
3436
3437Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
3438
3439 * class.c (build_vbase_path): Remove block extern for
3440 flag_assume_nonnull_objects here.
3441 (build_vfn_ref): Split out functionality into build_vtbl_ref.
3442 (build_vtbl_ref): New routine.
3443 (build_vtable): Set up rtti info here.
3444 (add_virtual_function): Note in CLASSTYPE_RTTI the best
3445 place where we can get the rtti pointers from to avoid having to
3446 search around for a place.
d11ad92e
MS
3447 (finish_base_struct): Likewise.
3448 (finish_struct_1): Likewise. Never create totally new vtables
3449 with totally new vtable pointers for rtti. Disable code to layout
3450 vtable pointers better until we want to break binary
3451 compatibility.
6b5fbb55
MS
3452 * rtti.c (build_headof_sub): New routine to convert down to a
3453 sub-object that has an rtti pointer in the vtable.
3454 (build_headof): Use it. Also, use build_vtbl_ref now to be more
3455 maintainable.
3456 (build_dynamic_cast): Make sure we have saved it, if we need to.
3457 * search.c (dfs_init_vbase_pointers): Disable code that deals with
3458 a more efficient vtable layout, enable later.
3459 * call.c (flag_assume_nonnull_objects): Moved declaration to
3460 * cp-tree.h: here. Declare build_vtbl_ref.
3461 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
3462 function calls that want a tree.
3463
3464Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3465
3466 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
eb66be0e 3467 other X subobjects in the most derived type. Ack.
6b5fbb55
MS
3468
3469 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
eb66be0e 3470 get_typeid will do it for us.
6b5fbb55
MS
3471 (get_typeid_1): Break out call-building for expand_*_desc to use.
3472 (get_typeid): Call it.
d11ad92e 3473 (expand_*_desc): Likewise.
6b5fbb55 3474 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
eb66be0e 3475 and void *.
6b5fbb55
MS
3476 (init_decl_processing): Lose builtin_type_tdescs lossage.
3477 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
3478
3479Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
3480
3481 * pt.c (tsubst): When calling set_nested_typename, use
eb66be0e
MS
3482 TYPE_NESTED_NAME (current_class_type) instead of
3483 current_class_name.
6b5fbb55 3484
d11ad92e
MS
3485 * decl.c (pushdecl): Likewise.
3486 (pushdecl_class_level): Likewise.
6b5fbb55
MS
3487 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
3488 set_nested_typename.
3489
3490Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
3491
3492 * rtti.c (synthesize_tinfo_fn): Handle arrays.
3493
3494 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
3495
3496Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
3497
3498 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
3499 (init_rtti_processing): Lose bad_cast_type.
3500 (build_dynamic_cast): Use throw_bad_cast.
3501
3502 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
3503
3504 * decl2.c (finish_file): Don't synthesize artificial functions
eb66be0e 3505 that are external and not inline.
6b5fbb55
MS
3506
3507 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
3508
3509 * decl2.c (finish_file): Handle having new inlines added to
eb66be0e 3510 saved_inlines by synthesis.
6b5fbb55
MS
3511
3512 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
3513
3514Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3515
3516 RTTI rewrite to initialize nodes as needed, not require that
3517 users #include <typeinfo>, complete functionality and reduce wasted
3518 space.
3519 * rtti.c (init_rtti_processing): New fn.
3520 (build_typeid): The vtable entry is now a function.
3521 (get_tinfo_var): New fn.
d11ad92e 3522 (get_tinfo_fn): Likewise.
6b5fbb55
MS
3523 (get_typeid): Use it.
3524 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
3525 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
3526 points __rtti_*.
3527 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
3528 (synthesize_tinfo_fn): New fn.
3529 * method.c (build_t_desc_overload): Lose.
3530 (build_overload_with_type): More generic.
3531 * decl.c (init_decl_processing): Call init_rtti_processing.
3532 * class.c (set_rtti_entry): Use get_tinfo_fn.
3533 * decl2.c (mark_vtable_entries): Mark the rtti function.
3534 (finish_prevtable_vardecl): Don't build_t_desc.
3535 (import_export_decl): Handle tinfo functions.
d11ad92e 3536 (finish_file): Likewise.
6b5fbb55
MS
3537 * typeck.c (inline_conversion): New fn.
3538 (build_function_call_real): Use it.
3539 * cp-tree.h: Add decls.
3540
3541 * method.c (hack_identifier): Also convert component_refs from
eb66be0e 3542 references.
6b5fbb55
MS
3543
3544 * lex.c (cons_up_default_function): Use the type, not the name, in
eb66be0e 3545 declspecs.
6b5fbb55
MS
3546
3547 * decl2.c (import_export_vtable): Fix weak vtables.
3548
3549Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
3550
3551 * search.c (get_base_distance_recursive): Fix access checks for
eb66be0e 3552 protected bases.
6b5fbb55
MS
3553
3554Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3555
3556 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
3557 cp-tree.h.
3558 (convert_harshness): Add prototypes wrapped by PROTO.
3559 * decl2.c (grok_function_init): Likewise.
3560 (do_toplevel_using_decl): Change to void return type.
3561 * class.c (build_vtable_entry): Remove decl of make_thunk.
3562 (merge_overrides): Fix order of arg definitions.
3563 (finish_vtbls): Likewise.
3564 (fixup_vtable_deltas): Likewise.
3565 (modify_all_direct_vtables): Likewise.
3566 (modify_all_indirect_vtables): Likewise.
3567 * search.c (get_base_distance_recursive): Likewise.
3568 (get_abstract_virtuals_1): Likewise.
3569 (fixup_virtual_upcast_offsets): Likewise.
3570 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
3571 * init.c (perform_member_init): Fix order of arg definitions.
3572 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
3573 * cp-tree.h (make_thunk): Add decl.
3574 (overload_template_name, push_template_decl): Add decls.
3575 (do_toplevel_using_decl): Change to void return type.
3576 (vec_binfo_member): Add decl.
3577
cdf5b885
MS
3578Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3579
3580 * typeck.c (mark_addressable, convert_for_assignment,
3581 convert_for_initialization, pointer_int_sum, pointer_diff,
3582 unary_complex_lvalue): Add prototypes wrapped by PROTO.
3583 (convert_sequence): #if 0 fn decl, since definition also is.
3584
3585Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
3586
3587 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
3588 cast to pointer types for type searching.
3589
3590Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3591
3592 * typeck.c (get_delta_difference): Use cp_error, not error, in the
3593 case where BINFO == 0.
3594
3595Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
3596
3597 * call.c (build_method_call): Fix wording of error messages so
3598 constructors come out right.
3599
3600Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
3601
3602 * decl.c (push_overloaded_decl): Don't warn about hidden
3603 constructors when both the type and the function are declared
3604 in a system header file.
3605
c91a56d2
MS
3606Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
3607
3608 * class.c (finish_struct_1): Propagate the TYPE_PACKED
3609 flag for the type to the type's fields.
3610
3611Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3612
3613 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
3614
3615Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
3616
3617 * class.c (base_info, finish_base_struct): Replace
3618 needs_virtual_dtor with base_has_virtual.
3619
3620 (finish_struct_1): Remove the old code that tried to make default
eb66be0e
MS
3621 destructors virtual. Use base_has_virtual when checking if we need
3622 to add a vtable entry for the rtti code.
c91a56d2
MS
3623
3624Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
3625
3626 * pt.c (push_template_decl): Complain about template decl with
eb66be0e 3627 inappropriate declaration.
c91a56d2
MS
3628
3629Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
3630
3631 * typeck.c (build_x_unary_op): Remove bogus check for taking
3632 the address of a member function.
3633
3634Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3635
3636 * parse.y (constructor_declarator): Only push the class if
3637 we are not already in the class.
3638
3639Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
6752b7d4
JL
3640
3641 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
3642 Add additional argument to INIT_CUMULATIVE_ARGS.
3643
c91a56d2
MS
3644Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
3645
3646 * decl.c (shadow_tag): Fix error about anon union with methods.
3647
3648 * parse.y (self_reference): Only generate a self-reference if this
eb66be0e 3649 is a non-template class.
c91a56d2
MS
3650 (opt.component_decl_list): Only use it if it was generated.
3651
3652 * parse.y (component_decl_1): Use constructor_declarator.
d11ad92e
MS
3653 (fn.def2): Likewise.
3654 (notype_component_declarator0): Likewise.
c91a56d2
MS
3655
3656Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
3657
3658 * typeck.c (build_x_unary_op): Add checks for taking the address
3659 of a TARGET_EXPR or of a member function, and give appropriate
3660 warnings.
3661
3662Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
3663
3664 * pt.c (process_template_parm): Allow template type parms to be
eb66be0e 3665 used as types for template const parms.
c91a56d2
MS
3666
3667Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
3668
3669 * init.c (expand_vec_init): Ensure the eh cleanups are on the
3670 function_obstack.
3671
3672Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3673
3674 * decl.c (lookup_name_real): Be even more picky about the
eb66be0e 3675 ambiguous lookup warning.
c91a56d2
MS
3676 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
3677 * parse.y (constructor_declarator): Rather than here.
3678
3679 * parse.y (constructor_declarator): New nonterminal.
3680 (fn.def1): Use it.
d11ad92e 3681 (explicit_instantiation): Likewise.
c91a56d2
MS
3682
3683Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3684
3685 Add implicit declaration of class name at class scope.
3686 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
3687 * parse.y (self_reference): New nonterminal.
3688 (opt.component_decl_list): Use it.
3689 (fn.def1): Add nested_name_specifier type_name cases.
3690 * class.c (build_self_reference): New function.
3691 (finish_struct): Handle access_default later, move self-reference
3692 decl to the end.
3693 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
3694 * cp-tree.h: Adjust.
3695
3696 * pt.c (do_function_instantiation): Separate handling of member
eb66be0e 3697 functions and non-member functions properly.
c91a56d2
MS
3698
3699Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3700
3701 * pt.c (process_template_parm): Improve error for 'volatile class K'.
3702
3703 * class.c (finish_struct_1): Check the right slot for destructors.
3704
3705 * decl.c (start_enum): Complain about enum templates.
3706
3707Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
3708
3709 * init.c (resolve_offset_ref): Offset pointers to member data by one.
d11ad92e 3710 * typeck.c (unary_complex_lvalue): Likewise.
c91a56d2
MS
3711
3712Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
3713
3714 * typeck.c (c_expand_return): Check for a returned local
3715 array name, similar to the check for an ADDR_EXPR.
3716
3717Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
3718
3719 * decl.c (cp_finish_decl): Don't build cleanups for static
eb66be0e 3720 variables here.
c91a56d2
MS
3721
3722Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
3723
3724 * typeck.c (build_modify_expr): Fix error messages to be more
3725 accurate.
3726 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
3727 assignment operators.
d11ad92e 3728 * error.c (assop_as_string): Likewise. Add support for `%Q' for
c91a56d2
MS
3729 assignment operators.
3730
909e536a
MS
3731Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
3732
c91a56d2 3733 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
eb66be0e
MS
3734 give an error if initialized. Pedwarn about nested type with the
3735 same name as its enclosing class.
c91a56d2 3736
909e536a
MS
3737 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
3738
3739 * typeck.c (require_complete_type): Be sure to instantiate the
eb66be0e 3740 MAIN_VARIANT of the type.
909e536a
MS
3741
3742 * decl2.c (finish_file): Instantiate pending templates before
eb66be0e 3743 processing static constructors and destructors.
909e536a
MS
3744
3745 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
eb66be0e 3746 unless at_eof.
909e536a
MS
3747
3748Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
3749
3750 * decl2.c (delete_sanity): If error_mark_node is passed
3751 in as an expression, quit while we're ahead.
3752
3753 * decl.c (grokdeclarator): Give an error message if `friend'
3754 is combined with any storage class specifiers.
3755
fc378698
MS
3756Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
3757
3758 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
eb66be0e 3759 definition of nonexistent nested type.
fc378698
MS
3760
3761 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
eb66be0e 3762 not to say 'typedef'.
fc378698
MS
3763
3764Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3765
3766 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
3767 * search.c (dfs_walk, dfs_init_vbase_pointers,
3768 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
3769 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
3770
3771Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
3772
3773 * except.c (build_throw): Support minimal parse.
3774 * pt.c (tsubst_copy): Support THROW_EXPR.
d11ad92e 3775 * decl2.c (build_expr_from_tree): Likewise.
fc378698
MS
3776
3777 * pt.c (mangle_class_name_for_template): Always allocate
eb66be0e 3778 scratch_firstobj.
fc378698
MS
3779
3780Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
3781
3782 * cvt.c (cp_convert_to_pointer): Give an appropriate error
3783 when trying to cast from an incomplete type.
3784
3785Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3786
3787 * pt.c (instantiate_class_template): Don't bother setting up
eb66be0e
MS
3788 CLASSTYPE_TAGS explicitly, as the nested types will add
3789 themselves.
fc378698
MS
3790
3791Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
3792
3793 * decl.c (shadow_tag): Remove old error check for usage of
3794 an enum without a previous declaration.
3795 (xref_tag): Add error message about usage of enums without a
3796 previous declaration.
3797
3798Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
3799
3800 * lex.c (do_identifier): Only do name consistency check if we're
eb66be0e 3801 parsing.
fc378698
MS
3802
3803 * pt.c (push_template_decl): Don't crash if we get a member defn
3804 that doesn't match.
3805
3806 * decl.c (xref_tag_from_type): New function to do an xref without
eb66be0e 3807 always having to figure out code_type_node.
fc378698
MS
3808 * cp-tree.h: Declare it.
3809 * pt.c (instantiate_class_template): Use it for friend classes.
eb66be0e 3810 (lookup_template_class): Use it.
fc378698
MS
3811
3812 * typeck2.c (build_functional_cast): Pull out a single parm before
eb66be0e 3813 passing it to build_c_cast.
fc378698
MS
3814
3815Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
3816
3817 * expr.c (do_case): Give an error message if a pointer is
3818 given as a case value.
3819
3820Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
3821
3822 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
eb66be0e 3823 an overload list.
fc378698
MS
3824
3825 * lex.c (cons_up_default_function): Really, now, interface hackery
eb66be0e 3826 does not apply to synthesized methods.
fc378698
MS
3827
3828Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
3829
3830 * call.c (build_method_call): Ctors and dtors now have special names
3831 with respect to lookups.
d11ad92e
MS
3832 * class.c (add_method): Likewise.
3833 (grow_method): Likewise.
3834 (finish_struct_methods): Likewise.
3835 (warn_hidden): Likewise.
3836 (finish_struct_1): Likewise.
3837 * cvt.c (convert_to_reference): Likewise.
3838 (convert_to_aggr): Likewise.
3839 (cp_convert): Likewise.
3840 * decl2.c (check_classfn): Likewise.
3841 * init.c (expand_member_init): Likewise.
3842 (expand_default_init): Likewise.
3843 (expand_aggr_init_1): Likewise.
3844 (build_offset_ref): Likewise.
3845 (build_new): Likewise.
3846 (build_delete): Likewise.
3847 * lex.c (do_inline_function_hair): Likewise.
3848 * search.c (lookup_field_1): Likewise.
3849 (lookup_fnfields_here): Likewise.
3850 (lookup_field): Likewise.
3851 (lookup_fnfields): Likewise.
3852 (get_virtual_destructor): Likewise.
3853 (dfs_debug_mark): Likewise.
3854 (dfs_pushdecls): Likewise.
3855 (dfs_compress_decls): Likewise.
3856 * tree.c (layout_basetypes): Likewise.
3857 * typeck.c (build_component_ref): Likewise.
3858 (build_x_function_call): Likewise.
3859 (build_modify_expr): Likewise.
3860 (convert_for_initialization): Likewise.
3861 (build_functional_cast): Likewise.
3862 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
fc378698
MS
3863 (CTOR_NAME): New.
3864 (DTOR_NAME): New.
3865 * decl.c (ctor_identifier): New.
3866 (dtor_identifier): New.
3867 (init_decl_processing): Set them.
3868
3869Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
3870
3871 * typeck.c (build_component_ref): Don't get confused by fields whose
3872 context has no type name, like pointer to member functions.
3873
3874Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
3875
3876 * decl.c (grokdeclarator): Handle typedef without declarator.
3877
3878 * pt.c (tsubst): Handle SCOPE_REF in declarator.
3879
3880 * parse.y (bad_parm): Catch another case of missing `typename'.
3881
3882 * lex.c (yyprint): Handle TYPE_DECLs.
3883
3884 * decl.c (start_function): Don't try to be clever.
3885
3886 * lex.c: Lose compiler_error_with_decl.
3887 * typeck2.c: Lose error_with_aggr_type.
3888 (incomplete_type_error): Use cp_* instead of old functions.
d11ad92e
MS
3889 (readonly_error): Likewise.
3890 * typeck.c (convert_arguments): Likewise.
3891 * search.c (lookup_nested_field): Likewise.
3892 * method.c (make_thunk): Likewise.
3893 * decl.c (grokparms): Likewise.
fc378698
MS
3894 * cp-tree.h: Update.
3895
3896 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
eb66be0e 3897 and value.
fc378698
MS
3898
3899Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
3900
3901 * method.c (build_opfncall): When deleting a pointer to an
3902 array, build a new pointer to the tree past any ARRAY_TYPE
3903 nodes.
3904
3905Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3906
3907 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
3908
3909Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
3910
3911 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
eb66be0e 3912 and ! DECL_INLINE.
fc378698
MS
3913
3914 * decl.c (finish_function): Don't set nested based on
eb66be0e 3915 hack_decl_function_context.
fc378698 3916 * parse.y (function_try_block): Check for nested function.
d11ad92e 3917 (pending_inlines): Likewise.
fc378698
MS
3918
3919 * decl2.c (build_expr_from_tree): If a unary op already has a
eb66be0e 3920 type, just return it.
fc378698
MS
3921
3922 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
3923
3924 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
3925 (finish_file): Check the return value of walk_vtables.
3926 (finish_prevtable_vardecl): Return int.
d11ad92e
MS
3927 (finish_vtable_vardecl): Likewise.
3928 (prune_vtable_vardecl): Likewise.
3929 * lex.c (set_vardecl_interface_info): Likewise.
fc378698
MS
3930 * cp-tree.h: Adjust return types.
3931
3932 * class.c (delete_duplicate_fields_1): Don't complain about
eb66be0e 3933 duplicate nested types if they're the same type.
fc378698
MS
3934 (finish_struct): Remove check for duplicate.
3935 * decl2.c (grokfield): Don't check for typedef of anonymous type.
3936
3937Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
3938
3939 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
3940
3941 * decl.c (grokdeclarator): Lose special handling of class-level
eb66be0e
MS
3942 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
3943 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
fc378698
MS
3944
3945 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
3946
3947 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
3948
3949 * search.c (compute_access): Fix handling of anonymous union
eb66be0e 3950 members.
fc378698 3951 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
eb66be0e 3952 from anonymous unions to their members.
fc378698
MS
3953
3954 * typeck.c (build_x_function_call): For static member functions,
eb66be0e 3955 hand off to build_member_call.
fc378698
MS
3956
3957Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
3958
3959 * typeck.c (build_component_ref): Handle OFFSET_REFs.
3960
3961 * init.c (expand_vec_init): Fix init == 0 case.
3962
3963Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3964
3965 * init.c (build_new): Pedwarn about init and array new.
3966 (expand_vec_init): Handle lists, use convert_for_initialization
3967
3968 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
eb66be0e 3969 when converting to an aggregate type.
fc378698
MS
3970 * cvt.c (cp_convert): Pass it through.
3971
3972 * typeck.c (build_conditional_expr): Handle user-defined
eb66be0e 3973 conversions to slightly different types.
fc378698
MS
3974
3975 * decl.c (grokdeclarator): Force an array type in a parm to be
eb66be0e 3976 permanent.
fc378698
MS
3977
3978 * decl2.c (do_using_directive): Sorry.
d11ad92e 3979 (do_namespace_alias): Likewise.
fc378698
MS
3980 * lex.c (real_yylex): Warn about using the `namespace' keyword.
3981
3982Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3983
3984 * parse.y (datadef): Move call to note_list_got_semicolon up.
3985
934c6b13
MS
3986Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
3987
3988 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
3989
3990Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
3991
3992 * decl.c (cp_finish_decl): The exception regions have to be
3993 nested, not overlapping. We start the exception region for a
3994 decl, after it has been fully built, and all temporaries for it
3995 have been cleaned up.
3996
3997Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
3998
3999 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
4000
e76a2646
MS
4001Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
4002
4003 * tree.def: Add RETURN_INIT.
4004 * pt.c (instantiate_decl): Handle RETURN_INIT.
4005 * decl.c (store_return_init): Handle minimal_parse_mode.
4006
4007 * tree.c (cp_build_type_variant): Just return an error_mark_node.
4008 * decl.c (make_typename_type): Don't try to get the file and line
eb66be0e 4009 of an identifier.
e76a2646
MS
4010 * typeck.c (comptypes): Handle TYPENAME_TYPE.
4011
4012Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
4013
4014 * decl.c (poplevel): Make sure we clear out and restore old local
4015 non-VAR_DECL values by default when they go out of scope.
4016
4017Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4018
4019 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
eb66be0e 4020 referring to addresses of variables and functions.
e76a2646
MS
4021
4022 * error.c (dump_expr): Support SIZEOF_EXPR.
4023
4024 * init.c (do_friend): Use the return value of check_classfn.
4025
4026 * typeck.c (convert_arguments): Call complete_type.
4027
4028 * method.c (hack_identifier): After giving an error, set value to
eb66be0e 4029 error_mark_node.
e76a2646
MS
4030
4031Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4032
4033 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
eb66be0e 4034 lossage for local classes.
e76a2646
MS
4035 * cp-tree.h: Declare it.
4036 * decl.c (lookup_name_real): Evil, painful hack for local classes.
4037 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
4038 Use hack_decl_function_context.
4039 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
4040 (start_function): Use hack_decl_function_context.
d11ad92e
MS
4041 (finish_function): Likewise.
4042 * method.c (synthesize_method): Likewise.
4043 * lex.c (process_next_inline): Likewise.
4044 (do_pending_inlines): Likewise.
e76a2646 4045 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
eb66be0e 4046 done with it.
e76a2646
MS
4047
4048Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
4049
4050 * sig.c (build_signature_pointer_or_reference_type): Align
4051 signature pointers/references on 8-byte boundaries so they can be
4052 grabbed 2 words at a time on a Sparc.
4053
4054Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
4055
4056 * method.c (hack_identifier): Requiring a static chain is now a
eb66be0e 4057 hard error.
e76a2646 4058 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
eb66be0e 4059 functions.
e76a2646
MS
4060
4061Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4062
4063 * init.c (build_offset_ref): Call complete_type.
4064
4065 * decl.c (pop_from_top_level): Always pop previous_class_type.
4066
4067 * parse.y: Handle multiple decls in a for-init-statement.
d11ad92e 4068 * pt.c (tsubst_expr): Likewise.
e76a2646
MS
4069
4070 * pt.c (tsubst): Use tsubst_expr for the second operand of an
eb66be0e 4071 ARRAY_REF.
e76a2646
MS
4072
4073 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
4074 (poplevel_class): Set it here.
4075 (pop_from_top_level): Pop it here if we're returning to class scope.
4076 * class.c (pushclass): Don't set it here.
4077
4078 * decl.c (maybe_push_to_top_level): Save current_template_parms,
eb66be0e 4079 and clear it if !pseudo.
e76a2646
MS
4080 (pop_from_top_level): Restore it.
4081
4082 * decl2.c (finish_file): Push the dummy each time we walk the list
eb66be0e 4083 of vtables.
e76a2646
MS
4084
4085 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
eb66be0e 4086 something for CAST_EXPR.
e76a2646
MS
4087
4088Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
4089
4090 * cvt.c (cp_convert): Warn about implicit conversion of the
4091 address of a function to bool, as it is always true.
4092
4093Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
4094
4095 * typeck.c (c_expand_return): Fix warning for local externs returned.
4096
4097Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
4098
4099 * tree.c (mapcar): Propagate const and volatile properly.
4100
4101 * typeck.c (complete_type): Be sure to instantiate the
eb66be0e 4102 MAIN_VARIANT of the type.
e76a2646
MS
4103
4104 * method.c (synthesize_method): Class interface hackery does not
4105 apply to synthesized methods.
4106
4107Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4108
4109 * pt.c (comp_template_args): Use comptypes rather than just
eb66be0e 4110 checking for TEMPLATE_TYPE_PARM equivalence.
e76a2646
MS
4111
4112 * typeck.c (build_x_function_call): Call complete_type before
eb66be0e 4113 checking TYPE_OVERLOADS_CALL_EXPR.
e76a2646 4114
7ea63af7
MH
4115Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
4116
4117 * g++.c (main): Check also for new define ALT_LIBM.
4118
ec255269
MS
4119Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4120
4121 * pt.c (instantiate_class_template): If we don't have a pattern
eb66be0e 4122 yet, that's OK.
ec255269
MS
4123 (coerce_template_parms): If we see a local class, bail.
4124
4125 * decl.c (grok_reference_init): Make sure there's a type before
eb66be0e 4126 checking its code.
ec255269
MS
4127
4128 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
d11ad92e 4129 (push_template_decl): Likewise.
ec255269
MS
4130
4131 * parse.y (named_class_head): Set
eb66be0e 4132 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
ec255269
MS
4133
4134 * decl.c (xref_tag): Diagnose redeclaration of template
eb66be0e 4135 type-parameter name.
ec255269
MS
4136
4137 * error.c (dump_type): Handle anonymous template type parms.
4138
4139 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
eb66be0e 4140 TYPE_STUB_DECL.
d11ad92e 4141 (coerce_template_parms): Likewise.
ec255269
MS
4142
4143Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
4144
4145 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
4146 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
4147
4148Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
4149
4150 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
eb66be0e 4151 before trying to get its STUB_DECL.
d11ad92e 4152 (coerce_template_parms): Likewise.
ec255269
MS
4153
4154 * parse.y (template_type_parm): If they didn't use 'class',
eb66be0e 4155 pretend they did after giving an error.
ec255269
MS
4156
4157 * pt.c (coerce_template_parms): Diagnose use of local class.
4158
4159 * decl.c (grok_reference_init): Use instantiate_type.
4160
4161 * error.c (dump_expr): Handle TEMPLATE_DECLs.
4162
4163 * parse.y (named_class_head): Diagnose mismatching types and tags.
4164
4165 * decl.c (pushdecl): Type decls and class templates clash with
eb66be0e 4166 artificial type decls, not hide them.
ec255269
MS
4167
4168 * decl.c (redeclaration_error_message): Diagnose redefinition of
eb66be0e 4169 templates properly.
ec255269
MS
4170 (duplicate_decls): Diagnose disallowed overloads for template
4171 functions, too.
4172
4173 * decl.c (start_decl): Call complete_type before checking for a
eb66be0e 4174 destructor.
ec255269
MS
4175
4176 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
4177
4178 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
4179
5566b478
MS
4180Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4181
ec255269 4182 * decl.c (grok_op_properties): Don't check for operator++(int) in
eb66be0e 4183 a template.
ec255269
MS
4184
4185 * tree.c (perm_manip): Return a copy of variable and function
eb66be0e 4186 decls with external linkage.
ec255269
MS
4187
4188 * tree.def: Change some of the min tree codes to type "1".
4189 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
4190 * method.c (build_overload_int): Emit something arbitrary for
eb66be0e 4191 anything but an INTEGER_CST if we're in a template.
ec255269
MS
4192
4193 * decl.c (cp_finish_decl): Call complete_type before deciding
eb66be0e 4194 whether or not to lay out the decl.
ec255269 4195
5566b478
MS
4196 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
4197
4198Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
4199
4200 * typeck2.c (build_x_arrow): Call complete_type.
4201
4202 * pt.c (add_pending_template): Broken out.
eb66be0e
MS
4203 (lookup_template_class): If -fexternal-templates, call it for all
4204 the methods of implemented types.
5566b478
MS
4205 (instantiate_class_template): Instead of instantiating them here.
4206 (instantiate_decl): Handle -fexternal-templates earlier.
4207
4208Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4209
4210 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
4211 memoized lookup stuff inside GATHER_STATISTICS.
4212
4213Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4214
4215 * decl.c (start_decl): Complain about array of incomplete type
4216 here.
4217 (grokdeclarator): Not here.
4218
4219 * parse.y (template_parm): Expand full_parm inline so we can set
eb66be0e 4220 the rule's precedence.
5566b478
MS
4221
4222 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
4223 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
4224 * decl2.c (grokbitfield): Don't check for integer constant here.
4225 * class.c (finish_struct_1): Check here.
4226
4227 * decl.c (define_label): Make the min decl go on permanent_obstack.
4228
4229 * pt.c (unify): Don't handle CONST_DECLs.
4230 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
d11ad92e 4231 (tsubst_copy): Likewise.
5566b478
MS
4232
4233 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
eb66be0e 4234 CONST_DECL for a template parm.
5566b478
MS
4235
4236Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
4237
4238 * decl.c (grokdeclarator): Complain about array of incomplete type
4239 here.
4240 (start_decl_1): Not here.
4241
4242 * pt.c (tsubst): Handle pointer-to-function declarators.
4243
4244 * method.c (hack_identifier): If pedantic, diagnose local class
eb66be0e 4245 methods that require a static chain.
5566b478
MS
4246
4247 * decl.c (grok_op_properties): No longer static.
4248 * cp-tree.h: Declare it.
4249 * pt.c (tsubst): Call it for operators.
4250 Use tsubst_copy for TREE_VECs.
4251
4252 * parse.y (template_arg): The expr has precedence like '>'.
4253
4254Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
4255
4256 * pt.c (coerce_template_parms): Don't coerce an expression using
eb66be0e 4257 template parms.
5566b478
MS
4258 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
4259 (tsubst): Don't use build_index_2_type if the max_value uses template
4260 parms.
4261 * method.c (build_overload_int): Emit something arbitrary for an
eb66be0e 4262 expression using template parms.
5566b478
MS
4263
4264 * parse.y (template_close_bracket): New non-terminal to catch use
eb66be0e 4265 of '>>' instead of '> >' in template class names.
5566b478
MS
4266 (template_type): Use it.
4267 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
4268
4269 * tree.def: Add CAST_EXPR.
4270 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
eb66be0e 4271 CONVERT_EXPR for minimal_parse_mode.
d11ad92e
MS
4272 * typeck.c (build_c_cast): Likewise.
4273 * pt.c (tsubst_copy): Likewise.
4274 * decl2.c (build_expr_from_tree): Likewise.
4275 * error.c (dump_expr): Likewise.
5566b478
MS
4276
4277Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4278
4279 * except.c (SetTerminate, SetUnexpected): Put back global vars.
4280 (init_exception_processing): Put back decl/init of
4281 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
4282 fns from libstdc++.
4283
4284 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
4285 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
4286 Delete unused fns.
4287 * cp-tree.h (declare_uninstantiated_type_level,
4288 uninstantiated_type_level_p): Delete prototypes.
4289
4290Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4291
4292 * pt.c (tsubst_expr): Add default return.
4293
4294Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4295
4296 * error.c (fndecl_as_string): Delete unused arg CNAME.
4297 * sig.c (build_signature_table_constructor,
4298 build_signature_method_call): Fix calls.
4299
4300 * class.c (the_null_vtable_entry): Delete var definition.
4301 (init_class_processing): Delete tree the_null_vtable_entry init.
4302 * decl.c (no_print_{functions, builtins}): Declare as static.
4303 (__tp_desc_type_node): #if 0 var definition.
4304 (init_type_desc): #if 0 init of __tp_desc_type_node.
4305 (vb_off_identifier): Move var decl into init_decl_processing.
4306 (current_function_assigns_this): Declare as static.
4307 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
4308 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
4309 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
4310 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
4311 * init.c (BI_header_type, BI_header_size): Declare as static.
4312 * pt.c (template_classes): Delete unused var.
4313 (add_pending_template): Delete decl for non-existent fn.
4314 (lookup_template_class): Delete vars CODE and TAG_CODE.
4315 (instantiate_template): Delete unused var TARGS.
4316 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
4317 Delete decls.
4318 (__tp_desc_type_node): #if 0 var decl.
4319 (fndecl_as_string): Fix prototype.
4320
4321Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4322
4323 * tree.def: Add GOTO_STMT.
4324 * pt.c (tsubst_expr): Support goto and labels.
4325 * decl.c (define_label): Support minimal parsing.
d11ad92e 4326 * parse.y (simple_stmt): Likewise.
5566b478
MS
4327
4328Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4329
4330 * xref.c (GNU_xref_member): Only define/set var I if
4331 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
4332 used.
4333 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
4334 (GNU_xref_end): Fix call.
4335 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
4336 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
4337
4338 * tree.c (build_exception_variant): Delete unused vars I, A, T,
4339 T2, and CNAME.
4340 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
4341 (mapcar): Delete unused var CODE.
4342 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
4343 (break_out_cleanups): Fix call.
4344 (bot_manip): Likewise.
4345 * call.c (build_method_call): Likewise.
4346 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
4347 Likewise.
4348 * typeck.c (unary_complex_lvalue, build_modify_expr,
4349 convert_for_initialization): Likewise.
4350 * typeck2.c (build_functional_cast): Likewise.
4351 * cp-tree.h (build_cplus_new): Fix prototype.
4352
4353 * repo.c (open_repo_file): Delete unused var Q.
4354 (repo_compile_flags, repo_template_declared,
4355 repo_template_defined, repo_class_defined, repo_inline_used,
4356 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
4357 (repo_get_id, repo_vtable_used): Declare as static.
4358 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
4359 prototypes.
4360
4361Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
4362
4363 * parse.y (pending_inlines): Add function_try_block case.
4364
4365 * pt.c (unify): Fix for template const parms.
4366
4367Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4368
4369 * lex.c (extract_interface_info): Delete forward decl.
4370 (default_copy_constructor_body, default_assign_ref_body): Delete
4371 decls for non-existent functions.
4372 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
4373 (init_lex): Delete setting them.
4374 (cons_up_default_function): Delete unused vars FUNC_BUF,
4375 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
4376 #if 0'd synth code.
4377 (toplevel, expression_obstack): Delete unused extern decls.
4378 (tree_node_kind): Delete unused enum.
4379 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
4380 GATHER_STATISTICS.
4381 (tree_node_kind_names): Delete unused extern decl.
4382 (synth_obstack): Delete unused var.
4383 (init_lex): Don't set it.
4384 (init_parse): Add decl before use.
4385 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
4386 (current_unit_{name, language}): Delete unused vars.
4387 (check_newline): Don't bother setting them, just accept the #pragma.
4388 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
4389 (current_unit_{name, language}): Delete decls.
4390
4391 * search.c: Wrap all of the memoized functions, macros, and
4392 variables inside #ifdef GATHER_STATISTICS.
4393 (lookup_field, lookup_fnfields): Likewise.
4394 (init_search_processing): Likewise.
4395 (reinit_search_statistics): Wrap whole function.
4396 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
4397
4398 * decl.c (finish_function): Only call pop_memoized_context if
4399 GATHER_STATISTICS is defined.
4400 (start_function): Likewise for push_memoized_context.
4401 * class.c (pushclass, popclass): Likewise.
4402
4403 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
4404 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
4405
4406 * cvt.c (cp_convert): Delete unused local var FORM.
4407 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
4408 prototypes.
4409
4410Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4411
4412 * pt.c (do_poplevel): Oops; really return what we get from
eb66be0e 4413 poplevel this time.
5566b478
MS
4414
4415Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4416
4417 * cp-tree.h (is_aggr_type): Add prototype.
4418
4419 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
4420 * method.c ({push,pop}_cp_function_context): Delete decls.
4421 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
4422 (SetUnexpected, SetTerminate): Delete unused vars.
4423 (init_exception_processing): Don't set SetUnexpected or
4424 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
4425 (output_exception_table_entry): Delete unused array LABEL.
4426 (expand_internal_throw): Delete unused var PARAMS.
4427 (expand_start_catch_block): Delete unused var CLEANUP.
4428 (emit_exception_table): Delete unused var EH_NODE_DECL.
4429 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
4430 GOTO_UNWIND_AND_THROW. Don't set them.
4431 (end_eh_unwinder): Add top decl.
4432 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
4433 (exception_section, push_rtl_perm, do_function_call,
4434 lang_interim_eh, push_eh_cleanup, eh_outer_context,
4435 expand_end_eh_spec, end_eh_unwinder): Declare as static.
4436 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
4437 throw_used): Likewise.
4438 * cp-tree.h (expand_end_eh_spec): Delete prototype.
4439
4440 * search.c (dfs_mark, dfs_mark_vtable_path,
4441 dfs_unmark_vtable_path, dfs_mark_new_vtable,
4442 dfs_unmark_new_vtable, dfs_clear_search_slot,
4443 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
4444 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
4445 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
4446 functions.
4447 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
4448 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
4449 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
4450 Only define #ifdef GATHER_STATISTICS.
4451 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
4452 is defined.
4453 (vbase_decl): Delete var definition.
4454 (init_search): Delete old decl.
4455 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
4456 never actually used.
4457 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
4458 (get_base_distance_recursive): Delete unused fourth arg
4459 BASETYPE_PATH. Fix call .
4460 (get_base_distance): Fix call.
4461 (push_class_decls): Delete unused var ID.
4462 (make_memoized_table_entry): Declare as static.
4463 (breadth_first_search): Declare as static.
4464 (tree_has_any_destructor_p): Declare as static.
4465 (pop_class_decls): Delete unused arg pop_class_decls.
4466 * class.c (popclass): Fix call to pop_class_decls.
4467 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
4468 tree_has_any_destructor_p): Delete prototypes.
4469
4470 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
4471 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
4472 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
4473 (build_user_desc): Delete unused var T.
4474 (build_class_desc): Delete unused vars T and OFF.
4475 (build_t_desc): Delete unused var NAME_STRING.
4476 (build_headof): Make static.
4477 (get_bad_cast_node): Likewise.
4478 (get_def_to_follow): Likewise.
4479 * cp-tree.h (init_type_desc): Add prototype.
4480 (build_headof): Remove prototype.
4481
4482Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4483
4484 * pt.c (tsubst): Only look for matching decls at file scope for
eb66be0e 4485 non-member functions.
5566b478
MS
4486
4487 * call.c (build_scoped_method_call): Handle scoped destructor
eb66be0e 4488 calls in templates.
5566b478
MS
4489
4490 * decl.c (*_top_level): Also save previous_class_values.
4491
4492 * pt.c (tsubst_expr): Support do {} while loops.
d11ad92e
MS
4493 * parse.y (simple_stmt): Likewise.
4494 * tree.def: Likewise.
5566b478
MS
4495
4496 * method.c (build_overload_identifier): For a class nested in a
eb66be0e
MS
4497 template class, don't mangle in the template parms from our
4498 context.
5566b478
MS
4499
4500 * lex.c, cp-tree.h: Remove support for template instantiations in
eb66be0e 4501 the pending_inlines code.
5566b478
MS
4502 * pt.c: Remove dead functions and unused arguments.
4503 (uses_template_parms): TYPENAME_TYPEs always use template parms.
4504 * parse.y: Stop passing anything to end_template_decl.
4505 * tree.c (print_lang_statistics): Only print tinst info #ifdef
eb66be0e 4506 GATHER_STATISTICS.
5566b478
MS
4507
4508Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4509
4510 * init.c (expand_recursive_init{,_1}): Delete decls.
4511 (sort_member_init): Delete unused var INIT.
4512 (emit_base_init): Delete unused var X.
4513 (build_offset_ref): Delete unused var CNAME.
4514 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
4515 (emit_base_init): Delete unused local var BASE. Delete extern
4516 decl of IN_CHARGE_IDENTIFIER.
4517 (build_delete): Delete unused local var VIRTUAL_SIZE.
4518
4519 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
4520 (build_delete): Fix call.
4521 * decl2.c (delete_sanity): Likewise.
4522 * cp-tree.h (build_vec_delete): Update prototype.
4523
4524 * typeck.c (common_base_type): Delete unused var TMP.
4525 (build_binary_op): Delete local var ARGS_SAVE.
4526 (build_array_ref): Delete unused var ITYPE.
4527 (c_expand_return): Delete unused var USE_TEMP.
4528
4529 * typeck.c (compexcepttypes): Delete unused arg STRICT.
4530 (comptypes): Fix calls.
4531 * decl.c (duplicate_decls): Likewise.
4532 * cp-tree.h (compexcepttypes): Delete extra arg.
4533
4534 * decl2.c (check_classfn): Delete unused second arg CNAME.
4535 * decl.c (start_decl, grokfndecl): Fix calls.
4536 * init.c (do_friend): Likewise.
4537 * cp-tree.h (check_classfn): Update prototype.
4538
4539 * cp-tree.h (signature_error, import_export_vtable,
4540 append_signature_fields, id_in_current_class, mark_used,
4541 copy_assignment_arg_p): Add decls.
4542 * decl2.c (mark_used): Delete decl.
4543
4544 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
4545
4546 * class.c (get_vtable_entry): Diable unused function.
4547 (doing_hard_virtuals): Delete unused static global var.
4548 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
4549 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
4550 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
4551 (modify_one_vtable): Delete unused var OLD_RTTI.
4552 (finish_struct_anon): Delete unused vars OFFSET and X.
4553 (finish_struct_bits): Delete unused var METHOD_VEC.
4554 (get_basefndecls): Delete unused var PURPOSE. Delete unused
4555 for-scope local variable METHODS.
4556
4557 * call.c (user_harshness): Delete unused/unneeded arg PARM.
4558 (ideal_candidate): Delete unused args BASETYPE and PARMS.
4559 (build_method_call): Delete unused args passed into ideal_candidate.
4560 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
4561 * cp-tree.h (synthesize_method): Add decl.
4562
4563 * decl.c (note_level_for_for): Give void return type.
4564 (pushdecl_nonclass_level): Likewise.
4565 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
4566 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
4567 (suspend_binding_level): Delete unused var LEVEL.
4568 (duplicate_decls): Delete unused var CTYPE.
4569 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
4570 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
4571 PTR_ENDLINK.
4572 (grokdeclarator): Delete unused var C.
4573 (grokdeclarator): Delete unused var SIZE_VARIES.
4574 (grokparms): Delete unused var SAW_VOID.
4575 (start_function): Delete unused var OLDDECL.
4576 (cplus_expand_expr_stmt): Delete unused var
4577 REMOVE_IMPLICIT_IMMEDIATELY.
4578
4579 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
4580
4581 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
4582
4583Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4584
4585 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
d11ad92e 4586 (build_min_nt): Likewise.
5566b478
MS
4587 * pt.c (do_pushlevel): Emit line note.
4588 (do_poplevel): Return what we get from poplevel.
4589 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
4590 * parse.y: Use do_pushlevel and do_poplevel.
4591 * cp-tree.h: Declare do_poplevel.
4592
4593 * cp-tree.h: Declare at_eof.
4594 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
4595 * decl2.c (import_export_decl): Renamed from import_export_inline.
4596 (finish_file): Call it to do interface handling for statics.
4597 * pt.c (tsubst_copy): Call mark_used on variables and functions
eb66be0e 4598 used here.
5566b478
MS
4599
4600 * decl2.c (finish_file): Don't emit statics we can't generate.
4601 * pt.c (instantiate_decl): Don't set interface on instantiations
eb66be0e 4602 we can't generate.
5566b478
MS
4603
4604 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
4605 * tree.c (print_lang_statistics): Print max template depth.
4606 * pt.c (push_tinst_level): Dump entire instantiation context.
4607 (instantiate_class_template): Use it and pop_tinst_level.
d11ad92e 4608 (instantiate_decl): Likewise.
5566b478
MS
4609
4610 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
eb66be0e 4611 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
5566b478
MS
4612
4613Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4614
4615 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
eb66be0e
MS
4616 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
4617 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
4618 the new template implementation.
5566b478
MS
4619
4620Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4621
4622 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
4623
cffa8729
MS
4624Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
4625
4626 * decl.c (cp_finish_decl): Delay emitting the debug information for
4627 a typedef that has been installed as the canonical typedef, if the
4628 type has not yet been defined.
4629
4630Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4631
4632 * decl2.c (grokfield): Still call pop_nested_class for access decls.
4633
4634Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4635
4636 * decl.c (lookup_label): Call label_rtx.
4637
4638 * decl.c (make_binding_level): New function.
4639 (pushlevel, pushlevel_class): Call it instead of explicit
4640 duplicate calls to xmalloc.
4641
4642 * decl.c (init_decl_processing): Delete useless build_pointer_type
4643 call.
4644
4645 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
4646 (sizet_ftype_string): Delete variable.
4647 (init_decl_processing): Add built-in functions fabsf, fabsl,
4648 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
4649 variable strlen_ftype, used for strlen.
4650
4651Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
4652
4653 * decl.c (push_to_top_level): Start from current_binding_level
eb66be0e
MS
4654 again for now; the stl hacks depend on g++ being broken in this
4655 way, and it'll be fixed in the template rewrite.
cffa8729
MS
4656
4657 * tree.def: Add USING_DECL.
4658 * decl2.c (do_class_using_decl): Implement.
4659 (grokfield): Pass access decls off to do_class_using_decl instead of
4660 grokdeclarator.
4661 * error.c (dump_decl): Handle USING_DECLs.
4662 * decl.c (grokdeclarator): Remove code for handling access decls.
4663 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
eb66be0e 4664 as access decls for now.
cffa8729
MS
4665 (finish_struct): Don't check USING_DECLs for other uses of the name.
4666
4667 * search.c (get_matching_virtual): Use cp_error_at.
4668
4669Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4670
4671 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
4672 match c-typeck.c.
4673 (self_promoting_args_p): Move the check that TYPE is non-nil
4674 before trying to look at its main variant.
4675 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
4676
4677 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
4678 Delete macros.
4679 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
4680 (do_friend): Delete call to xref_friend.
4681 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
4682
4683 * typeck.c (convert_sequence): #if 0 unused function.
4684
4685 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
4686 be in decl_in_memory_p.
4687 (decl_in_memory_p): Delete decl.
4688 * expr.c (decl_in_memory_p): Delete fn.
4689 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
4690
4691 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
4692
4693Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
4694
4695 * class.c (finish_struct_1): Check for a pure-specifier on a
eb66be0e 4696 non-virtual function here.
cffa8729
MS
4697
4698 * decl2.c (grok_function_init): Don't check whether the function
eb66be0e 4699 is virtual here.
cffa8729
MS
4700 (grokfield): Don't call check_for_override here.
4701
4702 * decl.c (push_to_top_level): Start from inner_binding_level,
eb66be0e 4703 check class_shadowed in class levels.
cffa8729
MS
4704
4705Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
4706
4707 * decl.c (resume_level): Ignore things that don't have names, instead
4708 of core dumping.
4709
4710Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4711
4712 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
4713
4714Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
4715
4716 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
eb66be0e 4717 synthesized dtor.
cffa8729
MS
4718
4719 * parse.y (complete_type_name): Bind global_scope earlier.
d11ad92e 4720 (complex_type_name): Likewise.
cffa8729
MS
4721 (qualified_type_name): Remove.
4722
2ee887f2
MS
4723Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
4724
4725 * decl.c (grokfndecl): Move code that looks for virtuals in base
eb66be0e 4726 classes...
cffa8729 4727 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
4728 (finish_struct_1): Call it.
4729
4730 * cp-tree.h: Declare warn_sign_compare.
4731
4732 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
eb66be0e
MS
4733 rather than extra_warnings to decide whether to warn about
4734 comparison of signed and unsigned.
2ee887f2
MS
4735
4736 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
eb66be0e 4737 implies -Wsign-compare. -Wall doesn't imply -W.
2ee887f2
MS
4738
4739Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
4740
4741 * typeck.c (build_component_ref): Fix to handle anon unions in base
4742 classes as well.
4743
4744Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4745
4746 * class.c (resolves_to_fixed_type_p): Delete code dealing with
4747 a WITH_CLEANUP_EXPR, since we don't generate them any more.
4748 * cvt.c (build_up_reference): Likewise.
4749 * decl.c (grok_reference_init): Likewise.
4750 (cp_finish_decl): Likewise.
4751 * error.c (dump_expr): Likewise.
4752 * tree.c (real_lvalue_p): Likewise.
4753 (lvalue_p): Likewise.
4754 (build_cplus_new): Likewise.
4755 (unsave_expr_now): Likewise.
4756 * typeck.c (unary_complex_lvalue, build_modify_expr,
4757 c_expand_return): Likewise.
4758
4759Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4760
4761 Make the C++ front-end pay attention to attributes for structures.
4762 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
4763 finish_struct_1.
eb66be0e 4764 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
2ee887f2
MS
4765 Take out old round_up_size use and setting the DECL_ALIGN possibly
4766 using it. Take out setting of TYPE_ALIGN to round_up_size, which
4767 can override what the attribute set.
4768 * cp-tree.h (finish_struct): Update prototype.
4769 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
4770 attributes to finish_struct.
4771 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
4772 value down into finish_struct.
4773 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
4774
4775Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
4776
4777 * decl.c (poplevel): Re-word dead for local handling.
4778 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
4779 (cp_finish_decl): If is_for_scope, check for duplicates so
4780 we can disable is_for_scope. Otherwise, preserve_temp_slots.
4781
4782 * lex.c (do_identifier): Use global binding in preference of
4783 dead for local variable.
4784
4785Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
4786
4787 * init.c (initializing_context): Handle anon union changes, the
4788 context where fields of anon unions can be initialized now has to be
4789 found by walking up the TYPE_CONTEXT chain.
4790
4791Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
4792
4793 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
4794 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
4795 (obscure_complex_init): If bss is supported, always set
4796 DECL_INITIAL to error_mark_node.
4797
4798Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4799
4800 * init.c (is_friend): Make sure there's a context before we see if
4801 it's an aggr type.
4802
4803Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
4804
4805 * init.c (is_friend): Classes are not friendly with nested classes.
4806
4807Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
4808
4809 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
4810 and record its result.
4811
9e9ff709
MS
4812Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
4813
4814 * class.c (finish_struct_anon): Switch around code to not move anon
4815 union elements around, nor mess up their contexts, nor offsets,
4816 instead we now build up the right number of COMPONENT_REFs for all
4817 the anon unions that may be present at build_component_ref time.
4818 * typeck.c (lookup_anon_field): New routine to handle field lookup
4819 on fields without names. We find them, based upon their unique type
4820 instead.
4821 * typeck.c (build_component_ref): Allow FIELD_DECL components.
4822 Handle finding components in anonymous unions, and ensure that a
4823 COMPONENT_REF is built for each level as necessary.
4824
4825Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
4826
4827 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
4828 code that ensures that copy ctors are used if appropriate.
4829
4830Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4831
4832 * init.c (build_vec_delete): Only give an error if base isn't an
4833 error_mark_node.
4834
4835Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
4836
4837 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
4838 (yylex): If we see `new', keep slurping.
4839
4840Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
4841
4842 * class.c (finish_struct_1): Move code for handling anon unions...
4843 (finish_struct_anon): to here. Fixup so that we do the offset
4844 calculations right, and so that the fields are physically moved to
4845 the containers's chain.
4846
4847Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4848
4849 * decl.c (grokdeclarator): Avoid trying to get an operand off an
4850 identifier node.
4851
4852Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
4853
4854 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
4855 POINTER_SIZE to agree with expr.c.
4856
4857Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
4858
4859 * search.c (lookup_field): Don't report ambiguities if protect is 0,
4860 instead return NULL_TREE.
4861
4862Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
4863
4864 * class.c (finish_struct_1): Call warn_hidden if we want warnings
4865 about overloaded virtual functions.
4866 (warn_hidden): New routine to warn of virtual functions that are
4867 hidden by other virtual functions, that are not overridden.
4868 (get_basefndecls): New routine, used by warn_hidden.
4869 (mark_overriders): New routine, used by warn_hidden.
4870 * search.c (get_matching_virtual): Remove old warning that just
4871 isn't very useful.
4872
4873Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4874
4875 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
4876
4877 * typeck.c (null_ptr_cst_p): Delete unused fn.
4878 (build_function_call_maybe): Delete unused fn.
4879
4880 * expr.c (extract_init): #if 0 the code after unconditional return 0
4881 for now.
4882
4883 Delete old cadillac code.
4884 * edsel.c: Remove file.
4885 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
4886 * Makefile.in (CXX_OBJS): Delete edsel.o.
4887 (edsel.o): Delete rule.
4888 * cp-tree.h (flag_cadillac): Delete var decl.
4889 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
4890 * decl2.c (flag_cadillac): Delete var definition.
4891 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
4892 (grokfield): Delete code depending on flag_cadillac.
4893 (finish_anon_union): Likewise.
4894 * class.c (finish_struct_1): Likewise.
4895 (pushclass): Likewise.
4896 (popclass): Likewise.
4897 (push_lang_context): Likewise.
4898 (pop_lang_context): Likewise.
4899 * decl.c (init_decl_processing): Likewise.
4900 (start_decl): Likewise.
4901 (cp_finish_decl): Likewise.
4902 (xref_tag): Likewise.
4903 (finish_enum): Likewise.
4904 (start_function): Likewise.
4905 (finish_function): Likewise.
4906 (finish_stmt): Likewise.
4907 * lex.c (lang_init): Likewise.
4908 (check_newline): Likewise.
4909
4910 * lex.c (do_pending_inlines): Delete synthesized method kludge.
4911
4912 Delete defunct, ancient garbage collection implementation.
4913 * rtti.c: New file with the RTTI stuff from gc.c.
4914 * gc.c: Removed file (moved the remaining stuff into rtti.c).
4915 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
4916 (rtti.o): New rule, replacing gc.o.
4917 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
4918 * cp-tree.h: Delete gc-related fn decls.
4919 (DECL_GC_OFFSET): Delete macro.
4920 (flag_gc): Delete extern decl.
4921 * decl.c (current_function_obstack_index): Delete var decl.
4922 (current_function_obstack_usage): Delete var decl.
4923 (start_function): Delete clearing of current_function_obstack_index
4924 and current_function_obstack_usage.
4925 (init_decl_processing): Delete code relying on -fgc.
4926 Delete call to init_gc_processing.
4927 (cp_finish_decl): Delete calls to build_static_gc_entry and
4928 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
4929 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
4930 and to expand_expr of a __gc_main call.
4931 (maybe_gc_cleanup): Delete var decl.
4932 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
4933 * decl2.c (flag_gc): Delete var decl.
4934 (lang_f_options): Delete offering of -fgc.
4935 (lang_decode_option): Delete -fgc and -fno-gc handling.
4936 (get_temp_regvar): Delete gc code.
4937 * init.c (build_new): Delete gc code.
4938 * lex.c (init_lex): Delete checking of flag_gc.
4939
4940 * typeck.c (convert_arguments): Delete gc code.
4941 (build_component_addr): Delete -fgc warning.
4942 (build_modify_expr): Delete gc code.
4943
4944 * decl2.c (build_push_scope): Delete fn.
4945 * cp-tree.h (build_push_scope): Delete decl.
4946
4947 * search.c (clear_search_slots): Delete fn.
4948 * cp-tree.h (clear_search_slots): Delete decl.
4949
4950 * search.c (tree_needs_constructor_p): Delete fn.
4951 * cp-tree.h (tree_needs_constructor_p): Delete decl.
4952
4953 * tree.c (id_cmp): Delete fn.
4954
4955 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
4956 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
4957
4958 * tree.c (decl_value_member): Delete fn.
4959 * cp-tree.h (decl_value_member): Delete decl.
4960
4961 * tree.c (list_hash_lookup_or_cons): Delete fn.
4962 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
4963
4964 * method.c (cplus_exception_name): Delete fn.
4965 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
4966
4967 * spew.c (shift_tokens): Delete fn.
4968
4969Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4970
4971 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
4972 to cp_finish_decl.
d11ad92e 4973 * parse.y: Likewise.
9e9ff709
MS
4974
4975Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4976
4977 * tree.c (build_cplus_staticfn_type): Delete function definition;
4978 never used.
4979 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
4980
4981 * tree.c (virtual_member): Delete function definition; never used.
4982 * cp-tree.h (virtual_member): Delete decl.
4983
45537677
MS
4984Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
4985
4986 * typeck.c (build_component_ref): Handle getting vbase pointers
4987 out of complex multiple inheritance better.
4988
4989Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
4990
4991 * typeck.c (build_object_ref): Make sure we use the real type, not
4992 any reference type.
4993
4994Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
4995
4996 * tree.c (build_exception_variant): Don't create new types if we
4997 don't have to, also build new types on the right obstack.
4998
4999Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5000
5001 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
5002 (push_to_top_level): Call it for b->type_shadowed on class binding
5003 levels.
45537677
MS
5004
5005Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
5006
5007 * search.c (expand_upcast_fixups): Fix so that offsets stored in
5008 vbase_offsets are always right. Fixes a problem where virtual base
5009 upcasting and downcasting could be wrong during conversions on this
5010 during virtual function dispatch at ctor/dtor time when dynamic
5011 vtable fixups for deltas are needed. This only sounds easier than
5012 it is. :-)
5013 (fixup_virtual_upcast_offsets): Change to reflect new calling
5014 convention for expand_upcast_fixups.
5015
5016Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5017
5018 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
5019 check that it's usable as the bitfield width.
5020
5021Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5022
5023 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
5024 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
5025 only ever used for functions in it.
5026
5027Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5028
5029 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
d11ad92e 5030 (nested_type): Likewise.
45537677
MS
5031 (nested_name_specifier): Use lastiddecl.
5032
5033 * decl.c (grokdeclarator): Adjust accordingly.
d11ad92e
MS
5034 * init.c (expand_member_init): Likewise.
5035 * parse.y (base_class): Likewise.
5036 * typeck2.c (build_functional_cast): Likewise.
45537677
MS
5037
5038 * typeck2.c (build_functional_cast): Fill in name after we've
5039 checked for non-aggr type.
5040
be99da77
MS
5041Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
5042
5043 * decl2.c (warn_pointer_arith): Default to on.
5044
5045Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5046
5047 * lex.c (is_rid): New function.
5048 * decl.c (grokdeclarator): Diagnose reserved words used as
5049 declarator-ids.
5050
5051Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
5052
5053 * tree.c (get_decl_list): Don't lose cv-quals.
5054
5055 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
5056 typespecs used as declarator-ids.
5057
5058Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
5059
5060 * decl.c (poplevel): When poping a level, don't give a warning for
5061 any subblocks that already exist.
5062
5063Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5064
5065 * typeck.c (build_object_ref): Finish what I started.
5066
5067 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
5068
5069 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
5070
5071 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 5072 scope.
be99da77
MS
5073
5074Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
5075
5076 * decl.c (xref_tag): Handle passing a type in directly.
5077
5078 * parse.y (qualified_type_name): Pull out the type.
d11ad92e 5079 (nested_type): Likewise.
be99da77
MS
5080 Take types directly instead of as identifiers.
5081 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709 5082 as identifiers.
d11ad92e
MS
5083 * decl.c (xref_basetypes): Likewise.
5084 * init.c (expand_member_init): Likewise.
5085 (build_member_call): Likewise.
5086 (build_offset_ref): Likewise.
5087 * typeck2.c (build_scoped_ref): Likewise, remove bogus code.
5088 * method.c (do_build_assign_ref): Likewise.
be99da77
MS
5089 * decl.c (grokdeclarator): Handle a type appearing as the
5090 declarator-id for constructors.
5091 * method.c (do_build_copy_constructor): current_base_init_list now
5092 uses the types directly, not their names.
d11ad92e
MS
5093 * init.c (sort_base_init): Likewise.
5094 (expand_member_init): Likewise.
be99da77 5095 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77 5096
d11ad92e 5097Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com>
be99da77
MS
5098
5099 * tree.c (layout_basetypes): Call build_lang_field_decl instead
5100 of build_lang_decl if first arg is a FIELD_DECL.
be99da77
MS
5101
5102Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5103
5104 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
5105 non-empty.
5106 * except.c (expand_start_catch_block): Set TREE_USED to avoid
5107 warnings about the catch handler.
5108
5109Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
5110
5111 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 5112 expand_target_expr.
be99da77
MS
5113
5114Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5115
5116 Fix access control to use trees rather than integers.
5117 * class.c (access_{default, public, protected, private,
5118 default_virtual, public_virtual, private_virtual}_node): Add
5119 definitions.
5120 (init_class_processing): Do creation of those nodes.
5121 * cp-tree.h (access_type): Delete enum decl.
5122 (access_{default, public, protected, private, default_virtual,
5123 public_virtual, private_virtual}_node): Add decls.
5124 (compute_access): Change return type.
5125 * search.c (compute_access): Have tree return type, instead of enum.
5126 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
5127 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
5128 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
5129 * parse.y (VISSPEC): Make ttype rather than itype.
5130 (base_class_access_list): Likewise.
5131 * *.[cy]: Change all refs of `access_public' to `access_public_node',
5132 etc.
5133 * call.c (build_method_call): Make ACCESS be a tree.
5134 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
5135 * cvt.c (convert_to_aggr): Likewise.
5136 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
5137 Likewise.
5138 * method.c (hack_identifier): Likewise.
5139 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
5140
5141Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
5142
5143 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
5144 frontend, and make it more consistent with respect to
5145 warn_pointer_arith.
5146
5147Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
5148
5149 * decl.c (pushdecl): Check for duplicate parameter names.
5150
5151Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
5152
5153 * decl.c (expand_static_init): Call assemble_external for atexit.
5154
5155Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
5156
5157 * except.c (do_unwind): Remove some generated dead code.
5158 (eh_outer_context): New routine, factor out some common code from
5159 expand_builtin_throw and end_eh_unwinder. Add code to do return
5160 address masking for the PA.
5161 (expand_builtin_throw): Use eh_outer_context instead of open coding
5162 it here.
d11ad92e 5163 (end_eh_unwinder): Likewise.
be99da77
MS
5164
5165Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
5166
5167 * except.c (expand_throw): Call assemble_external for __empty, if we
5168 use it.
5169
21451173
MS
5170Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
5171
5172 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
5173 NORMAL_RETURN_ADDR_OFFSET.
d11ad92e 5174 (end_eh_unwinder): Likewise.
21451173
MS
5175
5176Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
5177
5178 * gc.c (build_dynamic_cast): Make sure we don't cast away const
5179 when dealing with references, and make sure we handle dynamic
5180 casting to a cv qualified reference.
5181
5182Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
5183
5184 * except.c (struct eh_context): New structure top hold eh context
5185 information.
5186 (push_eh_context): New routine.
d11ad92e 5187 (pop_eh_context): Likewise.
21451173 5188 * decl.c (push_cp_function_context): Use them.
d11ad92e 5189 (pop_cp_function_context): Likewise.
21451173
MS
5190
5191Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
5192
5193 * decl2.c (finish_file): Also prune uninteresting functions in the
5194 inline emission loop.
5195
d11ad92e 5196Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com>
21451173
MS
5197
5198 * sig.c (build_signature_table_constructor): Mark functions
5199 in the signature as referenced.
5200
5201Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
5202
5203 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
5204 the inline emission stuff.
5205
72b7eeff
MS
5206Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
5207
5208 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 5209 weak symbols.
72b7eeff
MS
5210 * lang-options.h: Add -f{no-,}weak.
5211 * decl.c (init_decl_processing): If the target does not support weak
5212 symbols, don't use them.
5213 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
5214
5215Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
5216
5217 * init.c (expand_member_init): warning for base init after members.
5218
72b7eeff
MS
5219Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
5220
5221 * cvt.c (build_expr_type_conversion): Don't convert to a reference
5222 type.
5223
5224Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
5225
5226 * method.c (report_type_mismatch): Improve wording for volatile
5227 mismatches.
5228
5229Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
5230
5231 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 5232 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
5233 copy constructors well. The compiler would do bitwise copying,
5234 instead of ctor calling in some cases.
5235
5236Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
5237
5238 * g++.c (my_strerror): Return "cannot access" if errno is 0.
5239 (pfatal_with_name, perror_exec): Don't assume that
5240 the returned value from my_strerror contains no '%'s.
5241 (concat): Remove.
5242 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
5243
5244Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
5245
5246 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
5247 TYPE_METHODS/TREE_CHAIN mean what they used to.
5248 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
5249 instead of TYPE_METHODS.
5250 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
d11ad92e 5251 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
72b7eeff
MS
5252 * cp-tree.h (CLASSTYPE_METHODS): Lose.
5253 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
5254 TYPE_METHODS.
5255 (struct lang_decl): Lose next_method field.
5256 (DECL_NEXT_METHOD): Lose.
5257 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
5258 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
5259 anymore.
5260 (finish_struct_methods): Don't mess with the TREE_CHAINs in
5261 fn_fields.
5262
5263 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
5264 vector.
5265
5266 * call.c (build_method_call): Synthesize here even when not inlining.
d11ad92e 5267 * typeck.c (build_function_call_real): Likewise.
72b7eeff
MS
5268
5269Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
5270
5271 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
5272 == DBX_DEBUG, call dbxout_start_new_source_file and
5273 dbxout_resume_previous_source_file when appropriate.
5274
5275Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
5276
5277 * except.c (start_anon_func): Push to the top level.
5278 (end_anon_func): Pop from the top level.
5279
5280Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
5281
5282 * cp-tree.h (build_cleanup): New routine to build cleanups.
5283 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
5284 call at ctor time and use atexit to run it later.
5285 * decl2.c (build_cleanup): New routine, taken from finish_file.
5286 (finish_file): Use build_cleanup instead, and don't put function
5287 local statics in global dtor list.
5288
5289Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
5290
5291 * except.c (expand_throw): Ensure that we have cleanups, if we try
5292 and expand cleanups.
5293
5294Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
5295
5296 * except.c (expand_throw): Add logic to manage dynamic cleanups for
5297 the EH object.
5298 (expand_end_catch_block): Use the magic of expand_goto, instead of
5299 emit_jump so that we get the cleanup for any catch clause parameter
5300 and the cleanup for the exception object. Update to reflect label
5301 changes.
5302 (push_eh_cleanup): New routine to register a cleanup for an
5303 exception object.
9e9ff709 5304 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
5305 nothing.
5306 (init_exception_processing): Setup empty_fndecl. Setup
5307 saved_cleanup.
5308 (expand_start_catch_block): Update to reflect label changes. Call
5309 push_eh_object to register the cleanup for the EH object.
5310 (start_anon_func): New routine to start building lambda expressions
5311 from trees.
5312 (end_anon_func): New routine to end them.
5313 (struct labelNode): Change so that we can use tree labels, or rtx
5314 labels.
5315 (saved_cleanup): Object to check for dynamic cleanups for the
5316 exception handling object.
5317 (push_label_entry): Change so that we can use tree labels, or rtx
5318 labels.
d11ad92e
MS
5319 (pop_label_entry): Likewise.
5320 (top_label_entry): Likewise.
72b7eeff
MS
5321 (expand_start_all_catch): Use tree label instead of rtx label, so
5322 that we can get the magic of expand_goto.
5323 (expand_end_all_catch): Update to reflect label changes.
5324
5325 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
5326 use UNSAVE_EXPRs.
5327 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
5328 building_cleanup logic, as we now use UNSAVE_EXPRs.
5329 * cp-tree.h (unsave_expr): Declare it.
5330 * decl.c (building_cleanup): Remove.
5331 (maybe_build_cleanup): Remove building_cleanup logic, and use
5332 UNSAVE_EXPR instead.
5333
5334Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
5335
5336 * gc.c (build_t_desc): Update error message to say <typeinfo>.
5337
5338Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5339
5340 * decl.c (pushdecl): Only warn about shadowing a local variable if
5341 warn_shadow is true.
5342
5343Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
5344
5345 * typeck.c (build_binary_op_nodefault): Added warning about
5346 comparisons between different enum types with -Wall, unless
5347 -fenum-int-equiv set.
5348
5349Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
5350
5351 * class.c (finish_struct_1): Skip down to the inner type in
5352 multidimensional arrays. Ensures ctors will be made for types that
5353 need constructing.
5354
5355Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
5356
5357 * decl.c (last_dtor_insn): New to track the last compiler generated
5358 insn in a dtor.
5359 (store_parm_decls): Set it.
5360 (finish_function): Use it to see if the dtor is empty. Avoid doing
5361 vtable setup all the time, if we can.
5362 (struct cp_function): Add last_dtor_insn.
5363 (push_cp_function_context): Save it.
5364 (pop_cp_function_context): Restore it.
5365
5366Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
5367
5368 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 5369 warnings.
72b7eeff
MS
5370
5371Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
5372
5373 * typeck.c (expand_target_expr): Make sure targets get put into the
5374 current temp_slot_level, so that the free_temp_slots call will reuse
5375 them.
5376
5377Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
5378
5379 * class.c (finish_struct_1): Delay delta fixups for virtual bases
5380 until after we have done the hard virtuals, to avoid a bogus `every
5381 virtual function must have a unique final overrider' for virtual
5382 functions that are only overridden by hard virtuals.
5383
5384Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
5385
5386 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 5387 template for a member function.
72b7eeff
MS
5388
5389Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
5390
5391 * g++.c (main): Add handling of -nodefaultlibs.
5392
5393Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
5394
5395 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
5396 distinguish between direct bindings of reference variables, and
5397 indirect bindings of reference variables.
5398 * cvt.c (build_up_reference): Use it.
5399 * typeck.c (convert_arguments): Use it to indicate this is an
5400 indirect binding.
5401 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
5402 as they are unused.
d11ad92e
MS
5403 (expand_static_init): Likewise.
5404 (cplus_expand_expr_stmt): Likewise.
5405 * decl2.c (finish_file): Likewise.
5406 * init.c (perform_member_init): Likewise.
5407 (emit_base_init): Likewise.
5408 (expand_aggr_vbase_init_1): Likewise.
72b7eeff 5409
72b7eeff
MS
5410Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5411
5412 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
5413 get a DECL_LANG_SPECIFIC node.
5414 * cp-tree.h (lang_decl_flags): Add new member `level'.
5415 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
5416 decl_flags level member.
5417
5418Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5419
5420 * call.c (build_method_call): Make sure instance has a
5421 TYPE_LANG_SPECIFIC node before we dive into it.
5422
d11ad92e 5423Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com>
72b7eeff
MS
5424
5425 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
5426
5427Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
5428
5429 * decl.c (duplicate_decls): When smashing decls, smash staticness in
5430 the usual way.
5431
5432Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
5433
5434 * decl.c (poplevel): Handle the merging of subblocks of cleanups
5435 when finishing blocks that have already been created (usually due to
5436 the fixup goto code). Fixes bad debugging information.
5437
5438Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
5439
5440 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
5441 that's not a list of overloaded functions.
5442
5443Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5444
5445 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
5446 before trying to use DECL_ABSTRACT_VIRTUAL_P.
5447
5448Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
5449
5450 * decl2.c (mark_used): New function for hooking into setting of
5451 TREE_USED on decls.
5452 * call.c (build_method_call): Use it.
d11ad92e
MS
5453 * class.c (instantiate_type): Likewise.
5454 * init.c (build_offset_ref): Likewise. Don't call assemble_external
72b7eeff 5455 for all like-named functions.
d11ad92e 5456 * method.c (hack_identifier): Likewise.
72b7eeff
MS
5457 (emit_thunk): Don't call assemble_external.
5458 (make_thunk): Create thunk as a FUNCTION_DECL so that it
5459 gets the right mode and ENCODE_SECTION_INFO works.
5460
5461 * parse.y: Use mark_used. Pass operator names to do_identifier.
5462 * lex.c (do_identifier): Handle operator names.
5463
5464 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
5465
72b7eeff
MS
5466Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5467
5468 * errfn.c: Include stdio.h.
5469 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
5470
5471Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
5472
5473 * typeck2.c (digest_init): Always convert initializers to the
5474 right type.
5475
5476Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
5477
5478 * init.c (member_init_ok_or_else): Don't allow member initializers
5479 for indirect members, as it is invalid.
5480
5481Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5482
5483 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
5484
5485Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
5486
5487 * parse.y (for.init.statement): Catch compound statements inside for
5488 initializations, if we're being pedantic.
5489
5490Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
5491
5492 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
5493 looking for.
5494
5495Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
5496
5497 * error.c (dump_expr): Don't core dump when a boolean expression is
5498 used as a default argument.
5499
5500Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
5501
5502 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 5503 RETURN_IN_MEMORY.
72b7eeff
MS
5504
5505Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
5506
5507 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
5508 BLKmode type that would otherwise be returned in registers.
5509
5510Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5511
5512 * g++.c (WITHLIBC): New macro.
5513 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
5514 saw_libc and pass it at the end if it was set.
5515
5516Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5517
5518 * parse.y (fn.def1): Call split_specs_attrs in
5519 declmods notype_declarator case.
5520
21451173 5521Sun Nov 26 14:47:42 1995 Richard Kenner <kenner@mole.gnu.ai.mit.edu>
1b898c06
MS
5522
5523 * Version 2.7.2 released.
5524
5525Mon Nov 20 14:05:00 1995 Mike Stump <mrs@cygnus.com>
5526
5527 * g++.c (pfatal_with_name): Add missing third argument to concat.
5528
e7843f33
MS
5529Thu Oct 26 13:59:54 1995 Mike Stump <mrs@cygnus.com>
5530
5531 * init.c (expand_aggr_init): Handle cv qualifiers on the object's
5532 type.
5533
21451173 5534Sat Nov 11 08:25:55 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
07674418
MS
5535
5536 * Version 2.7.1 released.
5537
5538Thu Nov 2 17:02:47 1995 Jason Merrill <jason@yorick.cygnus.com>
5539
5540 * call.c (convert_harshness): Handle references to arrays.
5541
5542Fri Oct 27 14:20:21 1995 Jason Merrill <jason@yorick.cygnus.com>
5543
5544 * typeck.c (comp_target_types): Check multi-level pointer
5545 conversions in both directions.
5546
5547Tue Oct 17 21:39:05 1995 Jason Merrill <jason@yorick.cygnus.com>
5548
5549 * parse.y (explicit_instantiation): Fix 'extern template' with no
5550 return type.
5551
5552Mon Oct 16 14:35:20 1995 Jason Merrill <jason@yorick.cygnus.com>
5553
5554 * parse.y (explicit_instantiation): Support automatic instantiation
5555 of constructors.
5556 (named_class_head_*): Support out-of-class definition of nested
5557 types.
5558
f30432d7
MS
5559Wed Oct 11 12:20:56 1995 Mike Stump <mrs@cygnus.com>
5560
5561 * search.c (envelope_add_decl): New routine. Fix so that
5562 methods are hidden in the same way that other members are.
5563 (dfs_pushdecls): Cleanup and move functionality out of line,
5564 into envelope_add_decl.
5565
5566Tue Oct 10 15:46:01 1995 Mike Stump <mrs@cygnus.com>
5567
5568 * typeck.c (mark_addressable): Only call assemble_external if we
5569 have started the output file.
5570
5571Tue Oct 10 11:27:18 1995 Jason Merrill <jason@yorick.cygnus.com>
5572
5573 * decl.c (start_function): Fix earlier cv-quals change.
5574
5575Mon Oct 9 23:53:05 1995 Mike Stump <mrs@cygnus.com>
5576
5577 * parse.y (complex_direct_notype_declarator): Only push the class if
5578 we are not already in the class.
5579
5580Mon Oct 9 11:22:03 1995 Doug Evans <dje@canuck.cygnus.com>
5581
5582 * decl.c (duplicate_decls): Call merge_machine_decl_attributes.
5583 Update olddecl's attributes too.
5584 (grokdeclarator): #if 0 out call to build_decl_attribute_variant.
5585 * typeck.c (common_type): Call merge_machine_type_attributes.
5586
5587Fri Oct 6 14:44:27 1995 Mike Stump <mrs@cygnus.com>
5588
5589 * typeck.c (mark_addressable): Add missing call to
5590 assemble_external.
5591
f30432d7
MS
5592Wed Oct 4 15:06:39 1995 Mike Stump <mrs@cygnus.com>
5593
5594 * decl.c (store_parm_decls): Make sure the unwinder start comes
5595 before the exception specification start.
5596 * except.c (expand_exception_blocks): Make sure the unwinder end
5597 comes after the terminate protected catch clause region and after
5598 the end of the exception specification region.
5599
5600Wed Oct 4 12:47:02 1995 Jason Merrill <jason@yorick.cygnus.com>
5601
5602 * lex.c (real_yylex): Fix identifier case for linemode.
5603 (handle_sysv_pragma): Don't abort when we see a pragma we don't
5604 recognize.
5605
5606Tue Oct 3 14:09:46 1995 Mike Stump <mrs@cygnus.com>
5607
5608 * decl.c (store_parm_decls): Add a call to start_eh_unwinder.
5609 * except.c (init_exception_processing): __throw doesn't take any
5610 arguments.
d11ad92e 5611 (expand_builtin_throw): Likewise. Always use Pmode, instead of SImode
f30432d7
MS
5612 for all pointers. Use expand_builtin_return_addr to unwind the
5613 first level off the stack.
5614 (do_unwind): Always use Pmode, instead of SImode for all pointers.
5615 (expand_exception_blocks): Add a call to end_eh_unwinder.
5616 (start_eh_unwinder, end_eh_unwinder): New routines to build machine
5617 independent stack unwinders for function/method calls.
5618
5619Mon Oct 2 17:20:42 1995 Mike Stump <mrs@cygnus.com>
5620
5621 * tree.c (unsave_expr_now): Make sure we process the argument list
5622 of any called functions. Fixes incorrect code generation for
5623 cleanups.
5624
5625Mon Oct 2 13:04:16 1995 Mike Stump <mrs@cygnus.com>
5626
5627 * typeck.c (get_member_function_from_ptrfunc): Save function if it
5628 needs it. Cures core dump on things like (this->*(f()))().
5629
5630Sat Sep 23 22:51:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5631
5632 * decl.c (start_function): Conform to gcc cv-quals convention (no
5633 expression has a cv-qualified type) in RESULT_DECLs.
d11ad92e 5634 * method.c (make_thunk): Likewise.
f30432d7
MS
5635
5636Fri Sep 22 10:21:13 1995 Mike Stump <mrs@cygnus.com>
5637
5638 * decl.c (pushtag): Add in the namespace name for the tag.
5639
5640Thu Sep 21 13:11:13 1995 Mike Stump <mrs@cygnus.com>
5641
5642 * parse.y (maybe_base_class_list, base_class_list, base_class,
5643 base_class_access_list): Make sure we see the typenames for base
5644 classes.
5645 * lex.c (see_typename): Instead of failing to see a typename when
5646 there is no next token, perfer a typename, and get the next token.
5647
5648Wed Sep 20 12:35:27 1995 Michael Meissner <meissner@cygnus.com>
5649
5650 * decl.c (init_decl_processing): Add __builtin_expect.
5651
5652Tue Sep 19 16:48:11 1995 Mike Stump <mrs@cygnus.com>
5653
5654 * cvt.c (cp_convert_to_pointer): Don't allow leftover conversions to
5655 or from pointer to member functions, they must all be handled before
5656 this point.
5657
5658Fri Sep 15 17:14:47 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5659
5660 * init.c (resolve_offset_ref): Fix wording of non-static member
5661 being referenced as a static.
5662
5663Fri Sep 15 12:39:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5664
5665 * typeck.c (build_indirect_ref): Only bash pointer if we actually
5666 call build_expr_type_conversion.
5667
5668Thu Sep 14 18:24:56 1995 Jason Merrill <jason@deneb.cygnus.com>
5669
5670 * cvt.c (build_expr_type_conversion): Handle conversion from
5671 reference.
5672 * typeck.c (build_indirect_ref): Avoid infinite recursion.
5673
5674Thu Sep 14 17:23:28 1995 Mike Stump <mrs@cygnus.com>
5675
5676 * decl.c (expand_start_early_try_stmts): New routine to start a try
5677 block at the start of the function, for function-try-blocks.
5678 * cp-tree.h (expand_start_early_try_stmts): Declare it.
5679 * parse.y (function_try_block): Use it, instead of doing it here, as
5680 we don't want to include rtl.h here, as that conflicts with RETURN
5681 in the parser.
5682
5683Wed Sep 13 18:32:24 1995 Mike Stump <mrs@cygnus.com>
5684
5685 * lex.c (reinit_parse_for_block): Support saving inline
5686 function-try-blocks, uses peekyylex.
5687 * parse.y (eat_saved_input): New rule, permit the parser to see that
5688 END_OF_SAVED_INPUT is ok, as it can see this when parsing the
5689 handlers of a function-try-block.
5690 (fndef): Use it.
5691 (component_decl): Make sure TRY and RETURN can come after fn.def2.
5692 * spew.c (peekyylex): New routine to peek at what will come next.
5693
cf54380f
JM
5694Wed Sep 13 16:52:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5695
f30432d7 5696 * typeck.c (comptypes): Tighten up comparisons of template type
9e9ff709 5697 parms.
f30432d7 5698
cf54380f
JM
5699 * decl.c (duplicate_decls): Turn off whining about virtual functions
5700 redeclared inline for now.
5701
f30432d7
MS
5702Wed Sep 13 11:13:40 1995 Mike Stump <mrs@cygnus.com>
5703
5704 * decl.c (store_in_parms): New routine to put things before we
5705 put base inits.
5706 * cp-tree.h (store_in_parms): Declare it.
5707 * decl.c (store_parm_decls): Use it to makr sure the starting of the
5708 eh spec comes before base inits.
5709 (finish_function): Use sequences instead of the obsolete
5710 reorder_insns.
5711 * parse.y (fndef): Enhance readability and maintainability. Update
5712 to include function_try_block syntax.
5713 (function_try_block): Add.
5714
5715Tue Sep 12 17:43:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5716
5717 * call.c (convert_harshness): Use comptypes, not ==, to check if
5718 TYPE and PARMTYPE are equivalent on a function type.
5719
d11ad92e 5720Tue Sep 12 17:31:33 1995 Douglas Rupp <drupp@cs.washington.edu>
2453e8d1
DR
5721
5722 * Make-lang.in (cc1plus) : Removed unnecessary $(exeext).
5723
f30432d7
MS
5724Mon Sep 11 23:24:07 1995 Mike Stump <mrs@cygnus.com>
5725
5726 * except.c (expand_throw): Never allocate storage for thrown pointer
5727 to objects.
5728
5729Mon Sep 11 19:36:45 1995 Mike Stump <mrs@cygnus.com>
5730
5731 * except.c (expand_start_catch_block): Pointers to objects come
5732 back from catch matching already dereferenced, don't dereference
5733 again.
5734
5735Mon Sep 11 15:46:28 1995 Mike Stump <mrs@cygnus.com>
5736
5737 * except.c (expand_throw): Only decay the throw expression, don't do
5738 any default conversions. This is so that one can throw and catch
5739 characters, and not have them match integers.
5740
5741Mon Sep 11 13:46:45 1995 Mike Stump <mrs@cygnus.com>
5742
5743 * error.c (dump_aggr_type): Deal with anonymous unions that don't
5744 have a TYPE_NAME.
5745
38267a70
BK
5746Fri Sep 8 20:40:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5747
5748 * lex.c (handle_sysv_pragma): Deal with getting a comma from yylex.
5749
f30432d7
MS
5750Fri Sep 8 15:51:41 1995 Mike Stump <mrs@cygnus.com>
5751
5752 * except.c (expand_end_eh_spec): Handle empty EH specifications.
5753
5754Fri Sep 8 15:27:22 1995 Mike Stump <mrs@cygnus.com>
5755
5756 * cp-tree.h (expand_start_eh_spec): Declare new routine.
d11ad92e 5757 (expand_end_eh_spec): Likewise.
f30432d7
MS
5758 * decl.c (store_parm_decls): Call expand_start_eh_spec to process
5759 exception specifications.
5760 * except.c (expand_leftover_cleanups): Remove unused parameter.
d11ad92e
MS
5761 (expand_end_catch_block): Likewise.
5762 (expand_exception_blocks): Likewise.
f30432d7
MS
5763 (expand_start_eh_spec): New routine to mark the start of an
5764 exception specification region.
5765 (expand_end_eh_spec): New routine to mark the end of an exception
5766 specification region.
5767 (expand_exception_blocks): Call expand_end_eh_spec to process
5768 exception specifications.
5769
b37d04bc
PB
5770Fri Sep 8 14:40:48 1995 Per Bothner <bothner@kalessin.cygnus.com>
5771
5772 * lex.c (do_identifier): Use global binding in preference of
5773 dead for local variable.
5774
f30432d7
MS
5775Wed Sep 6 19:32:59 1995 Mike Stump <mrs@cygnus.com>
5776
5777 * cp-tree.h (build_exception_variant): Remove used first argument.
d11ad92e
MS
5778 * decl.c (duplicate_decls): Likewise.
5779 (grokfndecl): Likewise.
5780 (revert_static_member_fn): Likewise.
5781 * decl2.c (grok_method_quals): Likewise.
5782 * tree.c (build_exception_variant): Likewise.
5783 * typeck.c (common_type): Likewise.
f30432d7
MS
5784 * decl2.c (grokclassfn): After changing the type, call
5785 build_exception_variant, if necessary.
5786
5787Tue Sep 5 15:56:27 1995 Mike Stump <mrs@cygnus.com>
5788
5789 * except.c (expand_throw): Run cleanups for the throw expression.
5790
d11ad92e 5791Wed Aug 30 15:24:38 1995 Stephen L. Favor <sfavor@tigger.intecom.com>
f30432d7
MS
5792
5793 * except.c (expand_builtin_throw): Moved gen_label_rtx calls beyond
5794 the store_parm_decls call which does initialization in the emit_*
5795 code concerning label numbering.
5796
5797Thu Aug 31 09:01:07 1995 Mike Stump <mrs@cygnus.com>
5798
5799 * except.c (expand_internal_throw): Let the frontend be responsible
5800 for managing all frontend EH parameters, the backend routine only
5801 needs to deal with backend values. type and value are no longer
5802 passed to __throw.
d11ad92e
MS
5803 (init_exception_processing): Likewise.
5804 (expand_start_all_catch): Likewise.
5805 (expand_end_all_catch): Likewise.
5806 (expand_leftover_cleanups): Likewise.
5807 (expand_end_catch_block): Likewise.
5808 (expand_builtin_throw): Likewise.
5809 (expand_throw): Likewise.
f30432d7
MS
5810
5811Tue Aug 29 15:04:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5812
5813 * cp-tree.h (DECL_REAL_CONTEXT): Give the real declaration context
5814 for a decl.
5815 * decl.c (cp_finish_decl): Use it.
5816
5817Tue Aug 29 10:30:27 1995 Mike Stump <mrs@cygnus.com>
5818
5819 * except.c (expand_internal_throw): Oops, almost forgot type and
5820 value are now trees.
5821
5822Mon Aug 28 17:57:45 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5823
5824 Fix the attribute handling to make sure they get noted before we
5825 create the function's RTL, in case they can affect that.
5826 * decl.c (grokfndecl): New arg ATTRLIST. Run
5827 cplus_decl_attributes before creating the decl's rtl.
5828 (grokdeclarator): New arg ATTRLIST, passed down into grokfndecl.
5829 (shadow_tag, groktypename, start_decl, start_method): Pass a
5830 NULL_TREE to grokdeclarator's new last arg.
5831 * decl2.c (grokfield): New arg ATTRLIST, passed into grokdeclarator.
5832 (grokbitfield, grokoptypename): Pass a NULL_TREE to
5833 grokdeclarator's new last arg.
5834 * except.c (expand_start_catch_block): Likewise.
5835 * pt.c (process_template_parm, end_template_decl,
5836 do_function_instantiation): Likewise.
5837 * cp-tree.h (grokfield): Add arg.
5838 (grokdeclarator): Move the prototype from here...
5839 * decl.h: ...to here.
5840 * lex.c (cons_up_default_function): Pass NULL_TREE to grokfield
5841 ATTRLIST argument.
5842 * parse.y: Create a list for the grokfield arg where appropriate,
5843 and pass it down instead of calling cplus_decl_attributes.
5844
5845Mon Aug 28 15:07:24 1995 Mike Stump <mrs@cygnus.com>
5846
5847 * except.c: Always allow turning on exception handling. Allow cross
5848 compilations to use EH.
5849
5850Thu Aug 24 17:39:24 1995 Mike Stump <mrs@cygnus.com>
5851
5852 * except.c (saved_pc, saved_throw_type, saved_throw_value): Use
5853 trees, instead of rtxs, and don't depend on using special machine
5854 dependent registers.
d11ad92e
MS
5855 (expand_internal_throw): Likewise.
5856 (init_exception_processing): Likewise.
5857 (expand_start_all_catch): Likewise.
5858 (expand_end_all_catch): Likewise.
5859 (expand_start_catch_block): Likewise.
5860 (expand_leftover_cleanups): Likewise.
5861 (expand_end_catch_block): Likewise.
5862 (expand_builtin_throw): Likewise.
5863 (expand_throw): Likewise.
f30432d7
MS
5864
5865Wed Aug 23 17:25:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5866
5867 * cvt.c (build_expr_type_conversion): Handle conversions to
5868 reference types.
5869
5870Wed Aug 23 15:33:59 1995 Mike Stump <mrs@cygnus.com>
5871
5872 * except.c (do_unwind): Work around backend bug with -fpic.
5873
fb409a19
PB
5874Tue Aug 22 17:20:07 1995 Per Bothner <bothner@kalessin.cygnus.com>
5875
5876 * decl2.c (flag_new_for_scope): Add a new mode that follows ANSI
5877 for-scoping, but supports (and warns about) old programs.
5878 Make the new mode (with value 1) the default.
5879 (lang_f_options): The on-value for flag_new_for_scope is now 2.
5880 * cp-tree.h (DECL_DEAD_FOR_LOCAL, DECL_ERROR_REPORTED): New macros
5881 (DECL_SHADOWED_FOR_VAR): Likewise.
5882 * decl.c (struct binding_level): New fields dead_vars_from_for
5883 and is_for_scope.
5884 (note_level_for_for): New function.
5885 (poplevel): Special processing if is_for_scope.
5886 (pushdecl): Warn if for-scope variable shadows local.
5887 * lex.c (do_identifier): Handle old (non-ANSI) for scoping,
5888 and warn if conflicts.
5889 * parse.y (FOR): Call note_level_for_for.
5890
f30432d7
MS
5891Mon Aug 21 10:28:31 1995 Jason Merrill <jason@deneb.cygnus.com>
5892
5893 * decl2.c (import_export_inline): Class interface hackery does not
5894 apply to synthesized methods.
5895
5896Sun Aug 20 16:29:00 1995 Mike Stump <mrs@cygnus.com>
5897
5898 * search.c (virtual_context): Find the right context more often.
5899 Solves a `recoverable compiler error, fixups for virtual function'
5900 problem.
5901
5902Sun Aug 20 13:53:24 1995 Mike Stump <mrs@cygnus.com>
5903
5904 * except.c (expand_start_all_catch): Ensure that we always transfer
5905 control to the right EH handler, by rethrowing the end label on the
5906 region, instead of hoping we are nested and falling through.
d11ad92e 5907 (expand_leftover_cleanups): Likewise.
f30432d7
MS
5908 (end_protect): Since we now rethrow the end label, put a
5909 nop after it, so that outer regions are recognized.
5910 * init.c (build_vec_delete_1): New routine to handle most of vector
5911 deleting, all code moved here from build_vec_delete.
5912 (build_array_eh_cleanup): Use build_vec_delete_1 to do all the real
5913 work.
5914 (expand_vec_init): If the array needs partial destructing, setup an
5915 EH region to handle it.
5916 (build_vec_delete): Move lots of code to build_vec_delete_1, use
5917 build_vec_delete_1 to do the grunt work.
5918
5919Sat Aug 19 14:25:33 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5920
5921 Handle decl attributes properly for function definitions without
5922 previous attribute-loaded declarations.
5923 * decl.c (start_function): New arg ATTRS. Add a call to
5924 cplus_decl_attributes with it before we create the RTL.
5925 * cp-tree.h (start_function): Update prototype.
5926 * parse.y (fn.def1): Pass ATTRS into start_function instead of
5927 trying to call cplus_decl_attributes too late. Pass a NULL_TREE
5928 for other use.
5929 * decl2.c (finish_file): Pass NULL_TREE as fourth arg to
5930 start_function.
5931 * method.c (synthesize_method): Likewise.
5932 * except.c (expand_builtin_throw): Likewise for start on __throw.
5933
5934Sat Aug 19 13:36:08 1995 Mike Stump <mrs@cygnus.com>
5935
5936 * class.c (set_rtti_entry): Turn on -fvtable-thunk -frtti support.
5937 This changes -fvtable-thunks vtable layout, so a recompile will be
5938 necessary, if you use -fvtable-thunks.
5939 (get_vtable_entry): Use n, instead of i to be consistent with the
5940 rest of the compiler.
d11ad92e 5941 (get_vtable_entry_n): Likewise.
f30432d7
MS
5942 (add_virtual_function): Add a slot for the tdesc, if -fvtable-thunks
5943 are being used.
d11ad92e 5944 (finish_struct_1): Likewise.
f30432d7
MS
5945 (skip_rtti_stuff): New routine to collapse similar code from many
5946 different parts of the compiler. I think I got them all.
5947 (modify_one_vtable): Use it.
d11ad92e
MS
5948 (fixup_vtable_deltas1): Likewise.
5949 (override_one_vtable): Likewise.
5950 * decl2.c (mark_vtable_entries): Likewise.
5951 * tree.c (debug_binfo): Likewise.
5952 * search.c (expand_upcast_fixups): Likewise.
5953 (get_abstract_virtuals_1): Likewise. Use virtuals, instead of tmp to
f30432d7 5954 consistent with the rest of the compiler.
d11ad92e 5955 (get_abstract_virtuals): Likewise.
f30432d7
MS
5956 * cp-tree.h (skip_rtti_stuff): New routine, declare it.
5957 * gc.c (build_headof): Support -fvtable-thunk and -frtti together.
d11ad92e 5958 (build_typeid): Likewise.
f30432d7
MS
5959 (build_classof): Remove old style way of doing rtti. Remove support
5960 for `classof' and `headof'.
d11ad92e
MS
5961 * gxx.gperf: Likewise.
5962 * hash.h: Likewise.
5963 * parse.y: Likewise.
f30432d7
MS
5964
5965Fri Aug 18 17:31:58 1995 Jason Merrill <jason@deneb.cygnus.com>
5966
5967 * decl.c (start_function): Clear ctor_label and dtor_label.
5968
5969 * class.c (finish_struct_1): Fix handling of access decls.
5970
5971Tue Aug 15 19:21:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5972
5973 * class.c (finish_struct): Only do minimal processing here, so it
5974 can be used for class template definitions, as well.
5975 (finish_struct_1): New function with the rest of the code.
5976
5977Tue Aug 15 09:46:16 1995 Mike Stump <mrs@cygnus.com>
5978
5979 * class.c (prepare_fresh_vtable): On second though, always build the
5980 offset (see Aug 10 change), unless -fvtable-thunks is given. It
5981 does this by calling the new routine set_rtti_entry.
d11ad92e 5982 (finish_struct): Likewise.
f30432d7
MS
5983 (set_rtti_entry): New routine to update the rtti information at the
5984 start of the vtable.
5985
5986Mon Aug 14 12:21:22 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5987
5988 * error.c (dump_decl, case IDENTIFIER_NODE): Only work on a dtor
5989 if it's declared in the C++ language spec.
5990 (dump_function_decl): Likewise.
5991 (dump_function_name): Likewise.
5992 (ident_fndecl): Make sure we got something back from lookup_name.
5993 * decl.c (start_function): Likewise.
5994
5995Fri Aug 11 16:52:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5996
5997 * call.c (build_method_call): Don't call build_new when calling a
5998 constructor without an instance.
5999
6000Thu Aug 10 20:00:17 1995 Mike Stump <mrs@cygnus.com>
6001
6002 * class.c (prepare_fresh_vtable): Always build the offset to the
6003 complete object, as it doesn't cost much. This allows dynamic_cast
6004 to void * to work when -frtti isn't given.
d11ad92e 6005 (finish_struct): Likewise.
f30432d7
MS
6006
6007Thu Aug 10 16:31:28 1995 Mike Stump <mrs@cygnus.com>
6008
6009 * except.c (build_eh_type): Split out some functionality to new
6010 routine named build_eh_type_type.
6011 (build_eh_type_type): New routine.
6012 (expand_start_catch_block): Use build_eh_type_type, as we never want
6013 the dynamic type of the catch parameter, just the static type.
6014 Fixes core dumps when -frtti is used and one catchs pointers to
6015 classes.
6016
6017Thu Aug 10 14:55:29 1995 Mike Stump <mrs@cygnus.com>
6018
6019 * except.c (expand_builtin_throw): Since we now use normal calling
6020 conventions for __throw, we have to remove the first layer off the
6021 stack, so that the next context we search for handlers is the outer
6022 context instead of the context that had the call to __throw, if we
6023 don't immediately find the desired context.
6024
6025Tue Aug 8 17:44:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6026
6027 * tree.c (cp_expand_decl_cleanup): Returns int, not tree.
6028 * cp-tree.h: Update.
6029
6030 * parse.y (template_type_parm): Add support for `typename'.
6031
6032Tue Aug 8 12:06:31 1995 Mike Stump <mrs@cygnus.com>
6033
6034 * except.c (expand_internal_throw): New internal routine to throw a
6035 value.
6036 (expand_end_all_catch, expand_leftover_cleanups): All throwers
6037 changed to use `expand_internal_throw' instead of jumping to throw
6038 label.
d11ad92e 6039 (expand_end_catch_block, expand_throw): Likewise.
f30432d7
MS
6040 (throw_label): Removed.
6041 (expand_builtin_throw): Changed so that EH parameters are passed by
6042 normal function call conventions. Completes Aug 4th work.
6043
6044Fri Aug 4 17:17:08 1995 Mike Stump <mrs@cygnus.com>
6045
6046 * cp-tree.h (expand_builtin_throw): Declare it.
6047 * decl2.c (finish_file): Call expand_builtin_throw.
6048 * except.c (make_first_label): Remove.
6049 (init_exception_processing): Don't use a LABEL_REF for throw_label,
6050 instead use a SYMBOL_REF, this is so that we don't use LABEL_REFs in
6051 other functions that don't really appear in those functions. This
6052 solves a problem where cc1plus consumed exponential amounts of
6053 memory when -Wall was used.
6054 (expand_end_all_catch, expand_leftover_cleanups,
6055 expand_end_catch_block, expand_throw): Change all uses of
6056 throw_label to match new style.
6057 (do_unwind): Rename parameter to inner_throw_label, as it is now
6058 different from throw_label. Also, assume that our caller will wrap
6059 the passed label with a LABEL_REF, if needed.
6060 (expand_builtin_throw): Make external, change so that the generated
6061 throw is now a real function.
6062 (expand_exception_blocks): Never generate throw code inside another
6063 function.
6064
6065Fri Aug 4 12:20:02 1995 Mike Stump <mrs@cygnus.com>
6066
6067 * decl.c (grokdeclarator): Move checking of mutable const objects
6068 and mutable static objects down, as we might decide during parsing
6069 to unset staticp or constp (for example, when const is part of the
6070 object being pointed to).
6071
6072Thu Aug 3 17:13:43 1995 Mike Stump <mrs@cygnus.com>
6073
6074 * except.c (output_exception_table_entry): Enhance portability to
6075 weird machines.
d11ad92e 6076 (emit_exception_table): Likewise.
f30432d7
MS
6077
6078Thu Aug 3 16:41:38 1995 Mike Stump <mrs@cygnus.com>
6079
6080 * typeck.c (build_ptrmemfunc): Handle casting of pointer to
6081 non-virtual member functions.
6082
6083Wed Aug 2 11:58:25 1995 Mike Stump <mrs@cygnus.com>
6084
6085 * gc.c (build_typeid): Strip cv qualifiers so that const T&, T&, T
6086 and const T all match.
6087
6088Wed Aug 2 11:25:33 1995 Mike Stump <mrs@cygnus.com>
6089
6090 * except.c (build_eh_type): Strip cv qualifiers so that const T&,
6091 T&, T and const T all match.
6092
6093Tue Aug 1 14:20:16 1995 Mike Stump <mrs@cygnus.com>
6094
6095 * except.c: Fix up comments, cleanup code and eliminate exceptNode,
6096 exceptStack, exceptstack, push_except_stmts, pop_except_stmts,
6097 new_except_stack, push_last_insn, pop_last_insn, insn_save_node and
6098 InsnSave. Also, numerous speed improvements, and correctness
6099 improvements. Double faulting in all situations should now be
6100 handled correctly.
6101 (expand_start_all_catch): Instead of having many terminate protected
6102 regions, just have one.
6103 (expand_start_catch_block): No longer have to protect
6104 false_label_rtx, as it isn't used for EH region marking.
6105 (expand_end_catch_block): Expand out EH cleanups here by using
6106 expand_leftover_cleanups.
6107 (expand_end_all_catch): Use sequences instead of playing with insn
6108 links directly.
d11ad92e 6109 (expand_exception_blocks): Likewise. Also protect all catch clauses
f30432d7
MS
6110 with one terminate region.
6111
6112Mon Jul 31 13:24:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6113
6114 * method.c (report_type_mismatch): Don't talk about an object
6115 parameter for non-methods.
6116
6117Sun Jul 30 13:13:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6118
6119 * class.c (finish_struct): Catch private and protected members of
6120 anonymous unions here.
6121 * decl2.c (finish_anon_union): And here.
6122 * parse.y: Instead of here.
6123
6124 * errfn.c (ARGSLIST): Support passing four args.
6125 * error.c (cv_as_string): New function.
6126 (cp_printers): Add it.
6127 * call.c (build_method_call): Report 'const' at end of pseudo-decl.
6128
6129 * method.c (report_type_mismatch): Deal with a bad_arg of 0.
6130
6131 * init.c (expand_aggr_init): Handle volatile objects, too.
6132
6133Sat Jul 29 13:42:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6134
6135 * decl.c (struct binding_level): Keep list of incomplete decls.
6136 (print_binding_level): Use list_length to count them.
6137 (pushdecl): Build up the list.
6138 (hack_incomplete_structures): Walk it and prune completed decls.
6139
6140Fri Jul 28 15:26:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6141
6142 * typeck.c (comp_target_types): Don't check const and volatile for
6143 function types.
d11ad92e 6144 (comp_ptr_ttypes_real): Likewise.
f30432d7
MS
6145
6146Thu Jul 27 15:40:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6147
6148 * typeck.c (comp_target_types): Fix.
6149
6150Thu Jul 27 15:10:48 1995 Mike Stump <mrs@cygnus.com>
6151
6152 * cp-tree.h (unsave_expr_now, build_unsave_expr,
6153 cp_expand_decl_cleanup): Declare new routines.
6154 * decl.c (cp_finish_decl, store_parm_decls,
6155 hack_incomplete_structures): Change all cals from
6156 expand_decl_cleanup to cp_expand_decl_cleanup.
d11ad92e 6157 * gc.c (protect_value_from_gc): Likewise.
f30432d7
MS
6158 * expr.c (cplus_expand_expr): Handle UNSAVE_EXPRs.
6159 * tree.c (unsave_expr): New routine to build an UNSAVE_EXPR.
6160 (unsave_expr_now): Backend routine used by tree expander.
6161 (cp_expand_decl_cleanup): Wrap second argument in an UNSAVE_EXPR to
6162 work around a limitation in the backend. The backend uses the
6163 cleanups multiple times, on disjoint control flows, so we cannot
6164 pass unsaved SAVE_EXPRs to the backend.
6165 * tree.def (UNSAVE_EXPR): New tree code.
6166 * typeck.c (c_expand_return): Move goto/return code up inside
6167 conditional, as we don't always want to do this, we only want to do
6168 this when we don't otherwise finish with this control flow.
6169
6170Thu Jul 27 10:38:43 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6171
6172 * parse.y (typespec): Only complain about typeof if we're not
6173 getting it from a system header.
6174
6175Thu Jul 27 10:26:23 1995 Doug Evans <dje@canuck.cygnus.com>
6176
6177 Clean up prefix attribute handling.
6178 * parse.y (reserved_declspecs): Link prefix attributes with declspecs.
6179 (declmods): Likewise.
6180 (all rules that reference typed_declspecs and declmods): Call
6181 split_specs_attrs or strip_attrs to separate declspecs and attrs.
6182 (lang_extdef): Delete resetting of prefix_attributes.
6183 (template_def, notype_declarator rule): Use NULL_TREE for
6184 prefix_attributes.
6185 (condition): Use NULL_TREE for prefix_attributes.
6186 (setattrs): Deleted.
6187 (nomods_initdcl0): Set prefix_attributes to NULL_TREE.
6188 (component_decl): Delete resetting of prefix_attributes.
6189 (component_decl_1, notype_components rule): Use NULL_TREE for
6190 prefix_attributes.
6191 (simple_stmt): Delete resetting of prefix_attributes.
6192
6193Mon Jul 24 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6194
6195 * call.c (convert_harshness): Deal with reference conversions before
6196 others. Actually do array->pointer decay. Call comp_target_types
6197 with pointer types rather than their targets.
6198
6199 * typeck.c (comp_target_types): Avoid assigning D const * to B *.
6200
6201Mon Jul 24 08:54:46 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6202
6203 * pt.c (to_be_restored): Move decl to global scope.
6204
6205Sat Jul 22 12:22:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6206
6207 * decl.c (start_decl): Put back clearing of DECL_IN_AGGR_P.
6208
6209Fri Jul 21 17:09:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6210
6211 * decl.c (grokdeclarator): Downgrade error about 'extern int A::i'
6212 to pedwarn.
6213
6214 * pt.c (instantiate_template): Also avoid instantiation if the
6215 function has already been declared to be a specialization.
6216
6217 * decl2.c (check_classfn): Ignore cname argument, and return the
6218 matching function.
6219
6220 * decl.c (start_decl): Handle declarations of member functions
6221 outside of the class (i.e. specialization declarations).
6222
6223Thu Jul 20 10:34:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6224
6225 * class.c (finish_struct): Don't mess with the type of bitfields.
6226
6227 * various.c: s/TYPE_POINTER_TO/build_pointer_type/.
6228
6229Thu Jul 20 01:43:10 1995 Mike Stump <mrs@cygnus.com>
6230
6231 * init.c (expand_aggr_init): Assume LOOKUP_ONLYCONVERTING if init
6232 is not a parameter list (TREE_LIST).
6233 (expand_default_init): If LOOKUP_ONLYCONVERTING is set, then set
6234 LOOKUP_NO_CONVERSION so that we don't allow two-level conversions,
6235 but don't set it otherwise.
6236
6237Wed Jul 19 20:32:01 1995 Mike Stump <mrs@cygnus.com>
6238
6239 * init.c (expand_default_init): Don't allow two-level conversions
6240 during construction.
6241
6242Wed Jul 19 18:06:37 1995 Mike Stump <mrs@cygnus.com>
6243
6244 * gc.c (build_headof): The type of dyncasting to a pointer to cv
6245 void, should be pointer to cv void.
6246
6247Wed Jul 19 17:25:43 1995 Mike Stump <mrs@cygnus.com>
6248
6249 * gc.c (build_dynamic_cast): Allow casting in const.
6250
6251Wed Jul 19 16:34:27 1995 Mike Stump <mrs@cygnus.com>
6252
6253 * typeck.c (build_const_cast): If we are passed error_mark_node,
6254 return it.
6255
6256Wed Jul 19 15:24:48 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6257
6258 * class.c (push_nested_class): Make sure TYPE is non-nil.
6259
6260 * cvt.c (type_promotes_to): Watch for error_mark_node on the
6261 incoming TYPE.
6262
6263Wed Jul 19 13:23:12 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
f65f5f62
GB
6264
6265 * cp-tree.h (SIGTABLE_VT_OFF_NAME): Renamed from SIGTABLE_OFFSET_NAME.
6266 (SIGTABLE_VB_OFF_NAME): New macro.
6267 (vt_off_identifier): Renamed from offset_identifier.
6268 (vb_off_identifier): Added extern declaration.
6269
6270 * decl.c (vt_off_identifier): Renamed from offset identifier.
6271 (vb_off_identifier): New variable to hold the identifier for the
6272 sigtable field vb_off.
6273 (init_decl_processing): Initialize vb_off_identifier.
6274 Renamed vt_off_identifier from offset_identifier.
6275 * sig.c (build_signature_method_call): Renamed offset_identifier and
6276 local variable offset to vt_off_identifer and vt_off, respecitively.
6277 * sig.c (build_signature_table_constructor): Renamed offset to vt_off.
6278
6279 * decl.c (init_decl_processing): Add vb_off field to
6280 sigtable_entry_type. Reorder fields so that pfn gets properly
6281 aligned at a 64 bit boundary on the Alpha.
6282 * sig.c (build_signature_table_constructor): Build the constructor
6283 according to the new layout. Set the vb_off field to -1 for now.
6284
6285 * decl.c (init_decl_processing): Align sigtable_entry_type on word
6286 boundaries instead of double word boundaries to save space.
6287
f30432d7
MS
6288Tue Jul 18 16:58:37 1995 Mike Stump <mrs@cygnus.com>
6289
6290 * cvt.c (cp_convert): Always call build_cplus_new for a ctor.
6291
6292Tue Jul 18 14:24:53 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6293
6294 * parse.y (opt.component_decl_list): Only forbid private/protected
6295 in anonymous unions. We need to make this know when the type is
6296 defined for an object, to not give the error.
6297
6298Mon Jul 17 14:22:44 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6299
6300 * parse.y (opt.component_decl_list): Don't allow access control
6301 as private or protected for union members.
6302
6303Sun Jul 16 14:01:00 1995 Jim Wilson <wilson@chestnut.cygnus.com>
6304
6305 * lex.c (check_newline): For 'p' case, move goto skipline line to
6306 before end brace for 'pragma'.
6307
6308Fri Jul 7 13:55:58 1995 Mike Stump <mrs@cygnus.com>
6309
6310 * g++.1: Tiny updates.
6311
6312Fri Jul 7 13:05:20 1995 Mike Stump <mrs@cygnus.com>
6313
6314 * decl.c (cp_finish_decl): Only destruct local static variables if
6315 they are constructed, and only construct the first time control
6316 passes completely through its declaration (if not initialized with a
6317 constant-expression).
d11ad92e 6318 (expand_static_init): Likewise.
f30432d7
MS
6319
6320Wed Jul 5 14:05:04 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6321
6322 * typeck.c (comptypes, case OFFSET_REF): If either offset basetype
6323 is a TEMPLATE_TYPE_PARM, give a match.
6324
f30432d7
MS
6325Fri Jun 30 15:42:57 1995 Mike Stump <mrs@cygnus.com>
6326
6327 * method.c (build_overload_value): Handle encoding of null pointer
6328 constants (or any pointer with a constant numeric value) for
6329 templates.
6330
42783eab
BK
6331Fri Jun 30 13:45:51 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6332
6333 * call.c (convert_harshness): Add QUAL_CODE when we're faced with
6334 const vs non-const for void conversions.
6335
f30432d7
MS
6336Fri Jun 30 10:19:52 1995 Mike Stump <mrs@cygnus.com>
6337
6338 * except.c (expand_start_all_catch): Fix problem with finding an
6339 outer nested try block when there is no code to separate it from an
6340 inner try block.
6341
6342Fri Jun 30 02:22:26 1995 Mike Stump <mrs@cygnus.com>
6343
6344 * search.c (dfs_pushdecls): Consume 2 or 3 orders of magnitude less
6345 memory please when virtual bases are used.
6346
6347Thu Jun 29 19:03:47 1995 Mike Stump <mrs@cygnus.com>
6348
6349 * class.c (build_vbase_path): Avoid testing things that cannot be
6350 null to see if they are null.
6351 * cvt.c (convert_pointer_to_vbase): Remove code that doesn't work.
6352 * decl.c (finish_function): Pass a type into the new
6353 convert_pointer_to_vbase instead of a binfo.
6354 * search.c (convert_pointer_to_vbase): Rewritten to use get_vbase
6355 and convert_pointer_to_real.
6356 (expand_indirect_vtbls_init): Use convert_pointer_to_vbase instead
6357 of the more cryptic call to get_vbase.
6358
e18923b4 6359Thu Jun 29 09:35:05 1995 Mike Stump <mrs@cygnus.com>
535c9c21
MS
6360
6361 * decl.c (BOOL_TYPE_SIZE): Fix broken SLOW_BYTE_ACCESS check.
6362
f30432d7
MS
6363Thu Jun 29 03:43:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6364
6365 * pt.c (instantiate_template): Don't strip 'this' twice.
6366
6367 * pt.c (coerce_template_parms): Allow null pointer constants.
6368
6369 * decl.c (revert_static_member_fn): But only if DECL_ARGUMENTS is
6370 set.
6371
f30432d7
MS
6372Wed Jun 28 18:39:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6373
6374 * decl.c (revert_static_member_fn): Also remove 'this' from
6375 DECL_ARGUMENTS.
6376 * decl2.c (check_classfn): Don't revert this function until we get a
6377 match.
6378
6379Wed Jun 28 14:07:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6380
6381 * parse.y (component_decl): Clear PREFIX_ATTRIBUTES here.
6382
6383Wed Jun 28 11:05:13 1995 Mike Stump <mrs@cygnus.com>
6384
6385 * decl2.c (finish_file): Handle global vector news.
6386 * init.c (build_new): Encode vector news so that later we will know
6387 how many elements there are.
6388
e18923b4 6389Mon Jun 26 13:38:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
415bfbd0
JM
6390
6391 * expr.c (cplus_expand_expr): Don't mess with temp slots.
6392
f30432d7
MS
6393 * decl2.c (warn_if_unknown_interface): Don't crash if tinst_for_decl
6394 returns null.
6395
6396 * decl2.c (check_classfn): Use revert_static_member_fn.
6397 * decl.c (revert_static_member_fn): Diagnose static member functions
6398 declared const or volatile.
6399
6400 * decl2.c (grokfield): Check for missing default args here, too.
6401 (check_default_args): Function to do the checking.
6402 * decl.c (pushdecl): Use it.
6403
6404 * decl.c (pushdecl): Don't warn about shadowing a member of `this'
6405 if there is no `this'.
6406
6407Sun Jun 25 11:34:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6408
6409 * call.c (build_method_call): Downgrade 'called before definition'
6410 to a warning, as it ought to go away after Monterey.
6411
6412Sat Jun 24 14:18:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6413
6414 * pt.c (coerce_template_parms): Don't do extra checking on pointer
6415 to member arguments.
6416
6417 * class.c (finish_struct): const and reference members don't prevent
6418 a class from being an aggregate.
6419
6420 * class.c (finish_struct): Signatures are always aggregates.
6421
f7d9d4a8
JM
6422Fri Jun 23 17:20:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6423
f30432d7
MS
6424 * decl2.c (check_classfn): Improve error message.
6425
6426 * pt.c (tsubst): Handle PROMOTE_PROTOTYPES.
f7d9d4a8 6427
f7522313
JM
6428Thu Jun 22 01:50:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6429
f30432d7 6430 * typeck.c (comptypes): Don't ignore method quals.
f7522313 6431
f30432d7
MS
6432 * class.c (finish_struct): Non-abstract virtuals are always USED.
6433
6434 * decl.c (build_ptrmemfunc_type): The underlying union type isn't
6435 IS_AGGR_TYPE, either.
6436 * class.c (finish_struct): Use CLASSTYPE_NON_AGGREGATE instead.
d11ad92e 6437 * cp-tree.h: Likewise.
f30432d7
MS
6438
6439 * cp-tree.h (lang_type): Add aggregate.
6440 (CLASSTYPE_AGGREGATE): New macro.
d11ad92e 6441 (TYPE_NON_AGGREGATE_CLASS): Likewise.
f30432d7
MS
6442 * class.c (finish_struct): Determine whether a class is an
6443 aggregate.
6444 * decl.c (cp_finish_decl): Check TYPE_NON_AGGREGATE_CLASS instead of
6445 TYPE_NEEDS_CONSTRUCTING.
6446 * typeck2.c (digest_init): Check TYPE_NON_AGGREGATE_CLASS for
6447 subobjects, too.
6448
6449 * pt.c (tsubst, PARM_TYPE): Propagate DECL_ARTIFICIAL.
d8f1d487
RK
6450
6451 * decl.c (start_function): For pre-parsed functions, layout all of
6452 the parm decls again.
6453 (grokvardecl): TREE_PUBLIC depends on DECL_THIS_EXTERN, not
6454 DECL_EXTERNAL.
6455
f30432d7
MS
6456 * pt.c (coerce_template_parms): Improve checking for invalid
6457 template parms.
6458
6459Wed Jun 21 12:01:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6460
6461 * decl.c (grokdeclarator): Forbid declaration of a static member
6462 with the same name as its enclosing class.
6463
d8f1d487
RK
6464Mon Jun 19 10:28:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6465
6466 * decl.c (finish_function): Clear current_class_decl.
6467
6468 * typeck.c (build_conditional_expr): Use convert (boolean_type_node
6469 instead of truthvalue_conversion.
6470
6471 * class.c (finish_struct): A data member with the same name as the
6472 class doesn't suppress constructors.
6473
d11ad92e 6474Fri Jun 16 18:11:39 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
d8f1d487
RK
6475
6476 * decl.c (start_function): If current_class_decl is a signature
6477 pointer, don't dereference it but set C_C_D to current_class_decl.
6478
6479Fri Jun 16 17:06:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6480
6481 * decl.c (duplicate_decls): Complain about virtual functions
6482 redeclared to be inline.
6483
6484Fri Jun 16 13:20:38 1995 Mike Stump <mrs@cygnus.com>
6485
6486 * decl.c (get_unique_name): New routine to name unnamed namespaces.
6487 (push_namespace): Use get_unique_name for naming unnamed namespaces.
6488
d3c89e1f
JM
6489Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6490
d8f1d487 6491 * parse.y: Call cplus_decl_attributes with prefix_attributes where
f30432d7 6492 appropriate.
d8f1d487
RK
6493
6494Wed Jun 14 19:24:49 1995 Mike Stump <mrs@cygnus.com>
6495
6496 * search.c (get_vbase): New routine to switch hierarchies from the
6497 CLASSTYPE_VBASECLASSES to the normal one.
6498 (expand_indirect_vtbls_init): Use get_vbase to figure out how we
6499 want to convert to a vbase pointer.
6500
6501Mon Jun 12 17:50:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6502
6503 * pt.c (instantiate_class_template): Add the new instantiation to
f30432d7 6504 template_classes.
d8f1d487
RK
6505 (do_pending_expansions): Call instantiate_member_templates on all of
6506 the classes in template_classes.
6507
6508Mon Jun 12 12:36:59 1995 Mike Stump <mrs@cygnus.com>
6509
6510 * decl.c (complete_array_type): Fill in the TYPE_DOMAIN of our
6511 TYPE_MAIN_VARIANT if it is not filled in.
6512 * init.c (build_delete): If the TYPE_DOMAIN is not set, give an
6513 error instead of core dumping.
6514
6515Mon Jun 12 10:41:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6516
6517 * call.c (can_convert): Also check for distance > 0.
d11ad92e
MS
6518 (can_convert_arg): Likewise.
6519 (user_harshness): Likewise.
d8f1d487
RK
6520
6521Fri Jun 9 19:17:21 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6522
6523 * g++.c (MATH_LIBRARY): Provide default.
6524 (main): Always link with the math library if we link with libstdc++.
6525
6526 * decl.c (start_function): Complain about redefinition of a function
6527 even when the pending_inline version is compiled after the other
6528 version.
6529
6530Thu Jun 8 15:44:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6531
6532 * gc.c (build_dynamic_cast): Build up a reference to a parameter of
6533 aggregate type.
6534
d11ad92e 6535Wed Jun 7 15:31:57 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
d8f1d487
RK
6536
6537 * init.c (build_vec_delete): Resolve an offset ref before we try to
6538 use it.
6539
6540Wed Jun 7 14:19:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6541
6542 * typeck.c (build_modify_expr): If the class lacks a constructor or
6543 assignment operator, return error_mark_node.
6544 (common_type): Use build_cplus_array_type.
6545
6546Tue Jun 6 09:41:27 1995 Mike Stump <mrs@cygnus.com>
6547
6548 * class.c (dont_allow_type_definitions): New variable set when types
6549 cannot be defined.
6550 (finish_struct): Use it.
6551 * cp-tree.h (dont_allow_type_definitions): Define it.
6552 * parse.y (primary, handler_seq): Set it.
6553
6554Mon Jun 5 18:49:38 1995 Mike Stump <mrs@cygnus.com>
6555
6556 * method.c (build_opfncall): Use DECL_CHAIN, not TREE_CHAIN for
6557 results from lookup_fnfields. Always give warning/error on bad
6558 code.
6559
d11ad92e 6560Mon Jun 5 11:39:37 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
d8f1d487
RK
6561
6562 * init.c (member_init_ok_or_else): Don't allow initialization of
6563 an ancestor's member from within a constructor.
6564
d11ad92e 6565Mon Jun 5 11:20:34 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
d8f1d487
RK
6566
6567 * sig.c (build_signature_table_constructor): Use DECL_CONTEXT
6568 instead of DECL_CLASS_CONTEXT for calculating the vfield offset so
6569 abstract virtual functions are handled correctly.
6570
6571 * sig.c (build_signature_table_constructor): Store the correct
6572 delta in signature table entries. It does not yet work for
6573 classes with virtual base classes as implementations of signatures.
6574 (build_signature_method_call): Add the delta to the object_ptr
6575 before generating the function call.
6576
6577 * call.c (build_method_call): Make instance_ptr the signature
6578 pointer itself instead of dereferencing the optr.
6579 * sig.c (build_signature_method_call): Dereference the optr for the
6580 direct and virtual calls.
6581
6582 * sig.c (build_signature_table_constructor): Make the tag for
6583 default implementations -1 instead of 2.
6584 (build_signature_method_call): Change the generated conditional
6585 expression correspondingly.
6586
6587 * sig.c (build_signature_pointer_constructor): Deleted the sorry
6588 message that said we can't handle multiple inheritance for
6589 implementations of signatures
6590 (build_signature_method_call): Use the offset from the sigtable
6591 entry instead of the vptr field from the signature pointer for
6592 building a virtual function call.
6593
6594 * class.c (build_vfn_ref): Deleted signature specific code, we don't
6595 call this function anymore from build_signature_method_call.
6596
6597 * cp-tree.h (SIGNATURE_VPTR_NAME): Deleted. We use the right vptr
6598 field in the object now instead of in the signature pointer/ref.
6599 (build_vptr_ref): Deleted extern declaration.
6600 * sig.c (build_vptr_ref): Deleted.
6601 (build_signature_pointer_or_reference_type): Deleted construction of
6602 the vptr field.
6603 (build_signature_pointer_constructor): Deleted initialization of/
6604 assignment to the vptr field.
6605
6606 * sig.c (build_signature_table_constructor): Convert the signature
6607 table entry fields to their correct types.
6608
6609 * sig.c (build_signature_table_constructor): Don't call digest_init
6610 for the fields of a sigtable entry, it's wasted time.
6611
6612 * sig.c (build_signature_table_constructor): Correctly set the
6613 offset and index fields of a sigtable entry. Build the constructor
6614 the way digest_init does, digest_init can't handle initializing an
6615 anonymous union inside a struct.
6616 (build_signature_method_call): Use the index field instead of the
6617 delta field to get the vtable index.
6618
6619 * decl.c (init_decl_processing): Fix number of fields for building
6620 sigtable_entry_type.
6621
6622 * cp-tree.h (tag_identifier, offset_identifier): Added extern decls.
6623 (SIGTABLE_CODE_NAME): Renamed to SIGTABLE_TAG_NAME.
6624 (SIGTABLE_PFN_NAME): Deleted, we'll use VTABLE_PFN_NAME instead.
6625 * decl.c (tag_identifier, offset_identifier): New variables to
6626 hold the identifiers for the sigtable fields tag and offset.
6627 (init_decl_processing): Initialize these variables.
6628 (init_decl_processing): Use these variables to build the
6629 sigtable_entry_type structure. Rename the code and offset fields
6630 to tag and delta, respectively; add offset and index fields. Changed
6631 types of fields from short_integer_type_node to delta_type_node.
6632 * sig.c (build_signature_table_constructor): Rename code and offset
6633 to tag and delta, respectively.
d11ad92e 6634 (build_signature_method_call): Likewise. Use above variables.
d8f1d487 6635
d8f1d487
RK
6636Thu Jun 1 17:03:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6637
6638 * decl.c (lookup_name_real): Don't try to look anything up in an
6639 erroneous object.
6640
6641Fri Jun 2 10:30:14 1995 Mike Stump <mrs@cygnus.com>
6642
6643 * method.c (build_overload_int): New routine. Break out
6644 functionality from build_overload_value so we can reuse it.
6645 (build_overload_value): Handle pointer to member functions as value
6646 parameters for templates.
6647 (build_overload_identifier): Since template parameters are shared
6648 among all instantiations, we have to substitute in the real types
6649 in TREE_TYPE (parm).
d11ad92e
MS
6650 pt.c (coerce_template_parms): Likewise.
6651 (push_template_decls): Likewise.
d8f1d487
RK
6652 (grok_template_type): Deleted as template parameters are shared
6653 among all instantiations.
6654
6655Wed May 31 19:10:32 1995 Mike Stump <mrs@cygnus.com>
6656
6657 * decl.c (grokdeclarator): Always give errors on constant overflow
6658 for array indices.
6659
6660Wed May 31 11:39:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6661
6662 * typeck.c (commonparms): Don't abort if simple_cst_equal returns < 0.
6663 (build_c_cast): Don't tack on a NON_LVALUE_EXPR when casting to
6664 reference type.
6665 (build_indirect_ref): Fix check for *&.
6666
72b7eeff
MS
6667Fri Jun 16 06:54:03 1995 Mike Stump <mrs@cygnus.com>
6668
6669 * Version 2.7.0 released.
6670
d11ad92e 6671Fri Jun 16 15:07:29 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
72b7eeff
MS
6672
6673 * Make-lang.in (DEMANGLER_PROG): Add LIBS.
6674
6675Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6676
6677 * decl.c (define_function): Don't set DECL_INTERFACE_KNOWN.
6678
6679Wed Jun 7 20:00:31 1995 Mike Stump <mrs@cygnus.com>
6680
6681 * *.[chy]: Change all callers of finish_decl to cp_finish_decl.
6682 * decl.c (finish_decl): New routine to handle call backs from the
6683 mid end (declare_hidden_char_array).
6684
6685Wed Jun 7 19:02:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6686
6687 * decl.c (start_function): Handle setting C_C_D here.
6688 (set_C_C_D): Removed.
6689 (struct saved_scope): Remove class_decl.
6690 (push_to_top_level): Don't save current_class_decl.
6691 (pop_from_top_level): Don't restore current_class_decl or C_C_D.
6692 (struct cp_function): Add C_C_D.
6693 (push_cp_function_context): Save C_C_D.
6694 (pop_cp_function_context): Restore C_C_D.
6695
6696Fri Jun 2 11:05:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6697
6698 * decl.c (set_C_C_D): New function. suspend_momentary before
6699 building C_C_D.
6700 (pop_from_top_level): Call it.
d11ad92e
MS
6701 (start_function): Likewise.
6702 (pop_cp_function_context): Likewise.
72b7eeff
MS
6703
6704 * class.c, cp-tree.h, decl.c, decl2.c, parse.y: Lose all references
6705 to current_vtable_decl, CLASSTYPE_INST_VAR and CLASSTYPE_VTBL_PTR.
6706
6707 * decl.c (push_cp_function_context): Save current_class_decl.
6708 (pop_cp_function_context): Restore current_class_decl and set C_C_D.
6709 (pop_from_top_level): Don't use CLASSTYPE_INST_VAR to set C_C_D.
d11ad92e 6710 (start_function): Likewise.
72b7eeff
MS
6711
6712 * class.c (popclass): Don't mess with current_class_decl,
6713 current_vtable_decl, or C_C_D.
6714
6715Mon May 29 12:45:10 1995 Paul Eggert <eggert@twinsun.com>
6716
6717 * Make-lang.in (c++.mostlyclean): Remove $(DEMANGLER_PROG).
6718
d11ad92e 6719Wed May 24 15:55:18 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
b796119f
RK
6720
6721 * decl.c (duplicate_decls): Check simple_cst_equal result against 0.
6722 * decl2.c (finish_anon_union): Likewise.
6723 * method.c (largest_union_member): Likewise.
6724
d11ad92e 6725Wed May 24 14:41:11 1995 H.J. Lu <hjl@nynexst.com>
103894f1
L
6726
6727 * Make-lang.in (cxxmain.o): Replace single quotes with backslashes.
6728
d11ad92e 6729Mon May 22 17:38:48 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
fbb47000
RK
6730
6731 * Make-lang.in (g++, g++-cross, cc1plus, DEMANGLER_PROG):
6732 Use $@ instead of output name so works even if have .exe.
6733 (cxxmain.o): Use cp if ln -s fails.
6734 (c++.install-man): Use $(exeext) in executable names.
6735 (c++.mostlyclean, stage[1-4]): Use $(objext) in object file names.
6736 * Makefile.in (../cc1plus): Use $(exeext) in name of executable.
6737
878cd289
MS
6738Wed May 24 01:39:03 1995 Jason Merrill <jason@deneb.cygnus.com>
6739
6740 * call.c (build_method_call): parms can be null, duh.
6741
6742Tue May 23 01:32:09 1995 Jason Merrill <jason@deneb.cygnus.com>
6743
6744 * call.c (build_method_call): If convert_arguments failed, just bail.
6745
6746Fri May 19 10:31:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6747
6748 * cvt.c (convert_force): Pass LOOKUP_NORMAL to cp_convert.
6749
6750 * tree.c (copy_to_permanent): Oops.
6751
d11ad92e 6752Fri May 19 10:01:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
878cd289
MS
6753
6754 * cp-tree.h (break_out_target_exprs): Add decl.
6755
6756Thu May 18 13:02:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6757
6758 * decl.c (start_function): Move *all* interface handling stuff after
6759 the pushdecl.
6760
6761 * tree.c (mapcar): Renamed from make_deep_copy and generalized.
6762 (perm_manip): Return t if permanent, otherwise 0.
6763 (copy_to_permanent): Use them.
6764 (bot_manip): Helper for break_out_target_exprs.
6765 (break_out_target_exprs): New function. Uses mapcar.
6766
6767 * typeck.c (convert_arguments): Use it.
6768
6769 * method.c (hack_identifier): Use convert_from_reference to
6770 dereference a reference.
6771
6772Wed May 17 17:54:54 1995 Mike Stump <mrs@cygnus.com>
6773
6774 * call.c (convert_harshness): Move reference bashing before pointer
6775 to member bashing.
6776
6777Wed May 17 16:57:53 1995 Mike Stump <mrs@cygnus.com>
6778
6779 * cvt.c (convert_to_reference): Only complain, if complaints are
6780 wanted.
d11ad92e
MS
6781 * typeck.c (build_function_call_real): Likewise. If
6782 LOOKUP_SPECULATIVELY is set and something won't work, return
6783 NULL_TREE.
6784 * cvt.c (cp_convert): Likewise. Pass flags down to build_method_call.
878cd289 6785 (convert): Pass LOOKUP_NORMAL to cp_convert.
d11ad92e 6786 * typeck.c (convert_for_assignment): Likewise.
878cd289 6787 (convert_force): Pass LOOKUP_COMPLAIN to cp_convert.
d8f1d487 6788 (convert_arguments): Get out early if we get an error_mark_node.
878cd289
MS
6789 (convert_for_initialization): Use cp_convert instead of convert so
6790 that we can pass flags down.
6791 * cp-tree.h (LOOKUP_SPECULATIVELY): Added documentation.
6792
c19a8067
JM
6793Wed May 17 01:43:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6794
878cd289
MS
6795 * typeck2.c (store_init_value): Don't take the MAIN_VARIANT of the
6796 decl type.
6797
c19a8067
JM
6798 * class.c (finish_struct): Don't complain about a class with no
6799 user-defined constructors but with a member that has no default
6800 constructor, as this is OK for aggregates.
6801
6802 * expr.c (cplus_expand_expr, NEW_EXPR): If this is an explicit
6803 constructor call, mark slot addressable.
6804
d11ad92e 6805Tue May 16 18:37:51 1995 Douglas Rupp <drupp@cs.washington.edu>
eacd15bc
DR
6806
6807 * g++.c: Changed WINNT to _WIN32.
6808
a9aedbc2
MS
6809Tue May 16 12:40:16 1995 Jason Merrill <jason@lisa.cygnus.com>
6810
6811 * lex.c (handle_sysv_pragma): Don't use token_buffer.
6812
6813Tue May 16 12:05:26 1995 Mike Stump <mrs@cygnus.com>
6814
6815 * call.c (resolve_scope_to_name): Add initial semantic support for
6816 namespaces.
d11ad92e
MS
6817 * class.c (finish_struct): Likewise.
6818 * cp-tree.h (NAMESPACE_LEVEL): Likewise.
6819 * cvt.c (build_up_reference, convert_to_reference): Likewise.
6820 * decl.c (binding_level::namespace_p, suspend_binding_level): Likewise.
6821 (resume_binding_level, toplevel_bindings_p): Likewise
6822 (namespace_bindings_p, declare_namespace_level): Likewise.
6823 (resume_level, push_namespace, pop_namespace): Likewise.
6824 (pop_everything, pushtag, duplicate_decls, pushdecl): Likewise.
6825 (implicitly_declare, lookup_namespace_name): Likewise.
6826 (lookup_name_real, start_decl, make_temporary_for_reference): Likewise.
6827 (obscure_complex_init, finish_decl, expand_static_init): Likewise.
6828 (grokvardecl, grokdeclarator, parmlist_is_exprlist): Likewise.
6829 (store_parm_decls, hack_incomplete_structures): Likewise.
6830 * decl2.c (get_temp_name, finish_anon_union): Likewise.
6831 (current_namespace, push_namespace, pop_namespace): Likewise.
6832 (do_namespace_alias, do_toplevel_using_decl): Likewise.
6833 (do_class_using_decl): Likewise.
6834 * error.c (dump_decl): Likewise.
6835 * init.c (build_member_call, build_offset_ref): Likewise.
6836 * lex.c (identifier_type): Likewise.
6837 * parse.y (lang_extdef, using_decl, extdef): Likewise.
6838 (component_decl_1, nested_name_specifier_1): Likewise.
6839 * spew.c (yylex): Likewise.
6840 * tree.def (NAMESPACE_DECL): Likewise.
a9aedbc2
MS
6841
6842Tue May 16 11:55:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6843
6844 * decl.c (push_overloaded_decl): Return the new decl even if it
6845 can't be pushed.
6846
6847Tue May 16 11:00:37 1995 Jason Merrill <jason@lisa.cygnus.com>
6848
6849 * typeck.c (decay_conversion): Split out from default_conversion.
6850 (default_conversion): Call it.
d11ad92e 6851 (build_binary_op): Likewise.
a9aedbc2
MS
6852 (build_binary_op_nodefault): Use decay_conversion for truth ops.
6853
6854Mon May 15 12:47:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6855
6856 * decl.c (warn_extern_redeclared_static): This is a pedwarn.
6857 (duplicate_decls): Always use the old decl's linkage info. Don't
6858 play with linkage of consts.
6859 (pushdecl): Don't play with linkage of consts.
6860 (redeclaration_error_message): Don't complain about an old public
6861 decl and a new non-public decl here.
6862 (grokvardecl): Handle linkage of consts here.
6863 (grokdeclarator): An 'extern inline' is public. Pass constp to
6864 grokvardecl.
6865 (start_function): Wait until after the pushdecl to do some linkage
6866 stuff.
6867
6868 * decl2.c (import_export_vtable): Make duplicates weak rather than
6869 static if supported.
d11ad92e
MS
6870 (import_export_inline): Likewise.
6871 * pt.c (do_pending_expansions): Likewise.
a9aedbc2
MS
6872
6873 * class.c (build_vbase_path): flag_assume_nonnull_objects only
6874 affects reference conversion.
6875
6876 * init.c (emit_base_init): Build up an RTL_EXPR and add it to
f30432d7 6877 rtl_expr_chain.
a9aedbc2
MS
6878 * decl.c, decl2.c: s/base_init_insns/base_init_expr/.
6879
7154457b
PE
6880Tue May 16 07:06:28 1995 Paul Eggert <eggert@twinsun.com>
6881
6882 * method.c (numeric_output_need_bar): Renamed from misspelling.
6883
45ca9d09
RK
6884 * typeck.c (build_ptrmemfunc): Fix misspellings in messages.
6885
7ab7b006
RK
6886Sun May 14 10:26:22 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6887
6888 * lang-options.h, lang-specs.h: New files.
6889
fd378c9d
JM
6890Thu May 11 00:31:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6891
6892 * typeck.c (default_conversion): Don't check for BLKmode before
6893 pulling out the decl_constant_value.
6894
6895 * decl.c (start_function): Clear named_labels and shadowed_labels.
6896
6897 * typeck.c (build_function_call_real): Also synthesize methods here.
6898
6899Wed May 10 00:55:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6900
6901 * decl2.c (finish_file): Synthesize exported methods before the
6902 reconsider loop.
6903
6904 * parse.y: Move declaration of flag_new_for_scope to file scope.
6905
863adfc0
MS
6906Tue May 9 19:10:33 1995 Mike Stump <mrs@cygnus.com>
6907
6908 * decl2.c: Add flag_new_for_scope for new -ffor-scope flag.
6909 * parse.y (FOR): Conditionalize the pushing and poping of scope for
6910 the for-init-statement upon the new flag_new_for_scope.
6911 * parse.y (try_block): Simplify and use compstmt.
6912
6913Mon May 8 12:41:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6914
6915 * decl.c (define_function): Mark function decl artificial.
6916
6917Sun May 7 00:51:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6918
6919 * parse.y (simple_stmt, FOR): Put back push/pop for condition scope.
6920
6921 * decl2.c (grokclassfn): DECLs don't have cv-qualified types.
d11ad92e 6922 * tree.c (build_cplus_method_type): Likewise.
863adfc0
MS
6923
6924 * cp-tree.h (SET_DECL_ARTIFICIAL): Just set DECL_ARTIFICIAL to 1.
6925
6926 * typeck.c (build_function_call_real): If convert_arguments failed,
6927 just bail.
6928 (convert_arguments): If one of the arguments is error_mark_node,
6929 just bail.
6930
6931Sat May 6 02:39:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6932
6933 * decl.c (duplicate_decls): Don't check DECL_NOT_REALLY_EXTERN for
6934 decls that don't include it.
6935
6936Fri May 5 14:23:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6937
6938 * decl.c (duplicate_decls): Decls that have DECL_INTERFACE_KNOWN or
6939 DECL_NOT_REALLY_EXTERN set aren't extern decls.
6940
6941 * typeck.c (build_indirect_ref): Don't call default_conversion for a
6942 parameter of reference_type.
6943 * cvt.c (convert_from_reference): Just use build_indirect_ref.
6944
6945 * pt.c (do_type_instantiation): Only instantiate member functions
6946 that actually come from templates.
6947
6948Fri May 5 09:46:05 1995 Mike Stump <mrs@cygnus.com>
6949
6950 * parse.y: Generalized cleanup of poplevels, and compound statements
6951 and compound statements in try blocks. Rewritten `for' rule so that
6952 the scope of variables declared in the for clause is shortened to
6953 span just to the end of the statement, instead of the whole
6954 containing block.
6955
6956Fri May 5 00:37:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6957
6958 * call.c (convert_harshness): Handle pointers to members better.
6959
6960Thu May 4 16:00:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6961
6962 * decl2.c (delete_sanity): Do access control here.
6963 * init.c (build_delete): Instead of here.
6964
6965 * Make-lang.in: Build c++filt.
6966
6967Wed May 3 02:59:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6968
6969 * decl2.c (cplus_decl_attributes): If we just modified a TYPE_DECL,
6970 update our IDENTIFIER_TYPE_VALUE.
6971
a5894242
MS
6972Fri Apr 28 07:58:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6973
6974 * lex.c (cons_up_default_function): Fix linkage of #pragma
6975 implemented functions.
6976
6977Thu Apr 27 16:56:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6978
6979 * method.c (build_overload_name): Simplify and fix repeated type
6980 folding.
6981
6982 * decl.c (grokdeclarator): Prohibit pointers to void or reference
f30432d7 6983 members.
a5894242
MS
6984
6985Thu Apr 27 09:49:07 1995 Mike Stump <mrs@cygnus.com>
6986
6987 * typeck2.c (process_init_constructor): Make sure initializers are
6988 fully digested.
6989
6990Thu Apr 27 01:11:55 1995 Jason Merrill <jason@python.cygnus.com>
6991
6992 * lex.c (cons_up_default_function): Always defer synthesis.
6993
6994Thu Apr 27 00:20:37 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6995
6996 * decl2.c (mark_inline_for_output): Don't play with pending_inline
6997 stuff.
6998
6999Wed Apr 26 17:48:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7000
7001 * call.c (user_harshness): New function; like build_type_conversion,
7002 but doesn't actually build anything.
7003 (compute_conversion_costs): Use it instead of build_type_conversion.
7004
7005Wed Apr 26 17:11:25 1995 Jason Merrill <jason@deneb.cygnus.com>
7006
7007 * typeck.c (build_function_call_real): Improve error message for
7008 calling a non-function.
7009
7010 * method.c (hack_identifier): Lose check for calling a data member.
7011
7012Wed Apr 26 16:59:13 1995 Mike Stump <mrs@cygnus.com>
7013
7014 * typeck2.c (build_functional_cast): Remove very old cruft.
7015 Seems like good code is generated without it.
7016
7017Wed Apr 26 00:47:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7018
7019 * method.c (do_build_assign_ref): Fix handling of anonymous unions.
d11ad92e 7020 (do_build_copy_constructor): Likewise.
a5894242
MS
7021
7022 * parse.y (simple_stmt, SWITCH): Call {push,pop}_switch.
7023
7024 * decl.c (push_switch): New function.
d11ad92e 7025 (pop_switch): Likewise.
a5894242
MS
7026 (define_case_label): Check for jumping over initialization.
7027
7028 * call.c (build_method_call): Check for an inline function being
7029 called before its definition has been seen.
d11ad92e 7030 * typeck.c (build_function_call_real): Likewise.
a5894242
MS
7031
7032 * decl.c (duplicate_decls): Check for a function being redeclared
7033 inline after its address has been taken.
7034
7035 * typeck.c (build_conditional_expr): Handle related class lvalues.
7036
7037Tue Apr 25 13:20:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7038
7039 * pt.c (do_pending_expansions): Don't expand unused templates.
7040
7041 * parse.y (component_decl): Accept a lone semicolon.
7042
7043Tue Apr 25 00:25:56 1995 Jason Merrill <jason@rtl.cygnus.com>
7044
7045 * call.c (build_method_call): Don't allow an RTL_EXPR to serve as the
7046 object parameter anymore.
7047
7048 * expr.c (cplus_expand_expr): Don't create RTL_EXPRs with no insns.
7049
7050Mon Apr 24 12:35:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7051
7052 * parse.y (simple_stmt, decl case): Clear prefix_attributes.
d11ad92e 7053 (lang_extdef): Likewise.
a5894242
MS
7054
7055 * parse.y (maybe_parmlist): New rule for use in declarators where
7056 this could either be a list of expressions or parameters. Calls
7057 suspend_momentary before deciding which.
7058 (direct_after_type_declarator): Use it.
7059 (complex_direct_notype_declarator): Use it.
7060
7061 * pt.c (tsubst): Propagate attributes const and noreturn.
7062
7063 * typeck.c (build_modify_expr): If warn_synth, call build_opfncall
7064 before doing the default thing.
7065
2db70b29
DE
7066Thu Apr 27 21:49:36 1995 Doug Evans <dje@cygnus.com>
7067
7068 * typeck.c (common_type): Call lookup_attribute instead of
7069 value_member.
7070
d11ad92e 7071Tue Apr 25 18:07:43 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
91887f0b
RK
7072
7073 * Make-lang.in: Change "realclean" to "maintainer-clean".
7074
e8abc66f
MS
7075Sun Apr 23 12:32:38 1995 Mike Stump <mrs@cygnus.com>
7076
7077 * decl2.c (finish_file): Fix broken linked list handling.
7078
7079Fri Apr 21 18:08:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7080
7081 * class.c (finish_base_struct): Don't set TYPE_HAS_COMPLEX_*_REF
7082 as often.
d11ad92e 7083 (finish_struct): Likewise.
e8abc66f
MS
7084
7085 * various: Use TYPE_HAS_TRIVIAL_* instead of TYPE_HAS_COMPLEX_*.
7086
7087 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): New macro.
7088 (TYPE_HAS_TRIVIAL_ASSIGN_REF): New macro.
7089
7090Fri Apr 21 15:52:22 1995 Jason Merrill <jason@python.cygnus.com>
7091
7092 * typeck.c (c_expand_return): Only expand a returned TARGET_EXPR if
7093 it is of the same type as the return value.
7094
7095Fri Apr 21 03:01:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7096
7097 * decl2.c (finish_file): Reconsider if synthesizing a method wrote
7098 out its assembly.
7099
7100 * typeck.c (convert_for_initialization): Don't call a trivial copy
7101 constructor.
7102
7103 * typeck2.c (store_init_value): Only abort if the type has a
7104 non-trivial copy constructor.
7105
7106 * typeck.c (c_expand_return): If we're returning in a register and
7107 the return value is a TARGET_EXPR, expand it. Only do
7108 expand_aggr_init if we're returning in memory.
7109 (expand_target_expr): Function to expand a TARGET_EXPR.
7110 (build_modify_expr): Use it.
7111
7112 * tree.c (build_cplus_new): Layout the slot.
7113
7114 * expr.c (cplus_expand_expr): Use expand_call to expand the call
7115 under a NEW_EXPR, so the target is not discarded.
7116
7117Thu Apr 20 14:59:31 1995 Mike Stump <mrs@cygnus.com>
7118
7119 * gc.c (build_dynamic_cast): Tighten error checking.
7120
7121Thu Apr 20 11:23:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7122
7123 * expr.c (cplus_expand_expr): Only abort if the returned target is
7124 different from what we expected if the type has a non-trivial copy
7125 constructor.
7126
7127 * decl2.c (cplus_decl_attributes): Attributes applied to a template
7128 really apply to the template's result.
7129
7130 * tree.c (lvalue_p): Check IS_AGGR_TYPE instead of TREE_ADDRESSABLE
7131 to decide whether to consider a CALL_EXPR an lvalue.
7132
7133 * class.c (finish_struct_bits): Only set TREE_ADDRESSABLE if the
7134 type has a non-trivial copy constructor.
7135
7136 * decl.c (start_function): If interface_known, unset
7137 DECL_NOT_REALLY_EXTERN on the function.
7138
7139Wed Apr 19 16:53:13 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7140
7141 * pt.c (do_function_instantiation): Handle explicit instantiation of
7142 member functions.
7143 (do_type_instantiation): Handle 'inline template class foo<int>',
7144 meaning just spit out the vtable.
7145
7146 * lex.c (cons_up_default_function): Set DECL_NOT_REALLY_EXTERN on
7147 the consed functions.
7148
7149 * decl2.c (import_export_inline): Set DECL_INTERFACE_KNOWN.
7150
d11ad92e 7151Wed Apr 19 16:28:17 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
e8abc66f
MS
7152
7153 * call.c, class.c, decl2.c, gc.c, init.c, parse.y, pt.c, search.c,
7154 typeck.c: Include output.h.
7155
d11ad92e 7156Wed Apr 19 14:57:21 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
e8abc66f
MS
7157
7158 * call.c (build_method_call): Allow a signature member functions to
7159 be called from a default implementation.
7160
7161Wed Apr 19 10:21:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7162
7163 * repo.c (finish_repo): Remember what directory we are in.
7164
7165 * search.c (expand_upcast_fixups): Don't mess with abort_fndecl.
7166
7167 * repo.c: Use obstacks instead of fixed-size buffers. Don't spit
7168 out the second copy of the symbol name. Don't remember COLLECT_GCC.
7169
43f2999d
MS
7170Wed Apr 19 02:32:40 1995 Mike Stump <mrs@cygnus.com>
7171
7172 * search.c (virtual_context): New function to get the virtual
7173 context of a function.
7174 (expand_upcast_fixups): New function to generate runtime vtables.
d11ad92e 7175 (fixup_virtual_upcast_offsets): Likewise.
43f2999d
MS
7176 (expand_indirect_vtbls_init): Use fixup_virtual_upcast_offsets to
7177 ensure that the this offsets for upcasts from virtual bases into
7178 other virtual bases or non-virtual bases are correct at construction
7179 time and destruction time.
7180 * class.c (fixup_vtable_deltas): Modify to fixup all offsets in all
7181 vtables in all virtual bases, instead of just one vtable in each
7182 virtual base.
d11ad92e 7183 (fixup_vtable_deltas1): Likewise.
43f2999d 7184
d11ad92e 7185Tue Apr 18 03:57:35 1995 Michael Meissner <meissner@cygnus.com>
44a8d0b3
MS
7186
7187 * Makefile.in (lex.o): Add dependency on c-pragma.h.
7188
7189 * lex.c (handle_sysv_pragma): Use NULL_PTR and NULL_TREE as
7190 appropriate, instead of 0.
7191
7192Mon Apr 17 12:28:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7193
7194 * decl.c (pushdecl): Use decls_match, not duplicate_decls, for
7195 comparing local and global decls.
7196
7197Fri Apr 14 01:46:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7198
7199 * typeck.c (convert_arguments): Only prohibit passing to ... of
7200 types with non-trivial copy constructors.
7201
7202 * repo.c (repo_template_used): Don't try to mess with no id.
7203
7204Fri Apr 14 23:32:50 1995 Per Bothner <bothner@rtl.cygnus.com>
7205
7206 * decl.c (duplicate_decls): Use cp_warning_at for redundant-decls.
7207
d11ad92e 7208Thu Apr 13 15:37:42 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
44a8d0b3
MS
7209
7210 * cp-tree.h (current_tinst_level): Delete declaration, since it's
7211 static inside pt.c.
7212
7213 * typeck.c (build_modify_expr): Catch incompatible array assignment.
7214
7215 * parse.y (attribute_list, attrib): Rewrite actions to feed the
7216 right stuff to decl_attributes.
7217
7218Thu Apr 13 11:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7219
7220 * search.c (dfs_debug_mark): Check for magic virtual like
7221 import_export_vtable.
7222
7223 * typeck.c (build_binary_op_nodefault): Don't call cp_pedwarn with
7224 four args.
7225
7226Wed Apr 12 12:02:57 1995 Jason Merrill <jason@deneb.cygnus.com>
7227
7228 * decl2.c (finish_file): Move prevtable pass before needs_messing_up
7229 decision.
7230
7231Tue Apr 11 11:20:27 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7232
7233 * decl.c (finish_decl): If we're writing out a static data member of
7234 a class, we want the debug info for that class.
7235
7236 * gc.c (build_t_desc): Check linkage of a class properly.
7237
7238 * class.c (finish_struct): Set the 'headof' offset for the main
7239 vtable properly.
7240 (prepare_fresh_vtable): Fix typeinfo pointer here.
7241 (modify_one_vtable): Instead of here.
7242
7243Mon Apr 10 12:15:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7244
7245 * repo.c (repo_get_id): New function to return the interesting
7246 identifier for a repo entity.
7247 (repo_template_used): Use it.
7248 (repo_template_instantiated): Mark the id as chosen.
7249 (init_repo): Record whether or not the id was chosen.
7250 (finish_repo): Note if an id was newly chosen.
7251
7252 * pt.c (do_function_instantiation): Call repo_template_instantiated.
d11ad92e 7253 (do_type_instantiation): Likewise. Don't diagnose multiple
44a8d0b3
MS
7254 instantiation.
7255
7256 * decl2.c (finish_file): Use DECL_NOT_REALLY_EXTERN when deciding
7257 whether or not to synthesize a method.
7258
7259 Undo these changes:
7260 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
7261 * class.c (modify_all_direct_vtables): ditto.
7262 * init.c (expand_direct_vtbls_init): expand more vtables if
7263 flag_rtti is on.
7264
79ff2c6c
MS
7265Sat Apr 8 17:45:41 1995 Mike Stump <mrs@cygnus.com>
7266
7267 * gc.c (build_headof): Use ptrdiff_type_node instead of
7268 integer_type_node on pointer arithmetic.
7269
7270Sat Apr 8 11:57:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7271
7272 * typeck.c (build_modify_expr): Undo previous change.
7273
7274Thu Apr 6 01:23:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7275
7276 * Makefile.in (compiler): Remove ../cc1plus before rebuilding it.
7277
7278 * repo.c (get_base_filename): Put the .rpo file in the directory
7279 with the object file, not the source.
7280
7281 * typeck.c (build_conditional_expr): Handle pmf's better.
7282
7283 * repo.c (finish_repo): Also use ASM_OUTPUT_LABELREF to print out
7284 the name of the symbol.
7285
7286Wed Apr 5 15:24:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7287
7288 * repo.c (open_repo_file): Make repo filename DOS-compliant.
7289 (*): Also write a new repo file if some previously-used
7290 templates are no longer used. Only remember the identifier.
7291
7292 * lex.c (cons_up_default_function): If this function belongs to a
7293 template class, call repo_template_used for it.
7294
7295 * repo.c (repo_template_used): Using a class means using its vtable,
7296 if any.
d11ad92e 7297 (finish_repo): Likewise.
79ff2c6c
MS
7298
7299 * typeck.c (build_modify_expr): Only wrap TARGET_EXPRs in RTL_EXPRs
7300 if the type has a complex copy constructor.
7301
7302 * decl2.c (lang_decode_option): -frepo implies
7303 -fno-implicit-templates.
7304
7305 * decl.c (start_function): Clear current_{base,member}_init_list.
7306
7307 * lex.c (init_lex): Also unset *_eq if ! flag_operator_names.
7308
7309Tue Apr 4 16:11:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7310
7311 * decl.c (struct cp_function): Add {base,member}_init_list.
7312 (push_cp_function_context): Save current_{base,member}_init_list.
7313 (pop_cp_function_context): Restore them.
7314
b19b4a78
MS
7315Mon Apr 3 16:55:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7316
7317 * repo.c (get_base_filename): Take filename parm, fix logic bug.
7318
7319 * typeck.c (build_compound_expr): Do not warn about a compound expr
7320 in which the first expression has no side effects.
7321 (build_x_compound_expr): Warn here instead.
7322 (build_conditional_expr): Don't warn about a conditional expression
7323 between an enum and the type it promotes to.
7324
7325 * init.c (build_new): Handle initialization of arrays of builtins
7326 properly.
7327
d11ad92e 7328Mon Apr 3 15:08:04 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b19b4a78
MS
7329
7330 * repo.c: Include config.h to get definitions of bcopy and rindex
7331 on systems that don't have them (e.g., SVR4).
7332
7333Mon Apr 3 14:41:55 1995 Mike Stump <mrs@cygnus.com>
7334
7335 * decl2.c (finish_table): Pass NULL_TREE instead of init to
7336 finish_decl so that it won't try and do error checking on the
7337 initializer.
7338
7339Mon Apr 3 10:45:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7340
7341 * repo.c (get_base_filename): Analyze COLLECT_GCC_OPTIONS to
7342 determine whether this compile used -c -o.
7343 (open_repo_file): Use get_base_filename. Remove the extension.
7344 (finish_repo): Spit out the values of main_input_filename,
7345 COLLECT_GCC and COLLECT_GCC_OPTIONS.
7346
7347 * parse.y (structsp): Add TYPENAME_KEYWORD complex_type_name.
7348
faae18ab
MS
7349Sun Apr 2 23:43:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7350
7351 * search.c (compute_access): Don't try to do access control on
7352 nested types.
7353
7354Fri Mar 31 10:14:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7355
7356 * repo.c: New file to handle things repo.
7357
7358 * pt.c (instantiate_template): Call repo_template_used if the
7359 definition is accessible.
7360 (mark_function_instantiated): Split out from
7361 do_function_instantiation.
7362 (mark_class_instantiated): Split out from do_type_instantiation.
7363
7364 * parse.y (template_instantiate_once): Call repo_template_used.
7365
7366 * lex.c (lang_init): Call init_repo.
7367
7368 * decl2.c: Handle flag_use_repository.
7369 (finish_file): Call finish_repo.
7370
7371 * decl.c (start_method): Call repo_template_used if this is a
7372 template method.
7373
7374 * Makefile.in (CXX_OBJS): Add repo.o.
7375 (repo.o): Add dependencies.
7376
7377 * Make-lang.in (CXX_SRCS): Add repo.c.
7378
7379 * decl.c (start_function): If DECL_INTERFACE_KNOWN and
7380 DECL_NOT_REALLY_EXTERN are both set, unset DECL_EXTERNAL.
7381
7382 * typeck.c (build_binary_op_nodefault): Identify the invalid operand
7383 types used.
7384
7385 * decl.c (duplicate_decls): Propagate DECL_NOT_REALLY_EXTERN.
7386
7387Thu Mar 30 17:54:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7388
7389 * typeck.c (build_binary_op_nodefault): Tidy up use of build_type
7390 and result_type. When checking for comparison between signed
7391 and unsigned, use result_type rather than the (possibly shortened)
7392 type of op0. Also, don't warn about equality comparison of a
7393 signed operand to an unsigned constant that fits in the signed
7394 type.
7395
7396 * method.c (do_build_copy_constructor): Reverse
7397 current_base_init_list after we've built it up.
7398
7399Thu Mar 30 14:35:18 1995 Mike Stump <mrs@cygnus.com>
7400
7401 * except.c (build_throw): Never warn about the value of throw not
7402 being used.
7403
7404Thu Mar 30 13:16:54 1995 Mike Stump <mrs@cygnus.com>
7405
7406 * except.c (expand_start_catch_block): Check for bad catch parameter
7407 declarations.
7408
7409Thu Mar 30 13:06:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7410
7411 * decl.c (finish_function): Only set DECL_NOT_REALLY_EXTERN if
7412 DECL_EXTERNAL is not already set.
7413
7414Thu Mar 30 11:26:24 1995 Mike Stump <mrs@cygnus.com>
7415
7416 * method.c (emit_thunk): Let poplevel know that the last level is
7417 for a function so it can create a BLOCK_NODE and set DECL_INITIAL.
7418
7419Thu Mar 30 11:15:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7420
7421 * decl2.c (import_export_inline): Don't set DECL_NOT_REALLY_EXTERN
7422 here.
7423
7424 * decl.c (grokdeclarator): OK, don't abort if we see a decl with
7425 METHOD_TYPE.
7426 (finish_function): Set DECL_EXTERNAL and DECL_NOT_REALLY_EXTERN on
7427 all deferred inlines.
7428
7429Wed Mar 29 19:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7430
7431 * cp-tree.h (DECL_THIS_INLINE): New macro.
7432 (DECL_NOT_REALLY_EXTERN): New macro.
7433 (DECL_THIS_STATIC): New macro.
7434
7435 * decl.c: Lose all references to current_extern_inline. Break
7436 inline semantics into DECL_INLINE for actual inlining and
7437 DECL_THIS_INLINE for the linkage wierdness. Use DECL_THIS_STATIC.
7438 * decl2.c: Use DECL_NOT_REALLY_EXTERN to indicate that we want to
7439 emit an inline here. Associated changes.
d11ad92e
MS
7440 * lex.c: Likewise.
7441 * pt.c: Likewise.
7442 * typeck.c: Likewise.
faae18ab
MS
7443
7444 * call.c (build_method_call): Don't bother trying to handle inlines
7445 specially.
d11ad92e 7446 * cvt.c (convert_to_aggr): Likewise.
faae18ab
MS
7447
7448 * pt.c (do_function_instantiation): Handle instantiation of
7449 public inlines, too.
7450
7451Wed Mar 29 16:04:25 1995 Mike Stump <mrs@cygnus.com>
7452
7453 * except.c (init_exception_processing): Change the interface for
7454 __throw_type_match and add decl for new rtti matching routine
7455 __throw_type_match_rtti.
7456 (build_eh_type): New routine to build a run time descriptor for the
7457 expression given.
7458 (expand_start_catch_block): Update to use new calling convention for
7459 the matcher.
7460 (expand_throw): Update to use build_eh_type.
7461
08fb8ad0
WL
7462Mon Mar 27 07:14:33 1995 Warner Losh <imp@village.org>
7463
7464 * g++.c: Removed __NetBSD__ from conditional.
7465 Declare strerror if HAVE_STRERROR is defined; otherwise
7466 declare sys_errlist and sys_nerr.
7467 (my_strerror): New function.
7468
71851aaa
MS
7469Tue Mar 28 14:16:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7470
7471 * search.c (get_binfo): Don't try to be so clever.
7472
7473 * tree.c (copy_to_permanent): Also suspend_momentary().
7474
7475 * cvt.c (cp_convert_to_pointer): Hand off to convert_fn_pointer even
7476 if the types are the same.
7477
7478 * decl.c (start_function): Handle extern inlines more like C++ says
f30432d7 7479 we should.
71851aaa
MS
7480
7481 * init.c (build_member_call): Hand constructor calls off to
7482 build_functional_cast.
7483
7484 * typeck2.c (build_functional_cast): Use DECL_NESTED_TYPENAME to get
7485 the name of the type.
7486
d11ad92e 7487Tue Mar 28 13:13:56 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
71851aaa
MS
7488
7489 * decl.c (grokdeclarator): Check for the decl returned by
7490 grokfndecl to be null before using build_decl_attribute_variant.
7491
d11ad92e 7492Mon Mar 27 18:04:41 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
71851aaa
MS
7493
7494 * init.c (build_new): Use build_pointer_type instead of
7495 TYPE_POINTER_TO.
7496
7215f9a0
MS
7497Fri Mar 24 12:11:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7498
71851aaa
MS
7499 * typeck.c (build_conditional_expr): Handle pmfs.
7500 (convert_for_assignment): Fix pmf support.
7501
7502 * cvt.c (convert_fn_ptr): Support !flag_vtable_thunks.
7503 (cp_convert_to_pointer): Handle pmfs.
7504 (cp_convert): Pass pmfs to cp_convert_to_pointer.
7505
7506 * typeck.c (common_type): Handle inheritance for pmfs.
7507
7508 * typeck2.c (build_m_component_ref): Do access control.
7509
7510 * typeck.c (comp_target_types): Check for conversion to void *
7511 before checking trickier conversions.
7512
7215f9a0
MS
7513 * decl.c (duplicate_decls): Propagate DECL_ABSTRACT_VIRTUAL_P.
7514
7515 * pt.c (push_tinst_level): Complain if template instantiation depth
7516 is greater than max_tinst_depth.
7517
7518 * typeck.c (common_type): Assume that we can call common_type to
7519 unify the target type of a pointer.
7520
7521Thu Mar 23 00:48:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7522
7523 * decl2.c (finish_file): Don't synthesize methods at
7524 finish_vtable_prevardecl time. Do synthesize methods that are not
7525 used, but are public and not external.
7526
7527 * cvt.c (build_type_conversion): Only give an error if for_sure.
7528
7529 * typeck.c (comp_target_types): Only support pointer conversions if
7530 nptrs > 0.
7531
d11ad92e 7532Wed Mar 22 19:30:15 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7215f9a0
MS
7533
7534 * init.c (build_new): Catch use of an initializer list where it
7535 shouldn't be.
7536
7537Wed Mar 22 16:21:07 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7538
7539 * init.c (build_new): Wrap alloc_expr in an RTL_EXPR if nelts is
7540 non-constant.
7541
7542 * decl2.c: temp_name_counter is now public.
7543
7544 * decl.c (struct cp_function): Add temp_name_counter field.
7545 (push_cp_function_context): Save it.
7546 (pop_cp_function_context): Restore it.
7547
7548 * typeck.c (common_type): Handle unifying function types, and unify
7549 unmatched things to void* with a compiler_error, rather than
7550 silently like before.
7551
28cbf42c
MS
7552Wed Mar 22 15:10:34 1995 Mike Stump <mrs@cygnus.com>
7553
7554 * decl2.c (finish_prevtable_vardecl, finish_vtable_vardecl): Revert
7555 Brendan's last change and fix latent problem that causes TD entries
7556 to not come out when the things that need them has yet to be
7557 expanded.
7558
7559Wed Mar 22 15:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7560
7561 * typeck.c (build_binary_op_nodefault, comparison ops): Update type0
7562 and type1, since we might have changed op0 or op1.
7563
7564Wed Mar 22 13:33:45 1995 Jason Merrill <jason@python.cygnus.com>
7565
7566 * typeck.c (common_type): Don't mess up templates.
7567
7568Wed Mar 22 04:56:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7569
7570 * typeck.c (common_type): Handle ptms properly. Also handle
7571 T* -> void*.
7572 (build_binary_op_nodefault): New variable build_type controls what
7573 type is given to the expression when it is created. Set this to
7574 boolean_type_node for comparison ops instead of using result_type.
7575 (comp_target_types): Allow T * -> void *.
7576
7577 * cvt.c (cp_convert_to_pointer): Do access control when converting
7578 ptms, too.
7579
d11ad92e 7580Tue Mar 21 17:25:06 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
7581
7582 * parse.y (extern_lang_string): Catch use of linkage specs that
7583 aren't all naming the same language.
7584
7585 * class.c (finish_struct): Delete accidental duplicate code.
7586
7587Tue Mar 21 14:00:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7588
7589 * typeck.c (build_binary_op_nodefault): Disable pedwarns about
7590 comparing functions and incomplete types.
7591
7592 * decl.c (finish_function): Only unset current_function_decl if
7593 !nested.
7594 (duplicate_decls): Last change went too far; we only want to stop
7595 checking for value/reference ambiguity.
7596
7597Tue Mar 21 01:26:39 1995 Mike Stump <mrs@cygnus.com>
7598
7599 * gc.c (build_generic_desc): Zap the DECL_SIZE so that we can lay it
7600 out fresh, as the new type may be larger.
7601
7602Mon Mar 20 19:01:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7603
7604 * expr.c (extract_init): Try to expand the RTL for the
7605 initialization and figure out what it will look like so we can avoid
7606 run-time initialization. Disabled for now.
7607 (extract_scalar_init): Helper for scalar initialization.
7608 (extract_aggr_init): Helper for aggregate initialization.
7609
7610 * decl.c (duplicate_decls): Don't complain about ambiguous
7611 declarations.
7612 (obscure_complex_init): Now returns a tree. Call extract_init if
7613 we're optimizing and this is a toplevel decl.
7614 (finish_decl): Update accordingly.
7615
7616 * lex.c (check_newline): If we're just changing files (not pushing
7617 or popping), update input_file_stack->name.
7618
7619Mon Mar 20 17:55:04 1995 Mike Stump <mrs@cygnus.com>
7620
7621 * pt.c (type_unification): Only TEMPLATE_DECLs are handled right now
7622 in the transitive unification code.
7623
d11ad92e 7624Mon Mar 20 16:07:50 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
7625
7626 * decl.c (shadow_tag): Don't allow inline, virtual, or explicit on
7627 non-functions.
7628 (grokdeclarator): Don't allow friends to be defined in local classes.
7629
7630Sat Mar 18 04:03:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7631
7632 * decl2.c (finish_prevtable_vardecl): Use DECL_DECLARED_STATIC
7633 rather than DECL_SAVED_INSNS to decide whether or not this method
7634 was declared inline.
7635
7636 * method.c (synthesize_method): Turn off DECL_INLINE if
7637 function_cannot_inline_p thinks we're too large.
7638
7639 * typeck.c (build_indirect_ref): Use build_expr_type_conversion.
7640
7641Fri Mar 17 17:47:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7642
7643 * class.c (instantiate_type): Handle pmfs.
7644
7645 * typeck.c (convert_for_assignment): Check types when assigning one
7646 pmf to another.
7647
7648 * decl.c (define_label): Fix logic for printing out the name of the
7649 label in an error message.
7650
7651 * error.c (dump_expr): Support ARRAY_REF.
7652
d11ad92e 7653Fri Mar 17 17:43:02 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
7654
7655 * decl2.c (finish_vtable_vardecl): Call build_t_desc here.
7656 (finish_prevtable_vardecl): Instead of here.
7657
7658Fri Mar 17 14:40:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7659
7660 * decl.c (expand_static_init): Also use expand_aggr_init if the
7661 initializer is a TREE_LIST.
7662 (grokdeclarator): Only pedwarn about extra qualification if -pedantic.
7663
7664 * pt.c (unify): Fix unification of return type.
7665
7666 * expr.c (fixup_result_decl): Use store_expr, rather than
7667 emit_move_insn, to move the return value into the place where
7668 callers will expect it.
7669
7670Thu Mar 16 22:05:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7671
7672 * init.c (build_offset_ref): Call assmble_external on functions.
d11ad92e 7673 * typeck.c (build_component_ref): Likewise.
28cbf42c 7674
d11ad92e 7675Thu Mar 16 20:28:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
7676
7677 * decl.c (struct saved_scope): Add members base_init_list and
7678 member_init_list.
7679 (push_to_top_level): Save current_base_init_list and
7680 current_member_init_list to them.
7681 (pop_from_top_level): Put it back.
7682
7683Thu Mar 16 19:21:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7684
7685 * pt.c (instantiate_template): Call assemble_external.
7686
d11ad92e 7687Thu Mar 16 18:07:54 1995 Brendan Kehoe <brendan@phydeaux.cygnus.com>
28cbf42c
MS
7688
7689 * class.c: Include rtl.h, to get NULL_RTX.
7690 (finish_struct): Also zero out DECL_SAVED_INSNS, to avoid problems
7691 on hosts with different sizes for each part of the union.
7692 * tree.c: Also include rtl.h.
7693 (layout_basetypes): Same change for DECL_SAVED_INSNS.
7694
7695Thu Mar 16 13:57:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7696
7697 * pt.c (unify): Fix array domain unification for 64-bit targets.
7698
7699 * decl2.c (finish_file): Push bizarre type decl before walking the
7700 vtables the first time.
7701 (walk_vtables): OK, don't set prev to vars if the vardecl_fn messed
7702 with TREE_CHAIN (prev).
7703
7704 * init.c (emit_base_init): Use convert_pointer_to_real instead of
7705 convert_pointer_to when converting to a direct base.
7706
7707Wed Mar 15 20:26:29 1995 Mike Stump <mrs@cygnus.com>
7708
7709 * pt.c (type_unification): Handle transitive unification better.
7710
7711Wed Mar 15 13:56:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7712
7713 * decl2.c (walk_vtables): Always set prev to vars.
7714 (mark_vtable_entries): Call assemble_external on the vtable entries.
7715
7716 * class.c (finish_struct): Set the vtable's size to NULL_TREE before
f30432d7 7717 calling layout_decl, so that it gets updated properly.
28cbf42c
MS
7718
7719 Finally re-enable dynamic synthesis. This time it works.
7720 * method.c (synthesize_method): Pass decl_function_context (fndecl)
7721 to {push,pop}_cp_function_context.
7722 * decl.c (push_cp_function_context): Now takes a tree argument.
d11ad92e 7723 (pop_cp_function_context): Likewise.
28cbf42c 7724 * call.c (build_method_call): Enable synthesis.
d11ad92e 7725 * lex.c (cons_up_default_function): Likewise.
28cbf42c
MS
7726
7727Tue Mar 14 19:14:19 1995 Doug Evans <dje@chestnut.cygnus.com>
7728
7729 * parse.y (setattrs): Chain onto prefix_attributes rather than
7730 setting it.
7731
d11ad92e 7732Wed Mar 15 13:00:00 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
7733
7734 * decl.c (pushdecl): Check if the type of the VAR_DECL is an
7735 error_mark_node before trying to read TYPE_LANG_SPECIFIC.
7736
d11ad92e 7737Mon Mar 13 21:00:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7738
7739 * decl.c (grokdeclarator, case ARRAY_REF): Wrap the exp with fold,
7740 and convert the size and integer_one_node to the index type.
7741
7742Mon Mar 13 08:01:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7743
7744 * typeck.c (get_member_function_from_ptrfunc): Save the instance
7745 argument, and tack it onto the front of the COND_EXPR to make the
7746 semantics come out right. Grab the instance argument from
7747 '*instance_ptrptr', rather than having it passed in separately.
7748
7749 * various: Change various consed-up comparison operations to have
7750 boolean type. Remove the instance argument in calls to
7751 get_member_function_from_ptrfunc.
7752
7753 * error.c (dump_expr): Dump true and false as "true" and "false".
7754
7755 * decl2.c (finish_file): Also set DECL_STATIC_FUNCTION_P on the
7756 global init function.
7757
7758 * decl.c (finish_function): Only set DECL_EXTERNAL here if the
7759 inline function is public.
7760
7761Sat Mar 11 00:58:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7762
7763 * init.c (is_friend): Be more careful about checking
7764 DECL_CLASS_CONTEXT on non-member functions.
7765
7766 * decl2.c (finish_vtable_vardecl): Don't bother calling
7767 assemble_external here.
7768 (prune_vtable_vardecl): New function that just splices out the
7769 vtable decl from the top-level decls.
7770 (import_export_inline): Unset DECL_EXTERNAL at first.
7771 (finish_file): Don't bother calling assemble_external here. Do
7772 splice out all of the vtables.
7773
7774Fri Mar 10 14:42:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7775
7776 * decl.c (finish_function): If we're not emitting the function yet,
7777 call assemble_external for it.
7778
7779 * decl2.c (finish_prevtable_vardecl): Don't call mark_vtable_entries
7780 here.
7781 (finish_vtable_vardecl): Don't do the linkage deduction thing here.
7782 Also don't splice out the current vtable if it is unused.
7783 (finish_file): Move the second walk_vtables and the synthesis check
7784 inside the 'reconsider' loop. Move thunk emission after the
7785 'reconsider' loop.
7786
d11ad92e 7787Thu Mar 9 16:28:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7788
7789 * pt.c (tsubst): Don't bother calling cp_build_type_variant, since it
7790 was passing bogus values for readonly and volatile from the original
7791 template decl, not the resultant type of the tsubst call.
7792
7793 * class.c (duplicate_tag_error): Use cp_error_at to point out the
7794 previous definition of the tag.
7795
7796Thu Mar 9 10:46:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7797
7798 * decl.c (start_function): Clear base_init_insns and protect_list.
7799 (struct cp_function): Add base_init_insns field.
7800 (push_cp_function_context): Also save base_init_insns.
7801 (pop_cp_function_context): Also restore base_init_insns.
7802
7803Wed Mar 8 13:31:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7804
7805 * init.c (member_init_ok_or_else): Check for initializing a static
7806 member here.
7807 (emit_base_init): Instead of here.
7808
7809Tue Mar 7 16:03:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7810
7811 * call.c (build_method_call): Disable synthesis as needed.
d11ad92e 7812 * lex.c (cons_up_default_function): Likewise.
b7484fbe 7813
d11ad92e 7814Tue Mar 7 10:14:29 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
f6abb50a
BK
7815
7816 * parse.y: New rules to allow attributes in a prefix position.
7817 (prefix_attributes): New variable. Pass it into cplus_decl_attributes.
7818 (setattr): New rule.
7819 (reserved_declspecs, declmods): Catch attributes here.
7820 * decl2.c (cplus_decl_attributes): Add PREFIX_ATTRIBUTES argument.
7821 * decl.c (duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to
7822 descendent typedef.
7823 (grokdeclarator): Added code to support machine attributes.
7824 * Makefile.in (stamp-parse): Expect 5 shift/reduce failures.
7825
b7484fbe
MS
7826Mon Mar 6 15:07:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7827
7828 * call.c (build_method_call): Don't synthesize methods outside of a
7829 function.
7830
7831 Make base initialization more re-entrant so that synthesis on the
7832 fly will work (and, eventually, template instantation on the fly).
7833 * init.c (sort_member_init): Don't bother with members that can't be
7834 initialized. Reorganize a bit. Don't initialize base members here.
7835 (sort_base_init): New function, like sort_member_init, but for base
7836 classes. Steals some code from emit_base_init.
7837 (emit_base_init): Simplify. Call sort_{member,base}_init before
7838 doing any initialization, so we don't have to save
7839 current_{member,base}_init_list in push_cp_function_context.
7840 (expand_aggr_vbase_init_1): Adjust for sort_base_init.
7841 (expand_aggr_vbase_init): Simplify.
7842 * decl.c (struct cp_function): Add protect_list field.
7843 (push_cp_function_context): Also save protect_list.
7844 (pop_cp_function_context): Also restore protect_list.
7845 * call.c (build_method_call): Enable synthesis at point of call.
d11ad92e 7846 * lex.c (cons_up_default_function): Likewise.
b7484fbe
MS
7847
7848 * parse.y: Turn -ansi checks back into -pedantic checks.
7849
7850 * init.c (build_new): Fix -fcheck-new for array new.
7851
7852Sat Mar 4 15:55:42 1995 Fergus Henderson <fjh@cs.mu.oz.au>
7853
7854 * typeck.c (build_compound_expr): warn if left-hand operand of
7855 comma expression has no side-effects.
7856
7857Fri Mar 3 15:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7858
7859 * parse.y (primary): Change 'object qualified_id *' rules to 'object
7860 overqualified_id *'.
7861
d11ad92e 7862Fri Mar 3 12:48:17 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7863
7864 * parse.y (unary_expr): Catch doing sizeof an overloaded function.
7865 Make the error look the same as the one we issue in c_sizeof.
7866
7867 * typeck.c (build_binary_op_nodefault): Give an error for trying
7868 to compare a pointer-to-member to `void *'.
7869
7870Fri Mar 3 11:28:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7871
7872 * typeck.c (build_unary_op): Handle bool increment with smoke and
7873 mirrors here, rather than in expand_increment where it belongs,
7874 because Kenner doesn't agree with me.
7875
d11ad92e 7876Fri Mar 3 00:08:10 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7877
7878 * decl.c (grokparms): Catch a PARM_DECL being used for a default
7879 argument as well.
7880
d11ad92e 7881Thu Mar 2 20:05:54 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7882
7883 * init.c (build_new): Don't allow new on a function type.
7884
7885 * parse.y (primary): Avoid a crash when seeing if the arg is of
7886 the same type as that given for the typespec in an explicit dtor call.
7887
7888Thu Mar 2 00:49:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7889
7890 * decl.c (finish_function): Change test for calling
7891 mark_inline_for_output.
7892
7893Wed Mar 1 11:23:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7894
7895 * typeck.c (build_modify_expr): Complain if
7896 build_default_binary_type_conversion fails.
7897
7898 * init.c (expand_default_init): Handle arguments of unknown type
7899 properly.
7900
7901 * cvt.c (build_expr_type_conversion): Only complain about ambiguity
7902 if 'complain'.
7903 * various: Pass 'complain'.
7904
7905 * typeck.c (comptypes): Be more picky about comparing UPTs.
7906
d11ad92e 7907Wed Mar 1 11:03:41 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7908
7909 * decl.c (grokdeclarator): If declarator is null, say that the
7910 type used has an incomplete type.
7911
7912Wed Mar 1 10:06:20 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7913
7914 * pt.c (instantiate_template): Copy the template arguments to the
7915 permanent_obstack. Also use simple_cst_equal to compare them when
7916 looking for a previous instantiation.
7917
7918 * tree.c (make_deep_copy): Support copying INTEGER_TYPEs (assuming
7919 they are array domain types).
7920
7921Tue Feb 28 23:24:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7922
7923 * cp-tree.h: Define WANT_* constants for passing to
7924 build_expr_type_conversion.
7925 * cvt.c (build_expr_type_conversion): New function to build
7926 conversion to one of a group of suitable types.
7927 (build_default_binary_type_conversion): Use it.
d11ad92e
MS
7928 * decl2.c (grok_array_decl): Likewise.
7929 * typeck.c (build_unary_op): Likewise.
b7484fbe 7930 (build_array_ref): Tidy up a bit.
d11ad92e 7931 (build_binary_op): Likewise.
b7484fbe 7932
d11ad92e 7933Tue Feb 28 19:57:31 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7934
7935 * decl.c (grokdeclarator): Don't allow decl of an argument as `void'.
7936
7937Tue Feb 28 17:23:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7938
7939 * parse.y (typed_declspecs1): Add 'typespec reserved_typespecquals
7940 reserved_declspecs' rule.
7941
7942 * parse.y (expr_or_declarator): Remove notype_qualified_id rule.
d11ad92e 7943 (direct_notype_declarator): Likewise.
b7484fbe
MS
7944 (complex_direct_notype_declarator): Add notype_qualified_id rule.
7945
7946 * lex.c (real_yylex): Handle :> digraph properly.
7947
d11ad92e 7948Tue Feb 28 12:26:29 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7949
7950 * decl.c (grokdeclarator): Check if it's a friend, not if it's
7951 non-virtual, that's being initialized. Move the check up to
7952 before FRIENDP would get cleared. Catch an unnamed var/field
7953 being declared void. Say just `field' instead of `structure field'
7954 in the error message. Only go for the operator name if DECLARATOR
7955 is non-null.
7956
7957Tue Feb 28 00:08:01 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7958
7959 * decl.c (start_function): Complain about abstract return type.
7960 (grokdeclarator): Complain about declaring constructors and
7961 destructors to be const or volatile. Complain about declaring
7962 destructors to be static.
7963
7964 * pt.c (uses_template_parms): Handle pmfs.
7965
7966 * decl.c (grokdeclarator): Don't call variable_size for array bounds
7967 that only depend on template constant parameters.
7968
d11ad92e 7969Mon Feb 27 15:38:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7970
7971 * error.c (dump_decl): Only look to see if it's a vtable if we
7972 actually have a name to check out.
7973
7974Mon Feb 27 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7975
7976 * cvt.c (convert_to_aggr): Lose misleading shortcut.
7977
7978Sun Feb 26 17:27:32 1995 Doug Evans <dje@canuck.cygnus.com>
7979
7980 * decl.c (set_nested_typename): Always set DECL_IGNORED_P,
7981 not just for dwarf.
7982
d11ad92e 7983Sun Feb 26 00:10:18 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7984
7985 * decl.c (grokdeclarator): Don't allow a static member to be
7986 declared `register'.
7987
7988 * init.c (make_friend_class): Move up to a pedwarn for the warning
7989 about a class declaring friends with itself.
7990
7991 * decl.c (grokdeclarator): You can't do `volatile friend class foo'
7992 or `inline friend class foo'. Only try to make a friend out of
7993 TYPE if we didn't already reset it to integer_type_node.
7994
d11ad92e 7995Sat Feb 25 22:32:03 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7996
7997 * decl.c (grokdeclarator): Don't allow initialization of a
7998 non-virtual function.
7999
8000 * decl.c (start_function): Do a pedwarn if we're changing `main'
8001 to have an int return type.
8002
8003Sat Feb 25 00:02:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8004
8005 * typeck.c (build_modify_expr): Handle simple assignment from
8006 TARGET_EXPRs by building up an RTL_EXPR to force expansion. Whew.
8007
d11ad92e 8008Fri Feb 24 18:27:14 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
8009
8010 * decl.c (grokdeclarator): Also don't allow virtual outside of a
8011 class decl for a scope method definition performed at global binding.
8012
8013 * init.c (build_offset_ref): Don't allow creation of an OFFSET_REF
8014 of a bitfield.
8015
8016 * decl.c (grokdeclarator): Don't allow a const to be declared mutable.
8017
8018 * typeck.c (build_binary_op): Return an error_mark_node if either
8019 one of the args turned into an error_mark_node when we tried to
8020 use default_conversion.
8021
8022 * typeck.c (build_unary_op): Forbid using postfix -- on a bool.
8023
8024 * decl.c (grokdeclarator): Allow `signed' and `unsigned' to be
8025 used on `__wchar_t'.
8026
8027Fri Feb 24 13:59:53 1995 Mike Stump <mrs@cygnus.com>
8028
8029 * except.c (end_protect_partials): Do it the right way.
8030
8031Wed Feb 22 15:42:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8032
8033 * typeck.c (build_binary_op_nodefault): Upgrade warning about
8034 comparing distinct pointer types to pedwarn.
8035
8036 * typeck2.c (digest_init): Cope with extra braces.
8037
8038 * typeck.c (build_binary_op_nodefault): Use tree_int_cst_sgn instead
8039 of INT_CST_LT (..., interger_zero_node).
8040
d11ad92e 8041Wed Feb 22 14:45:52 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
8042
8043 * except.c [!TRY_NEW_EH] (end_protect_partials): Define dummy
8044 function for systems that don't have EH.
8045
8046Tue Feb 21 19:18:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8047
8048 * call.c (can_convert_arg): Like can_convert, but takes an arg as
8049 well.
8050
8051 * pt.c (type_unification): Allow implicit conversions for parameters
8052 that do not depend on template parameters.
8053
d11ad92e 8054Tue Feb 21 18:43:48 1995 Douglas Rupp <drupp@cs.washington.edu>
1b65f56d
DR
8055
8056 * Make-lang.in, config-lang.in: ($exeext): New macro.
8057 * Make-lang.in: Try a "cp" if "ln" fails.
8058 * cp-tree.h (decl_attributes): Added argument.
8059 * decl2.c (cplus_decl_attribute): Add arg to decl_attributes.
8060 * cp/g++.c: Added #ifdefs for sys/file.h and process.h for NT.
8061 Modified spawnvp to have to correct number of arguments for OS/2, NT.
8062
b7484fbe
MS
8063Tue Feb 21 18:36:55 1995 Mike Stump <mrs@cygnus.com>
8064
8065 * decl.c (finish_function): Add calls to end_protect_partials to end
8066 the exception region that protects constructors so that partially
8067 constructed objects can be partially destructed when the constructor
8068 throws an exception.
8069 * init.c (perform_member_init, sort_member_init, emit_base_init):
8070 Added support for partially constructed objects.
8071 * init.c (build_partial_cleanup_for): New routine to do partial
8072 cleanups of a base class.
8073 * decl2.c (finish_file): Move the emitting of the exception table
8074 down, after we emit all code that might have exception regions in
8075 them.
8076 * except.c (end_protect_partials, might_have_exceptions_p): New
8077 routines.
8078 (emit_exception_table): Always output table if called.
8079 * cp-tree.h (protect_list, end_protect_partials,
8080 might_have_exceptions_p, emit_exception_table): Added.
8081
d11ad92e 8082Tue Feb 21 16:05:59 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
8083
8084 * gc.c (build_typeid): Pass a NULL_TREE, not the bogus, unused
8085 address of a local variable.
8086 * class.c (build_vfn_ref): Only try to build the PLUS_EXPR if we
8087 were given a non-null PTR_TO_INSTPTR.
8088
8089Tue Feb 21 01:53:18 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8090
8091 * decl.c (duplicate_decls): Always lay out the merged decl.
8092
8093 * decl2.c (finish_vtable_vardecl): Don't do vtable hack on templates.
d11ad92e 8094 (finish_prevtable_vardecl): Likewise.
59be85d7 8095
b7484fbe
MS
8096 * method.c (synthesize_method): Set interface_{unknown,only}
8097 according to the settings for our class, not the file where it comes
8098 from.
59be85d7 8099
b7484fbe 8100Sat Feb 18 12:26:48 1995 Mike Stump <mrs@cygnus.com>
3a887df4 8101
b7484fbe 8102 * except.c: Handle systems that define __i386__ but not __i386.
3a887df4 8103
e3417fcd
MS
8104Fri Feb 17 15:31:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8105
8106 * decl2.c (reparse_decl_as_expr): Support being called without a
8107 type argument.
8108
8109 * parse.y (primary): Add '(' expr_or_declarator ')'. Adds 4 r/r
8110 conflicts. Sigh.
8111
8112Fri Feb 17 12:02:06 1995 Mike Stump <mrs@cygnus.com>
8113
8114 * parse.y (template_def, fndef, fn.def1, return_init, condition,
8115 initdcl0, initdcl, notype_initdcl0, nomods_initdcl0,
8116 component_decl_1, after_type_component_declarator0,
8117 notype_component_declarator0, after_type_component_declarator,
8118 notype_component_declarator, after_type_component_declarator,
8119 full_parm, maybe_raises, exception_specification_opt): Fix up,
8120 include exception_specification_opt maybeasm maybe_attribute and
8121 maybe_init if missing. Rename maybe_raises to
8122 exception_specification_opt to match draft wording. Use maybe_init
8123 to simplify rules.
8124
8125Fri Feb 17 01:54:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8126
8127 * init.c (build_new): Set TREE_NO_UNUSED_WARNING on COMPOUND_EXPRs
8128 built for news of scalar types.
8129
8130Thu Feb 16 17:48:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8131
8132 * typeck.c (build_binary_op_nodefault): Update code for warning
8133 about signed/unsigned comparisons from C frontend. Realize that the
8134 code in the C frontend is, if anything, even more bogus. Fix it.
8135 (build_binary_op): Undo default_conversion if it wasn't useful.
8136
8137 * typeck.c (build_unary_op, ADDR_EXPR): Lose bogus special case for
8138 PRE*CREMENT_EXPR.
8139
8140 * decl2.c (import_export_vtable): Don't try the vtable hack
8141 if the class doesn't have any real non-inline virtual functions.
8142 (finish_vtable_vardecl): Don't bother trying to find a non-inline
8143 virtual function in a non-polymorphic class.
d11ad92e 8144 (finish_prevtable_vardecl): Likewise.
e3417fcd
MS
8145
8146 * decl2.c (import_export_vtable): Use and set DECL_INTERFACE_KNOWN.
8147
8148 * cp-tree.h (DECL_INTERFACE_KNOWN): Use DECL_LANG_FLAG_5.
8149
8150 * init.c (expand_virtual_init): Always call assemble_external.
8151
8152 * class.c (build_vfn_ref): Always call assemble_external.
8153 (build_vtable): Always call import_export_vtable.
d11ad92e 8154 (prepare_fresh_vtable): Likewise.
e3417fcd
MS
8155 (add_virtual_function): Don't bother setting TREE_ADDRESSABLE.
8156
8ccc31eb
MS
8157Thu Feb 16 03:28:49 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8158
8159 * class.c (finish_struct): Use TYPE_{MIN,MAX}_VALUE to determine
8160 whether an enumerated type fits in a bitfield.
8161
8162Wed Feb 15 15:38:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8163
8164 * class.c (grow_method): Update method_vec after growing the class
f30432d7 8165 obstack.
8ccc31eb
MS
8166
8167Wed Feb 15 13:42:59 1995 Mike Stump <mrs@cygnus.com>
8168
8169 * parse.y (handler_seq): Push a level for the catch parameters.
8170
8171Wed Feb 15 12:42:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8172
8173 * init.c (emit_base_init): Update BINFO_INHERITANCE_CHAIN on my
8174 bases, in case they've been clobbered.
8175
8176Wed Feb 15 12:07:29 1995 Mike Stump <mrs@cygnus.com>
8177
8178 * class.c (finish_base_struct): Set up BINFO_INHERITANCE_CHAIN here,
8179 so that one day it will always be valid.
d11ad92e 8180 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Likewise.
8ccc31eb
MS
8181
8182 * cp-tree.h (copy_binfo): Removed, unused.
d11ad92e 8183 * tree.c (copy_binfo): Likewise.
8ccc31eb
MS
8184
8185Wed Feb 15 00:05:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8186
8187 * init.c (build_new): Save the allocation before calling
8188 expand_vec_init on it.
8189
8190 * decl.c (finish_enum): The TYPE_PRECISION of the enum type mush
8191 match the TYPE_PRECISION of the underlying type for constant folding
8192 to work.
8193
8194Tue Feb 14 15:31:25 1995 Mike Stump <mrs@cygnus.com>
8195
8196 * except.c (push_eh_entry, expand_start_all_catch,
8197 expand_leftover_cleanups, expand_end_catch_block): Keep track of
8198 the context in which the exception region occurs.
8199 (build_exception_table): If the region was not output, don't output
8200 the entry in the eh table for it.
8201
8202Tue Feb 14 02:15:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8203
8204 * init.c (expand_default_init): Only use a previous constructor call
8205 if it's a call to our constructor. Does the word "Duh" mean
8206 anything to you?
8207
8208 * decl.c (grokparms): Fine, just don't call
8209 convert_for_initialization at all. OK? Happy now?
8210
8211Mon Feb 13 02:23:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8212
8213 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Make sure that the class
8214 method vector has a second element before returning it.
8215
8216 * decl.c (grokparms): Don't strip REFERENCE_TYPE before calling
8217 convert_for_initialization.
8218
8219Sun Feb 12 03:57:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8220
8221 * typeck.c (build_modify_expr): Compare function name to
8222 constructor_name (current_class_type) instead of current_class_name.
8223
8224 * decl.c (grokparms): Don't do anything with the return value of
8225 convert_for_initialization.
8226
8227 * error.c (dump_decl): Also dump_readonly_or_volatile on the decl.
8228
8229 * decl.c (duplicate_decls): Tweak error message.
8230
8231 * typeck.c (build_const_cast): Implement checking.
8232 (build_reinterpret_cast): Implement some checking.
8233
8234 * cp-tree.h (CONV_FORCE_TEMP): Require a new temporary when
8235 converting to the same aggregate type.
8236 (CONV_STATIC_CAST): Include it.
d11ad92e 8237 (CONV_C_CAST): Likewise.
8ccc31eb
MS
8238 * cvt.c (convert_force): Use CONV_C_CAST instead of CONV_OLD_CONVERT.
8239 (cp_convert): Only force a new temporary if CONV_FORCE_TEMP.
8240
8241Fri Feb 10 16:18:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8242
8243 * typeck.c (build_c_cast): Use non_lvalue to tack something on
f30432d7 8244 where necessary.
8ccc31eb
MS
8245
8246 * decl.c (auto_function): Now a function.
8247 * except.c (init_exception_processing): terminate, unexpected,
8248 set_terminate, and set_unexpected have C++ linkage.
8249
8250 * typeck.c (build_unary_op, TRUTH_NOT_EXPR): Use convert instead of
8251 truthvalue_conversion for converting to bool, as it handles
8252 user-defined conversions properly.
d11ad92e 8253 (condition_conversion): Likewise.
8ccc31eb
MS
8254
8255 * except.c (expand_throw): Don't call convert_to_reference.
8256 Pass the correct parameters to build_new.
8257
8258 * method.c (do_build_assign_ref): Don't use access control when
8259 converting to a base reference here.
8260 (do_build_copy_constructor): Or here.
8261
8262 * init.c (build_new): Unset TREE_READONLY on the dereferenced
8263 pointer before assigning to it.
8264
8265 * decl.c (maybe_build_cleanup): Don't bother stripping const here.
8266
8267 * decl2.c (delete_sanity): You can now delete pointer to const.
8268
8269Fri Feb 10 13:28:38 1995 Jason Merrill <jason@python.cygnus.com>
8270
8271 * decl.c (finish_function): Don't rely on actual parameters being
8272 evaluated left-to-right.
d11ad92e 8273 * except.c (expand_end_catch_block): Likewise.
8ccc31eb
MS
8274
8275Fri Feb 10 00:52:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8276
8277 * tree.c (real_lvalue_p): Like lvalue_p, but class temps aren't
8278 considered lvalues.
8279 * cvt.c (convert_to_reference): Use real_lvalue_p instead of
f30432d7 8280 lvalue_p.
8ccc31eb
MS
8281
8282 * cvt.c (build_type_conversion_1): Don't call convert on aggregate
8283 types.
8284 (convert_to_reference): Fix erroneous text substitution.
8285
8286 * typeck2.c (initializer_constant_valid_p): Update from C frontend.
8287 Add new argument to all callers.
8288
8289 * typeck.c (convert_arguments): Check for error_mark_node before
8290 trying to do anything with the actual parameter.
8291
8292 * typeck.c (condition_conversion): Build up a CLEANUP_POINT_EXPR and
8293 fold it.
8294 (bool_truthvalue_conversion): Remove. Fix all callers to call
8295 truthvalue_conversion instead.
8296 (various): Fold CLEANUP_POINT_EXPRs.
8297
8298 * parse.y (conditions): Call condition_conversion rather than
8299 building up a CLEANUP_POINT_EXPR.
8300
8301 * pt.c (end_template_decl): Don't warn_if_unknown_interface here
8302 under -falt-external-templates.
8303
8304Thu Feb 9 05:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8305
8306 * init.c (build_new): Complain about new of const type without
8307 initializer. Other cleanup.
8308
8309 * call.c (compute_conversion_costs): Don't call
8310 build_type_conversion with a reference type; convert to the target
8311 type and check its lvaluetude.
d11ad92e 8312 * cvt.c (convert_to_reference): Likewise.
8ccc31eb
MS
8313
8314 * cvt.c (build_type_conversion_1): There will never be any need to
8315 dereference references here now.
8316
8317Thu Feb 9 00:37:47 1995 Mike Stump <mrs@cygnus.com>
8318
8319 * except.c (expand_builtin_throw): Make sure we only `use' the
8320 value of return_val_rtx.
8321
8322Wed Feb 8 15:45:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8323
8324 * parse.y (structsp): Don't complain about declaring a type being
8325 defined to be a friend.
8326
8327 * decl2.c (warn_if_unknown_interface): Note the template in question
8328 and the point of instantiation, for -falt-external-templates.
8329 * lex.c (reinit_parse_for_method): Pass the decl to
8330 warn_if_unknown_interface.
d11ad92e
MS
8331 * pt.c (instantiate_template): Likewise.
8332 (end_template_decl): Likewise.
8ccc31eb
MS
8333
8334 * decl.c (set_nested_typename): Set IDENTIFIER_TYPE_VALUE on the
8335 nested name again, to make local classes work a bit better.
8336
8337 * typeck.c (build_function_call_real): Dereference reference after
8338 checking for incomplete type.
8339
8340 * init.c (build_new): Accept new of const and volatile types.
8341
8342Wed Feb 8 14:04:16 1995 Jason Merrill <jason@deneb.cygnus.com>
8343
8344 * decl.c (grokdeclarator): Fix error message.
8345
8346Wed Feb 8 03:16:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8347
8348 * typeck.c (convert_for_initialization): Do bash arrays when
8349 converting to a reference to non-array.
8350
8351Tue Feb 7 15:50:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8352
8353 * cvt.c (cp_convert): Don't call convert_to_reference, or
8354 automatically dereference references. Do pass reference conversions
8355 to cp_convert_to_pointer.
8356 (cp_convert_to_pointer): Support references.
8357
8358 * call.c (build_method_call): Don't build up a reference to the
8359 parameter here; let build_overload_call handle that.
8360
8361 * typeck.c (build_c_cast): Call convert_to_reference directly if
8362 converting to a reference type.
d11ad92e
MS
8363 * method.c (do_build_copy_constructor): Likewise.
8364 * method.c (do_build_copy_constructor): Likewise.
8365 (do_build_assign_ref): Likewise.
8ccc31eb
MS
8366
8367 * call.c (build_method_call): Dereference a returned reference.
d11ad92e 8368 * typeck.c (build_function_call_real): Likewise.
8ccc31eb
MS
8369
8370 * decl.c (xref_basetypes): Check for unions with basetypes here.
8371 (xref_tag): Instead of here.
8372
8373 * pt.c (process_template_parm): Template type parm decls are
8374 artificial.
8375
8376Mon Feb 6 04:32:09 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8377
8378 * parse.y (typed_declspecs): Add missing semicolon.
8379 (do_xref_defn): Resurrect.
8380 (named_class_head_sans_basetype): Move template specialization
8381 definition cases to named_class_head_sans_basetype_defn.
8382
8383 * decl2.c (grokfield): Call pushdecl_class_level after setting the
8384 TYPE_NAME, not before.
8385
8386Sun Feb 5 02:50:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8387
8388 * call.c (convert_harshness): Don't call sorry here. Don't allow
8389 conversions between function pointer types if pedantic.
8390
8391 * pt.c (overload_template_name): Pass globalize=1 to xref_tag.
8392
8393 * lex.c (cons_up_default_function): Use the full name for the return
8394 type of op=.
8395
8396 * decl.c (set_nested_typename): Don't worry about anonymous types,
8397 as they already have a unique name.
8398 (pushdecl): Remove redundant set_nested_typename
8399 (xref_tag): Split out base handling into xref_basetypes.
8400
8401 * cp-tree.h (TYPE_INCOMPLETE): New macro; TEMPLATE_TYPE_PARMs are
8402 not considered incomplete even though their definition is unknown.
8403
8404 * decl.c (xref_defn_tag): Lose.
8405 (xref_tag): xref_next_defn = ! globalize.
8406 (pushdecl): Don't set DECL_NESTED_TYPENAME on artificial decls. The
8407 ones that should have it set will have it set by pushtag.
d11ad92e 8408 (pushdecl_class_level): Likewise.
8ccc31eb
MS
8409 (pushtag): Tidy up a bit.
8410 (set_nested_typename): Push a decl for the nested typename from
8411 here, rather than from xref_defn_tag.
8412
8413 * parse.y (do_xref): Lose.
8414 (named_class_head): If we see 'class foo:' we know it's a
8415 definition, so don't worry about base lists for non-definitions.
8416
8417 * pt.c (push_template_decls): Template parm decls are artificial.
8418
8419 * decl.c (duplicate_decls): Restore check for qualifier
8420 disagreement for non-functions.
8421 (decls_match): Remove check for qualifier disagreement.
8422
8423Fri Feb 3 14:58:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8424
8425 * decl.c (grok_reference_init): Convert initializer from
f30432d7 8426 reference.
d11ad92e 8427 * typeck.c (convert_for_initialization): Likewise.
8ccc31eb
MS
8428
8429 * decl.c (duplicate_decls): Propagate DECL_NESTED_TYPENAME.
8430
8431 * cvt.c (cp_convert): Don't convert to the same class type by just
8432 tacking on a NOP_EXPR.
8433 (convert_to_reference): Use comp_target_types instead of comptypes
8434 so that we don't allow conversions two levels down.
8435
8436Thu Feb 2 15:07:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8437
8438 * class.c (build_vbase_path): Bash types to make the backend happy.
8439 * cvt.c (build_up_reference): Bash the types bashed by
8440 build_vbase_path to be reference types instead of pointer types.
d11ad92e 8441 (convert_to_reference): Likewise.
8ccc31eb
MS
8442
8443 * typeck.c (build_c_cast): Don't strip NOPs if we're converting to a
8444 reference type.
8445
8446 * parse.y (structsp): Put back error for 'struct B: public A;'.
8447
8448Wed Feb 1 23:02:06 1995 Mike Stump <mrs@cygnus.com>
8449
8450 * except.c: Add support for mips systems that don't define __mips
8451 but do define mips, like Ultrix.
8452
8453Wed Feb 1 22:39:07 1995 Mike Stump <mrs@cygnus.com>
8454
8455 * except.c: Add support for exception handling on the Alpha.
8456
1038f4f9
MS
8457Wed Feb 1 10:12:14 1995 Mike Stump <mrs@cygnus.com>
8458
8459 * decl2.c (finish_file): Fix bug in Jan 31st change.
8460
d11ad92e 8461Tue Jan 31 16:59:15 1995 Gerald Baumgartner <gb@lorenzo.cs.purdue.edu>
1038f4f9
MS
8462
8463 * sig.c (build_signature_pointer_or_reference_type): Don't set
8464 IS_AGGR_TYPE for signature pointers/reference so expand_default_init
8465 doesn't expect to find a copy constructor.
8466 * call.c (build_method_call): Treat signature pointers/reference
8467 as if IS_AGGR_TYPE were set.
8468
d18c083e
MS
8469Tue Jan 31 13:28:56 1995 Mike Stump <mrs@cygnus.com>
8470
8471 * gc.c (get_typeid): Pawn off error messages to build_t_desc.
8472 (build_t_desc): Inform the user here if they try and build
8473 with -frtti and don't include <typeinfo.h>.
8474
8475 * decl2.c (finish_prevtable_vardecl): Support rescanning.
8476 (finish_file): Move finish_prevtable_vardecl up to before the global
8477 initializers are done as tdecls are initialized in the global
8478 initializer. Also Pick up any new tdecls or vtables needed by
8479 synthesized methods.
8480
8481 * class.c (finish_struct): Simplify. We have to do rtti scanning at
8482 end, so we might as well do all of it there.
8483
8484Tue Jan 31 05:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8485
8486 * call.c (build_method_call): Fix -fthis-is-variable for 32-bit
8487 targets, too.
8488
8489Tue Jan 31 00:11:04 1995 Mike Stump <mrs@cygnus.com>
8490
8491 * decl2.c (finish_prevtable_vardecl): New routine, mostly split from
8492 finish_vtable_vardecl. It has the first half functionality from
8493 that routine.
8494 * decl2.c (finish_vtable_vardecl): Update to not include stuff not
8495 in finish_prevtable_vardecl.
8496 * decl2.c (finish_file): Call finish_prevtable_vardecl.
8497 * gc.c (build_generic_desc): Allow it to be called when not at the
8498 global binding layer, but behave as if we were.
8499 (build_t_desc): Rearrange a bit so that it really works and is
8500 easier to follow.
8501 * class.c (finish_struct): Don't decide on tdecls here, as we have
8502 to wait until the end of the file in general to decide whether or
8503 not they come out.
8504
8505Mon Jan 30 01:00:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8506
8507 * init.c (build_delete): Check access to operator delete before
8508 calling the destructor.
8509 * method.c (build_opfncall, DELETE_EXPR): build_method is allowed to
8510 return error_mark_node.
8511 * call.c (build_method_call): Use the one-argument op delete even if
8512 it's an error.
8513
8514 * init.c (build_new): Fix -fthis-is-variable support.
d11ad92e 8515 * call.c (build_method_call): Likewise.
d18c083e
MS
8516
8517 * call.c (convert_harshness): Make conversion from a pointer to bool
8518 worse than conversion to another pointer.
8519
8520Sat Jan 28 16:46:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8521
8522 * init.c (build_new): Check new return value if -fcheck-new.
8523
8524 * lex.c (check_newline): Clear end_of_file when we're done, too.
8525
8526Sat Jan 28 10:38:39 1995 Mike Stump <mrs@cygnus.com>
8527
8528 * decl2.c (finish_vtable_vardecl): Make rtti TD tables follow
8529 vtables whereever they go.
8530
8531 * gc.c (build_t_desc): Remove old way of setting it up, as it wasn't
8532 right.
8533
8534Sat Jan 28 09:10:44 1995 Mike Stump <mrs@cygnus.com>
8535
8536 * decl2.c (finish_vtable_vardecl): Now set the
8537 interface/implementation of vtables on the first virtual function,
8538 if one exists, otherwise we use the old method. This is a major win
8539 in terms of cutting down the size of objects and executables in
8540 terms of text space and data space. Now most of the savings that
8541 #pragma interface/implementation gives is automatic in a fair number
8542 of cases.
8543
8544Sat Jan 28 04:57:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8545
8546 * decl.c (grokdeclarator): Discard the template parameters in a
8547 template constructor declaration so that the function is always
8548 named constructor_name (ctype).
8549
8550 * lex.c (check_newline): Use ungetc to put back the character before
8551 calling HANDLE_PRAGMA.
8552
8553Fri Jan 27 17:23:47 1995 Mike Stump <mrs@cygnus.com>
8554
8555 * decl2.c (check_classfn): If the cname is T<int> and fn_name is T,
8556 make sure we still match them.
8557
8558Fri Jan 27 16:32:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8559
8560 * parse.y: Add END_OF_LINE token.
8561
8562 * lex.c (check_newline): Set linemode when we see a # directive, and
8563 unset it when we're done. Turn all 'return's into 'goto skipline'.
8564 Fix all uses of '\n', since we won't see it anymore. Put back the
8565 character we read before checking for a sysv or target pragma.
8566 (real_yylex): If we see an EOF in linemode, return END_OF_LINE.
8567 (handle_sysv_pragma): Don't look at the input stream; quit when we
8568 see an END_OF_LINE token.
8569
8570 * input.c (getch): Return EOF if we're in line mode and at the end
8571 of a line.
8572 (put_back): Don't put back an EOF.
8573
8574Thu Jan 26 19:26:34 1995 Mike Stump <mrs@cygnus.com>
8575
8576 * except.c (expand_throw): Do the newing of the exception object
8577 before we load the type descriptor or the address so that we don't
8578 wipe any of the values out.
8579
8580Thu Jan 26 19:20:00 1995 Mike Stump <mrs@cygnus.com>
8581
8582 * except.c (init_exception_processing): Don't use r12 on the rs6000.
8583
8584Tue Jan 24 16:36:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8585
8586 * decl.c (grokparms): Don't try to build up a reference at this point.
8587
8588 * typeck2.c (build_functional_cast): Don't assume that a NOP_EXPR
8589 will suffice to convert from integer_zero_node.
8590
d11ad92e 8591Wed Jan 25 15:02:09 1995 David S. Miller <davem@nadzieja.rutgers.edu>
b7484fbe
MS
8592
8593 * class.c (instantiate_type): Change error message text.
8594 * typeck2.c (store_init_value): Likewise.
8595
e1cd6e56
MS
8596Mon Jan 23 21:57:14 1995 Mike Stump <mrs@cygnus.com>
8597
8598 * pt.c (tsubst): When we copy a node, don't forget to copy
8599 TREE_CHAIN, we use it later.
8600
8601Mon Jan 23 03:33:47 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8602
8603 * typeck.c (convert_for_assignment): Initialize variable before use.
8604
8605Fri Jan 20 01:17:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8606
8607 * g++.c (main): Link with both libstdc++ and libg++ if called as
8608 something ending with "g++", otherwise only libstdc++. Move -lm to
8609 the end of the line.
8610
8611Thu Jan 19 15:43:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8612
8613 * call.c (build_method_call): Don't mess with 'this' before calling
f30432d7 8614 compute_conversion_costs.
e1cd6e56
MS
8615
8616Wed Jan 18 15:40:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8617
8618 * search.c (get_matching_virtual): Give line number for previous
f30432d7 8619 declaration.
e1cd6e56
MS
8620
8621 * call.c (convert_harshness): Handle conversions to references
8622 better.
8623
8624 * cvt.c (build_up_reference): OK, handle {MIN,MAX}_EXPR *properly*.
8625
8626Wed Jan 18 15:21:38 1995 Mike Stump <mrs@cygnus.com>
8627
8628 * class.c (instantiate_type): Use DECL_CHAIN to walk lists instead,
8629 as the TREE_CHAIN for methods will take us to the next differently
8630 named function, DECL_CHAIN won't.
8631
8632Wed Jan 18 14:26:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8633
8634 * tree.c (lvalue_p): Handle {MIN,MAX}_EXPR.
8635
8636 * decl2.c (lang_decode_option): -Wall implies -Wparentheses.
8637 warn_parentheses defaults to 0.
8638
8639 * decl.c (grokparms): Put back call to require_instantiated_type.
8640
8641Tue Jan 17 19:56:15 1995 Mike Stump <mrs@cygnus.com>
8642
8643 * except.c (exception_section): Use the data section on the rs6000.
8644 Change calling convention for named_section.
8645
8646Wed Jan 17 18:20:57 1994 Fergus Henderson <fjh@munta.cs.mu.oz.au>
8647
f30432d7
MS
8648 * cp-tree.h : Make if (x=0) warn with wall
8649 * parse.y : Make if (x=0) warn with wall
e1cd6e56 8650
255512c1
JM
8651Tue Jan 17 14:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8652
e1cd6e56
MS
8653 * decl.c (BOOL_TYPE_SIZE): BITS_PER_WORD if SLOW_BYTE_ACCESS,
8654 BITS_PER_UNIT otherwise.
8655
8656 * search.c (get_matching_virtual): Don't check the binfo if the
8657 types are the same.
8658
8659 * cvt.c (cp_convert): Just call truthvalue_conversion to convert to
f30432d7 8660 bool.
255512c1
JM
8661
8662Mon Jan 16 13:28:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8663
e1cd6e56
MS
8664 * various: Use boolean_type_node, boolean_true_node,
8665 boolean_false_node.
8666
8667 * search.c (get_matching_virtual): Allow covariant returns that
8668 don't require pointer adjustment.
8669
8670 * typeck.c (build_conditional_expr): Don't call default_conversion
8671 on ifexp.
8672
8673 * cvt.c (build_up_reference): Handle MIN_EXPR and MAX_EXPR.
8674
8675 * decl.c (grokdeclarator): Upgrade warning about &const to pedwarn.
8676
d11ad92e 8677Sun Jan 15 22:17:32 1995 David Binderman <dcb@lovat.fmrco.COM>
e1cd6e56
MS
8678
8679 * pt.c (do_function_instantiation): Free targs once we're done.
255512c1
JM
8680
8681Sun Jan 15 22:17:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8682
e1cd6e56
MS
8683 * decl.c (BOOL_TYPE_SIZE): Defaults to BITS_PER_WORD.
8684 (init_decl_processing): Use BOOL_TYPE_SIZE instead of CHAR_TYPE_SIZE
8685 for bool.
8686
8687Sat Jan 14 05:33:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8688
8689 * decl2.c (finish_file): We need to mess up if there are any
8690 variables in the list, not just if there is one with a constructor.
8691
8692Fri Jan 13 14:42:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8693
8694 * decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR.
8695 (finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR.
8696 (finish_function): Trust rest_of_compilation.
8697
8698 * decl2.c (finish_file): Also call functions designated as static
8699 constructors/destructors.
8700
8701 * decl.c (grokdeclarator): Allow access decls of operator functions.
8702 (grokparms): Only do convert_for_initialization if the initializer
8703 has a type.
8704 (duplicate_decls): Put back push_obstacks_nochange call.
8705
8706 * lex.c (real_yylex): Downgrade complaint about the escape sequence
8707 being too large from pedwarn to warning.
8708
8709 * decl.c (grokdeclarator): Don't complain about long long in system
8710 headers.
8711
8712 * lex.c (real_yylex): Handle digraphs.
8713
8714Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8715
8716 * decl.c (init_decl_processing): -f{no-,}strict-prototype only
8717 affects C linkage declarations now.
8718
8719 * typeck.c (comp_target_types): Grok simple contravariant conversions.
8720 (common_type): t1 and t2 are interchangeable.
8721
8722 * various: Test return value of comp_target_types differently in
8723 different places; it now returns -1 for a contravariant conversion
8724 (which is fine in symmetric cases).
8725
8726 (common_type): Prefer long double to double even when
8727 they have the same precision.
8728
8729 * decl.c (grokparms): Call convert_for_initialization to check
8730 default arguments.
8731
8732 * init.c (build_new): void_type_node has a size (of 0).
8733
8734 * decl.c (decls_match): Also check for agreement of TREE_READONLY
8735 and TREE_THIS_VOLATILE.
8736 (push_class_level_binding): Properly handle shadowing of
8737 nested tags by fields.
8738
d11ad92e 8739 * search.c (dfs_pushdecls): Likewise.
e1cd6e56
MS
8740
8741 * decl2.c (finish_file): Don't second-guess self-initialization.
8742
8743 * cvt.c (convert_to_reference): Work with expr directly, rather than
8744 a copy.
8745
8746 * decl.c (push_overloaded_decl): Only shadow artificial TYPE_DECLs.
8747
8748 * init.c (add_friend): Downgrade duplicate friend message from
8749 pedwarn to warning.
8750
8751 * decl.c (duplicate_decls): Push obstacks before calling common_type.
8752
8753Thu Jan 12 17:15:21 1995 Michael Ben-Gershon <mybg@cs.huji.ac.il>
8754
8755 * except.c (push_eh_entry): set LABEL_PRESERVE_P flag for
8756 exception table labels.
d11ad92e
MS
8757 (expand_start_all_catch): Likewise.
8758 (expand_leftover_cleanups): Likewise.
8759 (expand_end_catch_block): Likewise.
e1cd6e56
MS
8760 * except.c (make_first_label): new function.
8761 (expand_start_all_catch): add a call to make_first_label() before
8762 using a label as a jump destination.
d11ad92e
MS
8763 (expand_end_all_catch): Likewise.
8764 (expand_leftover_cleanups): Likewise.
8765 (expand_end_catch_block): Likewise.
8766 (expand_builtin_throw): Likewise.
8767 (expand_throw): Likewise.
e1cd6e56
MS
8768 * except.c: Add ARM processor support for exception handling.
8769
8770Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8771
8772 (complete_array_type): Copy code from C frontend.
8773
8774 * lex.c (real_yylex): Don't multiply the length of a wide string
8775 literal by WCHAR_BYTES.
8776
8777 * decl.c (pushdecl): Check for redeclaration of wchar_t here.
8778 (duplicate_decls): Instead of here.
8779 (define_label): Complain about a label named wchar_t.
8780 (grokdeclarator): Complain about declarations of
8781 operator-function-ids as non-functions.
8782
8783 * typeck.c (unary_complex_lvalue): Also wrap prefix -- and ++ in
8784 COMPOUND_EXPRs.
8785 (build_unary_op): Wrap unary plus in a NON_LVALUE_EXPR.
8786
8787 * lex.c (real_yylex): Don't skip whitespace when reading the next
8788 character after ->.
8789
8790Wed Jan 11 16:32:49 1995 Mike Stump <mrs@cygnus.com>
8791
8792 * except.c: Allow cc1plus to be built with native compiler on rs6000.
8793 (expand_start_all_catch): Add assemble_external calls for various
8794 routines we call.
d11ad92e
MS
8795 (expand_leftover_cleanups): Likewise.
8796 (expand_start_catch_block): Likewise.
8797 (do_unwind): Likewise.
8798 (expand_builtin_throw): Likewise.
e1cd6e56
MS
8799
8800Wed Jan 11 01:05:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8801
8802 * decl.c (pushtag): Only look for a previous decl in the current
8803 binding level. Use explicit global scope in DECL_NESTED_TYPENAME.
8804
8805 * gxx.gperf: Add __signature__ and __sigof__ keywords.
8806
8807 * decl2.c (lang_decode_option): -ansi does not set flag_no_asm. It
8808 does set flag_no_gnu_keywords and flag_operator_names.
8809
8810 * lex.c (init_lex): 'overload' is not a keyword unless -traditional.
8811 Unset extension keywords if -fno-gnu-keywords.
8812 Allow operator names ('bitand') if -foperator-names.
8813 Never unset 'asm'; -fno-asm only affects 'typeof'.
8814
8815 * decl.c (lookup_name_real): The got_object special lookup only
8816 applies to types.
8817
8818Tue Jan 10 18:07:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8819
8820 * spew.c (yylex): Also use DECL_NESTED_TYPENAME if got_object is set.
8821
8822 * parse.y (primary): Unset got_object after all rules that use the
f30432d7 8823 'object' nonterminal.
e1cd6e56
MS
8824 (object): Set got_object.
8825
8826 * lex.h: Declare got_object.
8827
8828 * decl.c (lookup_name_real): Also lookup names in the context of an
8829 object specified.
8830
8831Tue Jan 10 14:30:30 1995 Mike Stump <mrs@cygnus.com>
8832
8833 * typeck.c (get_member_function_from_ptrfunc): Use ptrdiff_type_node
8834 for things that have to be added to pointers, not size_type. Cures
8835 problems with pointer to members on Alphas.
d11ad92e
MS
8836 (build_binary_op_nodefault): Likewise.
8837 (get_delta_difference_: Likewise.
8838 (build_ptrmemfunc): Likewise.
e1cd6e56
MS
8839
8840Tue Jan 10 01:49:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8841
8842 * decl.c (pushtag): Stick the new decl in TYPE_NAME before pushing
8843 it.
8844
8845 * typeck.c (build_component_ref): Don't build up a COMPONENT_REF
8846 when dealing with overloaded member functions; just act like
8847 build_offset_ref.
8848 (commonparms): Remove misleading comment.
8849
8850 * decl.c (duplicate_decls): Complain about repeated default
8851 arguments here.
8852 (redeclaration_error_message): Instead of here.
8853 (pushdecl): Complain about missing default arguments here.
8854 (grokparms): Instead of here.
8855 (lookup_name_current_level): Also match on DECL_ASSEMBLER_NAME.
8856 (grok_reference_init): Do not complain about missing initializer if
8857 declared 'extern'.
8858
8859 * search.c (lookup_field): Don't return a TYPE_DECL if there is a
8860 function alternative and want_type is not set.
8861
8862Mon Jan 9 18:16:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8863
8864 * decl.c (pushtag): Don't set TYPE_NAME to an identifier. Do push
8865 the decl when the type has no TYPE_NAME.
8866 (lookup_nested_type): Don't assume that type has TYPE_NAME set.
8867 (lookup_name_real): Call lookup_field with want_type =
8868 prefer_type.
8869
8870 * search.c (lookup_field): Handle want_type properly in the presence
8871 of fields with the same name.
8872
8873 * decl.c (set_nested_typename): Set nested name for file-scope types
8874 to include leading ::.
8875 (pushdecl): Set the nested typename if the decl doesn't have one,
8876 rather than if the type's canonical decl doesn't have one.
8877
e1cd6e56
MS
8878Mon Jan 9 03:44:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8879
8880 * typeck.c (convert_for_assignment): Complain about contravariance
8881 violation here.
8882 (comp_target_types): Instead of here.
8883 (build_unary_op): resolve_offset_ref before checking for a valid
8884 type.
8885
8886 * spew.c (yylex): Decrement looking_for_typename after we see a
8887 _DEFN.
8888
8889 * decl.c (pushdecl): Don't install an artificial TYPE_DECL in
f30432d7 8890 IDENTIFIER_LOCAL_VALUE if we already have a decl with that name.
e1cd6e56
MS
8891
8892 * typeck.c (convert_for_assignment): Converting pointers to bool
8893 does not need a cast.
8894
8895Sun Jan 8 18:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8896
8897 * class.c (instantiate_type): Initialize nsubsts parm.
8898
d11ad92e 8899 * pt.c (do_function_instantiation): Likewise.
e1cd6e56
MS
8900
8901Sat Jan 7 14:37:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8902
8903 * pt.c (tsubst): Use TREE_STATIC instead of DECL_INLINE &&
8904 DECL_SAVED_INSNS to determine whether or not we've seen a definition
8905 of this function.
d11ad92e 8906 (instantiate_template): Likewise.
e1cd6e56
MS
8907
8908 * call.c (convert_harshness): Allow const reference binding when
8909 called from the overloading code, but not when called from
8910 can_convert (since it isn't a conversion).
8911 (convert_harshness): Put back some disabled code.
8912
8913Fri Jan 6 14:10:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8914
8915 * call.c (convert_harshness): There is no implicit conversion from
8916 void* to other pointer types (unless the parameter is (void*)0).
8917 (convert_harshness): Non-lvalues do not convert to reference types.
8918
8919 * class.c (finish_struct_methods): Still set
f30432d7 8920 TYPE_HAS_{INT,REAL}_CONVERSION.
e1cd6e56
MS
8921
8922 * call.c (can_convert): Don't use aggregate initialization.
8923
8924 * cp-tree.h: Declare lookup_conversions.
8925
8926Thu Jan 5 21:08:00 1995 Mike Stump <mrs@cygnus.com>
8927
8928 * parse.y (simple_stmt): Fix duplicate case value error messages to
8929 be more readable.
8930
8931Wed Jan 4 16:44:19 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8932
8933 * cvt.c (build_type_conversion): Total rewrite to use
8934 convert_harshness instead of reproducing conversion logic here. Now
8935 much shorter.
8936
8937 * call.c (convert_harshness): Support conversions to bool.
8938 (can_convert): Checks whether a conversion is less harsh
8939 than USER_CODE, for build_type_conversion.
8940
8941 * search.c (add_conversions): Function for passing to dfs_walk which
8942 adds all the type conversion operators in the current type to a list.
8943 (lookup_conversions): Calls dfs_walk with add_conversions and return
8944 the list.
8945 (dfs_walk): Don't require a qfn.
8946
8947 * cp-tree.h: Lose CLASSTYPE_CONVERSIONS hackery.
8948 (CLASSTYPE_FIRST_CONVERSION): Points to elt 1 of CLASSTYPE_METHOD_VEC.
8949
8950 * class.c (finish_struct_bits): Lose CLASSTYPE_CONVERSIONS hackery.
8951 (grow_method): A separate function for building onto the growing
8952 method vector.
8953 (finish_struct_methods): Use it. Put all type conversion operators
8954 right after the constructors. Perhaps we should sort the methods
f30432d7 8955 alphabetically?
e1cd6e56
MS
8956
8957Mon Jan 2 14:42:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8958
8959 * call.c (build_method_call): Lose another misleading shortcut.
8960
8961Fri Dec 30 17:57:30 1994 Mike Stump <mrs@cygnus.com>
8962
8963 * gc.c (build_bltn_desc): Handle bool as a built-in type.
8964
8965Fri Dec 30 14:20:21 1994 Mike Stump <mrs@cygnus.com>
8966
8967 * tree.c (layout_vbasetypes): Ensure that we don't loose alignment
8968 on the complete type because of small virtual bases.
255512c1 8969
8145f082
MS
8970Fri Dec 30 12:22:29 1994 Mike Stump <mrs@cygnus.com>
8971
8972 * decl.c (n_incomplete): Bump n_incomplete up to int to match C
8973 front end.
8974 (pushdecl): Also count decls pushed that are of a type being defined
8975 as incomplete things.
8976 * class.c (finish_struct): Move hack_incomplete_structures up to
8977 just after we set it as not being defined, so that the decls we
8978 build for RTTI don't count as incomplete.
8979
8980Thu Dec 29 18:20:57 1994 Mike Stump <mrs@cygnus.com>
8981
8982 * pt.c (tsubst): Fix problem with defining constructors in templated
8983 classes with virtual bases.
8984
8985Wed Dec 28 08:31:00 1994 Mike Stump <mrs@cygnus.com>
8986
8987 * parse.y (TYPEID): Strip top-level cv-qualifiers on typeid
8988 expressions.
d11ad92e 8989 * gc.c (build_typeid): Likewise.
8145f082
MS
8990
8991Thu Dec 22 17:26:33 1994 Mike Stump <mrs@cygnus.com>
8992
8993 * cvt.c (build_up_reference): Fix breakage introduced on Nov 29,
8994 don't assert on complex AGGR inits.
8995
8996Thu Dec 22 14:32:31 1994 Mike Stump <mrs@cygnus.com>
8997
8998 * method.c (build_overload_value): Handle pointer to members as
8999 template arguments.
9000
9001Thu Dec 22 13:09:07 1994 Mike Stump <mrs@cygnus.com>
9002
9003 * typeck.c (unary_complex_lvalue): Don't call sorry if we know how
9004 to do take the address of a data member for a pointer to data
9005 member.
9006
9007Thu Dec 22 10:04:19 1994 Mike Stump <mrs@cygnus.com>
9008
9009 * decl.c (grokdeclarator): Use the typedef name for linkage if the
9010 type doesn't otherwise have a name.
9011
d11ad92e 9012 * decl2.c (grokfield): Likewise.
8145f082
MS
9013
9014 * class.c (finish_struct): Since we reuse the TYPE_DECL for the
9015 DECL_NAME of enums, structs and classes, we have to avoid trying to
9016 put it in the TYPE_FIELDS again.
9017
9018Wed Dec 21 11:07:05 1994 Mike Stump <mrs@cygnus.com>
9019
9020 * decl2.c (check_classfn): Ignore this parameter on static functions
9021 when checking to see if we match.
9022
9023Tue Dec 20 17:47:02 1994 Mike Stump <mrs@cygnus.com>
9024
9025 * typeck.c (unary_complex_lvalue): Handle address of non-left most
9026 pointers to members by calling get_delta_difference.
9027
5edb8b93
MS
9028Mon Dec 19 22:40:53 1994 Mike Stump <mrs@cygnus.com>
9029
9030 * decl2.c (check_classfn): Don't use decls_match yet, as it modifies
9031 static functions to early.
9032
9033Thu Dec 19 22:37:48 1994 Mike Stump <mrs@cygnus.com>
9034
9035 * method.c (make_thunk): Handle encoding of positive thunk offsets.
9036
9037Sat Dec 17 13:29:50 1994 Doug Evans <dje@canuck.cygnus.com>
9038
9039 * Make-lang.in (.PHONY): Tell GNU make C++ and c++ are phony targets.
9040
6060a796
MS
9041Thu Dec 15 16:32:12 1994 Mike Stump <mrs@cygnus.com>
9042
9043 * decl2.c (check_classfn): Use decls_match to check if this has
9044 already been declared, as the DECL_ASSEMBLER_NAME may have been
9045 changed via asm("new_name").
9046 * decl.c (decls_match): Make public.
9047
9048Thu Dec 15 15:17:55 1994 Mike Stump <mrs@cygnus.com>
9049
9050 * *.[chy] (expand_aggr_init) Add fourth argument to handle
9051 distinction between = init and (init) style of initializations.
9052 * *.[chy] (finish_decl): Add fifth argument to to handle
9053 distinction between = init and (init) style of initializations.
9054
9055Tue Dec 13 19:16:05 1994 Mike Stump <mrs@cygnus.com>
9056
9057 Fix some random `explicit' bugs.
9058
9059 * cvt.c (convert_to_reference): Add third parameter to
9060 convert_force.
d11ad92e
MS
9061 (convert_force): Likewise.
9062 * call.c (build_method_call): Likewise.
9063 * decl2.c (setup_vtbl_ptr): Likewise.
9064 * init.c (expand_virtual_init): Likewise.
9065 (build_member_call): Likewise.
9066 (build_delete): Likewise.
9067 (build_vbase_delete): Likewise.
9068 * typeck.c (build_component_addr): Likewise.
9069 (build_c_cast): Likewise.
9070 (build_modify_expr): Likewise.
9071 * cp-tree.h (CONV_NONCONVERTING): Likewise. Add so that we can
6060a796
MS
9072 distinguish the context in which the conversion appears. Add thrid
9073 argument to build_c_cast.
9074 * cvt.c (cp_convert): Pass whether or not we want to consider
9075 non-converting constructors down to build_method_call.
9076 * decl2.c (reparse_absdcl_as_casts): Add third argument to
9077 build_c_cast.
d11ad92e
MS
9078 * gc.c (build_m_desc): Likewise.
9079 * init.c (build_new): Likewise.
9080 * parse.y (expr_no_commas): Likewise.
9081 (primary): Likewise.
9082 * typeck.c (build_x_function_call): Likewise.
9083 (build_static_cast): Likewise.
9084 (build_reinterpret_cast): Likewise.
9085 (build_const_cast): Likewise.
9086 (build_c_cast): Likewise.
9087 (build_ptrmemfunc): Likewise.
9088 * typeck2.c (build_functional_cast): Likewise.
6060a796
MS
9089 * init.c (expand_aggr_init): Added LOOKUP_ONLYCONVERTING to
9090 expand_aggr_init_1 as inits are converted to the destination type.
9091
9092Tue Dec 13 16:18:57 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9093
9094 * Make-lang.in (cc1plus): Depends on c-pragma.o.
9095
9096 * Makefile.in (OBJ{DEP,}S): Add ../c-pragma.o.
9097
9098 * lex.c (check_newline): If the #pragma is not recognized by g++,
9099 try machine-specific ones too.
9100 (handle_sysv_pragma): Copied from c-lex.c.
9101
9102Mon Dec 12 23:53:06 1994 Mike Stump <mrs@cygnus.com>
9103
9104 * except.c (expand_throw): Fix Dec 6th change, build_new likes a
9105 reference better.
9106
9107Mon Dec 12 18:01:00 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9108
9109 * typeck.c (build_binary_op): Lose checks on TYPE_PTRMEMFUNC_P with
9110 IS_AGGR_TYPE, since now they will not both be set on the same type.
9111
9112 * pt.c (do_pending_expansions): Don't clear TREE_PUBLIC on
9113 instantiations controlled by -fexternal-templates.
9114
9115 * decl.c (duplicate_decls): Don't complain about different values of
9116 __attribute__ ((const)) and ((noreturn)).
9117
81cdf787
DE
9118Fri Dec 9 18:17:37 1994 Doug Evans <dje@cygnus.com>
9119
9120 * Makefile.in (BISONFLAGS): Delete --yacc.
9121 (PARSE_H): Depend on $(PARSE_C), for parallel makes.
9122 (PARSE_C): Undo last patch.
9123
be99da77 9124Fri Dec 2 10:44:36 1994 Mike Stump <mrs@cygnus.com>
30ffea6b 9125
3526f730 9126 * Makefile.in (BISONFLAGS): Add --yacc so that output winds up in
30ffea6b
MS
9127 y.tab.c.
9128
6060a796
MS
9129Thu Dec 8 17:39:46 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9130
9131 * decl.c (finish_decl): Don't call obscure_complex_init for decls
9132 of indeterminate size.
9133
9134Wed Dec 7 16:49:22 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9135
9136 * decl.c (obscure_complex_init): Function to tweak the decl to
9137 prevent expand_decl from tring to initialize it.
9138 (finish_decl): Use it rather than writing the same code in three
9139 different places.
9140
9141 * parse.y (bad_parm): Stop trying to support parms without types.
9142
9143Wed Dec 7 12:06:56 1994 Mike Stump <mrs@cygnus.com>
9144
9145 * decl2.c (grokfield): Make asm specs on static member functions
9146 work.
9147
9148Tue Dec 6 15:43:20 1994 Mike Stump <mrs@cygnus.com>
9149
9150 * except.c (expand_throw): Make a copy of the thrown object.
9151
9152Tue Dec 6 14:16:34 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9153
9154 * parse.y: : has lower precedence than =.
9155
9156Tue Dec 6 12:46:17 1994 Mike Stump <mrs@cygnus.com>
9157
9158 * decl.c (pushdecl): Use DECL_NAME of VAR_DECLs to avoid namespace
9159 manglings.
9160 (grokvardecl): Add namespace into variable name.
9161
9162Tue Dec 6 11:26:55 1994 Mike Stump <mrs@cygnus.com>
9163
9164 * decl2.c (current_namespace_id): New routine to transform a simple
9165 name into a name in a namespace.
9166 * decl.c (grokdeclarator): Use it.
9167 * decl2.c (get_namespace_id): Find the name of the current
9168 namespace.
9169 (push_namespace, pop_namespace): Complete out missing
9170 functionality.
9171
9172Mon Dec 5 17:11:51 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9173
9174 * class.c (finish_struct): Don't use LONG_LONG_TYPE_SIZE, as it may
9175 not be defined. Fix warning message for enums and restore warning
9176 for non-enums.
9177
9178 * decl2.c (push_namespace): Dummy function.
d11ad92e
MS
9179 (pop_namespace): Likewise.
9180 (do_namespace_alias): Likewise.
9181 (do_using_decl): Likewise.
9182 (do_using_directive): Likewise.
6060a796
MS
9183
9184 * parse.y: New token NSNAME for namespace names.
9185 (extdef): Add namespace, using definitions.
9186 (using_decl): New rule for using declarations.
9187 (any_id): New rule for identifiers with any degree of scoping.
9188 (identifier): Add NSNAME.
d11ad92e 9189 (notype_identifier): Likewise.
6060a796
MS
9190 (component_decl): Add using_decl.
9191 (nested_name_specifier): Add NSNAME SCOPE.
9192
9193 * typeck.c (convert_for_assignment): Handle conversions between
9194 enums and bool.
9195
9196 * decl.c (duplicate_decls): Only propagate DECL_MAIN_VARIANT on
9197 FUNCTION_DECLs.
9198
9199Mon Dec 5 13:03:16 1994 Mike Stump <mrs@cygnus.com>
9200
9201 * class.c (finish_struct): Give an error if one tries to declare a
9202 bit-field's size greater than a long long, as the backend will dump.
9203 It is not an error to declare an enum bit-field greater than its
9204 precision. Warn if an enum bit-field is too small to hold all
9205 its values.
9206
9207Mon Dec 5 11:41:50 1994 Mike Stump <mrs@cygnus.com>
9208
9209 * typeck.c (convert_for_assignment): Use cp_convert instead of
9210 convert so that we don't get static casts.
9211
9212Sun Dec 4 11:59:01 1994 Mike Stump <mrs@cygnus.com>
9213
9214 * cvt.c (cp_convert): Don't complain about int->enum conversion if
9215 we are doing static casts.
9216
9217Fri Dec 2 18:32:41 1994 Mike Stump <mrs@cygnus.com>
9218
9219 * error.c (dump_expr): Do something more intelligent with SAVE_EXPRs
9220 when dumping expressions in error messages.
9221
9222Fri Dec 2 17:04:27 1994 Mike Stump <mrs@cygnus.com>
9223
9224 * gc.c (build_dynamic_cast): Change interface to libg++, ensure that
f30432d7 9225 the return type is the right type, and make references work.
6060a796
MS
9226
9227Fri Dec 2 16:36:43 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9228
9229 * decl.c (poplevel): Don't be confused by function-scope
9230 declarations of non-nested functions.
9231 (duplicate_decls): Propagate DECL_MAIN_VARIANT.
9232 (pushdecl): Use duplicate_decls to copy info from old decl into new
9233 function-scope one rather than doing it here.
9234
9235 * decl2.c (mark_inline_for_output): Deal with the DECL_MAIN_VARIANT
9236 of this decl, in case this is a function-scope declaration.
9237
9238 * decl.c (finish_enum): Make sure that the type has the right
9239 precision when we call fixup_*_type.
9240
9241Tue Nov 29 19:12:07 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9242
9243 * cvt.c (build_up_reference): Strip superfluous NOP_EXPRs; we do
9244 want to build up references to rvalues if possible.
9245 (cp_convert): Stick on a NOP_EXPR when converting to the same type.
9246
9247Tue Nov 29 11:28:59 1994 Mike Stump <mrs@cygnus.com>
9248
9249 * parse.y (maybe_raises): Handle throw ().
9250 * parse.y (ansi_raise_identifier): grok type-ids in exception
9251 specifications.
9252 * tree.c (build_exception_variant): Use list compare to check if
9253 two exception specifications match.
9254 * decl.c (duplicate_decls, bad_specifiers): Enhance wording on error
9255 messages.
9256 * call.c (build_method_call): Remove TREE_RAISES.
d11ad92e
MS
9257 * cvt.c (convert_to_aggr): Likewise.
9258 * typeck.c (build_function_call_real, convert_arguments): Likewise.
9259 * init.c (expand_aggr_init_1): Likewise.
6060a796
MS
9260
9261Tue Nov 29 09:50:39 1994 Mike Stump <mrs@cygnus.com>
9262
9263 * except.c: Add support for m68k and mips exception handling
9264 support.
9265
9266Tue Nov 29 08:48:33 1994 Mike Stump <mrs@cygnus.com>
9267
9268 * except.c (expand_end_all_catch): Throw into outer context, if we
9269 fall off end of catch handlers.
9270
db5ae43f
MS
9271Mon Nov 28 16:44:41 1994 Mike Stump <mrs@cygnus.com>
9272
9273 * Makefile.in: Make is easier to decide where parse.[ch] will be
9274 built.
9275
af824546
DE
9276Thu Nov 17 20:11:24 1994 Doug Evans <dje@cygnus.com>
9277
9278 * cp/Make-lang.in (CXX_INSTALL_NAME) Use program_transform_name.
9279 (GXX_INSTALL_NAME) Likewise.
9280 (CXX_CROSS_NAME) Use program_transform_cross_name.
9281 (GXX_CROSS_NAME) Likewise.
9282 (c++.install-man): Use program_transform_name on g++.1.
9283 (c++.uninstall): Likewise.
9284
db5ae43f
MS
9285Mon Nov 28 13:53:03 1994 Mike Stump <mrs@cygnus.com>
9286
9287 * parse.y (THROW): Fix precedence of throw expressions.
9288
9289Mon Nov 28 13:15:16 1994 Mike Stump <mrs@cygnus.com>
9290
9291 * typeck.c (build_unary_op): Allow promotions from bool to int on
9292 unary ~.
9293
9294Sun Nov 27 00:16:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9295
9296 * method.c (build_overload_name): Use DECL_ASSEMBLER_NAME for
9297 classes when appropriate.
9298 (build_overload_nested_name): When dealing with a function context,
9299 use ASM_FORMAT_PRIVATE_NAME to tweak the name of the function to
9300 avoid conflicts between local classes of the same name.
9301
9302Wed Nov 23 17:59:42 1994 Mike Stump <mrs@cygnus.com>
9303
9304 * gxx.gperf, parse.y, lex.h, hash.h, lex.c (init_lex), delc.c
9305 (duplicate_decls, grokdeclarator), cp-tree.h: Add support for
9306 `explicit'.
9307 * cvt.c (convert_to_reference, cp_convert, build_type_conversion_1,
9308 build_type_conversion): Use LOOKUP_ONLYCONVERTING in
9309 build_method_calls so that non-converting constructors are not used.
9310 * call.c (build_method_call): If we shouldn't use a non-converting
9311 constructor, then don't.
9312
9313Wed Nov 23 14:46:56 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9314
9315 * call.c (build_method_call): Don't try to synthesize methods yet.
9316
9317Tue Nov 22 12:45:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
ea943e1d 9318
db5ae43f
MS
9319 * pt.c (push_template_decls): Create CONST_DECLs for template
9320 constant parameters, not VAR_DECLs.
9321
d11ad92e 9322Sat Nov 19 15:28:31 1994 Jim Wilson <wilson@chestnut.cygnus.com>
db5ae43f
MS
9323
9324 * typeck.c (build_binary_op_nodefault): Can shorten shift only if
9325 shift count is less than size in bits of arg0.
9326
9327Thu Nov 17 15:30:50 1994 Mike Stump <mrs@cygnus.com>
9328
9329 * gxx.gperf, hash.h, lex.c (init_lex, real_yylex), parse.y: Add new
9330 ANSI keywords and, and_eq, bitand, bitor, explicit, namespace, not,
9331 not_eq, or, or_eq, typename, using, xor, xor_eq to g++. Still need
9332 to add support for explicit, namespace, typename, and using, support
9333 for the rest is already in.
9334
db5ae43f
MS
9335Fri Nov 4 19:04:18 1994 Mike Stump <mrs@cygnus.com>
9336
9337 * gc.c (get_bad_cast_node): New routine to support compile time
9338 throws of bad_cast.
9339 * gc.c (build_dynamic_cast): Support throwing of bad_cast at compile
9340 time.
9341
9342Fri Nov 4 11:12:00 1994 Mike Stump <mrs@cygnus.com>
9343
9344 * except.c: Add hppa support.
9345
9346Fri Nov 4 10:50:50 1994 Mike Stump <mrs@cygnus.com>
9347
9348 * except.c: Add rs6000 support.
9349
9350Thu Nov 3 14:24:23 1994 Mike Stump <mrs@cygnus.com>
9351
9352 * except.c (do_unwind): Add i[34]86 support.
9353
d11ad92e 9354Thu Nov 3 00:10:46 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
9355
9356 * pt.c (do_pending_expansions): Unset TREE_PUBLIC on implicit
9357 instantiations.
9358
d11ad92e 9359Wed Nov 2 15:08:24 1994 Kung Hsu <kung@mexican.cygnus.com>
db5ae43f 9360
14548a19 9361 * decl.c (finish_function): Emit types used in method parameters
db5ae43f
MS
9362 into symbol table.
9363
d11ad92e 9364Wed Nov 2 15:05:47 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
9365
9366 * pt.c (process_template_parm): Allow pointer to member function
9367 template parameter types.
9368 (uses_template_parms): Handle pointer to member function
9369 CONSTRUCTORs.
9370
9371 * g++.c (main): Cast first argument of bzero to (char *).
9372 Pass -lstdc++ instead of -lg++ unless we are invoked as 'g++'.
9373
d11ad92e 9374Mon Oct 31 14:50:48 1994 Kung Hsu <kung@mexican.cygnus.com>
db5ae43f
MS
9375
9376 * gc.c (build_dynamic_cast): rewrite to make it work.
9377 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
9378 * class.c (modify_all_direct_vtables): ditto.
9379 * init.c (expand_direct_vtbls_init): expand more vtables if
9380 flag_rtti is on.
9381 * decl.c (init_type_desc): add default return.
9382
d11ad92e 9383Tue Oct 25 17:13:09 1994 Kung Hsu <kung@mexican.cygnus.com>
db5ae43f
MS
9384
9385 * tree.c (debug_binfo): get rid of the initial size entry of
9386 vtable.
9387 * cp-tree.h: change flag_dossier to flag rtti, define type
9388 descriptor type nodes.
9389 * decl.c (init_type_desc): new function to initialize type
9390 descriptor type nodes.
9391 * decl.c (record_builtin_type): change flag_dossier to flag_rtti.
9392 * lex.c (init_lex): ditto.
9393 * decl.c : change variable flag_dossier to flag_rtti.
9394 * decl.c (duplicate_decls): get rid initial size entry of vtable.
9395 * decl.c (hack_incomplete_structures): take out assert 164.
9396 * search.c (get_abstract_virtuals_1): ditto.
9397 * search.c (dfs_init_vbase_pointers): change CLASSTYPE_DOSSIER to
9398 CLASSTYPE_RTTI.
9399 * parse.y: ditto.
9400 * class.c (prepare_fresh_vtable): for virtual bases, get right
9401 offset.
9402 * class.c (add_virtual_function): change flag_dossier to
9403 flag_rtti.
9404 * class.c (modify_one_vtable): modify the right rtti entry.
9405 * class.c (override_one_vtable): get rid of size entry.
9406 * class.c (finish_struct): change flag_dossier to flag_rtti, and
9407 build extra vtables, build type descriptors for polymorphic
9408 classes.
9409 * gc.c (build_headof): make headof() works correctly with new
9410 rtti.
9411 * gc.c (build_typeid): make this function work with new rtti.
9412 * gc.c (get_typeid): make this function work with new rtti.
9413 * gc.c (build_bltn_desc): new function for new rtti.
9414 * gc.c (build_user_desc): ditto.
9415 * gc.c (build_class_desc): ditto.
9416 * gc.c (build_ptr_desc): ditto.
9417 * gc.c (build_attr_desc): ditto.
9418 * gc.c (build_func_desc): ditto.
9419 * gc.c (build_ptmf_desc): ditto.
9420 * gc.c (build_ptmd_desc): ditto.
9421 * gc.c (build_t_desc): ditto.
9422 * gc.c : comment out old build_t_desc, build_i_desc, build_m_desc.
9423
d11ad92e 9424Tue Oct 25 13:37:41 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
9425
9426 * call.c (convert_harshness): Check for TREE_UNSIGNED differences
9427 after checking for integral conversions.
ea943e1d 9428
72b7eeff
MS
9429Wed Nov 30 19:13:50 1994 Mike Stump <mrs@cygnus.com>
9430
9431 * Version 2.6.3 released.
9432
9433Thu Nov 17 10:56:50 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9434
9435 * typeck2.c (build_m_component_ref): Check the basetype of the
9436 member pointer against the main variant of the object type.
9437
9438Mon Nov 14 14:21:52 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9439
9440 * cvt.c (convert_to_reference): Make sure that the original expr
9441 gets its type back when converting a reference.
9442
9443 * method.c (build_overload_name): Clear numeric_outputed_need_bar here.
9444 (build_decl_overload): Instead of here.
9445
9446Tue Nov 8 17:11:24 1994 Jason Merrill <jason@phydeaux.cygnus.com>
9447
9448 * cvt.c (cp_convert): Don't build a TARGET_EXPR if we're not in a
9449 function.
9450
9451 * typeck.c (convert_for_initialization): Handle initialization from
9452 a TARGET_EXPR.
9453
d11ad92e 9454Sun Nov 6 01:34:24 1994 Jason Merrill <jason@phydeaux.cygnus.com>
72b7eeff
MS
9455
9456 * pt.c (lookup_nested_type_by_name): Fix list-walking logic.
9457 (tsubst): When replacing a TEMPLATE_TYPE_PARM, propagate
9458 TYPE_READONLY and TYPE_VOLATILE from the argument.
9459 (unify): When unifying with a TEMPLATE_TYPE_PARM, remove cv-quals
9460 present in parm from arg.
9461 (type_unification): Strip REFERENCE_TYPE from the argument type.
9462 (unify): Don't strip REFERENCE_TYPE from the argument type.
9463
d11ad92e 9464Sat Nov 5 22:42:15 1994 Greg McGary <gkm@magilla.cichlid.com>
72b7eeff
MS
9465
9466 * pt.c (do_type_instantiation): Check to see if there's a
9467 IDENTIFIER_TEMPLATE on a class before calling
9468 instantiate_member_templates().
9469
9470Sat Nov 12 06:35:42 1994 Mike Stump <mrs@cygnus.com>
9471
9472 * Version 2.6.2 released.
9473
9474Thu Nov 3 18:48:19 1994 Paul Eggert <eggert@twinsun.com>
9475
9476 * Makefile.in (spew.o, lex.o, pt.o):
9477 Depend on $(srcdir)/parse.h, not parse.h.
9478
9479Tue Nov 1 19:19:41 1994 Mike Stump <mrs@cygnus.com>
9480
9481 * Version 2.6.1 released.
9482
d11ad92e 9483Sun Oct 23 13:19:55 1994 Jason Merrill <jason@phydeaux.cygnus.com>
eae89e04 9484
db5ae43f
MS
9485 * decl2.c: Declare flag_access_control.
9486 (struct lang_f_options): Add access-control.
9487 * expr.c (cplus_expand_expr, NEW_EXPR): Unset flag_access_control
9488 for the call to expand_aggr_init to copy the object out of the
9489 pcc_struct_return slot.
9490 * search.c (compute_access): if (!flag_access_control) return
9491 access_public.
eae89e04 9492
d11ad92e 9493Fri Oct 21 00:32:54 1994 Jason Merrill <jason@phydeaux.cygnus.com>
eae89e04 9494
db5ae43f
MS
9495 * lex.c (cons_up_default_function): Don't try to defer method
9496 synthesis now.
9497
9498 * decl.c (init_decl_processing): Use __pure_virtual for abort_fndecl
9499 instead of abort, since the OSF/1 dynamic linker doesn't like to see
9500 relocation entries for abort.
eae89e04 9501
db5ae43f
MS
9502 * tree.c (array_type_nelts_total): Use sizetype, not
9503 integer_type_node.
d11ad92e 9504 (array_type_nelts_top): Likewise.
db5ae43f
MS
9505
9506Thu Oct 20 15:48:27 1994 Mike Stump <mrs@cygnus.com>
9507
9508 * decl.c (grokdeclarator): Added handling for catch parameters
9509 (CATCHPARM).
9510 * except.c (expand_start_catch_block): Use the new CATCHPARM context
9511 instead of NORMAL.
9512 * except.c (expand_throw): Don't let convert_to_reference complain
9513 about what we are doing.
9514
d11ad92e 9515Thu Oct 20 12:55:24 1994 Jim Wilson <wilson@cygnus.com>
db5ae43f
MS
9516
9517 * method.c (emit_thunk): Call instantiate_virtual_regs.
9518
9519Wed Oct 19 14:15:33 1994 Mike Stump <mrs@cygnus.com>
9520
9521 * except.c (expand_exception_blocks): Make sure throw code doesn't
9522 get put in function that won't be output.
eae89e04 9523
d11ad92e 9524Mon Oct 17 18:03:15 1994 Jason Merrill <jason@phydeaux.cygnus.com>
eae89e04 9525
db5ae43f
MS
9526 * decl.c (init_decl_processing): Make alloca a builtin.
9527
d11ad92e 9528Thu Oct 27 21:10:25 1994 Craig Burley <craig@burley>
db5ae43f
MS
9529
9530 * g++.c (main): Only decrement "added" and set "library" to
9531 NULL when "library" != NULL (just like 940829 fix).
eae89e04 9532
c199879d
MS
9533Mon Oct 17 15:56:11 1994 Mike Stump <mrs@cygnus.com>
9534
9535 * except.c (expand_start_catch_block): Make sure the false label
9536 gets onto the permanent obstack, as it is used for the exception
9537 table.
9538
13306d4f
MS
9539Fri Oct 14 18:54:48 1994 Mike Stump <mrs@cygnus.com>
9540
9541 * class.c (modify_one_vtable): Since the DECL_CONTEXT of fndecl can
9542 be set just below, use current_fndecl instead.
9543
d11ad92e 9544Fri Oct 14 15:12:22 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
9545
9546 * init.c (expand_aggr_vbase_init_1): Don't call expand_aggr_init_1
9547 with LOOKUP_SPECULATIVELY.
9548 (expand_default_init): Abort if build_method_call returns NULL_TREE.
9549
9550 * typeck.c (build_modify_expr): Don't just build a MODIFY_EXPR if
9551 the rhs is a TARGET_EXPR.
9552
9553 * parse.y (left_curly): Anonymous types are not affected by #pragma
9554 interface/implementation.
9555
9556 * method.c (synthesize_method): Don't call setup_vtbl_ptr for the
9557 default constructor if it isn't needed.
9558
9559 * lex.c (cons_up_default_function): Do synthesize methods for
9560 anonymous types if necessary.
9561
d11ad92e 9562Thu Oct 13 17:44:55 1994 Jason Merrill <jason@phydeaux.cygnus.com>
2f4f907d 9563
db5ae43f 9564 * method.c (build_decl_overload): Set numeric_outputed_need_bar to 0.
2f4f907d 9565
d11ad92e 9566Wed Oct 12 13:27:57 1994 Jason Merrill <jason@phydeaux.cygnus.com>
2f4f907d 9567
db5ae43f
MS
9568 * typeck.c (build_modify_expr): Understand how to copy an aggregate.
9569
d11ad92e 9570 * init.c (expand_default_init): Likewise. Also remove some of the
db5ae43f
MS
9571 crufty code that assumes methods will not be synthesized properly.
9572
9573 * lex.c (cons_up_default_function): If the containing type has no
9574 name, these functions should never need to be called, so just
9575 declare them.
2f4f907d 9576
db5ae43f
MS
9577 * lex.c (real_yylex): Use HOST_BITS_PER_WIDE_INT to determine the
9578 bitmask for lexing character constants.
9579
9580 * call.c (build_method_call): Disable code that tries to do tricky
9581 stuff with a default parameter that is a constructor call, but
9582 actually does other tricky stuff that breaks things.
2f4f907d
JM
9583
9584Wed Oct 12 16:14:01 1994 Benoit Belley <belley@cae.ca>
9585
db5ae43f
MS
9586 * decl.c (finish_enum): Disable code which forces enums to be signed,
9587 since this conflicts with their use as bitfields. type_promotes_to
9588 handles promotion of enums of underlying unsigned types to signed
9589 integer types.
2f4f907d 9590
d11ad92e 9591Wed Oct 12 13:24:03 1994 Jason Merrill <jason@phydeaux.cygnus.com>
2f4f907d 9592
db5ae43f
MS
9593 * cvt.c (type_promotes_to): Also promote enums to long if
9594 appropriate.
2f4f907d 9595
db5ae43f
MS
9596 * typeck.c (default_conversion): Don't expect type_promotes_to to
9597 return a main variant.
2f4f907d 9598
d11ad92e 9599Wed Oct 12 12:19:45 1994 Jason Merrill <jason@phydeaux.cygnus.com>
2f4f907d 9600
db5ae43f
MS
9601 * call.c (build_scoped_method_call): Don't lose side effects in the
9602 object expression when calling a non-existent destructor.
2f4f907d 9603
d11ad92e 9604Fri Sep 2 19:05:21 1994 Rohan Lenard <rjl@iassf.easams.com.au>
2f4f907d 9605
db5ae43f
MS
9606 * call.c (build_scoped_method_call): Remove erroneous error message
9607 when destructor call is written as a scoped call.
2f4f907d 9608
d11ad92e 9609Tue Oct 11 23:48:31 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
9610
9611 * various: Cast pointer arguments to bzero and bcopy to char *.
252b87c7 9612
13306d4f
MS
9613Tue Oct 11 19:34:32 1994 Mike Stump <mrs@cygnus.com>
9614
9615 * class.c (get_derived_offset): Added a type parameter to limit how
9616 far up the CLASSTYPE_VFIELD_PARENT chain we search.
9617 * class.c (modify_one_vtable, fixup_vtable_deltas): When forming the
9618 offset to put into the vtable for the this parameter, make sure we
9619 don't offset from a parent of the DECL_CONTEXT of the function.
9620
d11ad92e 9621Tue Oct 11 16:10:52 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
9622
9623 * pt.c (do_function_instantiation): Set DECL_EXTERNAL and
9624 TREE_STATIC when setting DECL_INTERFACE_KNOWN.
d11ad92e 9625 (do_type_instantiation): Likewise.
db5ae43f
MS
9626
9627 * lex.c (cons_up_default_function): Set DECL_INTERFACE_KNOWN,
9628 DECL_EXTERNAL and TREE_STATIC as appropriate.
9629
9630 * decl2.c (finish_file): Also synthesize methods that don't have
9631 DECL_EXTERNAL set. Set interface_unknown before doing so.
9632
9633 * decl.c (start_function): If DECL_INTERFACE_KNOWN is set on the
9634 function decl, don't muck with TREE_PUBLIC and DECL_EXTERNAL.
9635
d11ad92e 9636Mon Oct 10 00:56:53 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 9637
db5ae43f
MS
9638 * lex.c (cons_up_default_function): Mark methods in a template class
9639 as template instances. Store the values of interface_unknown and
9640 interface_only for do_pending_inlines.
9641 (do_pending_inlines): Use them.
9642
9643 * decl2.c (finish_file): If we haven't seen a definition of a
9644 function declared static, make the decl non-PUBLIC so compile_file
9645 can give an error.
cba8ba35 9646
d11ad92e 9647Sun Oct 9 02:42:29 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 9648
db5ae43f 9649 * method.c (do_build_copy_constructor): Handle anonymous unions.
d11ad92e 9650 (do_build_assign_ref): Likewise.
db5ae43f
MS
9651 (largest_union_member): Move from lex.c.
9652
d11ad92e 9653Sat Oct 8 14:59:43 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
9654
9655 Re-implement g++'s vague linkage independent of TREE_PUBLIC.
9656 * pt.c (instantiate_member_templates): Lose redundant
9657 -fexternal-templates handling.
9658 (tsubst): Set TREE_PUBLIC and DECL_EXTERNAL on new decls. Don't set
9659 TREE_STATIC or DECL_INTERFACE_KNOWN.
9660 (do_pending_expansions): Predicate on DECL_INTERFACE_KNOWN instead
9661 of DECL_EXTERNAL for explicit instantiations.
9662 (do_function_instantiation): Do the new thing.
d11ad92e 9663 (do_type_instantiation): Likewise.
db5ae43f
MS
9664 (instantiate_template): Deal with member templates defined in a .cc
9665 file with -fexternal-templates.
9666 * except.c (expand_exception_blocks): Use DECL_LINKAGE_KNOWN to
9667 decide whether to stick builtin_throw here.
9668 * decl2.c (import_export_inline): Predicate on DECL_INTERFACE_KNOWN
9669 rather than TREE_PUBLIC. Generally fix rules.
9670 (finish_file): Use DECL_INITIAL to determine whether or not a method
9671 has been synthesized, rather than TREE_ASM_WRITTEN.
9672 * decl.c (warn_extern_redeclared_static): Use DECL_PUBLIC instead of
9673 TREE_PUBLIC.
d11ad92e
MS
9674 (pushdecl): Likewise.
9675 (duplicate_decls): Likewise. Deal with DECL_DECLARED_STATIC and
db5ae43f
MS
9676 DECL_INTERFACE_KNOWN.
9677 (redeclaration_error_message): Fix checking for conflicting linkage.
9678 (define_function): Set DECL_INTERFACE_KNOWN.
9679 (grokfndecl): Function decls are PUBLIC until we are sure about
9680 their linkage. Set DECL_DECLARED_STATIC as needed.
9681 (start_function): Deal with linkage. Move pushdecl after linkage
9682 magic.
9683 (finish_function): Don't set TREE_ASM_WRITTEN on discarded inlines.
9684 * cp-tree.h (lang_decl_flags): Add interface_known and
9685 declared_static.
9686 (DECL_INTERFACE_KNOWN): New macro.
9687 (DECL_DECLARED_STATIC): New macro.
9688 (DECL_PUBLIC): New macro.
9689
9690 Clean up bogus use of TREE_PUBLIC.
9691 * class.c (alter_access): Fix mistaken use of TREE_PUBLIC (it
9692 doesn't correspond to TREE_PROTECTED and TREE_PRIVATE).
9693 * init.c (do_friend): Don't arbitrarily set TREE_PUBLIC.
cba8ba35 9694
d11ad92e 9695Wed Oct 5 13:44:41 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 9696
db5ae43f
MS
9697 * call.c (build_overload_call_real): Don't immediately do
9698 array->pointer conversion.
cba8ba35 9699
db5ae43f
MS
9700 * pt.c (type_unification): If not passing to a reference, strip
9701 cv-quals. Also handle array->pointer conversion.
cba8ba35 9702
d11ad92e 9703Tue Oct 4 17:45:37 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 9704
db5ae43f
MS
9705 * decl.c (grokdeclarator): Don't warn about applying const to a
9706 const typedef or template type parameter.
9707
9708 * decl2.c (finish_file): Also synthesize methods after walking the
9709 vtables. Ugly ugly ugly.
cba8ba35 9710
d11ad92e 9711Mon Oct 3 15:02:41 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 9712
db5ae43f
MS
9713 * various: Remove lingering remnants of old exception handling code.
9714
9715 * decl2.c (finish_file): Synthesize methods before walking the
9716 vtables, so that the vtables get emitted as needed.
9717
9718 * decl.c (shadow_tag): Remove obsolete code for pushing tags and
9719 dealing with exceptions.
9720
9721Mon Oct 3 13:05:27 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
9722
9723 * Make-lang.in (g++-cross): Depend upon version.o and $(LIBDEPS).
9724
d11ad92e 9725Mon Oct 3 02:59:28 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
9726
9727 * decl2.c (finish_file): Fix inline handling.
cba8ba35 9728
d11ad92e 9729Sun Oct 2 00:21:56 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 9730
db5ae43f
MS
9731 * decl.c (grokdeclarator): Handle redundant scope even better.
9732 ({push,pop}_cp_function_context): Take toplev parameter.
cba8ba35 9733
db5ae43f
MS
9734 * method.c (synthesize_method): Pass toplev parameter to
9735 {push,pop}_cp_function_context depending on decl_function_context
9736 (fndecl).
cba8ba35 9737
db5ae43f
MS
9738 * typeck.c (build_x_unary_op): Unary & on OFFSET_REFs is always the
9739 built-in version.
cba8ba35 9740
db5ae43f
MS
9741 * method.c (synthesize_method): Don't be confused by __in_chrg
9742 parameter.
b3738072 9743
db5ae43f 9744 * class.c (popclass): Set C_C_D like start_function does.
b3738072 9745
db5ae43f 9746 * decl.c (grokdeclarator): Handle redundant scope better.
81613e43 9747
db5ae43f 9748 * parse.y (expr_or_declarator): Add '(' expr_or_declarator ')' rule.
d11ad92e 9749 (direct_notype_declarator): Likewise.
db5ae43f 9750 (complex_direct_notype_declarator): Remove it here.
81613e43 9751
d11ad92e 9752Sat Oct 1 21:42:18 1994 Jason Merrill <jason@deneb.cygnus.com>
44c5421f 9753
db5ae43f
MS
9754 * init.c (resolve_offset_ref): Fix types used in resolving .*
9755 expressions.
9756
d11ad92e 9757Sat Oct 1 15:18:49 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
9758
9759 Beginnings of work to synthesize methods only when needed.
9760 * call.c (build_method_call): Synthesize methods as necessary
9761 (currently never necessary).
9762 * class.c (popclass): Don't try to set C_C_D here, as it'll end up
9763 on the wrong obstack.
9764 * decl.c (push_cp_function_context): Mostly copied from
9765 push_c_function_context.
9766 (pop_cp_function_context): Similarly.
9767 (finish_function): Reverse order of poplevel and pop_nested_class so
9768 that current_class_decl is restored properly.
d11ad92e 9769 (start_function): Likewise.
db5ae43f
MS
9770 (finish_function): Add parameter 'nested'. Don't call
9771 permanent_allocation if (nested).
9772 * various: Pass extra parameter to finish_function.
9773 * decl2.c (finish_file): Reorganize end-of-file inline handling,
9774 synthesizing methods as necessary.
9775 * lex.c (cons_up_default_function): Call mark_inline_for_output.
9776 Only synthesize methods immediately if #pragma implementation
9777 (currently disabled).
9778 (do_pending_inlines): Call synthesize_method.
9779 * method.c (synthesize_method): New function; all method synthesis
9780 goes through here. Calls do_build_assign_ref and
9781 do_build_copy_constructor.
9782 (build_default_constructor): Remove.
d11ad92e 9783 (build_dtor): Likewise.
db5ae43f
MS
9784 (build_assign_ref): Rename to do_build_assign_ref and remove stuff
9785 done by synthesize_method.
9786 (build_copy_constructor): Similarly.
44c5421f 9787
eac293a1
MS
9788Thu Sep 29 16:58:52 1994 Mike Stump <mrs@cygnus.com>
9789
9790 * typeck.c (c_expand_return): Use magic so the backend can fixup the
9791 assignment into the return register, so cleanups won't clobber it.
9792
d11ad92e 9793Thu Sep 29 13:08:50 1994 Jason Merrill <jason@deneb.cygnus.com>
eac293a1
MS
9794
9795 * method.c (hack_identifier): Don't call assemble_external for
9796 template decls.
9797
9798 * decl.c (finish_decl): Also end temporary allocation if the decl in
9799 question has a type of error_mark_node.
9800
6060a796 9801Wed Sep 28 21:45:00 1994 Mike Stump <mrs@cygnus.com>
eac293a1
MS
9802
9803 * typeck.c (build_modify_expr): When optimizing ?: on lhs, make sure
9804 that if the ?: was a reference type, that the subparts will be also.
9805
d11ad92e 9806Wed Sep 28 16:14:04 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
eac293a1
MS
9807
9808 * except.c (register_exception_table): Use Pmode, not PTRmode.
9809
d11ad92e 9810Fri Sep 23 13:54:27 1994 Jason Merrill <jason@deneb.cygnus.com>
eac293a1
MS
9811
9812 * lex.c (do_pending_inlines): Do method synthesis after the
9813 pending_inlines have been reversed.
9814
d11ad92e 9815Thu Sep 22 12:53:03 1994 Per Bothner <bothner@kalessin.cygnus.com>
f376e137
MS
9816
9817 * decl2.c (finish_file): Fix Brendan's fix: Only call
9818 register_exception_table if there is a non-empty exception table.
9819
d11ad92e 9820Thu Sep 22 12:03:46 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
9821
9822 * decl2.c (finish_file): Only do register_exception_table if
9823 -fhandle-exceptions is being used.
9824
d11ad92e 9825Wed Sep 21 19:01:51 1994 Per Bothner <bothner@kalessin.cygnus.com>
f376e137
MS
9826
9827 * except.c (output_exception_table_entry): Simplify
9828 by using assemble_integer.
9829 (build_exception_table): Change to return a count.
9830 Cleanup to use standard macros, instead of hard-wired
9831 sparc asm format. Don't make __EXCEPTION_TABLE__ global.
9832 (register_exception_table): New function. Generate call to builtin.
9833 * decl2.c (finish_file): Call register_exception_table.
9834 * cp-tree.h (build_exception_table): Fix prototype.
9835
d11ad92e 9836Wed Sep 21 13:20:42 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
9837
9838 * tree.c (break_out_calls): Don't try to duplicate the DECL_INITIAL.
9839
9840 * decl2.c (delete_sanity): Give an error at trying to delete a
9841 function.
9842
d11ad92e 9843Wed Sep 21 11:47:10 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9844
9845 * lex.c (cons_up_default_function): Mark synthesized destructors
9846 inline.
9847
9848 * decl.c (duplicate_decls): Ignore redeclarations of wchar_t as
9849 something other than __wchar_t, complaining if -pedantic and not in
9850 a system header.
9851
d11ad92e 9852Tue Sep 20 09:43:28 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9853
9854 * decl.c (xref_tag): Set up BINFO_INHERITANCE_CHAIN on base binfos
9855 here.
9856
9857 * typeck.c (build_modify_expr): Require complete type after checking
9858 for error_mark_node.
9859
9860 * call.c (build_method_call): Print parmtypes when complaining of
9861 ambiguous call.
9862
9863 * typeck.c (build_modify_expr): Handle assignment to array from
9864 non-array.
9865
9866 * decl.c (lookup_name_real): Deal with got_scope == error_mark_node.
9867
9868 * call.c (build_method_call): Don't bother with the exact match.
9869
d11ad92e 9870Mon Sep 19 00:51:39 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9871
9872 * init.c (expand_aggr_init): If we munge the type of the variable,
9873 also munge the type of the initializer.
9874
9875 * decl.c (grokdeclarator): Use <= when comparing to RID_LAST_MODIFIER.
9876 (init_decl_processing): Push artificial declaration of wchar_t so
9877 people don't have to declare it before they can use it.
9878
9879 * error.c (cp_line_of): return lineno in lieu of 0.
9880
9881 * typeck.c (convert_for_assignment): Handle conversion of pmfs to
9882 int and bool.
9883 (build_component_ref): Fold the COMPONENT_REF in case it can be
9884 reduced.
9885
9886 * typeck2.c (store_init_value): Don't pedwarn about non-constant
9887 bracketed initializers for automatic variables.
9888
d11ad92e 9889Sun Sep 18 10:12:12 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9890
9891 * error.c (dump_decl): Don't say `typedef enum foo foo'.
9892
9893 * decl.c (start_decl): Don't set TREE_PUBLIC on template decls just
9894 because they're affected by #pragma i/i. We'll deal with that when
9895 they get instantiated.
9896
9897 * typeck.c (build_unary_op): Clean up cruft in ADDR_EXPR case.
9898
9899 * class.c (instantiate_type): Set TREE_CONSTANT on instantiated
9900 ADDR_EXPRs if appropriate.
9901
9902 * decl.c (build_ptrmemfunc_type): Unset IS_AGGR_TYPE on pmf types.
9903
9904 * typeck.c (build_ptrmemfunc): Handle &overloaded_method as an
9905 initializer properly.
d11ad92e 9906 * typeck2.c (digest_init): Likewise.
f376e137
MS
9907
9908 * tree.c (cp_build_type_variant): Like c_build_type_variant, except
9909 it uses build_cplus_array_type.
9910 * *.c: Use cp_build_type_variant instead of c_build_type_variant.
9911
9912 * pt.c (do_type_instantiation): Don't try to instantiate nested
db5ae43f 9913 enums.
f376e137 9914
d11ad92e 9915Tue Sep 13 10:56:58 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9916
9917 * cvt.c (build_up_reference): Handle preincrement and predecrement
db5ae43f 9918 properly.
f376e137 9919
d11ad92e 9920Tue Sep 13 09:51:59 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
9921
9922 * decl.c (finish_decl): Only lay out the rtl for DECL if it is, in
9923 fact, static.
9924
d11ad92e 9925Mon Sep 12 14:40:30 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
9926
9927 * decl.c (finish_decl): Lay out the rtl for DECL before doing
9928 grok_reference_init, in case it's static.
9929
d11ad92e 9930Mon Sep 12 12:45:38 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9931
9932 * class.c (finish_struct): Don't synthesize constructors if the
9933 class has a field with the same name as the class. Don't die on
9934 classes with no constructors or destructors. Don't die if the head
9935 and tail of the class are in different files.
9936
9937 * decl.c (grokdeclarator): Don't treat a function pointer field
9938 with the same name as the class as a constructor.
9939
d11ad92e 9940Fri Sep 9 13:17:00 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9941
9942 * typeck.c (build_c_cast): Pull constant values out of their
9943 variables here.
9944
9945 * decl.c (duplicate_decls): Only propagate DECL_CHAIN in
9946 FUNCTION_DECLs and TEMPLATE_DECLs.
9947
d11ad92e 9948Thu Sep 8 10:07:48 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9949
9950 * decl.c (duplicate_decls): Propagate DECL_CHAIN in all DECLs that
9951 have it.
9952
9953 * pt.c (unify): REALs and INTEGERs only unify with their own genus.
9954 (instantiate_member_templates): Don't muck with DECL_EXTERNAL and
9955 TREE_PUBLIC unless -fexternal-templates.
9956
d11ad92e 9957Wed Sep 7 13:17:10 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9958
9959 * pt.c (do_type_instantiation): Call instantiate_member_templates.
9960 Deal with specializations.
9961 (tsubst): Don't stick the mangled name in DECL_NAME for function
9962 instantiations. Don't push them, either.
9963
9964 * decl2.c (grokfield): Move code for generating the
9965 DECL_ASSEMBLER_NAME for static members from here.
9966 * method.c (build_static_name): To here.
9967 * decl.c (grokvardecl): Call build_static_name.
9968 (duplicate_decls): Keep old DECL_ASSEMBLER_NAME.
9969
d11ad92e 9970Mon Sep 5 12:49:18 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9971
9972 * call.c (build_method_call): if -Wsynth, warn when selecting
9973 synthesized op= over user-supplied one cfront would select.
9974 * decl2.c (lang_decode_option): Handle -Wsynth.
9975
d11ad92e 9976Fri Sep 2 15:11:59 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9977
9978 * decl.c (finish_enum): Overhaul to fix several bugs.
9979 (start_enum): Disable useless code.
9980
d11ad92e 9981Thu Sep 1 16:04:54 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9982
9983 * typeck.c (c_expand_return): Warn about returning a reference to a
9984 temporary.
9985 (convert_arguments): Increment argument counter when using default
9986 arguments, too.
9987
d11ad92e 9988Wed Aug 31 14:29:22 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9989
9990 * decl.c (finish_decl): If the type of decl is error_mark_node,
9991 don't bother trying to do anything.
9992
9993 * typeck.c (convert_for_initialization): If the rhs contains a
9994 constructor call, pretend the lhs type needs to be constructed.
9995
9996 * init.c (expand_default_init): If we stick the object inside the
9997 initializer, mark the initializer used.
9998
d11ad92e 9999Tue Aug 30 13:50:18 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
10000
10001 * method.c (build_assign_ref): return *this;
10002 (build_assign_ref): Fix base assignment order.
10003 (build_copy_constructor): Fix member init order.
10004
d11ad92e 10005Mon Aug 29 13:54:39 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
10006
10007 * g++.c (main): Remember to clear out SAW_SPECLANG after we see
10008 its argument.
10009
d11ad92e 10010Sat Aug 27 09:36:03 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
10011
10012 * method.c (build_copy_constructor): Also copy virtual bases.
10013
d11ad92e 10014Fri Aug 26 17:05:15 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
10015
10016 * lex.c (do_pending_inlines): Clear out pending_inlines before doing
10017 any synthesis. Also first set deja_vu on all pending_inlines.
10018
10019 * method.c (build_assign_ref): Use build_member_call to invoke base
10020 operator=, rather than build_modify_expr. And use
10021 build_reference_type instead of TYPE_REFERENCE_TO.
10022 (build_copy_constructor): Use TYPE_NESTED_NAME to identify the
10023 basetype.
10024
10025 * decl2.c (grokfield): Don't complain about undefined local class
10026 methods.
10027
10028 * class.c (finish_struct): Don't try to synthesize methods here.
10029 * lex.c (do_pending_inlines): Instead, synthesize them here.
10030 (init_lex): Initialize synth_obstack.
10031 (cons_up_default_function): Stick synthesis request on
10032 pending_inlines.
10033
d11ad92e 10034Fri Aug 26 12:24:14 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
10035
10036 * call.c (build_method_call) [PCC_STATIC_STRUCT_RETURN]: Also
10037 accept an RTL_EXPR in what we're about to use for the instance,
10038 since anything which would end up with pcc_struct_return set
10039 inside cplus_expand_expr.
10040
10041 * cp-tree.h (cons_up_default_function): Note change of prototype.
10042
d11ad92e 10043Thu Aug 25 23:05:30 1994 Gerald Baumgartner <gb@cs.purdue.edu>
f376e137
MS
10044
10045 * class.c (finish_struct): Undid change from Aug 21 testing
10046 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
d11ad92e 10047 * parse.y (left_curly): Likewise, undid change from Aug 21.
f376e137
MS
10048 * decl.c (xref_tag): Undid change from Aug 21, set
10049 CLASSTYPE_INTERFACE correctly, and added comments.
10050
d11ad92e 10051Thu Aug 25 00:36:31 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
10052
10053 Rework approach to synthesized methods; don't go through the parser
10054 anymore.
10055 * class.c (finish_struct): Use new synthesis approach.
10056 * lex.c (cons_up_default_function): Now just creates declaration,
10057 not code.
10058 (largest_union_member): #if 0 out.
d11ad92e
MS
10059 (default_assign_ref_body): Likewise.
10060 (default_copy_constructor_body): Likewise.
f376e137
MS
10061 * method.c (build_default_constructor): New function to synthesize X().
10062 (build_copy_constructor): Synthesize X(X&).
10063 (build_assign_ref): Synthesize X::operator=(X&).
10064 (build_dtor): Synthesize ~X().
10065
10066 * error.c (cp_line_of): If we're dealing with an artificial
10067 TYPE_DECL, look at the type instead.
10068
d11ad92e 10069Wed Aug 24 11:11:50 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
10070
10071 * init.c (sort_member_init): Check warn_reorder.
10072 * decl2.c (lang_decode_option): Handle -W{no-,}reorder.
10073
10074 * cp-tree.h (CLASSTYPE_SOURCE_LINE): New macro.
10075 * error.c (cp_line_of): Use CLASSTYPE_SOURCE_LINE for aggregates.
10076 * class.c (finish_struct): Set CLASSTYPE_SOURCE_LINE.
10077
6060a796 10078Tue Aug 23 09:28:35 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
10079
10080 * error.c (dump_decl): Improve wording, so that error messages
10081 dont't read template<, class foo>...
10082
d11ad92e 10083Mon Aug 22 15:30:51 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
10084
10085 * parse.y (label_colon): Also match a TYPENAME as a label name,
10086 since they may have declared a class by that name but have also
10087 tried to have a local label under the same name.
10088
10089 * pt.c (coerce_template_parms): Call cp_error, not cp_error_at,
10090 for the message so they know at what point it was instantiated.
10091
d11ad92e 10092Sun Aug 21 23:07:35 1994 Gerald Baumgartner <gb@cs.purdue.edu>
f376e137
MS
10093
10094 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
10095 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures up to left_curly time.
10096 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 10097 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures down to left_curly time.
f376e137
MS
10098 * parse.y (left_curly): New final resting place for setting
10099 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING for signatures.
10100
10101 * class.c (finish_struct): Don't test for function/field name
10102 conflicts in signatures, since all the fields are compiler-constructed.
10103
d11ad92e 10104Fri Aug 19 14:04:47 1994 Kung Hsu <kung@mexican.cygnus.com>
f376e137
MS
10105
10106 * method.c (build_overload_nested_name): in qualified name
10107 mangling, the template with value instantiation will have numeric
10108 at end and may mixed with the name length of next nested level.
10109 Add a '_' in between.
10110 * method.c (build_overload_name): ditto.
10111 * method.c (build_overload_identifier): ditto.
10112
6060a796 10113Thu Aug 18 16:24:43 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
10114
10115 * error.c (dump_decl): Handle NULL args.
10116
db5ae43f
MS
10117Thu Sep 29 16:15:36 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
10118
10119 * g++.c: Rework last change so it's done like collect.c (and
10120 gcc.c).
10121
10122Wed Sep 14 10:17:27 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
10123
10124 * g++.c: Include <sys/errno.h> in case `errno' is a macro
10125 as permitted by ANSI C.
10126
6060a796 10127Thu Aug 18 12:48:09 1994 Mike Stump <mrs@cygnus.com>
00595019
MS
10128
10129 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
10130 CLASSTYPE_VTABLE_NEEDS_WRITING up to left_curly time.
10131 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 10132 CLASSTYPE_VTABLE_NEEDS_WRITING down to left_curly time.
00595019
MS
10133 * parse.y (left_curly): New final resting place for setting
10134 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
10135
d11ad92e 10136Thu Aug 11 11:32:42 1994 H.J. Lu <hjl@nynexst.com>
00595019
MS
10137
10138 * g++.c (main): Only decrement "added" and set "library" to
10139 NULL when "library" != NULL.
10140
d11ad92e 10141Sat Aug 13 00:14:52 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10142
10143 * decl.c (grokdeclarator): Don't set TREE_PUBLIC on a function decl
10144 just because its class has a known interface.
10145 (decls_match): Deal with new format of template parms.
10146
10147 * lex.c (cons_up_default_function): Don't play with TREE_PUBLIC and
10148 DECL_EXTERNAL here.
10149
d11ad92e 10150Fri Aug 12 01:55:15 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10151
10152 * decl.c (pushtag): SET_DECL_ARTIFICIAL on gratuitous typedefs.
d11ad92e 10153 (xref_defn_tag): Likewise.
00595019
MS
10154 (pushdecl): Only allow artificial typedefs to be shadowed.
10155
10156 * init.c (emit_base_init): Pass the right binfos to
10157 expand_aggr_init_1.
10158
10159 * class.c (delete_duplicate_fields_1): Make it work right.
10160 (finish_struct): Catch function/field name conflict.
10161
10162 * decl2.c (check_classfn): Pass the function to cp_error, not just
10163 the name.
10164
10165 * init.c (sort_member_init): Warn when order of member initializers
10166 does not match order of member declarations.
10167 (emit_base_init): Call expand_aggr_init_1 with LOOKUP_PROTECT.
10168
10169 * error.c (dump_expr): Handle lists of functions.
10170
10171 * decl.c (start_function): #pragma interface only affects functions
10172 that would otherwise be static.
10173 (finish_decl): Don't warn about an unused variable if it has both
10174 constructor and destructor, since the 'resource allocation is
10175 initialization' idiom is relatively common.
10176
10177 * typeck.c (comp_target_types): Don't handle TEMPLATE_TYPE_PARMs.
d11ad92e 10178 (comp_target_parms): Likewise.
00595019
MS
10179 (compparms): Never consider default parms.
10180 (common_base_type): Don't choose a virtual baseclass if there is a
10181 more derived class in common.
10182 (build_conditional_expr): If pedantic, pedwarn about conversion to
10183 common base in conditional expr.
10184
10185 * class.c (instantiate_type): Handle template instantiation better.
10186
10187 * typeck.c (convert_arguments): Don't try to get tricky and convert
10188 to int directly when PROMOTE_PROTOTYPES is set, as it breaks
10189 user-defined conversions.
10190
10191 * lex.c (check_for_missing_semicolon): Also give error at end of
10192 file.
10193
10194 * call.c (build_method_call): Don't promote arrays to pointers here.
10195
10196 * typeck.c (convert_arguments): Don't require the actual parameter
10197 to be of a complete type if the formal parameter is a reference.
10198
d11ad92e 10199Thu Aug 11 15:21:40 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10200
10201 * decl.c (grokdeclarator): Soften 'static' on member function error
10202 to pedwarn.
10203
10204 * init.c (build_new): Don't automatically save rval.
10205 (build_offset_ref): Do field lookup with proper basetype_path.
10206
d11ad92e 10207Thu Aug 11 12:46:54 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
00595019
MS
10208
10209 * errfn.c (cp_silent): Declare to mark when we should avoid
10210 emitting warnings and errors.
10211 (cp_error): Check it.
10212 (cp_warning): Likewise.
10213 (cp_pedwarn): Likewise.
10214 (cp_compiler_error): Likewise.
10215 (cp_error_at): Likewise.
10216 (cp_warning_at): Likewise.
10217 (cp_pedwarn_at): Likewise.
10218 * call.c (compute_conversion_costs): Set CP_SILENT when we start
10219 out, and make sure we turn it off before we leave.
10220
d11ad92e 10221Thu Aug 11 00:02:54 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10222
10223 * decl2.c (grok_array_decl): Try computing *(A+B) if neither
10224 argument is obviously an array.
10225
d11ad92e 10226Wed Aug 10 15:32:04 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10227
10228 * typeck.c (c_expand_start_case): Do cleanups here.
10229
10230 * parse.y (xcond): Do bool conversion here, too.
10231 (simple_stmt, SWITCH case): Don't do cleanups here.
10232
10233 * decl.c (duplicate_decls): Don't treat builtins that have been
10234 explicitly declared specially.
10235
d11ad92e 10236Tue Aug 9 01:16:09 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10237
10238 * tree.c (make_deep_copy): Support copying pointer, reference,
10239 function, array, offset and method types.
10240
10241 * decl.c (init_decl_processing): Mark exit and abort as
10242 BUILT_IN_NONANSI so that duplicate_decls is kinder about
10243 redeclaration.
10244 (duplicate_decls): Don't give two errors for redeclaring a C
10245 function with the same parms but a different return type.
10246
10247 * parse.y (paren_cond_or_null): Do cleanup and bool conversion here.
10248 (condition): Instead of here.
10249 (simple_stmt, SWITCH case): Also do cleanup here.
10250
10251 * decl2.c (finish_anon_union): Only break out FIELD_DECLs.
10252
10253 * call.c (build_method_call): Don't throw away the side effects of
10254 the object in a call to a non-existent constructor.
d11ad92e 10255 * parse.y (primary): Likewise.
00595019
MS
10256
10257 * method.c (build_decl_overload): Oop.
10258
10259 * decl2.c (lang_decode_option): Deal with flag_no_nonansi_builtin,
10260 warn about uselessness of specifying -fansi-overloading.
10261
10262 * method.c (build_decl_overload): Treat any non-member new with one
10263 parameter as __builtin_new.
10264
10265 * decl.c (init_decl_processing): Setup built-in meanings of exit,
10266 _exit and abort.
10267
d11ad92e 10268Mon Aug 8 15:03:30 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10269
10270 * error.c (dump_readonly_or_volatile): Put a space between const and
10271 volatile if both apply.
10272
10273 * init.c (perform_member_init): Clean up after this initialization.
10274 (emit_base_init): Clean up after each base init, not after all have
10275 been done.
10276 (expand_aggr_vbase_init_1): Clean up after this init.
10277
d11ad92e 10278Sun Aug 7 14:55:05 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10279
10280 * call.c (build_method_call): Deal with destroying references.
10281
10282 * parse.y (condition): Do bool_truthvalue_conversion here.
10283 (paren_expr_or_null): And here.
10284 (simple_if): Not here.
10285 (simple_stmt): Or here.
10286
d11ad92e 10287Sat Aug 6 22:29:45 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10288
10289 * parse.y (paren_expr_or_null): Wrap the expression in a
10290 CLEANUP_POINT_EXPR.
d11ad92e 10291 (condition): Likewise.
00595019 10292
d11ad92e 10293Sat Aug 6 19:46:37 1994 Rohan Lenard <rjl@easams.com.au>
00595019
MS
10294
10295 * call.c (build_scoped_method_call): Fix error message when
10296 destructor call refers to a nonexistent type.
10297
d11ad92e 10298Sat Apr 16 22:43:30 1993 Gerald Baumgartner <gb@cs.purdue.edu>
00595019
MS
10299
10300 * lex.h (rid): Deleted RID_RAISES, it's never used.
10301 Moved RID_PUBLIC, RID_PRIVATE, RID_PROTECTED, RID_EXCEPTION,
10302 RID_TEMPLATE and RID_SIGNATURE to the end of the enumeration,
10303 they don't need to be touched in `grokdeclarator.'
10304 (RID_LAST_MODIFIER): Defined macro to be RID_MUTABLE.
10305
10306 * decl.c (grokdeclarator): Use RID_LAST_MODIFIER instead of
10307 RID_MAX as loop limit for finding declaration specifiers.
10308
d11ad92e 10309Sat Apr 3 21:59:07 1993 Gerald Baumgartner <gb@cs.purdue.edu>
00595019
MS
10310
10311 * lex.c (debug_yytranslate): Moved to parse.y since it needs to
10312 access `yytname,' which is static in parse.c.
10313
d11ad92e 10314Fri Apr 2 23:36:57 1993 Gerald Baumgarnter <gb@cs.purdue.edu>
00595019
MS
10315
10316 * cp-tree.h (GNU_xref_ref): Fixed typo in extern declaration, it
10317 was `GNU_xref_def' instead of `GNU_xref_ref.'
10318
d11ad92e 10319Fri Aug 5 14:20:16 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
10320
10321 * pt.c (do_function_instantiation): Don't set TREE_PUBLIC and
10322 DECL_EXTERNAL on 'extern' instantiations; wait until EOF to do that.
d11ad92e 10323 (do_type_instantiation): Likewise.
00595019
MS
10324
10325 * decl2.c (import_export_inline): Decides at EOF what an inline's
10326 linkage should be.
10327 (finish_file): Call it.
10328
10329 * decl.c (start_function): Don't rely on the settings of TREE_PUBLIC
10330 and DECL_EXTERNAL from do_*_instantiation. Only set
10331 DECL_DEFER_OUTPUT on inlines whose linkage might actually change.
10332 (finish_function): Use DECL_DEFER_OUTPUT to decide which inlines to
10333 mark for later consideration, rather than DECL_FUNCTION_MEMBER_P.
10334
6060a796 10335Fri Aug 5 01:12:20 1994 Mike Stump <mrs@cygnus.com>
a292b002
MS
10336
10337 * class.c (get_class_offset_1, get_class_offset): New routine to
10338 find the offset of the class where a virtual function is defined,
10339 from the complete type.
10340 * class.c (modify_one_vtable, fixup_vtable_deltas): Use
10341 get_class_offset instead of virtual_offset as get_class_offset will
10342 always provide the right answer.
10343 * tree.c (virtual_offset): Remove. It only ever worked some of the
10344 time.
10345
d11ad92e 10346Tue Aug 2 12:44:21 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10347
10348 * call.c (build_method_call): Put back unary_complex_lvalue call
10349 that I thought was redundant.
10350
10351 * typeck.c (c_expand_return): Fix a case I missed before.
10352
d11ad92e 10353Sun Jul 31 17:54:02 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10354
10355 * pt.c (unify): Strip cv-quals from template type arguments (when
10356 'const T*' is matched to 'const char*', that does not mean that T is
10357 'const char').
10358
d11ad92e 10359Fri Jul 29 01:03:06 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10360
10361 * pt.c (do_type_instantiation): Instantiate nested TAGS, not
10362 typedefs. Third time's the charm?
10363
10364 * parse.y (template_parm): Support default template parms.
d11ad92e
MS
10365 * pt.c (process_template_parm): Likewise.
10366 (end_template_parm_list): Likewise.
10367 (coerce_template_parms): Likewise.
10368 (mangle_class_name_for_template): Likewise.
10369 (push_template_decls): Likewise.
10370 (unify): Likewise.
10371 * method.c (build_overload_identifier): Likewise.
10372 * error.c (dump_decl): Likewise.
a292b002 10373
d11ad92e 10374Wed Jul 27 17:47:00 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10375
10376 * pt.c (do_type_instantiation): Only instantiate nested *classes*.
10377
d11ad92e 10378Tue Jul 26 13:22:40 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10379
10380 * search.c (note_debug_info_needed): Also emit debugging information
10381 for the types of fields.
10382
d11ad92e 10383Mon Jul 25 00:34:44 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10384
10385 * pt.c (lookup_template_class): Pass 'template' to
10386 coerce_template_parms instead of 'in_decl', since it's a more
10387 meaningful context.
10388
10389 * typeck.c (c_expand_return): Make sure any cleanups for the return
10390 expression get run.
10391 (build_c_cast): Use CONVERT_EXPR for conversion to void.
10392
10393 * pt.c (do_type_instantiation): Also instantiate nested types.
10394
10395 * typeck.c (convert_for_assignment): Don't die when comparing
10396 pointers with different levels of indirection.
10397
10398 * decl.c (grokdeclarator): The sub-call to grokdeclarator for
10399 class-local typedefs sets DECL_ARGUMENTS, so we need to clear it
10400 out.
10401
10402 * decl2.c (finish_anon_union): Don't die if the union has no
10403 members.
10404
10405 * decl.c (grokdeclarator): Undo changes to declspecs when we're done
10406 so that 'typedef int foo, bar;' will work.
10407
10408 * decl2.c (finish_file): Don't call expand_aggr_init for
10409 non-aggregates.
10410
d11ad92e 10411Mon Jul 25 00:03:10 1994 Teemu Torma <tot@trema.fi>
a292b002
MS
10412
10413 * decl.c (finish_function): We can't inline constructors and
10414 destructors under some conditions with -fpic, but don't unset
10415 DECL_INLINE.
10416
d11ad92e 10417Mon Jul 25 00:03:10 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10418
10419 * typeck.c (build_object_ref): Make sure 'datum' is a valid object.
10420
d11ad92e 10421Sun Jul 24 14:19:31 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10422
10423 * class.c (finish_struct): Don't set DECL_FIELD_BITPOS on
10424 non-fields.
10425 (finish_struct_methods): Use copy_assignment_arg_p.
10426
10427 * cvt.c (cp_convert): If expr is an OFFSET_REF, resolve it instead
10428 of giving an error.
10429
10430 * typeck.c (build_binary_op_nodefault): Don't set result_type if we
10431 don't know how to compare the operands.
10432
10433 * decl.c (grokdeclarator): Avoid seg fault when someone uses '__op'
10434 as a declarator-id in their program. Like the Linux headers do.
10435 Arrgh.
10436
10437 * tree.c (lvalue_p): Treat calls to functions returning objects by
10438 value as lvalues again.
10439
10440 * typeck.c (build_component_addr): Use convert_force to convert the
10441 pointer in case the component type is also a private base class.
10442
10443 * search.c (get_matching_virtual): Fix bogus warning of overloaded
10444 virtual.
10445
10446 * pt.c (overload_template_name): Set DECL_ARTIFICIAL on the created
10447 TYPE_DECL to fix bogus shadowing warnings.
10448
d11ad92e 10449Fri Jul 22 01:15:32 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10450
10451 * init.c (expand_aggr_init_1): const and volatile mismatches do not
10452 prevent a TARGET_EXPR from initializing an object directly.
10453
d11ad92e 10454Tue Jul 19 17:55:37 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
10455
10456 * cvt.c (build_up_reference): Allow building up references to
10457 `this', don't warn about making references to artificial variables
10458 (like `this').
10459
10460 * tree.c (lvalue_p): `this' is not an lvalue.
10461
10462 * call.c (build_method_call): Accept using a typedef name (or
10463 template type parameter) for explicit destructor calls.
10464
72b7eeff
MS
10465Thu Jul 14 09:42:23 1994 Mike Stump <mrs@cygnus.com>
10466
10467 * Version 2.6.0 released.
10468
d11ad92e 10469Wed Jul 13 03:57:54 1994 Jason Merrill <jason@deneb.cygnus.com>
cf17cae3 10470
a292b002
MS
10471 * method.c (hack_identifier): Put back old code so lists of
10472 non-functions will be handled properly.
a5ef9010 10473
a292b002
MS
10474 * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): #if 0 out; this macro is now
10475 defined in the language-independent tree.h.
cf17cae3 10476
a292b002
MS
10477 * tree.c (count_functions): Avoid bogus warning when compiling this
10478 function.
cf17cae3 10479
d11ad92e 10480Mon Jul 11 18:37:20 1994 Jason Merrill <jason@deneb.cygnus.com>
cf17cae3 10481
a292b002
MS
10482 * decl.c (grok_reference_init): Always save the initializer of a
10483 reference.
cf17cae3 10484
6060a796 10485Fri Jul 8 17:41:46 1994 Mike Stump <mrs@cygnus.com>
5b605f68
MS
10486
10487 * decl.c (cplus_expand_expr_stmt): Wrap statement expressions inside
10488 CLEANUP_POINT_EXPRs so that the stack slots can be reused.
63c68bb7 10489 (disabled for now)
5b605f68 10490
d11ad92e 10491Fri Jul 8 12:59:38 1994 Jason Merrill <jason@deneb.cygnus.com>
5b605f68
MS
10492
10493 * method.c (hack_identifier): Fix for new overloading.
10494
10495 * typeck.c (build_binary_op_nodefault): Don't mess with division by
db5ae43f 10496 zero.
5b605f68 10497
d11ad92e 10498Fri Jul 8 13:20:28 1994 Gerald Baumgartner <gb@cs.purdue.edu>
5b605f68
MS
10499
10500 * decl2.c (finish_file): Only call walk_sigtables, if
10501 flag_handle_signatures is turned on, don't waste time otherwise.
10502
d11ad92e 10503Fri Jul 8 02:27:41 1994 Jason Merrill <jason@deneb.cygnus.com>
5b605f68
MS
10504
10505 * decl.c (push_overloaded_decl): Don't create overloads of one when
10506 shadowing a class type.
a292b002 10507 * typeck.c (build_x_function_call): Complain about overloads of one.
5b605f68
MS
10508
10509 * decl.c (grokdeclarator): Don't try to treat a char* as a tree.
10510 (grokdeclarator): Fix setting of TREE_STATIC.
10511 (start_decl): Clear DECL_IN_AGGR_P after calling duplicate_decls.
10512
d11ad92e 10513Thu Jul 7 22:20:46 1994 Gerald Baumgartner <gb@andros.cygnus.com>
311862c8
GB
10514
10515 * cp-tree.h (walk_sigtables): Created extern declaration.
10516 * decl2.c (walk_sigtables): Created function, patterned after
10517 walk_vtables, even though we only need it to write out sigtables.
10518 (finish_sigtable_vardecl): Created function.
10519 (finish_vtable_vardecl): Changed 0 to NULL_PTR.
10520 (finish_file): Call walk_sigtables.
10521
10522 * sig.c (build_signature_table_constructor): Mark class member
10523 function pointed to from signature table entry as addressable.
10524
d11ad92e 10525Thu Jul 7 13:39:37 1994 Jason Merrill <jason@deneb.cygnus.com>
5b605f68
MS
10526
10527 * decl.c (start_decl): Check new decl of static member variable
10528 against the declaration in the class here.
10529 (grokvardecl): Instead of here.
10530
10531 * class.c (prepare_fresh_vtable): Call import_export_vtable if not
10532 -fvtable-thunks.
d11ad92e 10533 (build_vtable): Likewise.
5b605f68
MS
10534
10535 * decl2.c (import_export_vtable): Move logic for deciding the
10536 interface of a template class from here.
10537 (import_export_template): To here.
10538 (finish_vtable_vardecl): Call import_export_template before
10539 import_export_vtable.
10540
6060a796 10541Wed Jul 6 20:25:48 1994 Mike Stump <mrs@cygnus.com>
a3b49ccd
MS
10542
10543 * except.c (init_exception_processing): Setup interim_eh_hook to
10544 call lang_interim_eh.
10545 * except.c (do_unwind): Propagate throw object value across
10546 stack unwinding.
10547 * except.c (saved_throw_value): Used to hold the value of the object
10548 being thrown. It is always a reference to the real value.
10549 * except.c (expand_start_catch_block): Add handling for the
10550 value of the exception object.
10551 * except.c (expand_start_catch_block): Add handler for the handler,
10552 so that throws inside the handler go to the outer block.
d11ad92e 10553 * except.c (expand_end_catch_block): Likewise.
a3b49ccd
MS
10554 * parse.y (handler_args): Use parm instead, as the other doesn't yet
10555 handle references correctly.
10556
d11ad92e 10557Wed Jul 6 17:55:32 1994 Per Bothner <bothner@kalessin.cygnus.com>
a3b49ccd
MS
10558
10559 * decl2.c (mark_vtable_entries): If -ftable-thunks, set the
10560 vtable entry properly to abort.
10561
d11ad92e 10562Tue Jul 5 14:07:54 1994 Jason Merrill <jason@deneb.cygnus.com>
5b605f68
MS
10563
10564 * typeck.c (build_binary_op_nodefault): Downgrade division by zero
10565 errors to warnings.
10566
10567 * call.c (build_overload_call_real): Handle fnname being a list of
10568 functions.
10569 * typeck.c (build_x_function_call): Pass list of functions to
10570 build_overload_call, not just the name.
10571 * tree.c (count_functions): Complain when called for invalid
10572 argument.
10573
10574 * decl.c (grokdeclarator): Fix settings of TREE_STATIC, TREE_PUBLIC
10575 and DECL_EXTERNAL on static members and initialized const members.
10576 * decl2.c (grokfield): Reflect this change.
10577
d11ad92e 10578Fri Jul 1 09:35:51 1994 Jason Merrill <jason@deneb.cygnus.com>
9a0e77ba
JM
10579
10580 * parse.y (init): ANSI C++ does not forbid { }.
10581
d11ad92e 10582Thu Jun 30 00:35:22 1994 Jason Merrill <jason@deneb.cygnus.com>
9a0e77ba
JM
10583
10584 * decl2.c (lang_decode_option): Set warn_nonvdtor along with -Wall.
10585 warn_nonvdtor defaults to off.
10586
10587 * class.c (instantiate_type): Use comptypes rather than relying on
10588 types to satisfy ==.
10589
10590 * decl.c (start_function): Set DECL_DEFER_OUTPUT on all inlines that
10591 might be static.
10592
10593 * tree.c (build_cplus_new): Never build WITH_CLEANUP_EXPRs.
10594
10595 * decl.c (grok_reference_init): Deal with ADDR_EXPRs of TARGET_EXPRs.
10596
10597 * cvt.c (cp_convert): Pass 0 to with_cleanup_p arg of
10598 build_cplus_new.
10599
d11ad92e 10600Wed Jun 29 22:31:09 1994 Jason Merrill <jason@deneb.cygnus.com>
9a0e77ba
JM
10601
10602 * decl2.c (finish_file): Maybe consider static inlines multiple
10603 times, in case they reference each other.
10604
d11ad92e 10605Tue Jun 28 11:58:38 1994 Gerald Baumgartner <gb@cs.purdue.edu>
63718c49
GB
10606
10607 * class.c (finish_struct): Don't `cons_up_default_function's
10608 for signatures.
10609 (finish_struct): Handle an empty method_vec correctly.
10610
10611 * decl.c (grokdeclarator): Don't warn about a signature being
10612 empty in a signature pointer declaration if we only saw a
10613 forward declaration of the signature. Changed `warning's into
10614 `cp_warning's.
10615
10616 * sig.c (build_sigtable): Don't die if a null signature table
10617 constructor is returned.
10618 (build_signature_pointer_constructor): If the signature table
10619 constructor is null, the _sptr field is set to a null pointer
10620 and cast to the appropriate type. Make copies of all null
10621 pointers so that the type null_pointer_node doesn't get changed.
10622 (build_signature_table_constructor): Added comments.
10623
10624 * sig.c (build_signature_pointer_constructor): Complain if we
10625 try to assign to/initialize a signature pointer/reference of
10626 an undefined signature.
10627
d11ad92e 10628Mon Jun 27 14:05:16 1994 Gerald Baumgartner <gb@cs.purdue.edu>
63718c49
GB
10629
10630 * typeck2.c (store_init_value): Don't be pedantic about
10631 non-constant initializers of signature tables/pointers/references.
10632
d11ad92e 10633Fri Jun 24 16:49:41 1994 Gerald Baumgartner <gb@cs.purdue.edu>
63718c49
GB
10634
10635 * decl.c (grokdeclarator): If we are grokking an opaque typedef
10636 in a signature, don't complain about it begin static.
10637
6060a796 10638Wed Jun 29 16:44:45 1994 Mike Stump <mrs@cygnus.com>
21474714
MS
10639
10640 Fixes a problem of the this pointer being wrong in virtual calls to
10641 methods that are not overridden in more derived classes.
10642
10643 * class.c (fixup_vtable_delta): New routine. It will fixup the
10644 delta entries in vtables, wheever they need updating.
10645 * class.c (finish_struct): Call the new routine for all virtual
10646 bases, as they can have different offsets, than those used in base
10647 classes that we derive our vtable from.
10648
d11ad92e 10649Tue Jun 28 23:49:28 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
10650
10651 * typeck.c (build_binary_op): Use the types before default
10652 conversions in the error message.
10653
10654 * *.c: Use c_build_type_variant instead of build_type_variant where
10655 the type might be an array.
10656
10657 * call.c (build_method_call): Call build_type_variant and
10658 build_reference_type in the right order.
d11ad92e 10659 * decl.c (record_builtin_type): Likewise.
21474714 10660
d11ad92e 10661Wed Jun 29 16:58:53 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
10662
10663 * call.c (build_method_call): Call build_type_variant and
10664 build_reference_type in the right order.
d11ad92e 10665 * decl.c (record_builtin_type): Likewise.
21474714 10666
d11ad92e 10667Tue Jun 28 23:49:28 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
10668
10669 * typeck.c (build_binary_op): Use the types before default
10670 conversions in the error message.
10671
10672 * *.c: Use c_build_type_variant instead of build_type_variant where
10673 the type might be an array.
10674
d11ad92e 10675Sat Jun 25 11:50:54 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
10676
10677 * cvt.c (convert_to_reference): Try UDC's before doing the
10678 reinterpret_cast thang, though.
10679
d11ad92e 10680Fri Jun 24 01:24:01 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
10681
10682 * typeck.c (c_expand_return): Don't USE the return value location
10683 after we've expanded the jump.
10684
10685 * decl2.c (finish_file): Make sure DECL_SAVED_INSNS is not 0 before
10686 trying to write out an inline.
10687
10688 * cvt.c (build_up_reference): Also do address adjustment when the
10689 target type uses MI.
10690 (convert_to_reference): Try UDCs only after built-in conversions.
10691 (build_type_conversion_1): Don't play games with the argument to the
10692 method.
10693 (build_type_conversion): #if 0 out code for binding to reference.
10694
d11ad92e 10695Thu Jun 23 00:22:28 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465 10696
21474714
MS
10697 * decl2.c (finish_file): Use TREE_SYMBOL_REFERENCED to decide
10698 whether to emit inlines.
10699
a3203465
MS
10700 * decl.c (grokdeclarator): Set explicit_int for decls that just
10701 specify, say, 'long'.
10702
10703 * init.c (do_friend): Do overload C functions (or call pushdecl,
63718c49 10704 anyaway).
a3203465 10705
d11ad92e 10706Wed Jun 22 13:40:49 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
10707
10708 * cvt.c (build_up_reference): Don't call readonly_error.
10709 (convert_to_reference): Propagate const and volatile from expr to
10710 its type.
10711
10712 * tree.c (lvalue_p): Random CALL_EXPRs are not lvalues.
10713
10714 * cvt.c (build_up_reference): Break out WITH_CLEANUP_EXPR when
10715 creating a temporary.
10716 (convert_to_reference): Lose excessive and incorrect trickiness.
10717 (cp_convert): Call build_cplus_new with with_cleanup_p set.
10718
d11ad92e 10719 * typeck2.c (build_functional_cast): Likewise.
a3203465 10720
d11ad92e 10721Tue Jun 21 17:38:38 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
10722
10723 * decl.c (grokdeclarator): signed, unsigned, long and short all
10724 imply 'int'.
10725
10726 * decl.c (grokdeclarator): Allow "this is a type" syntax.
10727 (grok_reference_init): Simplify and fix.
10728
d11ad92e 10729Sun Jun 19 17:08:48 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
10730
10731 * decl.c (grokdeclarator): pedwarn about a typedef that specifies no
10732 type.
10733
d11ad92e 10734Sat Jun 18 04:16:50 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
10735
10736 * decl.c (start_function): Move TREE_PUBLIC and DECL_EXTERNAL
10737 tinkering to after call to pushdecl.
10738
d11ad92e 10739Fri Jun 17 14:48:28 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
10740
10741 * call.c (build_method_call): Handle destructors for non-aggregate
10742 types properly.
10743
d11ad92e 10744Thu Jun 16 16:48:05 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
10745
10746 * call.c (build_method_call): Make sure that the name given for the
10747 destructor matches the constructor_name of the instance.
10748
10749 * pt.c (do_function_instantiation): A non-extern instantiation
10750 overrides a later extern one.
d11ad92e 10751 (do_type_instantiation): Likewise.
a3203465 10752
d11ad92e 10753Wed Jun 15 19:34:54 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
10754
10755 * init.c (expand_aggr_init): Use TYPE_MAIN_VARIANT to get the
10756 unqualified array type.
10757
10758 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Tests whether NODE is a
10759 CONSTRUCTOR with no elements.
10760
10761 * decl.c (various): Lose empty_init_node.
10762 (finish_decl): Use EMPTY_CONSTRUCTOR_P, do the empty CONSTRUCTOR
10763 thing depending on the value of DECL_COMMON instead of
10764 flag_conserve_space, do the empty CONSTRUCTOR thing for types that
10765 don't have constructors, don't treat a real empty CONSTRUCTOR
10766 specially.
10767
10768 * typeck2.c (process_init_constructor): Don't treat empty_init_node
10769 specially.
10770
6060a796 10771Wed Jun 15 19:05:25 1994 Mike Stump <mrs@cygnus.com>
a3203465
MS
10772
10773 * class.c (override_one_vtable): Don't forget to merge in an old
10774 overrider when we wanted to reuse a vtable, but couldn't.
10775
d11ad92e 10776Wed Jun 15 15:03:16 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
10777
10778 * decl.c (start_decl): Put statics in common again.
10779
10780 * decl.c (grokdeclarator): Return NULL_TREE for an error rather than
10781 setting the type to error_mark_node.
10782
10783 * typeck.c (build_modify_expr): Build up a COMPOUND_EXPR for enum
10784 bitfield assignments.
10785
d11ad92e 10786Tue Jun 14 12:23:38 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10787
10788 * decl.c (grok_op_properties): Const objects can be passed by value.
10789
d11ad92e 10790Mon Jun 13 03:10:59 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10791
10792 * decl2.c (import_export_vtable): Force implicit instantiations to
10793 be interface_only when -fno-implicit-templates.
10794
10795 * decl.c (duplicate_decls): Redeclaring a class template name is an
10796 error.
10797
10798 * pt.c (end_template_decl): Call GNU_xref_decl for class templates.
10799 * xref.c (GNU_xref_decl): Support templates.
10800
d11ad92e 10801Sat Jun 11 17:09:05 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10802
10803 * decl.c (grok_op_properties): Split out checking for whether this
10804 function should suppress the default assignment operator.
d11ad92e 10805 * decl2.c (grok_function_init): Likewise.
f0e01782
MS
10806 (copy_assignment_arg_p): New function do do just that.
10807 Now considers virtual assignment operators that take a base as an
10808 argument to count as copy assignment operators.
10809
10810 * search.c (dfs_debug_mark): Lose checks for DWARF_DEBUG and
10811 TREE_ASM_WRITTEN, as they are redundant.
10812
10813 * pt.c (end_template_decl): Don't try to set DECL_CLASS_CONTEXT on a
10814 decl that has no LANG_SPECIFIC part.
10815 (do_type_instantiation): Force the debugging information for this
10816 type to be emitted.
10817
10818 * decl.c (start_decl): Clear up uses of various types of templates
10819 (say sorry for static data members, rather than "invalid template").
10820 (expand_static_init): Fix initialization of static data members of
10821 template classes.
10822
d11ad92e 10823Fri Jun 10 00:41:19 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10824
10825 * decl.c (grokdeclarator): Set DECL_CONTEXT on static data members.
10826
10827 * g++.c (main): Use -xc++-cpp-output for .i files.
10828
10829 * pt.c (tsubst): Give meaningful error about declaring template for
10830 a copy constructor which was not declared in the class template.
10831 (do_type_instantiation): Explicit instantiation before the class
10832 template is an error.
10833 (instantiate_template): Don't die if tsubst returns error_mark_node.
10834
d11ad92e 10835Thu Jun 9 19:04:59 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10836
10837 Don't synthesize the copy assignment operator if the one in a base
10838 class is pure virtual.
10839 * cp-tree.h (TYPE_HAS_ABSTRACT_ASSIGN_REF): New macro to indicate
10840 whether the type has a pure virtual copy assignment operator.
10841 * class.c (finish_base_struct): Don't generate the copy assignment
10842 operator if a base class has a pure virtual one.
10843 * decl.c (grok_op_properties): Add disabled code to set
10844 TYPE_HAS_ABSTRACT_ASSIGN_REF with comment pointing to where it is
10845 actually set.
10846 * decl2.c (grok_function_init): Set TYPE_HAS_ABSTRACT_ASSIGN_REF.
10847
10848 * decl2.c (import_export_vtable): Always treat template
10849 instantiations as if write_virtuals >= 2, and treat implicit
10850 instantiations as external if -fno-implicit-templates.
10851 (finish_file): Output all pending inlines if
10852 flag_keep_inline_functions.
10853
6060a796 10854Wed Jun 8 20:48:02 1994 Mike Stump <mrs@cygnus.com>
f0e01782
MS
10855
10856 * tree.c (layout_vbasetypes): Align virtual base classes inside
10857 complete objects, so that we don't core dump on machines such as
10858 SPARCs when we access members that require larger than normal
10859 alignments, such as a double. Also, we bump up the total alignment
10860 on the complete type, as necessary.
10861
d11ad92e 10862Wed Jun 8 16:18:14 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10863
10864 * gxxint.texi (Free Store): New section with code for examining
10865 cookie.
10866 (Limitations of g++): Remove operator delete entry, since it is no
10867 longer accurate. Fix access control entry.
10868
10869 * typeck.c (build_unary_op): Pedwarn about taking the address of or
10870 incrementing a cast to non-reference type.
10871 (build_modify_expr): Use convert instead of convert_force again.
10872
10873 * search.c (get_base_distance): Use IS_AGGR_TYPE_CODE to check for
10874 class type, not == RECORD_TYPE.
10875
10876 * decl.c (grokdeclarator): Cope with grokfndecl returning NULL_TREE.
10877
10878 * typeck2.c (report_case_error): #if 0 out.
10879 * lex.c (real_yylex): Lose RANGE.
d11ad92e 10880 * parse.y: Likewise.
f0e01782 10881
d11ad92e 10882Tue Jun 7 18:17:35 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10883
10884 * parse.y (simple_stmt, case ranges): Use ELLIPSIS instead of RANGE.
10885
d11ad92e 10886Mon Jun 6 19:39:57 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10887
10888 * typeck.c (build_c_cast): Don't shortcut conversions to the same
10889 type. Don't replace consts with their values here, since that's now
10890 done in cp_convert.
10891
10892 * cvt.c (cp_convert): When converting to bool, take
10893 integer_zero_node to false_node and all other INTEGER_CSTs to
10894 true_node.
10895 (build_type_conversion): Don't complain about multiple conversions
10896 to float if we're not really converting.
10897
d11ad92e 10898Fri Jun 3 02:10:56 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927 10899
f0e01782
MS
10900 Implement 'extern template class A<int>;' syntax for suppressing
10901 specific implicit instantiations.
10902 * cp-tree.h: Update prototypes for do_*_instantiation.
10903 * pt.c (do_pending_expansions): Don't compile 'extern' explicit
10904 instantiations.
10905 (do_function_instantiation): Set DECL_EXTERNAL on 'extern' explicit
10906 instantiations.
d11ad92e 10907 (do_type_instantiation): Likewise.
f0e01782
MS
10908 * parse.y (explicit_instantiation): Support 'extern template class
10909 A<int>;' syntax.
10910 * decl.c (start_function): Don't modify the settings of TREE_PUBLIC
10911 and DECL_EXTERNAL on explicit instantiations.
10912
a0a33927
MS
10913 * cvt.c (cp_convert): Replace constants with their values before
10914 converting.
f0e01782 10915 (cp_convert): Consistently use 'e' instead of 'expr'.
a0a33927 10916
d11ad92e 10917Thu Jun 2 03:53:30 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10918
10919 * typeck2.c (build_x_arrow): Resolve OFFSET_REFs first.
10920
d11ad92e 10921Wed Jun 1 18:57:35 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10922
10923 * typeck2.c (digest_init): Handle initializing a pmf with an
10924 overloaded method.
10925 * typeck.c (build_ptrmemfunc): Handle overloaded methods.
10926
10927 * decl.c (pushtag): Use build_decl to make TYPE_DECLs.
d11ad92e
MS
10928 (xref_defn_tag): Likewise.
10929 * pt.c (process_template_parm): Likewise.
10930 (lookup_template_class): Likewise.
10931 (push_template_decls): Likewise.
10932 (instantiate_class_template): Likewise.
10933 (create_nested_upt): Likewise.
a0a33927
MS
10934 * class.c (finish_struct): Don't try to set DECL_CLASS_CONTEXT on
10935 TYPE_DECLs.
10936
10937 * typeck.c (convert_arguments): Make sure type is not NULL before
10938 checking its TREE_CODE.
10939
6060a796 10940Wed Jun 1 17:40:39 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
10941
10942 * class.c (get_derived_offset): New routine.
10943 * class.c (finish_base_struct): Make sure we set BINFO_VTABLE and
10944 BINFO_VIRTUALS when we choose a new base class to inherit from.
10945 * class.c (modify_one_vtable): Use get_derived_offset to get the
10946 offset to the most base class subobject that we derived this binfo
10947 from.
10948 * class.c (finish_struct): Move code to calculate the
10949 DECL_FIELD_BITPOS of the vfield up, as we need might need it for
10950 new calls to get_derived_offset in modify_one_vtable.
10951
d11ad92e 10952Wed Jun 1 16:50:59 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10953
10954 * init.c (build_member_call): Use build_pointer_type instead of
10955 TYPE_POINTER_TO.
10956
d11ad92e 10957Wed Jun 1 11:11:15 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
a0a33927
MS
10958
10959 * decl.c (grokdeclarator): Make sure we have a DNAME set before we
10960 try to use it in an error.
10961
6060a796 10962Wed Jun 1 09:48:49 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
10963
10964 * typeck.c (convert_arguments, convert_for_initialization): Don't
10965 strip NOP_EXPRs, when we are converting to a reference.
10966
d11ad92e 10967Wed Jun 1 01:11:38 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10968
10969 * typeck.c (build_modify_expr): Don't dereference references when
10970 initializing them.
10971
10972 * decl2.c (grokfield): Don't check for grokdeclarator returning
10973 error_mark_node any more.
10974
10975 * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node.
10976 (start_method): Return void_type_node instead of error_mark_node.
10977
10978 * typeck.c (build_modify_expr): Resolve offset refs earlier.
10979
d11ad92e 10980Tue May 31 16:06:58 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10981
10982 * call.c (build_method_call): Resolve OFFSET_REFs in the object.
10983
10984 * typeck.c (build_modify_expr): Dereference references before trying
10985 to assign to them.
10986
10987 * call.c (build_method_call): Don't confuse type conversion
10988 operators with constructors.
10989 * typeck2.c (build_functional_cast): Just call build_c_cast if there
10990 was only one parameter.
10991 * method.c (build_typename_overload): Don't set
10992 IDENTIFIER_GLOBAL_VALUE on these identifiers.
10993 * decl.c (grok_op_properties): Warn about defining a type conversion
10994 operator that converts to a base class (or reference to it).
10995 * cvt.c (cp_convert): Don't try to use a type conversion operator
10996 when converting to a base class.
10997 (build_type_conversion_1): Don't call constructor_name_full on an
10998 identifier.
10999 * cp-tree.h (DERIVED_FROM_P): Should be self-explanatory.
11000
11001 * decl.c (start_decl): Don't complain that error_mark_node is an
11002 incomplete type.
11003 (finish_decl): Check for type == error_mark_node.
11004
d11ad92e 11005Mon May 30 23:38:55 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11006
11007 * decl.c (start_function): Set DECL_DEFER_OUTPUT on implicit
11008 instantiations and inline members.
11009
11010 * spew.c (yylex): Set looking_for_template if the next token is a '<'.
11011
11012 * lex.h: Declare looking_for_template.
11013
11014 * decl.c (lookup_name_real): Use looking_for_template to arbitrate
11015 between type and template interpretations of an identifier.
11016
d11ad92e 11017Sat May 28 04:07:40 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11018
11019 * pt.c (instantiate_template): Zero out p if we found a
11020 specialization.
11021
11022 * decl.c (grokdeclarator): Elucidate warning.
11023 (grokdeclarator): If pedantic AND -ansi, complain about long long.
11024
11025 Make explicit instantiation work reasonably. It is now appropriate
11026 to deprecate the use of -fexternal-templates.
11027 * pt.c (instantiate_template): Set DECL_TEMPLATE_SPECIALIZATION or
11028 DECL_IMPLICIT_INSTANTIATION on fndecl as appropriate.
11029 (end_template_instantiation): Reflect changes in USE_TEMPLATE
11030 semantics.
11031 (do_pending_expansions): if (!flag_implicit_templates) DECIDE(0);
11032 (do_function_instantiation): Don't set EXPLICIT_INST if
11033 flag_external_templates is set. Do set TREE_PUBLIC and DECL_EXTERN
11034 appropriately otherwise.
11035 (do_type_instantiation): Set interface info for class. Set
11036 TREE_PUBLIC and DECL_EXTERN for methods. Do none of this if
11037 flag_external_templates is set.
11038 * parse.y: Reflect changes in USE_TEMPLATE semantics.
11039 * decl2.c: New flag flag_implicit_templates determines whether or
11040 not implicit instantiations get emitted. This flag currently
11041 defaults to true, and must be true for -fexternal-templates to work.
11042 (finish_file): Consider flag_implement_inlines when
11043 setting DECL_EXTERNAL. Consider flag_implicit_templates when
11044 deciding whether or not to emit a static copy.
11045 * decl.c (start_function): Set TREE_PUBLIC and DECL_EXTERNAL
11046 properly for template instantiations.
11047 (start_method): Set DECL_IMPLICIT_INSTANTIATION on methods of a
11048 template class.
11049 * cp-tree.h (CLASSTYPE_USE_TEMPLATE): Change semantics.
11050 (DECL_USE_TEMPLATE): Parallel macro for FUNCTION and VAR_DECLs.
11051 (various others): Accessor macros for the above.
11052
d11ad92e 11053Fri May 27 13:57:40 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11054
11055 * typeck.c (build_binary_op_nodefault): Division by constant zero is
11056 an error.
11057
6060a796 11058Fri May 27 13:50:15 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
11059
11060 * class.c (override_one_vtable): Don't modify things we don't own.
11061
d11ad92e 11062Fri May 27 01:42:58 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11063
11064 * decl.c (finish_decl): Don't postpone processing the initializer of
11065 a decl with DECL_EXTERNAL set, and do call rest_of_compilation for a
11066 PUBLIC const at toplevel.
11067 (grokdeclarator): pedwarn about initializing non-const or
11068 non-integral statics in the class body.
11069
11070 * decl.c (pushtag): Don't try to set DECL_CLASS_CONTEXT on a
11071 TYPE_DECL.
11072
11073 * call.c (convert_harshness): Dereference reference on rhs before
11074 proceeding, properly grok passing const things to non-const
11075 references.
11076
11077 * typeck.c (build_unary_op): Soften error about taking the address
11078 of main() to a pedwarn.
11079
11080 * lex.c (default_copy_constructor_body): Unambiguously specify base
11081 classes (i.e. A((const class ::A&)_ctor_arg) ).
d11ad92e 11082 (default_assign_ref_body): Likewise.
a0a33927 11083
d11ad92e 11084Thu May 26 13:13:55 1994 Gerald Baumgartner <gb@mexican.cygnus.com>
a0a33927
MS
11085
11086 * decl2.c (grokfield): Don't complain about local signature
11087 method declaration without definition.
11088
11089 * call.c (convert_harshness): If `type' is a signature pointer
11090 and `parmtype' is a pointer to a signature, just return 0. We
11091 don't really convert in this case; it's a result of making the
11092 `this' parameter of a signature method a signature pointer.
11093
11094 * call.c (build_method_call): Distinguish calling the default copy
11095 constructor of a signature pointer/reference from a signature
11096 member function call.
11097
d11ad92e 11098Thu May 26 12:56:25 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11099
11100 * decl2.c (grokfield): Don't set TREE_PUBLIC on member function
11101 declarations.
11102
11103 * decl.c (duplicate_decls): A previous function declaration as
11104 static overrides a subsequent non-static definition.
11105 (grokdeclarator): Don't set TREE_PUBLIC on inline method
11106 declarations.
11107
d11ad92e 11108Wed May 25 14:36:38 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11109
11110 * decl.c (grokdeclarator): Handle initialization of static const
11111 members.
d11ad92e 11112 (finish_decl): Likewise.
a0a33927
MS
11113
11114 * decl2.c (grokfield): Allow initialization of static const members
11115 even when pedantic.
11116
11117 * decl2.c (grokfield): Deal with grokdeclarator returning
11118 error_mark_node.
11119
11120 * decl.c (grok_ctor_properties): Return 0 for A(A) constructor.
11121 (grokfndecl): Check the return value of grok_ctor_properties.
d11ad92e 11122 (start_method): Likewise.
a0a33927
MS
11123
11124 * parse.y (absdcl): Expand type_quals inline.
11125
d11ad92e 11126Tue May 24 19:10:32 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11127
11128 * decl.c (pushtag): Use IS_AGGR_TYPE rather than checking for a
11129 RECORD_TYPE.
11130
d11ad92e 11131Tue May 24 18:09:16 1994 Per Bothner <bothner@kalessin.cygnus.com>
a0a33927
MS
11132
11133 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
11134 always use "__vt_%s".
11135 * decl2.c (finish_vtable_vardecl): Don't consider abstract virtuals
11136 when looking for a "sentinal" method (to decide on emitting vtables).
11137 * decl2.c (finish_file): Scan all decls for thunks that need
11138 to be emitted.
11139 * decl2.c (finish_vtable_vardecl): Don't bother calling emit_thunk.
11140 * method.c (make_thunk): Use a more meaningful label. If there
11141 exists a matching top-level THUNK_DECL re-use it; otherwise
11142 create a new THUNK_DECL (and declare it).
11143 * method.c (emit_thunk): Make thunk external/public depending
11144 on the underlying method.
11145
d11ad92e 11146Tue May 24 00:22:04 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11147
11148 * pt.c (tsubst): Use lookup_name_nonclass to find guiding decls, not
11149 lookup_name.
11150
11151 * call.c (build_overload_call_real): Don't immediately pick a
11152 function which matches perfectly.
11153
11154 * decl.c (grokdeclarator): Use c_build_type_variant for arrays.
11155 (grokdeclarator): Warn about, and throw away, cv-quals attached to a
11156 reference (like 'int &const j').
11157
11158 * typeck.c (convert_arguments): Don't mess with i for methods.
11159 * call.c (build_method_call): Pass the function decl to
11160 convert_arguments.
11161
11162 * typeck.c (comp_ptr_ttypes_real): New function. Implements the
11163 checking for which multi-level pointer conversions are allowed.
11164 (comp_target_types): Call it.
11165 (convert_for_assignment): Check const parity on the ultimate target
11166 type, too. And make those warnings pedwarns.
11167
d11ad92e 11168Mon May 23 14:11:24 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11169
11170 * error.c (dump_char): Use TARGET_* for character constants.
11171
d11ad92e 11172Mon May 23 13:03:03 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
a0a33927
MS
11173
11174 * tree.c (debug_no_list_hash): Make static.
11175
11176 * decl.c (decls_match): Say the types don't match if newdecl ends up
11177 with a null type, after we've checked if olddecl does.
11178 (pushdecl): Check if the decls themselves match before looking for
11179 an extern redeclared as static, to avoid inappropriate and incorrect
11180 warnings.
11181
d11ad92e 11182Fri May 20 14:04:34 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
11183
11184 * decl.c (grokdeclarator): Make warning about duplicate short, etc.
11185 a pedwarn.
11186
11187 * typeck.c (build_c_cast): Casting to function or method type is an
11188 error.
11189
11190 * class.c (finish_struct): Make warning for anonymous class with no
11191 instances a pedwarn.
11192
11193 * Makefile.in (stamp-parse): Expect a s/r conflict.
11194
11195 * typeck.c (build_modify_expr): pedwarn about using a non-lvalue
11196 cast as an lvalue.
11197
d11ad92e 11198Thu May 19 12:08:48 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
11199
11200 * cvt.c (type_promotes_to): Make sure bool promotes to int rather
11201 than unsigned on platforms where sizeof(char)==sizeof(int).
11202
d11ad92e 11203Wed May 18 14:27:06 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
11204
11205 * typeck.c (build_c_cast): Tack on a NOP_EXPR when casting to
11206 another variant.
11207 (build_modify_expr): Don't strip NOP_EXPRs, and don't get tricky
11208 and treat them as lvalues.
11209
11210 * decl.c (shadow_tag): Do complain about forward declarations of
11211 enums and empty declarations.
11212 * parse.y: Don't complain about forward declarations of enums and
11213 empty declarations.
11214
11215 * typeck.c (convert_for_assignment): Complain about changing
11216 the signedness of a pointer's target type.
11217
11218 * parse.y (stmt): Move duplicated code for checking case values from
11219 here.
11220 * decl2.c (check_cp_case_value): To here. And add a call to
11221 constant_expression_warning.
11222
11223 * typeck.c (convert_for_assignment): Don't complain about assigning
11224 a negative value to bool.
11225
11226 * decl.c (init_decl_processing): Make bool unsigned.
11227
11228 * class.c (finish_struct): Allow bool bitfields.
11229
d11ad92e 11230Wed May 18 12:35:27 1994 Ian Lance Taylor <ian@tweedledumb.cygnus.com>
2986ae00
MS
11231
11232 * Make-lang.in (c++.install-man): Get g++.1 from $(srcdir)/cp.
11233
d11ad92e 11234Wed May 18 03:28:35 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
11235
11236 * cvt.c (build_type_conversion): Lose special handling of
11237 truthvalues.
11238
11239 * search.c (dfs_pushdecls): Improve shadowing warning.
11240
d11ad92e 11241Tue May 17 13:34:46 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
11242
11243 * init.c (build_delete): Throw away const and volatile on `this'.
11244
11245 * decl.c (finish_enum): Put the constants in TYPE_VALUES again,
11246 rather than the enumerators.
11247 (pushtag): s/cdecl/c_decl/g
11248
d11ad92e 11249Mon May 16 23:04:01 1994 Stephen R. van den Berg <berg@pool.informatik.rwth-aachen.de>
2986ae00 11250
63718c49
GB
11251 * cp/typeck.c (common_type): Attribute merging.
11252 (comp_types): Utilise COMP_TYPE_ATTRIBUTES macro.
2986ae00 11253
63718c49 11254 * cp/parse.y: Revamp attribute parsing.
2986ae00 11255
d11ad92e 11256Mon May 16 01:40:34 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
11257
11258 * decl.c (shadow_tag): Also check for inappropriate use of auto and
11259 register.
11260
11261 * method.c (build_overload_name): Clarify that the illegal case is a
11262 pointer or reference to array of unknown bound.
11263
11264 * error.c (dump_type_prefix): Print references to arrays properly.
11265
11266 * typeck.c (various): Be more helpful in pointer
11267 comparison diagnostics.
11268
11269 * tree.c (lvalue_p): MODIFY_EXPRs are lvalues again. Isn't this
11270 fun?
11271
11272 * parse.y: Also catch an error after valid stmts.
11273
11274 * search.c (dfs_init_vbase_pointers): Don't abort because `this' is
11275 const.
11276
11277 * typeck.c (convert_for_initialization): If call to
11278 convert_to_reference generated a diagnostic, print out the parm
11279 number and function decl if any.
11280
11281 * errfn.c (cp_thing): Check atarg1 to determine whether or not we're
11282 specifying a line, not atarg.
11283
11284 * tree.c (build_cplus_method_type): Always make `this' const.
11285
11286 * decl2.c (grokclassfn): If -fthis-is-variable and this function is
11287 a constructor or destructor, make `this' non-const.
11288
11289 * typeck.c (build_modify_expr): Don't warn specially about
11290 assignment to `this' here anymore, since it will be caught by the
11291 usual machinery.
11292
11293 * various: Disallow specific GNU extensions (variable-size arrays,
11294 etc.) when flag_ansi is set, not necessarily when pedantic is set,
11295 so that people can compile with -pedantic-errors for tighter const
11296 checking and such without losing desirable extensions.
11297
11298 * typeck2.c (build_functional_cast): Call build_method_call with
11299 LOOKUP_PROTECT.
11300 (process_init_constructor): Only process FIELD_DECLs.
11301
11302 * decl.c (finish_decl): Also force static consts with no explicit
11303 initializer that need constructing into the data segment.
11304
11305 * init.c (build_delete): Undo last patch, as it interferes with
11306 automatic cleanups.
11307
d11ad92e 11308Sat May 14 01:59:31 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
11309
11310 * call.c, class.h, cp-tree.h, cvt.c, decl2.c: Lose old overloading
11311 code.
11312
11313 * init.c (build_delete): pedwarn about using plain delete to delete
11314 an array.
11315
d11ad92e 11316Fri May 13 16:45:07 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
11317
11318 * typeck.c (comp_target_types): Be more helpful in contravariance
11319 warnings, and make them pedwarns.
11320
11321 * decl.c (grokdeclarator): Use decl_context to decide whether or not
11322 this is an access declaration.
11323
11324 * class.c (finish_struct_bits): Set TYPE_HAS_INT_CONVERSION if it
11325 has a conversion to enum or bool, too.
11326
6060a796 11327Fri May 13 16:31:27 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
11328
11329 * method.c (emit_thunk): Make declaration for
11330 current_call_is_indirect local (needed for hppa).
11331
d11ad92e 11332Fri May 13 16:16:37 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
11333
11334 * pt.c (uses_template_parms): Grok BOOLEAN_TYPE.
d11ad92e 11335 (tsubst): Likewise.
2986ae00 11336
6060a796 11337Fri May 13 16:23:32 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
11338
11339 * pt.c (tsubst): If there is already a function for this expansion,
11340 use it.
d11ad92e 11341 * pt.c (instantiate_template): Likewise.
2986ae00 11342
d11ad92e 11343Fri May 13 10:30:42 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
2986ae00
MS
11344
11345 * parse.y (implicitly_scoped_stmt, simple_stmt case): Use
11346 kept_level_p for MARK_ENDS argument to expand_end_bindings, to avoid
11347 generating debug info for unemitted symbols on some systems.
11348
11349 * cp-tree.h (build_static_cast, build_reinterpret_cast,
11350 build_const_cast): Add declarations.
11351
6060a796 11352Fri May 13 09:50:31 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
11353
11354 * search.c (expand_indirect_vtbls_init): Fix breakage from Apr 27
11355 fix. We now try get_binfo, and if that doesn't find what we want,
11356 we go back to the old method, which still sometimes fails.
11357
d11ad92e 11358Fri May 13 01:43:18 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
11359
11360 * parse.y (initdcl): Call cplus_decl_attributes on the right
11361 variable.
11362 * decl2.c (cplus_decl_attributes): Don't call decl_attributes for
11363 void_type_node.
11364
11365 * typeck.c (build_binary_op_nodefault): Change result_type for
11366 comparison ops to bool.
11367 (build_binary_op): Convert args of && and || to bool.
11368 * cvt.c (build_default_binary_type_conversion): Convert args of &&
11369 and || to bool.
11370 (build_default_unary_type_conversion): Convert arg of ! to bool.
11371 (type_promotes_to): bool promotes to int.
11372
6060a796 11373Fri May 13 01:43:18 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
11374
11375 Implement the new builtin `bool' type.
11376 * typeck.c (build_binary_op_nodefault): Convert args of && and || to
11377 bool.
11378 (build_unary_op): Convert arg of ! to bool.
11379 * parse.y: Know true and false. Use bool_truthvalue_conversion.
11380 * method.c (build_overload_value): Know bool.
d11ad92e 11381 (build_overload_name): Likewise.
2986ae00
MS
11382 * lex.c (init_lex): Set up RID_BOOL.
11383 * gxx.gperf: Add bool, true, false.
11384 * error.c (*): Know bool.
11385 * decl.c (init_decl_processing): Set up bool, true, false.
11386 * cvt.c (cp_convert): Handle conversion to bool.
d11ad92e 11387 (build_type_conversion): Likewise.
2986ae00
MS
11388 * *.c: Accept bool where integers and enums are accepted (use
11389 INTEGRAL_CODE_P macro).
11390
d11ad92e 11391Thu May 12 19:13:54 1994 Richard Earnshaw <rwe11@cl.cam.ac.uk>
8de7634e
RE
11392
11393 * g++.c: Use #ifdef for __MSDOS__, not #if.
11394
6060a796 11395Thu May 12 18:05:18 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
11396
11397 * decl2.c (lang_f_options): Handle -fshort-temps. -fshort-temps
11398 gives old behavior , and destroys temporaries earlier. Default
11399 behavior now conforms to the ANSI working paper.
11400
d11ad92e 11401Thu May 12 14:45:35 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
11402
11403 * typeck.c (build_modify_expr): Understand MODIFY_EXPR as an lvalue.
11404 Use convert_force to convert the result of a recursive call when we
11405 are dealing with a NOP_EXPR. Don't automatically wrap MODIFY_EXPRs
11406 in COMPOUND_EXPRs any more.
11407 (various): Lose pedantic_lvalue_warning.
11408 (unary_complex_lvalue): Understand MODIFY_EXPR.
11409
11410 * cvt.c (convert_to_reference): Allow DECL to be error_mark_node if
11411 we don't know what we're initializing.
11412
d11ad92e 11413Wed May 11 01:59:36 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
11414
11415 * cvt.c (convert_to_reference): Modify to use convtype parameter.
11416 Only create temporaries when initializing a reference, not when
11417 casting.
11418 (cp_convert): New main function.
11419 (convert): Call cp_convert.
11420 * cvt.c, decl.c, typeck.c: Fix calls to convert_to_reference.
11421 * cp-tree.h (CONV_*): New constants used by conversion code for
11422 selecting conversions to perform.
11423
11424 * tree.c (lvalue_p): MODIFY_EXPRs are no longer lvalues.
11425
11426 * typeck.c (build_{static,reinterpret,const_cast): Stubs that just
11427 call build_c_cast.
11428 * parse.y: Add {static,reinterpret,const}_cast.
d11ad92e 11429 * gxx.gperf: Likewise.
a4443a08
MS
11430
11431 * typeck.c (common_type): Allow methods with basetypes of different
11432 UPTs.
11433 (comptypes): Deal with UPTs.
11434 (build_modify_expr): Wrap all MODIFY_EXPRs in a COMPOUND_EXPR.
11435
11436 * pt.c (end_template_decl): Check for multiple definitions of member
11437 templates.
11438
11439 * call.c (build_method_call): Complain about calling an abstract
11440 virtual from a constructor.
11441
11442 * typeck.c (pointer_int_sum): Check for the integer operand being 0
11443 after checking the validity of the pointer operand.
11444
11445 * typeck2.c (digest_init): Pedwarn about string initializer being
11446 too long.
11447
d11ad92e 11448Tue May 10 12:10:28 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
11449
11450 * decl.c (push_overloaded_decl): Only throw away a builtin if the
11451 decl in question is the artificial one.
11452
11453 * parse.y (simple_stmt, switch): Use implicitly_scoped_stmt because
11454 expand_{start,end}_case cannot happen in the middle of a block.
11455
11456 * cvt.c (build_type_conversion_1): Use convert again.
11457
d11ad92e 11458Tue May 10 11:52:04 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
a4443a08
MS
11459
11460 * typeck2.c (digest_init): Make sure we check for signed and
11461 unsigned chars as well when warning about string initializers.
11462
11463 * init.c (emit_base_init): Check if there's a DECL_NAME on the
11464 member before trying to do an initialization for it.
11465
6060a796 11466Tue May 10 11:34:37 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
11467
11468 * except.c: Don't do anything useful when cross compiling.
11469
d11ad92e 11470Tue May 10 03:04:13 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
11471
11472 * decl.c (duplicate_decls): Fix up handling of builtins yet again.
d11ad92e 11473 (push_overloaded_decl): Likewise.
a4443a08
MS
11474
11475 * cvt.c (convert): Don't look for void type conversion.
11476
d11ad92e 11477Mon May 9 18:05:41 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
11478
11479 * init.c (do_friend): Only do a pushdecl for friends, not
11480 pushdecl_top_level.
11481
d11ad92e 11482Mon May 9 13:36:34 1994 Jim Wilson <wilson@sphagnum.cygnus.com>
a4443a08
MS
11483
11484 * decl.c (lookup_name_current_level): Put empty statement after
11485 the label OUT to make the code valid C.
11486
d11ad92e 11487Mon May 9 12:20:57 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
11488
11489 * typeck.c (build_binary_op_nodefault): Only complain about
11490 comparing void * and a function pointer if void * is smaller.
11491
d11ad92e 11492Sun May 8 01:29:13 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
11493
11494 * decl.c (lookup_name_current_level): Move through temporary binding
11495 levels.
11496
11497 * parse.y (already_scoped_stmt): Revive.
11498 (simple_stmt): Use it again.
11499
11500 * decl.c (poplevel): Always call poplevel recursively if we're
11501 dealing with a temporary binding level.
11502
6060a796 11503Sat May 7 10:52:28 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
11504
11505 * decl.c (finish_decl): Make sure we run cleanups for initial values
11506 of decls. Cures memory leak.
d11ad92e
MS
11507 * decl.c (expand_static_init): Likewise for static variables.
11508 * decl2.c (finish_file): Likewise for globals.
a4443a08 11509
d11ad92e 11510Sat May 7 03:57:44 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
11511
11512 * typeck.c (commonparms): Don't complain about redefining default
11513 args.
11514
11515 * decl.c (duplicate_decls): Don't complain twice about conflicting
11516 function decls.
11517 (decls_match): Don't look at default args.
11518 (redeclaration_error_message): Complain about redefining default
11519 args.
11520
11521 * call.c (build_overload_call_real): Also deal with guiding
11522 declarations coming BEFORE the template decl.
11523
11524 * pt.c (unify): Allow different parms to have different
11525 cv-qualifiers.
11526 (unify): Allow trivial conversions on non-template parms.
11527
d11ad92e 11528Fri May 6 03:53:23 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
11529
11530 * pt.c (tsubst): Support OFFSET_TYPEs.
d11ad92e 11531 (unify): Likewise.
a4443a08
MS
11532
11533 * decl2.c (finish_decl_parsing): Call push_nested_class with a type.
11534
11535 * init.c (build_offset_ref): Fix error message.
d11ad92e 11536 * search.c (lookup_field): Likewise.
a4443a08
MS
11537
11538 * call.c (build_scoped_method_call): Pass binfo to
11539 build_method_call.
d11ad92e 11540 * typeck.c (build_object_ref): Likewise.
a4443a08
MS
11541
11542 * typeck2.c (binfo_or_else): Don't return a _TYPE.
11543
11544 * class.c (finish_struct): Don't complain about re-use of inherited
11545 names or shadowing of type decls.
d11ad92e 11546 * decl.c (pushdecl_class_level): Likewise.
a4443a08
MS
11547
11548 * decl.c (finish_enum): Set the type of all the enums.
11549
11550 * class.c (finish_struct): Don't get confused by access decls.
11551
11552 * cp-tree.h (TYPE_MAIN_DECL): New macro to get the _DECL for a
11553 _TYPE. You can stop using TYPE_NAME for that now.
11554
11555 * parse.y: Lose doing_explicit (check $0 instead).
11556 * gxx.gperf: 'template' now has a RID.
d11ad92e 11557 * lex.h (rid): Likewise.
a4443a08
MS
11558 * lex.c (init_lex): Set up the RID for 'template'.
11559
11560 * parse.y (type_specifier_seq): typed_typespecs or
11561 nonempty_type_quals. Use it.
11562 (handler_args): Fix bogus syntax.
11563 (raise_identifier{,s}, optional_identifier): Lose.
11564 * except.c (expand_start_catch_block): Use grokdeclarator to parse
11565 the catch variable.
11566 (init_exception_processing): The second argument to
11567 __throw_type_match is ptr_type_node.
11568
d11ad92e 11569 Fri May 6 07:18:54 1994 Chip Salzenberg <chip@fin.uucp>
a4443a08
MS
11570
11571 [ change propagated from c-decl.c of snapshot 940429 ]
11572 * cp/decl.c (finish_decl): Setting asmspec_tree should not
11573 zero out the old RTL.
11574
6060a796 11575Fri May 6 01:25:38 1994 Mike Stump <mrs@cygnus.com>
8d2733ca
MS
11576
11577 Add alpha exception handling support to the compiler.
11578 Quick and dirty backend in except.c.
11579
11580 * cp/*: Remove most remnants of old exception handling support.
11581 * decl.c (finish_function): Call expand_exception_blocks to put
11582 the exception hanlding blocks at the end of the function.
11583 * dec.c (hack_incomplete_structures): Make sure expand_decl_cleanup
11584 comes after expand_decl_init.
11585 * except.c: Reimplementation.
11586 * expr.c (cplus_expand_expr): Handle THROW_EXPRs.
11587 * lex.c (init_lex): Always have catch, try and throw be reserved
11588 words, so that we may always parse exception handling.
11589 * parse.y: Cleanup to support new interface into exception handling.
11590 * tree.def (THROW_EXPR): Add.
11591
d11ad92e 11592Thu May 5 17:35:37 1994 Jason Merrill <jason@deneb.cygnus.com>
8d2733ca
MS
11593
11594 * parse.y (simple_stmt, for loops): Use implicitly_scoped_stmt.
11595 (various): Lose .kindof_pushlevel and partially_scoped_stmt.
11596
d11ad92e 11597Thu May 5 16:17:27 1994 Kung Hsu <kung@mexican.cygnus.com>
8d2733ca
MS
11598
11599 * parse.y (already_scoped_stmt): move expand_end_binding() to
11600 fix the unmatched LBB/LBE in stabs.
11601
d11ad92e 11602Thu May 5 14:36:17 1994 Jason Merrill <jason@deneb.cygnus.com>
8d2733ca
MS
11603
11604 * decl.c (set_nested_typename): Set TREE_MANGLED on the new
11605 identifiers.
11606 (pushdecl): Check TREE_MANGLED.
d11ad92e 11607 (xref_tag): Likewise.
8d2733ca
MS
11608 * cp-tree.h (TREE_MANGLED): This identifier is a
11609 DECL_NESTED_TYPENAME (named to allow for future use to denote
11610 mangled function names as well).
11611
11612 Implement inconsistency checking specified in [class.scope0].
11613 * decl.c (lookup_name_real): Don't set ICV here after all.
11614 (finish_enum): Also set the type of the enumerators themselves.
11615 (build_enumerator): Put the CONST_DECL in the list instead of its
11616 initial value.
11617 (pushdecl_class_level): Check inconsistent use of a name in the
11618 class body.
11619 * class.c (finish_struct): Check inconsistent use of a name in the
11620 class body. Don't set DECL_CONTEXT on types here anymore.
11621 * parse.y (qualified_type_name): Note that the identifier has now
11622 been used (as a type) in the class body.
11623 * lex.c (do_identifier): Note that the identifier has now been used
11624 (as a constant) in the class body.
11625 * error.c (dump_decl): Print type and enum decls better.
11626
d11ad92e 11627Thu May 5 09:35:35 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
700f8a87
MS
11628
11629 * typeck.c (build_modify_expr): Warn about assignment to `this'.
11630
d11ad92e 11631Wed May 4 15:55:49 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11632
11633 * init.c (build_delete): Use the global operator delete when
11634 requested.
11635
11636 * decl.c (lookup_name_real): If we find the type we're looking in a
11637 base class while defining a class, set IDENTIFIER_CLASS_VALUE for
11638 the type.
11639
11640 * class.c (finish_struct): Remove a couple of dependencies on
11641 language linkage.
11642
11643 * decl.c (pushtag): Classes do nest in extern "C" blocks.
11644 (pushdecl): Only set DECL_NESTED_TYPENAME on the canonical one for
11645 the type.
11646 (pushtag): Remove another dependency on the language linkage.
11647
11648 * lex.c (cons_up_default_function): Don't set DECL_CLASS_CONTEXT to
11649 a const-qualified type.
11650
11651 * decl.c (push_overloaded_decl): Throw away built-in decls here.
11652 (duplicate_decls): Instead of here.
11653
d11ad92e 11654Wed May 4 15:27:40 1994 Per Bothner <bothner@kalessin.cygnus.com>
700f8a87
MS
11655
11656 * typeck.c (get_member_function_from_ptrfunc): Do The Right
11657 Thing (I hope) if we're using thunks.
11658
d11ad92e 11659Wed May 4 13:52:38 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11660
11661 * parse.y (specialization): aggr template_type_name ';'.
11662 (named_class_head_sans_basetype): Use it.
d11ad92e 11663 (explicit_instantiation): Likewise.
700f8a87
MS
11664 (tmpl.2): Revert.
11665
11666 * cvt.c (build_type_conversion_1): Use convert_for_initialization,
11667 rather than convert, to do conversions after the UDC.
11668
11669 * cp-tree.h (SHARED_MEMBER_P): This member is shared between all
11670 instances of the class.
11671
11672 * search.c (lookup_field): If the entity found by two routes is the
11673 same, it's not ambiguous.
11674
d11ad92e 11675Wed May 4 12:10:00 1994 Per Bothner <bothner@kalessin.cygnus.com>
700f8a87
MS
11676
11677 * decl.c (lookup_name_real): Check for a NULL TREE_VALUE,
11678 to prevent the compiler from crashing ...
11679
d11ad92e 11680Wed May 4 11:19:45 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11681
11682 * call.c (build_method_call): If we don't have an object, check
11683 basetype_path to figure out where to look up the function.
11684
11685 * typeck.c (convert_for_initialization): Pass TYPE_BINFO (type) to
11686 build_method_call in case exp is NULL_TREE.
11687
d11ad92e 11688Tue May 3 16:02:53 1994 Per Bothner <bothner@kalessin.cygnus.com>
700f8a87
MS
11689
11690 Give a vtable entries a unique named type, for the sake of gdb.
11691 * class.c (build_vtable_entry): The addres of a thunk now has
11692 type vtable_entry_type, not ptr_type_node.
11693 * method.c (make_thunk): Fix type of THUNK_DECL.
11694 * class.c (add_virtual_function, override_one_vtable): Use
11695 vfunc_ptr_type_node, instead of ptr_type_node.
11696 * cp-tree.h (vfunc_ptr_type_node): New macro.
11697 * decl.c (init_decl_processing): Make vtable_entry_type
11698 be a unique type of pointer to a unique function type.
11699
d11ad92e 11700Tue May 3 09:20:44 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11701
11702 * parse.y (do_explicit): Sets doing_explicit to 1.
11703 (explicit_instantiation): Use do_explicit rather than TEMPLATE
11704 directly, add "do_explicit error" rule.
11705 (datadef): Set doing_explicit to 0 after an explicit instantiation.
11706 (tmpl.2): Don't instantiate if we see a ';' unless we're doing an
11707 explicit instantiation.
11708 (named_class_head_sans_basetype): Remove aggr template_type_name
11709 ';' again.
11710
d11ad92e 11711Mon May 2 23:17:21 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11712
11713 * search.c (lookup_nested_tag): Lose.
11714
11715 * decl2.c (grokfield): Set DECL_CONTEXT on TYPE_DECLs.
11716 (lookup_name_nonclass): Lose.
11717
11718 * decl.c (poplevel_class): Add force parameter.
11719 (lookup_name_real): Fix handling of explicit scoping which specifies
11720 a class currently being defined. Add 'nonclass' argument.
11721 (lookup_name, lookup_name_nonclass): Shells for lookup_name_real.
11722
11723 * class.c (finish_struct): Don't unset IDENTIFIER_CLASS_VALUEs here.
11724 (popclass): Force clearing of IDENTIFIER_CLASS_VALUEs if we're being
11725 called from finish_struct.
11726
d11ad92e 11727Mon May 2 19:06:21 1994 Per Bothner <bothner@kalessin.cygnus.com>
700f8a87
MS
11728
11729 * decl.c (init_decl_processing), cp-tree.h: Removed memptr_type.
11730 (It seeems redundant, given build_ptrmemfunc_type.)
11731 * typeck.c (get_member_function_from_ptrfunc), gc.c (build_headof,
11732 build_classof): Use vtable_entry_type instead of memptr_type.
11733 * method.c (emit_thunk): Call poplevel with functionbody==0
11734 to prevent DECL_INITIAL being set to a BLOCK.
11735
d11ad92e 11736Mon May 2 15:02:11 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11737
11738 * parse.y (named_class_head_sans_basetype): Add "aggr
11739 template_type_name ';'" rule for forward declaration of
11740 specializations.
11741
d11ad92e 11742Mon May 2 15:02:11 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11743
11744 * class.c (instantiate_type): Deal with pmf's.
bfef964b
JM
11745
11746 * Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since
11747 stamp-objlist does.
700f8a87 11748
bfef964b
JM
11749 * Makefile.in (../cc1plus): Depend on OBJDEPS.
11750 (OBJDEPS): Dependency version of OBJS.
11751
d11ad92e 11752Mon May 2 12:51:31 1994 Kung Hsu <kung@mexican.cygnus.com>
700f8a87
MS
11753
11754 * search.c (dfs_debug_mark): unmark TYPE_DECL_SUPPRESS_DEBUG, not
11755 DECL_IGNORED_P.
11756
d11ad92e 11757Fri Apr 29 12:29:56 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11758
11759 * class.c (finish_struct): Clear out memory of local tags. And
11760 typedefs.
11761
11762 * decl2.c (grokclassfn): Don't set DECL_CONTEXT to a cv-qualified
11763 type.
11764 * search.c (get_matching_virtual): Be more helpful in error message.
11765
11766 * *: Use DECL_ARTIFICIAL (renamed from DECL_SYNTHESIZED).
11767
11768 * lex.c (default_assign_ref_body): Expect TYPE_NESTED_NAME to work.
d11ad92e 11769 (default_copy_constructor_body): Likewise.
700f8a87
MS
11770
11771 * class.c (finish_struct): Don't gratuitously create multiple decls
11772 for nested classes.
11773
d11ad92e 11774Thu Apr 28 23:39:38 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11775
11776 Avoid clobbering the arg types of other functions when reverting
11777 static member functions.
11778 * decl.c (revert_static_member_fn): Rearrange arguments, don't
11779 require values for 'fn' and 'argtypes', add warning to comment
11780 above.
11781 (decls_match): Rearrange arguments in call to rsmf.
11782 (grok_op_properties): Don't pass values for fn and argtypes.
11783 * pt.c (instantiate_template): Don't pass values for fn and argtypes.
11784
d11ad92e 11785Thu Apr 28 16:29:11 1994 Doug Evans <dje@canuck.cygnus.com>
15fa00e9
DE
11786
11787 * Make-lang.in (cc1plus): Depend on stamp-objlist.
11788 * Makefile.in (BC_OBJS): Delete.
700f8a87
MS
11789 (OBJS): Cat ../stamp-objlist to get language independent files.
11790 Include ../c-common.o.
15fa00e9
DE
11791 (../cc1plus): Delete reference to BC_OBJS.
11792
d11ad92e 11793Thu Apr 28 02:12:08 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
11794
11795 * search.c (compute_access): No really, deal with static members
11796 properly. Would I lie to you?
11797
11798 Implement lexical hiding of function declarations.
11799 * pt.c (tsubst): Use lookup_name to look for function decls to guide
11800 instantiation.
11801 * method.c (build_opfncall): Use lookup_name_nonclass to look for
11802 non-member functions.
11803 * init.c (do_friend): Use lookup_name_nonclass to look for
11804 functions.
11805 * error.c (ident_fndecl): Use lookup_name to look for functions.
11806 * decl2.c (lookup_name_nonclass): New function, skips over
11807 CLASS_VALUE.
11808 * decl.c (struct binding_level): Lose overloads_shadowed field.
11809 (poplevel): Don't deal with overloads_shadowed.
11810 (push_overloaded_decl): Do lexical hiding for functions.
11811 * class.c (instantiate_type): Don't check non-members if we have
11812 members with the same name.
11813 * call.c (build_method_call): Use lookup_name_nonclass instead of
11814 IDENTIFIER_GLOBAL_VALUE to check for non-member functions.
d11ad92e 11815 (build_overload_call_real): Likewise.
700f8a87
MS
11816
11817 * decl.c (duplicate_decls): Check for ambiguous overloads here.
11818 (push_overloaded_decl): Instead of here.
11819
11820 * decl.c (pushdecl): Back out Chip's last change.
11821
11822 * decl.c (grok_op_properties): operators cannot be static members.
11823
11824 * cp-tree.h (DECL_SYNTHESIZED): DECL_SOURCE_LINE == 0
11825 (SET_DECL_SYNTHESIZED): DECL_SOURCE_LINE = 0
11826 * lex.c (cons_up_default_function): Use SET_DECL_SYNTHESIZED.
11827
11828 * method.c (do_inline_function_hair): Don't put friends of local
11829 classes into global scope, either.
11830
11831 * typeck2.c (build_functional_cast): Don't look for a function call
11832 interpretation.
11833
6060a796 11834Thu Apr 28 15:19:46 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
11835
11836 * cp-tree.h: disable use of backend EH.
11837
d11ad92e 11838Wed Apr 27 21:01:24 1994 Doug Evans <dje@canuck.cygnus.com>
15fa00e9
DE
11839
11840 * Make-lang.in (c++.distdir): mkdir tmp/cp first.
11841 * Makefile.in (INCLUDES): Move definition to same place as
11842 parent makefile.
11843 (ALLOCA): Define.
11844 (OLDAR_FLAGS): Delete.
11845 (OLDCC): Define.
11846 (DIR): Delete.
11847 (CLIB): Define.
11848 (####site): Delete.
11849 (SUBDIR_USE_ALLOCA): Don't use ALLOCA if compiling with gcc.
11850
d11ad92e 11851Wed Apr 27 19:10:04 1994 Kung Hsu <kung@mexican.cygnus.com>
39211cd5
MS
11852
11853 * decl.c (xref_tag): not to use strstr(), it's not available on
11854 all platforms.
11855
d11ad92e 11856Wed Apr 27 18:10:12 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11857
11858 * class.c (finish_struct): Resolve yet another class/pmf confusion.
11859
11860 * call.c (build_overload_call_real): Don't take the single-function
11861 shortcut if we're dealing with an overloaded operator.
11862
6060a796 11863Wed Apr 27 17:35:37 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
11864
11865 * search.c (get_base_distance): Search the virtual base class
11866 binfos, incase someone wants to convert to a real virtual base
11867 class.
11868 * search.c (expand_indirect_vtbls_init): Use convert_pointer_to_real
11869 instead of convert_pointer_to, as it now will work.
11870
d11ad92e 11871Wed Apr 27 15:36:49 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11872
11873 * cvt.c (convert_to_reference): Don't complain about casting away
11874 const and volatile.
11875
11876 * typeck.c (build_unary_op): References are too lvalues.
11877
6060a796 11878Wed Apr 27 13:58:05 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
11879
11880 * class.c (override_one_vtable): We have to prepare_fresh_vtable
11881 before we modify it, not after, also, we cannot reuse an old vtable,
11882 once we commit to a new vtable. Implement ambiguous overrides in
11883 virtual bases as abstract. Hack until we make the class
11884 ill-formed.
11885
d11ad92e 11886Wed Apr 27 01:17:08 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11887
11888 * parse.y (unary_expr): Expand new_placement[opt] and
11889 new_initializer[opt] inline.
11890
11891 * search.c (lookup_fnfields): Don't throw away the inheritance
11892 information here, either.
11893 (compute_access): Handle static members properly.
11894
11895 * init.c (build_member_call): Always set basetype_path, and pass it
11896 to lookup_fnfields.
11897
11898 * search.c (lookup_field): Deal properly with the case where
11899 xbasetype is a chain of binfos; don't throw away the inheritance
11900 information.
11901 (compute_access): protected_ok always starts out at 0.
11902
11903 * init.c (resolve_offset_ref): Don't cast `this' to the base type
11904 until we've got our basetype_path.
11905
11906 * cp-tree.h (IS_OVERLOAD_TYPE): aggregate or enum.
11907
11908 * cvt.c (build_up_reference): Use build_pointer_type rather than
11909 TYPE_POINTER_TO.
11910
11911 * call.c (convert_harshness_ansi): Call type_promotes_to for reals
11912 as well.
11913
11914 * cvt.c (type_promotes_to): Retain const and volatile, add
11915 float->double promotion.
11916
11917 * decl.c (grokdeclarator): Don't bash references to arrays into
11918 references to pointers in function parms. Use type_promotes_to.
11919
6060a796 11920Tue Apr 26 23:44:36 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
11921
11922 Finish off Apr 19th work.
11923
11924 * class.c (finish_struct_bits): Rename has_abstract_virtuals to
11925 might_have_abstract_virtuals.
11926 * class.c (strictly_overrides, override_one_vtable,
11927 merge_overrides): New routines to handle virtual base overrides.
11928 * class.c (finish_struct): Call merge_overrides to handle overrides
11929 in virtual bases.
11930
d11ad92e 11931Tue Apr 26 12:45:53 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11932
11933 * typeck.c (build_function_call): Call build_function_call_real with
11934 LOOKUP_NORMAL.
11935
11936 * *: Don't deal with TYPE_EXPRs.
11937
11938 * tree.c (lvalue_p): If the type of the expression is a reference,
11939 it's an lvalue.
11940
11941 * cvt.c (convert_to_reference): Complain about passing const
11942 lvalues to non-const references.
11943 (convert_from_reference): Don't arbitrarily throw away const and
11944 volatile on the target type.
11945
11946 * parse.y: Simplify and fix rules for `new'.
11947
11948 * decl.c (grok_op_properties): operator void is illegal.
11949
d11ad92e 11950Mon Apr 25 02:36:28 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11951
11952 * parse.y (components): Anonymous bitfields can still have declspecs.
11953
11954 * decl.c (pushdecl): Postpone handling of function templates like we
11955 do C functions.
11956
11957 * search.c (expand_indirect_vtbls_init): Fix infinite loop when
11958 convert_pointer_to fails.
11959
11960 * call.c (compute_conversion_costs_ansi): A user-defined conversion
11961 by itself is better than that UDC followed by standard conversions.
11962 Don't treat integers and reals specially.
11963
11964 * cp-tree.h: Declare flag_ansi.
11965
11966 * typeck.c (c_expand_return): pedwarn on return in void function
11967 even if the expression is of type void.
11968 (build_c_cast): Don't do as much checking for casts to void.
11969 (build_modify_expr): pedwarn about array assignment if this code
11970 wasn't generated by the compiler.
11971
11972 * tree.c (lvalue_p): A comma expression is an lvalue if its second
11973 operand is.
11974
11975 * typeck.c (default_conversion): Move code for promoting enums and
11976 ints from here.
11977 * cvt.c (type_promotes_to): To here.
11978 * call.c (convert_harshness_ansi): Use type_promotes_to. Also fix
11979 promotion semantics for reals.
11980
d11ad92e 11981Sun Apr 24 16:52:51 1994 Doug Evans <dje@canuck.cygnus.com>
15fa00e9
DE
11982
11983 * Make-lang.in (c++.install-common): Check for g++-cross.
11984 * Makefile.in: Remove Cygnus cruft.
11985 (config.status): Delete.
11986 (RTL_H): Define.
11987 (TREE_H): Use complete pathname, some native makes have minimal
11988 VPATH support.
11989 (*.o): Use complete pathname to headers in parent dir.
11990 (doc, info, dvi): Delete.
11991
d11ad92e 11992Sun Apr 24 16:52:51 1994 Doug Evans <dje@canuck.cygnus.com>
700f8a87
MS
11993
11994 * Make-lang.in (c++.install-common): Check for g++-cross.
11995 * Makefile.in: Remove Cygnus cruft.
11996 (config.status): Delete.
11997 (RTL_H): Define.
11998 (TREE_H): Use complete pathname, some native makes have minimal
11999 VPATH support.
12000 (*.o): Use complete pathname to headers in parent dir.
12001 (doc, info, dvi): Delete.
12002
d11ad92e 12003Sun Apr 24 00:47:49 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
12004
12005 * decl.c (pushdecl): Avoid redundant warning on redeclaring function
12006 with different return type.
12007 (decls_match): Compare return types strictly.
12008
d11ad92e 12009Fri Apr 22 12:55:42 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
12010
12011 * cvt.c (build_type_conversion): Do try to convert through other
12012 pointers. This will fail if the class defines multiple pointer
12013 conversions.
12014
12015 * error.c (dump_type_prefix): Print out pointers to arrays properly.
d11ad92e 12016 (dump_type_suffix): Likewise. (was 'int *[]', now 'int (*)[]')
39211cd5
MS
12017
12018 * typeck.c (build_unary_op): Disallow ++/-- on pointers to
12019 incomplete type.
12020
12021 * decl.c (duplicate_decls): Check mismatched TREE_CODES after
12022 checking for shadowing a builtin. If we're redeclaring a builtin
12023 function, bash the old decl to avoid an ambiguous overload.
12024
12025 * cvt.c (convert_to_reference): Don't force arrays to decay here.
12026
12027 * tree.c (lvalue_p): A MODIFY_EXPR is an lvalue.
12028
12029 * decl.c (duplicate_decls): Don't assume that the decls will have
12030 types.
12031
d11ad92e 12032 Mon Apr 18 11:35:32 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12033
12034 [ cp/* changes propagated from c-* changes in 940318 snapshot ]
12035 * c-decl.c (pushdecl): Warn if type mismatch with another external decl
12036 in a global scope.
12037
d11ad92e 12038 Fri Apr 22 06:38:56 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12039
12040 * cp/typeck2.c (signature_error): Use cp_error for "%T".
12041
d11ad92e 12042 Mon Apr 18 11:59:59 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12043
12044 [ cp/* changes propagated from c-* changes in 940415 snapshot ]
12045 * cp/decl.c (duplicate_decls, pushdecl, builtin_function):
12046 Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE.
12047
d11ad92e 12048 Mon Apr 18 11:55:18 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12049
12050 [ cp/* changes propagated from c-* changes in 940409 snapshot ]
12051 * cp/decl.c (duplicate_decls): Put new type in same obstack as
12052 old ones, or permanent if old ones in different obstacks.
12053
d11ad92e 12054 Mon Apr 18 11:48:49 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12055
12056 [ cp/* changes propagated from c-* changes in 940401 snapshot ]
12057 * cp/parse.y (attrib): Handle string args as expressions,
12058 merging the two rules. `mode' attribute now takes a string arg.
12059 Delete the rule for an identifier as arg.
12060
d11ad92e 12061 Mon Apr 18 11:24:00 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12062
12063 [ cp/* changes propagated from c-* changes in 940312 snapshot ]
12064 * cp/typeck.c (pointer_int_sum): Multiplication should be done signed.
12065 (pointer_diff): Likewise the division.
12066
d11ad92e 12067 Sun Mar 6 19:43:39 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12068
12069 [ cp/* changes propagated from c-* changes in 940304 snapshot ]
12070 * cp/decl.c (finish_decl): Issue warning for large objects,
12071 if requested.
12072
d11ad92e 12073 Sat Feb 19 22:20:32 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12074
12075 [ cp/* changes propagated from c-* changes in 940218 snapshot ]
12076 * cp/parse.y (attrib): Handle attribute ((section ("string"))).
12077 * cp/decl.c (duplicate_decls): Merge section name into new decl.
12078
d11ad92e 12079 Tue Feb 8 09:49:17 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12080
12081 [ cp/* changes propagated from c-* changes in 940206 snapshot ]
12082 * cp/typeck.c (signed_or_unsigned_type): Check for any
63718c49 12083 INTEGRAL_TYPE_P not just INTEGER_TYPE.
39211cd5
MS
12084
12085 Mon Dec 6 13:35:31 1993 Norbert Kiesel (norbert@i3.INformatik.rwth-aachen.DE)
12086
12087 * cp/decl.c (finish_enum): Start from 0 when determining precision
12088 for short enums.
12089
12090 Fri Dec 3 17:07:58 1993 Ralph Campbell (ralphc@pyramid.COM)
12091
12092 * cp/parse.y (unary_expr): Look at $1 for tree_code rather than
12093 casting $$.
12094
d11ad92e 12095 Wed Nov 17 19:22:09 1993 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12096
12097 * cp/typeck.c (build_binary_op_nodefault): Propagate code
12098 from C front-end to optimize unsigned short division.
12099 (build_conditional_expr): Fix bug in "1 ? 42 : (void *) 8".
12100
d11ad92e 12101 Wed Nov 17 19:17:18 1993 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12102
12103 * cp/call.c (convert_harshness_ansi): Given an (e.g.) char
12104 constant, prefer 'const char &' to 'int'.
12105
d11ad92e 12106 Wed Feb 3 13:11:48 1993 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
12107
12108 * cp/class.c (finish_struct_methods): Handle multiple
12109 constructors in fn_fields list.
12110
d11ad92e 12111Fri Apr 22 12:48:10 1994 Kung Hsu <kung@mexican.cygnus.com>
39211cd5
MS
12112
12113 * class.c (finish_struct): use TYPE_DECL_SUPPRESS_DEBUG to flag
12114 types not to be dumped in stabs, like types in #pragma interface.
12115 * decl.c (init_decl_processing): use TYPE_DECL_SUPPRESS_DEBUG to
12116 mark unknown type.
12117
d11ad92e 12118Fri Apr 22 03:27:26 1994 Doug Evans <dje@cygnus.com>
15fa00e9
DE
12119
12120 * Language directory reorganization.
12121 See parent makefile.
12122
d11ad92e 12123Thu Apr 21 18:27:57 1994 Per Bothner <bothner@kalessin.cygnus.com>
39211cd5
MS
12124
12125 * cp-tree.h (THUNK_DELTA): It is normally negative, so
12126 use signed .i variant of frame_size rather than unsigned .u.
12127 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
12128 use "VT" rather than "vt" due to binary incompatibility.
12129 * class.c (get_vtable_name): Use strlen of VTABLE_NAME_FORMAT,
12130 rather than sizeof, since it is now an expression.
12131 * class.c (modify_one_vtable): Modify to skip initial element
12132 containing a count of the vtable.
12133
d11ad92e 12134Thu Apr 21 00:09:02 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12135
12136 * lex.c (check_newline): Force interface_unknown on main input file.
12137
12138 * pt.c (do_pending_expansions): Always emit functions that have been
12139 explicitly instantiated.
12140 (do_function_instantiation): Set DECL_EXPLICITLY_INSTANTIATED.
12141 (do_type_instantiation): Set CLASSTYPE_VTABLE_NEEDS_WRITING and
12142 DECL_EXPLICITLY_INSTANTIATED on all my methods.
12143 * parse.y (explicit_instantiation): Call do_type_instantiation for
12144 types.
12145 * decl2.c (finish_vtable_vardecl): Call import_export_vtable.
12146 * decl.c (start_function): Don't set DECL_EXTERNAL on a function
12147 that has been explicitly instantiated.
12148 * cp-tree.h (DECL_EXPLICITLY_INSTANTIATED): Alias for
12149 DECL_LANG_FLAG_4.
12150 * class.c: Move import_export_vtable to decl2.c, and comment out all
12151 uses.
12152
d11ad92e 12153Wed Apr 20 16:51:06 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12154
12155 * lex.c (process_next_inline): Don't muck with DECL_INLINE.
d11ad92e 12156 (do_pending_inlines): Likewise.
7177d104 12157
6060a796 12158Tue Apr 19 22:25:41 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12159
12160 Reimplement vtable building, and most vtable pointer setting.
12161 Allows for earier maintenance, easier understandability, and most
12162 importantly, correct semantics.
12163
12164 * class.c (build_vtable): Removed unneeded
12165 SET_BINFO_VTABLE_PATH_MARKED.
d11ad92e 12166 * class.c (prepare_fresh_vtable): Likewise. Added argument.
7177d104
MS
12167 * class.c (modify_vtable_entry): General cleanup.
12168 * class.c (related_vslot, is_normal, modify_other_vtable_entries,
12169 modify_vtable_entries): Removed.
12170 * class.c (add_virtual_function): General cleanup.
12171 * class.c (finish_base_struct): Setup BINFO_VTABLE and
12172 BINFO_VIRTUALS as early as we can, so that modify_all_vtables can
12173 work.
12174 * class.c (finish_vtbls): New routine, mostly from
12175 unmark_finished_struct.
12176 * class.c (overrides): New routine.
12177 * class.c (modify_one_vtable): New routine, mostly from
12178 modify_other_vtable_entries and modify_vtable_entries.
12179 * class.c (modify_all_direct_vtables, modify_all_indirect_vtables,
12180 modify_all_vtables): New routines.
12181 * class.c (finish_struct): Added arguemnt to prepare_fresh_vtable
12182 call. General cleanup on how pending_hard_virtuals are handled.
12183 General cleanup on modifying vtables. Use finish_vtbls, instead of
12184 unmark_finished_struct.
12185 * cp-tree.h (init_vtbl_ptrs, expand_direct_vtbls_init,
12186 get_first_matching_virtual, get_matching_virtual,
12187 expand_vbase_vtables_init, expand_indirect_vtbls_init): Update.
12188 * cvt.c (convert_pointer_to_real): cleanup error message.
12189 * decl.c (grokfndecl): General cleanup.
12190 * decl.c (finish_function): Change init_vtbl_ptrs call to
12191 expand_direct_vtbls_init. Change expand_vbase_vtables_init call to
12192 expand_indirect_vtbls_init.
12193 * init.c (expand_virtual_init): Remove unneeded argument.
12194 * init.c (init_vtbl_ptrs): Rename to expand_direct_vtbls_init, added
12195 two arguments to make more general. Made more general. Now can be
12196 used for vtable pointer initialization from virtual bases.
12197 * init.c (emit_base_init): Change expand_vbase_vtables_init call to
12198 expand_indirect_vtbls_init. Change init_vtbl_ptrs call to
12199 expand_direct_vtbls_init.
12200 * init.c (expand_virtual_init): General cleanup.
12201 * init.c (expand_default_init): Change expand_vbase_vtables_init
12202 call to expand_indirect_vtbls_init.
12203 * init.c (expand_recursive_init_1): Change expand_vbase_vtables_init
12204 call to expand_indirect_vtbls_init.
12205 * init.c (expand_recursive_init): Change expand_vbase_vtables_init
12206 call to expand_indirect_vtbls_init.
12207 * search.c (get_first_matching_virtual): Rename to
12208 get_matching_virtual. General cleanup and remove setting of
12209 DECL_CONTEXT. That is now done in a cleaner way in
12210 modify_vtable_entry and add_virtual_function.
12211 * search.c (expand_vbase_vtables_init): Rename to
12212 expand_indirect_vtbls_init. General cleanup. Use
12213 expand_direct_vtbls_init to do hard work. Ensures that _all_ vtable
12214 pointers from virtual bases are set up.
12215 * search.c (bfs_unmark_finished_struct, unmark_finished_struct):
12216 Removed.
12217
12218 * *.[chy]: Remove support for VTABLE_USES_MASK.
12219
d11ad92e 12220Tue Apr 19 12:51:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12221
12222 * cvt.c (convert_to_reference): Use NOP_EXPRs to switch between
12223 reference and pointer types instead of bashing the types directly.
12224
12225 * call.c (build_overload_call_real): Use the TREE_CODE to determine
12226 whether the function is overloaded or not, rather than
12227 TREE_OVERLOADED.
12228 * *: Remove all uses of TREE_OVERLOADED.
12229
12230 * decl.c (grokdeclarator): Only complain about initializing const
12231 fields when -ansi or -pedantic.
12232
d11ad92e 12233Tue Apr 19 12:42:42 1994 Doug Evans <dje@canuck.cygnus.com>
7177d104
MS
12234
12235 * cp-tree.h (THUNK_DELTA): frame_size is now a union.
12236
d11ad92e 12237Mon Apr 18 00:17:13 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12238
12239 Do overloading on a block-by-block basis, not function-by-function.
12240 * decl.c: Lose overloads_to_forget.
12241 (struct binding_level): Add overloads_shadowed field.
12242 (poplevel): Restore overloads_shadowed.
12243 (push_overloaded_decl): Use overloads_shadowed instead of
12244 overloads_to_forget.
12245 (finish_function): Don't look at overloads_to_forget.
12246
12247 Copy enum_overflow logic from c-decl.c.
12248 * decl.c (start_enum): Initialize enum_overflow.
12249 (build_enumerator): Use enum_overflow. Also use current_scope().
12250
12251 * search.c (current_scope): Move Brendan's comment from
12252 build_enumerator here.
12253
12254 * typeck.c (convert_for_assignment): Change warnings to pedwarns for
12255 discarding const/volatile.
12256
d11ad92e 12257Sat Apr 16 01:18:21 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12258
12259 * typeck.c (comp_target_parms): Accept TEMPLATE_TYPE_PARMs on the rhs.
d11ad92e 12260 (comp_target_types): Likewise.
7177d104
MS
12261
12262 * decl.c (lookup_name): Don't unset got_scope here.
12263
12264 * spew.c (yylex): Only replace yylval with the TYPE_NESTED_NAME if
12265 got_scope != NULL_TREE.
12266
d11ad92e 12267Fri Apr 15 16:36:33 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12268
12269 Horrible kludge to prevent templates from being instantiated by
12270 their base classes.
12271 * parse.y (template_instantiate_once): Unset TYPE_BEING_DEFINED
12272 before we get to left_curly.
12273 * pt.c (instantiate_class_template): Set TYPE_BEING_DEFINED.
12274
12275 * error.c (dump_decl): If it's a typedef, print out the name of the
12276 decl, not just the underlying type.
12277
12278 * decl.c (pushdecl): If the old duplicate decl was a TYPE_DECL,
12279 update the IDENTIFIER_TYPE_VALUE of its name.
12280
12281 * decl2.c (finish_file): When processing the initializer for a
12282 static member, pretend that the dummy function is a member of the
12283 same class.
12284
d11ad92e 12285Fri Apr 15 15:56:35 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104 12286
63718c49
GB
12287 * class.c (build_vtable_entry): revert Apr 4 change.
12288 * decl2.c (mark_vtable_entries): replace pure virtual function
12289 decl with abort's.
7177d104 12290
d11ad92e 12291Fri Apr 15 13:49:33 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12292
12293 * typeck.c (build_conditional_expr): Pedwarn on pointer/integer
12294 mismatch, and don't pedwarn on 0/function pointer mismatch.
12295
12296 * typeck2.c (digest_init): Lose code for special handling of unions.
12297 (process_init_constructor): Since they're handled just fine here.
12298 Pedwarn on excess elements.
12299
12300 * decl2.c (grokfield): Complain about local class method declaration
12301 without definition.
12302
d11ad92e 12303Fri Apr 15 13:19:40 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12304
12305 * method.c (emit_thunk): Add extern declaration for
12306 current_call_is_indirect (needed for hppa).
12307
d11ad92e 12308Thu Apr 14 16:12:31 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12309
12310 Improve local class support; allow classes in different blocks to
12311 have the same name.
12312 * decl.c (pushtag): Support local classes better.
12313 (pushdecl_nonclass_level): New function for pushing mangled decls of
12314 nested types into the appropriate scope.
12315 (xref_defn_tag): Use pushdecl_nonclass_level instead of
12316 pushdecl_top_level.
12317 (grokfndecl): Don't mess with IDENTIFIER_GLOBAL_VALUE for local
12318 class methods.
d11ad92e 12319 * method.c (do_inline_function_hair): Likewise.
7177d104
MS
12320
12321 * class.c (finish_struct): It is legal for a class with no
12322 constructors to have nonstatic const and reference members.
12323
d11ad92e 12324Thu Apr 14 07:15:11 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
12325
12326 * decl.c (push_overloaded_decl): Avoid giving errors about
12327 built-ins, since duplicate_decls will have given warnings/errors
12328 for them.
12329
d11ad92e 12330Thu Apr 14 03:45:12 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12331
12332 * cvt.c (convert_to_reference): Warn about casting pointer type to
12333 reference type when this is probably not what they wanted.
12334
d11ad92e 12335Wed Apr 13 13:12:35 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12336
12337 * decl.c (finish_decl): Don't mindlessly set TREE_USED for
12338 static consts any more (toplev.c has now been modified to
12339 not emit warnings if they are unused).
12340
d11ad92e 12341Wed Apr 13 00:22:35 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12342
12343 * decl.c (grok_op_properties): If op new/delete get here with
12344 METHOD_TYPEs, do a revert_static_member_fn.
12345
12346 * cp-tree.h (IDENTIFIER_CLASS_TYPE_VALUE): Lose.
12347 * init.c (is_aggr_typedef): Don't look at
12348 IDENTIFIER_CLASS_TYPE_VALUE.
d11ad92e
MS
12349 (get_aggr_from_typedef): Likewise.
12350 (get_type_value): Likewise.
7177d104
MS
12351 * call.c (build_scoped_method_call): Don't rely on overloaded
12352 template names having IDENTIFIER_CLASS_VALUE set.
12353
12354 * parse.y (component_decl_1, fn.def2): Revert rules for
12355 constructors.
12356 (component_decl_1, fn.def2): Use $1 instead of $$, since $$ is being
12357 clobbered.
12358
12359 * decl.c (start_function): Only warn about `void main()' if pedantic
12360 || warn_return_type.
12361
d11ad92e 12362Tue Apr 12 02:14:17 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12363
12364 Clean up overloading of the template name.
12365 * class.c (pushclass): overload the template name whenever pushing
12366 into the scope of a template class, not just if it is
12367 uninstantiated.
12368 (popclass): Correspondingly.
12369 * search.c (push_class_decls): Don't overload_template_name.
12370 * pt.c (overload_template_name): Don't set IDENTIFIER_LOCAL_VALUE or
12371 DECL_CONTEXT on things.
12372 * parse.y (left_curly): Don't overload_template_name.
12373 * class.c (finish_struct): Don't undo_template_name_overload.
12374
12375 * method.c (build_opfncall): Only pass one argument to global op
12376 delete.
12377
12378 * call.c (build_method_call): Use TYPE_VEC_DELETE_TAKES_SIZE to
12379 decide how many arguments to use for vec delete.
12380
12381 * decl.c (grok_op_properties): Be consistent in modifying
12382 current_class_type.
12383 (grokdeclarator): Only complain about function decls with no return
12384 type if we're being pedantic.
12385
d11ad92e 12386Mon Apr 11 00:10:53 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12387
12388 Add support for operator new [] and operator delete [].
12389
12390 * tree.def: Add VEC_NEW_EXPR and VEC_DELETE_EXPR.
12391 * ptree.c (print_lang_type): Indicate vec new/delete.
12392 * parse.y: Support vec new/delete.
12393 * method.c (build_decl_overload): Deal with vec new/delete.
d11ad92e 12394 (build_opfncall): Likewise.
7177d104
MS
12395 * lex.c (init_lex): Set up values of ansi_opname and opname_tab for
12396 vec new/delete. vec new uses "__vn", and vec delete uses "__vd".
12397 * init.c (init_init_processing): Set up BIVN and BIVD.
12398 (do_friend): Don't clean up after mistaken setting of TREE_GETS_NEW,
12399 since it doesn't happen any more.
12400 (build_new): Support vec new. Always call something.
12401 (build_x_delete): Support vec delete.
12402 (build_vec_delete): Lose dtor_dummy argument, add use_global_delete,
12403 and pass it to build_x_delete.
12404 * decl2.c (delete_sanity): Don't change behavior by whether or not
12405 the type has a destructor. Pass use_global_delete to
12406 build_vec_delete.
12407 (coerce_delete_type): Make sure that the type returned has a first
12408 argument of ptr_type_node.
12409 * decl.c (init_decl_processing): Also declare the global vec
12410 new/delete.
12411 (grokdeclarator): Also force vec new/delete to be static.
12412 (grok_op_properties): Note presence of vec new/delete, and play with
12413 their args. If vec delete takes the optional size_t argument, set
12414 TYPE_VEC_DELETE_TAKES_SIZE.
12415 * cp-tree.h (TYPE_GETS_{REG,VEC}_DELETE): New macros to simplify
12416 checking for one delete or the other.
12417 (lang_type): gets_new and gets_delete are now two bits long. The
12418 low bit is for the non-array version. Lose gets_placed_new.
12419 (TYPE_VEC_DELETE_TAKES_SIZE): New macro indicating that the vec
12420 delete defined by this class wants to know how much space it is
12421 deleting.
12422 (TYPE_VEC_NEW_USES_COOKIE): New macro to indicate when vec new must
12423 add a header containing the number of elements in the vector; i.e.
12424 when the elements need to be destroyed or vec delete wants to know
12425 the size.
12426 * class.c (finish_struct_methods): Also check for overloading vec
12427 delete.
12428 * call.c (build_method_call): Also delete second argument for vec
12429 delete.
12430
12431 * decl.c (grokdeclarator): Correct complaints again.
12432 (grokdeclarator): Fix segfault on null declarator.
12433 (decls_match): Also accept redeclaration with no arguments if both
12434 declarations were in C context. Bash TREE_TYPE (newdecl) here.
12435 (duplicate_decls): Instead of here.
12436
12437 * parse.y (nested_name_specifier_1): Lose rules for dealing with
12438 syntax errors nicely, since they break parsing of 'const i;'.
12439
12440 * decl.c (lookup_name): if (got_scope == current_class_type)
12441 val = IDENTIFIER_CLASS_VALUE (name).
12442
12443 * search.c (lookup_nested_tag): Look in enclosing classes, too.
12444
12445 * spew.c (yylex): Only look one character ahead when checking for a
12446 SCOPE.
12447
12448 * lex.c (check_newline): Read first nonwhite char before
12449 incrementing lineno.
12450
12451 * decl.c (grokdeclarator): Don't claim that typedefs are variables
12452 in warning.
12453
12454 * parse.y: Divide up uses of unqualified_id into
12455 notype_unqualified_id and unqualified_id, so that TYPENAME can be
12456 used as an identifier after an object.
12457
12458 * class.c (push_nested_class): Don't push into non-class scope.
12459
12460 * decl.c (grokdeclarator): If an identifier could be a type
12461 conversion operator, but has no associated type, it's not a type
12462 conversion operator.
12463
12464 * pt.c (unify): Check for equality of constants better.
12465
12466 * decl.c (grokdeclarator): Don't complain about access decls.
12467
d11ad92e 12468Sun Apr 10 02:39:55 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12469
12470 * decl.c (grokdeclarator): pedwarn about data definitions without
12471 types here.
12472
12473 * parse.y (datadef): Don't pedwarn about decls without types here,
12474 since that is valid for functions.
12475 (fn.def2, component_decl): Support constructors with declmods again.
12476 (nomods_initdecls): For decls without any mods, so that we don't try
12477 to get declspecs from some arbitrary $0.
12478
12479 * search.c (lookup_field): Use cp_error.
12480
12481 * parse.y (nested_name_specifier_1): Don't check aggr/non-aggr type
12482 here; it breaks destructors for non-aggr types.
12483
12484 * decl.c (lookup_name): Only look for TYPE_DECLs in base classes of
12485 a type being defined, like the comment says.
12486 If got_scope is not an aggregate, just return NULL_TREE.
12487
12488 * pt.c (create_nested_upt): Kung's code for creating types nested
12489 within uninstantiated templates now lives here (it used to live in
12490 hack_more_ids). It needs to be expanded.
12491
12492 * parse.y: Stop calling see_typename so much.
12493
12494 * decl.c (lookup_name): Deal with TTPs and UPTs.
12495
12496 * lex.c (real_yylex): Don't set looking_for_typename just because we
12497 saw a 'new'.
12498 (dont_see_typename): #if 0 out.
12499
12500 * spew.c (yylex): Increment looking_for_typename if the next
12501 character is SCOPE, rather than setting it to 1; this way, the value
12502 from seeing an aggr specifier will not be lost. This kinda relies
12503 on looking_for_typename never being < 0, which is now true.
12504
12505 * parse.y (nested_name_specifier_1): Accept TEMPLATE_TYPE_PARMs,
12506 too.
12507 (named_class_head_sans_basetype): Accept template types, too. Oops.
12508
d11ad92e 12509Fri Apr 8 16:39:35 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12510
12511 * decl2.c (reparse_decl_as_expr1): Handle SCOPE_REFs.
12512
12513 * parse.y: Lose START_DECLARATOR.
12514
12515 * search.c (lookup_nested_tag): New function to scan CLASSTYPE_TAGS
12516 for a class.
12517
12518 * parse.y: Simplify fn.def2 and component_decl. Support 'enum
12519 A::foo' syntax. Catch invalid scopes better.
12520
12521 * parse.y, lex.c: lose TYPENAME_COLON.
12522
12523 * decl2.c (groktypefield): #if 0 out.
12524
12525 * decl.c (lookup_name): If the type denoted by got_scope is
12526 currently being defined, look in CLASSTYPE_TAGS rather than FIELDS.
12527
12528 * class.c (push_nested_class): Don't try to push into
12529 error_mark_node.
12530
d11ad92e 12531Fri Apr 8 07:26:36 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
12532
12533 * Makefile.in (stamp-parse): Update count of conflicts to 33.
12534
d11ad92e 12535Thu Apr 7 17:47:53 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12536
12537 A saner implementation of nested types that treats template types
12538 no differently from non-template types. There are still some
12539 shortcomings of our system; most notably, it is difficult to look
12540 for a nested type that is hidden by another name, because of the way
12541 we keep track of hidden types. But this shouldn't be a problem for
12542 just about anyone. Perhaps lookup_field should be fixed up a bit.
12543
12544 * spew.c: Moved handling of nested types/scoping from the lexer
12545 into the parser. Removed variable template_type_seen_before_scope.
12546 Removed functions frob_identifier, hack_more_ids, and various cruft
12547 that was #if 0'd out in the past, reducing the size of the file from
12548 1146 lines to 450 lines. We can't quite do away with spew.c yet,
12549 though; we still need it for do_aggr () and checking for SCOPE after
12550 the current identifier. And setting lastiddecl.
12551
12552 * parse.y: Moved handling of nested types/scoping from the lexer
12553 into the parser, using a new global variable `got_scope'. Reduced
12554 the number of states by 53. Implemented all uses of explicit global
12555 scope. Removed terminals SCOPED_TYPENAME and SCOPED_NAME. Removed
12556 nonterminals tmpl.1, scoped_base_class, id_scope, typename_scope,
12557 scoped_typename. Added nonterminals nested_type,
12558 qualified_type_name, complete_type_name, qualified_id, ptr_to_mem,
12559 nested_name_specifier, global_scope, overqualified_id, type_name.
12560 Changed many others. Added 9 new reduce/reduce conflicts, which are
12561 nested type parallels of 9 that were already in the grammar for
12562 non-nested types. Eight of the now 33 conflicts should be removed
12563 in the process of resolving the late binding between variable and
12564 function decls.
12565
12566 * gxxint.texi (Parser): Update.
12567
12568 * cp-tree.h (IS_AGGR_TYPE_CODE): Add UNINSTANTIATED_P_TYPE.
12569
12570 * lex.h: Add decl for got_scope.
12571
12572 * lex.c (see_typename): Claim to be the lexer when calling
12573 lookup_name.
12574
12575 * decl.c (lookup_name): When called from the lexer, look at
12576 got_scope and looking_at_typename; otherwise don't.
12577
6060a796 12578Thu Apr 7 22:05:47 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12579
12580 31th Cygnus<->FSF merge.
12581
d11ad92e 12582Thu Apr 7 17:47:53 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12583
12584 * decl2.c (mark_vtable_entries): Call this to mark all the
12585 entries in the vtable addressable.
12586 (finish_decl_parsing): Handle SCOPE_REFs.
12587
12588 * decl.c (decls_match): Always call compparms with strict == 1.
12589 Handle the special case of C function redecl here.
12590 (duplicate_decls): Only keep the old type if the new decl takes no
12591 arguments.
12592
12593 * typeck.c (compparms): Also allow t1 to be ... if strict == 0.
12594
6060a796 12595Thu Apr 7 16:17:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12596
12597 * class.c (build_vtable_entry): Fix breakage introduced Apr 5
12598 17:48:41.
12599
d11ad92e 12600Wed Apr 6 16:05:10 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12601
12602 * init.c (build_virtual_init), search.c (build_vbase_vtables_init),
12603 ch-tree.h: Every place these functions were called, the result was
12604 immediately passed to expand_expr_stmt. Reduce redundancy by
12605 calling expand_expr_init *inside* these functions. These
12606 makes for a simpler interface, and we don't have to build
12607 compound expressions. Hence, rename these function to:
12608 expand_virtual_init and expand_vbase_vtables_init respectively.
12609 * init.c, decl.c: Change callers of these functions.
12610 * init.c, cp-tree.h (expand_virtual_init): Make static.
12611
12612 * decl2.c (finish_file): Check TREE_PUBLIC||TREE_ADDRESSABLE
12613 rather than DECL_SAVED_INSNS before emitting inlines.
12614
d11ad92e 12615Wed Apr 6 13:06:39 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12616
12617 * spew.c (init_spew): #if 0 out stuff used by arbitrate_lookup.
12618
12619 * decl.c (duplicate_decls): If this is a new declaration of an
12620 extern "C" function, keep the type (for the argtypes).
12621 (redeclaration_error_message): Don't check DECL_LANGUAGE here.
12622 (decls_match): Call compparms with a value of strict dependent on
12623 the value of strict_prototypes for DECL_LANGUAGE (oldecl).
12624
12625 * typeck.c (compparms): ... is only equivalent to non-promoting
12626 parms if we're not being strict.
12627
12628 * parse.y (empty_parms): Don't check flag_ansi || pedantic here.
12629
12630 * decl.c (init_decl_processing): if (flag_ansi || pedantic)
12631 strict_prototypes_lang_c = strict_prototypes_lang_cplusplus;
12632
12633 * decl2.c (grok_function_init): Don't set DECL_INITIAL on pure
12634 virtuals.
12635
d11ad92e 12636Tue Apr 5 17:48:41 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12637
12638 Support for implementing vtables with thunks.
12639 * tree.def (THUNK_DECL): New TREE_CODE.
12640 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY), tree.c
12641 (fnaddr_from_vtable_entry): Handle flag_vtable_thunks case.
12642 * cp-tree.h (memptr_type): New variable.
12643 * class.c (build_vtable_entry): Build thunk if necessary.
12644 * class.c (build_vfn_ref): If using thunks, don't need
12645 to add delta field from vtable (there is none!).
12646 * decl.c: Add memptr_type as well as vtable_entry_type.
12647 If using thunks, the latter is just ptr_type_node.
12648 * gc.c, typeck.c: Use memptr_typeChange, not vtable_entry_type.
12649 * decl2.c (finish_vtable_vardecl): Handle thunks.
12650 * expr.c (cplus_expand_expr): Support THUNK_DECL.
12651
12652 * decl.c (grokdeclarator): Set DECL_THIS_EXTERN if "extern".
12653 * decl.c (start_function): Set current_extern_inline based on
12654 DECL_THIS_EXTERN, not TREE_PUBLIC.
12655 * decl.c (finish_function): Call mark_inline_for_output if needed,
12656
12657 Improve intelligence about when to emit inlines.
12658 * cp-tree.h (lang_decl_flags): New field saved_inline.
12659 * cp-tree.h (DECL_SAVED_INLINE): New macro.
12660 * class.c (add_virtual_function): Don't set TREE_ADDRESSABLE.
12661 * decl.h, decl.c (pending_addressable_inlines): Removed.
12662 * decl2.c (pending_addressable_inlines): Renamed to saved_inlines.
12663 * decl2.c (mark_inline_for_output): Do nothing if
12664 DECL_SAVED_INLINE; otherwise set it (and add to saved_inlines list).
12665 * decl2.c (finish_vtable_vardecl): SET_CLASSTYPE_INTERFACE_KNOWN
12666 and set CLASSTYPE_INTERFACE_ONLY if there is a non-inline virtual.
12667 * decl2.c (finish_file): Writing out inlines later, so we can
12668 also handle the ones needed for vtbales.
12669 * decl2.c (write_vtable_entries, finish_vtable_typedecl): Removed.
12670
12671 * cp-tree.h, class.c, decl2.c, search.c: Remove -fvtable-hack
37c46b43 12672 and flag_vtable_hack. Use -fvtable-thunks and flag_vtable_thunks
7177d104
MS
12673 instead. (The rationale is that these optimizations both break binary
12674 compatibility, but should become the default in a future release.)
12675
6060a796 12676Wed Apr 6 10:53:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12677
12678 * class.c (modify_vtable_entries): Never reset the DECL_CONTEXT
12679 of a fndecl, as we might not be from that vfield.
12680
d11ad92e 12681Tue Apr 5 17:43:35 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
12682
12683 * class.c (add_virtual_function): fix bug for pure virtual, so
12684 that DECL_VINDEX of the dummy decl copied won't be error.
12685 (see also Apr 4 change)
12686
d11ad92e 12687Tue Apr 5 17:23:45 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12688
12689 * typeck.c (c_expand_return): Before checking that we're not
12690 returning the address of a local, make sure it's a VAR_DECL.
12691 (And don't worry about it being a TREE_LIST.)
12692
d11ad92e 12693Tue Apr 5 13:26:42 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12694
12695 * parse.y (YYDEBUG): Always define.
d11ad92e 12696 * lex.c (YYDEBUG): Likewise.
7177d104 12697
d11ad92e 12698Mon Apr 4 11:28:17 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
12699
12700 * class.c (finish_struct): backup out the change below, put the
12701 new change for the same purpose. The change below breaks code.
12702
12703 * class.c (finish_struct): if pure virtual, copy node and make
12704 RTL point to abort, then put in virtual table.
12705 * decl2.c (grok_function_iit): reinstate Mar 31 change.
12706
d11ad92e 12707Sat Apr 2 03:12:58 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12708
12709 * init.c (build_new): pedwarn about newing const and volatile
12710 types.
12711
12712 * tree.c (get_identifier_list): Only do the special handling
12713 thing if we're dealing with the main variant of the record type.
12714
12715 * cvt.c (convert_to_reference): When converting between
12716 compatible reference types, use the pointer conversion machinery.
12717 Don't just blindly overwrite the old type.
12718
d11ad92e 12719Fri Apr 1 17:14:42 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12720
12721 * call.c (build_method_call): When looking at global functions,
12722 be sure to use instance_ptr for the first argument, not some version
12723 of it that has been cast to a base class. Also do this before
12724 comparing candidates.
12725
d11ad92e 12726Thu Mar 31 19:50:35 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12727
12728 * call.c (build_method_call): Constructors can be called for
12729 const objects.
12730
d11ad92e 12731Thu Mar 31 16:20:16 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
12732
12733 * decl2.c (grok_func_init): do not abort as rtl for pur virtual
12734 fucntions. They can be defined somewhere else.
12735
12736Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
12737
12738 * decl.c (init_decl_processing): Declare __builtin_return_address
12739 and __builtin_frame_address for C++ as well.
12740
6060a796 12741Thu Mar 31 12:35:49 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12742
12743 * typeck2.c (store_init_value): Integral constant variables are
12744 always constant, even when doing -fpic.
12745
12746Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
12747
12748 * decl.c (redeclaration_error_message): Pass the types to
12749 comptypes.
12750
6060a796 12751Wed Mar 30 21:29:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12752
12753 Cures incorrect errors about pure virtuals in a class, when they
12754 have been overridden in a derived class.
12755
12756 * search.c (get_abstract_virtuals): Reimplement.
12757 * search.c (get_abstract_virtuals_1): New routine.
12758
d11ad92e 12759Wed Mar 30 14:10:04 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12760
12761 * pt.c (push_template_decls): Make the pushed level pseudo
12762 global.
12763
12764 * parse.y (extdefs): Don't pop everything if the current binding
12765 level is pseudo_global.
12766
12767 * decl.c (pop_everything): Stop on reaching a pseudo-global
12768 binding level.
12769
12770 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Change to more reliable test.
12771
12772 * decl.c (duplicate_decls): Only copy DECL_SOURCE_{FILE_LINE} if
12773 the old decl actually had an initializer.
12774
12775 * {various}: Clean up gcc -W complaints.
12776
12777 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Currently defined to be
12778 (DECL_CONTEXT (NODE) != NULL_TREE).
12779
12780 * parse.y (lang_extdef): Call pop_everything if necessary.
12781
12782 * decl.c (pop_everything): New function for popping binding
12783 levels left over after a syntax error.
12784 (pushdecl): Use DECL_FUNCTION_MEMBER_P to decide whether or not
12785 a function is a member.
12786
6060a796 12787Wed Mar 30 14:20:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12788
12789 Cures calling a more base base class function, when a more derived
12790 base class member should be called in some MI situations.
12791
12792 * search.c (make_binfo): Use more the more specialized base
63718c49
GB
12793 binfos from the binfo given as the second argument to make_binfo,
12794 instead of the unspecialized ones from the TYPE_BINFO.
d11ad92e
MS
12795 * class.c (finish_base_struct): Likewise, update callers.
12796 * search.c (dfs_get_vbase_types): Likewise.
12797 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Likewise.
7177d104 12798 * decl.c (xref_tag): Use NULL_TREE instead of 0.
d11ad92e 12799 * lex.c (make_lang_type): Likewise.
7177d104 12800
d11ad92e 12801Wed Mar 30 14:10:04 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12802
12803 * decl.c (pushdecl): If pushing a C-linkage function, only do a
12804 push_overloaded_decl.
12805 (duplicate_decls): Standard overloading does not shadow built-ins.
12806
d11ad92e 12807Tue Mar 29 00:54:18 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12808
12809 * pt.c (end_template_decl): Don't call push_overloaded_decl.
12810
12811 * init.c (do_friend): Don't call push_overloaded_decl.
12812
12813 * decl.c (pushdecl): Call push_overloaded_decl for functions and
12814 function templates.
12815 (duplicate_decls): functions and function templates are not
12816 duplicates, but don't complain about calling this function to
12817 compare them.
12818 (push_overloaded_decl): Don't deal with linkage. Call
12819 duplicate_decls.
12820 (redeclaration_error_message): Deal with linkage.
12821
12822 * decl.c (start_function): If push_overloaded_decl returns an
12823 older version of the function, deal with it.
12824
12825 * decl.c (start_function): Be sure only to push_overloaded_decl
12826 for non-members.
12827
12828 * decl.c (grokfndecl): Put back clearing of DECL_CHAIN for
12829 methods.
12830 (start_function): Lose broken and redundant code for checking old
12831 decl.
12832
12833 * init.c (add_friend): Give line numbers of both friend decls
12834 when warning about re-friending.
12835
12836 * pt.c (tsubst): Use comptypes rather than == to compare the
12837 types of the method as declared and as defined, since default
12838 parameters may be different.
12839
12840 * call.c (build_method_call): Use brendan's candidate printing
12841 routine.
12842
12843 * decl.c (start_method): Methods defined in the class body are
12844 inline whether or not it's a template class.
12845
d11ad92e 12846Mon Mar 28 16:39:26 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12847
12848 * parse.y (initdcl0): Add "extern" to current_declspecs if
12849 have_extern_spec && ! used_extern_spcec.
12850
12851 * tree.c (really_overloaded_fn): A fn with more than one
12852 overload.
12853
12854 * pt.c (end_template_decl): Use really_overloaded_fn.
12855
12856 * decl.c (duplicate_decls): When smashing a decl into a previous
12857 definition, keep the old file and line.
12858 Don't deal with overloaded functions.
12859 Lose old code for checking arg types of functions.
12860 Check for overloaded C functions.
12861 (pushdecl): Deal with overloaded functions.
12862 (start_decl): Expect pushdecl to return an appropriate function decl.
d11ad92e 12863 (start_function): Likewise.
7177d104
MS
12864 (push_overloaded_decl): Don't check for overloaded C functions.
12865
12866 * *.c: Stop using DECL_OVERLOADED, it being archaic.
12867 TREE_OVERLOADED should probably go, too.
12868
d11ad92e 12869Mon Mar 28 14:00:45 1994 Ron Guilmette <rfg@netcom.com>
7177d104
MS
12870
12871 * typeck.c (comp_target_types): Call comp_target_parms with
12872 strict == 1.
12873
d11ad92e 12874Sun Mar 27 00:07:45 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12875
12876 * parse.y (empty_parms): Don't parse () as (...) in extern "C"
12877 sections if we're compiling with -ansi or -pedantic.
12878
12879 * decl.c (decls_match): Don't treat (int) and (int&) as matching.
12880
12881 * decl2.c (grokfield): Don't pedwarn twice about initializing
12882 field.
12883
12884 * decl.c (push_overloaded_decl): Warn about shadowing
12885 constructor.
12886 (redeclaration_error_message): Don't allow 'int a; int a;'
12887
12888 * cvt.c (build_up_reference): Only check for valid upcast if
12889 LOOKUP_PROTECT is set, not just any flag.
12890
d11ad92e 12891Fri Mar 25 01:22:31 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12892
12893 * lex.c (check_newline): When we see a #pragma implementation,
12894 also set it for the main input file.
12895
12896 * init.c (build_new): Convert array size argument to size_t.
12897
12898 * parse.y (primary): If we're doing a parenthesized type-id, call
12899 groktypename before passing it to build_new.
12900
12901 * call.c (build_method_call): Deal properly with const and
12902 volatile for instances of reference type.
12903
12904 * decl.c (store_return_init): Change 'if (pedantic) error' to 'if
12905 (pedantic) pedwarn'.
12906
12907 * decl.c (grokdeclarator): Don't complain about putting `static'
12908 and `inline' on template function decls.
12909
d11ad92e 12910Thu Mar 24 23:18:19 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12911
12912 * call.c (build_method_call): Preserve const & volatile on
12913 `this'.
12914
6060a796 12915Thu Mar 24 16:21:52 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12916
12917 * init.c (build_new, build_vec_delete): Use global new and delete
12918 for arrays.
d11ad92e 12919 * decl2.c (delete_sanity): Likewise.
7177d104 12920
d11ad92e 12921Thu Mar 24 02:10:46 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12922
12923 * cvt.c (convert_to_reference): If i is an lvalue,
12924 (int &)i -> *(int*)&i, as per 5.2.8p9 of the latest WP.
12925 (convert_force): Call convert_to_reference with LOOKUP_COMPLAIN.
12926
d11ad92e 12927Wed Mar 23 17:45:37 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12928
12929 * decl.c (duplicate_decls): Also propagate DECL_TEMPLATE_MEMBERS
12930 and DECL_TEMPLATE_INSTANTIATIONS.
12931
12932 * init.c (build_new): Handle array typedefs properly.
12933
6060a796 12934Wed Mar 23 18:23:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12935
12936 30th Cygnus<->FSF merge.
12937
6060a796 12938Wed Mar 23 00:46:24 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12939
12940 * class.c (modify_vtable_entries): Avoid running off the end of the
12941 virtuals list when processing a virtual destructor.
d11ad92e 12942 * class.c (get_vtable_entry): Likewise.
7177d104 12943
d11ad92e 12944Wed Mar 23 00:23:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12945
12946 * decl.c (duplicate_decls): If two template decls don't match,
12947 just return 0.
12948
d11ad92e 12949Tue Mar 22 23:49:41 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12950
12951 * typeck.c (convert_for_assignment): Don't pedwarn about
12952 converting function pointer to void *.
12953
6060a796 12954Tue Mar 22 22:23:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12955
12956 Major revamp of pointer to member functions. Cures major
12957 nonfunctionality when used in casts, and MI situations.
12958
12959 * cvt.c (convert_force): Update call site of build_ptrmemfunc.
d11ad92e
MS
12960 * typeck.c (convert_for_assignment): Likewise.
12961 * typeck2.c (digest_init): Likewise.
7177d104
MS
12962 * typeck2.c (process_init_constructor): Simplify by moving code into
12963 digest_init.
12964 * typeck2.c (digest_init): Do default_conversions on init value, if
12965 we are processing pointer to member functions.
12966 * class.c (get_vfield_offset): Now non-static. Convert bit offset
12967 into byte offset.
d11ad92e 12968 * cp-tree.h (get_vfield_offset): Likewise.
7177d104
MS
12969 * typeck.c (get_member_function_from_ptrfunc): Convert down to right
12970 instance, before fetching vtable pointer.
12971 * typeck.c (get_delta_difference): New routine.
12972 * typeck.c (build_ptrmemfunc): Revamp to handle casting better, also
12973 get vtable pointer out of right subobject.
12974
6060a796 12975Tue Mar 22 17:56:48 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12976
12977 * search.c (get_binfo): Return NULL instead of aborting, when
12978 passed a UNION_TYPE.
12979
d11ad92e 12980Tue Mar 22 12:44:54 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12981
12982 These patches implement handling of redefinition/redeclaration of
12983 templates.
12984
12985 * typeck.c (comptypes): Simplify. All TEMPLATE_TYPE_PARMs are
12986 considered compatible.
12987
12988 * parse.y (template_def): Pass defn argument to end_template_decl.
12989
12990 * pt.c (end_template_decl): Add defn argument. Check for
12991 redefinition. Simplify.
12992
12993 * error.c (OB_UNPUT): New macro, to remove mistakes.
12994 (aggr_variety): Subroutine of dump_aggr_type.
12995
12996 * decl.c (decls_match): Support templates.
12997 (duplicate_decls): No longer static. Don't try to lay out template
12998 decls.
12999 (pushdecl): Simplify.
13000
13001 * cp-tree.h (DECL_TEMPLATE_MEMBERS): Use DECL_SIZE instead of
13002 DECL_INITIAL.
13003
d11ad92e 13004Mon Mar 21 11:46:55 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13005
13006 * error.c (dump_decl): Support class template decls.
13007 (dump_type): Don't adorn template type parms.
13008
13009 * decl.c (duplicate_decls): Save DECL_TEMPLATE_INFO from old decl
13010 if it was a definition.
13011 (redeclaration_error_message): Do the cp_error thang, and reject
13012 redefinition of templates.
13013
d11ad92e 13014Mon Mar 21 19:36:06 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
13015
13016 * decl.c (grokdeclarator): Set TREE_PUBLIC for METHOD_TYPE
13017 in FIELD context, when appropriate. Also,
13018 CLASSTYPE_INTERFACE_ONLY is irrelevant to setting TREE_PUBLIC.
13019 Also, simplify check for bogus return specifiers.
13020
d11ad92e 13021Mon Mar 21 11:46:55 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13022
13023 * parse.y (after_type_declarator1): Expand type_quals.
d11ad92e
MS
13024 (notype_declarator1): Likewise.
13025 (absdcl1): Likewise.
7177d104 13026
d11ad92e 13027Sat Mar 19 01:05:17 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13028
13029 * decl.c (grokdeclarator): Treat class-local typedefs like static
13030 members; i.e. 'typedef int f();' means that f is a function type,
13031 not a method type.
13032
13033 * parse.y (decl): Change direct_* back to *.
13034 (type_id): Change direct_abstract_declarator to absdcl.
13035 (direct_declarator, direct_initdecls, direct_initdcl0): Remove again.
13036
d11ad92e 13037Fri Mar 18 12:47:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13038
13039 These two patches fix crashes on instantiating a template inside a
13040 function with C linkage or containing labels.
13041
13042 * class.c (current_lang_stacksize): No longer static.
13043
13044 * decl.c (struct saved_scope): Add lang_base, lang_stack,
13045 lang_name, lang_stacksize, and named_labels.
13046 (push_to_top_level): Save them.
13047 (pop_from_top_level): Restore them.
13048
13049 * gxxint.texi (Parser): Update.
13050
13051 These two patches finish moving the task of expr/declarator
13052 ambiguity resolution from the lexer to the parser, and add one more
13053 r/r conflict. START_DECLARATOR can now be nuked.
13054
13055 * parse.y (decl): Add "direct_" in typespec X rules.
13056 (direct_declarator): New nonterminal for
13057 direct_after_type_declarator and direct_notype_declarator.
13058 (direct_initdecls): Like initdecls, but uses direct_initdcl0.
13059 (direct_initdcl0): Like initdcl0, but uses direct_declarator.
13060 (named_parm): Add typespec direct_declarator rule.
13061
13062 * spew.c (yylex): #if 0 out START_DECLARATOR insertion.
13063
13064 These two patches disable some excessive cleverness on the part of
13065 g++; a non-class declaration always hides a class declaration in the
13066 same scope, and g++ was trying to unhide it depending on the
13067 enclosing expression.
13068
13069 * spew.c (arbitrate_lookup): #if 0 out.
13070
13071 * decl.c (lookup_name): Never call arbitrate_lookup.
13072
13073 * parse.y (complex_notype_declarator1): Add '*'
13074 complex_notype_declarator1 and '&' complex_notype_declarator1 rules.
13075
13076 * parse.y (complex_direct_notype_declarator): Restore id_scope
13077 see_typename TYPENAME rule, remove all other rules beginning with
13078 those tokens.
13079 (notype_unqualified_id): Add '~' see_typename IDENTIFIER rule.
13080
d11ad92e 13081Thu Mar 17 17:30:01 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13082
13083 These changes fix the compiler's handling of the functional cast/
13084 object declaration ambiguities in section 6.8 of the ARM. They also
13085 add 11 reduce/reduce conflicts. Sigh.
13086
13087 * parse.y: Add precedence decls for OPERATOR and '~'.
13088 (notype_unqualified_id): New nonterminal, encompasses all of the
13089 ANSI unqualified-id nonterminal except TYPENAMEs.
13090 (expr_or_declarator): New nonterminal to delay parsing of code like
13091 `int (*a)'.
13092 (primary): Use notype_unqualified_id.
13093 (decl): Add typespec initdecls ';' and typespec declarator ';'
13094 rules.
13095 (initdcl0): Deal with the above.
13096 (complex_notype_declarator1): A notype_declarator that is not also
13097 an expr_or_declarator.
13098 (complex_direct_notype_declarator): A direct_notype_declarator that
13099 doesn't conflict with expr_or_declarator. Use
13100 notype_unqualified_id. Remove id_scope see_typename TYPENAME rule.
13101 (functional_cast): New nonterminal, for the three functional cast
13102 rules. So that they can be moved after
13103 complex_direct_notype_declarator.
13104 (see_typename): Don't accept type_quals any more.
13105
13106 * decl2.c (reparse_decl_as_expr): New function to deal with parse
13107 nodes for code like `int (*a)++;'.
13108 (reparse_decl_as_expr1): Recursive subroutine of the above.
13109 (finish_decl_parsing): New function to deal with parse nodes for
13110 code like `int (*a);'. See the difference?
13111
6060a796 13112Thu Mar 17 12:16:10 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13113
13114 These changes break binary compatibility in code with classes
13115 that use virtual bases.
13116
13117 * search.c (dfs_get_vbase_types): Simplify and correct to make
13118 sure virtual bases are initialized in dfs ordering.
13119 * search.c (get_vbase_types): Simplify and make readable.
13120
d11ad92e 13121Thu Mar 17 12:01:10 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13122
13123 * parse.y: s/ typename / type_id /g
13124
d11ad92e 13125Wed Mar 16 17:42:52 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
13126
13127 * parse.y (typespec): add SCOPE TYPENAME for global scoped
13128 type. e.g. ::B x.
13129
13130 * decl.c (complete_array_type): fix a bug that in -pendantic
13131 mode even there's no initializer, it will continue to build
13132 default index.
13133
d11ad92e 13134Wed Mar 16 17:43:07 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13135
13136 * parse.y (direct_notype_declarator): Add PTYPENAME rule, remove
13137 all of the scoped PTYPENAME rules.
13138
6060a796 13139Wed Mar 16 16:39:02 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13140
13141 * init.c (build_offset_ref): The value of A::typedef_name is
13142 always the TYPE_DECL, and never an error.
13143
d11ad92e 13144Tue Mar 15 20:02:35 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13145
13146 * search.c (get_base_distance_recursive): Two binfos can only
13147 represent the same object if they are both via_virtual.
13148
13149 * class.c (finish_base_struct): Check vbases for ambiguity, too.
13150
13151 * search.c (get_vbase_types): Accept binfo argument, too.
13152
d11ad92e 13153Tue Mar 15 19:22:05 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
13154
13155 * decl.c (complete_array_type): complete TYPE_DOMAIN of the
13156 initializer also, because back-end requires it.
13157
d11ad92e 13158Tue Mar 15 15:33:31 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13159
13160 * error.c (dump_expr): Support member functions (which show up as
13161 OFFSET_REFs).
13162
6060a796 13163Mon Mar 14 16:24:36 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13164
13165 * init.c (build_new): Set the return type of multidimensional
13166 news correctly.
13167
d11ad92e 13168Fri Mar 11 15:35:39 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
13169
13170 * call.c (build_method_call): if basetype not equal to type
13171 of the instance, use the type of the instance in building
13172 destructor.
13173
d11ad92e 13174Thu Mar 10 17:07:10 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
13175
13176 * parse.y (direct_notype_declarator): add push_nested_type for
13177 'template_type SCOPED_NAME' rule.
13178
d11ad92e 13179Tue Mar 8 00:19:58 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13180
13181 * parse.y (parm): Add typed_declspec1 {absdcl, epsilon} rules.
13182
d11ad92e 13183Sat Mar 5 04:47:48 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13184
13185 * parse.y (regcast_or_absdcl): New nonterminal to implement late
13186 reduction of constructs like `int ((int)(int)(int))'.
13187 (cast_expr): Use it.
13188 (sub_cast_expr): Everything that can come after a cast.
13189 (typed_declspecs1): typed_declspecs that are not typed_typespecs.
13190 (direct_after_type_declarator): Lose PAREN_STAR_PAREN rule.
13191 (direct_abstract_declarator): Replace '(' parmlist ')' rule with
13192 '(' complex_parmlist ')' and regcast_or_absdcl.
13193 (parmlist): Split
13194 (complex_parmlist): Parmlists that are not also typenames.
13195 (parms_comma): Enabler.
13196 (named_parm): A parm that is not also a typename. Use declarator
13197 rather than dont_see_typename abs_or_notype_decl. Expand
13198 typed_declspecs inline.
13199 (abs_or_notype_decl): Lose.
13200 (dont_see_typename): Comment out.
13201 (bad_parm): Break out abs_or_notype_decl into two rules.
13202
d11ad92e 13203Fri Mar 4 18:22:39 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13204
13205 * decl2.c (reparse_decl_as_casts): New function to change parse
13206 nodes for `(int)(int)(int)' from "function taking int and returning
13207 function taking int and returning function taking int" to "... cast
13208 to int, cast to int, cast to int".
13209
13210 * decl2.c (reparse_decl_as_expr): Recursive function to change
13211 parse nodes for `A()()' from "function returning function returning
13212 A" to "A().operator()".
13213
13214 * parse.y (primary): Replace `typespec LEFT_RIGHT' rule with
13215 `typespec fcast_or_absdcl' rule.
13216 (fcast_or_absdcl): New nonterminal to implement late reduction of
13217 constructs like `A()()()()'.
13218 (typename): Replace `typespec absdcl1' rule with
13219 `typespec direct_abstract_declarator' rule.
13220 (direct_abstract_declarator): Replace `LEFT_RIGHT type_quals' rule
13221 with `fcast_or_absdcl type_quals' rule.
13222
6060a796 13223Fri Mar 4 16:18:03 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13224
13225 * tree.c (lvalue_p): Improve OFFSET_REF handling, so that it
13226 matches Section 5.5.
13227
d11ad92e 13228Fri Mar 4 14:01:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13229
13230 * error.c (dump_type_prefix): Don't print basetype twice for
13231 pmfs.
13232
6060a796 13233Fri Mar 4 13:24:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13234
13235 * typeck.c (convert_arguments): Handle setHandler(A::handlerFn)
13236 so that it is like setHandler(&A::handlerFn). Cures an `invalid
13237 lvalue in unary `&''.
13238
d11ad92e 13239Fri Mar 4 11:15:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13240
13241 * gxxint.texi (Copying Objects): New section discussing default
13242 op= problems with virtual inheritance.
13243
13244 * decl2.c (grokoptypename): Just does grokdeclarator and
13245 build_typename_overload, since the parser can't call grokdeclarator
13246 directly.
13247
13248 * method.c (build_typename_overload): Set IDENTIFIER_GLOBAL_VALUE
13249 and TREE_TYPE on generated identifiers.
13250
13251 * decl.c (grokdeclarator): Don't deal with TYPE_EXPRs anymore.
13252
13253 * parse.y (parm): Convert `const char *' to `__opPCc' here.
13254
13255 * error.c (dump_decl): Say sorry rather than my_friendly_aborting
13256 if we can't figure out what to do.
d11ad92e 13257 (dump_type*): Likewise.
7177d104
MS
13258
13259 * typeck2.c (build_m_component_ref): 'component' is an expr, not
13260 a decl. Also move the IS_AGGR_TYPE check after the stripping of
13261 REFERENCE_TYPE.
13262
6060a796 13263Fri Mar 4 04:46:05 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13264
13265 * call.c (build_method_call): Handle b->setHandler(A::handlerFn)
13266 so that it is like b->setHandler(&A::handlerFn). Cures an `invalid
13267 lvalue in unary `&''.
13268
d11ad92e 13269Thu Mar 3 12:38:15 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13270
13271 * parse.y: Add precedence specification for START_DECLARATOR.
13272 (type_quals): Move before primary.
13273 (typename): Move before typed_declspecs, add 'typespec absdcl1' rule.
13274
13275 * decl2.c (grokoptypename): Lose.
13276
13277 * decl.c (grokdeclarator): Parse TYPE_EXPRs in the initial scan,
13278 rather than waiting until later.
13279
d11ad92e 13280Wed Mar 2 14:12:23 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13281
13282 * parse.y (unary_expr): Use 'typename' in 'new' rules, rather
13283 than expanding it inline.
13284 (typename): Expand empty option of (former) absdcl inline.
d11ad92e 13285 (abs_or_notype_decl): Likewise.
7177d104
MS
13286 (absdcl): Lose empty rule.
13287 (conversion_declarator): New nonterminal for 'typename' of 'operator
13288 typename'.
13289 (operator_name): Use it instead of absdcl.
13290
13291 * parse.y: Add precedence declarations for SCOPED_TYPENAME,
13292 TYPEOF, and SIGOF.
13293 (typed_declspecs): Accept typed_typespecs, rather than typespec
13294 directly. Add rules with reserved_typespecquals.
13295 (reserved_declspecs): Don't accept typespecqual_reserved at the
13296 beginning of the list. The typed_declspecs rule will deal with this
13297 omission.
13298 (declmods): Accept nonempty_type_quals, rather than TYPE_QUAL
13299 directly.
13300
13301 * parse.y (direct_notype_declarator,
13302 direct_after_type_declarator, direct_abstract_declarator): Split up
13303 the declarator1 nonterminals to match the draft standard and avoid
13304 ambiguities.
13305 (new_type_id, new_declarator, direct_new_declarator,
13306 new_member_declarator): New nonterminals to implement the subset of
13307 'typename' allowed in new expressions.
13308 (unary_expr): Use new_type_id instead of typename.
13309 (after_type_declarator1, absdcl1): Fix semantics of member pointers.
13310 (abs_member_declarator, after_type_member_declarator): Lose.
13311
13312 * parse.y (absdcl1): Don't require parens around
13313 abs_member_declarator.
13314 (abs_member_declarator): Lose see_typename from rules.
d11ad92e 13315 (after_type_member_declarator): Likewise.
7177d104
MS
13316
13317 * tree.c (get_identifier_list): New function, containing code
13318 previously duplicated in get_decl_list and list_hash_lookup_or_cons.
13319 (get_decl_list): Use it.
d11ad92e 13320 (list_hash_lookup_or_cons): Likewise.
7177d104
MS
13321
13322 * parse.y (typed_declspecs, declmods): It's not necessary to hash
13323 the declspecs on class_obstack, so don't. This way typed_typespecs
13324 can reduce to typed_declspecs.
13325
d11ad92e 13326Wed Mar 2 14:29:18 1994 Jason Merrill <jason@cygnus.com>
7177d104
MS
13327
13328 * cvt.c (build_up_reference): If we aren't checking visibility,
13329 also allow base->derived conversions.
13330
d11ad92e 13331Mon Feb 28 15:14:29 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
13332
13333 * typeck.c (build_c_cast): Remove bogus hack when converting
13334 to a reference type.
13335
13336 * cp-tree.h (lang_decl::vbase_init_list, DECL_VBASE_INIT_LIST):
13337 Removed, not used.
13338 (lang_stype::methods, lang_decl::next_method): New fields.
13339 (CLASSTYPE_METHODS, DECL_NEXT_METHOD): New macros.
13340 * decl.c (duplicate_decls): Preserve DECL_NEXT_METHOD.
13341
13342 * cp-tree.h, decl2.c (flag_vtable_hack): New flag.
13343 * decl2.c (finish_vtable_vardecl): If flag_vtable_hack,
13344 and !CLASSTYPE_INTERFACE_KNOWN, try to use the presence of
13345 a non-inline virtual function to control emitting of vtables.
13346 * class.c (finish_struct): Build CLASSTYPE_METHODS list.
13347 * search.c (build_vbase_vtables_init): Don't assemble_external
13348 (yet) if flag_vtable_hack.
d11ad92e 13349 * class.c (build_vfn_ref): Likewise.
7177d104 13350
d11ad92e 13351Mon Feb 28 14:54:13 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13352
13353 * parse.y (component_decl): Don't include "typed_declspecs
13354 declarator ';'" speedup, since it breaks enums.
13355
d11ad92e 13356Fri Feb 25 15:43:44 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
13357
13358 * class.c (finish_struct): Minor optimization for building
13359 fn_fields list.
13360
d11ad92e 13361Fri Feb 25 15:23:42 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13362
13363 * decl.c (start_function): Fix detection of function overloading.
13364
6060a796 13365Thu Feb 24 22:26:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13366
13367 * lex.c (check_newline): #pragma interface can take a string
13368 argument, just like #pragma implementation. #pragma implementation
13369 checks for garbage on the line, line #pragma interface does. Main
13370 input files do not auto implement like named files, #pragma
13371 implementation must be used explicitly.
13372
d11ad92e 13373Thu Feb 24 17:09:01 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13374
13375 * parse.y (components): Handle list of one again.
d11ad92e 13376 (notype_components): Likewise.
7177d104
MS
13377 (after_type_declarator1): Take maybe_raises out again.
13378
13379 * gxxint.texi (Parser): Document additional r/r conflict.
13380
d11ad92e 13381Wed Feb 23 14:42:55 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13382
13383 * gxxint.texi (Parser): Add node.
13384
13385 * Makefile.in (stamp-parse): Update expected conflict count.
13386
13387 * parse.y (various): Replace "declmods declarator" with "declmods
13388 notype_declarator". The comment saying that "declmods declarator ';'"
13389 corresponds to "int i;" was wrong; it corresponds to "const i;".
13390 (component_decl): Add "typed_declspecs declarator ';'" rule; this
13391 *does* correspond to "int i;". Change "declmods components" to
13392 "declmods notype_components".
13393 (components): Don't deal with a list of one anymore.
13394 (notype_components): New nonterminal, corresponds to notype_declarator.
13395 ({after_,no}type_component_decl{,0}): More new nonterminals.
13396 ({after_,no}type_declarator): Fold in START_DECLARATOR token.
13397 Eliminates four reduce/reduce conflicts.
13398
13399 (expr): Depend on nontrivial_exprlist instead of nonnull_exprlist.
13400 (nontrivial_exprlist): New nonterminal: A list of at least two
13401 expr_no_commas's.
13402 (nonnull_exprlist): Depend on nontrival_exprlist.
13403 Eliminates four reduce/reduce conflicts.
13404
13405 (named_class_head): Move intermediate code block into separate
13406 nonterminal so that we can stick %prec EMPTY on it.
13407
13408 Add more %prec EMPTY's to eliminate remaining shift/reduce
13409 conflicts.
13410
13411 (after_type_declarator): Add maybe_raises to fndecl rules.
13412 (after_type_declarator_no_typename): Remove.
13413 For correctness.
13414
13415 Document remaining reduce/reduce conflicts.
13416
d11ad92e 13417Tue Feb 22 12:10:32 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13418
13419 * search.c (get_base_distance): Only bash BINFO_INHERITANCE_CHAIN
13420 (TYPE_BINFO (type)) if we care about the path.
13421
13422 * tree.c (lvalue_p): A COND_EXPR is an lvalue if both of the
13423 options are.
13424
6060a796 13425Mon Feb 21 19:59:40 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13426
13427 * Makefile.in (mostlyclean): lex.c is a source file, don't
13428 remove.
13429
d11ad92e 13430Sat Feb 19 01:27:14 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13431
13432 * parse.y: Eliminate 20 shift/reduce conflicts.
13433
d11ad92e 13434Fri Feb 18 11:49:42 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13435
13436 * pt.c (type_unification): Add subr argument; if set, it means
13437 that we are calling ourselves recursively, so a partial match is OK.
13438 (unify): Support pointers to methods and functions.
13439 (tsubst): Support method pointers.
13440 * decl.c (build_ptrmemfunc_type): No longer static, so that
13441 tsubst can get at it.
13442
13443 * init.c (is_aggr_typedef): Pretend template type parms are
13444 aggregates.
13445 * decl2.c (build_push_scope): If cname refers to a template type
13446 parm, just grin and nod.
13447
13448 * call.c (build_overload_call_real): Pass subr argument to
13449 type_unification.
d11ad92e
MS
13450 * pt.c (do_function_instantiation): Likewise.
13451 * class.c (instantiate_type): Likewise.
7177d104
MS
13452
13453 * search.c (get_base_distance): If BINFO is a binfo, use it and
13454 don't mess with its BINFO_INHERITANCE_CHAIN.
13455
13456 * cvt.c (convert_to_reference): Fix temporary generation.
13457 If ambiguous, return error_mark_node.
13458
13459 * init.c (build_new): Put back some necessary code.
13460
d11ad92e 13461Thu Feb 17 15:39:47 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13462
13463 * init.c (build_new): Deal with array types properly.
13464
13465 * search.c (get_binfo): Become a shell for get_base_distance.
13466 (get_binfo_recursive): Lose.
13467 (get_base_distance_recursive): Find the path to the via_virtual base
13468 that provides the most access.
d11ad92e 13469 (get_base_distance): Likewise.
7177d104
MS
13470
13471 * parse.y (explicit_instantiation): Syntax is 'template class
13472 A<int>', not 'template A<int>'.
13473
13474 * typeck.c (convert_for_initialization): Remove bogus warning.
13475
13476 * parse.y (datadef): Revert patch of Oct 27.
13477
d11ad92e 13478Thu Feb 17 15:12:29 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
13479
13480 * class.c (build_vfn_ref): Cast delta field to ptrdiff_type_node,
13481 rather than integer_type_node. Does wonders for the Alpha.
13482
d11ad92e 13483Thu Feb 17 13:36:21 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13484
13485 * decl.c (build_ptrmemfunc_type): Make sure that the pmf type
13486 goes onto the same obstack as its target type.
13487
d11ad92e 13488Wed Feb 16 00:34:46 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13489
13490 * cvt.c (convert_to_reference): If converting via constructor
13491 on local level, go back to build_cplus_new approach.
13492
13493 * tree.c (build_cplus_new): If with_cleanup_p, set cleanup slot
13494 to error_mark_node to prevent expand_expr from building a cleanup
13495 for this variable.
13496
13497 * lex.c (default_assign_ref_body): Return *this from the memcpy
13498 version, too.
13499
13500 * decl.c (grok_reference_init): Just return if called with
13501 error_mark_node, don't worry about initializing non-const reference
13502 with temporary.
13503
13504 * cvt.c (convert_to_reference): Do the right thing for
13505 non-aggregate reference conversions, pedwarn when generating a
13506 non-const reference to a temporary.
13507
13508 * class.c (finish_struct): TYPE_HAS_COMPLEX_{INIT,ASSIGN}_REF and
13509 TYPE_NEEDS_CONSTRUCTING all depend on TYPE_USES_VIRTUAL_BASECLASSES
13510 again.
13511
d11ad92e 13512Tue Feb 15 19:47:19 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13513
13514 * decl.c (grok_reference_init): Pawn off a lot of the work on
13515 convert_to_reference. Generally do the right thing.
13516
13517 * cvt.c (convert_to_reference): Conform to the initial comment;
13518 i.e. don't create temps if decl != error_mark_node. Handle
13519 cleanups better for temps that do get created. Don't pretend
13520 that we can use an 'A' to initialize a 'const double &' just by
13521 tacking on a NOP_EXPR. Support LOOKUP_SPECULATIVELY.
13522
13523 * call.c (build_method_call): Set TREE_HAS_CONSTRUCTOR on
13524 constructor calls.
13525
d11ad92e 13526Mon Feb 14 14:50:17 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13527
13528 * decl.c (grok_reference_init): Make a temporary for initializing
13529 const reference from constant expression.
13530
d11ad92e 13531Mon Feb 14 11:31:31 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
13532
13533 * cp-tree.h, decl.c (set_identifier_local_value): Deleted function.
13534 * decl.c (pushdecl): Define decl in correct binding_level
13535 (which isn't always the inner_binding_level).
13536
13537 * cvt.c (build_up_reference): Don't ever call expand_aggr_init.
13538 It's ugly, and I don't think it's the right thing to do.
13539
13540 * cp-tree.h, class.c, decl.c, decl2.c, sp/search.c:
13541 Remove NEW_CLASS_SCOPING, assuming it is always 1.
13542 * decl.c (pop_decl_level): Removed; manually inlined.
13543
d11ad92e 13544Sun Feb 13 19:04:56 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13545
13546 * class.h (candidate): Add basetypes field.
13547
13548 * call.c (build_method_call): Do access checking after choosing a
13549 function, not before.
13550
13551 * Makefile.in (cvt.o, call.o, method.o): Depend on class.h.
13552 (mostlyclean): Remove ../cc1plus.
13553
d11ad92e 13554Fri Feb 11 11:52:26 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13555
13556 * class.c (finish_struct): Don't allow adjusting access to a field
13557 of a base class if a local field has the same name.
13558
13559 * error.c (dump_type_prefix): Output basetype for METHOD_TYPEs.
13560
d11ad92e 13561hu Jan 13 17:55:51 EST 1994 Gnanasekaran Swaminathan <gs4t@virginia.edu>
7177d104 13562
63718c49 13563 * cp-tree.h (DESTRUCTOR_NAME_P): do not confuse AUTO_TEMP names
7177d104
MS
13564 with destructor names when either NO_DOLLAR_IN_LABEL or
13565 NO_DOT_IN_LABEL are not defined.
13566
13567 Now `template <class T, T f(T&), const T*> class A {...}' works.
13568
13569 * pt.c (grok_template_type): substitute template parm types
13570 with actual types in complex type as well.
13571 (coerce_template_parms): update the grok_template_type ()
13572 function call.
13573
13574 * pt.c (tsubst): Traverse method list using DECL_CHAIN.
13575
13576 * decl.c (grok_op_properties): Allow operator++/-- to have
13577 default arguments.
13578
13579 * typeck2.c (store_init_value): Don't abort when called to
13580 initialize a type that needs constructing with a CONSTRUCTOR.
13581
13582 * init.c (expand_aggr_init_1, CONSTRUCTOR case): If
13583 store_init_value fails, build and expand an INIT_EXPR. If
13584 store_init_value succeeds, call expand_decl_init.
13585
6060a796 13586Fri Feb 11 02:49:23 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13587
13588 * class.c (build_vbase_path): Use complete_type_p instead of
13589 resolves_to_fixed_type_p to determine if the virtual bases are in
13590 their right place for the type of expr. Cures problem of thinking a
13591 virtual base class is one place, when it is in fact someplace else.
13592
6060a796 13593Fri Feb 11 00:26:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13594
13595 * init.c (resolve_offset_ref): Make sure we first convert to
13596 intermediate type, if given, when dealing with members off `this'.
13597 Solves an incorrrect `type `foo' is not a base type for type
13598 `multiple'' when it is infact, a base type.
13599
6060a796 13600Thu Feb 10 21:49:35 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13601
13602 * class.c (modify_other_vtable_entries): Use get_binfo, instead
13603 of binfo_value. Solves problem with compiler giving a `base class
13604 `B' ambiguous in binfo_value (compiler error)' on complex MI
13605 herarchies, when a virtual function is first defied in a virtual
13606 base class.
13607
6060a796 13608Thu Feb 10 17:19:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13609
13610 * class.c (build_vbase_path): Don't complain about ambiguous
13611 intermediate conversion when converting down to a virtual base
13612 class, even if they might seem to be ambiguous.
13613
d11ad92e 13614Thu Feb 10 12:18:26 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13615
13616 * typeck2.c (build_functional_cast): #if 0 out constructor
13617 inheritance code, improve error messages.
13618
13619 * class.c (finish_base_struct): Complain about base with only
13620 non-default constructors in derived class with no constructors.
13621
13622 * decl.c (grokdeclarator): Fix detection of virtual new/delete.
13623
6060a796 13624Wed Feb 9 22:02:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13625
13626 * search.c (build_mi_virtuals, add_mi_virtuals,
13627 report_ambiguous_mi_virtuals): Removed unneeded code.
d11ad92e 13628 * class.c (finish_struct_bits): Likewise.
7177d104 13629
d11ad92e 13630Wed Feb 9 11:27:17 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13631
13632 * pt.c (end_template_instantiation): Push decl before
13633 pop_from_top_level.
13634
13635 * typeck2.c (build_m_component_ref): Make sure datum is of
13636 aggregate type.
13637
13638 * init.c (get_type_value): New function, returns
13639 IDENTIFIER_TYPE_VALUE or IDENTIFIER_CLASS_TYPE_VALUE or NULL_TREE.
13640
13641 * call.c (build_method_call): Don't die on call to destructor for
13642 non-type.
13643
13644 * decl.c (grokdeclarator): Complain about virtual op new and op
13645 delete, make static virtuals unvirtual instead of unstatic.
13646
13647 * typeck.c (build_c_cast): Also call default_conversion on
13648 methods.
13649
13650 * decl.c (grokdeclarator): Don't complain about anonymous
13651 bitfields.
13652
13653 * parse.y (simple_stmt, for loops): Move the continue point after
13654 the cleanups.
13655
13656 * class.c (finish_struct): Fix setting of
13657 TYPE_HAS_COMPLEX_INIT_REF.
13658
d11ad92e 13659Tue Feb 8 13:21:40 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13660
13661 * init.c (build_new): Deal with `new double (1)'.
13662
13663 * class.c (finish_struct): TYPE_HAS_COMPLEX_*_REF are supersets of
13664 TYPE_HAS_REAL_*_REF, but TYPE_HAS_COMPLEX_INIT_REF is independent of
13665 TYPE_NEEDS_CONSTRUCTING.
13666
13667 * decl.c (duplicate_decls): Propagate access decls.
13668
13669 * typeck2.c (process_init_constructor): Accept empty_init_node
13670 for initializing unions.
13671
13672 * class.c, lex.c, cp-tree.h: Use
13673 TYPE_HAS_COMPLEX_ASSIGN_REF where TYPE_HAS_REAL_ASSIGN_REF was used
13674 before, use TYPE_HAS_COMPLEX_INIT_REF for TYPE_NEEDS_CONSTRUCTING in
13675 some places.
13676
13677 * decl.c (finish_decl): Don't complain about uninitialized const
13678 if it was initialized before.
13679
d11ad92e 13680Mon Feb 7 18:12:34 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13681
13682 * lex.c (default_assign_ref_body): Don't deal with vbases for
13683 now.
13684
13685 * decl.c (finish_decl): Fix reversed logic for objects and other
13686 things that need to be constructed but have no initializer.
13687
13688 * class.c (finish_struct): Don't set TYPE_HAS_* flags that are
13689 set by grok_op_properties or finish_decl.
13690
13691 * decl.c: Don't warn about extern redeclared inline unless
13692 -Wextern-inline is given.
d11ad92e
MS
13693 * decl2.c (lang_decode_option): Likewise.
13694 * cp-tree.h: Likewise.
7177d104 13695
d11ad92e 13696Mon Feb 7 17:29:24 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
13697
13698 * decl.c (pushdecl_with_scope): Fix thinko. Add forward
13699 declaration.
13700
13701 * decl.c (pushdecl_with_scope): New function.
13702 * decl.c (pushdecl_top_level): Use new function.
13703 * decl.c (pushtag): Initialize newdecl.
13704 * decl.c (pushtag): Push new type decl into correct scope.
13705
d11ad92e 13706Mon Feb 7 14:42:03 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13707
13708 * call.c, cvt.c, init.c, search.c, cp-tree.h:
13709 Eradicate LOOKUP_PROTECTED_OK.
13710
d11ad92e 13711Mon Feb 7 13:57:19 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
13712
13713 * decl.c (pushtag, xref_tag), cp-tree.h: Add extra parameter
13714 'globalize' to signify implicit declarations.
13715 * decl.c (globalize_nested_type, maybe_globalize_type): Removed.
13716 * decl.c (set_identifier_type_value_with_scope): New function.
13717 * decl.c (set_identifier_local_value): Simplify.
13718 * spew.c (yylex, do_addr): Modify to return a _DEFN if a
13719 forward declaration (followed by ';' and not preceded by 'friend').
13720 * class.c, decl.c, except.c, init.c, parse.y,
13721 pt.c, search.c: Add new argument to calls to xref_tag and
13722 pushtag.
13723
d11ad92e 13724Mon Feb 7 00:22:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13725
13726 * cp-tree.h (ACCESSIBLY_UNIQUELY_DERIVED_P): New macro, means what
13727 ACCESSIBLY_DERIVED_FROM_P meant before.
13728 (ACCESSIBLY_DERIVED_FROM_P): Now disregards ambiguity.
13729
13730 * cvt.c (build_up_reference): Call get_binfo with PROTECT == 1.
13731
13732 * search.c (get_base_distance_recursive): Members and friends of
13733 a class X can implicitly convert an X* to a pointer to a private or
13734 protected immediate base class of X.
d11ad92e 13735 (get_binfo_recursive): Likewise.
7177d104
MS
13736 (get_base_distance): Ignore ambiguity if PROTECT < 0.
13737 (get_binfo): Lose multiple values of PROTECT.
13738 (compute_access): Protected is OK if the start of the
13739 search is an accessible base class of current_class_type.
13740
13741 * method.c (build_opfncall): Do check access on operator new here.
13742
13743 * decl.c (finish_function): Don't check access on operator new
13744 here.
13745
d11ad92e 13746Sun Feb 6 14:06:58 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13747
13748 * decl.c (xref_tag): The base of a derived struct is NOT always
13749 public. Duh.
13750
13751 * pt.c (do_explicit_instantiation): New function, called from
13752 parser to do explicit function instantiation.
13753 (type_unification): Allow the args list to be terminated with
13754 void_list_node.
13755 (do_pending_expansions): Look at i->interface for non-member
13756 templates.
13757
13758 * parse.y (datadef): Move explicit_instantiation here.
13759 (structsp): From here.
13760 (datadef): Complain about `int;'.
13761
d11ad92e 13762Sun Feb 6 12:33:18 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
13763
13764 * pt.c (end_template_instantiation), cp-tree.h: Remove unused
13765 second parameter, and simplify first from a TREE_LIST where
13766 we only care about its TREE_VALUE to just the value (an IDENTIFIER).
13767 * pt.c (instantiate_member_templates): Simplify argument list
13768 from a TREE_LIST to just an IDENTIFIER.
13769 * lex.c (yyprint): PRE_PARSED_CLASS_DECL is now just an IDENTIFIER.
13770 * parse.y (template_instantiate_once): Simplify accordingly.
13771 * decl.c (inner_binding_level): New. Use various places to
13772 simplify.
13773
d11ad92e 13774Sun Feb 6 02:49:37 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13775
13776 * typeck2.c (build_functional_cast): int() -> int(0).
13777
d11ad92e 13778Sat Feb 5 00:53:21 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13779
13780 * class.c (finish_struct): Don't do a bitwise copy for op= if the
13781 class has a virtual function table.
13782
13783 * typeck.c (convert_for_initialization): Restore warnings about
13784 not using defined op=. Should really be my_friendly_aborts, I
13785 s'pose.
13786
d11ad92e 13787Fri Feb 4 14:21:00 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13788
13789 * class.c (finish_struct): Tidy up conditions for doing bitwise
13790 copies of objects.
13791
13792 * decl.c (build_default_constructor): #if 0 out.
13793
13794 * *: Eradicate TYPE_GETS_{ASSIGNMENT,ASSIGN_REF,CONST_ASSIGN_REF,
13795 CONST_INIT_REF}, TYPE_HAS_REAL_CONSTRUCTOR.
13796
13797 * decl.c (grokdeclarator): Don't return void_type_node for
13798 friends being defined here.
13799
13800 * init.c (perform_member_init): Only do the init if it's useful.
13801
13802 * lex.c (default_copy_constructor_body): If we don't need to do
13803 memberwise init, just call __builtin_memcpy.
d11ad92e 13804 (default_assign_ref_body): Likewise.
7177d104
MS
13805
13806 * decl.c (grokdeclarator): If friendp && virtualp, friendp = 0.
13807
6060a796 13808Fri Feb 4 13:02:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13809
13810 * lex.c (reinit_parse_for_method, cons_up_default_function):
13811 Don't give warn_if_unknown_interface warning when it came from a
13812 system header file.
d11ad92e
MS
13813 * pt.c (end_template_decl, instantiate_template): Likewise.
13814 * decl.c (start_decl): Likewise.
7177d104 13815
d11ad92e 13816Fri Feb 4 00:41:21 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13817
13818 * decl.c (grokdeclarator): Don't try to set TYPE_WAS_ANONYMOUS on
13819 enums.
13820
13821 * decl2.c (constructor_name_full): Use IS_AGGR_TYPE_CODE instead of
13822 IS_AGGR_TYPE, since we don't know it's a type.
13823
d11ad92e 13824Thu Feb 3 11:36:46 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13825
13826 * decl.c (grokdeclarator): Don't complain about anonymous unions.
13827
13828 * cp-tree.h (TYPE_WAS_ANONYMOUS): This struct was originally
13829 anonymous, but had a name given to it by a typedef.
13830
13831 * decl.c (grokdeclarator): When renaming an anonymous struct, set
13832 TYPE_WAS_ANONYMOUS.
13833
13834 * decl2.c (constructor_name_full): Use TYPE_WAS_ANONYMOUS.
13835
13836 * cp-tree.h (DECL_UNDEFINED_FRIENDS): #if 0 out.
13837
13838 * init.c (xref_friend): Don't set up DECL_UNDEFINED_FRIENDS.
13839 (embrace_waiting_friends): Don't use DECL_UNDEFINED_FRIENDS.
13840
13841 * decl.c (grokdeclarator): Set TYPE_NESTED_NAME properly on nested
13842 anonymous structs that get typedef'd.
13843
13844 * decl.c (grokdeclarator): Always return void_type_node for
13845 friends.
13846
13847 * error.c (dump_function_decl): Don't use DECL_CLASS_CONTEXT for
13848 friends.
13849 (dump_function_decl): Don't print out default args for
13850 a function used in an expression.
13851
13852 * decl.c (grokdeclarator): Give error on abstract declarator used
13853 in an invalid context (i.e. `void (*)();').
13854
13855 * error.c (cp_line_of): Support _TYPE nodes.
d11ad92e 13856 (cp_file_of): Likewise.
7177d104
MS
13857
13858 * cvt.c (build_up_reference): Don't abort if passed a SAVE_EXPR;
13859 it can happen for the RHS of an assignment stmt where the LHS is
13860 a COND_EXPR.
13861
13862 * init.c (expand_aggr_init_1): Deal with bracketed initializer
13863 lists properly.
13864
13865 * class.c (finish_struct): Deal with enumerators and typedefs
13866 again.
13867
d11ad92e 13868Wed Feb 2 11:30:22 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13869
13870 * class.c (finish_struct): Tidy up loop over fields.
13871
13872 * errfn.c (cp_thing): Don't advance twice after a format.
13873
13874 * class.c (finish_struct): Complain about needing a constructor
13875 if a member has only non-default constructors, and don't try to
13876 generate a default constructor.
13877
13878 * decl.c (finish_decl): Also do the constructor thing if
13879 TYPE_NEEDS_CONSTRUCTING is set (for arrays).
13880
13881 * search.c (unuse_fields): New function: mark all fields in this
13882 type unused.
13883 (dfs_unuse_fields): Helper function.
13884
13885 * class.c (pushclass): If the new class is the same as the old
13886 class, still unuse the fields.
13887 (unuse_fields): Move to search.c.
13888
13889 * decl.c (grok_op_properties): Add friendp argument.
13890 (grokfndecl): Pass it.
d11ad92e 13891 (start_method): Likewise.
7177d104
MS
13892
13893 * decl2.c (delete_sanity): Add use_global_delete parameter to catch
13894 ::delete calls.
13895
13896 * parse.y (unary_expr): Pass new parameter to delete_sanity.
13897
13898 * lex.c (default_copy_constructor_body): Don't choke if the union
13899 has no fields.
d11ad92e 13900 (default_assign_ref_body): Likewise.
7177d104
MS
13901
13902 * call.c (compute_conversion_costs_ansi): Do the right thing for
13903 ellipsis matches.
13904
13905 * decl.c (push_to_top_level): Optimize.
13906
13907 * decl.c (start_function): Look for the lexical scope of a friend
13908 in DECL_CLASS_CONTEXT.
13909
13910 * init.c (do_friend): Set DECL_CLASS_CONTEXT on global friends.
13911
d11ad92e 13912Tue Feb 1 15:59:24 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13913
13914 * cp-tree.h (TREE_GETS_PLACED_NEW): New macro.
13915
13916 * init.c (init_init_processing): Don't assign BIN/BID to the
13917 IDENTIFIER_GLOBAL_VALUEs of their respective operators.
13918 (build_new): Check TREE_GETS_PLACED_NEW.
13919
13920 * decl.c (grok_op_properties): Don't set TREE_GETS_NEW for a decl of
13921 op new with placement, set TREE_GETS_PLACED_NEW.
13922
13923 * cp-tree.h (ANON_UNION_P): New macro. Applies to decls.
13924
13925 * class.c (finish_struct): Don't treat anonymous unions like
13926 other aggregate members. Do synthesize methods for unions without
13927 a name, since they may or may not be "anonymous unions".
13928
13929 * decl2.c (grok_x_components): Wipe out memory of synthesized methods
13930 in anonymous unions.
13931
13932 * lex.c (default_copy_constructor_body): Support unions.
d11ad92e 13933 (default_assign_ref_body): Likewise.
7177d104 13934
d11ad92e 13935Mon Jan 31 12:07:30 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13936
13937 * cp-tree.h: Fix documentation of LOOKUP_GLOBAL, add prototypes.
13938
13939 * error.c (args_as_string): New function (%A), like type_as_string
13940 except NULL_TREE -> "..."
13941
13942 * call.c (build_overload_call_real): Fix for new overloading.
13943
13944 * decl.c (grok_op_properties): Set all of the TYPE_OVERLOADS_* flags
13945 here.
13946
13947 * parse.y (operator_name): Instead of here.
13948
13949 * typeck2.c (build_functional_cast): Treat a TREE_LIST as a list
13950 of functions.
13951
13952 * call.c (build_overload_call_real): Support LOOKUP_SPECULATIVELY.
13953
13954 * method.c (build_opfncall): Don't need to massage return value
13955 any more, call build_overload_call with all flags.
13956
13957 * typeck.c (build_x_binary_op): Put back speculative call to
13958 build_opfncall.
d11ad92e
MS
13959 (build_x_unary_op): Likewise.
13960 (build_x_conditional_expr): Likewise.
7177d104 13961
6060a796 13962Mon Jan 31 10:00:30 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13963
13964 * cvt.c (build_type_conversion_1): Change call to pedwarn into
13965 warning, and conditionalize upon warn_cast_qual.
13966
d11ad92e 13967Fri Jan 28 11:48:15 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13968
13969 * search.c (lookup_field): If xbasetype is a binfo, copy it to
13970 avoid clobbering its inheritance info.
13971
13972 * call.c (build_method_call): Don't overwrite basetype_path with
13973 TYPE_BINFO (inst_ptr_basetype) if they have the same type.
13974
13975 * search.c (compute_access): Fix handling of protected inheritance
13976 and friendship with the enclosing class.
13977
13978 * typeck2.c (store_init_value): Allow passing of TREE_CHAIN for
13979 initialization of arbitrary variable.
13980
13981 * typeck2.c (build_functional_cast): Only try calling a method if
13982 one exists.
13983
13984 * decl.c (grokdeclarator): Move handling of constructor syntax
13985 initialization into first loop for generality.
13986 (parmlist_is_random): Lose.
13987
13988 * lex.c (cons_up_default_function): Set TREE_PARMLIST on arguments
13989 to default function.
13990
d11ad92e 13991Thu Jan 27 19:26:51 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13992
13993 * decl.c (grokparms): Abort if we get called with something we don't
13994 expect.
13995
6060a796 13996Thu Jan 27 17:37:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13997
13998 * call.c (build_overload_call_real): Change argument complain to
13999 flags to match style of rest of code. Pass it down to
14000 build_function_call_real as necessary.
14001 * call.c (build_overload_call, build_overload_call_maybe): Change
14002 argument complain to flags to match style of rest of code.
14003 * cp-tree.h (build_function_call_real): Added fourth flags
14004 argument.
14005 * cvt.c (convert_to_reference): Only give warning messages, if
14006 LOOKUP_COMPLAIN is set.
14007 * typeck.c (build_x_function_call): Change simple complain
14008 argument to build_overload_call_maybe and build_overload_call, to
14009 LOOKUP_COMPLAIN to match style of rest of code.
d11ad92e 14010 * typeck2.c (build_functional_cast): Likewise.
7177d104
MS
14011 * typeck.c (build_function_call_real): Add flags, so that we can
14012 not complain, if we don't want to complain. Complain about
14013 arguments, if we are complaining, otherwise don't.
14014 * typeck.c (build_function_call, build_function_call_maybe):
14015 Stick in flags argument.
14016 * typeck.c (build_x_binary_op, build_x_unary_op,
14017 build_x_conditional_expr, build_x_compound_expr): Follow style of
14018 build_x_indirect_ref, as it is more correct and more common.
14019
d11ad92e 14020Thu Jan 27 14:36:20 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14021
14022 * call.c (build_method_call): Don't check for being called with
14023 a pointer.
14024
14025 * decl2.c (finish_file): Don't play with DECL_CLASS_CONTEXT for the
14026 static initializer function.
14027
14028 * init.c (build_member_call): Use convert_force here, too.
14029
14030 * search.c (compute_access): Only treat static members specially
14031 if they are referenced directly.
14032
d11ad92e 14033Wed Jan 26 18:28:14 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14034
14035 * gxxint.texi (Access Control): New node.
14036
14037 * search.c (current_scope): New function; returns whichever of
14038 current_class_type and current_function_decl is the most nested.
14039 (compute_access): Total overhaul to make it clearer and more
14040 correct. Don't use the cache for now; in the only situation where
14041 it was used before, it gained nothing. This frees up three of the
14042 DECL_LANG_FLAGs for possible other use!
14043
14044 * cp-tree.h: #if 0 out DECL_PUBLIC & friends.
14045
14046 * typeck.c (build_component_ref_1): Don't check DECL_PUBLIC.
14047
14048 * call.c (build_method_call): Use convert_force to cast `this' --
14049 rely on the access checking for the method itself.
14050
14051 * init.c (is_friend): Do the nesting thing, handle types. I am
14052 my own friend.
14053 (is_friend_type): Become a shell for is_friend.
14054 (add_friend): Never stick in ctype.
14055 Why are the friendship functions in init.c, anyway?
14056
6060a796 14057Wed Jan 26 17:50:00 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
14058
14059 * cvt.c (build_type_conversion_1): Don't conditionalize call to
14060 pedwarn upon pedantic.
14061
6060a796 14062Wed Jan 26 17:20:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
14063
14064 * cvt.c (convert_to_reference): Add 8.4.3 checking so that one
14065 gets a warning if one tries to initialize a non-const & from a
14066 non-lvalue.
14067 * cvt.c (convert_to_reference): Use %P format for argument
14068 numbers in warnings.
14069
6060a796 14070Wed Jan 26 14:35:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
14071
14072 * init.c (build_delete): Follow style in call.c to construct the
14073 virtual call to the desctructor, as that code is right. Fixes a
14074 problem of the compiler saying a pointer conversion is ambiguous.
14075
d11ad92e 14076Wed Jan 26 11:28:14 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14077
14078 * cp-tree.h (VTABLE_NAME_P): Change other occurrence of
14079 VTABLE_NAME_FORMAT to VTABLE_NAME.
14080
14081 * *: s/visibility/access/g
14082
d11ad92e 14083Tue Jan 25 18:39:12 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14084
14085 * typeck.c (build_modify_expr): Don't smash references if INIT_EXPR.
14086
6060a796 14087Tue Jan 25 13:54:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
14088
14089 * init.c (build_delete): Back out Jan 17th & 18th pacthes, as
14090 they break libg++.
14091
d11ad92e 14092Tue Jan 25 13:11:45 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14093
14094 * decl.c (duplicate_decls): Fix pointer arithmetic.
14095
d11ad92e 14096Mon Jan 24 15:50:06 1994 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14097
14098 [ cp-* changes propagated from c-* changes in 940114 snapshot ]
14099 * cp-parse.y (maybe_attribute): Allow multiple __attribute__
14100 clauses on a declaration.
14101
d11ad92e 14102Mon Jan 24 17:06:23 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14103
14104 * class.c (finish_struct): Do synthesize methods for anon
14105 structs, just not unions.
14106
d11ad92e 14107Mon Jan 24 13:50:13 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
14108
14109 * decl.c (xref_tag): handle anonymous nested type.
14110 * decl.c (globalize_nested_type): add no globalize bit check.
14111 * spew.c (hack_more_ids) : templated nested decl not push top
14112 level.
14113
14114 * parse.y : get rid of 'goto do_components'. It is much better
14115 for debugging.
14116
14117 * decl.c (is_anon_name): get rid of the function and use the
14118 macro ANON_AGGRNAME_P.
14119 * pt.c : ditto.
14120
d11ad92e 14121Fri Jan 21 14:06:02 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14122
14123 * class.c (finish_struct): Don't synthesize any methods for
14124 anonymous structs/unions.
14125
14126 * typeck.c (build_modify_expr): Don't treat pmf's as class objects.
14127
d11ad92e 14128Thu Jan 20 18:56:46 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14129
14130 * method.c (build_opfncall): Call build_indirect_ref on
14131 synthesized instance for operator delete.
14132
14133 * pt.c (type_unification): Don't abort if called with a list of
14134 types in ARGS.
14135
14136 * class.c (instantiate_type): Deal with function templates.
14137
d11ad92e 14138Thu Jan 20 16:55:35 1994 Jim Wilson <wilson@sphagnum.cygnus.com>
7177d104
MS
14139
14140 * Makefile.in (CC): Default to cc not gcc.
14141
d11ad92e 14142Thu Jan 20 13:47:54 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14143
14144 * typeck.c (build_modify_expr): Call constructor if appropriate.
14145
14146 * decl.c (push_to_top_level): Clear out class-level bindings cache.
14147
d11ad92e 14148Wed Jan 19 13:51:22 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14149
14150 * call.c (resolve_scope_to_name): Work recursively (previously only
14151 looked down one level).
14152
14153 * lex.c (do_pending_inlines): If we're still dealing with the last
14154 batch of inlines, don't start working on a new one.
14155
14156 * Makefile.in (stamp-parse): Update conflict count.
14157 (TAGS): Fix.
14158
14159 * parse.y (explicit_instantiation): New rule; implements
14160 'template A<int>' syntax (though not 'template foo(int)' yet).
14161 (structsp): Add explicit_instantiation.
14162
d11ad92e 14163Tue Jan 18 13:53:05 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14164
14165 * class.c (finish_struct, etc.): Simplify decision to synthesize
14166 a destructor.
14167
14168 * call.c, class.c, cp-tree.h, decl.c, init.c,
14169 ptree.c, search.c, typeck.c, typeck2.c: Nuke
14170 TYPE_NEEDS_CONSTRUCTOR (change all calls to TYPE_NEEDS_CONSTRUCTING).
14171 * init.c (expand_aggr_init_1): Don't try non-constructor methods
14172 of initializing objects.
14173 (build_new): Don't try other methods if the constructor lookup fails.
14174
14175 * class.c (finish_base_struct): Set cant_have_default_ctor and
14176 cant_synth_copy_ctor properly.
d11ad92e 14177 (finish_struct): Likewise.
7177d104 14178
d11ad92e 14179Mon Jan 17 13:58:18 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14180
14181 * typeck.c (build_modify_expr_1): #if 0 out again.
14182 (build_modify_expr): #if 0 out memberwise init code again.
14183
14184 * lex.c (default_copy_constructor_body): Be const-correct.
d11ad92e 14185 (default_assign_ref_body): Likewise.
7177d104
MS
14186
14187 * init.c (perform_member_init): Use TYPE_HAS_CONSTRUCTOR to decide
14188 whether or not to use it, rather than TYPE_NEEDS_CONSTRUCTING.
14189 (expand_aggr_init): Disable silent conversion from initializer list
14190 to list of args for a constructor.
14191
14192 * class.c (base_info): Lose needs_default_ctor.
d11ad92e
MS
14193 (finish_base_struct): Likewise.
14194 (finish_struct): Likewise.
7177d104
MS
14195
14196 * decl.c (init_decl_processing): Don't turn off flag_default_inline
14197 just because flag_no_inline is on.
14198 (finish_decl): Use TYPE_HAS_CONSTRUCTOR to decide to use
14199 constructor.
14200
14201 * class.c (finish_struct): Synthesize default ctor whenever
14202 allowed.
14203
14204 * Makefile.in (TAGS): Don't try to run etags on cp-parse.y.
14205
6060a796 14206Sat Jan 15 18:34:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
14207
14208 * Makefile.in, configure: Handle the C++ front-end in a
14209 subdirectory.
14210 * cp-*: Move C++ front-end to cp/*.
14211
d11ad92e 14212Fri Jan 14 14:09:37 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14213
14214 * cp-typeck.c (build_function_call_real): Modify to match other
14215 instances of taking the address of the function.
14216
14217 * cp-class.c (finish_struct): Set TYPE_HAS_REAL_CONSTRUCTOR to 1 if
14218 there are non-synthesized constructors.
14219 Only set TYPE_NEEDS_CONSTRUCTOR if TYPE_HAS_REAL_CONSTRUCTOR.
14220 Always generate copy constructor if possible.
14221
14222 * cp-tree.h (lang_type): Add has_real_constructor bitfield.
14223 (TYPE_HAS_REAL_CONSTRUCTOR): Define.
14224
14225 * cp-lex.c (default_copy_constructor_body): Use init syntax
14226 for all bases.
14227
14228 * cp-type2.c (store_init_value): Only give error for initializer list
14229 if TYPE_HAS_REAL_CONSTRUCTOR.
14230
d11ad92e 14231Thu Jan 13 15:38:29 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14232
14233 * cp-tree.h (DECL_SYNTHESIZED): Add defn.
14234 (lang_decl): Add synthesized bitfield to decl_flags.
14235
14236 * cp-lex.c (cons_up_default_function): Use DECL_SYNTHESIZED to mark
14237 artificial methods, rather than a line # of 0.
14238
d11ad92e 14239Fri Jan 14 18:25:29 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
14240
14241 * cp-decl (xref_tag): fix a bug in conflict type.
14242 * cp-parse.y : add SCOPED_NAME for uninstantiated template nested
14243 type reference.
14244 * cp-spew.c (yylex) : generated SCOPED_NAME token.
14245 * cp-lex.c (yyprint): handle SCOPED_NAME.
14246
6060a796 14247Fri Jan 14 17:00:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
14248
14249 * cp-decl.c (pushdecl): Revert patch from Jan 11 19:33:03, as it is
14250 not right.
14251
d11ad92e 14252Thu Jan 13 14:00:35 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
14253
14254 * cp-decl2.c (grok_x_components): fix a bug that enum type does not
14255 have type_flags.
14256
6060a796 14257Thu Jan 13 11:39:34 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
14258
14259 Ensure that all vtable pointers are initialized with all the right
14260 values.
14261
14262 * cp-class.c (is_normal): Changed to reflect new meaning of
14263 CLASSTYPE_VFIELD_PARENT.
14264 * cp-class.c (maybe_fixup_vptrs): Use of
14265 CLASSTYPE_NEEDS_VIRTUAL_REINIT here is misguided. Use
14266 BINFO_MODIFIED instead.
14267 * cp-class.c (finish_struct): Changed to reflect new meaning of
14268 CLASSTYPE_VFIELD_PARENT.
14269 * cp-decl.c (get_binfo_from_vfield): Removed, unneeded now.
14270 * cp-decl.c (finish_function): Use init_vtbl_ptrs, instead of open
14271 coding it here.
14272 * cp-init.c (init_vfields): Changed name to init_vtbl_ptrs, and
14273 re-implement.
14274 * cp-init.c (emit_base_init): Use new name init_vtbl_ptrs.
14275 * cp-tree.h (vfield_parent): Changed to integer.
14276 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Changed docs to reflect new
14277 meaning.
14278 * cp-tree.h (init_vtbl_ptrs): Added init_vtbl_ptrs.
14279
d11ad92e 14280Wed Jan 12 18:24:16 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
14281
14282 * cp-decl.c (xref_tag): re-implement globalize nested type.
14283 * cp-decl2.c (grok_x_components): ditto.
14284 * cp-parse.y: ditto.
14285 * cp-tree.h (lang_type): add no_globalize bit in type_flags.
14286
d11ad92e 14287Wed Jan 12 14:08:09 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14288
14289 * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC on friend
14290 decls with a definition attached.
14291
14292 * cp-typeck.c (build_modify_expr): Undo previous change in the case
14293 of INIT_EXPRs.
14294
d11ad92e 14295Tue Jan 11 19:33:03 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14296
14297 * cp-typeck.c (build_modify_expr): Replace code for generating
14298 assignment semantics for classes with an error.
14299 (build_modify_expr_1): #if 0 out.
14300
14301 * cp-decl.c (pushdecl): Patch bogus design of pushdecl
14302 behavior for overloaded functions (it doesn't push anything).
14303
14304 * cp-class.c (finish_struct): When generating default op=,
14305 set TYPE_HAS_ASSIGNMENT.
14306
6060a796 14307Mon Jan 10 18:48:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
14308
14309 * cp-cvt.c (convert): Make {double, clashing enum} -> enum
14310 invalid.
14311 * cp-typeck.c (convert_for_assignment): Simplify.
14312 * cp-decl2.c (warn_enum_clash): Removed.
14313 * invoke.texi (-Wenum-clash): Removed.
14314 * toplev.c (-Wenum-clash): Removed.
14315
d11ad92e 14316Mon Jan 10 17:48:37 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
14317
14318 * cp-decl.c (finish_decl): fix incorrect popclass call.
14319
14320 * cp-decl.c (is_anon_name): new function, check whether the name
14321 is anonymous name generated by compiler.
14322 * cp-decl.c (grokdeclarator): allow nested SCOPE_REF
14323 * cp-spew.c (hack_more_ids): handle nested type in template.
14324 * cp-parse.y : handle nested type reference in uninstantiated
14325 template.
14326 * cp-call.c (build_method_call): handle uninstantiated template
14327 case.
14328 * cp-pt.c (search_nested_type_in_tmpl): new function, search nested
14329 type in template.
14330 * cp-pt.c (lookup_nested_type_by_name): new function, lookup nested
14331 type by name.
14332 * cp-pt.c (tsubst): handle nested type search by name.
14333
d11ad92e 14334Mon Jan 10 14:32:18 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14335
14336 * cp-init.c (build_member_call): Propagate qualifiers to new type.
14337
14338 * cp-call.c (build_method_call): Count functions the new way.
14339
d11ad92e 14340Fri Jan 7 19:03:26 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14341
14342 * cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for nested classes,
14343 too.
14344
d11ad92e 14345Tue Jan 4 16:45:51 1994 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
14346
14347 * cp-parse.y: change to handle whether to globalize nested class.
d11ad92e 14348 * cp-decl.c(xref_tag, maybe_globalize_type): Likewise.
7177d104 14349
d11ad92e 14350Mon Jan 3 22:22:32 1994 Gerald Baumgartner <gb@cygnus.com>
7177d104
MS
14351
14352 * Makefile.in cp-call.c cp-class.c cp-cvt.c cp-decl.c cp-decl2.c
14353 cp-error.c cp-init.c cp-lex.c cp-lex.h cp-method.c cp-parse.y
14354 cp-spew.c cp-tree.c cp-tree.h cp-type2.c cp-typeck.c cp-xref.c
14355 gplus.gperf toplev.c: Incorporated C++ signature extension.
14356 * cp-sig.c: New file, contains most of signature processing.
14357 * cp-hash.h: Regenerated from gplus.gperf.
14358
14359 * gcc.1 g++.1: Added explanation for the `-fhandle-signatures'
14360 and `-fno-handle-signatures' command line flags.
14361
14362 * gcc.texi: Changed the last-modification date.
14363 * invoke.texi: Added `-fhandle-signatures' in the list of
14364 C++ language options. Added explanation for this option.
14365
6060a796 14366Tue Dec 28 21:10:03 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14367
14368 * cp-init.c (expand_vec_init): Remove comptypes test, as it is too
14369 harsh here.
14370
6060a796 14371Tue Dec 28 13:42:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14372
14373 * cp-pt.c (do_pending_expansions): Decide to expand a template
14374 member function, based upon it's class type, not the class type of
14375 the first place it was declared.
14376
6060a796 14377Tue Dec 28 05:42:31 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14378
14379 * cp-class.c (is_normal): New routine, use to determine when the
14380 given binfo is the normal one. (The one that should have the simple
14381 vtable name.)
14382 * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
14383 to check if two fndecls are `the same'. Sometimes this routine can
14384 modify the main vtable, and normal should be 1, in that case, so use
14385 is_normal() to determine if this is the main vtable for the class.
14386 Don't recurse down virtual bases, as they are shared, and we take
14387 care of them elsewhere.
14388 * cp-class.c (modify_vtable_entries): If we have already updated the
14389 vtable with the new virtual, don't do it again.
14390 * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
14391 appropriate. Do virtual function overriding in virtual bases, after
14392 normal overriding, so that the base function list in DECL_VINDEX is
14393 not overridden, before we have a chance to run through the list.
14394 Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
14395 Make sure we pass the right address into modify_vtable_entries.
14396 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
14397 binfo is the one that has the vtable that we based our vtable on.
14398
d11ad92e 14399Fri Dec 24 09:40:52 1993 Michael Tiemann <tiemann@blues.cygnus.com>
7177d104
MS
14400
14401 * cp-typeck.c (c_expand_start_case): Use default_conversion to
14402 convert expression from reference type if necessary.
14403
d11ad92e 14404Wed Dec 22 17:58:43 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14405
14406 * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
14407 trying to read its TREE_VALUE.
14408
14409 * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
14410 (finish_struct): Instead of here.
14411
d11ad92e 14412Tue Dec 21 14:34:25 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14413
14414 * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
14415 have TYPE_PTRMEMFUNC_P set before we try to build its
14416 CLASSTYPE_ID_AS_LIST.
14417 (get_decl_list): Likewise, when trying to read it.
14418
14419 * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
14420 (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
14421
d11ad92e 14422Mon Dec 20 13:35:03 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14423
14424 * cp-typeck.c (rationalize_conditional_expr): New function.
14425 (unary_complex_lvalue): Use it.
14426 (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
14427 with build_unary_op won't cut it. Don't wrap the COND_EXPR with a
14428 SAVE_EXPR either.
14429
14430 * cp-decl2.c (explicit_warn_return_type): Deleted variable.
14431 (lang_decode_option): Set warn_return_type, not explicit_*, for
14432 -Wreturn-type and -Wall. This is what rest_of_compilation uses to
14433 decide if it should go into jump_optimize or not.
14434 * cp-tree.h (explicit_warn_return_type): Deleted.
14435 * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
14436 (finish_function): Also complain about no return in a non-void fn if
14437 we're being pedantic (don't rely on use of -Wreturn-type).
14438
d11ad92e 14439Fri Dec 17 15:45:46 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14440
14441 * cp-decl.c (grokdeclarator): Forbid declaration of a function as
14442 static if it's being done inside another function.
14443
14444 * cp-search.c (compute_visibility): Check for friendship both ways.
14445
d11ad92e 14446Fri Dec 17 14:28:25 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14447
14448 * cp-cvt.c (build_default_binary_type_conversion): Make error
14449 messages more helpful.
14450
14451 * cp-error.c (op_as_string): New function, returns "operator =="
14452 given EQ_EXPR or suchlike.
14453
d11ad92e 14454Fri Dec 17 13:28:11 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14455
14456 * cp-call.c (print_n_candidates): New function.
14457 (build_overload_call_real): Use it when we complain about a call
14458 being ambiguous.
14459
d11ad92e 14460Fri Dec 17 12:41:17 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14461
14462 * cp-call.c (build_method_call): Fix checking for static call
14463 context.
14464
14465 * cp-method.c (build_opfncall): Call build_indirect_ref on argument
14466 to operator new.
14467
14468 * cp-init.c (build_new): Don't mess with rval when building
14469 indirect ref.
14470
d11ad92e 14471Thu Dec 16 16:48:05 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
14472
14473 * cp-lex.c (default_assign_ref_body): add check when TYPE_NESTED_
14474 NAME(type) may not be exist. It's not a problem for old compiler.
14475
d11ad92e 14476Thu Dec 16 14:46:06 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14477
14478 * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
14479 never used for anything.
14480 (struct lang_type, member type_flags): Delete field
14481 `alters_visibility', and up `dummy' by 1.
14482 * cp-class.c (finish_base_struct): Delete code that copies the
14483 setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
14484 (finish_struct): Delete code that sets it.
14485
d11ad92e 14486Thu Dec 16 14:44:39 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14487
14488 * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
14489 build_method_call that I messed up before.
14490
14491 * cp-search.c (get_base_distance): If protect > 1, allow immediate
14492 private base.
14493
14494 * cp-class.c (finish_base_struct): Set cant_synth_* correctly.
d11ad92e 14495 (finish_struct): Likewise. Well, nigh-correctly; it won't deal
7177d104
MS
14496 properly with the case where a class contains an object of an
14497 ambiguous base class which has a protected op=. Should be fixed
14498 when the access control code gets overhauled.
14499 (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.
14500
d11ad92e 14501Thu Dec 16 12:17:06 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14502
14503 * cp-lex.c (real_yylex): Turn the code back on that deals with
14504 __FUNCTION__ and __PRETTY_FUNCTION__. Don't use lookup_name, to
14505 avoid the ambiguity problems that led to it being turned off in the
14506 first place.
14507
14508 * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
14509 to see if something is a method.
14510
6060a796 14511Wed Dec 15 18:35:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14512
14513 * cp-typeck.c (build_modify_expr): Avoid error messages on small
14514 enum bit fields.
14515 * cp-typeck.c (convert_for_assignment): Add missing argument to
14516 cp_warning and cp_pedwarn calls.
14517
d11ad92e 14518Wed Dec 15 18:25:32 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14519
14520 * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
14521 initializers; it's just anachronistic.
14522
14523 * cp-decl.c (finish_decl): Don't require external-linkage arrays
14524 to have a complete type at declaration time when pedantic.
14525
d11ad92e 14526Tue Dec 14 11:37:23 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14527
14528 * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.
14529
14530 * cp-call.c (build_method_call): Don't dereference pointer given
14531 as instance.
14532
14533 * cp-decl.c (finish_function): Don't pass pointer to
14534 build_method_call.
d11ad92e 14535 (finish_function): Likewise.
7177d104 14536
d11ad92e 14537 * cp-typeck.c (build_x_function_call): Likewise.
7177d104 14538
d11ad92e 14539 * cp-method.c (build_component_type_expr): Likewise.
7177d104 14540
d11ad92e
MS
14541 * cp-init.c (build_member_call): Likewise.
14542 (build_new): Likewise.
7177d104 14543
d11ad92e 14544Mon Dec 13 18:04:33 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
14545
14546 * cp-decl.c (xref_tag): fix regression created by changes made
14547 in Dec. 7 1993.
14548 * cp-decl.c (xref_defn_tag): fix parallel nested class problem.
14549
d11ad92e 14550Fri Dec 10 12:40:25 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14551
14552 * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
14553 out the final evaluation of the function, so we can see if ELLIPSIS,
14554 USER, and EVIL were set at the end.
14555
14556 * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
14557 only go for setting TRIVIAL_CODE if we are dealing with types that
14558 are compatible.
14559
6060a796 14560Thu Dec 9 18:27:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14561
14562 * cp-decl.c (flag_huge_objects): New flag to allow large objects.
d11ad92e
MS
14563 * toplev.c (lang_options): Likewise.
14564 * cp-decl2.c (flag_huge_objects, lang_f_options): Likewise.
7177d104 14565 * cp-decl.c (delta_type_node): New type for delta entries.
d11ad92e 14566 * cp-tree.h (delta_type_node): Likewise.
7177d104
MS
14567 * cp-decl.c (init_decl_processing): Setup delta_type_node.
14568 * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
14569 delta_type_node instead of short_integer_type_node.
d11ad92e 14570 * cp-class.c (build_vtable_entry): Likewise.
7177d104 14571
d11ad92e 14572Thu Dec 9 16:19:05 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14573
14574 * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
14575 NO_{DOLLAR,DOT} macro checks, so it always gets defined.
14576 (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
14577
6060a796 14578Wed Dec 8 17:38:06 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14579
14580 * cp-decl.c (finish_decl): Make sure things that can go into
14581 "common", do go into common, if -fcommon is given.
14582
d11ad92e 14583Wed Dec 8 13:01:54 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104 14584
63718c49
GB
14585 * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
14586 (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
14587 argument matching diagnostics to make instantly clear what the
14588 compiler is doing.
7177d104
MS
14589
14590 * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
14591 then check to see if the penalty was increased due to
14592 signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.
14593
d11ad92e 14594Tue Dec 7 18:29:14 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
14595
14596 * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
14597 problem.
14598
d11ad92e 14599Tue Dec 7 16:09:34 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14600
14601 * cp-class.c (finish_struct): Before synthesizing methods, if no
14602 methods have yet been declared then set nonprivate_method. Don't
14603 set non_private method after synthesizing a method.
14604
14605 * cp-lex.c (extract_interface_info): If flag_alt_external_templates
14606 is set, tie emitted code to the location of template instantiation,
14607 rather than definition.
14608
14609 * cp-tree.h: Declare flag_alt_external_templates.
14610
14611 * cp-decl2.c (lang_decode_option): Support -falt-external-templates.
14612
d11ad92e 14613 * toplev.c (lang_options): Likewise.
7177d104 14614
d11ad92e 14615Mon Oct 4 12:50:02 1993 Chip Salzenberg <chip@fin.uucp>
7177d104 14616
63718c49
GB
14617 [changes propagated from 930810 snapshot]
14618 * cp-decl.c (init_decl_processing): Make long long available for use
14619 as SIZE_TYPE and PTRDIFF_TYPE.
14620 (finish_decl): Allow file-scope static incomplete array.
14621 (grokdeclarator): Don't pass on const and volatile fron function
14622 value type to function type.
14623 Warn here for volatile fn returning non-void type.
14624 * cp-parse.y (attrib): Accept attributes `volatile' with alias
14625 `noreturn', and `const'.
14626 * cp-typeck.c (default_conversion): Don't lose const and volatile.
14627 (build_binary_op_nodefault): Generate pedantic warning for comparison
14628 of complete pointer type with incomplete pointer type.
14629 (build_c_cast): Be careful that null pointer constant be INTEGER_CST.
7177d104 14630
d11ad92e 14631Tue Dec 7 10:46:48 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14632
14633 * cp-init.c (expand_vec_init): When creating a temporary for copying
14634 arrays, use the type of the source, not the target.
14635
14636 * cp-cvt.c (convert): Pass an argument for errtype to
14637 convert_to_reference.
14638
14639 * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
14640 methods, -> and `this'.
14641
d11ad92e 14642Mon Dec 6 17:12:33 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14643
14644 * cp-error.c (parm_as_string): New function; returns `this' or arg
14645 number. Corresponds to %P.
14646 (dump_expr): Deal with method calls.
14647
14648 * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
d11ad92e 14649 * cp-typeck.c (convert_for_assignment): Likewise.
7177d104
MS
14650 (warn_for_assignment): Lose.
14651
d11ad92e 14652Mon Dec 6 11:33:35 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14653
14654 * cp-call.c (ideal_candidate_ansi): Delete code that was never
14655 doing anything useful. Instead, sort once, and DO NOT wipe
14656 out any codes with EVIL_CODE, since that's what we use as a
14657 marker for the end of the list of candidates.
14658
14659 * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.
14660
d11ad92e 14661Mon Dec 6 12:49:17 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14662
14663 * cp-init.c (get_aggr_from_typedef): New function, like
14664 is_aggr_typedef but returns the _TYPE.
14665
14666 * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.
14667
d11ad92e 14668Sun Dec 5 18:12:48 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14669
14670 * cp-lex.c (readescape): Pedwarn when a hex escape is out of range.
14671
d11ad92e 14672Thu Nov 25 23:50:19 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14673
14674 Delay language context change until beginning of next decl.
14675
14676 * cp-lex.h (c_header_level): Removed.
14677 (pending_lang_change): Declared.
14678 * cp-lex.c (c_header_level): Renamed from in_c_header, made static.
14679 (pending_lang_change): Defined.
14680 (check_newline): Rework code that recognizes line number and
14681 filename changes. Instead of pushing and popping lang context,
14682 increment and decrement pending_lang_change.
14683 (do_pending_lang_change): Push and pop lang context according
14684 to value of pending_lang_change.
14685 * cp-parse.y (extdefs): Use lang_extdef instead of extdef.
14686 (extdef): Same as extdef, but call do_pending_lang_change() first.
14687
d11ad92e 14688Mon Nov 15 15:39:15 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14689
14690 * cp-typeck.c (build_binary_op_nodefault): Warn for ordered
14691 compare of ptr with 0 only if pedantic in both cases.
14692
d11ad92e 14693Thu Nov 25 13:31:37 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14694
14695 Reinstate the below patch, which got lost in the Cygnus merge:
14696 Tue Nov 23 13:59:24 1993 Hallvard B Furuseth (hbf@durin.uio.no)
14697 * cp-parse.y (maybe_type_qual): Don't fail to set $$.
14698
d11ad92e 14699Wed Nov 17 19:03:30 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14700
14701 * cp-parse.y (attrib): Allow "ident(ident)" like the C front end.
14702
d11ad92e 14703Fri Oct 22 20:43:37 1993 Paul Eggert <eggert@twinsun.com>
7177d104
MS
14704
14705 * cp-lex.c (real_yylex): Diagnose floating point constants
14706 that are too large.
14707
d11ad92e 14708Wed Nov 17 19:10:37 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14709
14710 * cp-type2.c (build_functional_cast): ARM page 16: When a class
14711 and an object, function or enumerator are declared in the same
14712 scope with the same name, the class name is hidden.
14713
d11ad92e 14714Wed Nov 17 19:07:18 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14715
14716 * cp-call.c (convert_harshness_ansi): Distinguish float, double,
14717 and long double from each other when overloading.
14718 (compute_conversion_costs_{ansi,old}, build_method_call,
14719 build_overlay_call_real, convert_to_aggr): Always set and
14720 always use H_LEN member of candidate structure.
14721
d11ad92e 14722Mon Oct 11 23:10:53 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14723
14724 * cp-decl.c (duplicate_decls): Note redeclarations of library
14725 functions, and generate distinct warnings for them.
14726
d11ad92e 14727Mon Oct 4 12:26:49 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14728
14729 Support format warnings in G++.
14730
14731 * cp-tree.h: Protect against multiple inclusion.
14732 Declare all public functions in c-common.c (copy from c-tree.h).
14733 (STDIO_PROTO): Define.
14734 (warn_format): Declare.
14735 (record_format_info): Remove declaration.
14736 * cp-decl.c (init_decl_processing): Call init_function_format_info.
14737 * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
14738 * cp-typeck.c (build_function_call_real): Call check_function_format.
14739 (record_format_info): Remove -- obsolete stub.
14740
d11ad92e 14741Sat Jul 24 12:04:29 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14742
14743 * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
14744 following an extern one (for -Wredundant-decls).
14745 * cp-parse.y (primary): In statement expression case, if compstmt
14746 returns something other than a BLOCK, return it unchanged.
14747
d11ad92e 14748Thu Dec 2 20:44:58 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14749
14750 * cp-decl.c (warn_extern_redeclared_static): New function made
14751 from code extracted from pushdecl.
14752 (duplicate_decls, pushdecl): Call new function.
14753 (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
14754 to be a TREE_LIST when function is declared in 'extern "C" {}'.
14755
d11ad92e 14756Fri Dec 3 16:01:10 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14757
14758 * cp-class.c (duplicate_tag_error): Use cp_error.
14759 (finish_base_struct): Check for ambiguity with direct base, and don't
14760 generate op= or copy ctor if it exists.
14761
d11ad92e 14762Fri Dec 3 15:32:34 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
14763
14764 * cp-init.c (expand_member_init): when initializer name is null,
14765 don't try to build it now because emit_base_init will handle it.
14766
d11ad92e 14767Fri Dec 3 12:28:59 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14768
14769 * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
14770 code such as ExceptionHandler::operator=.
14771
d11ad92e 14772Fri Dec 3 10:32:08 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14773
14774 * cp-decl.c (grokdeclarator): Don't try to print out dname when
14775 complaining about arrays of references if decl_context==TYPENAME,
14776 since it will be null.
14777
14778 * cp-decl2.c: Default to flag_ansi_overloading.
14779
d11ad92e 14780Thu Dec 2 18:05:56 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
14781
14782 * cp-call.c (build_method_call): use binfo from instance if it's
14783 different from binfo (basetype_path) passed from above.
14784
d11ad92e 14785Wed Nov 17 19:14:29 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
14786
14787 cp-error.c (dump_expr): Use unsigned chars to output a
14788 TREE_REAL_CST in hex.
14789
d11ad92e 14790Thu Dec 2 11:05:48 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14791
14792 * cp-class.c (finish_struct): Fix typo in setting
14793 cant_synth_asn_ref.
14794
14795 * cp-tree.h (TYPE_NESTED_NAME): New macro, does
14796 DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).
14797
14798 * cp-lex.c (default_copy_constructor_body): Change
14799 DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
d11ad92e 14800 (default_assign_ref_body): Likewise.
7177d104
MS
14801 (default_copy_constructor_body): Call operator= explicitly for
14802 base classes that have no constructor.
14803
d11ad92e 14804Thu Dec 2 10:47:15 1993 Michael Tiemann <tiemann@blues.cygnus.com>
7177d104
MS
14805
14806 * cp-call.c (build_method_call): If the instance variable is
14807 converted to error_mark_node when we're trying to convert it to the
14808 base type of a method we're looking up, return error_mark_node.
14809
d11ad92e 14810Thu Dec 2 10:41:16 1993 Torbjorn Granlund <tege@cygnus.com>
7177d104
MS
14811
14812 * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
14813 cases, tests for unsigned operands by peeking inside a NOP_EXPR.
14814
d11ad92e 14815Wed Dec 1 13:33:34 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14816
14817 * cp-call.c (compute_conversion_costs_ansi): Use the size of struct
14818 harshness_code, not the size of short, for clearing out the
14819 ansi_harshness.
14820
14821 * cp-call.c (print_candidates): New function.
14822 (build_method_call): When we had some candidates, but didn't get a
14823 usable match, don't report that we got an error with the first
14824 candidate. Instead, say there were no matches, and list the
14825 candidates with print_candidates. In the second pass, make sure we
14826 clear out ever_seen, so we can accurately count the number of
14827 functions that qualified.
14828
d11ad92e 14829Wed Dec 1 09:53:59 1993 Torbjorn Granlund <tege@cygnus.com>
7177d104
MS
14830
14831 * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
14832 only if op1 is known to be != -1.
14833 (build_binary_op_nodefault): Handle *_DIV_EXPR likewise.
14834
d11ad92e 14835Tue Nov 30 14:07:26 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
14836
14837 * cp-method.c (hack_identifier): If the field itself is private, and
14838 not from a private base class, say so.
14839
d11ad92e 14840Mon Nov 29 03:00:56 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14841
14842 * cp-decl.c (grokdeclarator): Always warn on initialization of
14843 const member.
14844
d11ad92e 14845Wed Nov 24 00:49:35 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14846
14847 * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
14848 (finish_base_struct): Set cant_synth_asn_ref properly.
14849
14850 * cp-lex.c (cons_up_default_function): Add section for operator=.
14851 (default_assign_ref_body): New function, mostly cribbed from
14852 default_copy_constructor_body.
14853
14854 * cp-class.c (base_info): Add members cant_synth_copy_ctor,
14855 cant_synth_asn_ref, no_const_asn_ref.
14856 (finish_base_struct): Update no_const_asn_ref, note that you should
14857 update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
14858 (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
14859 initialize them properly. Set no_const_asn_ref properly. Set
14860 cant_synth_* in some of the situations where they should be set.
14861 Propagate TYPE_GETS_ASSIGN_REF. Use cant_synth_copy_ctor. Add call
14862 to cons_up_default_function for operator=.
14863
6060a796 14864Tue Nov 23 20:24:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14865
14866 * cp-cvt.c (convert_force): Add code to perform casting of pointer
14867 to member function types.
14868 * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
14869 when the conversion should be done, regardless.
d11ad92e
MS
14870 * cp-tree.h (build_ptrmemfunc): Likewise.
14871 * cp-type2.c (digest_init): Likewise.
14872 * cp-typeck.c (convert_for_assignment): Likewise.
7177d104 14873
d11ad92e 14874Tue Nov 23 18:06:58 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14875
14876 * cp-error.c (dump_expr): Do the right thing for variables of
14877 reference type.
14878
14879 * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
14880 and its kin properly.
14881 (xref_tag): Propagate TYPE_GETS_ASSIGN_REF.
14882
6060a796 14883Tue Nov 23 12:26:13 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14884
14885 * cp-method.c (build_opfncall): Don't count pointer to member
14886 functions as aggregates here, as we don't want to look up methods in
14887 them. The compiler would core dump if we did, as they don't have
14888 normal names.
14889 * cp-typeck.c (build_indirect_ref): Improve wording on error
14890 message.
14891
d11ad92e 14892Mon Nov 22 14:22:23 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14893
14894 * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
14895 (since it's supported in other compiler bits).
14896
14897 * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
14898 argument.
14899
14900 * cp-error.c (dump_function_decl): Don't print return type for
14901 constructors and destructors.
14902
14903 * cp-cvt.c (cp_convert_to_pointer): Import code from
14904 convert_to_pointer so we can return error_mark_node in the case of an
14905 error, and to allow more meaningful error messages.
14906 (build_type_conversion): Don't go through void* when trying
14907 to convert to a pointer type.
14908
14909 * cp-decl.c (grokfndecl): Move call to grok_op_properties back
14910 after grokclassfn so that it's dealing with the right decl.
63718c49 14911 (grok_op_properties): Don't assert !methodp for op new and op delete.
7177d104
MS
14912
14913 * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
14914 no uses of it in the compiler).
14915
14916 * cp-call.c (build_scoped_method_call): Fix for destructors of simple
14917 types.
d11ad92e 14918 (build_method_call): Likewise.
7177d104 14919
d11ad92e 14920Fri Nov 19 12:59:38 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14921
14922 * cp-tree.c (count_functions): Abstraction function.
14923
14924 * cp-call.c (build_overload_call_real): Deal with new overloading
14925 properly, remove dead code.
14926
14927 * gcc.c (default_compilers): Generate and use .ii files in the
14928 intermediate stage of compiling C++ source.
14929
d11ad92e 14930Fri Nov 19 11:26:09 1993 Jim Wilson <wilson@sphagnum.cygnus.com>
7177d104
MS
14931
14932 * cp-expr.c (cplus_expand_expr): Make call_target a valid memory
14933 address before using it, so it can be later safely compared.
14934
d11ad92e 14935Fri Nov 12 15:30:27 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14936
14937 * cp-pt.c (tsubst): Deal with new overloading.
14938
14939 * cp-typeck.c (fntype_p): is the arg function type?
14940 (comp_target_parms): pedwarn on conversion from (anything) to (...).
14941 (build_x_function_call): Deal with new overloading.
14942
14943 * cp-tree.c (decl_list_length): Deal with new overloading.
14944 (decl_value_member): Like value_member, but for DECL_CHAINs.
14945
14946 * cp-decl.c (duplicate_decls): Deal with new overloading.
d11ad92e 14947 (start_decl): Likewise.
7177d104
MS
14948
14949 * cp-class.c (instantiate_type): Deal with new overloading.
14950
14951 * cp-call.c (convert_harshness_ansi): Deal with new overloading.
14952 (convert_harshness_old): Deal with new overloading.
d11ad92e 14953 (build_overload_call_real): Likewise.
7177d104 14954
d11ad92e 14955Mon Nov 8 13:50:49 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14956
14957 * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
14958 if unambiguous, NULL_TREE otherwise.
14959 (get_first_fn): Returns the first appropriate FUNCTION_DECL.
14960 (is_overloaded_fn): Returns whether or not the passed tree is
14961 a function or list of functions.
14962
14963 * cp-init.c (init_init_processing): use `get_first_fn' to find
14964 the FUNCTION_DEFN for new and delete.
14965
14966 * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
14967 code size in half (I spit on special cases).
14968
d11ad92e 14969Tue Sep 7 20:03:33 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14970
14971 * cp-decl.c: Allow references and template type parameters as well
This page took 1.647016 seconds and 5 git commands to generate.